reliable testing with pip constraints
summary
Claim: pin a single, tested dependency universe so dozens of independent Python codebases stop breaking each other. Uses pip constraints (added in pip 7.1), pip-compile-style resolution and the OpenStack tool generate_constraints, with a dedicated constraints git repo and CI that vets every change. With dozens of projects and nearly 300 transitive packages described, the build is reproducible, devstack and OpenStack CI run against the constraints and reduce spurious failures while still allowing controlled, automated upgrades.
AI-written summary · about
chapters (22)
- 0:00Intro
- 2:41The problem
- 3:17Existing solutions
- 3:31Collaboration
- 3:45Destroy packages
- 4:36Manual pip push
- 5:53Tight pip bounds
- 7:04Vendor everything
- 8:36Requirements files
- 9:51Buildout
- 10:41Constraint Files
- 13:45You are not the special case
- 14:36PEP compile
- 16:57PEP release
- 18:17Powerlaw curve
- 20:03Loosen dependencies
- 20:58Unconstrained dependencies
- 21:56Apostle tarpit
- 22:41Constraints
- 24:07Why constraints
- 25:21Custom pip install
- 26:42Dependency resolution
related talks
30mreliable testing with pip constraints
36mPipenv: The Future of Python Dependency Management
31mNo more dependency nightmares: the Wix way for a healthy and stable python platform
28mManaging Python Dependencies at scale
23mReproducible Environments for Reproducible Results
30mBringing Continuous Delivery to Open Source
30mThe Evolutionary Saga of Python Packaging
28mBuilding reproducible Python applications for secured environments
