Dependency Management at the End of the Rainbow
summary
Argues C++ needs shared naming, consistent environments and a single orchestration layer rather than rehashed package managers, cites npm’s left-pad outage and ~1M npm packages as why immutability and cached copies matter, demonstrates using C++20 modules and small logically scoped libraries, recommends build everything from source or at least cache interfaces, and integrating Conan/VCpkg with CMake via toolchain files to enforce a consistent toolchain; gives concrete rules: unique module names, avoid system package managers, and prefer minimal, assertive dependency specs.
AI-written summary · about
chapters (30)
- 0:00Introduction to talk
- 1:39Left-pad incident and immutability
- 3:50Why dependency managers matter
- 5:14Title explanation: End of the rainbow
- 7:20Dependency definition and modules
- 10:40Dependency trees and complexity
- 12:30ABI compatibility and interfaces
- 14:54Build systems and environment control
- 16:43Building from source vs prebuilt
- 18:15Compilation speed and caching
- 20:47Small libraries and modularity
- 22:14Configuration and compiler flags
- 25:05C++ program explosion problem
- 26:50Portability and conditional code
- 30:48Scalable C and module interfaces
- 32:33Do we even need packages?
- 34:04POSIX and minimalist systems
- 35:48NPM ecosystem scale and challenges
- 37:14Rules for dependency management
- 39:21Legacy code and future solutions
- 41:33Final advice and summary
- 42:15Q&A session begins
- 42:35Declarative build instructions
- 45:05Consistent build environments
- 47:15Dependency resolution in build systems
- 48:41Compiling for exact distributions
- 50:30Dependency explosion in small apps
- 53:24Toolchain files and Conan
- 55:08Library-level inversion of control
- 57:15Q&A concludes
related talks
59mC++ Modules and Large-Scale Development
01h 30mC++ Modules and Large-Scale Development
01h 32mMistakes to Avoid When Writing C++ Projects
01h 37mC++ And Beyond: Discussion
01h 03m“C++ Dependency Management: from Package Consumption to Project Development”
01h 30mC++ Modules and Large-Scale Development
58m“Using Modern CMake Patterns to Enforce a Good Modular Design”
44mDependencies; Devil or Darling?
