-
Notifications
You must be signed in to change notification settings - Fork 3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add a machine specific wheel tag as highest precedence wheel tag #6523
Comments
I designed the PEP 425 tag system so that linux_x86_64 is the machine specific tag, and as long as you limit the distribution of those wheels this works. Please do fix this somehow. We need to be able to override specific broken manylinux wheels by placing higher precedence wheels in the search path. |
Is this specific to Linux, or should other systems also get similar tags? I know Linux is the place where this is needed, but it seems somewhat overly specific if |
Interesting never thought of it that way before. Windows wheels have no compatibility guarantee either and a Linux wheels might be widely compatibile whatever the tag; it's a matter of probability.
…On Fri, May 24, 2019, at 2:23 AM, Tzu-ping Chung wrote:
Is this specific to Linux, or should other systems also get similar tags? I know Linux is the place where this is needed, but it seems somewhat overly specific if `linux_x86_64` is used for the abstract idea of machine-specific, or inconsistent if only Linux can have machine-specific wheels.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub <#6523?email_source=notifications&email_token=AABSZEXDCHIJTQ4G344NM3LPW6CVDA5CNFSM4HOZ23E2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODWEIVYA#issuecomment-495487712>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AABSZEVD5SX5ZFUXNSMKDTLPW6CVDANCNFSM4HOZ23EQ>.
|
It's right there in PEP 425 "Tools should use the most-preferred architecture dependent tag e.g. cp33-cp33m-win32 or the most-preferred pure python tag e.g. py33-none-any by default.", but Maybe we could get around this problem by replacing the |
If you don't mind this issue should be closed. I'm frustrated that I haven't been allowed to be the authority on my own non-intuitive invention. The proposed solution of a random tag per machine would be less convenient than the status quo. |
FWIW, I'm happy to defer to @dholth on this.
Can you elaborate on this, by the way? What is the manylinux config file you're referring to? (pardon my ignorance on this) |
It doesn't make sense that |
It is a semiotic disconnect
…On Fri, May 31, 2019, at 5:13 PM, Donald Stufft wrote:
It doesn't make sense that ` linux_x86_64` is the more specific tag, given it will match on literally any Linux machine. It is not more specific, it is broadly more generic, the only thing *more* generic is `any`.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub <#6523?email_source=notifications&email_token=AABSZEV7ZNFLND73MM5A6O3PYGIFTA5CNFSM4HOZ23E2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODWWMKAY#issuecomment-497861891>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AABSZESQAZYUIGCYIZEM7RDPYGIFTANCNFSM4HOZ23EQ>.
|
@dstufft I've noticed that I like systems that fail with false positives as "I installed a package but it didn't run" while you tend to build systems that fail with false negatives "I copied the package to another machine but it didn't install at all". I think that is where the communication breaks down unfortunately.
I would be open to any static tag that could come with instructions to copy with care because it doesn't guarantee compatibility. For example py3-none-localhost or xunil_x86_64 (because Linux compatibility is so backwards).
|
@dholth @dstufft I'm okay either way (since this doesn't affect me directly) and I'm happy to defer to you both (in case there's more discussion to be had here) or maintain status quo. @dholth if you think a "localhost" tag is good enough here, please do reopen this issue since that's what I view the proposed tag as being. FWIW, I like that name too. :) |
👍 for the idea of a |
If that makes sense to you then it will solve my problem. Suppose pypi has a broken manylinux wheel for a database driver. You can compile a wheel for that driver.
Now place that in If you used a random number instead of a fixed tag, that wouldn't be smart enough to detect when you changed your machine to be incompatible with the shared library the wheel links to; maybe you uninstalled or upgraded the driver. We can't usefully encode the complete set of shared libraries and symbol versions on your system in a tag. You might want to give your wheel both arch tags so it was easier to keep track of what was going on inside the wheel: |
|
It's inconvenient that wheel tags are not more intuitive. The system was built only to help install the "right" version of a package when there can be multiple builds of a package under consideration, if it also expresses an abstract idea that might be a bonus. The trouble is that these are all separate things: The one the user wants |
Corresponding tracker issue for |
Relabeled, since this can now be scoped as an enhancement to an existing PEP (PEP 425). |
There's a draft PEP for augumenting the spec: https://discuss.python.org/t/draft-pep-the-local-wheel-tag/3145/. Since we likely won't need to do anything until |
What's the problem this feature will solve?
A machine-specific tag lets you compile a wheel on your local machine, for your local machine, and have it get picked above the manylinux1 wheel from pypi without disabling manylinux1 completely.
Additional context
#3921 has all the past conversation related to this. #2875 is sorta related.
The text was updated successfully, but these errors were encountered: