2009/12/28 "Martin v. Löwis" firstname.lastname@example.org: [..]
2.5.0 would be the notation required to describe this specific micro version.
I think it would be a shorthand for >=2.5.0, <2.5.1, right?
Or are you saying that specifying a version is sometimes a shorthand for a range, and sometimes a shorthand for the == operator (i.e. one exact version)?
2.5.0 being a shorthand for >=2.5.0, <2.5.1 is fine with me.
Requires-Dist: zope.interface (3.1.0) ==> only 3.1.0
No, it should be: any version that starts with 3.1.0, not including post- or pre-releases
In practice it means the same if we don't consider going further that the micro version (as I did in my head when providing the examples), but in theory you are right, so that's fine with me.
Requires-Python: 3 ==> Python 3 (no matter wich one)
Almost: excluding pre- and post-releases.
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)
This time, including pre- and post-releases, right?
Which pre- and post-releases exactly in this case ? if you mean 2.6 post- releases, 2.7 and 2.8 pre- and post- releases : yes, they would be included in that range. 3 post-releases are excluded in that case.
As a side not: as we said earlier in Distutils-SIG, dealing with specific pre- and -post releases would be a very particular case ppl would have to deal with manually if they are to be founded at the edge of a range.
e.g. "<3" doesn't mean Python 3 pre-releases are included.
Requires-Python: 2.6.2 ==> only Python 2.6.2
No: >=2.6.2, <2.6.3 (of course, the only Python release in that range was 2.6.2, since there was no 22.214.171.124).
Sure. If we agree on all of this, I'll add all these examples in the PEP to make it crystal-clear.