[Distutils] Re: Three clarification questions about PEP 425 and PyPy3

2018-09-04 Thread Paul Moore
On Fri, 31 Aug 2018 at 09:41, Paul Moore wrote: > My comment about wildcarding is basically a forlorn hope that if we > can't be sure what we're getting, maybe the best we can do is say > "well, py3-*-* sounds like it might work, and there's nothing better, > so let's give it a go". But if we

[Distutils] Re: Three clarification questions about PEP 425 and PyPy3

2018-09-03 Thread Brett Cannon
On Thu, 30 Aug 2018 at 11:21 Nathaniel Smith wrote: > If we're going to rethink this, > Well, I didn't want to "rethink" so much as "fill in". :) > then I would really like to move away from assigning special meaning to > specific combinations of tags. The thing where if you use cp36m as you

[Distutils] Re: Three clarification questions about PEP 425 and PyPy3

2018-08-31 Thread Brett Cannon
On Thu, 30 Aug 2018 at 23:13 Nathaniel Smith wrote: > On Thu, Aug 30, 2018 at 6:52 PM, Brett Cannon wrote: > > > > > > On Thu, 30 Aug 2018 at 11:21 Nathaniel Smith wrote: > >> > >> If we're going to rethink this, > > > > > > Well, I didn't want to "rethink" so much as "fill in". :) > > > >> >

[Distutils] Re: Three clarification questions about PEP 425 and PyPy3

2018-08-31 Thread Paul Moore
On Fri, 31 Aug 2018 at 07:15, Nathaniel Smith wrote: > > On Thu, Aug 30, 2018 at 6:52 PM, Brett Cannon wrote: > > > > > > On Thu, 30 Aug 2018 at 11:21 Nathaniel Smith wrote: > >> * Make the 3 tag categories totally independent. Compute a separate set > >> for each, and then take the full cross

[Distutils] Re: Three clarification questions about PEP 425 and PyPy3

2018-08-31 Thread Nathaniel Smith
On Thu, Aug 30, 2018 at 6:52 PM, Brett Cannon wrote: > > > On Thu, 30 Aug 2018 at 11:21 Nathaniel Smith wrote: >> >> If we're going to rethink this, > > > Well, I didn't want to "rethink" so much as "fill in". :) > >> >> then I would really like to move away from assigning special meaning to >>

[Distutils] Re: Three clarification questions about PEP 425 and PyPy3

2018-08-31 Thread Donald Stufft
> On Aug 30, 2018, at 9:54 PM, Brett Cannon wrote: > > I initially thought 'packaging', but I also don't want to care about Python > 2. :) So I haven't decided yet. At worst this just leads to a clearer > understanding of how tools should do wheel compatibility matching. If you want to get

[Distutils] Re: Three clarification questions about PEP 425 and PyPy3

2018-08-30 Thread Brett Cannon
On Thu, 30 Aug 2018 at 18:08 Donald Stufft wrote: > > On Aug 30, 2018, at 9:05 PM, Brett Cannon wrote: > > Basically I'm trying to figure out what tags pip and various tools should > be matching when determining what wheel to download from PyPI (so that diff > is what pip matches against now in

[Distutils] Re: Three clarification questions about PEP 425 and PyPy3

2018-08-30 Thread Brett Cannon
On Thu, 30 Aug 2018 at 11:41 Paul Moore wrote: > On Thu, 30 Aug 2018 at 19:30, Donald Stufft wrote: > > I find it helpful to generally not think of compatibility tags as hard > “this wheel is supported on this platform”, but more along the lines of “if > I built a wheel in the specified

[Distutils] Re: Three clarification questions about PEP 425 and PyPy3

2018-08-30 Thread Donald Stufft
> On Aug 30, 2018, at 9:05 PM, Brett Cannon wrote: > > Basically I'm trying to figure out what tags pip and various tools should be > matching when determining what wheel to download from PyPI (so that diff is > what pip matches against now in two scenarios and how I think what is matched >

[Distutils] Re: Three clarification questions about PEP 425 and PyPy3

2018-08-30 Thread Brett Cannon
On Thu, 30 Aug 2018 at 11:29 Donald Stufft wrote: > > > On Aug 30, 2018, at 1:59 PM, Nathaniel Smith wrote: > > That's the theory, but I think these tags are useless in practice. > > If you're on py35 and pip sees a wheel with py36 as the tag, then it falls > back to building from the sdist.

[Distutils] Re: Three clarification questions about PEP 425 and PyPy3

2018-08-30 Thread Nathaniel Smith
If we're going to rethink this, then I would really like to move away from assigning special meaning to specific combinations of tags. The thing where if you use cp36m as you Python ABI tag then you're forced to use cp36 as your python dialect tag doesn't make sense. And the thing where if you

[Distutils] Re: Three clarification questions about PEP 425 and PyPy3

2018-08-30 Thread Donald Stufft
> On Aug 30, 2018, at 3:07 PM, Daniel Holth wrote: > > Package version resolution is a completely different and np-complete problem. > https://en.wikipedia.org/wiki/Boolean_satisfiability_problem > They are related in the sense

[Distutils] Re: Three clarification questions about PEP 425 and PyPy3

2018-08-30 Thread Daniel Holth
Package version resolution is a completely different and np-complete problem. https://en.wikipedia.org/wiki/Boolean_satisfiability_problem On Thu, Aug 30, 2018 at 2:51 PM Chris Jerdonek wrote: > Broad question: is there a sense in which the same “resolver” logic could > be used for both

[Distutils] Re: Three clarification questions about PEP 425 and PyPy3

2018-08-30 Thread Chris Jerdonek
Broad question: is there a sense in which the same “resolver” logic could be used for both choosing the best tag, and choosing what versions of packages to install from abstract requirements, or are these fundamentally different paradigms that shouldn’t be thought of along the same lines? —Chris

[Distutils] Re: Three clarification questions about PEP 425 and PyPy3

2018-08-30 Thread Paul Moore
On Thu, 30 Aug 2018 at 19:30, Donald Stufft wrote: > I find it helpful to generally not think of compatibility tags as hard “this > wheel is supported on this platform”, but more along the lines of “if I built > a wheel in the specified environment, I would get the same results”. Those >

[Distutils] Re: Three clarification questions about PEP 425 and PyPy3

2018-08-30 Thread Donald Stufft
> On Aug 30, 2018, at 1:59 PM, Nathaniel Smith wrote: > > That's the theory, but I think these tags are useless in practice. > > If you're on py35 and pip sees a wheel with py36 as the tag, then it falls > back to building from the sdist. For ABI-related tags this makes sense, > because

[Distutils] Re: Three clarification questions about PEP 425 and PyPy3

2018-08-30 Thread Daniel Holth
As far as I know no one has released a compiler that turns f-strings into not-f-strings. If something like that existed, then you could have two wheels for the same software, one that had been passed through the compiler to remove f-strings and gain compatibility with older Python. If you were

[Distutils] Re: Three clarification questions about PEP 425 and PyPy3

2018-08-30 Thread Nathaniel Smith
On Thu, Aug 30, 2018, 08:23 Nick Coghlan wrote: > On Thu, 30 Aug 2018 at 09:58, Brett Cannon wrote: > > On Wed, 29 Aug 2018 at 15:54 Nathaniel Smith wrote: > >> This is a tricky decision. Any time a new Python comes out, some > >> existing wheels will continue to work fine, and some will be

[Distutils] Re: Three clarification questions about PEP 425 and PyPy3

2018-08-30 Thread Brett Cannon
So based on all of this, here is my proposal of what the compatible tags should become (in priority order from most to least strict). In the list below yellow means the value changed compared to the previous tag, blue means it's something I'm proposing to add, and red is something I'm proposing to

[Distutils] Re: Three clarification questions about PEP 425 and PyPy3

2018-08-30 Thread Daniel Holth
It's not an intuitive system. We have wheel tags to choose the best alternative wheel or fall back to sdist. So py3-none-any is fine for f-strings if no other candidate wheel (a list of all available wheels for the same version number of a package) has been compiled to not require f-strings. The

[Distutils] Re: Three clarification questions about PEP 425 and PyPy3

2018-08-30 Thread Nick Coghlan
On Thu, 30 Aug 2018 at 09:58, Brett Cannon wrote: > On Wed, 29 Aug 2018 at 15:54 Nathaniel Smith wrote: >> This is a tricky decision. Any time a new Python comes out, some >> existing wheels will continue to work fine, and some will be broken. >> One goal is to avoid installing broken wheels.

[Distutils] Re: Three clarification questions about PEP 425 and PyPy3

2018-08-29 Thread Brett Cannon
On Wed, 29 Aug 2018 at 15:54 Nathaniel Smith wrote: > On Wed, Aug 29, 2018 at 10:25 AM, Brett Cannon wrote: > > > > > > On Wed, 29 Aug 2018 at 01:56 Nathaniel Smith wrote: > >> > >> On Tue, Aug 28, 2018 at 11:46 AM, Brett Cannon > wrote: > >> > py36 > >> > > >> > py36-none-% but not

[Distutils] Re: Three clarification questions about PEP 425 and PyPy3

2018-08-29 Thread Nathaniel Smith
On Wed, Aug 29, 2018 at 10:25 AM, Brett Cannon wrote: > > > On Wed, 29 Aug 2018 at 01:56 Nathaniel Smith wrote: >> >> On Tue, Aug 28, 2018 at 11:46 AM, Brett Cannon wrote: >> > py36 >> > >> > py36-none-% but not py36-none-any: 2 (example) >> > >> > py3 >> > >> > py3-none-% but not py3-none-any:

[Distutils] Re: Three clarification questions about PEP 425 and PyPy3

2018-08-29 Thread Brett Cannon
On Wed, 29 Aug 2018 at 01:56 Nathaniel Smith wrote: > On Tue, Aug 28, 2018 at 11:46 AM, Brett Cannon wrote: > > py36 > > > > py36-none-% but not py36-none-any: 2 (example) > > > > py3 > > > > py3-none-% but not py3-none-any: 142 (example) > > Oh right, and these ones are totally sensible: this

[Distutils] Re: Three clarification questions about PEP 425 and PyPy3

2018-08-29 Thread Nathaniel Smith
On Tue, Aug 28, 2018 at 11:46 AM, Brett Cannon wrote: > py36 > > py36-none-% but not py36-none-any: 2 (example) > > py3 > > py3-none-% but not py3-none-any: 142 (example) Oh right, and these ones are totally sensible: this is the correct tag for a project that ships some vendored shared

[Distutils] Re: Three clarification questions about PEP 425 and PyPy3

2018-08-29 Thread Nathaniel Smith
On Tue, Aug 28, 2018 at 11:46 AM, Brett Cannon wrote: > cp36 > > %cp36-none-any.whl: 7 (example) > %cp36-none-%.whl: 70 (example) > cp36-none-%.whl but not cp36-none-any.whl: 65 (example that Nathaniel knows > very well ;) Yeah, that's an old hack that never got removed, and causes problems:

[Distutils] Re: Three clarification questions about PEP 425 and PyPy3

2018-08-28 Thread Brett Cannon
On Mon, 27 Aug 2018 at 19:05 Nathaniel Smith wrote: > I think the answer to all of these questions is "well, no-one's ever > really looked that closely". > I figured, but I just needed someone to verify that hunch was correct. :) > > There's a theory behind the tags; they're supposed to be a

[Distutils] Re: Three clarification questions about PEP 425 and PyPy3

2018-08-27 Thread Daniel Holth
That's right. No one writes 2to3 but for python 3.6 -> 3.7. The js people do. If we got into it we could have wheel tags for that sort of thing. In practice only a few classes of tags are used. On Mon, Aug 27, 2018, 22:06 Nathaniel Smith wrote: > I think the answer to all of these questions is

[Distutils] Re: Three clarification questions about PEP 425 and PyPy3

2018-08-27 Thread Nathaniel Smith
I think the answer to all of these questions is "well, no-one's ever really looked that closely". There's a theory behind the tags; they're supposed to be a reasonably expressive language for talking about Python dialect compatibility, Python C ABI compatibility, and platform ABI compatibility,

[Distutils] Re: Three clarification questions about PEP 425 and PyPy3

2018-08-27 Thread Brett Cannon
And to help in getting a reply, here is the trimmed-down results for CPython 3.7 to compare against: [('cp37', 'cp37m', 'macosx_10_13_x86_64'), … ('cp37', 'abi3', 'macosx_10_13_x86_64'), … ('cp37', 'none', 'macosx_10_13_x86_64'), … ('cp36', 'abi3',