Release Management with Devpi
summary
Builds a company-wide devpi server that stores immutable wheel packages with unique versions derived from git via setuptools_scm, uploads per-OS indices and a generic index for pure-Python, and composes team and platform indices with inheritance so installs pick correct binaries. Runs a replica+master high-availability setup so installs keep working during maintenance. Reports about 10,000 packages, ~350 indices and ~18 TB downloaded, and the workflow is in production across Jenkins, desktops and services.
AI-written summary · about
chapters (16)
- 0:00Start
- 0:33Anti-Example (yes, that happened...)
- 1:45Our Approach (move towards Immutable Infrastructure)
- 2:48Packaging Example (powered by setuptools_scm)
- 4:07Devpi Package Server (from Holger Krekel et al.)
- 5:34Release Workflow
- 8:09Devpi by Example
- 9:43Basic Index Layout
- 10:27Aggregation Indices
- 11:45Open Source Packages
- 12:19Consumer Indices
- 13:21Some Statistics
- 14:21Host Setup
- 16:06High Availability
- 17:22Executive Summary
- 18:31Some Lessons (learned the hard way)
related talks
31mDevpi for teams
34mdevpi: Your One Stop Cheese Shop
37mAutomated deployment of Python packages for development
01h 21mSecure Python Packaging & Release Using Continuous Deployment
48mIntegrating upstream projects downstream
35mImproving CI/CD Process for Cloud Native Python Applications with PyPI Cloud
24mBuilding a Sustainable Python Package Index
40mPiku: git push deployments to your own servers
