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

Metadata of wheels created with multiple tools #1812

Open
1 task done
HexDecimal opened this issue Feb 12, 2025 · 0 comments
Open
1 task done

Metadata of wheels created with multiple tools #1812

HexDecimal opened this issue Feb 12, 2025 · 0 comments

Comments

@HexDecimal
Copy link

Issue Description

Relevant documentation of WHEEL and Generator.

Generator is the name and optionally the version of the software that produced the archive.

Tools such as auditwheel or delocate alter and rewrite wheels by packing external dependencies inside of it. Excluding the used tool from the wheel metadata would cause any regressions from these tools to be harder to track down and debug.

As a maintainer of delocate I've made the unwitting decision to add a 2nd Generator field to annotate which version of Delocate modified the wheel, but this broke other third party tools such as wheel-inspect which expects only a single instance of Generator. The documentation is ambiguous and doesn't clearly state that either of these approaches are wrong. My reading of it was that tools writing or rewriting a wheel are supposed to be in the WHEEL metadata as a Generator, and to omit or replace a Generator field would be to lie about the wheels origins.

Generally it does not seem like the original specification accounted for there to be more than one tool used to create a wheel in the first place. This is combined with a file format which allows for duplicate keys which causes the ambiguity.

I was hoping to hear an authoritative answer to these questions:

  • Is the Generator field one only, or one or more?
  • Where should the names/versions of additional tools used to create a wheel be tracked?

Code of Conduct

  • I am aware that participants in this repository must follow the PSF Code of Conduct.
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

1 participant