On Mon, Dec 28, 2009 at 4:17 AM, Stephen J. Turnbull <step...@xemacs.org> wrote: > Ben Finney writes: > > > Instead, the default should be `=='. That is, `Requires-Python: 3' > > should be equivalent to `Requires-Python: ==3'; and only "3" or "3.0" or > > "3.0.0" etc. will match. I maintain that is what most people will expect > > on seeing that syntax. > > I really don't think your assessment that a majority agrees with you > is warranted. The demand for backward compatibility is so strong that > (wearing my maintainer hat, in other projects) I actually assume that > in compatibility claims a bare version number like 3 means >= 3.0.0 to > my listeners, unless explicitly qualified. > > Therefore, I think there should be no default. "Explicit is better > than implicit."
I am with Stephen here: If I read "Requires-Python: 3" outloud, it's equivalent to, "my project uses Python 3", and in python-dev, like anywhere else, it includes all versions of Python 3, unless a specific, explicit version is provided. > > And IMO the choice of "~=" or "=~" for the range match should be > avoided, since that looks like the regexp search operator in Perl, and > there "~= 3" would match "3", "3.0.4", and "2.3.5". The next obvious > interpretation is "fuzzy match", but that doesn't have an obvious, > more specific meaning. The usual comparson operators do have pretty > obvious interpretations, and are not hard to use. I think Antoine's proposal is good (using the range when "2.5" is used, and using 2.5.0 when explicitely needed), and fixes Martin's concerns. So I would be in favor of removing ~= and using Antoine's rule; Regards Tarek _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com