A python versioning scheme for modules, patches, softwares etc.
robert.kern at gmail.com
Tue Feb 17 18:31:00 CET 2009
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)
The following are examples of invalid version numbers:
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
"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
More information about the Python-list