Size: 3745
Comment: Add out of date notice
|
Size: 3859
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 7: | Line 7: |
**out of date** | {{{#!wiki caution This page and the majority of subpages have not yet been updated to reflect work on distutils2/packaging. }}} |
Distutils
Distutils is the standard mechanism to distribute Python packages and extensions since Python 1.6.
Current status
This page and the majority of subpages have not yet been updated to reflect work on distutils2/packaging.
Roadmap for Python 2.7 and Python 3.2 :
- Introduce the new version comparison algorithm in Distutils
- Standardize the .egg-info directory, provide APIs (PEP 376)
- Change PKG-INFO content (PEP 345 changes)
- Finish the massive cleanup
Still needs some discussions
- plugin systems, entry points
- static metadata
- testing infrastructure
Current work
Distutils/Terminology: New terminology
Distutils/VersionComparison : the goal is to come up with a version comparison system that superseds Distutils' current one
Distutils/StandardizeEggInfo : the goal is to finalize PEP 376
Distutils/Metadata : the goal is to finalize PEP 345
Distutils/StaticMetadata : the goal is to come out with a proposal to split setup.py into a static metadata file + a lighter, almost empty script.
Distutils/Friends : the goal is to try to find a project, a person or a group of person on each platform that is willing to maintain a third-party tool that build system-specific distros out of python package.
Distutils/PluginSystem : a Plugin system to extend commands
Distutils/TestingInfrastructure : Testing infrastructure
Learning Distutils
Documentation
distutils — Building and installing Python modules
Distributing Python Modules - information for developers
Installing Python Modules - information for users and system administrators
PyPI's XML-RPC interface for querying the packages database
Projects
/Projects - please add a listing to this page if you're working on Distutils (and help us reduce duplication of effort)
/Extensions is a repository of extensions for your "setup.py".
Tutorials
/Tutorial is a small tutorial to introduce the topic. It includes a complete demo, from start to finish.
CheeseShopTutorial is a related tutorial that just covers submitting information to the Python Package Index
Python Package Index Tutorial by Jeremy Hylton covers the use of the distutils register command.
History
Distutils module was included in standard distribution in Python 1.6. It was back in year 2000. Before that Distutils was available in Python 1.5.2 as a separate download. Since then Distutils expanded with new commands, but after almost 10 years basic principles stays the same - there is central setup.py file, which everybody can add its own code to. There is configuration setup.cfg where you can set default options for supported Distutils commands. The flexibility that Distutils architecture promotes, the lack of conventions and API that enforces them resulted in that there still no way to uninstall or list installed packages/modules, no way to query their versions either. Absence of clear border between Distutils and custom code places additional burden on newcomers in Distutils packaging that prefer to learn by example from some other existing configuration.
Misc.
Distutils/DistributeSprint : Sprint ideas
#distutils - irc channel for Distutils