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

"Martin v. Löwis" martin at v.loewis.de
Mon Dec 28 11:54:50 CET 2009


> Another penny dropped when it comes to version specs.
> 
> Should 2.5 mean 2.5.0 only, or 2.5.*. Well... why would you ever need
> to specify 2.5.0 only. That's a nonsense specification.
> 
> "My project requires Python 2.5.0, but doesn't work with 2.5.1". Huh!?
> Well, then fix it, goofball. :)

This == operator is fairly common in Debian. For example, the apache2
package installed on my system specifies

Package: apache2
Version: 2.2.14-4
Depends: apache2-mpm-worker (= 2.2.14-4) | apache2-mpm-prefork (=
2.2.14-4) | apache2-mpm-event (= 2.2.14-4) | apache2-mpm-itk (=
2.2.14-4), apache2.2-common (= 2.2.14-4)

So they specify that the packages they need have *exactly* to come
from the same build. Otherwise, slight binary incompatibilities
may break the thing - and there is no point in risking that.

For Python, applications should probably be more tolerant wrt.
versioning. However, some people do want to lock dependencies
to a specific version, for better reproducability.

> The following would be illegal:
> 
>     Requires-Python: >= 2.5.2 > 3
>     Requires-Python: <= 2.5.2 < 3
>     Requires-Python: <= 2.5.2 < 3 > 3.1

-1. I would prefer if there is only a single syntax for specifying
version dependencies, independent of what metadata field they
appear in.

Regards,
Martin


More information about the Python-Dev mailing list