Skip to content

BLD: Implement PEP639 licensing #28982

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

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

QuLogic
Copy link
Member

@QuLogic QuLogic commented Oct 16, 2024

PR summary

Note that this would require meson-python 0.18.0, which was only released in May 2025, so we may not want to include this just yet.

It does fix the issue that that wheels do not include all licenses that we have in the sdist. Because of some discussion about the dynamicity of the license(-files) key, it does not automatically include the licenses of subprojects.

PR checklist

This allows developers to test out the build locally. With this, I was
able to fix the test command by setting `PIP_PREFER_BINARY` to avoid
re-building Pillow, which accidentally dropped manylinux2014 wheels in
the latest release: python-pillow/Pillow#9057

Note also that we previously set `CIBW_AFTER_BUILD`, but this doesn't
seem to be a valid setting. Thus I have dropped the `twine check`, which
only tests the `README` rendering and so checking the sdist is
sufficient. Additionally, I have commented out the license check, as we
cannot do multiple licenses with meson-python without PEP639 (matplotlib#28982).
@QuLogic QuLogic force-pushed the dynamic-license branch from 231a093 to 8344c33 Compare July 3, 2025 06:19
QuLogic added a commit to QuLogic/matplotlib that referenced this pull request Jul 4, 2025
This allows developers to test out the build locally. With this, I was
able to fix the test command by setting `PIP_PREFER_BINARY` to avoid
re-building Pillow, which accidentally dropped manylinux2014 wheels in
the latest release: python-pillow/Pillow#9057

Note also that we previously set `CIBW_AFTER_BUILD`, but this doesn't
seem to be a valid setting. Thus I have dropped the `twine check`, which
only tests the `README` rendering and so checking the sdist is
sufficient. Additionally, I have commented out the license check, as we
cannot do multiple licenses with meson-python without PEP639 (matplotlib#28982).
@QuLogic
Copy link
Member Author

QuLogic commented Jul 8, 2025

Note, this is now working, I think, but it would require meson-python 0.18, which was only released in April of this year, and Meson 1.6, released October last year.

@rgommers
Copy link

rgommers commented Jul 8, 2025

This is looking pretty good to me.

it would require meson-python 0.18, which was only released in April of this year, and Meson 1.6, released October last year.

I wouldn't worry about that, using recent build dependencies is almost never a problem. The more relevant constraint is that this drops support for older pip versions because of the bump in Core Metadata - pip 25.0 seems to be the first that supports it (didn't test that though, derived from https://pip.pypa.io/en/stable/news/#v25-0).

@QuLogic
Copy link
Member Author

QuLogic commented Jul 10, 2025

I'm not sure if that's a problem; I used pip 24.3.1 to install from this branch and from the wheels generated in CI without any issues.

@rgommers
Copy link

Hmm interesting. The wheels do contain Metadata-Version: 2.4, and support was added in pip 25.0 for that version. It looks like by default it's not validating metadata though: https://github.com/pypa/pip/blob/c3ad577ffd4b880434d0ec5c2a414908e7e14722/src/pip/_vendor/packaging/metadata.py#L702-L709. Good news then:)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI: Run cibuildwheel Run wheel building tests on a PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants