Skip to content

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

@github-actions github-actions bot added the CI: Run cibuildwheel Run wheel building tests on a PR label Oct 16, 2024
QuLogic added a commit to QuLogic/matplotlib that referenced this pull request Jul 3, 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 QuLogic force-pushed the dynamic-license branch from 43670d7 to b3f3db9 Compare July 3, 2025 06:08
@QuLogic QuLogic force-pushed the dynamic-license branch 2 times, most recently 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:)

@rgommers
Copy link

rgommers commented Aug 9, 2025

I used pip 24.3.1 to install from this branch and from the wheels generated in CI without any issues.

I verified this now all the way back to pip 20, it's indeed not a problem. It doesn't do metadata version validation for minor version bumps.

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).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants