Why Doesn't the Authoritative Python Packaging Guide Mention the Best Thing that's Happened to Python Packaging?
uv is the most widely adopted new Python tool in years, yet the Python Packaging User Guide (PPUG) at packaging.python.org makes no mention of it. The reason has less to do with uv and more to do with how Python packaging governance works.
What uv Does
uv delivers 10-100x faster package operations than pip while consolidating functionality previously spread across multiple utilities (pip, pip-tools, virtualenv, pyenv, and more) into a single tool. Since its introduction in early 2024, it has become the default recommendation in many Python teams and communities.
The Python Packaging Authority (PyPA)
The PyPA started in 2011 as a working group focused on maintaining specific Python packaging tools, particularly pip and virtualenv. Its name suggests broad authority over Python packaging, but its scope has always been narrower than that.
PEP 609 formalized the PyPA’s governance model in 2019, clarifying that its role is maintaining specific projects rather than governing all Python packaging tools. The PyPA explicitly states it’s
specifically not focus at first on adding something to the standard library as our solution to our packaging problems. Adding something to the standard library is hard, and once it’s added, it’s a slow process to change it. Most of the current effort is largely focused on 3rd party projects.
The PyPA membership is a collection of projects: pip, setuptools, wheel, the Python Package Index (PyPI), and others.
How Python Packaging Got Here
Python’s packaging story is a pattern of community tools becoming de facto standards without formal adoption:
- distutils, added to the standard library in 2000, proved too limited for real-world use
- setuptools replaced it as the de facto build tool without standard library inclusion
- pip became the standard installer through the same informal path
In 2017-2018, PEP 517 and PEP 518 broke the setuptools monopoly by defining interfaces that allowed alternative build systems. This opened the way for hatch, flit, poetry, pdm, and eventually uv. None were designated “official” or distributed with CPython.
The Guide’s Scope
Since 2013, the PyPA has maintained the PPUG. The guide covers PyPA member projects rather than the full ecosystem of packaging tools. As a non-PyPA project, uv falls outside its scope, regardless of adoption or technical merit.
The confusing part is the PyPA’s description of this guide as the “authoritative resource on how to package, publish, and install Python projects using current tools.” A more accurate description would be: the authoritative resource for tools under the PyPA umbrella.
What This Means for Developers
Python’s packaging ecosystem is held together by standards (PEPs) rather than official tools. The core developers have avoided blessing any particular tool, focusing instead on interoperability specifications. This means the PPUG provides useful guidance for PyPA tools, but it is one perspective on a broader ecosystem. The real authority in Python packaging is the set of standards that let tools like uv, pip, and poetry all work with the same packages and metadata.
Get Python tooling updates
Subscribe to the newsletter