On Tuesday, February 26, 2013 at 2:53 PM, Chris Jerdonek wrote:
> On Tue, Feb 26, 2013 at 8:01 AM, Donald Stufft <donald.stu...@gmail.com 
> (mailto:donald.stu...@gmail.com)> wrote:
> > On Tuesday, February 26, 2013 at 10:10 AM, Nick Coghlan wrote:
> > 
> > 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.
> > 
> > It goes against the common usage in the Python community.
> > 
> > * 135869 total releases
> > * 66528 total releases that have at least 3 version levels (A.B.C)
> > * 20244 total releases that have at least 3 version levels where A.B and
> > A.B.0 appear to be equivalent[1].
> > * 86 total releases using at least 3 version levels where A.B and A.B.0
> > appear
> > to be different[2].
> > 
> > Would break the assumptions made in ~30% of the releases using at least 3
> > version levels, or 15% of all releases. Furthermore A.B == A.B.0 being
> > equivalent is a matter of opinion with no clear answer. I would be inclined
> > to say that not breaking it for the 15% of all releases is a greater net
> > benefit here then anyones notion of "right" unless there is a clear benefit.
> > 
> > For what it's worth, the implementation of PEP386 treats them as equal as
> > well,
> > choosing to pad the shorter one out to whatever the requisite number of 0's
> > is required to make the number of components equal.
> > 
> > On a tangential note PyPI should probably not be allowing you to upload both
> > a A.B and an A.B.0, or at the very least if we want PyPI to continue
> > allowing
> > it then we need to be explicit about how that should be handled in either
> > scheme.
> > 
> 
> 
> There is a similar issue with leading zeroes. For example, I was able
> to upload to PyPI versions both of the form A.B.2 and A.B.02. The PEP
> should probably be explicit and state that any N must be the unique
> integer representation, and state how that case should be handled if
> violated (with respect to equality, etc).
> 
> Is it easy to check if any releases on PyPI have versions with leading zeroes?
In [45]: l = [x for x in releases if any([y for y in x[1].split(".") if 
y.startswith("0") and y.isdigit() and not y.endswith("0")])]

In [46]: len(l)
Out[46]: 1162

Note this doesn't check if they have confusing versions, (e.g. 1.1 and 1.01) 
just if they
have a segment with a leading 0. 
> 
> --Chris 

_______________________________________________
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to