[Distutils] Version numbers for module distributions

Konrad Hinsen hinsen@cnrs-orleans.fr
Thu, 10 Dec 1998 18:06:31 +0100

> There have been a few rumbles about module version numbering on and off
> the list, and I thought I should bring it all out into the open.  First,
> I think I tossed off a random opinion along these lines:

[lots of arguments deleted because I agree completely]

> Now, there should also be semi-formal guidelines on what the different
> components of a version number *for modules* might mean:

Better formal ones. If you feel you need more precision to indicate
subtle variations in your code, put them into a README file!

> their documentation and test suites.  If you want different levels of
> functionality, you should split up your modules accordingly and make
> several distributions.  Give away foo-base-1.3.2 to anyone who wants it,
> and charge extra for foo-bronze-1.3.2, foo-silver-1.3.2, and
> foo-gold-1.3.2, each of which contain a couple of modules that add still
> more functionality to the whole system.

That's the only reasonable approach if we want to establish a
dependency verification system.

> I think a lot of "version" problems can be solved by carefully
> organizing your modules so that blocks of functionality (barebones vs
> deluxe, informix vs sybase, etc.) correspond to modules or blocks of
> modules.  Hell, this is just good solid software engineering practice,

Right. But this should be explained carefully in the manual for
package developers!

> Good point!  I certainly hope we don't have to deal with this, i.e. have 
> module developers worry whether their module will work with Python 1.5.2 
> or 1.6 or 1.6.1 (etc.).

We will have to consider this for binary distributions, because the
binary APIs do change from version to version (not always, but
sometimes). But since Python keeps a C API version number, all it
takes is to note this version number in the package meta-data.
At least for verification; distinguishing binary distributions
for different Python versions by their file name is another
question. But not really a difficult one, unless we want to support
DOS file systems!

Konrad Hinsen                            | E-Mail: hinsen@cnrs-orleans.fr
Centre de Biophysique Moleculaire (CNRS) | Tel.: +33-
Rue Charles Sadron                       | Fax:  +33-
45071 Orleans Cedex 2                    | Deutsch/Esperanto/English/
France                                   | Nederlands/Francais