Skip to content
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

Follow PEP 503's normalisation for dist-info folder name and wheel name #440

Closed
pradyunsg opened this issue Jan 11, 2022 · 7 comments
Closed
Milestone

Comments

@pradyunsg
Copy link
Member

See https://discuss.python.org/t/revisiting-distribution-name-normalization/12348/ for the long form discussion.

Basically, wheel-generated wheels do not canonicalise name of the dist-info folder to remove . from the name of the folder. This means that packages generated with wheel can have package.name-1.0.0.dist-info instead of package_name-1.0.0.dist-info.

@agronholm
Copy link
Contributor

This has been discussed at length over at #411.

@agronholm
Copy link
Contributor

I have some local code to address this, but I need to ensure that it can also work with wheels generated by older versions of wheel.

@takluyver
Copy link
Member

The discussion on discourse was - at least as I understood it - about what to do for distribution names in wheel filenames. The agreement is to move towards similar normalisation rules everywhere, so not just package_name-1.0.0.dist-info but also package_name-1.0.0-py3-none-any.whl.

@agronholm
Copy link
Contributor

Sure, but there are potential issues which may come up when the same project is packaged by a newer version of wheel and it produces a different file name. I would just like to acknowledge this and start to think about what we can (or cannot) do to "soften the blow".

@pfmoore
Copy link
Member

pfmoore commented Jan 11, 2022

I agree with @agronholm - the discussion over on Discourse hasn't yet really addressed transition questions like this (as far as I can recall). I'm not sure what is needed here (maybe it's just something simple like "all tools must be prepared to read non-normalised filenames, which may come from older versions of tools, but must always write normalised forms") but I think we should get consensus so that (a) all tools are behaving the same, and (b) the agreed behaviour gets documented somewhere.

@pradyunsg pradyunsg changed the title Follow PEP 503's normalisation for dist-info folder name Follow PEP 503's normalisation for dist-info folder name and wheel name Jan 11, 2022
@takluyver
Copy link
Member

In the spec, the name normalisation based on PEP 503 is a 'should' and we've said that "tools consuming wheels must be prepared to accept . (FULL STOP) and uppercase letters, however, as these were allowed by an earlier version of this specification."

Admittedly there wasn't much discussion about this, but it seems fairly self evident: we've got a rule for how to consistently generate new wheel filenames, but we can't change all the ones already made, so you can't assume that all wheels will have a normalised filename.

@agronholm
Copy link
Contributor

I'm closing this as I'm now working on a proper API in pypa/packaging#805.

@agronholm agronholm closed this as not planned Won't fix, can't repro, duplicate, stale May 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants