A python versioning scheme for modules, patches, softwares etc.

kretel Krzysztof.Retel at googlemail.com
Tue Feb 17 14:00:15 EST 2009


On Feb 17, 5:31 pm, Robert Kern <robert.k... at gmail.com> wrote:
> On 2009-02-17 11:16, kretel wrote:
>
> > There exist a number of versioning schemes to keep track of software
> > version. Each developer certainly have it's own style and preferred
> > scheme. However, I am wonder if there is a specific versioning scheme
> > for python modules.
>
> A number of Python tools that manipulate Python packages use the version number
> parsing code in distutils.version, so it would be a good idea to use version
> numbers it can parse. From the docstring of the StrictVersion class in that module:
>
>      """Version numbering for anal retentives and software idealists.
>      Implements the standard interface for version number classes as
>      described above.  A version number consists of two or three
>      dot-separated numeric components, with an optional "pre-release" tag
>      on the end.  The pre-release tag consists of the letter 'a' or 'b'
>      followed by a number.  If the numeric components of two version
>      numbers are equal, then one with a pre-release tag will always
>      be deemed earlier (lesser) than one without.
>
>      The following are valid version numbers (shown in the order that
>      would be obtained by sorting according to the supplied cmp function):
>
>          0.4       0.4.0  (these two are equivalent)
>          0.4.1
>          0.5a1
>          0.5b3
>          0.5
>          0.9.6
>          1.0
>          1.0.4a3
>          1.0.4b1
>          1.0.4
>
>      The following are examples of invalid version numbers:
>
>          1
>          2.7.2.2
>          1.3.a4
>          1.3pl1
>          1.3c4
>
>      The rationale for this version numbering system will be explained
>      in the distutils documentation.
>      """
>
> You probably want to do release candidates, too, and the "1.3c4" format is
> really quite useful for that. In reality, people usually use LooseVersion from
> that module to parse version numbers, and it will accept "1.3c4". But it also
> accepts a whole lot of version number formats that I would not recommend that
> you use.
>
> --
> Robert Kern
>
> "I have come to believe that the whole world is an enigma, a harmless enigma
>   that is made terrible by our own mad attempt to interpret it as though it had
>   an underlying truth."
>    -- Umberto Eco

Thanks for pointing this out.


Krzysztof



More information about the Python-list mailing list