[Distutils] Finishing PEP 345

Tarek Ziadé ziade.tarek at gmail.com
Wed Dec 23 22:11:31 CET 2009

2009/12/23 "Martin v. Löwis" <martin at v.loewis.de>:
> Why is that a use case for "2.5 concerns all 2.5.x versions"?
> In this example, the version string "2.5" isn't used at all.

You asked "Are you sure this is a good idea?" when I said "micro
version could be given as well", so I gave you an example where a
micro version is required.

> Specifying micro versions is fine with me. I'm worried about
> the "2.5 concerns all 2.5.x versions" part.

Some applications doesn't care about the micro version, but will care about
the minor version because those can introduce API and syntax changes.

e.g. If at some point I have a Python 2.6 program that uses the "with"
keyword, and I don't want to introduce a __future__ import in my code,
I'll just use :

Requires-Python: 2.6

And I will not care much about the micro version in that case, since
Python will not change its syntax/API in a micro release.

>>> Does that apply to all PEP 386 version numbers?
>> Not sure what you mean here,
> If I specify
> Requires-Dist: zope.interface (3.6)
> and I have zope.interface 3.6.1b4, is the requirement satisfied?
> What if I have 3.6b4: is it then satisfied?

3.6 would include all 3.6.x releases as well. So 3.6b4 is excluded
since it does not belong to the 3.6 series, but 3.6.1b4 is included.

IOW we  compare the distribution version only with what is provided in
the metadata field and truncate the rest. So here
MAJOR.MINOR[pre-release tag]

That doesn't concerns the Version field of course.


More information about the Distutils-SIG mailing list