-
-
Notifications
You must be signed in to change notification settings - Fork 480
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
GH Actions: Build platform-independent wheels of sagemath-environment, sage-setup, sage-sws2rst for PyPI #37099
Conversation
d5a971d
to
483d18b
Compare
483d18b
to
3ebcc58
Compare
3ebcc58
to
9fd0a04
Compare
@kiwifb Any thoughts on this one here? |
I am not very hot on the subject of producing that kind of wheels. I am not qualified to review this. I should have said two weeks ago but I was sick. |
No worries! |
0e6069f
to
f971ead
Compare
Documentation preview for this PR (built with commit c3eb320; changes) is ready! 🎉 |
5afeb6c
to
c3eb320
Compare
Will you test the updated workflow somewhere? |
Completed successfully |
The artifacts are now split by architecures by the changed name I don't know where the artifacts are used downstream. Are they used? If so, this change may break something downstream. |
The artifacts are not used by anything. They are uploaded only so that one can download them manually if something needs to be checked. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM.
Thank you! |
…gemath-environment, sage-setup, sage-sws2rst for PyPI <!-- ^^^^^ Please provide a concise, informative and self-explanatory title. Don't put issue numbers in there, do this in the PR body below. For example, instead of "Fixes sagemath#1234" use "Introduce new method to calculate 1+1" --> <!-- Describe your changes here in detail --> <!-- Why is this change required? What problem does it solve? --> We already build platform wheels for **sagemath-{objects,categories,repl}** for PyPI using cibuildwheel. Here we add building of platform-independent wheels for **sagemath- environment** and **sage-setup** and **sage-sws2rst** to the GH Actions workflow. (They are needed, for example, for pyodide / jupyterlite.) To test locally: `make pypi-noarch-wheels` We also update actions/upload-artifact, actions/download-artifact to v4. This requires a restructuring, as we can no longer upload the wheels for different architectures (built by separate matrix jobs) to the same artifact: https://github.com/actions/upload-artifact?tab=readme-ov- file#not-uploading-to-the-same-artifact Instead we upload them as separate artifacts and deploy them to PyPI directly from the job that built them. This is: - part of sagemath#31251 <!-- If this PR resolves an open issue, please link to it here. For example "Fixes sagemath#12345". --> <!-- If your change requires a documentation PR, please link it appropriately. --> ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> <!-- If your change requires a documentation PR, please link it appropriately --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> <!-- Feel free to remove irrelevant items. --> - [x] The title is concise, informative, and self-explanatory. - [x] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### ⌛ Dependencies <!-- List all open PRs that this PR logically depends on - sagemath#12345: short description why this is a dependency - sagemath#34567: ... --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> URL: sagemath#37099 Reported by: Matthias Köppe Reviewer(s): Kwankyu Lee, Matthias Köppe
… for GitHub Release assets <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes sagemath#12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes sagemath#12345". --> - Fixes sagemath#37752, at least for the non-"huge" tarballs (we skip the "huge" tarballs here). - More options for `sage -package download` (a subset of what `sage -package list` supports) - Also remove some zombie package files Test run: https://github.com/mkoeppe/sage/actions/workflows/dist.yml ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [ ] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### ⌛ Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - sagemath#12345: short description why this is a dependency --> <!-- - sagemath#34567: ... --> - Depends on sagemath#37099 (merged to resolve merge conflict) URL: sagemath#37762 Reported by: Matthias Köppe Reviewer(s): Kwankyu Lee, Matthias Köppe
… for GitHub Release assets <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes sagemath#12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes sagemath#12345". --> - Fixes sagemath#37752, at least for the non-"huge" tarballs (we skip the "huge" tarballs here). - More options for `sage -package download` (a subset of what `sage -package list` supports) - Also remove some zombie package files Test run: https://github.com/mkoeppe/sage/actions/workflows/dist.yml ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [ ] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### ⌛ Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - sagemath#12345: short description why this is a dependency --> <!-- - sagemath#34567: ... --> - Depends on sagemath#37099 (merged to resolve merge conflict) URL: sagemath#37762 Reported by: Matthias Köppe Reviewer(s): Kwankyu Lee, Matthias Köppe
… for GitHub Release assets <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes sagemath#12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes sagemath#12345". --> - Fixes sagemath#37752, at least for the non-"huge" tarballs (we skip the "huge" tarballs here). - More options for `sage -package download` (a subset of what `sage -package list` supports) - Also remove some zombie package files Test run: https://github.com/mkoeppe/sage/actions/workflows/dist.yml ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [ ] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### ⌛ Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - sagemath#12345: short description why this is a dependency --> <!-- - sagemath#34567: ... --> - Depends on sagemath#37099 (merged to resolve merge conflict) URL: sagemath#37762 Reported by: Matthias Köppe Reviewer(s): Kwankyu Lee, Matthias Köppe
<!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes sagemath#12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes sagemath#12345". --> The change made in sagemath#37099 to accommodate the new design of actions/{up,down}load-artifact@v4 broke the upload of macOS wheels to PyPI (see https://github.com/sagemath/sage/actions/runs/9234698750/job/2 5408786962#step:8:23); this was masked so far because the build of macOS wheels was broken until sagemath#36525. Here we revert to using a separate job that uploads all platform wheels. This uses the new keywords `pattern` and `merge-multiple` of actions/download-artifact@v4 Example run: https://github.com/mkoeppe/sage/actions/runs/9291646178/job/25572343853 ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation and checked the documentation preview. ### ⌛ Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - sagemath#12345: short description why this is a dependency --> <!-- - sagemath#34567: ... --> URL: sagemath#38111 Reported by: Matthias Köppe Reviewer(s): Kwankyu Lee
We already build platform wheels for sagemath-{objects,categories,repl} for PyPI using cibuildwheel.
Here we add building of platform-independent wheels for sagemath-environment and sage-setup and sage-sws2rst to the GH Actions workflow. (They are needed, for example, for pyodide / jupyterlite.)
To test locally:
make pypi-noarch-wheels
We also update actions/upload-artifact, actions/download-artifact to v4. This requires a restructuring, as we can no longer upload the wheels for different architectures (built by separate matrix jobs) to the same artifact: https://github.com/actions/upload-artifact?tab=readme-ov-file#not-uploading-to-the-same-artifact
Instead we upload them as separate artifacts and deploy them to PyPI directly from the job that built them.
This is:
📝 Checklist
⌛ Dependencies