-
-
Notifications
You must be signed in to change notification settings - Fork 541
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
Preliminary steps to save the CI infrastructure #39009
base: develop
Are you sure you want to change the base?
Conversation
Documentation preview for this PR (built with commit a501144; changes) is ready! 🎉 |
ff6bdcd
to
7da5efe
Compare
db666ee
to
6df7a6a
Compare
before proceeding it's good to decide whether we rather go with the other PR |
As I've said before
is not fine with me. The optional job should test that installing all optional packages from the system manager and then building the missing ones with sage-the-distro works. If you base it on "standard" then you are testing that building all optional packages from sage-the-distro works. This is akin to introducing a new "minimal" but now for optional packages.
Not sure if you really want to remove them completely. Their failures look like CI bugs so they should be temporarily disabled only for CI, not completely removed. That's the only remarks I can make about this PR based on reading the PR description, since the code diff is unreviewable for me (sorry but I cannot keep track of what changes are related to one of the 10 different points done in this PR - would be way easier to just have one PR per bullet point.) Both my other PR and this one here seem to be quite independent and only have minor merge conflicts. My proposal for proceeding would be:
What do you think? |
This is now tested with "maximal" (previous "maximal-pre"). See the diagram in the PR description. By the way, it seem that many optional sage packages do not have equivalent systems packages on many platforms. |
They are not CI bugs. See https://github.com/sagemath/sage/actions/runs/13465411463/job/37630064699 (look for Ubuntu repos for those releases do not seem to exist. |
Not possible with me because I object to your changes (removing CI jobs). The possible way forward, with least friction, is
|
Is it? Looking again at the code it seems that you're just renaming On the other hand, basing it from standard does sound like semantically change it. The reason might be that some optional package is incompatible with some package preinstalled by |
Yes, "maximal" = "maximal-pre" I don't know the origin of "-pre". Perhaps because the old "optional" is based on "maximal-pre"?
Yes.
I think the old "optional" and "experimental" are:
where "~" means sage package in addition to equivalent system packages preinstalled. The diagram also explains why old "optional" and "experimental" builds are bigger than the new "optional" and "experimental" based on "standard". |
Now I know: "maximal-pre" because it builds up to "with-targets-pre", which means "a full installation of all non-Python packages (SAGE_LOCAL)". Looking at changes, now I see that "maximal" is not the same with "maximal-pre". The "maximal" defined in the present PR is "standard" + optional packages. See also the commit a501144. |
I fixed a couple of minor bugs after Dima's positive review. |
Then please don't set it to positive review if you continued working on it... also #39009 (comment) seems to be still not addressed (the semantic change of maximal > standard for optional in particular) |
I responded to your comments. I don't have more things to work on. Now let Dima and @user202729 decide how to proceed. |
Counting: +1: Dima, and me (the author) |
Why do you think any of the following actions are okay?
I regret that our discussion about the CI started off on the wrong foot, and I recognize that we may never fully agree on certain aspects (particularly around the definition of 'minimal'). However, I would appreciate it if we could maintain a level of professionalism that reflects the seriousness of the topic at hand. |
Do you believe that Dima is positive to your PR after reviewing all changes, but he is positive to this PR without reviewing all changes?
Did you look into the run to see why the "default" run failed? It failed because of an issue of the latest sage release. So that is a normal result.
Because the last changes I made are minor and I checked that they work with the partial run. See below.
Yes, I broke the rule to give some time to Dima and @user202729 to decide how to proceed, instead of leaving it to @vbraun. Dima at least does not seem to be okay with your PR merged first. If you can wait, let's remove "positive labels" from both PRs. OK?
I agree. |
You pushed 4 commits after his review.
How do you then make sure that your changes don't introduce other issues in "default". The normal procedure is to then to include the other PR that fixes the issues in "develop" as a dependency (or to wait until that other PR is merged).
Sorry but I fail to see how setting a PR to positive review gives time for others to express their opinion.
Awesome! Could you then please start by describing why you think it's a good idea to expand the CI tests to cover the case where all optional packages are installed via sage-the-distro? Previously, maximum-pre was only building the image with the system packages that was then used by optional + experimental (that's the reason for the name 'pre'). With your changes, maximum now corresponds to the old optional. So you are essentially introducing another CI run and make experimental last even longer. Who do you think will profit from this? |
let's keep And, indeed, currently there is no positive review for this PR from me. I still think it's not really the right direction to go. |
Because "default" also fails without this PR for the very same reason. See https://github.com/sagemath/sage/actions/runs/13465411463/job/37630049652
This PR, which is about CI, is orthogonal with the build system (whether it is broken or not). The job of CI is to report whether the build system is broken or not. The normal procedure is to include other PR as a dependency if that is necessary for this PR branch to work. That does not apply here. |
To improve the situation with the CI infrastructure, this PR:
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.
removed ubuntu-lunar, ubuntu-mantic, conda-forge-python3.11, ubuntu-bionic-gcc_8-i386, debian-bullseye-i386 from the list of the default systems that CI runs for. This is how to properly modify the list:
tox.ini
(find DEFAULT_SYSTEM_FACTORS)tox -e update_docker_platforms
removed old versions of linuxmint and added new versions.
"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 run: https://github.com/kwankyu/sage/actions/runs/13570424080
compare with the status quo: https://github.com/sagemath/sage/actions/runs/13465411463
test CI with a PR: kwankyu#82
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
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