Skip to content

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

Closed as not planned

Description

@pradyunsg

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.

Activity

  1. agronholm commented on Jan 11, 2022

    @agronholm
    Contributor

    This has been discussed at length over at #411.

  2. agronholm commented on Jan 11, 2022

    @agronholm
    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.

  3. takluyver commented on Jan 11, 2022

    @takluyver
    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.

  4. agronholm commented on Jan 11, 2022

    @agronholm
    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".

  5. pfmoore commented on Jan 11, 2022

    @pfmoore
    Member

    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.

  6. 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[/+] on Jan 11, 2022
  7. takluyver commented on Jan 12, 2022

    @takluyver
    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.

  8. added this to the 1.0.0 milestone on Oct 20, 2022
  9. agronholm commented on May 22, 2024

    @agronholm
    Contributor

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions