[Distutils] RFC: Binary Distribution Format for distutils2/packaging
Jim Fulton
jim at zope.com
Wed Mar 14 01:18:40 CET 2012
Sometimes, binary distributions are useful. This is especially true
for Windows and maybe Macs. (They may also be useful for other
platforms in closed environments, where the shortcomings of
distutils platform definitions aren't such a problem.)
Distutils2/packaging (d2/p :) doesn't support the egg format.
The bdist format is problematic because:
- bdist names don't include Python versions and
can't be reliably parsed to get project versions and
platforms.
- The presence of bdists alongside of source and egg
distributions breaks setuptools based tools, like
easy_install, pip and buildout because they are
mistaken for source distributions with wacky
version numbers.
In discussing this at the PyCon packaging sprint, Tarek and i came up
with the following options:
1) setuptools eggs
- Have to support legacy meta-data format
2) bdist
- Need to add python version for:
- compatibility info
- also provides delimeter between version # and platform
- Need to update setuptools/distribute to handle (or ignore) them.
3) New egg-like format "pbd"
- Arrange suffix so ignored by setuptools/distribute
- new-style meta data
- would be a zip file
- Essentially, .egg format with new-style meta data and different
suffix.
Option 3) looks the best to us, so we propose:
- Introduce a new binary distribution format with a ".pbd" suffix
and an egg-like structure.
An example file name:
ZODB3-3.10.0b1-py2.6-macosx-10.4-x86_64.pbd
- Deprecate bdist format.
D2/p will not support generation or installation of bdist
distributions.
Jim
--
Jim Fulton
http://www.linkedin.com/in/jimfulton
More information about the Distutils-SIG
mailing list