[Distutils] [Python-Dev] [Python-checkins] peps: PEP 426: replace implied 'version starts with' with new ~= operator

Nick Coghlan ncoghlan at gmail.com
Tue Feb 26 16:10:46 CET 2013

On Tue, Feb 26, 2013 at 11:23 PM, Donald Stufft <donald.stufft at gmail.com> wrote:
> On Tuesday, February 26, 2013 at 8:17 AM, Nick Coghlan wrote:
> I *don't* like the idea of (== 1.3) and (== 1.3.0) being equivalent
> when (1.3) and (1.3.0) are substantially different, though. Instead,
> I'll reinstate a variant of the commentary from PEP 386 that pointed
> out the value of always publishing releases with a consistent number
> of components by including the trailing ".0".
> I think it makes absolute sense. These aren't strings they are version
> numbers.
> 1.0 == 1.00 == 1.00 == 1.000, adding more zeros doesn't change the
> semantics.

The number of components matters, precisely in the "significant
digits" sense that Chris mentions.

In a compatible release clause, 1.3 is a declaration of compatibility
with everything less than 2.0, whereas 1.3.0 limits the compatibility
to versions less than 1.4.0

If 1.3 and 1.3.0 mean different things in that context (as they
should), I'm *not* going to approve a standard that makes them the
same when you stick an "==" sign in front of them.

Remember, part of the goals of both PEP 386 and PEP 426 is to tighten
up cases where setuptools is considered too permissive, because it's
guessing in the face of ambiguity. "Trailing zeroes should be
considered implied" when comparing versions is one such guess.


Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia

More information about the Distutils-SIG mailing list