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

Adopt bdist_wheel from wheel project #1386

Closed
agronholm opened this issue Jun 5, 2018 · 7 comments · Fixed by #4369
Closed

Adopt bdist_wheel from wheel project #1386

agronholm opened this issue Jun 5, 2018 · 7 comments · Fixed by #4369
Assignees
Labels
help wanted major Needs Implementation Issues that are ready to be implemented.

Comments

@agronholm
Copy link
Contributor

agronholm commented Jun 5, 2018

Currently the setuptools.command.dist_info command relies on the bdist_wheel code to create a .dist-info directory. But since wheel has no public API, this is dangerous as that code could go away in the next release. The dist_info command should be natively implemented in setuptools instead, without the conversion from .egg-info.

jaraco added a commit that referenced this issue Jul 13, 2018
@jaraco
Copy link
Member

jaraco commented Jul 13, 2018

This effort is going to be a lot of work. The egg_info command has a lot of cruft and deprecated functionality... and the contract between egg_info and dist_info is largely implicit.

On the other hand, it looks like the main thing that dist_info needs is the metadata, which is written in the same format as with egg_info, so probably the distutils write_pkg_info can be leveraged directly. We'll take it bit-by-bit.

jaraco added a commit that referenced this issue Jul 13, 2018
@agronholm
Copy link
Contributor Author

I'm starting my summer vacation today. Hopefully I can contribute to this effort.

@pganssle pganssle added the major label Oct 6, 2018
@pganssle pganssle added Needs Triage Issues that need to be evaluated for severity and status. help wanted Needs Implementation Issues that are ready to be implemented. and removed Needs Triage Issues that need to be evaluated for severity and status. labels Oct 19, 2018
@mattip
Copy link
Contributor

mattip commented Jun 8, 2020

As per pypa/wheel#262, maybe an easier path would be to move bdist_wheel here and use an as-yet-not-created official API from wheel.

@agronholm
Copy link
Contributor Author

That would be ideal.

@merwok
Copy link
Contributor

merwok commented Jun 8, 2020

That sounds better than calling distutils’ write_pkg_info, as it does not handle the most recent metadata versions with email-style separation of headers and long description.

@abravalheri
Copy link
Contributor

pypa/packaging#383 and pypa/packaging#498 might be relevant here.

@jaraco
Copy link
Member

jaraco commented May 18, 2024

Steps to integrate bdist_wheel:

  • copy implementation of wheel/bdist_wheel to setuptools/commands/bdist_wheel
  • define distutils.command for bdist_wheel in setuptools
  • vendor wheel as setuptools/_vendor/wheel*
  • update build backend to no longer require wheel
  • prevent distutils.command from wheel package from being loaded (in
    eps = metadata.entry_points(group='distutils.commands', name=command)
    and maybe others); remove after a long term

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted major Needs Implementation Issues that are ready to be implemented.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants