[Distutils] Version numbers for module distributions

Fred L. Drake Fred L. Drake, Jr." <fdrake@acm.org
Thu, 10 Dec 1998 12:01:10 -0500 (EST)

Greg Ward writes:
 >   * replace [ab] with [a-z], to allow test versions beyond
 >     "beta"... although any programmer who goes up to "zeta" (or should
 >     that be omega?) really needs to look at his quality control... ;-)

  Make it [ab] and don't change it unless there are substantial
complaints (meaning someone actually wants to use something else and
can present a good argument for doing so, *not* that someone might
theoretically want to).

 >   * make the patch number optional (and treat 1.0 and 1.0.0 as the
 >     same version number)

  Definately.  In fact, I'd want to hide the patch number if it's 0.
If the version number class is distutils.version.Number, this should

	>>> from distutils.version import Number
	>>> v = Number("1.0.0a1")
	>>> str(v)

 > Quoth John Skaller (2 December 1998):
 > >         No, that isn't enough. Consider:
 > > 
 > >         MacVersion
 > >         UnixVersion
 > >         NTVersion
 > I think that platform differences can be handled by the naming scheme
 > for built distributions.  For instance, version 1.3.2 of module 'foo'
 > might be distributed under the following names:

  I agree.  The version number should not be platform dependent, as
that can only create confusion.

 > > Now consider:
 > > 
 > >         FreeVersion
 > >         Commercial Version
 > > 
 > > and then:
 > > 
 > >         BareBones version
 > >         Delux Version
 > >         Everything including the Kitchen Sink Version
 > I see these are basically the same: different releases of essentially
 > the same product but with varying degrees of functionality.  (Where

  These are different products and should have different base names.
Your examples describe this effectively.

 > Finally, Greg Stein raised the following wrinkle in private email:
 > > I wanted to briefly let you know that Apache modules are typically
 > > versioned as: 0.9.3-1.3.3. The first set refers to the module itself.
 > > The second set refers to Apache (which is currently at 1.3.3).

  This is a dependency issue, and the dependency checking component
should be able to deal with version numbers as appropriate.  This is
how other packaging systems deal with it (to the best of my
knowledge, which is not comprehensive ;).


Fred L. Drake, Jr.	     <fdrake@acm.org>
Corporation for National Research Initiatives
1895 Preston White Dr.	    Reston, VA  20191