[Distutils] Common version-comparison semantics for peace love and harmony

Laura Creighton lac at openend.se
Sat Nov 28 13:52:39 CET 2009

In a message of Sat, 28 Nov 2009 21:34:00 +0900, David Cournapeau writes:
>On Sat, Nov 28, 2009 at 9:22 PM, Laura Creighton <lac at openend.se> wrote:
>> In a message of Sat, 28 Nov 2009 11:01:45 GMT, Floris Bruynooghe writes
>>>On Sat, Nov 28, 2009 at 10:50:36AM +0100, Laura Creighton wrote:
>>>> But I think that it is the other way around ... what we want is a
>>>> timestamp.  The algorithm is for guessing which version is ealier
>>>> in the absence of a timestamp.
>>>Does this work when you have a two maintenance branches releasing in
>>>parallel?  Consider this example:
>>>2009-01-01: 1.0
>>>2009-02-01: 1.1
>>>2009-02-20: 1.0.1    (1.0 maint branch)
>>>2009-02-21: 1.1.1    (1.1 maint branch)
>> Not if the only thing you sort on is the date -- which by the way shoul
>> have hours and minutes as well -- because, as you say that is not enoug
>> to tell the 1.1 branch from the 1.0 branch.  But once you have a name fo
>> a series of releases, then a timestamp can sort the series.
>> Let us say that you now find a horrible bug and make:
>> 2009-02-22-22:01: 1.0.2
>> 2009-02-22-22:04: 1.1.2
>> Now I want to say 'requires this bugfix'. Right now I think that if
>> I say requires 1.0.2 or later, then people with 1.1 will expect that
>> they are ok, when they are not.  Or am I misunderstanding?
>This is a slippery road. You will always find cases where any version
>scheme will fail if you start  caring about those issues through
>version schemes only. In your example, that would be if different
>micro releases are not synchronized, which happens quite often in my

Yes, this is why I am coming to the conclusion that we are asking
too much of a versioning scheme.  

Thus I think we need, instead, a way to specify two things.

First of all  Requires-Dist:  needs to be able to specify multiple
branches.  And second of all we need to get a unique name for a
branch.  But once we have that, we can work on timestamps to find
'later' -- and we won't have to worry if people need to make
3.0.gamma or 3.0.c4 in the future because their beta went really
badly, or something.

And, all the while, there will be the strict naming convention for
those of us who like such things, and I am one of them.  I just want
to be able to interoperate with people who don't.


More information about the Distutils-SIG mailing list