On Mon, Dec 22, 2014 at 12:20 PM, Marcus Smith <[email protected]> wrote: > In PEP440, foo-X.Y.Z does not satisfy the specifier "foo>X.Y" (although it > satisfies "foo>=X.Y") > > for example, foo-1.7.2 will not satisfy "foo>1.7", but it will satisfy > "foo>=1.7"
This makes sense if you view "1.7" as encompassing all of the releases 1.7.0, 1.7.1, 1.7.2, etc. (and their variants). It's a bit like the "significant digits" of a number. [1] You want the release to be bigger than all releases of that type. --Chris [1] http://en.wikipedia.org/wiki/Significant_figures > > for '>' and '<', PEP440 states that they are "interpreted as implying the > prefix based version exclusion clause != V.*" > > the rationale from Donald for this is explained here: > https://bitbucket.org/pypa/setuptools/issue/301/101-in-requirementparse-foo-10-results > > in brief, this was done to avoid pre-releases (i.e. something like > "foo-1.7a1") satisfying "foo<1.7". > > It seems to me we've just traded one confusion for another, and this seems > worse (to me at least, although I'm trying to let it sink in) > > 1.7.2 is greater than 1.7, and the specifiers should honor that. It's hard > to accept otherwise. > > Yes, it's true in the past, when people would get a pre-release installed > (for example 1.7a1), when they really wanted something in the 1.6.X series, > that was also confusing. But now that pip now excludes pre-releases by > default, it seems that confusion is mostly solved practically speaking, so > why solve it (and create a new confusion)? > > Marcus > > > > > > > _______________________________________________ > Distutils-SIG maillist - [email protected] > https://mail.python.org/mailman/listinfo/distutils-sig > _______________________________________________ Distutils-SIG maillist - [email protected] https://mail.python.org/mailman/listinfo/distutils-sig
