Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR is the closed PR #39009 rebased on the current develop branch.
Test CI run (as of 10.6.rc0): https://github.com/kwankyu/sage/actions/runs/14017325314
compare with the status quo: https://github.com/sagemath/sage/actions/runs/14008119416
To improve the situation with the CI infrastructure, this PR:
Restore jobs removed by Disable broken and outdated CI #39467 (and its sequel CI: Remove broken Linux Mint and openSUSE runs #39670), which made CI Linux useless.
Added comments untangling obscure code in CI-related files, for those poor guys who ever attempt to read the files for whatever reasons.
While doing the cosmetic changes, a bug (about
-uninstall
targets) was foundbuild/make/Makefile.in
, which is fixed here.To test, do
Fixed some jobs in the CI-linux workflow that fail because of duplicate artifact names.
Reduced supported platforms under testing. This is how to properly modify the list:
tox.ini
(find DEFAULT_SYSTEM_FACTORS)tox -e update_docker_platforms
"optional" and "experimental" jobs now run upon "standard" docker images, instead of "maximal" ones, to avoid "out of runner space" error.
Renamed "Reusable workflow for Docker-based portability CI" to "Workflow for Linux portability CI" for short name and made it runnable through github interface to facilitate testing specific platform by adding "workflow-dispatch" calling
docker.yml
.Test: https://github.com/kwankyu/sage/actions/workflows/docker.yml
Added helpful comments and updated the developer doc
Reimplemented
.ci/write-dockerfile.sh
so that simplified Dockerfile is generated for present and future stabilityTurned off failing jobs in "CI Linux incremental"
Removed seemingly useless
subprojects/factory
directory to eliminate certain git warnings.Turned off "standard-sitepackegs" and "standard-constraints_pkgs-norequirements" jobs as they fail on (almost) all platforms.
Test CI with a PR: to be prepared.
The main objective of this PR is to solve issues with the workflow "CI Linux" such that a failure on a platform reveals solely some problem of sage built on the platform, but not a problem of the CI infrastructure. After this PR, hopefully, each of failing platforms should be tackled individually. If a platform fails, perhaps we should
I suggest discontinuing support (at least in CI) for Linux releases that have been past their EOL (end of life or end of support by the distributor) for more than 2 years.
Only decent platforms according to the CI results should be listed in https://github.com/sagemath/sage/wiki/Sage-10.6-Release-Tour#availability-and-installation-help.
The following diagram shows how packages are installed for each of CI jobs:
where "S" represents system package and dash "-" represents Sage package. Hence
📝 Checklist
⌛ Dependencies