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

Avoid pypa/wheel API in editable_wheel #3907

Draft
wants to merge 3 commits into
base: dev/simplified_wheelbuilder
Choose a base branch
from

Conversation

abravalheri
Copy link
Contributor

@abravalheri abravalheri commented Apr 24, 2023

Summary of changes

  • Uses WheelBuilder and _core_metadata introduced in previous PRs instead of pypa/wheel.

(The pypa/wheel APIs for building wheel files are likely to change in the future)


This is part of a series of PRs:

The motivation for this series of PRs is the following:

  • Logic for generating .egg-info and .dist-info directories is intertwined and implicit
    (See Remove dependency on wheel #1386).
  • Setuptools uses pypa/wheel API which is not stable yet and is very likely to change in the future.
  • pypa/wheel maintainers previously described that the long term vision is to transfer bdist_wheel
    directly to setuptools (See pypa/wheel#262, pypa/wheel#472, pypa/wheel#472).

Pull Request Checklist

@abravalheri
Copy link
Contributor Author

It seems that the error in the CI:

setuptools-67.7.2.post20230424-0.editable-cp37-cp37m-macosx_12_0_x86_64.whl is not a supported wheel on this platform.

... is related to pypa/pip#11789 and will be fixed in pypa/pip#11945

I did a quick experiment trying to isolate and create a minimal reproducer for this problem in https://github.com/abravalheri/macos_tag_test/blob/main/.github/workflows/main.yaml

Here we can see that packaging and pip disagree in terms of which tags are supported in macOS.

@abravalheri
Copy link
Contributor Author

abravalheri commented Apr 24, 2023

The CI fails to run for the PR but runs OK for the branch! https://github.com/pypa/setuptools/actions/runs/4788889163

I noticed lately that there is a lot of warnings/errors happening when loading pytest related to PathDistribution.name that tries to access self.metadata['Name'] and generates a DeprecationWarning: Implicit None on return values is deprecated and will raise KeyErrors.
In theory Name is mandatory and should always be in metadata, I have no idea why this error is recurrent and why the test suite is flaky... Edit: this problem seems to be related to the race conditions discussed in https://github.com/pypa/setuptools/pull/3904#issuecomment-1527347124[^1].

@abravalheri abravalheri force-pushed the dev/simplified_wheelbuilder branch from f4e4737 to 7f05c32 Compare May 3, 2023 13:19
@abravalheri abravalheri force-pushed the dev/untangle_editable_wheel branch 2 times, most recently from 64425e1 to b99d254 Compare May 5, 2023 17:27
@abravalheri abravalheri marked this pull request as ready for review May 10, 2023 13:59
@abravalheri abravalheri marked this pull request as draft March 5, 2024 12:08
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

Successfully merging this pull request may close these issues.

None yet

1 participant