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

GH Actions: Fix build of macOS x86_64 wheels, build wheels for sagemath-{bliss,coxeter3,mcqd,tdlib} for PyPI #36525

Merged
merged 21 commits into from
May 25, 2024

Conversation

mkoeppe
Copy link
Contributor

@mkoeppe mkoeppe commented Oct 24, 2023

Because the GitHub runner macos-latest is now Apple Silicon, building x86_64 wheels is broken. We fix this here by using macos-13 for building x86_64.

We speed up the build on Linux by bootstrapping only once in each job, and configuring and building packages of the Sage distribution only once for each Linux platform. Bootstrapping is now done outside of the container, and we configure Sage to use a --prefix in a directory mounted from the host, and storing the config.status.

We add wheels for the optional-extension packages sagemath-bliss, ... that can be built on top of the existing modularized distributions. (The packages sagemath-meataxe and sagemath-sirocco have to wait for sagemath-modules to become available.)

Tests at https://github.com/mkoeppe/sage/actions/workflows/dist.yml:

Follow-up:

Part of:

📝 Checklist

  • The title is concise, informative, and self-explanatory.
  • 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

@mkoeppe mkoeppe added this to the sage-10.2 milestone Oct 24, 2023
@mkoeppe mkoeppe self-assigned this Oct 24, 2023
@mkoeppe mkoeppe modified the milestones: sage-10.2, sage-10.3 Nov 5, 2023
@mkoeppe mkoeppe removed this from the sage-10.3 milestone Mar 5, 2024
Copy link

github-actions bot commented Mar 20, 2024

Documentation preview for this PR (built with commit 2b2bbb2; changes) is ready! 🎉
This preview will update shortly after each push to this PR.

@mkoeppe mkoeppe force-pushed the gha_wheels_bliss branch 2 times, most recently from 55bd7dc to d586457 Compare May 12, 2024 19:42
@mkoeppe mkoeppe changed the title GH Actions: Build wheels for sagemath-{bliss,coxeter3,...} for PyPI GH Actions: Fix build of macOS x86_64 wheels, build wheels for sagemath-{bliss,coxeter3,...} for PyPI May 14, 2024
@mkoeppe mkoeppe added this to the sage-10.4 milestone May 14, 2024
@mkoeppe mkoeppe marked this pull request as ready for review May 14, 2024 07:42
@mkoeppe mkoeppe force-pushed the gha_wheels_bliss branch from 9a8a4e4 to f23b657 Compare May 14, 2024 22:21
@mkoeppe mkoeppe force-pushed the gha_wheels_bliss branch 5 times, most recently from 1106522 to 769a226 Compare May 14, 2024 23:36
@mkoeppe mkoeppe force-pushed the gha_wheels_bliss branch 3 times, most recently from bb18636 to faa74e2 Compare May 15, 2024 01:30
@mkoeppe mkoeppe force-pushed the gha_wheels_bliss branch from faa74e2 to d086b9b Compare May 15, 2024 02:35
@mkoeppe mkoeppe changed the title GH Actions: Fix build of macOS x86_64 wheels, build wheels for sagemath-{bliss,coxeter3,...} for PyPI GH Actions: Fix build of macOS x86_64 wheels, build wheels for sagemath-{bliss,coxeter3,mcqd,tdlib} for PyPI May 15, 2024
@mkoeppe
Copy link
Contributor Author

mkoeppe commented May 17, 2024

Thanks, Volker.

vbraun pushed a commit to vbraun/sage that referenced this pull request May 18, 2024
… wheels for sagemath-{bliss,coxeter3,mcqd,tdlib} 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 -->

Because the GitHub runner `macos-latest` is now Apple Silicon, building
x86_64 wheels is broken. We fix this here by using `macos-13` for
building x86_64.

We speed up the build on Linux by bootstrapping only once in each job,
and configuring and building packages of the Sage distribution only once
for each Linux platform. Bootstrapping is now done outside of the
container, and we configure Sage to use a `--prefix` in a directory
mounted from the host, and storing the `config.status`.

We add wheels for the optional-extension packages **sagemath-bliss**,
... that can be built on top of the existing modularized distributions.
(The packages **sagemath-meataxe** and **sagemath-sirocco** have to wait
for **sagemath-modules** to become available.)

Tests at https://github.com/mkoeppe/sage/actions/workflows/dist.yml:
- Successful run at
https://github.com/mkoeppe/sage/actions/runs/9100668826 (the failure in
release_dist is  unrelated)

Follow-up:
- sagemath#37541, refactor as reusable GH Actions workflow -- for use by
cysignals, cypari2, pplpy etc.

Part of:
- sagemath#31251

<!-- Why is this change required? What problem does it solve? -->
<!-- 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: ...
-->
- Depends on sagemath#36521
- Depends on sagemath#37503 (merged here)

<!-- If you're unsure about any of these, don't hesitate to ask. We're
here to help! -->
    
URL: sagemath#36525
Reported by: Matthias Köppe
Reviewer(s):
@vbraun vbraun merged commit 83a7fac into sagemath:develop May 25, 2024
24 of 39 checks passed
@mkoeppe mkoeppe deleted the gha_wheels_bliss branch May 29, 2024 18:55
vbraun pushed a commit to vbraun/sage that referenced this pull request May 31, 2024
    
<!-- ^ 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants