This document provides a history of Python packaging and discusses lessons learned. It covers:
1. The evolution of Python packaging standards and tools from 1991 to present, including changes to metadata schemas, build tools, package publishing/indexing, installers, and support for multiple platforms/versions.
2. Challenges that existed before and after the community developed packaging solutions, such as companies initially developing their own internal tools and later adopting community standards.
3. How the community's open solutions grew faster than any individual company could achieve, and how problems like building/publishing packages are generally applicable rather than company-specific.
3. Agenda
• Motivation
• History of Python software distribution
• Learn from history
• Challenge before community’s python packaging solution
• Challenge after community’s python packaging solution
• Takeaway
• Appendix
3
45. Packaging problem is mostly general!
• Build System
• What is a Python package?
• How does build tool resolve Python’s dependencies?
• How to build a Python package?
• Publish System / Private Package Registry
• How to publish your Python package?
• How to download other Python’s dependencies?
• Deployment System
• How to isolate your Python environment?
• Which platform does the Python package support?
45
58. History
• Dustin Ingram @ SciPy 2018
Inside the Cheeseshop: How Python Packaging Works
• History of packaging written by Martijn Faassen
• Kenneth Reitz @ PyCon 2018
Pipenv: The Future of Python Dependency Management
• Clinton Roy @ Kiwi PyCon X (2019)
The Packaging Lifecycle with Poetry
• History of wheel written by Daniel Holth
58
59. Packaging
• Dave Forgac @ PyOhio 2015
Python Packaging from Init to Deploy
• Elana Hashman @ PyCon 2019
The Black Magic of Python Wheel
• Official Document: Packaging binary extensions (2013)
59
60. Runtime (Virtual) Environment
• Carl Meyer @ PyCon 2011
Reverse-engineering Ian Bicking's brain: inside pip and
virtualenv
• Bernat Gabor @ EuroPython 2019
Status quo of virtual environments
60
61. 61
Why did 3 big cloud platforms provide
Package Registry service
JUST recently?
2019 May 2020 June 2020 July