Packaging History¶
2021¶
2020¶
Old pypa-dev Google Group decommissioned to focus conversation in Discourse forum and distutils-sig list.
Packaging Working Group used MOSS and CZI funding to improve pip dependency resolver.
PEP 609 created and accepted, creating PyPA governance model.
2019¶
OTF grant for PyPI awarded to PSF, team worked on security, localization, and accessibility improvements to Warehouse.
2018¶
Warehouse superseded and replaced legacy PyPI.
Warehouse installation at pypi.org entered beta phase.
PEP 566 accepted, adding better package metadata.
2017¶
pipenv
-based application dependency management tutorial added to PyPUG.MOSS grant for PyPI awarded to PSF, team began in December to focus on replacing legacy PyPI.
PEP 517 accepted (
setup.py
-independent build system backends).Legacy pypi.python.org upload API switched off.
2016¶
pip version 9 (pip release notes) started respecting the
Requires-Python metadata
field.Package uploads started defaulting to pypi.org.
pypi.org deployed as a soft-launch with core functionality.
PEP 518 accepted (defining the
pyproject.toml
format for static build dependency declarations)pip v8.1 added
manylinux1
support (PEP 513, pip release notes), PyPI starts allowing Linux wheel filesPEP 513 accepted (defining the
manylinux1
platform ABI).Version 8 of pip (pip release notes) integrated artifact hash checking (previously dependent on the third-party project peep).
2015¶
pip (v7) started caching built wheels, and installing from them, instead of installing directly from sdists (pip release notes).
pip (v7) started supporting
--install-option
and--global-option
per requirement in requirement files (pip release notes).setuptools (v18.3) now allows disabling of the manipulation of the sys.path during the processing of the easy-install.pth file.
PEP 470, which deprecated external, non-PyPI hosting, was accepted.
PEP 503 published to standardise the PyPI simple repository API.
PEP 508 published to standardise the specification format for individual dependencies.
2014¶
setuptools v8.0 and pip v6.0 (pip release notes) implemented PEP 440 (Python’s new versioning scheme). Both projects now depend on the project packaging for this support.
PEP 453: Being able to bootstrap
pip
into Python 3.4.https://bugs.python.org/issue19407: Modern Installation and Packaging guides on python.org.
virtualenv (v1.11) started installing pip & setuptools using wheels.
pip (v1.5.1) became available as a cross platform wheel on PyPI (pip release notes).
pip (v1.5.1) stop requiring setuptools to install wheels (pip release notes).
get-pip.py
doesn’t require setuptools to be installed firstget-pip.py
installs setuptools for you, if you don’t already have itPEP 449: Removal of the DNS-based mirror autodiscovery
Refactored the pip docs to be consistent with the “PyPA Standard Docs Template”
PyPUG moved to the packaging.python.org subdomain.
PEP 440 published to standardise version descriptions and filtering.
2013¶
distlib started releasing to PyPI, and pip began depending on it (pip release notes).
Core PyPI infrastructure relocated to OSU/OSL (with significantly increased resources)
The core packaging projects were collected under the Python Packaging Authority (PyPA) accounts on GitHub and Bitbucket 2
Distribute merged back into setuptools, and setuptools development migrated to the PyPA BitBucket account. 1 5
PyPI started supporting clients using verified SSL with standard cert bundles.
PyPI forced web users over to SSL.
pip (v1.3) and easy_install (v0.7) use verified SSL by default (pip release notes)
easy_install supports additional hashes beyond md5 (pip already did)
Fastly CDN enabled for PyPI (donated)
Restructured the pip install docs to clarify that setuptools and pip are the “base” of the bootstrapping hierarchy
setuptools available as a cross platform wheel on PyPI
PEP 438 and the associated pip changes.
pip (v1.4) added support for building and installing wheels (pip release notes)
Python Packaging Authority (PyPA) became the maintainer for the Python Packaging User Guide, which was forked from the “Hitchhiker’s Guide to Packaging”.
Packaging Dev and User Summits were held at Pycon 2013 to share ideas on the future of packaging. 3 4
PEP 425 and PEP 427 were accepted. Together, they specify a built-package format for Python called wheels.
Before 2013¶
2012-06-19: The effort to include “Distutils2/Packaging” in Python 3.3 was abandoned due lack of involvement. 6
2011-02-28: The Python Packaging Authority (PyPA) is created to take over the maintenance of pip and virtualenv from Ian Bicking, led by Carl Meyer, Brian Rosner and Jannis Leidel. Other proposed names were “ianb-ng”, “cabal”, “pack” and “Ministry of Installation”.
2008: distribute was forked from setuptools by Tarek Ziade, in an effort to create a more open project.
2008: pip was introduced by Ian Bicking as an alternative to
easy_install
(the installer included with setuptools)
2007: virtualenv was introduced by Ian Bicking, which allowed users to create isolated Python environments based on a central system installation of Python.
2006: buildout was introduced by Jim Fulton, with the goal to create a system for repeatable installations of potentially complex projects.
2005: Package files could be hosted on PyPI for the first time, following the sprints at PyCon US 2005.
2004: setuptools was introduced by Phillip Eby, which included the Egg <pypug:Egg> format, and the ability to declare and automatically install dependencies.
2003: PyPI was up and running.
2002: Richard Jones started work on PyPI, and created PEP 301 to describe it.
2001: PEP 241 was written to standardize the metadata for distributions.
2000: catalog-sig was created to discuss creating a centralized index of distributions.
2000: distutils was added to the Python standard library in Python 1.6.
1998: The distutils-sig dicussion list was created to discuss the development of distutils.
- 1
https://mail.python.org/pipermail/distutils-sig/2013-June/021160.html
- 2
https://mail.python.org/pipermail/distutils-sig/2013-March/020224.html
- 3
https://us.pycon.org/2013/community/openspaces/packaginganddistributionminisummit/
- 4
http://pyvideo.org/video/1731/panel-directions-for-packaging/
- 5
https://mail.python.org/pipermail/distutils-sig/2013-March/020127.html
- 6
https://mail.python.org/pipermail/python-dev/2012-June/120430.html