> 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.
I think that's a mistake. Specifying "2.6" is equivalent to specifying "==2.6". With your proposed meaning of "==", either == is not transitive, or all versions compare equal. As 2.6==2.6.1 and 2.6==2.6.2, we get (with transitive ==), 2.6.1==2.6.2. Furthermore, if the same wildcarding applies to major versions as well, i.e. Requires-Python: 3 means any 3.x, then we have 3==3.1, 3==3.2, 3.1==3.1.3, 3.2==3.2.4, and, transitively, 3.1.3==3.2.4. This is undesirable. >>>> 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. Please define "belongs to the 3.6 series". In PEP 386 terminology, I would expect that this means "the 'version' part is 3.6", so 3.6b4 *does* belong to the 3.6 series. Regards, Martin _______________________________________________ Distutils-SIG maillist - [email protected] http://mail.python.org/mailman/listinfo/distutils-sig
