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

CI: Portability tests for building on various Linux distributions and macOS #630

Open
wants to merge 10 commits into
base: master
Choose a base branch
from

Conversation

mkoeppe
Copy link
Contributor

@mkoeppe mkoeppe commented Nov 23, 2022

Using the reusable workflows of the Sage CI. It builds papilo, soplex, scip, pyscipopt from source.

The same is already in use in SCIP-SDP

Sample run: https://github.com/mkoeppe/PySCIPOpt/actions/runs/7969460775

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Feb 18, 2023

@mattmilten Any interest in this?

@mattmilten
Copy link
Collaborator

This looks very impressive, but I don't think it's necessary to run such an extensive test suite on a regular basis - certainly not for every single push.

@CGraczyk, do you have an opinion on this?

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Feb 20, 2023

certainly not for every single push

I've changed it so that it only runs when a tag is pushed

@matbesancon matbesancon reopened this May 26, 2023
@CGraczyk
Copy link
Collaborator

This seems nice to have but the question is how we should handle fails in that check, since i am not sure we can provide the support for all the different linux distributions - WDYT @matbesancon ?

@matbesancon
Copy link
Member

normally we should, as in, SCIP should compile on all distributions since there is not much changing from the SCIP point of view if the dependencies are available there

@CGraczyk
Copy link
Collaborator

It would be good to have the logs for the action again, to see why certain distributions are failing.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Jun 7, 2023

It would be good to have the logs for the action again, to see why certain distributions are failing.

Running at https://github.com/mkoeppe/PySCIPOpt/actions/runs/5195176263

Copy link

codecov bot commented Feb 12, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 52.72%. Comparing base (9ce5d73) to head (d76bd5e).

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #630   +/-   ##
=======================================
  Coverage   52.72%   52.72%           
=======================================
  Files          17       17           
  Lines        3829     3829           
=======================================
  Hits         2019     2019           
  Misses       1810     1810           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Feb 12, 2024

Meanwhile Sage has switched to Cython 3, so we see build errors on all platforms: https://github.com/mkoeppe/PySCIPOpt/actions/runs/7867400154/job/21463042569#step:11:3964

@mkoeppe mkoeppe marked this pull request as ready for review February 20, 2024 06:38
@mkoeppe mkoeppe changed the title CI: Portability tests for building on various Linux distributions CI: Portability tests for building on various Linux distributions and macOS Feb 25, 2024
vbraun pushed a commit to vbraun/sage that referenced this pull request Feb 25, 2024
…ests on M1 runners, add timeouts

<!-- ^^^^^
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 -->

- Fixing the failure with `macos-13-homebrew`, as seen in
https://github.com/sagemath/sage/actions/runs/7761817710/job/21171032513
and upstream uses of macos.yml
dimpase/primecountpy#11 (comment),
sagemath/cypari2#152
- Generalizing the `ld_classic` workaround from sagemath#36599 for the case of
full XCode.
  - This is to fix the failure seen on `homebrew-macos-13-usrlocal-
standard-xcode_15.0`, e.g. in https://github.com/scipopt/SCIP-
SDP/actions/runs/7793548242/job/21253452882?pr=9#step:10:2766
- Deactivating the `ld_classic` workaround when `LD` is set, as is in a
conda environment; as seen e.g. in https://groups.google.com/g/sage-
devel/c/1viBzw-ZaoQ/m/S_u9K20xAAAJ
- [Apple Silicon runners recently became
available](https://github.blog/changelog/2024-01-30-github-actions-
introducing-the-new-m1-macos-runner-available-to-open-source/); we add
some tests (example run:
https://github.com/mkoeppe/sage/actions/runs/7772086965/job/21194110510)
- On Apple Silicon, `tox -e local-conda-forge` now uses the correct
installer
- Intel runners were recently upgraded too, increase parallelism.
- Add self-destruct sequence to cancel workflows before the 6h limit
(catches linbox-related build hang)
- Actually handle the input `extra_sage_packages` (for
scipopt/PySCIPOpt#630)

<!-- 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. -->

Follow-ups, not addressed here:
- conda-forge-macos-latest-minimal tachyon build failure - needs sagemath#36969
- adding a config that tests arm64 conda-forge-minimal - would need
config.guess updates in numerous packages
- arm64 conda-forge-standard - matplotlib build failure (https://github.
com/mkoeppe/sage/actions/runs/7810111886/job/21313997438#step:10:2749)
- hangs or excessive build time that lead to timeouts, probably from
linbox

### :memo: 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.
- [x] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation accordingly.

### :hourglass: 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#37237
Reported by: Matthias Köppe
Reviewer(s): Matthias Köppe, Tobias Diez
vbraun pushed a commit to vbraun/sage that referenced this pull request Feb 26, 2024
…ests on M1 runners, add timeouts

    
<!-- ^^^^^
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 -->

- Fixing the failure with `macos-13-homebrew`, as seen in
https://github.com/sagemath/sage/actions/runs/7761817710/job/21171032513
and upstream uses of macos.yml
dimpase/primecountpy#11 (comment),
sagemath/cypari2#152
- Generalizing the `ld_classic` workaround from sagemath#36599 for the case of
full XCode.
  - This is to fix the failure seen on `homebrew-macos-13-usrlocal-
standard-xcode_15.0`, e.g. in https://github.com/scipopt/SCIP-
SDP/actions/runs/7793548242/job/21253452882?pr=9#step:10:2766
- Deactivating the `ld_classic` workaround when `LD` is set, as is in a
conda environment; as seen e.g. in https://groups.google.com/g/sage-
devel/c/1viBzw-ZaoQ/m/S_u9K20xAAAJ
- [Apple Silicon runners recently became
available](https://github.blog/changelog/2024-01-30-github-actions-
introducing-the-new-m1-macos-runner-available-to-open-source/); we add
some tests (example run:
https://github.com/mkoeppe/sage/actions/runs/7772086965/job/21194110510)
- On Apple Silicon, `tox -e local-conda-forge` now uses the correct
installer
- Intel runners were recently upgraded too, increase parallelism.
- Add self-destruct sequence to cancel workflows before the 6h limit
(catches linbox-related build hang)
- Actually handle the input `extra_sage_packages` (for
scipopt/PySCIPOpt#630)

<!-- 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. -->

Follow-ups, not addressed here:
- conda-forge-macos-latest-minimal tachyon build failure - needs sagemath#36969
- adding a config that tests arm64 conda-forge-minimal - would need
config.guess updates in numerous packages
- arm64 conda-forge-standard - matplotlib build failure (https://github.
com/mkoeppe/sage/actions/runs/7810111886/job/21313997438#step:10:2749)
- hangs or excessive build time that lead to timeouts, probably from
linbox

### :memo: 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.
- [x] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation accordingly.

### :hourglass: 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#37237
Reported by: Matthias Köppe
Reviewer(s): Matthias Köppe, Tobias Diez
@mkoeppe mkoeppe force-pushed the ci-sage branch 2 times, most recently from f00e47f to 32bb229 Compare February 28, 2024 21:19
vbraun pushed a commit to vbraun/sage that referenced this pull request Feb 28, 2024
…ests on M1 runners, add timeouts

    
<!-- ^^^^^
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 -->

- Fixing the failure with `macos-13-homebrew`, as seen in
https://github.com/sagemath/sage/actions/runs/7761817710/job/21171032513
and upstream uses of macos.yml
dimpase/primecountpy#11 (comment),
sagemath/cypari2#152
- Generalizing the `ld_classic` workaround from sagemath#36599 for the case of
full XCode.
  - This is to fix the failure seen on `homebrew-macos-13-usrlocal-
standard-xcode_15.0`, e.g. in https://github.com/scipopt/SCIP-
SDP/actions/runs/7793548242/job/21253452882?pr=9#step:10:2766
- Deactivating the `ld_classic` workaround when `LD` is set, as is in a
conda environment; as seen e.g. in https://groups.google.com/g/sage-
devel/c/1viBzw-ZaoQ/m/S_u9K20xAAAJ
- [Apple Silicon runners recently became
available](https://github.blog/changelog/2024-01-30-github-actions-
introducing-the-new-m1-macos-runner-available-to-open-source/); we add
some tests (example run:
https://github.com/mkoeppe/sage/actions/runs/7772086965/job/21194110510)
- On Apple Silicon, `tox -e local-conda-forge` now uses the correct
installer
- Intel runners were recently upgraded too, increase parallelism.
- Add self-destruct sequence to cancel workflows before the 6h limit
(catches linbox-related build hang)
- Actually handle the input `extra_sage_packages` (for
scipopt/PySCIPOpt#630)

<!-- 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. -->

Follow-ups, not addressed here:
- conda-forge-macos-latest-minimal tachyon build failure - needs sagemath#36969
- adding a config that tests arm64 conda-forge-minimal - would need
config.guess updates in numerous packages
- arm64 conda-forge-standard - matplotlib build failure (https://github.
com/mkoeppe/sage/actions/runs/7810111886/job/21313997438#step:10:2749)
- hangs or excessive build time that lead to timeouts, probably from
linbox

### :memo: 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.
- [x] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation accordingly.

### :hourglass: 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#37237
Reported by: Matthias Köppe
Reviewer(s): Matthias Köppe, Tobias Diez
@mkoeppe mkoeppe force-pushed the ci-sage branch 2 times, most recently from 58de35c to acbdf4b Compare March 6, 2024 05:56
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

4 participants