On Sun, Nov 15, 2009 at 7:18 AM, Kevin Teague <[email protected]> wrote: [..] > Erm, actually, re-reading the Requires Python section in PEP 345 I guess the > conditional operator is required, so it would actually be: > > Requires Python: ==2.4, ==2.5, ==2.6 > > Is that right? Perhaps in the absence of a conditional operator, then == > should be the default, since I think it'd be easy to misunderstand this > field upon casual usage.
That's a multi-line field, so at the end, Distutils will return a list with the value of all lines. For "==" I guess we can specify in the field that it's the default operator, I'll add that. > But then it should also make explicit in the PEP > that ==2.5 is taken to mean only 2.5.0 or the entire sereis of releases in > the 2.5 line. I think that ==2.5 should target the entire 2.5.x series. > But then arguably there aren't even enough special cases to justify the > extra syntax to support things such as ">= 2.5.2"? I would imagine that > almost all packages, when they release just test against the latest releases > of whatever versions of Python that project supports? Also for the minor > releases the other Python implementations, they aren't lock step with the > CPython minor releases are they? e.g. Jython has a 2.5.0 release and 2.5.1 > release, but that 2.5.1 isn't the same as CPython 2.5.1 (I could be wrong > about this, haven't looked in depth). Answering to Frank here too: We can suppose that a program that works with Jython, can safely use jython versions in Requires-Python, unless it's possible for a given program to run on CPython *and* Jython and that it's impossible to use a common MAJOR.MINOR version ? > > Finally, it actually only makes sense to tag specific distributions for > which versions of Python they support. So for example the Grok project: > > Grok 1.0: > Requires Python: 2.4, 2.5 > > Grok 1.1: > Requires Python: 2.5, 2.6 > > Which means that they PyPI would say "Grok supports Python 2.5 and Python > 2.6" after 1.1 is released. Which might not be true if there was still > maintenance releases happening in the 1.0.x line. So they what should the > project specify here? > > So maybe I'm -0 on this field, since it does seems ambigous or the > information is specific to the distributions and not the overall project. I am not sure why you say there's an ambiguity, because PyPI doesn't give the metadata of a project, but of a distribution. (and as a matter of fact, some PyPI UIs will automatically use the latest distribution of the project, but that's just a default behavior) So the "Grok supports Python 2.5 and Python 2.6" sentence doesn't exists anywhere. It's "Grok 1.1 supports Python 2.5 and Python 2.6" or "Grok LATEST_VERSION supports Python 2.5 and Python 2.6" Tarek _______________________________________________ Distutils-SIG maillist - [email protected] http://mail.python.org/mailman/listinfo/distutils-sig
