[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