reliable testing with pip constraints
summary
Pip constraints (added in pip 7.1.0) define a consistent universe of package versions and are used with the -c flag to lock transitive deps; OpenStack compiles a single constraints file for nearly 300 dependencies, runs pip dozens of times in devstack, and vets each constraints change through CI so updates are tested before rollout. Tools mentioned include pip constraints (7.1.0), pip-compile and generate_constraints, and the system is integrated into devstack integration and demonstrably reduces breakage.
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
24mPipenv: New Package Dependency Management System for Python
34mAdventures in pip land
26mDependency Management in Python
29mReducing the "Oops Factor": Pipelines for a Secure Python Development Lifecycle
28mManaging Python Dependencies at scale
