[Python-Dev] Proposing PEP 345 : Metadata for Python Software Packages 1.2

Sridhar Ratnakumar sridharr at activestate.com
Mon Dec 28 02:39:08 CET 2009


On 12/27/2009 5:21 PM, MRAB wrote:
> Tarek Ziadé wrote:
>> On Mon, Dec 28, 2009 at 1:41 AM, Sridhar Ratnakumar
>> <sridharr at activestate.com> wrote:
>> [..]
>>> Tarek,
>>>
>>> I am a bit confused at the current proposal combined with the newly
>>> introduced range operator.
>>>
>>> Would "Requires-Python: <=2.5" include 2.5.4 or not?
>>
>> <=2.5 means any version that is inferior or equal to 2.5.0 so 2.5.4
>> doesn't match
>>
>>> Also, "Requires-Python: 3" would include all 3.X versions, correct?
>>
>> Correct, because, "Requires-Python: 3" is equivalent to
>> "Requires-Python: ~= 3"
>> which is equivalent to "Requires-Python: 3.x.x"
>>
> To me it's non-intuitive that "<=2.5" means <=2.5.0 but "2.5" means
> 2.5.x; it's not consistent, explicit is better than implicit, etc.

Yes. When we talk about Python-2.5 (as in, for instance, "this script 
requires Python 2.5 to run"), we are referring to 2.5.x, and not just 2.5.0.

> I'd prefer it if omission means "don't care", so "2" means 2.x.y and
> "2.5" means 2.5.x.

+1.

On 12/27/2009 4:37 PM, Tarek Ziadé wrote:
 > As discussed in Distutils-SIG, 2.5 is not strictly equal to 2.5.2.
 > That's exactly why we introduced
 > the range operator. So one may make a clear distinction between
 > "2.5.x" and "2.5".

Perhaps if "2.5" was instead considered to be a *range* of possible 
versions (2.5.0, ... 2.5.4), then this ambiguity wouldn't have arisen in 
first place?

Technically (Include/patchlevel.h), it is "2.5.0", not "2.5".

-srid


More information about the Python-Dev mailing list