Lessons Learned from Packaging 10,000+ C++ Projects
summary
Bloomberg claims it coherently builds and integrates 10,000+ C++ packages using mostly CMake plus pkg-config, prebuilt binaries, and a Debian-style source→binary flow that installs under an optbb prefix. The system creates hermetic source→binary builds, enforces file-conflict detection, snapshots an integration baseline transactionally, supports static linking and dynamic when needed, and uses remote execution and build-grid caching to avoid rebuilding an entire 12-hour universe for every change. Tools mentioned: Debian/chroots, conan experiments, RHEL baseline, package config.
AI-written summary · about
chapters (18)
- 0:00Start
- 1:10Why Do You Care about Bloomberg Packaging
- 3:42Partial Distribution
- 8:34Transactional Changes To Prevent Broken Releases
- 10:04Third-Party Packages
- 13:42Hardest Part of Changing the Build System
- 16:00Build System Independence
- 26:59Single Include Path
- 27:45Build Metadata
- 29:12The Integration Build System
- 32:55Snapshots and Distributions
- 38:17Compiler Bugs
- 39:01Removing the Function Declaration
- 40:22Summary
- 41:16Having an Integration Baseline
- 45:57Branching the Graph
- 48:19How Do You Prevent People from Creating Creating Circular Dependencies
- 54:40Do We Do Build Caching
related talks
01h 03m“C++ Dependency Management: from Package Consumption to Project Development”
01h 01mWhy managing C++ dependencies is hard
55mBuilding C++: It Doesn't Have to be Painful!
33m“Don't package your libraries, write packagable libraries!”
45mBuilding C++: It Doesn't Have to be Painful!
49mBuild Systems: a Simple Solution to a Complicated Problem
58mThere Will Be Build Systems: I Configure Your Milkshake
40mMaking packages and packaging "just work"
