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

Tarek Ziadé ziade.tarek at gmail.com
Mon Dec 28 11:10:20 CET 2009

2009/12/28 "Martin v. Löwis" <martin at v.loewis.de>:
>> I think Antoine's proposal is good (using the range when "2.5" is
>> used, and using 2.5.0 when explicitely
>> needed), and fixes Martin's concerns.
>> So I would be in favor of removing ~= and using Antoine's rule;
> So specifying 2.5 would be a short-hand for *what*?

2.5 would be a shorthand for 2.5.x. So, equivalent to : >=2.5.0, < 2.6.0

2.5.0 would be the notation required to describe this specific micro version.

For third-party projects, the same rule would apply.

The only particular point is about projects that don't use the .0
micro notation for the first version of a series.
In that case, "2.5" will still mean ">=2.5, < 2.6.0"

IOW, if someone needs a full MAJOR.MINOR.MICRO comparison, he will
have to explicitely
tell if by providing a detailed version, even if he needs to fill it
with some ".0"s

This will of course be applicable only for PEP 386-compatible
versions. So for "Requires-Externals", the
range might not apply (as I stated in the PEP)

Some examples:

Requires-Dist: zope.interface (3.1)      ==> any versions that starts
with 3.1, not including post- or pre- releases
Requires-Dist: zope.interface (3.1.0)   ==> only 3.1.0
Requires-Python: 3                              ==> Python 3 (no
matter wich one)
Requires-Python: >=2.6,<3                  ==> Any version of Python
2.6.x or 2.7.x (and 2.8.x if it exists one day)
Requires-Python: 2.6.2                         ==> only Python 2.6.2


More information about the Python-Dev mailing list