From 52d2337d0ad9528bbb5e8bef1446b17f976ad552 Mon Sep 17 00:00:00 2001 From: Dima Pasechnik Date: Tue, 21 Jan 2025 21:51:37 -0600 Subject: [PATCH 01/40] bump gmpy2 to 2.2.1 --- build/pkgs/gmpy2/checksums.ini | 4 ++-- build/pkgs/gmpy2/package-version.txt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build/pkgs/gmpy2/checksums.ini b/build/pkgs/gmpy2/checksums.ini index 17b85732d44..1917cdb6a1a 100644 --- a/build/pkgs/gmpy2/checksums.ini +++ b/build/pkgs/gmpy2/checksums.ini @@ -1,4 +1,4 @@ tarball=gmpy2-VERSION.tar.gz -sha1=700ef438964acd286d52e973a833cd57ae9a7ad7 -sha256=3b8acc939a40411a8ad5541ed178ff866dd1759e667ee26fe34c9291b6b350c3 +sha1=9dc12136c43f6f5872b0eabc78017745d09f657b +sha256=e83e07567441b78cb87544910cb3cc4fe94e7da987e93ef7622e76fb96650432 upstream_url=https://files.pythonhosted.org/packages/source/g/gmpy2/gmpy2-VERSION.tar.gz diff --git a/build/pkgs/gmpy2/package-version.txt b/build/pkgs/gmpy2/package-version.txt index 8c6ccbaa57e..c043eea7767 100644 --- a/build/pkgs/gmpy2/package-version.txt +++ b/build/pkgs/gmpy2/package-version.txt @@ -1 +1 @@ -2.2.0a1 +2.2.1 From 347ffa36add9107ef3056cfe9de22c5f2e234054 Mon Sep 17 00:00:00 2001 From: Dima Pasechnik Date: Mon, 27 Jan 2025 10:07:09 -0600 Subject: [PATCH 02/40] fix/update testing of gmpy2 the main tests are now by pytest; cython tests are done in another test dir, fixed this too. pytest uses hypothesis, which I thus promote to standard package --- build/pkgs/gmpy2/dependencies | 2 +- build/pkgs/gmpy2/spkg-check.in | 2 +- build/pkgs/hypothesis/type | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build/pkgs/gmpy2/dependencies b/build/pkgs/gmpy2/dependencies index b1f92b9241d..2e9688ea814 100644 --- a/build/pkgs/gmpy2/dependencies +++ b/build/pkgs/gmpy2/dependencies @@ -1,4 +1,4 @@ - $(MP_LIBRARY) mpfr mpc | $(PYTHON_TOOLCHAIN) $(PYTHON) +$(MP_LIBRARY) mpfr mpc | $(PYTHON_TOOLCHAIN) $(PYTHON) hypothesis ---------- All lines of this file are ignored except the first. diff --git a/build/pkgs/gmpy2/spkg-check.in b/build/pkgs/gmpy2/spkg-check.in index abcf587781b..ab7a1155d7e 100644 --- a/build/pkgs/gmpy2/spkg-check.in +++ b/build/pkgs/gmpy2/spkg-check.in @@ -1 +1 @@ -cd src/test && python3 runtests.py +pytest && cd src/test_cython && python3 runtests.py diff --git a/build/pkgs/hypothesis/type b/build/pkgs/hypothesis/type index 134d9bc32d5..a6a7b9cd726 100644 --- a/build/pkgs/hypothesis/type +++ b/build/pkgs/hypothesis/type @@ -1 +1 @@ -optional +standard From 421130f33e4c41525c4eb3b0b6074416303a89c0 Mon Sep 17 00:00:00 2001 From: Dima Pasechnik Date: Mon, 27 Jan 2025 10:12:46 -0600 Subject: [PATCH 03/40] spkg-configure for hypothesis --- build/pkgs/hypothesis/spkg-configure.m4 | 1 + 1 file changed, 1 insertion(+) create mode 100644 build/pkgs/hypothesis/spkg-configure.m4 diff --git a/build/pkgs/hypothesis/spkg-configure.m4 b/build/pkgs/hypothesis/spkg-configure.m4 new file mode 100644 index 00000000000..7691c995672 --- /dev/null +++ b/build/pkgs/hypothesis/spkg-configure.m4 @@ -0,0 +1 @@ +SAGE_SPKG_CONFIGURE([hypothesis], [SAGE_PYTHON_PACKAGE_CHECK([hypothesis])]) From 291f32997d40d9449ec8b0bd1f4cb84c8f48b525 Mon Sep 17 00:00:00 2001 From: Dima Pasechnik Date: Sun, 9 Feb 2025 22:27:47 -0600 Subject: [PATCH 04/40] make hypothesis into a correct standard package, adjust deps --- build/pkgs/gmpy2/dependencies | 2 +- build/pkgs/hypothesis/checksums.ini | 4 ++++ build/pkgs/hypothesis/distros/arch.txt | 1 + build/pkgs/hypothesis/distros/debian.txt | 1 + build/pkgs/hypothesis/distros/fedora.txt | 1 + build/pkgs/hypothesis/distros/freebsd.txt | 1 + build/pkgs/hypothesis/distros/gentoo.txt | 1 + build/pkgs/hypothesis/distros/opensuse.txt | 1 + build/pkgs/hypothesis/distros/void.txt | 1 + build/pkgs/hypothesis/requirements.txt | 1 - build/pkgs/hypothesis/version_requirements.txt | 1 + 11 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 build/pkgs/hypothesis/checksums.ini create mode 100644 build/pkgs/hypothesis/distros/arch.txt create mode 100644 build/pkgs/hypothesis/distros/debian.txt create mode 100644 build/pkgs/hypothesis/distros/fedora.txt create mode 100644 build/pkgs/hypothesis/distros/freebsd.txt create mode 100644 build/pkgs/hypothesis/distros/gentoo.txt create mode 100644 build/pkgs/hypothesis/distros/opensuse.txt create mode 100644 build/pkgs/hypothesis/distros/void.txt delete mode 100644 build/pkgs/hypothesis/requirements.txt create mode 100644 build/pkgs/hypothesis/version_requirements.txt diff --git a/build/pkgs/gmpy2/dependencies b/build/pkgs/gmpy2/dependencies index 2e9688ea814..1f9f93bc974 100644 --- a/build/pkgs/gmpy2/dependencies +++ b/build/pkgs/gmpy2/dependencies @@ -1,4 +1,4 @@ -$(MP_LIBRARY) mpfr mpc | $(PYTHON_TOOLCHAIN) $(PYTHON) hypothesis +$(MP_LIBRARY) mpfr mpc hypothesis | $(PYTHON_TOOLCHAIN) $(PYTHON) ---------- All lines of this file are ignored except the first. diff --git a/build/pkgs/hypothesis/checksums.ini b/build/pkgs/hypothesis/checksums.ini new file mode 100644 index 00000000000..c28e6a21cae --- /dev/null +++ b/build/pkgs/hypothesis/checksums.ini @@ -0,0 +1,4 @@ +tarball=hypothesis-VERSION-py3-none-any.whl +sha1=47d6a24a788db03bca35f4068da0b7f974ab0eb8 +sha256=55d4966d521b85d2f77e916dabb00d66d5530ea9fbb89c7489ee810625fac802 +upstream_url=https://files.pythonhosted.org/packages/py3/h/hypothesis/hypothesis-VERSION-py3-none-any.whl diff --git a/build/pkgs/hypothesis/distros/arch.txt b/build/pkgs/hypothesis/distros/arch.txt new file mode 100644 index 00000000000..f8de6c5fdc9 --- /dev/null +++ b/build/pkgs/hypothesis/distros/arch.txt @@ -0,0 +1 @@ +python-hypothesis diff --git a/build/pkgs/hypothesis/distros/debian.txt b/build/pkgs/hypothesis/distros/debian.txt new file mode 100644 index 00000000000..f8de6c5fdc9 --- /dev/null +++ b/build/pkgs/hypothesis/distros/debian.txt @@ -0,0 +1 @@ +python-hypothesis diff --git a/build/pkgs/hypothesis/distros/fedora.txt b/build/pkgs/hypothesis/distros/fedora.txt new file mode 100644 index 00000000000..f8de6c5fdc9 --- /dev/null +++ b/build/pkgs/hypothesis/distros/fedora.txt @@ -0,0 +1 @@ +python-hypothesis diff --git a/build/pkgs/hypothesis/distros/freebsd.txt b/build/pkgs/hypothesis/distros/freebsd.txt new file mode 100644 index 00000000000..61b9b0ef842 --- /dev/null +++ b/build/pkgs/hypothesis/distros/freebsd.txt @@ -0,0 +1 @@ +devel/py-hypothesis diff --git a/build/pkgs/hypothesis/distros/gentoo.txt b/build/pkgs/hypothesis/distros/gentoo.txt new file mode 100644 index 00000000000..3b2f10be23c --- /dev/null +++ b/build/pkgs/hypothesis/distros/gentoo.txt @@ -0,0 +1 @@ +dev-python/hypothesis diff --git a/build/pkgs/hypothesis/distros/opensuse.txt b/build/pkgs/hypothesis/distros/opensuse.txt new file mode 100644 index 00000000000..f8de6c5fdc9 --- /dev/null +++ b/build/pkgs/hypothesis/distros/opensuse.txt @@ -0,0 +1 @@ +python-hypothesis diff --git a/build/pkgs/hypothesis/distros/void.txt b/build/pkgs/hypothesis/distros/void.txt new file mode 100644 index 00000000000..7efdc4d86e9 --- /dev/null +++ b/build/pkgs/hypothesis/distros/void.txt @@ -0,0 +1 @@ +python3-hypothesis diff --git a/build/pkgs/hypothesis/requirements.txt b/build/pkgs/hypothesis/requirements.txt deleted file mode 100644 index 68ee44629fb..00000000000 --- a/build/pkgs/hypothesis/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -hypothesis diff --git a/build/pkgs/hypothesis/version_requirements.txt b/build/pkgs/hypothesis/version_requirements.txt new file mode 100644 index 00000000000..1d5e94123f3 --- /dev/null +++ b/build/pkgs/hypothesis/version_requirements.txt @@ -0,0 +1 @@ +hypothesis>=6.123.0 From bad5945f5a09e01cc93252c20482a52ef339c48f Mon Sep 17 00:00:00 2001 From: Dima Pasechnik Date: Sun, 9 Feb 2025 23:38:27 -0600 Subject: [PATCH 05/40] added forgotten version file --- build/pkgs/hypothesis/package-version.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 build/pkgs/hypothesis/package-version.txt diff --git a/build/pkgs/hypothesis/package-version.txt b/build/pkgs/hypothesis/package-version.txt new file mode 100644 index 00000000000..bf1bba9a080 --- /dev/null +++ b/build/pkgs/hypothesis/package-version.txt @@ -0,0 +1 @@ +6.125.2 From 6df7a6a4dcbd5df1b87675b344e49e854b1ee498 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Thu, 13 Feb 2025 17:28:45 +0900 Subject: [PATCH 06/40] Add comments --- .github/workflows/docker.yml | 135 +++++++++++++++++++++++------------ build/make/Makefile.in | 64 ++++++++++------- 2 files changed, 126 insertions(+), 73 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 96427164eae..b5d2f691a2e 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -166,63 +166,80 @@ jobs: remove-docker-images: true continue-on-error: true if: inputs.free_disk_space + - name: Check out SageMath uses: actions/checkout@v4 with: repository: ${{ inputs.sage_repo }} ref: ${{ inputs.sage_ref }} fetch-depth: 10000 + - name: Download upstream artifact uses: actions/download-artifact@v4 with: path: upstream name: ${{ inputs.upstream_artifact }} if: inputs.upstream_artifact + - name: Install test prerequisites run: | sudo DEBIAN_FRONTEND=noninteractive apt-get update sudo DEBIAN_FRONTEND=noninteractive apt-get install tox sudo apt-get clean df -h + - name: Update Sage packages from upstream artifact - # Handle both the old and new location of write-dockerfile.sh, - # because docker.yml is a reusable workflow. run: | - (export PATH=$(pwd)/build/bin:$PATH; (cd upstream && bash -x update-pkgs.sh) && sed -i.bak '/upstream/d' .dockerignore; for a in build/bin/write-dockerfile.sh .ci/write-dockerfile.sh; do if [ -r $a ]; then echo "/:toolchain:/i ADD upstream upstream" | sed -i.bak -f - $a; fi; done; git diff) + export PATH=$(pwd)/build/bin:$PATH + cd upstream && bash -x update-pkgs.sh + # Remove any lines containing 'upstream' from .dockerignore + sed -i.bak '/upstream/d' .dockerignore + # Handle both the old and new location of write-dockerfile.sh, because docker.yml is a reusable workflow + for script_path in build/bin/write-dockerfile.sh .ci/write-dockerfile.sh; do + if [ -r "$script_path" ]; then + # Add 'ADD upstream upstream' before the line containing ':toolchain:' in the script + echo "/:toolchain:/i ADD upstream upstream" | sed -i.bak -f - "$script_path" + fi + done + # Show the changes made to the repository for review + git diff if: inputs.upstream_artifact - name: Try to login to ghcr.io if: inputs.docker_push_repository != '' # https://docs.github.com/en/actions/reference/workflow-commands-for-github-actions#setting-an-environment-variable run: | - TOKEN="${{ secrets.DOCKER_PKG_GITHUB_TOKEN }}" - if [ -z "$TOKEN" ]; then - TOKEN="${{ secrets.GITHUB_TOKEN }}" - fi - if echo "$TOKEN" | docker login ghcr.io -u ${{ github.actor }} --password-stdin; then - echo "DOCKER_PUSH_REPOSITORY=$(echo ${{ inputs.docker_push_repository }} | tr "[:upper:]" "[:lower:]")" >> $GITHUB_ENV - echo "DOCKER_CONFIG_FILE=$HOME/.docker/config.json" >> $GITHUB_ENV - fi + TOKEN="${{ secrets.DOCKER_PKG_GITHUB_TOKEN }}" + if [ -z "$TOKEN" ]; then + TOKEN="${{ secrets.GITHUB_TOKEN }}" + fi + if echo "$TOKEN" | docker login ghcr.io -u ${{ github.actor }} --password-stdin; then + echo "DOCKER_PUSH_REPOSITORY=$(echo ${{ inputs.docker_push_repository }} | tr "[:upper:]" "[:lower:]")" >> $GITHUB_ENV + echo "DOCKER_CONFIG_FILE=$HOME/.docker/config.json" >> $GITHUB_ENV + fi - name: Determine Docker tags to use run: | - # This line needs to be run before the step "Merge CI fixes from sagemath/sage". - DOCKER_TAG="$(git describe --dirty --always)" - echo "DOCKER_TAG=$DOCKER_TAG" >> $GITHUB_ENV - # From the docker documentation via .ci/update-env.sh: - # "A tag name must be valid ASCII and may - # contain lowercase and uppercase letters, digits, underscores, periods and - # dashes. A tag name may not start with a period or a dash and may contain a - # maximum of 128 characters." - EXTRA_DOCKER_TAGS=`echo $GITHUB_REF_NAME | tr -d '[:space:]' | tr -c '[:alnum:]_.-' '-' | sed 's/^[-.]*//' | cut -c1-128` - shopt -s extglob - case "$GITHUB_REF_NAME" in - +([0-9]).+([0-9])?(.+([0-9])) ) - EXTRA_DOCKER_TAGS="latest dev $EXTRA_DOCKER_TAGS";; - +([0-9]).+([0-9])?(.+([0-9]))?(.)@(a|alpha|b|beta|rc)+([0-9]) ) - EXTRA_DOCKER_TAGS="dev $EXTRA_DOCKER_TAGS";; - esac - echo "EXTRA_DOCKER_TAGS=$EXTRA_DOCKER_TAGS" >> $GITHUB_ENV + # This line needs to be run before the step "Merge CI fixes from sagemath/sage". + # + DOCKER_TAG="$(git describe --dirty --always)" + echo "DOCKER_TAG=$DOCKER_TAG" >> $GITHUB_ENV + # + # From the docker documentation via .ci/update-env.sh: + # "A tag name must be valid ASCII and may + # contain lowercase and uppercase letters, digits, underscores, periods and + # dashes. A tag name may not start with a period or a dash and may contain a + # maximum of 128 characters." + # + EXTRA_DOCKER_TAGS=`echo $GITHUB_REF_NAME | tr -d '[:space:]' | tr -c '[:alnum:]_.-' '-' | sed 's/^[-.]*//' | cut -c1-128` + shopt -s extglob + case "$GITHUB_REF_NAME" in + +([0-9]).+([0-9])?(.+([0-9])) ) + EXTRA_DOCKER_TAGS="latest dev $EXTRA_DOCKER_TAGS";; + +([0-9]).+([0-9])?(.+([0-9]))?(.)@(a|alpha|b|beta|rc)+([0-9]) ) + EXTRA_DOCKER_TAGS="dev $EXTRA_DOCKER_TAGS";; + esac + echo "EXTRA_DOCKER_TAGS=$EXTRA_DOCKER_TAGS" >> $GITHUB_ENV - name: Merge CI fixes from sagemath/sage # This step needs to happen after the commit sha is put in DOCKER_TAG @@ -237,43 +254,69 @@ jobs: run: | df -h if: inputs.free_disk_space + - name: Configure and build Sage distribution within a Docker container - # The first command below is a self-destruct sequence, - # which preempts the GitHub Actions 6-hour job cancellation. - # - # Using "docker exec", we enter the temporary containers used by - # "docker build" and kill the "make" processes of the Sage distribution. - # - # The arcane "find" command is a replacement for "pkill make", - # which we use because pkill is not installed in the "minimal" package - # configuration on many platforms. - # - # The "sed" command strips away timestamps from "docker build" (buildkit) - # such as "#25 1211.0" at the beginning of each line. The timestamps are - # redundant because GH Actions provides timestamps for each line already. - # Stripping the timestamps from the beginnings of lines also allows - # GitHub Actions to recognize workflow commands such as ::error etc. - # run: | - (sleep ${{ inputs.timeout }}; for id in $(docker ps -q); do docker exec $id find /proc -maxdepth 2 -name cmdline -exec bash -c "grep -l [m][a][k][e] {} | cut -d/ -f3 | xargs --no-run-if-empty kill" \;; done) & - set -o pipefail; EXTRA_DOCKER_BUILD_ARGS="--build-arg NUMPROC=9 --build-arg USE_MAKEFLAGS=\"-k V=0 SAGE_NUM_THREADS=5\"" tox -e $TOX_ENV -- $TARGETS 2>&1 | sed -E --unbuffered "s/^#[0-9]+ [0-9]+[.][0-9]+ //;/^configure: notice:/s|^|::warning file=artifacts/$LOGS_ARTIFACT_NAME/config.log::|;/^configure: warning:/s|^|::warning file=artifacts/$LOGS_ARTIFACT_NAME/config.log::|;/^configure: error:/s|^|::error file=artifacts/$LOGS_ARTIFACT_NAME/config.log::|;" + # The first command below is a self-destruct sequence, + # which preempts the GitHub Actions 6-hour job cancellation. + # + # Using "docker exec", we enter the temporary containers used by + # "docker build" and kill the "make" processes of the Sage distribution. + ( + sleep ${{ inputs.timeout }} + for container_id in $(docker ps -q); do + # + # The arcane "find" command is a replacement for "pkill make", + # which we use because pkill is not installed in the "minimal" package + # configuration on many platforms. + # + docker exec "$container_id" find /proc -maxdepth 2 -name cmdline \ + -exec bash -c 'grep -l "[m][a][k][e]" {} | cut -d/ -f3 | xargs --no-run-if-empty kill' \; + done + ) & + # Set pipeline to fail if any command fails + set -o pipefail + # + EXTRA_DOCKER_BUILD_ARGS="--build-arg NUMPROC=9 --build-arg USE_MAKEFLAGS=\"-k V=0 SAGE_NUM_THREADS=5\"" + # + # The tox command starts to build and test Sage within a Docker container. + # + # Adter the build, the sed command strips away timestamps from + # "docker build" (buildkit) such as "#25 1211.0" at the beginning of + # each line. The timestamps are redundant because GH Actions provides + # timestamps for each line already. Stripping the timestamps from + # the beginnings of lines also allows GitHub Actions to recognize + # workflow commands such as ::error etc. The other sed commands + # annotate configuration notices/warnings/errors as GitHub + # ::warning/::warning/::error respectively. + # + tox -e $TOX_ENV -- $TARGETS 2>&1 | sed -E --unbuffered " + s/^#[0-9]+ [0-9]+[.][0-9]+ // + /^configure: notice:/s|^|::warning file=artifacts/$LOGS_ARTIFACT_NAME/config.log::| + /^configure: warning:/s|^|::warning file=artifacts/$LOGS_ARTIFACT_NAME/config.log::| + /^configure: error:/s|^|::error file=artifacts/$LOGS_ARTIFACT_NAME/config.log::| + " + - name: Copy logs from the Docker image or build container run: | mkdir -p "artifacts/$LOGS_ARTIFACT_NAME" cp -r .tox/$TOX_ENV/* "artifacts/$LOGS_ARTIFACT_NAME" rm -rf "artifacts/$LOGS_ARTIFACT_NAME"/{bin,lib,pyvenv.cfg} if: always() + - name: Upload logs artifact uses: actions/upload-artifact@v4 with: path: artifacts name: ${{ env.LOGS_ARTIFACT_NAME }} if: always() && inputs.logs_artifact + - name: Print out logs for immediate inspection # and markup the output with GitHub Actions logging commands run: | .github/workflows/scan-logs.sh "artifacts/$LOGS_ARTIFACT_NAME" if: always() + - name: List Docker images run: | if [ -n "$DOCKER_PUSH_REPOSITORY" -a -f .tox/$TOX_ENV/Dockertags.pushed ]; then diff --git a/build/make/Makefile.in b/build/make/Makefile.in index 420dadb9364..4ccaf3d2ec9 100644 --- a/build/make/Makefile.in +++ b/build/make/Makefile.in @@ -111,12 +111,15 @@ GCC_DEP = @SAGE_GCC_DEP@ OPTIONAL_INSTALLED_PACKAGES = @SAGE_OPTIONAL_INSTALLED_PACKAGES@ INSTALLED_PACKAGES = $(OPTIONAL_INSTALLED_PACKAGES) INSTALLED_PACKAGE_INSTS = \ - $(foreach pkgname,$(INSTALLED_PACKAGES),$(inst_$(pkgname))) + $(foreach pkgname,$(INSTALLED_PACKAGES),inst_$(pkgname)) # All previously installed standard/optional/experimental packages that are to be uninstalled OPTIONAL_UNINSTALLED_PACKAGES = @SAGE_OPTIONAL_UNINSTALLED_PACKAGES@ UNINSTALLED_PACKAGES = $(OPTIONAL_UNINSTALLED_PACKAGES) -UNINSTALLED_PACKAGES_UNINSTALLS = $(UNINSTALLED_PACKAGES:%=%-uninstall) +UNINSTALLED_PACKAGE_UNINSTALLS = \ + $(foreach pkgname,$(UNINSTALLED_PACKAGES),$(pkgname)-uninstall) + +.PHONY: $(INSTALLED_PACKAGE_INSTS) $(UNINSTALLED_PACKAGE_UNINSTALLS) # All packages which should be downloaded SDIST_PACKAGES = @SAGE_SDIST_PACKAGES@ @@ -187,20 +190,29 @@ $(foreach pkgname,$(PIP_PACKAGES),\ $(SAGE_LOCAL)/$(SPKG_INST_RELDIR)/.dummy: touch $@ - -# Filtered by installation tree +# Define variables +# +# SAGE_LOCAL_INSTALLED_PACKAGE_INSTS +# SAGE_VENV_INSTALLED_PACKAGE_INSTS +# SAGE_DOCS_INSTALLED_PACKAGE_INSTS +# +# SAGE_LOCAL_UNINSTALLED_PACKAGE_UNINSTALLS +# SAGE_VENV_UNINSTALLED_PACKAGE_UNINSTALLS +# SAGE_DOCS_UNINSTALLED_PACKAGE_UNINSTALLS +# +# that list targets for packages to be installed/uninstalled into installation +# tree SAGE_LOCAL/SAGE_VENV/SAGE_DOCS $(foreach tree,SAGE_LOCAL SAGE_VENV SAGE_DOCS, \ $(eval $(tree)_INSTALLED_PACKAGE_INSTS = \ $(foreach pkgname,$(INSTALLED_PACKAGES), \ $(if $(findstring $(tree),$(trees_$(pkgname))), \ $(inst_$(pkgname))))) \ $(eval $(tree)_UNINSTALLED_PACKAGE_UNINSTALLS = \ - $(foreach pkgname,$(INSTALLED_PACKAGES), \ + $(foreach pkgname,$(UNINSTALLED_PACKAGES), \ $(if $(findstring $(tree),$(trees_$(pkgname))), \ - $(inst_$(pkgname)))))) - + $(pkgname)-uninstall)))) -############################################################################### +# ============================================================================== # Silent rules # https://www.gnu.org/software/automake/manual/html_node/Automake-Silent-Rules.html @@ -277,8 +289,8 @@ base-toolchain: _clean-broken-gcc base # All targets except for the base packages and except the documentation all-sage: \ - $(SAGE_LOCAL_INSTALLED_PACKAGE_INSTS) $(SAGE_LOCAL_UNINSTALLED_PACKAGES_UNINSTALLS) \ - $(SAGE_VENV_INSTALLED_PACKAGE_INSTS) $(SAGE_VENV_UNINSTALLED_PACKAGES_UNINSTALLS) + $(SAGE_LOCAL_INSTALLED_PACKAGE_INSTS) $(SAGE_LOCAL_UNINSTALLED_PACKAGE_UNINSTALLS) \ + $(SAGE_VENV_INSTALLED_PACKAGE_INSTS) $(SAGE_VENV_UNINSTALLED_PACKAGE_UNINSTALLS) # Same but filtered by installation trees: all-build-local: toolchain-deps @@ -289,12 +301,12 @@ all-sage-local: $(SAGE_LOCAL_INSTALLED_PACKAGE_INSTS) $(SAGE_LOCAL_UNINSTALLED_P all-build-venv: toolchain-deps +$(MAKE_REC) all-sage-venv -all-sage-venv: $(SAGE_VENV_INSTALLED_PACKAGE_INSTS) $(SAGE_VENV_UNINSTALLED_PACKAGES_UNINSTALLS) +all-sage-venv: $(SAGE_VENV_INSTALLED_PACKAGE_INSTS) $(SAGE_VENV_UNINSTALLED_PACKAGES_UNINSTALLS) all-build-docs: toolchain-deps +$(MAKE_REC) all-sage-docs -all-sage-docs: $(SAGE_DOCS_INSTALLED_PACKAGE_INSTS) $(SAGE_DOCS_UNINSTALLED_PACKAGES_UNINSTALLS) +all-sage-docs: $(SAGE_DOCS_INSTALLED_PACKAGE_INSTS) $(SAGE_DOCS_UNINSTALLED_PACKAGES_UNINSTALLS) # Download all packages which should be inside an sdist tarball (the -B # option to make forces all targets to be built unconditionally) @@ -343,17 +355,15 @@ SAGERUNTIME = sagelib $(inst_ipython) $(inst_pexpect) all-sageruntime: toolchain-deps +$(MAKE_REC) $(SAGERUNTIME) - -############################################################################### +# ============================================================================== # Building the base system # # This consists of packages which are required for the Sage build system. -############################################################################### +# ============================================================================== base: $(inst_patch) $(inst_pkgconf) -############################################################################### +# ============================================================================== # Building the documentation -############################################################################### # You can choose to have the built HTML version of the documentation link to # the PDF version. To do so, you need to build both the HTML and PDF versions. @@ -365,7 +375,7 @@ base: $(inst_patch) $(inst_pkgconf) # For more information on the docbuild utility, do # # $ ./sage --docbuild -H - +# ============================================================================== doc: doc-html # All doc-building is delegated to the script packages @@ -481,9 +491,9 @@ wheels: pypi-wheels-check: $(PYPI_WHEEL_PACKAGES:%=%-check) -#============================================================================== +# ============================================================================== # Setting SAGE_CHECK... variables -#============================================================================== +# ============================================================================== ifeq "$(origin SAGE_CHECK)" "undefined" SAGE_CHECK := no endif @@ -525,10 +535,9 @@ $(foreach clause, $(SAGE_CHECK_PACKAGES_sep), \ debug-check: @echo $(foreach pkgname, $(NORMAL_PACKAGES) $(SCRIPT_PACKAGES), SAGE_CHECK_$(pkgname) = $(SAGE_CHECK_$(pkgname))) - -#============================================================================== +# ============================================================================== # Rules generated from pkgs//dependencies files -#============================================================================== +# ============================================================================== # Define a function for generating the list of a package's dependencies # as $(inst_) variables. For example, takes: @@ -595,7 +604,7 @@ pkg_deps = \ # sage-spkg, and --keep-files to sage-spkg-uninstall since those packages can # have a recursive self-dependency, and should not be deleted while upgrading. # See Issue #25857 - +# # Positional arguments: # $(1): package name # $(2): package version @@ -657,7 +666,7 @@ $(foreach pkgname, $(NORMAL_PACKAGES),\ $(call pkg_deps,$(pkgname)),$(tree))))) endif -# ================================ pip packages =============================== +# ================================ pip packages ==================================== # Generate build rules for 'pip' packages; this template is used to generate # two rules in the form: # @@ -666,10 +675,11 @@ endif # # -uninstall: # -sage --pip uninstall -y ... - +# # Positional arguments: # $(1): package name # $(2): package dependencies + define PIP_PACKAGE_templ $(1)-build-deps: $(2) @@ -719,7 +729,7 @@ endif # . '$SAGE_ROOT/build/bin/sage-build-env-config' && \\ # . '$SAGE_ROOT/build/bin/sage-build-env' && \\ # '$SAGE_ROOT/build/pkgs/$PKG_NAME/spkg-uninstall' - +# # Positional arguments: # $(1): package name # $(2): package version From 871934b284d823ab48e0461fdf17623f3c1cf185 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Thu, 13 Feb 2025 18:46:41 +0900 Subject: [PATCH 07/40] Add logs_artifact_postfix input argument for docker.yml --- .github/workflows/ci-linux.yml | 4 ++++ .github/workflows/docker.yml | 7 ++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci-linux.yml b/.github/workflows/ci-linux.yml index 1bf8862b4f4..6f60443cc61 100644 --- a/.github/workflows/ci-linux.yml +++ b/.github/workflows/ci-linux.yml @@ -87,6 +87,7 @@ jobs: targets_pre: all-sage-local python3-ensure tox-ensure sagelib-tox-sagepython-constraints_pkgs-norequirements tox_packages_factors: >- ["standard"] + logs_artifact_postfix: "-constraints_pkgs" max_parallel: 15 standard-sitepackages: @@ -125,6 +126,7 @@ jobs: "opensuse-tumbleweed-python3.10", "opensuse-tumbleweed"] docker_push_repository: ghcr.io/${{ github.repository }}/ + logs_artifact_postfix: "-sitepackages" max_parallel: 8 minimal: @@ -173,6 +175,7 @@ jobs: docker_targets: "with-targets-optional" # We remove packages starting with _, in particular package _develop targets_optional: '$(echo $(export PATH=build/bin:$PATH && sage-package list :optional: --has-file "spkg-install.in|spkg-install|requirements.txt" --no-file "huge|has_nonfree_dependencies" | grep -v sagemath_doc | grep -v ^_))' + logs_artifact_postfix: "-optional" experimental: if: ${{ success() || failure() }} @@ -187,3 +190,4 @@ jobs: ["maximal"] docker_targets: "with-targets-optional" targets_optional: '$(echo $(export PATH=build/bin:$PATH && sage-package list :experimental: --has-file "spkg-install.in|spkg-install|requirements.txt" --no-file "huge|has_nonfree_dependencies" | grep -v sagemath_doc))' + logs_artifact_postfix: "-experimental" diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index b5d2f691a2e..2c6db89dbb2 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -86,8 +86,13 @@ on: default: 20000 type: number logs_artifact: + description: 'Switch for uploading logs artifact' default: true type: boolean + logs_artifact_postfix: + description: 'Postfix (default: none) for logs artifact name' + default: "" + type: string # # Publishing to GitHub Packages # @@ -143,7 +148,7 @@ jobs: tox_packages_factor: ${{ fromJson(inputs.tox_packages_factors) }} env: TOX_ENV: "docker-${{ matrix.tox_system_factor }}-${{ matrix.tox_packages_factor }}${{ inputs.incremental && '-incremental' || '' }}" - LOGS_ARTIFACT_NAME: logs-commit-${{ github.sha }}-tox-docker-${{ matrix.tox_system_factor }}-${{ matrix.tox_packages_factor }} + LOGS_ARTIFACT_NAME: logs-commit-${{ github.sha }}-tox-docker-${{ matrix.tox_system_factor }}-${{ matrix.tox_packages_factor }}${{ inputs.logs_artifact_postfix }} DOCKER_TARGETS: ${{ inputs.docker_targets }} TARGETS_PRE: ${{ inputs.targets_pre }} TARGETS: ${{ inputs.targets }} From daff1acbbfebef5a861f7b3211ff34055d437b87 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Thu, 13 Feb 2025 18:54:21 +0900 Subject: [PATCH 08/40] Removed gentoo platform from CI --- .github/workflows/docker.yml | 3 - .../developer/portability_platform_table.rst | 195 ------------------ tox.ini | 17 +- 3 files changed, 9 insertions(+), 206 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 2c6db89dbb2..c7f7f37a11a 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -52,9 +52,6 @@ on: "centos-stream-9-python3.12", "almalinux-8-python3.9", "almalinux-9-python3.11", - "gentoo-python3.10", - "gentoo-python3.11", - "gentoo-python3.12", "archlinux-latest", "opensuse-15.5-gcc_11-python3.11", "opensuse-tumbleweed-python3.10", diff --git a/src/doc/en/developer/portability_platform_table.rst b/src/doc/en/developer/portability_platform_table.rst index d8d56329d4d..e87d4db04c5 100644 --- a/src/doc/en/developer/portability_platform_table.rst +++ b/src/doc/en/developer/portability_platform_table.rst @@ -1834,168 +1834,6 @@ .. |codespace-almalinux-9-python3.11-maximal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-almalinux-9-python3.11-maximal%2Fdevcontainer.json -.. |image-gentoo-python3.10-minimal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.10-minimal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.10-minimal-with-system-packages - -.. |image-gentoo-python3.10-minimal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.10-minimal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.10-minimal-configured - -.. |image-gentoo-python3.10-minimal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.10-minimal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%23677895 - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.10-minimal-with-targets-pre - -.. |image-gentoo-python3.10-minimal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.10-minimal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%236686c1 - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.10-minimal-with-targets - -.. |image-gentoo-python3.10-minimal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.10-minimal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%236495ed - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.10-minimal-with-targets-optional - -.. |codespace-gentoo-python3.10-minimal| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-gentoo-python3.10-minimal%2Fdevcontainer.json - -.. |image-gentoo-python3.10-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.10-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.10-standard-with-system-packages - -.. |image-gentoo-python3.10-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.10-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.10-standard-configured - -.. |image-gentoo-python3.10-standard-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.10-standard-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%235d8a4c - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.10-standard-with-targets-pre - -.. |image-gentoo-python3.10-standard-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.10-standard-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%2350ab2e - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.10-standard-with-targets - -.. |image-gentoo-python3.10-standard-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.10-standard-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%2344cc11 - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.10-standard-with-targets-optional - -.. |codespace-gentoo-python3.10-standard| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-gentoo-python3.10-standard%2Fdevcontainer.json - -.. |image-gentoo-python3.10-maximal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.10-maximal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.10-maximal-with-system-packages - -.. |image-gentoo-python3.10-maximal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.10-maximal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.10-maximal-configured - -.. |image-gentoo-python3.10-maximal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.10-maximal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%238f6b8d - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.10-maximal-with-targets-pre - -.. |image-gentoo-python3.10-maximal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.10-maximal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%23b46eb2 - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.10-maximal-with-targets - -.. |image-gentoo-python3.10-maximal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.10-maximal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%23da70d6 - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.10-maximal-with-targets-optional - -.. |codespace-gentoo-python3.10-maximal| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-gentoo-python3.10-maximal%2Fdevcontainer.json - -.. |image-gentoo-python3.11-minimal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.11-minimal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.11-minimal-with-system-packages - -.. |image-gentoo-python3.11-minimal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.11-minimal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.11-minimal-configured - -.. |image-gentoo-python3.11-minimal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.11-minimal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%23677895 - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.11-minimal-with-targets-pre - -.. |image-gentoo-python3.11-minimal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.11-minimal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%236686c1 - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.11-minimal-with-targets - -.. |image-gentoo-python3.11-minimal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.11-minimal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%236495ed - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.11-minimal-with-targets-optional - -.. |codespace-gentoo-python3.11-minimal| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-gentoo-python3.11-minimal%2Fdevcontainer.json - -.. |image-gentoo-python3.11-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.11-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.11-standard-with-system-packages - -.. |image-gentoo-python3.11-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.11-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.11-standard-configured - -.. |image-gentoo-python3.11-standard-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.11-standard-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%235d8a4c - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.11-standard-with-targets-pre - -.. |image-gentoo-python3.11-standard-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.11-standard-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%2350ab2e - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.11-standard-with-targets - -.. |image-gentoo-python3.11-standard-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.11-standard-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%2344cc11 - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.11-standard-with-targets-optional - -.. |codespace-gentoo-python3.11-standard| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-gentoo-python3.11-standard%2Fdevcontainer.json - -.. |image-gentoo-python3.11-maximal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.11-maximal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.11-maximal-with-system-packages - -.. |image-gentoo-python3.11-maximal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.11-maximal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.11-maximal-configured - -.. |image-gentoo-python3.11-maximal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.11-maximal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%238f6b8d - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.11-maximal-with-targets-pre - -.. |image-gentoo-python3.11-maximal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.11-maximal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%23b46eb2 - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.11-maximal-with-targets - -.. |image-gentoo-python3.11-maximal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.11-maximal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%23da70d6 - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.11-maximal-with-targets-optional - -.. |codespace-gentoo-python3.11-maximal| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-gentoo-python3.11-maximal%2Fdevcontainer.json - -.. |image-gentoo-python3.12-minimal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.12-minimal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.12-minimal-with-system-packages - -.. |image-gentoo-python3.12-minimal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.12-minimal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.12-minimal-configured - -.. |image-gentoo-python3.12-minimal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.12-minimal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%23677895 - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.12-minimal-with-targets-pre - -.. |image-gentoo-python3.12-minimal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.12-minimal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%236686c1 - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.12-minimal-with-targets - -.. |image-gentoo-python3.12-minimal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.12-minimal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%236495ed - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.12-minimal-with-targets-optional - -.. |codespace-gentoo-python3.12-minimal| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-gentoo-python3.12-minimal%2Fdevcontainer.json - -.. |image-gentoo-python3.12-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.12-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.12-standard-with-system-packages - -.. |image-gentoo-python3.12-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.12-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.12-standard-configured - -.. |image-gentoo-python3.12-standard-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.12-standard-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%235d8a4c - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.12-standard-with-targets-pre - -.. |image-gentoo-python3.12-standard-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.12-standard-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%2350ab2e - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.12-standard-with-targets - -.. |image-gentoo-python3.12-standard-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.12-standard-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%2344cc11 - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.12-standard-with-targets-optional - -.. |codespace-gentoo-python3.12-standard| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-gentoo-python3.12-standard%2Fdevcontainer.json - -.. |image-gentoo-python3.12-maximal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.12-maximal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.12-maximal-with-system-packages - -.. |image-gentoo-python3.12-maximal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.12-maximal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.12-maximal-configured - -.. |image-gentoo-python3.12-maximal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.12-maximal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%238f6b8d - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.12-maximal-with-targets-pre - -.. |image-gentoo-python3.12-maximal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.12-maximal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%23b46eb2 - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.12-maximal-with-targets - -.. |image-gentoo-python3.12-maximal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.12-maximal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%23da70d6 - :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.12-maximal-with-targets-optional - -.. |codespace-gentoo-python3.12-maximal| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-gentoo-python3.12-maximal%2Fdevcontainer.json - .. |image-archlinux-latest-minimal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-archlinux-latest-minimal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-archlinux-latest-minimal-with-system-packages @@ -2756,39 +2594,6 @@ * -    ‑*maximal* - |image-almalinux-9-python3.11-maximal-with-system-packages| |image-almalinux-9-python3.11-maximal-with-targets-pre| - - * - **gentoo**-python3.10 - -    ‑*minimal* - - |image-gentoo-python3.10-minimal-with-system-packages| |image-gentoo-python3.10-minimal-with-targets-pre| |image-gentoo-python3.10-minimal-with-targets| |image-gentoo-python3.10-minimal-with-targets-optional| - - |codespace-gentoo-python3.10-minimal| - * -    ‑*standard* - - |image-gentoo-python3.10-standard-with-system-packages| |image-gentoo-python3.10-standard-with-targets-pre| |image-gentoo-python3.10-standard-with-targets| |image-gentoo-python3.10-standard-with-targets-optional| - - |codespace-gentoo-python3.10-standard| - * -    ‑*maximal* - - |image-gentoo-python3.10-maximal-with-system-packages| |image-gentoo-python3.10-maximal-with-targets-pre| - - - * - **gentoo**-python3.11 - -    ‑*minimal* - - |image-gentoo-python3.11-minimal-with-system-packages| |image-gentoo-python3.11-minimal-with-targets-pre| |image-gentoo-python3.11-minimal-with-targets| |image-gentoo-python3.11-minimal-with-targets-optional| - - |codespace-gentoo-python3.11-minimal| - * -    ‑*standard* - - |image-gentoo-python3.11-standard-with-system-packages| |image-gentoo-python3.11-standard-with-targets-pre| |image-gentoo-python3.11-standard-with-targets| |image-gentoo-python3.11-standard-with-targets-optional| - - |codespace-gentoo-python3.11-standard| - * -    ‑*maximal* - - |image-gentoo-python3.11-maximal-with-system-packages| |image-gentoo-python3.11-maximal-with-targets-pre| - - - * - **gentoo**-python3.12 - -    ‑*minimal* - - |image-gentoo-python3.12-minimal-with-system-packages| |image-gentoo-python3.12-minimal-with-targets-pre| |image-gentoo-python3.12-minimal-with-targets| |image-gentoo-python3.12-minimal-with-targets-optional| - - |codespace-gentoo-python3.12-minimal| - * -    ‑*standard* - - |image-gentoo-python3.12-standard-with-system-packages| |image-gentoo-python3.12-standard-with-targets-pre| |image-gentoo-python3.12-standard-with-targets| |image-gentoo-python3.12-standard-with-targets-optional| - - |codespace-gentoo-python3.12-standard| - * -    ‑*maximal* - - |image-gentoo-python3.12-maximal-with-system-packages| |image-gentoo-python3.12-maximal-with-targets-pre| - - * - **archlinux**-latest    ‑*minimal* diff --git a/tox.ini b/tox.ini index bb3840cb3ed..2abcd1c4aea 100644 --- a/tox.ini +++ b/tox.ini @@ -331,13 +331,13 @@ setenv = almalinux-9: BASE_TAG=9 # # https://hub.docker.com/r/sheerluck/sage-on-gentoo-stage4/tags - # - gentoo: SYSTEM=gentoo - gentoo: BASE_IMAGE=sheerluck/sage-on-gentoo-stage4 - gentoo-python3.10: BASE_TAG=latest-py10 - gentoo-python3.11: BASE_TAG=latest-py11 - gentoo-python3.12: BASE_TAG=latest-py12 - gentoo: IGNORE_MISSING_SYSTEM_PACKAGES=no + # commented out according to https://github.com/sagemath/sage/pull/39467#issuecomment-2655418080 + # gentoo: SYSTEM=gentoo + # gentoo: BASE_IMAGE=sheerluck/sage-on-gentoo-stage4 + # gentoo-python3.10: BASE_TAG=latest-py10 + # gentoo-python3.11: BASE_TAG=latest-py11 + # gentoo-python3.12: BASE_TAG=latest-py12 + # gentoo: IGNORE_MISSING_SYSTEM_PACKAGES=no # # https://hub.docker.com/_/archlinux/ # 2023-09: libgiac went missing, hence IGNORE_MISSING_SYSTEM_PACKAGES=yes @@ -859,7 +859,8 @@ setenv = fedora-{30,31,32,33,34,35,36,37,38,39,40,41} \ centos-stream-{9,9-python3.12} \ almalinux-{8-python3.9,9-python3.11} \ - gentoo-python{3.10,3.11,3.12} \ + # gentoo, turned off according to https://github.com/sagemath/sage/pull/39467#issuecomment-2655418080 + # gentoo-python{3.10,3.11,3.12} \ archlinux-latest \ opensuse-15.5-gcc_11-python3.11 \ opensuse-tumbleweed{-python3.10,} \ From 06c11b7eab2fc3fbd836fc20e3753de893cffd98 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Thu, 13 Feb 2025 23:05:05 +0900 Subject: [PATCH 09/40] Avoid semantic change in bash command --- .github/workflows/docker.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index c7f7f37a11a..523d2a5b007 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -193,9 +193,8 @@ jobs: - name: Update Sage packages from upstream artifact run: | export PATH=$(pwd)/build/bin:$PATH - cd upstream && bash -x update-pkgs.sh - # Remove any lines containing 'upstream' from .dockerignore - sed -i.bak '/upstream/d' .dockerignore + # The sed command removes any lines containing 'upstream' from .dockerignore + (cd upstream && bash -x update-pkgs.sh) && sed -i.bak '/upstream/d' .dockerignore # Handle both the old and new location of write-dockerfile.sh, because docker.yml is a reusable workflow for script_path in build/bin/write-dockerfile.sh .ci/write-dockerfile.sh; do if [ -r "$script_path" ]; then From 557c69ecb90481900adc85e623666fff432cab09 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Fri, 14 Feb 2025 13:58:39 +0900 Subject: [PATCH 10/40] Refactor default inputs --- .github/workflows/ci-linux.yml | 58 +++++++++++++++++----------------- .github/workflows/docker.yml | 6 ++-- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/.github/workflows/ci-linux.yml b/.github/workflows/ci-linux.yml index 6f60443cc61..407255acf0d 100644 --- a/.github/workflows/ci-linux.yml +++ b/.github/workflows/ci-linux.yml @@ -1,47 +1,50 @@ name: CI Linux -## This GitHub Actions workflow runs SAGE_ROOT/tox.ini with select environments, -## whenever a GitHub pull request is opened or synchronized in a repository -## where GitHub Actions are enabled. -## -## It builds and checks some sage spkgs as defined in TARGETS. -## -## A job succeeds if there is no error. -## -## The build is run with "make V=0", so the build logs of individual packages are suppressed. -## -## At the end, all package build logs that contain an error are printed out. -## -## After all jobs have finished (or are canceled) and a short delay, -## tar files of all logs are made available as "build artifacts". - -#on: [push, pull_request] +# This GitHub Actions workflow runs SAGE_ROOT/tox.ini with select environments, +# whenever a GitHub pull request is opened or synchronized in a repository +# where GitHub Actions are enabled. +# +# It builds and checks some sage spkgs as defined in TARGETS. +# +# A job succeeds if there is no error. +# +# The build is run with "make V=0", so the build logs of individual packages are suppressed. +# +# At the end, all package build logs that contain an error are printed out. +# +# After all jobs have finished (or are canceled) and a short delay, +# tar files of all logs are made available as "build artifacts". on: push: tags: - '*' - workflow_dispatch: - # Allow to run manually + workflow_dispatch: # allow to run manually -env: - TARGETS_PRE: all-sage-local - TARGETS: build doc-html - TARGETS_OPTIONAL: ptest +# A job may specify inputs to docker.yml: +# +# targets_pre +# targets +# targets_optional +# tox_system_factors +# tox_packages_factors +# +# consult docker.yml for all possible inputs and their default values permissions: packages: write jobs: - # standard (without ptest) for the default platform (used by build.yml etc.) + # This duplicates the "standard" job (see below) for the default platform. + # The reason is to provide the default docker image as fast as possible + # for other workflows like build.yml. default: uses: ./.github/workflows/docker.yml with: # Build from scratch free_disk_space: true docker_targets: "with-system-packages configured with-targets-pre with-targets" - # FIXME: duplicated from env.TARGETS targets_pre: all-sage-local targets: build doc-html targets_optional: ptest @@ -52,8 +55,8 @@ jobs: docker_push_repository: ghcr.io/${{ github.repository }}/ logs_artifact: false - # All platforms. This duplicates the default platform, but why not, - # it makes it more robust regarding random timeouts. + # The following jobs run for all supported platforms. See the default list + # for tox_system_factors in docker.yml. standard: if: ${{ success() || failure() }} @@ -62,7 +65,6 @@ jobs: # Build from scratch free_disk_space: true docker_targets: "with-system-packages configured with-targets-pre with-targets with-targets-optional" - # FIXME: duplicated from env.TARGETS targets_pre: all-sage-local targets: build doc-html targets_optional: ptest @@ -101,7 +103,6 @@ jobs: from_docker_repository: ghcr.io/${{ github.repository }}/ from_docker_target: "with-targets-pre" docker_targets: "with-targets with-targets-optional" - # FIXME: duplicated from env.TARGETS targets: build doc-html targets_optional: ptest tox_packages_factors: >- @@ -136,7 +137,6 @@ jobs: # Build from scratch free_disk_space: true docker_targets: "with-system-packages configured with-targets-pre with-targets with-targets-optional" - # FIXME: duplicated from env.TARGETS targets_pre: all-sage-local targets: build doc-html targets_optional: ptest diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 523d2a5b007..7a768e34512 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -4,13 +4,13 @@ on: workflow_call: inputs: targets_pre: - default: build/make/Makefile + default: all-sage-local type: string targets: - default: build/make/Makefile + default: build doc-html type: string targets_optional: - default: build/make/Makefile + default: ptest type: string tox_system_factors: description: 'Stringified JSON object listing tox system factors' From 3cfeecab21227f9771ef4bb5e99b655b7fbdb0fc Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Sat, 15 Feb 2025 01:34:02 +0900 Subject: [PATCH 11/40] Use standard image for optional and experimental --- .github/workflows/ci-linux.yml | 74 +++++++++++++++++----------------- .github/workflows/docker.yml | 9 +++-- 2 files changed, 42 insertions(+), 41 deletions(-) diff --git a/.github/workflows/ci-linux.yml b/.github/workflows/ci-linux.yml index 407255acf0d..82e11c68c96 100644 --- a/.github/workflows/ci-linux.yml +++ b/.github/workflows/ci-linux.yml @@ -21,15 +21,18 @@ on: - '*' workflow_dispatch: # allow to run manually -# A job may specify inputs to docker.yml: +# A job may specify inputs to docker.yml such as # # targets_pre # targets # targets_optional # tox_system_factors # tox_packages_factors +# ... # -# consult docker.yml for all possible inputs and their default values +# consult docker.yml for descriptions and defaults for all possible inputs. +# +# For the meaning of docker_targets, see also tox.ini permissions: packages: write @@ -42,16 +45,16 @@ jobs: default: uses: ./.github/workflows/docker.yml with: - # Build from scratch + tox_system_factors: >- + ["ubuntu-jammy"] + tox_packages_factors: >- + ["standard"] free_disk_space: true + incremental: false docker_targets: "with-system-packages configured with-targets-pre with-targets" targets_pre: all-sage-local targets: build doc-html targets_optional: ptest - tox_system_factors: >- - ["ubuntu-jammy"] - tox_packages_factors: >- - ["standard"] docker_push_repository: ghcr.io/${{ github.repository }}/ logs_artifact: false @@ -62,14 +65,14 @@ jobs: if: ${{ success() || failure() }} uses: ./.github/workflows/docker.yml with: - # Build from scratch + tox_packages_factors: >- + ["standard"] free_disk_space: true + incremental: false docker_targets: "with-system-packages configured with-targets-pre with-targets with-targets-optional" targets_pre: all-sage-local targets: build doc-html targets_optional: ptest - tox_packages_factors: >- - ["standard"] docker_push_repository: ghcr.io/${{ github.repository }}/ # Make sure that all "standard" jobs can start simultaneously, # so that runners are available by the time that "default" starts. @@ -80,15 +83,14 @@ jobs: needs: [standard] uses: ./.github/workflows/docker.yml with: - # Build incrementally from previous stage (pre) - incremental: true + tox_packages_factors: >- + ["standard"] free_disk_space: true + incremental: true from_docker_repository: ghcr.io/${{ github.repository }}/ from_docker_target: "with-targets-pre" docker_targets: "with-targets-pre" targets_pre: all-sage-local python3-ensure tox-ensure sagelib-tox-sagepython-constraints_pkgs-norequirements - tox_packages_factors: >- - ["standard"] logs_artifact_postfix: "-constraints_pkgs" max_parallel: 15 @@ -97,16 +99,6 @@ jobs: needs: [standard] uses: ./.github/workflows/docker.yml with: - # Build incrementally from previous stage (pre) - incremental: true - free_disk_space: true - from_docker_repository: ghcr.io/${{ github.repository }}/ - from_docker_target: "with-targets-pre" - docker_targets: "with-targets with-targets-optional" - targets: build doc-html - targets_optional: ptest - tox_packages_factors: >- - ["standard-sitepackages"] # Only test systems with a usable system python (>= 3.9) tox_system_factors: >- ["ubuntu-jammy", @@ -126,6 +118,14 @@ jobs: "opensuse-15.5-gcc_11-python3.11", "opensuse-tumbleweed-python3.10", "opensuse-tumbleweed"] + tox_packages_factors: >- + ["standard-sitepackages"] + free_disk_space: true + incremental: true + from_docker_repository: ghcr.io/${{ github.repository }}/ + from_docker_target: "with-targets-pre" + docker_targets: "with-targets with-targets-optional" + targets_optional: ptest docker_push_repository: ghcr.io/${{ github.repository }}/ logs_artifact_postfix: "-sitepackages" max_parallel: 8 @@ -134,44 +134,44 @@ jobs: if: ${{ success() || failure() }} uses: ./.github/workflows/docker.yml with: - # Build from scratch + tox_packages_factors: >- + ["minimal"] free_disk_space: true + incremental: false docker_targets: "with-system-packages configured with-targets-pre with-targets with-targets-optional" targets_pre: all-sage-local targets: build doc-html targets_optional: ptest - tox_packages_factors: >- - ["minimal"] docker_push_repository: ghcr.io/${{ github.repository }}/ # Reduced from 30 because it may run in parallel with 'standard' and 'standard-sitepackages' above. # Calibrated for clogging the job pipeline until the "default" job has finished. max_parallel: 24 - maximal-pre: + maximal: if: ${{ success() || failure() }} needs: [minimal] uses: ./.github/workflows/docker.yml with: + tox_packages_factors: >- + ["maximal"] free_disk_space: true - # Build from scratch + incremental: false docker_targets: "with-system-packages configured with-targets-pre" - # FIXME: duplicated from env.TARGETS targets_pre: all-sage-local - tox_packages_factors: >- - ["maximal"] + targets: build doc-html docker_push_repository: ghcr.io/${{ github.repository }}/ optional: if: ${{ success() || failure() }} - needs: [maximal-pre] + needs: [maximal] uses: ./.github/workflows/docker.yml with: + tox_packages_factors: >- + ["standard"] incremental: true free_disk_space: true from_docker_repository: ghcr.io/${{ github.repository }}/ from_docker_target: "with-targets-pre" - tox_packages_factors: >- - ["maximal"] docker_targets: "with-targets-optional" # We remove packages starting with _, in particular package _develop targets_optional: '$(echo $(export PATH=build/bin:$PATH && sage-package list :optional: --has-file "spkg-install.in|spkg-install|requirements.txt" --no-file "huge|has_nonfree_dependencies" | grep -v sagemath_doc | grep -v ^_))' @@ -182,12 +182,12 @@ jobs: needs: [optional] uses: ./.github/workflows/docker.yml with: + tox_packages_factors: >- + ["standard"] incremental: true free_disk_space: true from_docker_repository: ghcr.io/${{ github.repository }}/ from_docker_target: "with-targets-pre" - tox_packages_factors: >- - ["maximal"] docker_targets: "with-targets-optional" targets_optional: '$(echo $(export PATH=build/bin:$PATH && sage-package list :experimental: --has-file "spkg-install.in|spkg-install|requirements.txt" --no-file "huge|has_nonfree_dependencies" | grep -v sagemath_doc))' logs_artifact_postfix: "-experimental" diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 7a768e34512..acbe9aba548 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -4,13 +4,13 @@ on: workflow_call: inputs: targets_pre: - default: all-sage-local + default: build/make/Makefile type: string targets: - default: build doc-html + default: build/make/Makefile type: string targets_optional: - default: ptest + default: build/make/Makefile type: string tox_system_factors: description: 'Stringified JSON object listing tox system factors' @@ -103,6 +103,7 @@ on: default: "with-system-packages configured with-targets-pre with-targets with-targets-optional" type: string incremental: + description: 'Whether to build Sage from scratch or from prebuilt Sage' default: false type: boolean from_docker_repository: @@ -282,7 +283,7 @@ jobs: # # The tox command starts to build and test Sage within a Docker container. # - # Adter the build, the sed command strips away timestamps from + # After the build, the sed command strips away timestamps from # "docker build" (buildkit) such as "#25 1211.0" at the beginning of # each line. The timestamps are redundant because GH Actions provides # timestamps for each line already. Stripping the timestamps from From 84d04df33c1795d4275098b4b8061e5b35769e62 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Sun, 16 Feb 2025 11:08:53 +0900 Subject: [PATCH 12/40] Update DEFAULT_SYSTEM_FACTORS --- .github/workflows/docker.yml | 11 +- .../developer/portability_platform_table.rst | 650 ++++++++++-------- tox.ini | 36 +- 3 files changed, 382 insertions(+), 315 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index acbe9aba548..5eb60213223 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -22,8 +22,6 @@ on: "ubuntu-bionic-gcc_8", "ubuntu-focal", "ubuntu-jammy", - "ubuntu-lunar", - "ubuntu-mantic", "ubuntu-noble", "debian-bullseye", "debian-bookworm", @@ -52,13 +50,16 @@ on: "centos-stream-9-python3.12", "almalinux-8-python3.9", "almalinux-9-python3.11", + "gentoo-python3.10", + "gentoo-python3.11", + "gentoo-python3.12", "archlinux-latest", "opensuse-15.5-gcc_11-python3.11", "opensuse-tumbleweed-python3.10", "opensuse-tumbleweed", - "conda-forge-python3.11", - "ubuntu-bionic-gcc_8-i386", - "debian-bullseye-i386", + "COLOR_with_system_packages", + "=", + "%23696969", ] # 'tox -e update_docker_platforms' updates above tox_packages_factors: diff --git a/src/doc/en/developer/portability_platform_table.rst b/src/doc/en/developer/portability_platform_table.rst index e87d4db04c5..15333406bca 100644 --- a/src/doc/en/developer/portability_platform_table.rst +++ b/src/doc/en/developer/portability_platform_table.rst @@ -16,7 +16,7 @@ .. |codespace-ubuntu-xenial-toolchain-gcc_9-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-ubuntu-xenial-toolchain-gcc_9-minimal%2Fdevcontainer.json -.. |image-ubuntu-xenial-toolchain-gcc_9-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-xenial-toolchain-gcc_9-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-ubuntu-xenial-toolchain-gcc_9-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-xenial-toolchain-gcc_9-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-ubuntu-xenial-toolchain-gcc_9-standard-with-system-packages .. |image-ubuntu-xenial-toolchain-gcc_9-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-xenial-toolchain-gcc_9-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -70,7 +70,7 @@ .. |codespace-ubuntu-bionic-gcc_8-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-ubuntu-bionic-gcc_8-minimal%2Fdevcontainer.json -.. |image-ubuntu-bionic-gcc_8-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-bionic-gcc_8-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-ubuntu-bionic-gcc_8-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-bionic-gcc_8-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-ubuntu-bionic-gcc_8-standard-with-system-packages .. |image-ubuntu-bionic-gcc_8-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-bionic-gcc_8-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -124,7 +124,7 @@ .. |codespace-ubuntu-focal-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-ubuntu-focal-minimal%2Fdevcontainer.json -.. |image-ubuntu-focal-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-focal-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-ubuntu-focal-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-focal-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-ubuntu-focal-standard-with-system-packages .. |image-ubuntu-focal-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-focal-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -178,7 +178,7 @@ .. |codespace-ubuntu-jammy-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-ubuntu-jammy-minimal%2Fdevcontainer.json -.. |image-ubuntu-jammy-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-jammy-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-ubuntu-jammy-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-jammy-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-ubuntu-jammy-standard-with-system-packages .. |image-ubuntu-jammy-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-jammy-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -214,114 +214,6 @@ .. |codespace-ubuntu-jammy-maximal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-ubuntu-jammy-maximal%2Fdevcontainer.json -.. |image-ubuntu-lunar-minimal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-lunar-minimal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-lunar-minimal-with-system-packages - -.. |image-ubuntu-lunar-minimal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-lunar-minimal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-lunar-minimal-configured - -.. |image-ubuntu-lunar-minimal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-lunar-minimal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%23677895 - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-lunar-minimal-with-targets-pre - -.. |image-ubuntu-lunar-minimal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-lunar-minimal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%236686c1 - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-lunar-minimal-with-targets - -.. |image-ubuntu-lunar-minimal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-lunar-minimal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%236495ed - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-lunar-minimal-with-targets-optional - -.. |codespace-ubuntu-lunar-minimal| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-ubuntu-lunar-minimal%2Fdevcontainer.json - -.. |image-ubuntu-lunar-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-lunar-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-lunar-standard-with-system-packages - -.. |image-ubuntu-lunar-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-lunar-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-lunar-standard-configured - -.. |image-ubuntu-lunar-standard-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-lunar-standard-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%235d8a4c - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-lunar-standard-with-targets-pre - -.. |image-ubuntu-lunar-standard-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-lunar-standard-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%2350ab2e - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-lunar-standard-with-targets - -.. |image-ubuntu-lunar-standard-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-lunar-standard-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%2344cc11 - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-lunar-standard-with-targets-optional - -.. |codespace-ubuntu-lunar-standard| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-ubuntu-lunar-standard%2Fdevcontainer.json - -.. |image-ubuntu-lunar-maximal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-lunar-maximal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-lunar-maximal-with-system-packages - -.. |image-ubuntu-lunar-maximal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-lunar-maximal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-lunar-maximal-configured - -.. |image-ubuntu-lunar-maximal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-lunar-maximal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%238f6b8d - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-lunar-maximal-with-targets-pre - -.. |image-ubuntu-lunar-maximal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-lunar-maximal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%23b46eb2 - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-lunar-maximal-with-targets - -.. |image-ubuntu-lunar-maximal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-lunar-maximal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%23da70d6 - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-lunar-maximal-with-targets-optional - -.. |codespace-ubuntu-lunar-maximal| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-ubuntu-lunar-maximal%2Fdevcontainer.json - -.. |image-ubuntu-mantic-minimal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-mantic-minimal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-mantic-minimal-with-system-packages - -.. |image-ubuntu-mantic-minimal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-mantic-minimal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-mantic-minimal-configured - -.. |image-ubuntu-mantic-minimal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-mantic-minimal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%23677895 - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-mantic-minimal-with-targets-pre - -.. |image-ubuntu-mantic-minimal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-mantic-minimal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%236686c1 - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-mantic-minimal-with-targets - -.. |image-ubuntu-mantic-minimal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-mantic-minimal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%236495ed - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-mantic-minimal-with-targets-optional - -.. |codespace-ubuntu-mantic-minimal| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-ubuntu-mantic-minimal%2Fdevcontainer.json - -.. |image-ubuntu-mantic-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-mantic-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-mantic-standard-with-system-packages - -.. |image-ubuntu-mantic-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-mantic-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-mantic-standard-configured - -.. |image-ubuntu-mantic-standard-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-mantic-standard-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%235d8a4c - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-mantic-standard-with-targets-pre - -.. |image-ubuntu-mantic-standard-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-mantic-standard-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%2350ab2e - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-mantic-standard-with-targets - -.. |image-ubuntu-mantic-standard-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-mantic-standard-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%2344cc11 - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-mantic-standard-with-targets-optional - -.. |codespace-ubuntu-mantic-standard| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-ubuntu-mantic-standard%2Fdevcontainer.json - -.. |image-ubuntu-mantic-maximal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-mantic-maximal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-mantic-maximal-with-system-packages - -.. |image-ubuntu-mantic-maximal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-mantic-maximal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-mantic-maximal-configured - -.. |image-ubuntu-mantic-maximal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-mantic-maximal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%238f6b8d - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-mantic-maximal-with-targets-pre - -.. |image-ubuntu-mantic-maximal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-mantic-maximal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%23b46eb2 - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-mantic-maximal-with-targets - -.. |image-ubuntu-mantic-maximal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-mantic-maximal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%23da70d6 - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-mantic-maximal-with-targets-optional - -.. |codespace-ubuntu-mantic-maximal| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-ubuntu-mantic-maximal%2Fdevcontainer.json - .. |image-ubuntu-noble-minimal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-noble-minimal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-ubuntu-noble-minimal-with-system-packages @@ -340,7 +232,7 @@ .. |codespace-ubuntu-noble-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-ubuntu-noble-minimal%2Fdevcontainer.json -.. |image-ubuntu-noble-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-noble-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-ubuntu-noble-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-noble-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-ubuntu-noble-standard-with-system-packages .. |image-ubuntu-noble-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-noble-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -394,7 +286,7 @@ .. |codespace-debian-bullseye-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-debian-bullseye-minimal%2Fdevcontainer.json -.. |image-debian-bullseye-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-bullseye-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-debian-bullseye-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-bullseye-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-debian-bullseye-standard-with-system-packages .. |image-debian-bullseye-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-bullseye-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -448,7 +340,7 @@ .. |codespace-debian-bookworm-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-debian-bookworm-minimal%2Fdevcontainer.json -.. |image-debian-bookworm-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-bookworm-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-debian-bookworm-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-bookworm-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-debian-bookworm-standard-with-system-packages .. |image-debian-bookworm-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-bookworm-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -502,7 +394,7 @@ .. |codespace-debian-trixie-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-debian-trixie-minimal%2Fdevcontainer.json -.. |image-debian-trixie-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-trixie-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-debian-trixie-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-trixie-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-debian-trixie-standard-with-system-packages .. |image-debian-trixie-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-trixie-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -556,7 +448,7 @@ .. |codespace-debian-sid-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-debian-sid-minimal%2Fdevcontainer.json -.. |image-debian-sid-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-sid-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-debian-sid-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-sid-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-debian-sid-standard-with-system-packages .. |image-debian-sid-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-sid-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -610,7 +502,7 @@ .. |codespace-linuxmint-20.1-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-linuxmint-20.1-minimal%2Fdevcontainer.json -.. |image-linuxmint-20.1-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.1-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-linuxmint-20.1-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.1-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.1-standard-with-system-packages .. |image-linuxmint-20.1-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.1-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -664,7 +556,7 @@ .. |codespace-linuxmint-20.2-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-linuxmint-20.2-minimal%2Fdevcontainer.json -.. |image-linuxmint-20.2-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.2-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-linuxmint-20.2-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.2-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.2-standard-with-system-packages .. |image-linuxmint-20.2-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.2-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -718,7 +610,7 @@ .. |codespace-linuxmint-20.3-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-linuxmint-20.3-minimal%2Fdevcontainer.json -.. |image-linuxmint-20.3-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.3-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-linuxmint-20.3-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.3-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.3-standard-with-system-packages .. |image-linuxmint-20.3-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.3-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -772,7 +664,7 @@ .. |codespace-linuxmint-21-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-linuxmint-21-minimal%2Fdevcontainer.json -.. |image-linuxmint-21-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-21-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-linuxmint-21-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-21-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-linuxmint-21-standard-with-system-packages .. |image-linuxmint-21-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-21-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -826,7 +718,7 @@ .. |codespace-linuxmint-21.1-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-linuxmint-21.1-minimal%2Fdevcontainer.json -.. |image-linuxmint-21.1-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-21.1-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-linuxmint-21.1-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-21.1-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-linuxmint-21.1-standard-with-system-packages .. |image-linuxmint-21.1-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-21.1-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -880,7 +772,7 @@ .. |codespace-linuxmint-21.2-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-linuxmint-21.2-minimal%2Fdevcontainer.json -.. |image-linuxmint-21.2-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-21.2-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-linuxmint-21.2-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-21.2-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-linuxmint-21.2-standard-with-system-packages .. |image-linuxmint-21.2-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-21.2-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -934,7 +826,7 @@ .. |codespace-linuxmint-21.3-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-linuxmint-21.3-minimal%2Fdevcontainer.json -.. |image-linuxmint-21.3-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-21.3-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-linuxmint-21.3-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-21.3-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-linuxmint-21.3-standard-with-system-packages .. |image-linuxmint-21.3-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-21.3-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -988,7 +880,7 @@ .. |codespace-fedora-30-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-fedora-30-minimal%2Fdevcontainer.json -.. |image-fedora-30-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-30-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-fedora-30-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-30-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-fedora-30-standard-with-system-packages .. |image-fedora-30-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-30-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1042,7 +934,7 @@ .. |codespace-fedora-31-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-fedora-31-minimal%2Fdevcontainer.json -.. |image-fedora-31-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-31-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-fedora-31-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-31-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-fedora-31-standard-with-system-packages .. |image-fedora-31-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-31-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1096,7 +988,7 @@ .. |codespace-fedora-32-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-fedora-32-minimal%2Fdevcontainer.json -.. |image-fedora-32-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-32-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-fedora-32-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-32-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-fedora-32-standard-with-system-packages .. |image-fedora-32-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-32-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1150,7 +1042,7 @@ .. |codespace-fedora-33-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-fedora-33-minimal%2Fdevcontainer.json -.. |image-fedora-33-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-33-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-fedora-33-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-33-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-fedora-33-standard-with-system-packages .. |image-fedora-33-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-33-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1204,7 +1096,7 @@ .. |codespace-fedora-34-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-fedora-34-minimal%2Fdevcontainer.json -.. |image-fedora-34-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-34-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-fedora-34-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-34-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-fedora-34-standard-with-system-packages .. |image-fedora-34-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-34-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1258,7 +1150,7 @@ .. |codespace-fedora-35-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-fedora-35-minimal%2Fdevcontainer.json -.. |image-fedora-35-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-35-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-fedora-35-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-35-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-fedora-35-standard-with-system-packages .. |image-fedora-35-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-35-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1312,7 +1204,7 @@ .. |codespace-fedora-36-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-fedora-36-minimal%2Fdevcontainer.json -.. |image-fedora-36-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-36-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-fedora-36-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-36-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-fedora-36-standard-with-system-packages .. |image-fedora-36-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-36-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1366,7 +1258,7 @@ .. |codespace-fedora-37-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-fedora-37-minimal%2Fdevcontainer.json -.. |image-fedora-37-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-37-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-fedora-37-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-37-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-fedora-37-standard-with-system-packages .. |image-fedora-37-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-37-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1420,7 +1312,7 @@ .. |codespace-fedora-38-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-fedora-38-minimal%2Fdevcontainer.json -.. |image-fedora-38-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-38-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-fedora-38-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-38-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-fedora-38-standard-with-system-packages .. |image-fedora-38-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-38-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1474,7 +1366,7 @@ .. |codespace-fedora-39-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-fedora-39-minimal%2Fdevcontainer.json -.. |image-fedora-39-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-39-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-fedora-39-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-39-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-fedora-39-standard-with-system-packages .. |image-fedora-39-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-39-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1528,7 +1420,7 @@ .. |codespace-fedora-40-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-fedora-40-minimal%2Fdevcontainer.json -.. |image-fedora-40-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-40-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-fedora-40-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-40-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-fedora-40-standard-with-system-packages .. |image-fedora-40-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-40-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1582,7 +1474,7 @@ .. |codespace-fedora-41-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-fedora-41-minimal%2Fdevcontainer.json -.. |image-fedora-41-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-41-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-fedora-41-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-41-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-fedora-41-standard-with-system-packages .. |image-fedora-41-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-41-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1636,7 +1528,7 @@ .. |codespace-centos-stream-9-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-centos-stream-9-minimal%2Fdevcontainer.json -.. |image-centos-stream-9-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-centos-stream-9-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-centos-stream-9-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-centos-stream-9-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-centos-stream-9-standard-with-system-packages .. |image-centos-stream-9-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-centos-stream-9-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1690,7 +1582,7 @@ .. |codespace-centos-stream-9-python3.12-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-centos-stream-9-python3.12-minimal%2Fdevcontainer.json -.. |image-centos-stream-9-python3.12-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-centos-stream-9-python3.12-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-centos-stream-9-python3.12-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-centos-stream-9-python3.12-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-centos-stream-9-python3.12-standard-with-system-packages .. |image-centos-stream-9-python3.12-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-centos-stream-9-python3.12-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1744,7 +1636,7 @@ .. |codespace-almalinux-8-python3.9-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-almalinux-8-python3.9-minimal%2Fdevcontainer.json -.. |image-almalinux-8-python3.9-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-almalinux-8-python3.9-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-almalinux-8-python3.9-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-almalinux-8-python3.9-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-almalinux-8-python3.9-standard-with-system-packages .. |image-almalinux-8-python3.9-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-almalinux-8-python3.9-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1798,7 +1690,7 @@ .. |codespace-almalinux-9-python3.11-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-almalinux-9-python3.11-minimal%2Fdevcontainer.json -.. |image-almalinux-9-python3.11-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-almalinux-9-python3.11-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-almalinux-9-python3.11-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-almalinux-9-python3.11-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-almalinux-9-python3.11-standard-with-system-packages .. |image-almalinux-9-python3.11-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-almalinux-9-python3.11-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1834,6 +1726,168 @@ .. |codespace-almalinux-9-python3.11-maximal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-almalinux-9-python3.11-maximal%2Fdevcontainer.json +.. |image-gentoo-python3.10-minimal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.10-minimal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.10-minimal-with-system-packages + +.. |image-gentoo-python3.10-minimal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.10-minimal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.10-minimal-configured + +.. |image-gentoo-python3.10-minimal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.10-minimal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%23677895 + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.10-minimal-with-targets-pre + +.. |image-gentoo-python3.10-minimal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.10-minimal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%236686c1 + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.10-minimal-with-targets + +.. |image-gentoo-python3.10-minimal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.10-minimal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%236495ed + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.10-minimal-with-targets-optional + +.. |codespace-gentoo-python3.10-minimal| image:: https://github.com/codespaces/badge.svg + :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-gentoo-python3.10-minimal%2Fdevcontainer.json + +.. |image-gentoo-python3.10-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.10-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.10-standard-with-system-packages + +.. |image-gentoo-python3.10-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.10-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.10-standard-configured + +.. |image-gentoo-python3.10-standard-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.10-standard-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%235d8a4c + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.10-standard-with-targets-pre + +.. |image-gentoo-python3.10-standard-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.10-standard-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%2350ab2e + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.10-standard-with-targets + +.. |image-gentoo-python3.10-standard-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.10-standard-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%2344cc11 + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.10-standard-with-targets-optional + +.. |codespace-gentoo-python3.10-standard| image:: https://github.com/codespaces/badge.svg + :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-gentoo-python3.10-standard%2Fdevcontainer.json + +.. |image-gentoo-python3.10-maximal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.10-maximal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.10-maximal-with-system-packages + +.. |image-gentoo-python3.10-maximal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.10-maximal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.10-maximal-configured + +.. |image-gentoo-python3.10-maximal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.10-maximal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%238f6b8d + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.10-maximal-with-targets-pre + +.. |image-gentoo-python3.10-maximal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.10-maximal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%23b46eb2 + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.10-maximal-with-targets + +.. |image-gentoo-python3.10-maximal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.10-maximal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%23da70d6 + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.10-maximal-with-targets-optional + +.. |codespace-gentoo-python3.10-maximal| image:: https://github.com/codespaces/badge.svg + :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-gentoo-python3.10-maximal%2Fdevcontainer.json + +.. |image-gentoo-python3.11-minimal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.11-minimal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.11-minimal-with-system-packages + +.. |image-gentoo-python3.11-minimal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.11-minimal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.11-minimal-configured + +.. |image-gentoo-python3.11-minimal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.11-minimal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%23677895 + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.11-minimal-with-targets-pre + +.. |image-gentoo-python3.11-minimal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.11-minimal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%236686c1 + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.11-minimal-with-targets + +.. |image-gentoo-python3.11-minimal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.11-minimal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%236495ed + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.11-minimal-with-targets-optional + +.. |codespace-gentoo-python3.11-minimal| image:: https://github.com/codespaces/badge.svg + :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-gentoo-python3.11-minimal%2Fdevcontainer.json + +.. |image-gentoo-python3.11-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.11-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.11-standard-with-system-packages + +.. |image-gentoo-python3.11-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.11-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.11-standard-configured + +.. |image-gentoo-python3.11-standard-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.11-standard-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%235d8a4c + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.11-standard-with-targets-pre + +.. |image-gentoo-python3.11-standard-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.11-standard-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%2350ab2e + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.11-standard-with-targets + +.. |image-gentoo-python3.11-standard-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.11-standard-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%2344cc11 + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.11-standard-with-targets-optional + +.. |codespace-gentoo-python3.11-standard| image:: https://github.com/codespaces/badge.svg + :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-gentoo-python3.11-standard%2Fdevcontainer.json + +.. |image-gentoo-python3.11-maximal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.11-maximal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.11-maximal-with-system-packages + +.. |image-gentoo-python3.11-maximal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.11-maximal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.11-maximal-configured + +.. |image-gentoo-python3.11-maximal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.11-maximal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%238f6b8d + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.11-maximal-with-targets-pre + +.. |image-gentoo-python3.11-maximal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.11-maximal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%23b46eb2 + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.11-maximal-with-targets + +.. |image-gentoo-python3.11-maximal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.11-maximal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%23da70d6 + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.11-maximal-with-targets-optional + +.. |codespace-gentoo-python3.11-maximal| image:: https://github.com/codespaces/badge.svg + :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-gentoo-python3.11-maximal%2Fdevcontainer.json + +.. |image-gentoo-python3.12-minimal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.12-minimal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.12-minimal-with-system-packages + +.. |image-gentoo-python3.12-minimal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.12-minimal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.12-minimal-configured + +.. |image-gentoo-python3.12-minimal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.12-minimal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%23677895 + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.12-minimal-with-targets-pre + +.. |image-gentoo-python3.12-minimal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.12-minimal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%236686c1 + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.12-minimal-with-targets + +.. |image-gentoo-python3.12-minimal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.12-minimal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%236495ed + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.12-minimal-with-targets-optional + +.. |codespace-gentoo-python3.12-minimal| image:: https://github.com/codespaces/badge.svg + :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-gentoo-python3.12-minimal%2Fdevcontainer.json + +.. |image-gentoo-python3.12-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.12-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.12-standard-with-system-packages + +.. |image-gentoo-python3.12-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.12-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.12-standard-configured + +.. |image-gentoo-python3.12-standard-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.12-standard-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%235d8a4c + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.12-standard-with-targets-pre + +.. |image-gentoo-python3.12-standard-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.12-standard-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%2350ab2e + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.12-standard-with-targets + +.. |image-gentoo-python3.12-standard-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.12-standard-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%2344cc11 + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.12-standard-with-targets-optional + +.. |codespace-gentoo-python3.12-standard| image:: https://github.com/codespaces/badge.svg + :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-gentoo-python3.12-standard%2Fdevcontainer.json + +.. |image-gentoo-python3.12-maximal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.12-maximal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.12-maximal-with-system-packages + +.. |image-gentoo-python3.12-maximal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.12-maximal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.12-maximal-configured + +.. |image-gentoo-python3.12-maximal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.12-maximal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%238f6b8d + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.12-maximal-with-targets-pre + +.. |image-gentoo-python3.12-maximal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.12-maximal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%23b46eb2 + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.12-maximal-with-targets + +.. |image-gentoo-python3.12-maximal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.12-maximal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%23da70d6 + :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.12-maximal-with-targets-optional + +.. |codespace-gentoo-python3.12-maximal| image:: https://github.com/codespaces/badge.svg + :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-gentoo-python3.12-maximal%2Fdevcontainer.json + .. |image-archlinux-latest-minimal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-archlinux-latest-minimal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-archlinux-latest-minimal-with-system-packages @@ -1852,7 +1906,7 @@ .. |codespace-archlinux-latest-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-archlinux-latest-minimal%2Fdevcontainer.json -.. |image-archlinux-latest-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-archlinux-latest-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-archlinux-latest-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-archlinux-latest-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-archlinux-latest-standard-with-system-packages .. |image-archlinux-latest-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-archlinux-latest-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1906,7 +1960,7 @@ .. |codespace-opensuse-15.5-gcc_11-python3.11-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-opensuse-15.5-gcc_11-python3.11-minimal%2Fdevcontainer.json -.. |image-opensuse-15.5-gcc_11-python3.11-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-opensuse-15.5-gcc_11-python3.11-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-opensuse-15.5-gcc_11-python3.11-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-opensuse-15.5-gcc_11-python3.11-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-opensuse-15.5-gcc_11-python3.11-standard-with-system-packages .. |image-opensuse-15.5-gcc_11-python3.11-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-opensuse-15.5-gcc_11-python3.11-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1960,7 +2014,7 @@ .. |codespace-opensuse-tumbleweed-python3.10-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-opensuse-tumbleweed-python3.10-minimal%2Fdevcontainer.json -.. |image-opensuse-tumbleweed-python3.10-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-opensuse-tumbleweed-python3.10-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-opensuse-tumbleweed-python3.10-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-opensuse-tumbleweed-python3.10-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-opensuse-tumbleweed-python3.10-standard-with-system-packages .. |image-opensuse-tumbleweed-python3.10-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-opensuse-tumbleweed-python3.10-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -2014,7 +2068,7 @@ .. |codespace-opensuse-tumbleweed-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-opensuse-tumbleweed-minimal%2Fdevcontainer.json -.. |image-opensuse-tumbleweed-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-opensuse-tumbleweed-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 +.. |image-opensuse-tumbleweed-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-opensuse-tumbleweed-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= :target: https://ghcr.io/sagemath/sage/sage-opensuse-tumbleweed-standard-with-system-packages .. |image-opensuse-tumbleweed-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-opensuse-tumbleweed-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -2050,167 +2104,167 @@ .. |codespace-opensuse-tumbleweed-maximal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-opensuse-tumbleweed-maximal%2Fdevcontainer.json -.. |image-conda-forge-python3.11-minimal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-conda-forge-python3.11-minimal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-conda-forge-python3.11-minimal-with-system-packages +.. |image-COLOR_with_system_packages-minimal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-COLOR_with_system_packages-minimal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-COLOR_with_system_packages-minimal-with-system-packages -.. |image-conda-forge-python3.11-minimal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-conda-forge-python3.11-minimal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-conda-forge-python3.11-minimal-configured +.. |image-COLOR_with_system_packages-minimal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-COLOR_with_system_packages-minimal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-COLOR_with_system_packages-minimal-configured -.. |image-conda-forge-python3.11-minimal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-conda-forge-python3.11-minimal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%23677895 - :target: https://ghcr.io/sagemath/sage/sage-conda-forge-python3.11-minimal-with-targets-pre +.. |image-COLOR_with_system_packages-minimal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-COLOR_with_system_packages-minimal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%23677895 + :target: https://ghcr.io/sagemath/sage/sage-COLOR_with_system_packages-minimal-with-targets-pre -.. |image-conda-forge-python3.11-minimal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-conda-forge-python3.11-minimal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%236686c1 - :target: https://ghcr.io/sagemath/sage/sage-conda-forge-python3.11-minimal-with-targets +.. |image-COLOR_with_system_packages-minimal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-COLOR_with_system_packages-minimal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%236686c1 + :target: https://ghcr.io/sagemath/sage/sage-COLOR_with_system_packages-minimal-with-targets -.. |image-conda-forge-python3.11-minimal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-conda-forge-python3.11-minimal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%236495ed - :target: https://ghcr.io/sagemath/sage/sage-conda-forge-python3.11-minimal-with-targets-optional +.. |image-COLOR_with_system_packages-minimal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-COLOR_with_system_packages-minimal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%236495ed + :target: https://ghcr.io/sagemath/sage/sage-COLOR_with_system_packages-minimal-with-targets-optional -.. |codespace-conda-forge-python3.11-minimal| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-conda-forge-python3.11-minimal%2Fdevcontainer.json +.. |codespace-COLOR_with_system_packages-minimal| image:: https://github.com/codespaces/badge.svg + :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-COLOR_with_system_packages-minimal%2Fdevcontainer.json -.. |image-conda-forge-python3.11-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-conda-forge-python3.11-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-conda-forge-python3.11-standard-with-system-packages +.. |image-COLOR_with_system_packages-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-COLOR_with_system_packages-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= + :target: https://ghcr.io/sagemath/sage/sage-COLOR_with_system_packages-standard-with-system-packages -.. |image-conda-forge-python3.11-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-conda-forge-python3.11-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-conda-forge-python3.11-standard-configured +.. |image-COLOR_with_system_packages-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-COLOR_with_system_packages-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-COLOR_with_system_packages-standard-configured -.. |image-conda-forge-python3.11-standard-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-conda-forge-python3.11-standard-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%235d8a4c - :target: https://ghcr.io/sagemath/sage/sage-conda-forge-python3.11-standard-with-targets-pre +.. |image-COLOR_with_system_packages-standard-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-COLOR_with_system_packages-standard-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%235d8a4c + :target: https://ghcr.io/sagemath/sage/sage-COLOR_with_system_packages-standard-with-targets-pre -.. |image-conda-forge-python3.11-standard-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-conda-forge-python3.11-standard-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%2350ab2e - :target: https://ghcr.io/sagemath/sage/sage-conda-forge-python3.11-standard-with-targets +.. |image-COLOR_with_system_packages-standard-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-COLOR_with_system_packages-standard-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%2350ab2e + :target: https://ghcr.io/sagemath/sage/sage-COLOR_with_system_packages-standard-with-targets -.. |image-conda-forge-python3.11-standard-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-conda-forge-python3.11-standard-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%2344cc11 - :target: https://ghcr.io/sagemath/sage/sage-conda-forge-python3.11-standard-with-targets-optional +.. |image-COLOR_with_system_packages-standard-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-COLOR_with_system_packages-standard-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%2344cc11 + :target: https://ghcr.io/sagemath/sage/sage-COLOR_with_system_packages-standard-with-targets-optional -.. |codespace-conda-forge-python3.11-standard| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-conda-forge-python3.11-standard%2Fdevcontainer.json +.. |codespace-COLOR_with_system_packages-standard| image:: https://github.com/codespaces/badge.svg + :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-COLOR_with_system_packages-standard%2Fdevcontainer.json -.. |image-conda-forge-python3.11-maximal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-conda-forge-python3.11-maximal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-conda-forge-python3.11-maximal-with-system-packages +.. |image-COLOR_with_system_packages-maximal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-COLOR_with_system_packages-maximal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-COLOR_with_system_packages-maximal-with-system-packages -.. |image-conda-forge-python3.11-maximal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-conda-forge-python3.11-maximal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-conda-forge-python3.11-maximal-configured +.. |image-COLOR_with_system_packages-maximal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-COLOR_with_system_packages-maximal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-COLOR_with_system_packages-maximal-configured -.. |image-conda-forge-python3.11-maximal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-conda-forge-python3.11-maximal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%238f6b8d - :target: https://ghcr.io/sagemath/sage/sage-conda-forge-python3.11-maximal-with-targets-pre +.. |image-COLOR_with_system_packages-maximal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-COLOR_with_system_packages-maximal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%238f6b8d + :target: https://ghcr.io/sagemath/sage/sage-COLOR_with_system_packages-maximal-with-targets-pre -.. |image-conda-forge-python3.11-maximal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-conda-forge-python3.11-maximal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%23b46eb2 - :target: https://ghcr.io/sagemath/sage/sage-conda-forge-python3.11-maximal-with-targets +.. |image-COLOR_with_system_packages-maximal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-COLOR_with_system_packages-maximal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%23b46eb2 + :target: https://ghcr.io/sagemath/sage/sage-COLOR_with_system_packages-maximal-with-targets -.. |image-conda-forge-python3.11-maximal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-conda-forge-python3.11-maximal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%23da70d6 - :target: https://ghcr.io/sagemath/sage/sage-conda-forge-python3.11-maximal-with-targets-optional +.. |image-COLOR_with_system_packages-maximal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-COLOR_with_system_packages-maximal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%23da70d6 + :target: https://ghcr.io/sagemath/sage/sage-COLOR_with_system_packages-maximal-with-targets-optional -.. |codespace-conda-forge-python3.11-maximal| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-conda-forge-python3.11-maximal%2Fdevcontainer.json +.. |codespace-COLOR_with_system_packages-maximal| image:: https://github.com/codespaces/badge.svg + :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-COLOR_with_system_packages-maximal%2Fdevcontainer.json -.. |image-ubuntu-bionic-gcc_8-i386-minimal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-bionic-gcc_8-i386-minimal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-bionic-gcc_8-i386-minimal-with-system-packages +.. |image-=-minimal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-=-minimal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-=-minimal-with-system-packages -.. |image-ubuntu-bionic-gcc_8-i386-minimal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-bionic-gcc_8-i386-minimal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-bionic-gcc_8-i386-minimal-configured +.. |image-=-minimal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-=-minimal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-=-minimal-configured -.. |image-ubuntu-bionic-gcc_8-i386-minimal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-bionic-gcc_8-i386-minimal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%23677895 - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-bionic-gcc_8-i386-minimal-with-targets-pre +.. |image-=-minimal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-=-minimal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%23677895 + :target: https://ghcr.io/sagemath/sage/sage-=-minimal-with-targets-pre -.. |image-ubuntu-bionic-gcc_8-i386-minimal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-bionic-gcc_8-i386-minimal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%236686c1 - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-bionic-gcc_8-i386-minimal-with-targets +.. |image-=-minimal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-=-minimal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%236686c1 + :target: https://ghcr.io/sagemath/sage/sage-=-minimal-with-targets -.. |image-ubuntu-bionic-gcc_8-i386-minimal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-bionic-gcc_8-i386-minimal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%236495ed - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-bionic-gcc_8-i386-minimal-with-targets-optional +.. |image-=-minimal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-=-minimal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%236495ed + :target: https://ghcr.io/sagemath/sage/sage-=-minimal-with-targets-optional -.. |codespace-ubuntu-bionic-gcc_8-i386-minimal| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-ubuntu-bionic-gcc_8-i386-minimal%2Fdevcontainer.json +.. |codespace-=-minimal| image:: https://github.com/codespaces/badge.svg + :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-=-minimal%2Fdevcontainer.json -.. |image-ubuntu-bionic-gcc_8-i386-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-bionic-gcc_8-i386-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-bionic-gcc_8-i386-standard-with-system-packages +.. |image-=-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-=-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= + :target: https://ghcr.io/sagemath/sage/sage-=-standard-with-system-packages -.. |image-ubuntu-bionic-gcc_8-i386-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-bionic-gcc_8-i386-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-bionic-gcc_8-i386-standard-configured +.. |image-=-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-=-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-=-standard-configured -.. |image-ubuntu-bionic-gcc_8-i386-standard-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-bionic-gcc_8-i386-standard-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%235d8a4c - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-bionic-gcc_8-i386-standard-with-targets-pre +.. |image-=-standard-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-=-standard-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%235d8a4c + :target: https://ghcr.io/sagemath/sage/sage-=-standard-with-targets-pre -.. |image-ubuntu-bionic-gcc_8-i386-standard-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-bionic-gcc_8-i386-standard-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%2350ab2e - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-bionic-gcc_8-i386-standard-with-targets +.. |image-=-standard-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-=-standard-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%2350ab2e + :target: https://ghcr.io/sagemath/sage/sage-=-standard-with-targets -.. |image-ubuntu-bionic-gcc_8-i386-standard-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-bionic-gcc_8-i386-standard-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%2344cc11 - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-bionic-gcc_8-i386-standard-with-targets-optional +.. |image-=-standard-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-=-standard-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%2344cc11 + :target: https://ghcr.io/sagemath/sage/sage-=-standard-with-targets-optional -.. |codespace-ubuntu-bionic-gcc_8-i386-standard| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-ubuntu-bionic-gcc_8-i386-standard%2Fdevcontainer.json +.. |codespace-=-standard| image:: https://github.com/codespaces/badge.svg + :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-=-standard%2Fdevcontainer.json -.. |image-ubuntu-bionic-gcc_8-i386-maximal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-bionic-gcc_8-i386-maximal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-bionic-gcc_8-i386-maximal-with-system-packages +.. |image-=-maximal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-=-maximal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-=-maximal-with-system-packages -.. |image-ubuntu-bionic-gcc_8-i386-maximal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-bionic-gcc_8-i386-maximal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-bionic-gcc_8-i386-maximal-configured +.. |image-=-maximal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-=-maximal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-=-maximal-configured -.. |image-ubuntu-bionic-gcc_8-i386-maximal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-bionic-gcc_8-i386-maximal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%238f6b8d - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-bionic-gcc_8-i386-maximal-with-targets-pre +.. |image-=-maximal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-=-maximal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%238f6b8d + :target: https://ghcr.io/sagemath/sage/sage-=-maximal-with-targets-pre -.. |image-ubuntu-bionic-gcc_8-i386-maximal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-bionic-gcc_8-i386-maximal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%23b46eb2 - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-bionic-gcc_8-i386-maximal-with-targets +.. |image-=-maximal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-=-maximal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%23b46eb2 + :target: https://ghcr.io/sagemath/sage/sage-=-maximal-with-targets -.. |image-ubuntu-bionic-gcc_8-i386-maximal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-bionic-gcc_8-i386-maximal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%23da70d6 - :target: https://ghcr.io/sagemath/sage/sage-ubuntu-bionic-gcc_8-i386-maximal-with-targets-optional +.. |image-=-maximal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-=-maximal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%23da70d6 + :target: https://ghcr.io/sagemath/sage/sage-=-maximal-with-targets-optional -.. |codespace-ubuntu-bionic-gcc_8-i386-maximal| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-ubuntu-bionic-gcc_8-i386-maximal%2Fdevcontainer.json +.. |codespace-=-maximal| image:: https://github.com/codespaces/badge.svg + :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-=-maximal%2Fdevcontainer.json -.. |image-debian-bullseye-i386-minimal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-bullseye-i386-minimal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-debian-bullseye-i386-minimal-with-system-packages +.. |image-%23696969-minimal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-%23696969-minimal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-%23696969-minimal-with-system-packages -.. |image-debian-bullseye-i386-minimal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-bullseye-i386-minimal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-debian-bullseye-i386-minimal-configured +.. |image-%23696969-minimal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-%23696969-minimal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-%23696969-minimal-configured -.. |image-debian-bullseye-i386-minimal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-bullseye-i386-minimal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%23677895 - :target: https://ghcr.io/sagemath/sage/sage-debian-bullseye-i386-minimal-with-targets-pre +.. |image-%23696969-minimal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-%23696969-minimal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%23677895 + :target: https://ghcr.io/sagemath/sage/sage-%23696969-minimal-with-targets-pre -.. |image-debian-bullseye-i386-minimal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-bullseye-i386-minimal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%236686c1 - :target: https://ghcr.io/sagemath/sage/sage-debian-bullseye-i386-minimal-with-targets +.. |image-%23696969-minimal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-%23696969-minimal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%236686c1 + :target: https://ghcr.io/sagemath/sage/sage-%23696969-minimal-with-targets -.. |image-debian-bullseye-i386-minimal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-bullseye-i386-minimal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%236495ed - :target: https://ghcr.io/sagemath/sage/sage-debian-bullseye-i386-minimal-with-targets-optional +.. |image-%23696969-minimal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-%23696969-minimal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%236495ed + :target: https://ghcr.io/sagemath/sage/sage-%23696969-minimal-with-targets-optional -.. |codespace-debian-bullseye-i386-minimal| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-debian-bullseye-i386-minimal%2Fdevcontainer.json +.. |codespace-%23696969-minimal| image:: https://github.com/codespaces/badge.svg + :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-%23696969-minimal%2Fdevcontainer.json -.. |image-debian-bullseye-i386-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-bullseye-i386-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-debian-bullseye-i386-standard-with-system-packages +.. |image-%23696969-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-%23696969-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= + :target: https://ghcr.io/sagemath/sage/sage-%23696969-standard-with-system-packages -.. |image-debian-bullseye-i386-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-bullseye-i386-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-debian-bullseye-i386-standard-configured +.. |image-%23696969-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-%23696969-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-%23696969-standard-configured -.. |image-debian-bullseye-i386-standard-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-bullseye-i386-standard-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%235d8a4c - :target: https://ghcr.io/sagemath/sage/sage-debian-bullseye-i386-standard-with-targets-pre +.. |image-%23696969-standard-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-%23696969-standard-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%235d8a4c + :target: https://ghcr.io/sagemath/sage/sage-%23696969-standard-with-targets-pre -.. |image-debian-bullseye-i386-standard-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-bullseye-i386-standard-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%2350ab2e - :target: https://ghcr.io/sagemath/sage/sage-debian-bullseye-i386-standard-with-targets +.. |image-%23696969-standard-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-%23696969-standard-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%2350ab2e + :target: https://ghcr.io/sagemath/sage/sage-%23696969-standard-with-targets -.. |image-debian-bullseye-i386-standard-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-bullseye-i386-standard-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%2344cc11 - :target: https://ghcr.io/sagemath/sage/sage-debian-bullseye-i386-standard-with-targets-optional +.. |image-%23696969-standard-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-%23696969-standard-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%2344cc11 + :target: https://ghcr.io/sagemath/sage/sage-%23696969-standard-with-targets-optional -.. |codespace-debian-bullseye-i386-standard| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-debian-bullseye-i386-standard%2Fdevcontainer.json +.. |codespace-%23696969-standard| image:: https://github.com/codespaces/badge.svg + :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-%23696969-standard%2Fdevcontainer.json -.. |image-debian-bullseye-i386-maximal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-bullseye-i386-maximal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-debian-bullseye-i386-maximal-with-system-packages +.. |image-%23696969-maximal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-%23696969-maximal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-%23696969-maximal-with-system-packages -.. |image-debian-bullseye-i386-maximal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-bullseye-i386-maximal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-debian-bullseye-i386-maximal-configured +.. |image-%23696969-maximal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-%23696969-maximal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-%23696969-maximal-configured -.. |image-debian-bullseye-i386-maximal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-bullseye-i386-maximal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%238f6b8d - :target: https://ghcr.io/sagemath/sage/sage-debian-bullseye-i386-maximal-with-targets-pre +.. |image-%23696969-maximal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-%23696969-maximal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%238f6b8d + :target: https://ghcr.io/sagemath/sage/sage-%23696969-maximal-with-targets-pre -.. |image-debian-bullseye-i386-maximal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-bullseye-i386-maximal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%23b46eb2 - :target: https://ghcr.io/sagemath/sage/sage-debian-bullseye-i386-maximal-with-targets +.. |image-%23696969-maximal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-%23696969-maximal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%23b46eb2 + :target: https://ghcr.io/sagemath/sage/sage-%23696969-maximal-with-targets -.. |image-debian-bullseye-i386-maximal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-bullseye-i386-maximal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%23da70d6 - :target: https://ghcr.io/sagemath/sage/sage-debian-bullseye-i386-maximal-with-targets-optional +.. |image-%23696969-maximal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-%23696969-maximal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%23da70d6 + :target: https://ghcr.io/sagemath/sage/sage-%23696969-maximal-with-targets-optional -.. |codespace-debian-bullseye-i386-maximal| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-debian-bullseye-i386-maximal%2Fdevcontainer.json +.. |codespace-%23696969-maximal| image:: https://github.com/codespaces/badge.svg + :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-%23696969-maximal%2Fdevcontainer.json .. list-table:: :widths: 50 50 40 @@ -2264,28 +2318,6 @@ * -    ‑*maximal* - |image-ubuntu-jammy-maximal-with-system-packages| |image-ubuntu-jammy-maximal-with-targets-pre| - - * - **ubuntu**-lunar - -    ‑*minimal* - - |image-ubuntu-lunar-minimal-with-system-packages| |image-ubuntu-lunar-minimal-with-targets-pre| |image-ubuntu-lunar-minimal-with-targets| |image-ubuntu-lunar-minimal-with-targets-optional| - - |codespace-ubuntu-lunar-minimal| - * -    ‑*standard* - - |image-ubuntu-lunar-standard-with-system-packages| |image-ubuntu-lunar-standard-with-targets-pre| |image-ubuntu-lunar-standard-with-targets| |image-ubuntu-lunar-standard-with-targets-optional| - - |codespace-ubuntu-lunar-standard| - * -    ‑*maximal* - - |image-ubuntu-lunar-maximal-with-system-packages| |image-ubuntu-lunar-maximal-with-targets-pre| - - - * - **ubuntu**-mantic - -    ‑*minimal* - - |image-ubuntu-mantic-minimal-with-system-packages| |image-ubuntu-mantic-minimal-with-targets-pre| |image-ubuntu-mantic-minimal-with-targets| |image-ubuntu-mantic-minimal-with-targets-optional| - - |codespace-ubuntu-mantic-minimal| - * -    ‑*standard* - - |image-ubuntu-mantic-standard-with-system-packages| |image-ubuntu-mantic-standard-with-targets-pre| |image-ubuntu-mantic-standard-with-targets| |image-ubuntu-mantic-standard-with-targets-optional| - - |codespace-ubuntu-mantic-standard| - * -    ‑*maximal* - - |image-ubuntu-mantic-maximal-with-system-packages| |image-ubuntu-mantic-maximal-with-targets-pre| - - * - **ubuntu**-noble    ‑*minimal* @@ -2594,6 +2626,39 @@ * -    ‑*maximal* - |image-almalinux-9-python3.11-maximal-with-system-packages| |image-almalinux-9-python3.11-maximal-with-targets-pre| - + * - **gentoo**-python3.10 + +    ‑*minimal* + - |image-gentoo-python3.10-minimal-with-system-packages| |image-gentoo-python3.10-minimal-with-targets-pre| |image-gentoo-python3.10-minimal-with-targets| |image-gentoo-python3.10-minimal-with-targets-optional| + - |codespace-gentoo-python3.10-minimal| + * -    ‑*standard* + - |image-gentoo-python3.10-standard-with-system-packages| |image-gentoo-python3.10-standard-with-targets-pre| |image-gentoo-python3.10-standard-with-targets| |image-gentoo-python3.10-standard-with-targets-optional| + - |codespace-gentoo-python3.10-standard| + * -    ‑*maximal* + - |image-gentoo-python3.10-maximal-with-system-packages| |image-gentoo-python3.10-maximal-with-targets-pre| + - + * - **gentoo**-python3.11 + +    ‑*minimal* + - |image-gentoo-python3.11-minimal-with-system-packages| |image-gentoo-python3.11-minimal-with-targets-pre| |image-gentoo-python3.11-minimal-with-targets| |image-gentoo-python3.11-minimal-with-targets-optional| + - |codespace-gentoo-python3.11-minimal| + * -    ‑*standard* + - |image-gentoo-python3.11-standard-with-system-packages| |image-gentoo-python3.11-standard-with-targets-pre| |image-gentoo-python3.11-standard-with-targets| |image-gentoo-python3.11-standard-with-targets-optional| + - |codespace-gentoo-python3.11-standard| + * -    ‑*maximal* + - |image-gentoo-python3.11-maximal-with-system-packages| |image-gentoo-python3.11-maximal-with-targets-pre| + - + * - **gentoo**-python3.12 + +    ‑*minimal* + - |image-gentoo-python3.12-minimal-with-system-packages| |image-gentoo-python3.12-minimal-with-targets-pre| |image-gentoo-python3.12-minimal-with-targets| |image-gentoo-python3.12-minimal-with-targets-optional| + - |codespace-gentoo-python3.12-minimal| + * -    ‑*standard* + - |image-gentoo-python3.12-standard-with-system-packages| |image-gentoo-python3.12-standard-with-targets-pre| |image-gentoo-python3.12-standard-with-targets| |image-gentoo-python3.12-standard-with-targets-optional| + - |codespace-gentoo-python3.12-standard| + * -    ‑*maximal* + - |image-gentoo-python3.12-maximal-with-system-packages| |image-gentoo-python3.12-maximal-with-targets-pre| + - * - **archlinux**-latest    ‑*minimal* @@ -2638,33 +2703,36 @@ * -    ‑*maximal* - |image-opensuse-tumbleweed-maximal-with-system-packages| |image-opensuse-tumbleweed-maximal-with-targets-pre| - - * - **conda**-forge-python3.11 + * - **COLOR_with_system_packages -    ‑*standard* - - |image-conda-forge-python3.11-standard-with-system-packages| |image-conda-forge-python3.11-standard-with-targets-pre| |image-conda-forge-python3.11-standard-with-targets| |image-conda-forge-python3.11-standard-with-targets-optional| - - |codespace-conda-forge-python3.11-standard| +    ‑*minimal* + - |image-COLOR_with_system_packages-minimal-with-system-packages| |image-COLOR_with_system_packages-minimal-with-targets-pre| |image-COLOR_with_system_packages-minimal-with-targets| |image-COLOR_with_system_packages-minimal-with-targets-optional| + - |codespace-COLOR_with_system_packages-minimal| + * -    ‑*standard* + - |image-COLOR_with_system_packages-standard-with-system-packages| |image-COLOR_with_system_packages-standard-with-targets-pre| |image-COLOR_with_system_packages-standard-with-targets| |image-COLOR_with_system_packages-standard-with-targets-optional| + - |codespace-COLOR_with_system_packages-standard| * -    ‑*maximal* - - |image-conda-forge-python3.11-maximal-with-system-packages| |image-conda-forge-python3.11-maximal-with-targets-pre| + - |image-COLOR_with_system_packages-maximal-with-system-packages| |image-COLOR_with_system_packages-maximal-with-targets-pre| - - * - **ubuntu**-bionic-gcc_8-i386 + * - **=    ‑*minimal* - - |image-ubuntu-bionic-gcc_8-i386-minimal-with-system-packages| |image-ubuntu-bionic-gcc_8-i386-minimal-with-targets-pre| |image-ubuntu-bionic-gcc_8-i386-minimal-with-targets| |image-ubuntu-bionic-gcc_8-i386-minimal-with-targets-optional| - - |codespace-ubuntu-bionic-gcc_8-i386-minimal| + - |image-=-minimal-with-system-packages| |image-=-minimal-with-targets-pre| |image-=-minimal-with-targets| |image-=-minimal-with-targets-optional| + - |codespace-=-minimal| * -    ‑*standard* - - |image-ubuntu-bionic-gcc_8-i386-standard-with-system-packages| |image-ubuntu-bionic-gcc_8-i386-standard-with-targets-pre| |image-ubuntu-bionic-gcc_8-i386-standard-with-targets| |image-ubuntu-bionic-gcc_8-i386-standard-with-targets-optional| - - |codespace-ubuntu-bionic-gcc_8-i386-standard| + - |image-=-standard-with-system-packages| |image-=-standard-with-targets-pre| |image-=-standard-with-targets| |image-=-standard-with-targets-optional| + - |codespace-=-standard| * -    ‑*maximal* - - |image-ubuntu-bionic-gcc_8-i386-maximal-with-system-packages| |image-ubuntu-bionic-gcc_8-i386-maximal-with-targets-pre| + - |image-=-maximal-with-system-packages| |image-=-maximal-with-targets-pre| - - * - **debian**-bullseye-i386 + * - **%23696969    ‑*minimal* - - |image-debian-bullseye-i386-minimal-with-system-packages| |image-debian-bullseye-i386-minimal-with-targets-pre| |image-debian-bullseye-i386-minimal-with-targets| |image-debian-bullseye-i386-minimal-with-targets-optional| - - |codespace-debian-bullseye-i386-minimal| + - |image-%23696969-minimal-with-system-packages| |image-%23696969-minimal-with-targets-pre| |image-%23696969-minimal-with-targets| |image-%23696969-minimal-with-targets-optional| + - |codespace-%23696969-minimal| * -    ‑*standard* - - |image-debian-bullseye-i386-standard-with-system-packages| |image-debian-bullseye-i386-standard-with-targets-pre| |image-debian-bullseye-i386-standard-with-targets| |image-debian-bullseye-i386-standard-with-targets-optional| - - |codespace-debian-bullseye-i386-standard| + - |image-%23696969-standard-with-system-packages| |image-%23696969-standard-with-targets-pre| |image-%23696969-standard-with-targets| |image-%23696969-standard-with-targets-optional| + - |codespace-%23696969-standard| * -    ‑*maximal* - - |image-debian-bullseye-i386-maximal-with-system-packages| |image-debian-bullseye-i386-maximal-with-targets-pre| + - |image-%23696969-maximal-with-system-packages| |image-%23696969-maximal-with-targets-pre| - diff --git a/tox.ini b/tox.ini index 2abcd1c4aea..318dea802d8 100644 --- a/tox.ini +++ b/tox.ini @@ -55,12 +55,14 @@ envlist = ### - standard # Install all known system packages equivalent to standard packages that have spkg-configure.m4 ### - maximal # Install all known system packages equivalent to standard/optional packages that have spkg-configure.m4 - docker-ubuntu-trusty-toolchain-gcc_9-minimal, - docker-debian-bullseye-standard, - docker-fedora-34-standard, - docker-archlinux-latest-maximal, - docker-manylinux-2_24-i686-standard, - docker-conda-forge-standard, + ### Example "docker" environments: + ### + ### docker-ubuntu-trusty-toolchain-gcc_9-minimal + ### docker-debian-bullseye-standard + ### docker-fedora-34-standard + ### docker-archlinux-latest-maximal + ### docker-manylinux-2_24-i686-standard + ### docker-conda-forge-standard ### "local" targets should be run from a source tree that is freshly checked out ### (for example, by 'git worktree add ...') or has been cleaned by 'make bdist-clean' -- @@ -331,13 +333,13 @@ setenv = almalinux-9: BASE_TAG=9 # # https://hub.docker.com/r/sheerluck/sage-on-gentoo-stage4/tags - # commented out according to https://github.com/sagemath/sage/pull/39467#issuecomment-2655418080 - # gentoo: SYSTEM=gentoo - # gentoo: BASE_IMAGE=sheerluck/sage-on-gentoo-stage4 - # gentoo-python3.10: BASE_TAG=latest-py10 - # gentoo-python3.11: BASE_TAG=latest-py11 - # gentoo-python3.12: BASE_TAG=latest-py12 - # gentoo: IGNORE_MISSING_SYSTEM_PACKAGES=no + # + gentoo: SYSTEM=gentoo + gentoo: BASE_IMAGE=sheerluck/sage-on-gentoo-stage4 + gentoo-python3.10: BASE_TAG=latest-py10 + gentoo-python3.11: BASE_TAG=latest-py11 + gentoo-python3.12: BASE_TAG=latest-py12 + gentoo: IGNORE_MISSING_SYSTEM_PACKAGES=no # # https://hub.docker.com/_/archlinux/ # 2023-09: libgiac went missing, hence IGNORE_MISSING_SYSTEM_PACKAGES=yes @@ -853,20 +855,16 @@ setenv = # Master list of platforms tested in CI Linux # DEFAULT_SYSTEM_FACTORS=\ - ubuntu-{xenial-toolchain-gcc_9,bionic-gcc_8,focal,jammy,lunar,mantic,noble} \ + ubuntu-{xenial-toolchain-gcc_9,bionic-gcc_8,focal,jammy,noble} \ debian-{bullseye,bookworm,trixie,sid} \ linuxmint-{20.1,20.2,20.3,21,21.1,21.2,21.3} \ fedora-{30,31,32,33,34,35,36,37,38,39,40,41} \ centos-stream-{9,9-python3.12} \ almalinux-{8-python3.9,9-python3.11} \ - # gentoo, turned off according to https://github.com/sagemath/sage/pull/39467#issuecomment-2655418080 - # gentoo-python{3.10,3.11,3.12} \ + gentoo-python{3.10,3.11,3.12} \ archlinux-latest \ opensuse-15.5-gcc_11-python3.11 \ opensuse-tumbleweed{-python3.10,} \ - conda-forge-python3.11 \ - ubuntu-bionic-gcc_8-i386 \ - debian-bullseye-i386 # # Container badges for the developer guide # From 81ddcef226e8de4696afc4cdcf32c432e95fcfb2 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Sun, 16 Feb 2025 11:22:25 +0900 Subject: [PATCH 13/40] Turned off standard-constraints_pkgs-norequirements --- .github/workflows/ci-linux.yml | 5 +++-- .github/workflows/docker.yml | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci-linux.yml b/.github/workflows/ci-linux.yml index 82e11c68c96..6aeb43c2b1e 100644 --- a/.github/workflows/ci-linux.yml +++ b/.github/workflows/ci-linux.yml @@ -79,7 +79,8 @@ jobs: max_parallel: 50 standard-constraints_pkgs-norequirements: - if: ${{ success() || failure() }} + # Turned off since it fails for all systems + if: false needs: [standard] uses: ./.github/workflows/docker.yml with: @@ -163,7 +164,7 @@ jobs: optional: if: ${{ success() || failure() }} - needs: [maximal] + needs: [standard] uses: ./.github/workflows/docker.yml with: tox_packages_factors: >- diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 5eb60213223..8a24dedb53a 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -4,13 +4,13 @@ on: workflow_call: inputs: targets_pre: - default: build/make/Makefile + default: all-sage-local type: string targets: - default: build/make/Makefile + default: build type: string targets_optional: - default: build/make/Makefile + default: ptest type: string tox_system_factors: description: 'Stringified JSON object listing tox system factors' From fccfaea73199c30704557ed9537819472ab77677 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Sun, 16 Feb 2025 11:28:09 +0900 Subject: [PATCH 14/40] Fix tyopos in portability_testing.rst --- src/doc/en/developer/portability_testing.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/doc/en/developer/portability_testing.rst b/src/doc/en/developer/portability_testing.rst index 0f8d9e4b30f..5d2efc6b463 100644 --- a/src/doc/en/developer/portability_testing.rst +++ b/src/doc/en/developer/portability_testing.rst @@ -475,7 +475,7 @@ directory into it. This copying is subject to the exclusions in the ``.gitignore`` file (via a symbolic link from ``.dockerignore``). Therefore, only the sources are copied, but not your configuration (such as the file ``config.status``), nor the ``$SAGE_LOCAL`` tree, -nor any other build artefacts. +nor any other build artifacts. Because of this, you can build a Docker image using the generated ``Dockerfile`` from your main Sage development tree. It does not have @@ -829,7 +829,7 @@ keep the source tree clean to the extent possible. In particular: This makes it possible for advanced users to test several ``local`` tox environments (such as ``local-direct``) out of one worktree. However, because a -build still writes configuration scripts and build artefacts (such as +build still writes configuration scripts and build artifacts (such as ``config.status``) into the worktree, only one ``local`` build can run at a time in a given worktree. From 30085e43c98d9b88ba88e373a94faf0c9989b0fc Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Sun, 16 Feb 2025 11:55:54 +0900 Subject: [PATCH 15/40] Adjust jobs order --- .github/workflows/ci-linux.yml | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/.github/workflows/ci-linux.yml b/.github/workflows/ci-linux.yml index 6aeb43c2b1e..b53d0dd4340 100644 --- a/.github/workflows/ci-linux.yml +++ b/.github/workflows/ci-linux.yml @@ -78,23 +78,6 @@ jobs: # so that runners are available by the time that "default" starts. max_parallel: 50 - standard-constraints_pkgs-norequirements: - # Turned off since it fails for all systems - if: false - needs: [standard] - uses: ./.github/workflows/docker.yml - with: - tox_packages_factors: >- - ["standard"] - free_disk_space: true - incremental: true - from_docker_repository: ghcr.io/${{ github.repository }}/ - from_docker_target: "with-targets-pre" - docker_targets: "with-targets-pre" - targets_pre: all-sage-local python3-ensure tox-ensure sagelib-tox-sagepython-constraints_pkgs-norequirements - logs_artifact_postfix: "-constraints_pkgs" - max_parallel: 15 - standard-sitepackages: if: ${{ success() || failure() }} needs: [standard] @@ -131,6 +114,23 @@ jobs: logs_artifact_postfix: "-sitepackages" max_parallel: 8 + standard-constraints_pkgs-norequirements: + # Turned off since it fails for all systems + if: false + needs: [standard-sitepackages] + uses: ./.github/workflows/docker.yml + with: + tox_packages_factors: >- + ["standard"] + free_disk_space: true + incremental: true + from_docker_repository: ghcr.io/${{ github.repository }}/ + from_docker_target: "with-targets-pre" + docker_targets: "with-targets-pre" + targets_pre: all-sage-local python3-ensure tox-ensure sagelib-tox-sagepython-constraints_pkgs-norequirements + logs_artifact_postfix: "-constraints_pkgs" + max_parallel: 15 + minimal: if: ${{ success() || failure() }} uses: ./.github/workflows/docker.yml From be82775821e56c9913040b530a3fece685a66b55 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Sun, 16 Feb 2025 17:00:06 +0900 Subject: [PATCH 16/40] Fix malformatted list --- .github/workflows/docker.yml | 4 - .../developer/portability_platform_table.rst | 336 ++---------------- tox.ini | 2 +- 3 files changed, 39 insertions(+), 303 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 8a24dedb53a..d0d8db05ae3 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -56,10 +56,6 @@ on: "archlinux-latest", "opensuse-15.5-gcc_11-python3.11", "opensuse-tumbleweed-python3.10", - "opensuse-tumbleweed", - "COLOR_with_system_packages", - "=", - "%23696969", ] # 'tox -e update_docker_platforms' updates above tox_packages_factors: diff --git a/src/doc/en/developer/portability_platform_table.rst b/src/doc/en/developer/portability_platform_table.rst index 15333406bca..70385f2dcaf 100644 --- a/src/doc/en/developer/portability_platform_table.rst +++ b/src/doc/en/developer/portability_platform_table.rst @@ -16,7 +16,7 @@ .. |codespace-ubuntu-xenial-toolchain-gcc_9-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-ubuntu-xenial-toolchain-gcc_9-minimal%2Fdevcontainer.json -.. |image-ubuntu-xenial-toolchain-gcc_9-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-xenial-toolchain-gcc_9-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-ubuntu-xenial-toolchain-gcc_9-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-xenial-toolchain-gcc_9-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-ubuntu-xenial-toolchain-gcc_9-standard-with-system-packages .. |image-ubuntu-xenial-toolchain-gcc_9-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-xenial-toolchain-gcc_9-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -70,7 +70,7 @@ .. |codespace-ubuntu-bionic-gcc_8-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-ubuntu-bionic-gcc_8-minimal%2Fdevcontainer.json -.. |image-ubuntu-bionic-gcc_8-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-bionic-gcc_8-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-ubuntu-bionic-gcc_8-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-bionic-gcc_8-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-ubuntu-bionic-gcc_8-standard-with-system-packages .. |image-ubuntu-bionic-gcc_8-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-bionic-gcc_8-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -124,7 +124,7 @@ .. |codespace-ubuntu-focal-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-ubuntu-focal-minimal%2Fdevcontainer.json -.. |image-ubuntu-focal-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-focal-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-ubuntu-focal-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-focal-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-ubuntu-focal-standard-with-system-packages .. |image-ubuntu-focal-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-focal-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -178,7 +178,7 @@ .. |codespace-ubuntu-jammy-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-ubuntu-jammy-minimal%2Fdevcontainer.json -.. |image-ubuntu-jammy-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-jammy-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-ubuntu-jammy-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-jammy-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-ubuntu-jammy-standard-with-system-packages .. |image-ubuntu-jammy-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-jammy-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -232,7 +232,7 @@ .. |codespace-ubuntu-noble-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-ubuntu-noble-minimal%2Fdevcontainer.json -.. |image-ubuntu-noble-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-noble-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-ubuntu-noble-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-noble-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-ubuntu-noble-standard-with-system-packages .. |image-ubuntu-noble-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-ubuntu-noble-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -286,7 +286,7 @@ .. |codespace-debian-bullseye-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-debian-bullseye-minimal%2Fdevcontainer.json -.. |image-debian-bullseye-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-bullseye-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-debian-bullseye-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-bullseye-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-debian-bullseye-standard-with-system-packages .. |image-debian-bullseye-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-bullseye-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -340,7 +340,7 @@ .. |codespace-debian-bookworm-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-debian-bookworm-minimal%2Fdevcontainer.json -.. |image-debian-bookworm-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-bookworm-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-debian-bookworm-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-bookworm-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-debian-bookworm-standard-with-system-packages .. |image-debian-bookworm-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-bookworm-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -394,7 +394,7 @@ .. |codespace-debian-trixie-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-debian-trixie-minimal%2Fdevcontainer.json -.. |image-debian-trixie-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-trixie-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-debian-trixie-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-trixie-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-debian-trixie-standard-with-system-packages .. |image-debian-trixie-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-trixie-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -448,7 +448,7 @@ .. |codespace-debian-sid-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-debian-sid-minimal%2Fdevcontainer.json -.. |image-debian-sid-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-sid-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-debian-sid-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-sid-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-debian-sid-standard-with-system-packages .. |image-debian-sid-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-debian-sid-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -502,7 +502,7 @@ .. |codespace-linuxmint-20.1-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-linuxmint-20.1-minimal%2Fdevcontainer.json -.. |image-linuxmint-20.1-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.1-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-linuxmint-20.1-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.1-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.1-standard-with-system-packages .. |image-linuxmint-20.1-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.1-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -556,7 +556,7 @@ .. |codespace-linuxmint-20.2-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-linuxmint-20.2-minimal%2Fdevcontainer.json -.. |image-linuxmint-20.2-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.2-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-linuxmint-20.2-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.2-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.2-standard-with-system-packages .. |image-linuxmint-20.2-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.2-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -610,7 +610,7 @@ .. |codespace-linuxmint-20.3-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-linuxmint-20.3-minimal%2Fdevcontainer.json -.. |image-linuxmint-20.3-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.3-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-linuxmint-20.3-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.3-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.3-standard-with-system-packages .. |image-linuxmint-20.3-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.3-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -664,7 +664,7 @@ .. |codespace-linuxmint-21-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-linuxmint-21-minimal%2Fdevcontainer.json -.. |image-linuxmint-21-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-21-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-linuxmint-21-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-21-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-linuxmint-21-standard-with-system-packages .. |image-linuxmint-21-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-21-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -718,7 +718,7 @@ .. |codespace-linuxmint-21.1-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-linuxmint-21.1-minimal%2Fdevcontainer.json -.. |image-linuxmint-21.1-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-21.1-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-linuxmint-21.1-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-21.1-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-linuxmint-21.1-standard-with-system-packages .. |image-linuxmint-21.1-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-21.1-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -772,7 +772,7 @@ .. |codespace-linuxmint-21.2-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-linuxmint-21.2-minimal%2Fdevcontainer.json -.. |image-linuxmint-21.2-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-21.2-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-linuxmint-21.2-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-21.2-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-linuxmint-21.2-standard-with-system-packages .. |image-linuxmint-21.2-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-21.2-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -826,7 +826,7 @@ .. |codespace-linuxmint-21.3-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-linuxmint-21.3-minimal%2Fdevcontainer.json -.. |image-linuxmint-21.3-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-21.3-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-linuxmint-21.3-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-21.3-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-linuxmint-21.3-standard-with-system-packages .. |image-linuxmint-21.3-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-21.3-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -880,7 +880,7 @@ .. |codespace-fedora-30-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-fedora-30-minimal%2Fdevcontainer.json -.. |image-fedora-30-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-30-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-fedora-30-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-30-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-fedora-30-standard-with-system-packages .. |image-fedora-30-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-30-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -934,7 +934,7 @@ .. |codespace-fedora-31-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-fedora-31-minimal%2Fdevcontainer.json -.. |image-fedora-31-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-31-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-fedora-31-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-31-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-fedora-31-standard-with-system-packages .. |image-fedora-31-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-31-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -988,7 +988,7 @@ .. |codespace-fedora-32-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-fedora-32-minimal%2Fdevcontainer.json -.. |image-fedora-32-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-32-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-fedora-32-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-32-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-fedora-32-standard-with-system-packages .. |image-fedora-32-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-32-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1042,7 +1042,7 @@ .. |codespace-fedora-33-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-fedora-33-minimal%2Fdevcontainer.json -.. |image-fedora-33-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-33-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-fedora-33-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-33-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-fedora-33-standard-with-system-packages .. |image-fedora-33-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-33-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1096,7 +1096,7 @@ .. |codespace-fedora-34-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-fedora-34-minimal%2Fdevcontainer.json -.. |image-fedora-34-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-34-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-fedora-34-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-34-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-fedora-34-standard-with-system-packages .. |image-fedora-34-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-34-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1150,7 +1150,7 @@ .. |codespace-fedora-35-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-fedora-35-minimal%2Fdevcontainer.json -.. |image-fedora-35-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-35-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-fedora-35-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-35-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-fedora-35-standard-with-system-packages .. |image-fedora-35-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-35-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1204,7 +1204,7 @@ .. |codespace-fedora-36-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-fedora-36-minimal%2Fdevcontainer.json -.. |image-fedora-36-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-36-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-fedora-36-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-36-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-fedora-36-standard-with-system-packages .. |image-fedora-36-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-36-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1258,7 +1258,7 @@ .. |codespace-fedora-37-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-fedora-37-minimal%2Fdevcontainer.json -.. |image-fedora-37-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-37-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-fedora-37-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-37-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-fedora-37-standard-with-system-packages .. |image-fedora-37-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-37-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1312,7 +1312,7 @@ .. |codespace-fedora-38-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-fedora-38-minimal%2Fdevcontainer.json -.. |image-fedora-38-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-38-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-fedora-38-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-38-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-fedora-38-standard-with-system-packages .. |image-fedora-38-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-38-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1366,7 +1366,7 @@ .. |codespace-fedora-39-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-fedora-39-minimal%2Fdevcontainer.json -.. |image-fedora-39-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-39-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-fedora-39-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-39-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-fedora-39-standard-with-system-packages .. |image-fedora-39-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-39-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1420,7 +1420,7 @@ .. |codespace-fedora-40-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-fedora-40-minimal%2Fdevcontainer.json -.. |image-fedora-40-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-40-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-fedora-40-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-40-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-fedora-40-standard-with-system-packages .. |image-fedora-40-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-40-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1474,7 +1474,7 @@ .. |codespace-fedora-41-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-fedora-41-minimal%2Fdevcontainer.json -.. |image-fedora-41-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-41-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-fedora-41-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-41-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-fedora-41-standard-with-system-packages .. |image-fedora-41-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-41-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1528,7 +1528,7 @@ .. |codespace-centos-stream-9-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-centos-stream-9-minimal%2Fdevcontainer.json -.. |image-centos-stream-9-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-centos-stream-9-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-centos-stream-9-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-centos-stream-9-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-centos-stream-9-standard-with-system-packages .. |image-centos-stream-9-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-centos-stream-9-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1582,7 +1582,7 @@ .. |codespace-centos-stream-9-python3.12-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-centos-stream-9-python3.12-minimal%2Fdevcontainer.json -.. |image-centos-stream-9-python3.12-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-centos-stream-9-python3.12-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-centos-stream-9-python3.12-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-centos-stream-9-python3.12-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-centos-stream-9-python3.12-standard-with-system-packages .. |image-centos-stream-9-python3.12-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-centos-stream-9-python3.12-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1636,7 +1636,7 @@ .. |codespace-almalinux-8-python3.9-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-almalinux-8-python3.9-minimal%2Fdevcontainer.json -.. |image-almalinux-8-python3.9-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-almalinux-8-python3.9-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-almalinux-8-python3.9-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-almalinux-8-python3.9-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-almalinux-8-python3.9-standard-with-system-packages .. |image-almalinux-8-python3.9-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-almalinux-8-python3.9-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1690,7 +1690,7 @@ .. |codespace-almalinux-9-python3.11-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-almalinux-9-python3.11-minimal%2Fdevcontainer.json -.. |image-almalinux-9-python3.11-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-almalinux-9-python3.11-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-almalinux-9-python3.11-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-almalinux-9-python3.11-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-almalinux-9-python3.11-standard-with-system-packages .. |image-almalinux-9-python3.11-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-almalinux-9-python3.11-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1744,7 +1744,7 @@ .. |codespace-gentoo-python3.10-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-gentoo-python3.10-minimal%2Fdevcontainer.json -.. |image-gentoo-python3.10-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.10-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-gentoo-python3.10-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.10-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.10-standard-with-system-packages .. |image-gentoo-python3.10-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.10-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1798,7 +1798,7 @@ .. |codespace-gentoo-python3.11-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-gentoo-python3.11-minimal%2Fdevcontainer.json -.. |image-gentoo-python3.11-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.11-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-gentoo-python3.11-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.11-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.11-standard-with-system-packages .. |image-gentoo-python3.11-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.11-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1852,7 +1852,7 @@ .. |codespace-gentoo-python3.12-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-gentoo-python3.12-minimal%2Fdevcontainer.json -.. |image-gentoo-python3.12-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.12-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-gentoo-python3.12-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.12-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-gentoo-python3.12-standard-with-system-packages .. |image-gentoo-python3.12-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-gentoo-python3.12-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1906,7 +1906,7 @@ .. |codespace-archlinux-latest-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-archlinux-latest-minimal%2Fdevcontainer.json -.. |image-archlinux-latest-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-archlinux-latest-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-archlinux-latest-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-archlinux-latest-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-archlinux-latest-standard-with-system-packages .. |image-archlinux-latest-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-archlinux-latest-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -1960,7 +1960,7 @@ .. |codespace-opensuse-15.5-gcc_11-python3.11-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-opensuse-15.5-gcc_11-python3.11-minimal%2Fdevcontainer.json -.. |image-opensuse-15.5-gcc_11-python3.11-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-opensuse-15.5-gcc_11-python3.11-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-opensuse-15.5-gcc_11-python3.11-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-opensuse-15.5-gcc_11-python3.11-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-opensuse-15.5-gcc_11-python3.11-standard-with-system-packages .. |image-opensuse-15.5-gcc_11-python3.11-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-opensuse-15.5-gcc_11-python3.11-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -2014,7 +2014,7 @@ .. |codespace-opensuse-tumbleweed-python3.10-minimal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-opensuse-tumbleweed-python3.10-minimal%2Fdevcontainer.json -.. |image-opensuse-tumbleweed-python3.10-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-opensuse-tumbleweed-python3.10-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= +.. |image-opensuse-tumbleweed-python3.10-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-opensuse-tumbleweed-python3.10-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-opensuse-tumbleweed-python3.10-standard-with-system-packages .. |image-opensuse-tumbleweed-python3.10-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-opensuse-tumbleweed-python3.10-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 @@ -2050,222 +2050,6 @@ .. |codespace-opensuse-tumbleweed-python3.10-maximal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-opensuse-tumbleweed-python3.10-maximal%2Fdevcontainer.json -.. |image-opensuse-tumbleweed-minimal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-opensuse-tumbleweed-minimal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-opensuse-tumbleweed-minimal-with-system-packages - -.. |image-opensuse-tumbleweed-minimal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-opensuse-tumbleweed-minimal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-opensuse-tumbleweed-minimal-configured - -.. |image-opensuse-tumbleweed-minimal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-opensuse-tumbleweed-minimal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%23677895 - :target: https://ghcr.io/sagemath/sage/sage-opensuse-tumbleweed-minimal-with-targets-pre - -.. |image-opensuse-tumbleweed-minimal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-opensuse-tumbleweed-minimal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%236686c1 - :target: https://ghcr.io/sagemath/sage/sage-opensuse-tumbleweed-minimal-with-targets - -.. |image-opensuse-tumbleweed-minimal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-opensuse-tumbleweed-minimal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%236495ed - :target: https://ghcr.io/sagemath/sage/sage-opensuse-tumbleweed-minimal-with-targets-optional - -.. |codespace-opensuse-tumbleweed-minimal| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-opensuse-tumbleweed-minimal%2Fdevcontainer.json - -.. |image-opensuse-tumbleweed-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-opensuse-tumbleweed-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= - :target: https://ghcr.io/sagemath/sage/sage-opensuse-tumbleweed-standard-with-system-packages - -.. |image-opensuse-tumbleweed-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-opensuse-tumbleweed-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-opensuse-tumbleweed-standard-configured - -.. |image-opensuse-tumbleweed-standard-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-opensuse-tumbleweed-standard-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%235d8a4c - :target: https://ghcr.io/sagemath/sage/sage-opensuse-tumbleweed-standard-with-targets-pre - -.. |image-opensuse-tumbleweed-standard-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-opensuse-tumbleweed-standard-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%2350ab2e - :target: https://ghcr.io/sagemath/sage/sage-opensuse-tumbleweed-standard-with-targets - -.. |image-opensuse-tumbleweed-standard-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-opensuse-tumbleweed-standard-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%2344cc11 - :target: https://ghcr.io/sagemath/sage/sage-opensuse-tumbleweed-standard-with-targets-optional - -.. |codespace-opensuse-tumbleweed-standard| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-opensuse-tumbleweed-standard%2Fdevcontainer.json - -.. |image-opensuse-tumbleweed-maximal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-opensuse-tumbleweed-maximal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-opensuse-tumbleweed-maximal-with-system-packages - -.. |image-opensuse-tumbleweed-maximal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-opensuse-tumbleweed-maximal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-opensuse-tumbleweed-maximal-configured - -.. |image-opensuse-tumbleweed-maximal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-opensuse-tumbleweed-maximal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%238f6b8d - :target: https://ghcr.io/sagemath/sage/sage-opensuse-tumbleweed-maximal-with-targets-pre - -.. |image-opensuse-tumbleweed-maximal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-opensuse-tumbleweed-maximal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%23b46eb2 - :target: https://ghcr.io/sagemath/sage/sage-opensuse-tumbleweed-maximal-with-targets - -.. |image-opensuse-tumbleweed-maximal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-opensuse-tumbleweed-maximal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%23da70d6 - :target: https://ghcr.io/sagemath/sage/sage-opensuse-tumbleweed-maximal-with-targets-optional - -.. |codespace-opensuse-tumbleweed-maximal| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-opensuse-tumbleweed-maximal%2Fdevcontainer.json - -.. |image-COLOR_with_system_packages-minimal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-COLOR_with_system_packages-minimal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-COLOR_with_system_packages-minimal-with-system-packages - -.. |image-COLOR_with_system_packages-minimal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-COLOR_with_system_packages-minimal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-COLOR_with_system_packages-minimal-configured - -.. |image-COLOR_with_system_packages-minimal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-COLOR_with_system_packages-minimal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%23677895 - :target: https://ghcr.io/sagemath/sage/sage-COLOR_with_system_packages-minimal-with-targets-pre - -.. |image-COLOR_with_system_packages-minimal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-COLOR_with_system_packages-minimal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%236686c1 - :target: https://ghcr.io/sagemath/sage/sage-COLOR_with_system_packages-minimal-with-targets - -.. |image-COLOR_with_system_packages-minimal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-COLOR_with_system_packages-minimal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%236495ed - :target: https://ghcr.io/sagemath/sage/sage-COLOR_with_system_packages-minimal-with-targets-optional - -.. |codespace-COLOR_with_system_packages-minimal| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-COLOR_with_system_packages-minimal%2Fdevcontainer.json - -.. |image-COLOR_with_system_packages-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-COLOR_with_system_packages-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= - :target: https://ghcr.io/sagemath/sage/sage-COLOR_with_system_packages-standard-with-system-packages - -.. |image-COLOR_with_system_packages-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-COLOR_with_system_packages-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-COLOR_with_system_packages-standard-configured - -.. |image-COLOR_with_system_packages-standard-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-COLOR_with_system_packages-standard-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%235d8a4c - :target: https://ghcr.io/sagemath/sage/sage-COLOR_with_system_packages-standard-with-targets-pre - -.. |image-COLOR_with_system_packages-standard-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-COLOR_with_system_packages-standard-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%2350ab2e - :target: https://ghcr.io/sagemath/sage/sage-COLOR_with_system_packages-standard-with-targets - -.. |image-COLOR_with_system_packages-standard-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-COLOR_with_system_packages-standard-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%2344cc11 - :target: https://ghcr.io/sagemath/sage/sage-COLOR_with_system_packages-standard-with-targets-optional - -.. |codespace-COLOR_with_system_packages-standard| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-COLOR_with_system_packages-standard%2Fdevcontainer.json - -.. |image-COLOR_with_system_packages-maximal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-COLOR_with_system_packages-maximal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-COLOR_with_system_packages-maximal-with-system-packages - -.. |image-COLOR_with_system_packages-maximal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-COLOR_with_system_packages-maximal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-COLOR_with_system_packages-maximal-configured - -.. |image-COLOR_with_system_packages-maximal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-COLOR_with_system_packages-maximal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%238f6b8d - :target: https://ghcr.io/sagemath/sage/sage-COLOR_with_system_packages-maximal-with-targets-pre - -.. |image-COLOR_with_system_packages-maximal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-COLOR_with_system_packages-maximal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%23b46eb2 - :target: https://ghcr.io/sagemath/sage/sage-COLOR_with_system_packages-maximal-with-targets - -.. |image-COLOR_with_system_packages-maximal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-COLOR_with_system_packages-maximal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%23da70d6 - :target: https://ghcr.io/sagemath/sage/sage-COLOR_with_system_packages-maximal-with-targets-optional - -.. |codespace-COLOR_with_system_packages-maximal| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-COLOR_with_system_packages-maximal%2Fdevcontainer.json - -.. |image-=-minimal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-=-minimal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-=-minimal-with-system-packages - -.. |image-=-minimal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-=-minimal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-=-minimal-configured - -.. |image-=-minimal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-=-minimal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%23677895 - :target: https://ghcr.io/sagemath/sage/sage-=-minimal-with-targets-pre - -.. |image-=-minimal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-=-minimal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%236686c1 - :target: https://ghcr.io/sagemath/sage/sage-=-minimal-with-targets - -.. |image-=-minimal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-=-minimal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%236495ed - :target: https://ghcr.io/sagemath/sage/sage-=-minimal-with-targets-optional - -.. |codespace-=-minimal| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-=-minimal%2Fdevcontainer.json - -.. |image-=-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-=-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= - :target: https://ghcr.io/sagemath/sage/sage-=-standard-with-system-packages - -.. |image-=-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-=-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-=-standard-configured - -.. |image-=-standard-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-=-standard-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%235d8a4c - :target: https://ghcr.io/sagemath/sage/sage-=-standard-with-targets-pre - -.. |image-=-standard-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-=-standard-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%2350ab2e - :target: https://ghcr.io/sagemath/sage/sage-=-standard-with-targets - -.. |image-=-standard-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-=-standard-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%2344cc11 - :target: https://ghcr.io/sagemath/sage/sage-=-standard-with-targets-optional - -.. |codespace-=-standard| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-=-standard%2Fdevcontainer.json - -.. |image-=-maximal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-=-maximal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-=-maximal-with-system-packages - -.. |image-=-maximal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-=-maximal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-=-maximal-configured - -.. |image-=-maximal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-=-maximal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%238f6b8d - :target: https://ghcr.io/sagemath/sage/sage-=-maximal-with-targets-pre - -.. |image-=-maximal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-=-maximal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%23b46eb2 - :target: https://ghcr.io/sagemath/sage/sage-=-maximal-with-targets - -.. |image-=-maximal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-=-maximal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%23da70d6 - :target: https://ghcr.io/sagemath/sage/sage-=-maximal-with-targets-optional - -.. |codespace-=-maximal| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-=-maximal%2Fdevcontainer.json - -.. |image-%23696969-minimal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-%23696969-minimal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-%23696969-minimal-with-system-packages - -.. |image-%23696969-minimal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-%23696969-minimal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-%23696969-minimal-configured - -.. |image-%23696969-minimal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-%23696969-minimal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%23677895 - :target: https://ghcr.io/sagemath/sage/sage-%23696969-minimal-with-targets-pre - -.. |image-%23696969-minimal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-%23696969-minimal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%236686c1 - :target: https://ghcr.io/sagemath/sage/sage-%23696969-minimal-with-targets - -.. |image-%23696969-minimal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-%23696969-minimal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%236495ed - :target: https://ghcr.io/sagemath/sage/sage-%23696969-minimal-with-targets-optional - -.. |codespace-%23696969-minimal| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-%23696969-minimal%2Fdevcontainer.json - -.. |image-%23696969-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-%23696969-standard-with-system-packages/size?tag=dev&label=with-system-packages&color= - :target: https://ghcr.io/sagemath/sage/sage-%23696969-standard-with-system-packages - -.. |image-%23696969-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-%23696969-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-%23696969-standard-configured - -.. |image-%23696969-standard-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-%23696969-standard-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%235d8a4c - :target: https://ghcr.io/sagemath/sage/sage-%23696969-standard-with-targets-pre - -.. |image-%23696969-standard-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-%23696969-standard-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%2350ab2e - :target: https://ghcr.io/sagemath/sage/sage-%23696969-standard-with-targets - -.. |image-%23696969-standard-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-%23696969-standard-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%2344cc11 - :target: https://ghcr.io/sagemath/sage/sage-%23696969-standard-with-targets-optional - -.. |codespace-%23696969-standard| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-%23696969-standard%2Fdevcontainer.json - -.. |image-%23696969-maximal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-%23696969-maximal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-%23696969-maximal-with-system-packages - -.. |image-%23696969-maximal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-%23696969-maximal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-%23696969-maximal-configured - -.. |image-%23696969-maximal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-%23696969-maximal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%238f6b8d - :target: https://ghcr.io/sagemath/sage/sage-%23696969-maximal-with-targets-pre - -.. |image-%23696969-maximal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-%23696969-maximal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%23b46eb2 - :target: https://ghcr.io/sagemath/sage/sage-%23696969-maximal-with-targets - -.. |image-%23696969-maximal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-%23696969-maximal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%23da70d6 - :target: https://ghcr.io/sagemath/sage/sage-%23696969-maximal-with-targets-optional - -.. |codespace-%23696969-maximal| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-%23696969-maximal%2Fdevcontainer.json - .. list-table:: :widths: 50 50 40 :header-rows: 1 @@ -2692,47 +2476,3 @@ * -    ‑*maximal* - |image-opensuse-tumbleweed-python3.10-maximal-with-system-packages| |image-opensuse-tumbleweed-python3.10-maximal-with-targets-pre| - - * - **opensuse**-tumbleweed - -    ‑*minimal* - - |image-opensuse-tumbleweed-minimal-with-system-packages| |image-opensuse-tumbleweed-minimal-with-targets-pre| |image-opensuse-tumbleweed-minimal-with-targets| |image-opensuse-tumbleweed-minimal-with-targets-optional| - - |codespace-opensuse-tumbleweed-minimal| - * -    ‑*standard* - - |image-opensuse-tumbleweed-standard-with-system-packages| |image-opensuse-tumbleweed-standard-with-targets-pre| |image-opensuse-tumbleweed-standard-with-targets| |image-opensuse-tumbleweed-standard-with-targets-optional| - - |codespace-opensuse-tumbleweed-standard| - * -    ‑*maximal* - - |image-opensuse-tumbleweed-maximal-with-system-packages| |image-opensuse-tumbleweed-maximal-with-targets-pre| - - - * - **COLOR_with_system_packages - -    ‑*minimal* - - |image-COLOR_with_system_packages-minimal-with-system-packages| |image-COLOR_with_system_packages-minimal-with-targets-pre| |image-COLOR_with_system_packages-minimal-with-targets| |image-COLOR_with_system_packages-minimal-with-targets-optional| - - |codespace-COLOR_with_system_packages-minimal| - * -    ‑*standard* - - |image-COLOR_with_system_packages-standard-with-system-packages| |image-COLOR_with_system_packages-standard-with-targets-pre| |image-COLOR_with_system_packages-standard-with-targets| |image-COLOR_with_system_packages-standard-with-targets-optional| - - |codespace-COLOR_with_system_packages-standard| - * -    ‑*maximal* - - |image-COLOR_with_system_packages-maximal-with-system-packages| |image-COLOR_with_system_packages-maximal-with-targets-pre| - - - * - **= - -    ‑*minimal* - - |image-=-minimal-with-system-packages| |image-=-minimal-with-targets-pre| |image-=-minimal-with-targets| |image-=-minimal-with-targets-optional| - - |codespace-=-minimal| - * -    ‑*standard* - - |image-=-standard-with-system-packages| |image-=-standard-with-targets-pre| |image-=-standard-with-targets| |image-=-standard-with-targets-optional| - - |codespace-=-standard| - * -    ‑*maximal* - - |image-=-maximal-with-system-packages| |image-=-maximal-with-targets-pre| - - - * - **%23696969 - -    ‑*minimal* - - |image-%23696969-minimal-with-system-packages| |image-%23696969-minimal-with-targets-pre| |image-%23696969-minimal-with-targets| |image-%23696969-minimal-with-targets-optional| - - |codespace-%23696969-minimal| - * -    ‑*standard* - - |image-%23696969-standard-with-system-packages| |image-%23696969-standard-with-targets-pre| |image-%23696969-standard-with-targets| |image-%23696969-standard-with-targets-optional| - - |codespace-%23696969-standard| - * -    ‑*maximal* - - |image-%23696969-maximal-with-system-packages| |image-%23696969-maximal-with-targets-pre| - - diff --git a/tox.ini b/tox.ini index 318dea802d8..fd806b4c562 100644 --- a/tox.ini +++ b/tox.ini @@ -864,7 +864,7 @@ setenv = gentoo-python{3.10,3.11,3.12} \ archlinux-latest \ opensuse-15.5-gcc_11-python3.11 \ - opensuse-tumbleweed{-python3.10,} \ + opensuse-tumbleweed-python3.10 # # Container badges for the developer guide # From 5498aa83ba6eaca6a5b462fe673f726a34a63ef4 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Sun, 16 Feb 2025 22:23:25 +0900 Subject: [PATCH 17/40] Update the documentation --- src/doc/en/developer/portability_testing.rst | 83 +++++++++++--------- 1 file changed, 44 insertions(+), 39 deletions(-) diff --git a/src/doc/en/developer/portability_testing.rst b/src/doc/en/developer/portability_testing.rst index 5d2efc6b463..e21d33026ad 100644 --- a/src/doc/en/developer/portability_testing.rst +++ b/src/doc/en/developer/portability_testing.rst @@ -18,36 +18,29 @@ machines, it is crucial to test changes to Sage, in particular when external packages are added or upgraded, on a wide spectrum of platforms. +- Individual PR, upon creation and update, automatically goes through "checks" + implemented by `GitHub Actions `_ + to identify errors early and ensure code quality. In particular, Build & Test + workflows perform an incremental build of Sage on the PR branch and run + doctests on a selection of major platforms including Ubuntu, macOS, and + Conda. -Testing PRs with GitHub Actions -=============================== +- Before a new release, the release manager runs a fleet of `buildbots + `_ to make it sure that Sage builds correctly on + all of our supported platforms. -`GitHub Actions `_ are automatically -and constantly testing GitHub PRs to identify errors early and ensure code -quality. In particular, Build & Test workflows perform an incremental build of -Sage and run doctests on a selection of major platforms including Ubuntu, -macOS, and Conda. +- Sage developers and users are encouraged to test releases that are announced + on `Sage Release `_ on + their machines and to report the results (successes and failures) by + responding to the announcements. +In the rest, we focus on our Docker-based testing framework that developers can +use to test Sage and fix portability issues for platforms different from their +own machines. -Sage buildbots -============== -Before a new release, the release manager runs a fleet of `buildbots -`_ to make it sure that Sage builds correctly on all -of our supported platforms. - - -Test reports on sage-release -============================ - -Sage developers and users are encouraged to test releases that are announced on -`Sage Release `_ on their -machines and to report the results (successes and failures) by responding to the -announcements. - - -Testing on multiple platforms using Docker -========================================== +Docker-based Testing +==================== `Docker `_ is a popular virtualization software, running Linux operating system images ("Docker images") in @@ -992,21 +985,19 @@ options:: Automatic testing on multiple platforms on GitHub Actions ========================================================= -The Sage source tree includes a default configuration for GitHub -Actions that runs our portability tests on a multitude of platforms on -every push of a tag (but not of a branch) to a repository for which -GitHub Actions are enabled. - -In particular, it automatically runs on our main repository sagemath/sage -on every release tag. +The Sage source tree includes a configuration (a suite of scripts) for GitHub +Actions that runs portability tests on a multitude of platforms +using the Docker-based testing framework described above, on every push of a +tag (but not of a branch) to a repository for which GitHub Actions are enabled. +In particular, it runs on our main repository sagemath/sage on every release +tag. This is defined in the files -- :sage_root:`.github/workflows/ci-linux.yml` - (which calls :sage_root:`.github/workflows/docker.yml`) and - -- :sage_root:`.github/workflows/ci-macos.yml` - (which calls :sage_root:`.github/workflows/macos.yml`). +- :sage_root:`.github/workflows/ci-linux.yml` CI Linux workflow +- :sage_root:`.github/workflows/docker.yml` called by CI Linux workflow +- :sage_root:`.github/workflows/ci-macos.yml` CI macOS workflow +- :sage_root:`.github/workflows/macos.yml` called by CI macOS workflow GitHub Actions runs these build jobs on 2-core machines with 7 GB of RAM memory and 14 GB of SSD disk space, cf. @@ -1015,13 +1006,27 @@ and has a time limit of 6h per job. This could be just barely enough for a typical ``minimal`` build followed by ``make ptest`` to succeed; for added robustness, we split it into two jobs. Our workflow stores Docker images corresponding to various build phases within these two -jobs on `GitHub Packages `_ (ghcr.io). +jobs on `GitHub Packages `_ (ghcr.io). Build logs can be inspected during the run and become available as "artifacts" when all jobs of the workflow have finished. Each job generates one tarball. "Annotations" highlight certain top-level errors or warnings issued during the build. +.. NOTE:: + + The list of the default platforms tested by the CI Linux workflow is in the + item ``tox_system_factors`` of the file + :sage_root:`.github/workflows/docker.yml`. However, do not modify the list + directly. Instead use the command :: + + $ tox -e update_docker_platforms + + to update the list (and this documentation accordingly) from the "Master list + of platforms tested in CI Linux" (search for ``DEFAULT_SYSTEM_FACTORS``) in + :sage_root:`tox.ini`, which dictates how to create testing environments for + all platforms and build modes. + In addition to these automatic runs in our main repository, all Sage developers can run the same tests on GitHub Actions in their personal forks of the Sage repository. To prepare this, `enable GitHub Actions `_ @@ -1136,7 +1141,7 @@ Our portability CI on GitHub Actions builds `Docker images `_ for all tested Linux platforms (and system package configurations) and makes them available on `GitHub Packages -`_ (ghcr.io). +`_ (ghcr.io). This makes it easy for developers to debug problems that showed up in the build logs for a given platform. From f4e765a2d7dd56a8fc4d4eda2ec31a561aa262bf Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Mon, 17 Feb 2025 09:51:28 +0900 Subject: [PATCH 18/40] More edits of the doc --- src/doc/en/developer/portability_testing.rst | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/doc/en/developer/portability_testing.rst b/src/doc/en/developer/portability_testing.rst index e21d33026ad..56cbf8257d0 100644 --- a/src/doc/en/developer/portability_testing.rst +++ b/src/doc/en/developer/portability_testing.rst @@ -25,18 +25,26 @@ spectrum of platforms. doctests on a selection of major platforms including Ubuntu, macOS, and Conda. + For PRs making changes to external packages, the Docker-based testing workflow + `CI Linux incremental ` + checks the PR branch on an array of Linux platforms. + - Before a new release, the release manager runs a fleet of `buildbots `_ to make it sure that Sage builds correctly on all of our supported platforms. +- After a new release, our Docker-based testing workflows `CI Linux ` + and `CI macOS ` + perform extensive testing on a multitude of platforms. + - Sage developers and users are encouraged to test releases that are announced on `Sage Release `_ on their machines and to report the results (successes and failures) by responding to the announcements. In the rest, we focus on our Docker-based testing framework that developers can -use to test Sage and fix portability issues for platforms different from their -own machines. +use to test Sage and fix portability issues for platforms other than their own +machines. Docker-based Testing From 63dd9598e464e6af39e59efafa5069e1a6025487 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Mon, 17 Feb 2025 11:53:11 +0900 Subject: [PATCH 19/40] For debugging --- .ci/write-dockerfile.sh | 3 +++ .github/workflows/docker.yml | 29 ++++++++++++++++++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/.ci/write-dockerfile.sh b/.ci/write-dockerfile.sh index 7a3512dafd9..8aba1a58525 100755 --- a/.ci/write-dockerfile.sh +++ b/.ci/write-dockerfile.sh @@ -346,10 +346,13 @@ ENV MAKE="make -j\${NUMPROC}" ARG USE_MAKEFLAGS="-k V=0" ENV SAGE_CHECK=warn ENV SAGE_CHECK_PACKAGES="!cython,!python3,!cysignals,!linbox,!ppl,!cmake,!rpy2,!sage_sws2rst" +RUN echo "CIDEBUG: "; ls -l build/make/Makefile $ADD .gitignore /new/.gitignore $ADD src /new/src +RUN echo "CIDEBUG: "; ls -l build/make/Makefile RUN cd /new && rm -rf .git && \\ if /.ci/retrofit-worktree.sh worktree-pre /sage; then \\ + (RUN echo "CIDEBUG: "; ls -l build/make/Makefile ) \\ cd /sage && touch configure build/make/Makefile; \\ else \\ echo "retrofit-worktree.sh failed, falling back to replacing /sage/src"; \\ diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index d0d8db05ae3..ff65b6cb6e5 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -132,12 +132,39 @@ on: required: false type: string + workflow_dispatch: + inputs: + targets_pre: + default: all-sage-local + type: string + targets: + default: build + type: string + targets_optional: + default: ptest + type: string + tox_system_factors: + default: >- + [ "ubuntu-jammy"] + type: string + tox_packages_factors: + type: string + default: >- + ["standard"] + docker_targets: + default: "with-targets" + type: string + incremental: + default: false + type: boolean + + jobs: linux: runs-on: ubuntu-latest strategy: fail-fast: false - max-parallel: ${{ inputs.max_parallel }} + max-parallel: ${{ inputs.max_parallel || 10 }} matrix: tox_system_factor: ${{ fromJson(inputs.tox_system_factors) }} tox_packages_factor: ${{ fromJson(inputs.tox_packages_factors) }} From c7a2750259ed4d346002d003d659bff9ccacf8c6 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Mon, 17 Feb 2025 13:12:16 +0900 Subject: [PATCH 20/40] Update linux mint versions --- .ci/write-dockerfile.sh | 3 - .github/workflows/docker.yml | 39 ++- build/pkgs/git/SPKG.rst | 9 +- .../developer/portability_platform_table.rst | 325 +++++++----------- tox.ini | 20 +- 5 files changed, 167 insertions(+), 229 deletions(-) diff --git a/.ci/write-dockerfile.sh b/.ci/write-dockerfile.sh index 8aba1a58525..7a3512dafd9 100755 --- a/.ci/write-dockerfile.sh +++ b/.ci/write-dockerfile.sh @@ -346,13 +346,10 @@ ENV MAKE="make -j\${NUMPROC}" ARG USE_MAKEFLAGS="-k V=0" ENV SAGE_CHECK=warn ENV SAGE_CHECK_PACKAGES="!cython,!python3,!cysignals,!linbox,!ppl,!cmake,!rpy2,!sage_sws2rst" -RUN echo "CIDEBUG: "; ls -l build/make/Makefile $ADD .gitignore /new/.gitignore $ADD src /new/src -RUN echo "CIDEBUG: "; ls -l build/make/Makefile RUN cd /new && rm -rf .git && \\ if /.ci/retrofit-worktree.sh worktree-pre /sage; then \\ - (RUN echo "CIDEBUG: "; ls -l build/make/Makefile ) \\ cd /sage && touch configure build/make/Makefile; \\ else \\ echo "retrofit-worktree.sh failed, falling back to replacing /sage/src"; \\ diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index ff65b6cb6e5..e6d63b1ca43 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -27,13 +27,12 @@ on: "debian-bookworm", "debian-trixie", "debian-sid", - "linuxmint-20.1", - "linuxmint-20.2", - "linuxmint-20.3", "linuxmint-21", "linuxmint-21.1", "linuxmint-21.2", "linuxmint-21.3", + "linuxmint-22", + "linuxmint-22.1", "fedora-30", "fedora-31", "fedora-32", @@ -134,15 +133,6 @@ on: workflow_dispatch: inputs: - targets_pre: - default: all-sage-local - type: string - targets: - default: build - type: string - targets_optional: - default: ptest - type: string tox_system_factors: default: >- [ "ubuntu-jammy"] @@ -151,12 +141,30 @@ on: type: string default: >- ["standard"] + targets_pre: + default: "all-sage-local" + type: string + targets: + default: "build" + type: string + targets_optional: + default: "ptest" + type: string docker_targets: default: "with-targets" type: string incremental: - default: false + default: true type: boolean + from_docker_repository: + default: "ghcr.io/sagemath/sage/" + type: string + from_docker_target: + default: "with-targets-pre" + type: string + from_docker_tag: + default: "dev" + type: string jobs: @@ -169,6 +177,9 @@ jobs: tox_system_factor: ${{ fromJson(inputs.tox_system_factors) }} tox_packages_factor: ${{ fromJson(inputs.tox_packages_factors) }} env: + # See tox.ini to see how these environment variables define the + # Dockerfile used to build the docker image, written by the + # .ci/write-dockerfile.sh TOX_ENV: "docker-${{ matrix.tox_system_factor }}-${{ matrix.tox_packages_factor }}${{ inputs.incremental && '-incremental' || '' }}" LOGS_ARTIFACT_NAME: logs-commit-${{ github.sha }}-tox-docker-${{ matrix.tox_system_factor }}-${{ matrix.tox_packages_factor }}${{ inputs.logs_artifact_postfix }} DOCKER_TARGETS: ${{ inputs.docker_targets }} @@ -289,7 +300,7 @@ jobs: # Using "docker exec", we enter the temporary containers used by # "docker build" and kill the "make" processes of the Sage distribution. ( - sleep ${{ inputs.timeout }} + sleep ${{ inputs.timeout || 20000 }} for container_id in $(docker ps -q); do # # The arcane "find" command is a replacement for "pkill make", diff --git a/build/pkgs/git/SPKG.rst b/build/pkgs/git/SPKG.rst index 3c0ab21da1b..8d715d9753f 100644 --- a/build/pkgs/git/SPKG.rst +++ b/build/pkgs/git/SPKG.rst @@ -4,12 +4,9 @@ git: Version control system Description ----------- - Git is a fast, scalable, distributed revision control system with an - unusually rich command set that provides both high-operations and - full access to internals. - -- ``man git`` - +Git is a fast, scalable, distributed revision control system with an +unusually rich command set that provides both high-operations and +full access to internals. Upstream Contact ---------------- diff --git a/src/doc/en/developer/portability_platform_table.rst b/src/doc/en/developer/portability_platform_table.rst index 70385f2dcaf..10b5b1b9850 100644 --- a/src/doc/en/developer/portability_platform_table.rst +++ b/src/doc/en/developer/portability_platform_table.rst @@ -484,168 +484,6 @@ .. |codespace-debian-sid-maximal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-debian-sid-maximal%2Fdevcontainer.json -.. |image-linuxmint-20.1-minimal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.1-minimal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.1-minimal-with-system-packages - -.. |image-linuxmint-20.1-minimal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.1-minimal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.1-minimal-configured - -.. |image-linuxmint-20.1-minimal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.1-minimal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%23677895 - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.1-minimal-with-targets-pre - -.. |image-linuxmint-20.1-minimal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.1-minimal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%236686c1 - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.1-minimal-with-targets - -.. |image-linuxmint-20.1-minimal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.1-minimal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%236495ed - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.1-minimal-with-targets-optional - -.. |codespace-linuxmint-20.1-minimal| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-linuxmint-20.1-minimal%2Fdevcontainer.json - -.. |image-linuxmint-20.1-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.1-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.1-standard-with-system-packages - -.. |image-linuxmint-20.1-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.1-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.1-standard-configured - -.. |image-linuxmint-20.1-standard-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.1-standard-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%235d8a4c - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.1-standard-with-targets-pre - -.. |image-linuxmint-20.1-standard-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.1-standard-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%2350ab2e - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.1-standard-with-targets - -.. |image-linuxmint-20.1-standard-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.1-standard-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%2344cc11 - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.1-standard-with-targets-optional - -.. |codespace-linuxmint-20.1-standard| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-linuxmint-20.1-standard%2Fdevcontainer.json - -.. |image-linuxmint-20.1-maximal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.1-maximal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.1-maximal-with-system-packages - -.. |image-linuxmint-20.1-maximal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.1-maximal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.1-maximal-configured - -.. |image-linuxmint-20.1-maximal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.1-maximal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%238f6b8d - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.1-maximal-with-targets-pre - -.. |image-linuxmint-20.1-maximal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.1-maximal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%23b46eb2 - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.1-maximal-with-targets - -.. |image-linuxmint-20.1-maximal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.1-maximal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%23da70d6 - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.1-maximal-with-targets-optional - -.. |codespace-linuxmint-20.1-maximal| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-linuxmint-20.1-maximal%2Fdevcontainer.json - -.. |image-linuxmint-20.2-minimal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.2-minimal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.2-minimal-with-system-packages - -.. |image-linuxmint-20.2-minimal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.2-minimal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.2-minimal-configured - -.. |image-linuxmint-20.2-minimal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.2-minimal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%23677895 - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.2-minimal-with-targets-pre - -.. |image-linuxmint-20.2-minimal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.2-minimal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%236686c1 - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.2-minimal-with-targets - -.. |image-linuxmint-20.2-minimal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.2-minimal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%236495ed - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.2-minimal-with-targets-optional - -.. |codespace-linuxmint-20.2-minimal| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-linuxmint-20.2-minimal%2Fdevcontainer.json - -.. |image-linuxmint-20.2-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.2-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.2-standard-with-system-packages - -.. |image-linuxmint-20.2-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.2-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.2-standard-configured - -.. |image-linuxmint-20.2-standard-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.2-standard-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%235d8a4c - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.2-standard-with-targets-pre - -.. |image-linuxmint-20.2-standard-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.2-standard-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%2350ab2e - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.2-standard-with-targets - -.. |image-linuxmint-20.2-standard-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.2-standard-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%2344cc11 - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.2-standard-with-targets-optional - -.. |codespace-linuxmint-20.2-standard| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-linuxmint-20.2-standard%2Fdevcontainer.json - -.. |image-linuxmint-20.2-maximal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.2-maximal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.2-maximal-with-system-packages - -.. |image-linuxmint-20.2-maximal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.2-maximal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.2-maximal-configured - -.. |image-linuxmint-20.2-maximal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.2-maximal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%238f6b8d - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.2-maximal-with-targets-pre - -.. |image-linuxmint-20.2-maximal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.2-maximal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%23b46eb2 - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.2-maximal-with-targets - -.. |image-linuxmint-20.2-maximal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.2-maximal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%23da70d6 - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.2-maximal-with-targets-optional - -.. |codespace-linuxmint-20.2-maximal| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-linuxmint-20.2-maximal%2Fdevcontainer.json - -.. |image-linuxmint-20.3-minimal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.3-minimal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.3-minimal-with-system-packages - -.. |image-linuxmint-20.3-minimal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.3-minimal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.3-minimal-configured - -.. |image-linuxmint-20.3-minimal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.3-minimal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%23677895 - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.3-minimal-with-targets-pre - -.. |image-linuxmint-20.3-minimal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.3-minimal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%236686c1 - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.3-minimal-with-targets - -.. |image-linuxmint-20.3-minimal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.3-minimal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%236495ed - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.3-minimal-with-targets-optional - -.. |codespace-linuxmint-20.3-minimal| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-linuxmint-20.3-minimal%2Fdevcontainer.json - -.. |image-linuxmint-20.3-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.3-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.3-standard-with-system-packages - -.. |image-linuxmint-20.3-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.3-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.3-standard-configured - -.. |image-linuxmint-20.3-standard-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.3-standard-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%235d8a4c - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.3-standard-with-targets-pre - -.. |image-linuxmint-20.3-standard-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.3-standard-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%2350ab2e - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.3-standard-with-targets - -.. |image-linuxmint-20.3-standard-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.3-standard-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%2344cc11 - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.3-standard-with-targets-optional - -.. |codespace-linuxmint-20.3-standard| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-linuxmint-20.3-standard%2Fdevcontainer.json - -.. |image-linuxmint-20.3-maximal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.3-maximal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.3-maximal-with-system-packages - -.. |image-linuxmint-20.3-maximal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.3-maximal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.3-maximal-configured - -.. |image-linuxmint-20.3-maximal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.3-maximal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%238f6b8d - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.3-maximal-with-targets-pre - -.. |image-linuxmint-20.3-maximal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.3-maximal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%23b46eb2 - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.3-maximal-with-targets - -.. |image-linuxmint-20.3-maximal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-20.3-maximal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%23da70d6 - :target: https://ghcr.io/sagemath/sage/sage-linuxmint-20.3-maximal-with-targets-optional - -.. |codespace-linuxmint-20.3-maximal| image:: https://github.com/codespaces/badge.svg - :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-linuxmint-20.3-maximal%2Fdevcontainer.json - .. |image-linuxmint-21-minimal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-21-minimal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-linuxmint-21-minimal-with-system-packages @@ -862,6 +700,114 @@ .. |codespace-linuxmint-21.3-maximal| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-linuxmint-21.3-maximal%2Fdevcontainer.json +.. |image-linuxmint-22-minimal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-22-minimal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-linuxmint-22-minimal-with-system-packages + +.. |image-linuxmint-22-minimal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-22-minimal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-linuxmint-22-minimal-configured + +.. |image-linuxmint-22-minimal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-22-minimal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%23677895 + :target: https://ghcr.io/sagemath/sage/sage-linuxmint-22-minimal-with-targets-pre + +.. |image-linuxmint-22-minimal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-22-minimal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%236686c1 + :target: https://ghcr.io/sagemath/sage/sage-linuxmint-22-minimal-with-targets + +.. |image-linuxmint-22-minimal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-22-minimal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%236495ed + :target: https://ghcr.io/sagemath/sage/sage-linuxmint-22-minimal-with-targets-optional + +.. |codespace-linuxmint-22-minimal| image:: https://github.com/codespaces/badge.svg + :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-linuxmint-22-minimal%2Fdevcontainer.json + +.. |image-linuxmint-22-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-22-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-linuxmint-22-standard-with-system-packages + +.. |image-linuxmint-22-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-22-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-linuxmint-22-standard-configured + +.. |image-linuxmint-22-standard-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-22-standard-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%235d8a4c + :target: https://ghcr.io/sagemath/sage/sage-linuxmint-22-standard-with-targets-pre + +.. |image-linuxmint-22-standard-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-22-standard-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%2350ab2e + :target: https://ghcr.io/sagemath/sage/sage-linuxmint-22-standard-with-targets + +.. |image-linuxmint-22-standard-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-22-standard-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%2344cc11 + :target: https://ghcr.io/sagemath/sage/sage-linuxmint-22-standard-with-targets-optional + +.. |codespace-linuxmint-22-standard| image:: https://github.com/codespaces/badge.svg + :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-linuxmint-22-standard%2Fdevcontainer.json + +.. |image-linuxmint-22-maximal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-22-maximal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-linuxmint-22-maximal-with-system-packages + +.. |image-linuxmint-22-maximal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-22-maximal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-linuxmint-22-maximal-configured + +.. |image-linuxmint-22-maximal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-22-maximal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%238f6b8d + :target: https://ghcr.io/sagemath/sage/sage-linuxmint-22-maximal-with-targets-pre + +.. |image-linuxmint-22-maximal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-22-maximal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%23b46eb2 + :target: https://ghcr.io/sagemath/sage/sage-linuxmint-22-maximal-with-targets + +.. |image-linuxmint-22-maximal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-22-maximal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%23da70d6 + :target: https://ghcr.io/sagemath/sage/sage-linuxmint-22-maximal-with-targets-optional + +.. |codespace-linuxmint-22-maximal| image:: https://github.com/codespaces/badge.svg + :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-linuxmint-22-maximal%2Fdevcontainer.json + +.. |image-linuxmint-22.1-minimal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-22.1-minimal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-linuxmint-22.1-minimal-with-system-packages + +.. |image-linuxmint-22.1-minimal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-22.1-minimal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-linuxmint-22.1-minimal-configured + +.. |image-linuxmint-22.1-minimal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-22.1-minimal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%23677895 + :target: https://ghcr.io/sagemath/sage/sage-linuxmint-22.1-minimal-with-targets-pre + +.. |image-linuxmint-22.1-minimal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-22.1-minimal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%236686c1 + :target: https://ghcr.io/sagemath/sage/sage-linuxmint-22.1-minimal-with-targets + +.. |image-linuxmint-22.1-minimal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-22.1-minimal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%236495ed + :target: https://ghcr.io/sagemath/sage/sage-linuxmint-22.1-minimal-with-targets-optional + +.. |codespace-linuxmint-22.1-minimal| image:: https://github.com/codespaces/badge.svg + :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-linuxmint-22.1-minimal%2Fdevcontainer.json + +.. |image-linuxmint-22.1-standard-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-22.1-standard-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-linuxmint-22.1-standard-with-system-packages + +.. |image-linuxmint-22.1-standard-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-22.1-standard-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-linuxmint-22.1-standard-configured + +.. |image-linuxmint-22.1-standard-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-22.1-standard-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%235d8a4c + :target: https://ghcr.io/sagemath/sage/sage-linuxmint-22.1-standard-with-targets-pre + +.. |image-linuxmint-22.1-standard-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-22.1-standard-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%2350ab2e + :target: https://ghcr.io/sagemath/sage/sage-linuxmint-22.1-standard-with-targets + +.. |image-linuxmint-22.1-standard-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-22.1-standard-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%2344cc11 + :target: https://ghcr.io/sagemath/sage/sage-linuxmint-22.1-standard-with-targets-optional + +.. |codespace-linuxmint-22.1-standard| image:: https://github.com/codespaces/badge.svg + :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-linuxmint-22.1-standard%2Fdevcontainer.json + +.. |image-linuxmint-22.1-maximal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-22.1-maximal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-linuxmint-22.1-maximal-with-system-packages + +.. |image-linuxmint-22.1-maximal-configured| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-22.1-maximal-configured/latest_tag?ignore=latest,dev,*-failed&label=configured&color=%23696969 + :target: https://ghcr.io/sagemath/sage/sage-linuxmint-22.1-maximal-configured + +.. |image-linuxmint-22.1-maximal-with-targets-pre| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-22.1-maximal-with-targets-pre/latest_tag?ignore=latest,dev,*-failed&label=with-targets-pre&color=%238f6b8d + :target: https://ghcr.io/sagemath/sage/sage-linuxmint-22.1-maximal-with-targets-pre + +.. |image-linuxmint-22.1-maximal-with-targets| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-22.1-maximal-with-targets/latest_tag?ignore=latest,dev,*-failed&label=with-targets&color=%23b46eb2 + :target: https://ghcr.io/sagemath/sage/sage-linuxmint-22.1-maximal-with-targets + +.. |image-linuxmint-22.1-maximal-with-targets-optional| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-linuxmint-22.1-maximal-with-targets-optional/latest_tag?ignore=latest,dev,*-failed&label=with-targets-optional&color=%23da70d6 + :target: https://ghcr.io/sagemath/sage/sage-linuxmint-22.1-maximal-with-targets-optional + +.. |codespace-linuxmint-22.1-maximal| image:: https://github.com/codespaces/badge.svg + :target: https://codespaces.new/sagemath/sage?devcontainer_path=.devcontainer%2Fportability-linuxmint-22.1-maximal%2Fdevcontainer.json + .. |image-fedora-30-minimal-with-system-packages| image:: https://ghcr-badge.egpl.dev/sagemath/sage/sage-fedora-30-minimal-with-system-packages/size?tag=dev&label=with-system-packages&color=%23696969 :target: https://ghcr.io/sagemath/sage/sage-fedora-30-minimal-with-system-packages @@ -2157,39 +2103,6 @@ * -    ‑*maximal* - |image-debian-sid-maximal-with-system-packages| |image-debian-sid-maximal-with-targets-pre| - - * - **linuxmint**-20.1 - -    ‑*minimal* - - |image-linuxmint-20.1-minimal-with-system-packages| |image-linuxmint-20.1-minimal-with-targets-pre| |image-linuxmint-20.1-minimal-with-targets| |image-linuxmint-20.1-minimal-with-targets-optional| - - |codespace-linuxmint-20.1-minimal| - * -    ‑*standard* - - |image-linuxmint-20.1-standard-with-system-packages| |image-linuxmint-20.1-standard-with-targets-pre| |image-linuxmint-20.1-standard-with-targets| |image-linuxmint-20.1-standard-with-targets-optional| - - |codespace-linuxmint-20.1-standard| - * -    ‑*maximal* - - |image-linuxmint-20.1-maximal-with-system-packages| |image-linuxmint-20.1-maximal-with-targets-pre| - - - * - **linuxmint**-20.2 - -    ‑*minimal* - - |image-linuxmint-20.2-minimal-with-system-packages| |image-linuxmint-20.2-minimal-with-targets-pre| |image-linuxmint-20.2-minimal-with-targets| |image-linuxmint-20.2-minimal-with-targets-optional| - - |codespace-linuxmint-20.2-minimal| - * -    ‑*standard* - - |image-linuxmint-20.2-standard-with-system-packages| |image-linuxmint-20.2-standard-with-targets-pre| |image-linuxmint-20.2-standard-with-targets| |image-linuxmint-20.2-standard-with-targets-optional| - - |codespace-linuxmint-20.2-standard| - * -    ‑*maximal* - - |image-linuxmint-20.2-maximal-with-system-packages| |image-linuxmint-20.2-maximal-with-targets-pre| - - - * - **linuxmint**-20.3 - -    ‑*minimal* - - |image-linuxmint-20.3-minimal-with-system-packages| |image-linuxmint-20.3-minimal-with-targets-pre| |image-linuxmint-20.3-minimal-with-targets| |image-linuxmint-20.3-minimal-with-targets-optional| - - |codespace-linuxmint-20.3-minimal| - * -    ‑*standard* - - |image-linuxmint-20.3-standard-with-system-packages| |image-linuxmint-20.3-standard-with-targets-pre| |image-linuxmint-20.3-standard-with-targets| |image-linuxmint-20.3-standard-with-targets-optional| - - |codespace-linuxmint-20.3-standard| - * -    ‑*maximal* - - |image-linuxmint-20.3-maximal-with-system-packages| |image-linuxmint-20.3-maximal-with-targets-pre| - - * - **linuxmint**-21    ‑*minimal* @@ -2234,6 +2147,28 @@ * -    ‑*maximal* - |image-linuxmint-21.3-maximal-with-system-packages| |image-linuxmint-21.3-maximal-with-targets-pre| - + * - **linuxmint**-22 + +    ‑*minimal* + - |image-linuxmint-22-minimal-with-system-packages| |image-linuxmint-22-minimal-with-targets-pre| |image-linuxmint-22-minimal-with-targets| |image-linuxmint-22-minimal-with-targets-optional| + - |codespace-linuxmint-22-minimal| + * -    ‑*standard* + - |image-linuxmint-22-standard-with-system-packages| |image-linuxmint-22-standard-with-targets-pre| |image-linuxmint-22-standard-with-targets| |image-linuxmint-22-standard-with-targets-optional| + - |codespace-linuxmint-22-standard| + * -    ‑*maximal* + - |image-linuxmint-22-maximal-with-system-packages| |image-linuxmint-22-maximal-with-targets-pre| + - + * - **linuxmint**-22.1 + +    ‑*minimal* + - |image-linuxmint-22.1-minimal-with-system-packages| |image-linuxmint-22.1-minimal-with-targets-pre| |image-linuxmint-22.1-minimal-with-targets| |image-linuxmint-22.1-minimal-with-targets-optional| + - |codespace-linuxmint-22.1-minimal| + * -    ‑*standard* + - |image-linuxmint-22.1-standard-with-system-packages| |image-linuxmint-22.1-standard-with-targets-pre| |image-linuxmint-22.1-standard-with-targets| |image-linuxmint-22.1-standard-with-targets-optional| + - |codespace-linuxmint-22.1-standard| + * -    ‑*maximal* + - |image-linuxmint-22.1-maximal-with-system-packages| |image-linuxmint-22.1-maximal-with-targets-pre| + - * - **fedora**-30    ‑*minimal* diff --git a/tox.ini b/tox.ini index fd806b4c562..54f73ef694c 100644 --- a/tox.ini +++ b/tox.ini @@ -198,6 +198,7 @@ setenv = recommended: EXTRA_SAGE_PACKAGES_3=_recommended $(head -n 1 build/pkgs/_recommended/dependencies) incremental: EXTRA_SAGE_PACKAGES_4=git develop: EXTRA_SAGE_PACKAGES_4=_develop $(head -n 1 build/pkgs/_develop/dependencies) + standard: SAGE_PACKAGE_LIST_ARGS=_prereq minimal: SAGE_PACKAGE_LIST_ARGS=_prereq maximal: SAGE_PACKAGE_LIST_ARGS=:standard: :optional: sitepackages: ENABLE_SYSTEM_SITE_PACKAGES=yes @@ -237,8 +238,6 @@ setenv = ubuntu-focal: BASE_TAG=focal ubuntu-focal: IGNORE_MISSING_SYSTEM_PACKAGES=yes ubuntu-jammy: BASE_TAG=jammy - ubuntu-lunar: BASE_TAG=lunar - ubuntu-mantic: BASE_TAG=mantic ubuntu-noble: BASE_TAG=noble ubuntu-noble: IGNORE_MISSING_SYSTEM_PACKAGES=yes # @@ -266,12 +265,6 @@ setenv = # linuxmint: SYSTEM=debian linuxmint: IGNORE_MISSING_SYSTEM_PACKAGES=yes - linuxmint-17: BASE_IMAGE=linuxmintd/mint17 - linuxmint-18: BASE_IMAGE=linuxmintd/mint18 - linuxmint-19: BASE_IMAGE=linuxmintd/mint19 - linuxmint-19.1: BASE_IMAGE=linuxmintd/mint19.1 - linuxmint-19.2: BASE_IMAGE=linuxmintd/mint19.2 - linuxmint-19.3: BASE_IMAGE=linuxmintd/mint19.3 linuxmint-20: BASE_IMAGE=linuxmintd/mint20 linuxmint-20.1: BASE_IMAGE=linuxmintd/mint20.1 linuxmint-20.2: BASE_IMAGE=linuxmintd/mint20.2 @@ -280,6 +273,8 @@ setenv = linuxmint-21.1: BASE_IMAGE=linuxmintd/mint21.1 linuxmint-21.2: BASE_IMAGE=linuxmintd/mint21.2 linuxmint-21.3: BASE_IMAGE=linuxmintd/mint21.3 + linuxmint-22: BASE_IMAGE=linuxmintd/mint22 + linuxmint-22.1: BASE_IMAGE=linuxmintd/mint22.1 # # https://hub.docker.com/_/fedora # as of 2024-08, latest=40, rawhide=41 @@ -710,7 +705,8 @@ allowlist_externals = docker: docker homebrew: brew -#commands_pre = +# commands_pre = + commands = # @@ -760,7 +756,9 @@ commands = # Install a symbolic link "prefix" in SAGE_ROOT for convenient inspection; it is not used in the build. local: bash -c 'if [ ! -d prefix -o -L prefix ]; then rm -f prefix; ln -sf {env:PREFIX:{envdir}/local} prefix; fi' -##commands = + # + # docker + # docker: bash -c 'BUILD_TAG={env:DOCKER_TAG:$(git describe --dirty --always)} .ci/write-dockerfile.sh {env:SYSTEM} "{env:SAGE_PACKAGE_LIST_ARGS:}" {env:WITH_SYSTEM_SPKG} {env:IGNORE_MISSING_SYSTEM_PACKAGES} "{env:ALL_EXTRA_SAGE_PACKAGES}" > {envdir}/Dockerfile' # From https://hub.docker.com/r/multiarch/ubuntu-core/ # configure binfmt-support on the Docker host (works locally or remotely, i.e: using boot2docker) @@ -857,7 +855,7 @@ setenv = DEFAULT_SYSTEM_FACTORS=\ ubuntu-{xenial-toolchain-gcc_9,bionic-gcc_8,focal,jammy,noble} \ debian-{bullseye,bookworm,trixie,sid} \ - linuxmint-{20.1,20.2,20.3,21,21.1,21.2,21.3} \ + linuxmint-{21,21.1,21.2,21.3,22,22.1} \ fedora-{30,31,32,33,34,35,36,37,38,39,40,41} \ centos-stream-{9,9-python3.12} \ almalinux-{8-python3.9,9-python3.11} \ From 6b741d9443fe5ed71026a8e13c3133f3ea046aee Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Mon, 17 Feb 2025 20:08:57 +0900 Subject: [PATCH 21/40] For debug --- .ci/write-dockerfile.sh | 3 +++ tox.ini | 21 +++++++++++---------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/.ci/write-dockerfile.sh b/.ci/write-dockerfile.sh index 7a3512dafd9..14ab846a9a9 100755 --- a/.ci/write-dockerfile.sh +++ b/.ci/write-dockerfile.sh @@ -349,10 +349,13 @@ ENV SAGE_CHECK_PACKAGES="!cython,!python3,!cysignals,!linbox,!ppl,!cmake,!rpy2,! $ADD .gitignore /new/.gitignore $ADD src /new/src RUN cd /new && rm -rf .git && \\ + (echo "CIDEBUG1: "; ls -l /sage/build/make/Makefile ); \\ if /.ci/retrofit-worktree.sh worktree-pre /sage; then \\ + (echo "CIDEBUG2: "; ls -l /sage/build/make/Makefile ); \\ cd /sage && touch configure build/make/Makefile; \\ else \\ echo "retrofit-worktree.sh failed, falling back to replacing /sage/src"; \\ + (echo "CIDEBUG3: "; ls -l /sage/build/make/Makefile ); \\ rm -rf /sage/src; \\ mv src /sage/src; \\ cd /sage && ./bootstrap && ./config.status; \\ diff --git a/tox.ini b/tox.ini index 54f73ef694c..bf4f983f4f2 100644 --- a/tox.ini +++ b/tox.ini @@ -192,15 +192,16 @@ setenv = # For -maximal environments, the default is 'yes' but later we override it for rolling distributions # (but not for unstable distributions that often have intermittent issues). IGNORE_MISSING_SYSTEM_PACKAGES=no - maximal: IGNORE_MISSING_SYSTEM_PACKAGES=yes - # What system packages should be installed. Default: All standard packages with spkg-configure. + # What system packages should be installed. + # Default: all standard packages with spkg-configure SAGE_PACKAGE_LIST_ARGS=--has-file=spkg-configure.m4 :standard: recommended: EXTRA_SAGE_PACKAGES_3=_recommended $(head -n 1 build/pkgs/_recommended/dependencies) incremental: EXTRA_SAGE_PACKAGES_4=git develop: EXTRA_SAGE_PACKAGES_4=_develop $(head -n 1 build/pkgs/_develop/dependencies) - standard: SAGE_PACKAGE_LIST_ARGS=_prereq + standard: SAGE_PACKAGE_LIST_ARGS=_prereq --has-file=spkg-configure.m4 :standard: minimal: SAGE_PACKAGE_LIST_ARGS=_prereq - maximal: SAGE_PACKAGE_LIST_ARGS=:standard: :optional: + maximal: SAGE_PACKAGE_LIST_ARGS=_prereq :standard: :optional: + maximal: IGNORE_MISSING_SYSTEM_PACKAGES=yes sitepackages: ENABLE_SYSTEM_SITE_PACKAGES=yes sitepackages: CONFIG_CONFIGURE_ARGS_SITEPACKAGES=--enable-system-site-packages conda-environment: SAGE_PACKAGE_LIST_ARGS=_prereq @@ -300,11 +301,11 @@ setenv = # # https://hub.docker.com/r/scientificlinux/sl # - scientificlinux: SYSTEM=fedora - scientificlinux: BASE_IMAGE=scientificlinux/sl + scientificlinux: SYSTEM=fedora + scientificlinux: BASE_IMAGE=scientificlinux/sl scientificlinux: IGNORE_MISSING_SYSTEM_PACKAGES=yes - scientificlinux-6: BASE_TAG=6 - scientificlinux-7: BASE_TAG=7 + scientificlinux-6: BASE_TAG=6 + scientificlinux-7: BASE_TAG=7 # # https://hub.docker.com/_/centos # https://quay.io/repository/centos/centos?tab=tags @@ -503,7 +504,7 @@ setenv = docker-incremental-{develop,recommended,maximal}: SKIP_SYSTEM_PKG_INSTALL=yes docker-incremental-sitepackages: SKIP_SYSTEM_PKG_INSTALL=no # - docker-nobootstrap: BOOTSTRAP=./bootstrap -D + docker-nobootstrap: BOOTSTRAP=./bootstrap -D docker: CONFIG_CONFIGURE_ARGS_ROOT=--enable-build-as-root ### ### "local" envs @@ -511,7 +512,7 @@ setenv = local: SHARED_CACHE_DIR={toxworkdir}/Caches local: SETENV=: local: SETENV_CONFIGURE=: - local-nobootstrap: BOOTSTRAP=: + local-nobootstrap: BOOTSTRAP=: local-!direct: PATH=/usr/bin:/bin:/usr/sbin:/sbin local-sudo: __SUDO=--sudo local-root: CONFIG_CONFIGURE_ARGS_ROOT=--enable-build-as-root From 5162007d8536a0168a4707f51f98308830304da5 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Mon, 17 Feb 2025 20:31:39 +0900 Subject: [PATCH 22/40] Improve CI workflows --- .ci/write-dockerfile.sh | 63 +++++++++++--------- .github/workflows/changelog_trigger.yml | 2 +- .github/workflows/dist.yml | 2 +- .github/workflows/docker.yml | 2 +- .github/workflows/docker_hub.yml | 2 +- .github/workflows/macos.yml | 2 +- .github/workflows/push_to_docker_hub.yml | 2 +- src/doc/en/developer/portability_testing.rst | 6 +- tox.ini | 2 +- 9 files changed, 45 insertions(+), 38 deletions(-) diff --git a/.ci/write-dockerfile.sh b/.ci/write-dockerfile.sh index 14ab846a9a9..85d7991f6f2 100755 --- a/.ci/write-dockerfile.sh +++ b/.ci/write-dockerfile.sh @@ -285,21 +285,26 @@ $ADD pkgs /new/pkgs $ADD build /new/build $ADD .upstream.d /new/.upstream.d ADD .ci /.ci -RUN if [ -d /sage ]; then \\ - echo "### Incremental build from \$(cat /sage/VERSION.txt)" && \\ - printf '/src/*\n!/src/doc/bootstrap\n!/src/bin\n!/src/*.m4\n!/src/*.toml\n!/src/VERSION.txt\n' >> /sage/.gitignore && \\ - printf '/src/*\n!/src/doc/bootstrap\n!/src/bin\n!/src/*.m4\n!/src/*.toml\n!/src/VERSION.txt\n' >> /new/.gitignore && \\ - if ! (cd /new && /.ci/retrofit-worktree.sh worktree-image /sage); then \\ - echo "retrofit-worktree.sh failed, falling back to replacing /sage"; \\ - for a in local logs; do \\ - if [ -d /sage/\$a ]; then mv /sage/\$a /new/; fi; \\ - done; \\ - rm -rf /sage; \\ - mv /new /sage; \\ - fi; \\ - else \\ - mv /new /sage; \\ - fi +RUN <> /sage/.gitignore + printf '/src/*\n!/src/doc/bootstrap\n!/src/bin\n!/src/*.m4\n!/src/*.toml\n!/src/VERSION.txt\n' >> /new/.gitignore + if ! cd /new && /.ci/retrofit-worktree.sh worktree-image /sage; then + echo "retrofit-worktree.sh failed, falling back to replacing /sage" + for a in local logs; do + if [ -d /sage/\$a ]; then + mv /sage/\$a /new/ + fi + done + rm -rf /sage + mv /new /sage + fi +else + mv /new /sage +fi +EOT + WORKDIR /sage ARG BOOTSTRAP="${BOOTSTRAP-./bootstrap}" $RUN sh -x -c "\${BOOTSTRAP}"$ENDRUN$THEN_SAVE_STATUS @@ -348,19 +353,21 @@ ENV SAGE_CHECK=warn ENV SAGE_CHECK_PACKAGES="!cython,!python3,!cysignals,!linbox,!ppl,!cmake,!rpy2,!sage_sws2rst" $ADD .gitignore /new/.gitignore $ADD src /new/src -RUN cd /new && rm -rf .git && \\ - (echo "CIDEBUG1: "; ls -l /sage/build/make/Makefile ); \\ - if /.ci/retrofit-worktree.sh worktree-pre /sage; then \\ - (echo "CIDEBUG2: "; ls -l /sage/build/make/Makefile ); \\ - cd /sage && touch configure build/make/Makefile; \\ - else \\ - echo "retrofit-worktree.sh failed, falling back to replacing /sage/src"; \\ - (echo "CIDEBUG3: "; ls -l /sage/build/make/Makefile ); \\ - rm -rf /sage/src; \\ - mv src /sage/src; \\ - cd /sage && ./bootstrap && ./config.status; \\ - fi; \\ - cd /sage && rm -rf .git; rm -rf /new || echo "(error ignored)" +RUN <` + `CI Linux incremental `_ checks the PR branch on an array of Linux platforms. - Before a new release, the release manager runs a fleet of `buildbots `_ to make it sure that Sage builds correctly on all of our supported platforms. -- After a new release, our Docker-based testing workflows `CI Linux ` - and `CI macOS ` +- After a new release, our Docker-based testing workflows `CI Linux `_ + and `CI macOS `_ perform extensive testing on a multitude of platforms. - Sage developers and users are encouraged to test releases that are announced diff --git a/tox.ini b/tox.ini index bf4f983f4f2..ac4390c2d67 100644 --- a/tox.ini +++ b/tox.ini @@ -198,8 +198,8 @@ setenv = recommended: EXTRA_SAGE_PACKAGES_3=_recommended $(head -n 1 build/pkgs/_recommended/dependencies) incremental: EXTRA_SAGE_PACKAGES_4=git develop: EXTRA_SAGE_PACKAGES_4=_develop $(head -n 1 build/pkgs/_develop/dependencies) - standard: SAGE_PACKAGE_LIST_ARGS=_prereq --has-file=spkg-configure.m4 :standard: minimal: SAGE_PACKAGE_LIST_ARGS=_prereq + standard: SAGE_PACKAGE_LIST_ARGS=_prereq :standard: maximal: SAGE_PACKAGE_LIST_ARGS=_prereq :standard: :optional: maximal: IGNORE_MISSING_SYSTEM_PACKAGES=yes sitepackages: ENABLE_SYSTEM_SITE_PACKAGES=yes From a7e556e8eb54d634062ef5ea62e3727d6650fa4e Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Mon, 17 Feb 2025 23:00:59 +0900 Subject: [PATCH 23/40] Explain new tool in doc --- .ci/write-dockerfile.sh | 3 --- src/doc/en/developer/portability_testing.rst | 21 +++++++++++++------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/.ci/write-dockerfile.sh b/.ci/write-dockerfile.sh index 85d7991f6f2..95994c9033b 100755 --- a/.ci/write-dockerfile.sh +++ b/.ci/write-dockerfile.sh @@ -355,13 +355,10 @@ $ADD .gitignore /new/.gitignore $ADD src /new/src RUN <`_. -Alternatively, you can trigger a run of tests by creating and pushing -a custom tag as follows. +Alternatively, you can trigger CI workflows at the same time by creating and +pushing a custom tag as follows. - Create a ("lightweight", not "annotated") tag with an arbitrary name, say ``ci`` (for "Continuous Integration"):: @@ -1073,10 +1073,17 @@ a custom tag as follows. git push -f origin ci -(In both commands, the "force" option (``-f``) allows overwriting a -previous tag of that name.) +In both commands, the "force" option (``-f``) allows overwriting a +previous tag of that name. -Either way, when the workflow has been triggered, you can inspect it +The `Workflow for Linux portability CI +`_ is convenient +when you are fixing issues for specific Linux platforms. The "Run workflow" +button allows you to precisely select the platforms and the build targets +tailored for the issue you are tackling. This is for advanced developers, who +read the workflow script :sage_root:`.github/workflows/docker.yml` in detail. + +When any CI workflow has been triggered, you can inspect it by using the workflow status page in the "Actions" tab of your repository. From eb05a302b772d5afcecc6b572ce05d295e79437b Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Mon, 17 Feb 2025 23:46:42 +0900 Subject: [PATCH 24/40] Touch CI Linux incremental --- .github/workflows/ci-linux-incremental.yml | 37 ++++++++++++++++++---- .github/workflows/ci-linux.yml | 2 +- 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-linux-incremental.yml b/.github/workflows/ci-linux-incremental.yml index 8606e7a4ca5..016cff6ce5e 100644 --- a/.github/workflows/ci-linux-incremental.yml +++ b/.github/workflows/ci-linux-incremental.yml @@ -81,11 +81,21 @@ jobs: sage-package metrics :all: fi - test: + standard-incremental: needs: [changed_files] uses: ./.github/workflows/docker.yml with: - # Build incrementally from published Docker image + tox_system_factors: >- + ["ubuntu-focal", + "ubuntu-noble", + "debian-bullseye", + "debian-bookworm", + "fedora-30", + "fedora-40", + "gentoo-python3.11", + "debian-bullseye-i386"] + tox_packages_factors: >- + ["standard"] incremental: true free_disk_space: true from_docker_repository: ghcr.io/sagemath/sage/ @@ -93,6 +103,13 @@ jobs: from_docker_tag: "dev" docker_targets: "with-targets" targets: "${{needs.changed_files.outputs.build_targets}} ci-build-with-fallback doc-html ptest-nodoc" + docker_push_repository: ghcr.io/${{ github.repository }}/ + max_parallel: 8 + + minimal-incremental: + needs: [changed_files] + uses: ./.github/workflows/docker.yml + with: tox_system_factors: >- ["ubuntu-focal", "ubuntu-noble", @@ -103,12 +120,20 @@ jobs: "gentoo-python3.11", "debian-bullseye-i386"] tox_packages_factors: >- - ["standard", - "minimal"] + ["minimal"] + incremental: true + free_disk_space: true + from_docker_repository: ghcr.io/sagemath/sage/ + from_docker_target: "with-targets" + from_docker_tag: "dev" + docker_targets: "with-targets" + targets: "${{needs.changed_files.outputs.build_targets}} ci-build-with-fallback doc-html ptest-nodoc" docker_push_repository: ghcr.io/${{ github.repository }}/ max_parallel: 8 - constraints_pkgs-norequirements: + standard-constraints_pkgs-incremental: + # turned off as all platforms fail + if: false needs: [changed_files] uses: ./.github/workflows/docker.yml with: @@ -131,7 +156,7 @@ jobs: docker_push_repository: ghcr.io/${{ github.repository }}/ max_parallel: 16 - site: + standard-sitepackages-incremental: needs: [changed_files] uses: ./.github/workflows/docker.yml with: diff --git a/.github/workflows/ci-linux.yml b/.github/workflows/ci-linux.yml index b53d0dd4340..84111f1c834 100644 --- a/.github/workflows/ci-linux.yml +++ b/.github/workflows/ci-linux.yml @@ -114,7 +114,7 @@ jobs: logs_artifact_postfix: "-sitepackages" max_parallel: 8 - standard-constraints_pkgs-norequirements: + standard-constraints_pkgs: # Turned off since it fails for all systems if: false needs: [standard-sitepackages] From 6578eb6dd0b85ee8ba8e6c47ee6ed1e0630aff8d Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Tue, 18 Feb 2025 08:56:35 +0900 Subject: [PATCH 25/40] For debug --- .ci/retrofit-worktree.sh | 8 ++--- .github/workflows/docker.yml | 12 +++++--- build/pkgs/_develop/dependencies | 2 +- build/pkgs/_prereq/distros/debian.txt | 11 +++---- src/doc/en/developer/portability_testing.rst | 31 ++++++++++++++++---- tox.ini | 8 ++--- 6 files changed, 49 insertions(+), 23 deletions(-) diff --git a/.ci/retrofit-worktree.sh b/.ci/retrofit-worktree.sh index 782d3ba44b7..39d11a71ac4 100755 --- a/.ci/retrofit-worktree.sh +++ b/.ci/retrofit-worktree.sh @@ -21,8 +21,7 @@ git config --global user.email "$GIT_AUTHOR_EMAIL" set -x # If actions/checkout downloaded our source tree using the GitHub REST API -# instead of with git (because do not have git installed in our image), -# we first make the source tree a repo. +# instead of with git, we first make the source tree a repo. if [ ! -d .git ]; then git init; fi # Commit and tag this state of the source tree "new". This is what we want to build and test. @@ -42,5 +41,6 @@ git worktree prune --verbose git worktree add --detach $WORKTREE_NAME rm -rf $WORKTREE_DIRECTORY/.git && mv $WORKTREE_NAME/.git $WORKTREE_DIRECTORY/ rm -rf $WORKTREE_NAME && ln -s $WORKTREE_DIRECTORY $WORKTREE_NAME -if [ ! -f $WORKTREE_NAME/.gitignore ]; then cp .gitignore $WORKTREE_NAME/; fi -(cd $WORKTREE_NAME && git add -A && git commit --quiet --allow-empty -m "old" -a && git tag -f old && git checkout -f new && git clean -fd && git status) +if [ ! -f $WORKTREE_NAME/.gitignore ]; then cp .gitignore $WORKTREE_NAME/; cat $WORKTREE_NAME/.gitignore; fi +(cd $WORKTREE_NAME && git status && git add -A && git commit --quiet --allow-empty -m "old" -a && git tag -f old && git checkout -f new && git clean -fd && git status) +(echo "CIDEBUG6:"; ls -l /sage/build/make/Makefile || cat $WORKTREE_NAME/.gitignore) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 0eb80bdab26..42f761083d5 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -182,7 +182,7 @@ jobs: # .ci/write-dockerfile.sh TOX_ENV: "docker-${{ matrix.tox_system_factor }}-${{ matrix.tox_packages_factor }}${{ inputs.incremental && '-incremental' || '' }}" LOGS_ARTIFACT_NAME: logs-commit-${{ github.sha }}-tox-docker-${{ matrix.tox_system_factor }}-${{ matrix.tox_packages_factor }}${{ inputs.logs_artifact_postfix }} - DOCKER_TARGETS: ${{ inputs.docker_targets }} + DOCKER_TARGETS: ${{ inputs.docker_targets || github.event.inputs.docker_targets }} TARGETS_PRE: ${{ inputs.targets_pre }} TARGETS: ${{ inputs.targets }} TARGETS_OPTIONAL: ${{ inputs.targets_optional }} @@ -243,7 +243,7 @@ jobs: if: inputs.upstream_artifact - name: Try to login to ghcr.io - if: inputs.docker_push_repository != '' + if: (inputs.docker_push_repository == null || inputs.docker_push_repository != '') # https://docs.github.com/en/actions/reference/workflow-commands-for-github-actions#setting-an-environment-variable run: | TOKEN="${{ secrets.DOCKER_PKG_GITHUB_TOKEN }}" @@ -251,7 +251,11 @@ jobs: TOKEN="${{ secrets.GITHUB_TOKEN }}" fi if echo "$TOKEN" | docker login ghcr.io -u ${{ github.actor }} --password-stdin; then - echo "DOCKER_PUSH_REPOSITORY=$(echo ${{ inputs.docker_push_repository }} | tr "[:upper:]" "[:lower:]")" >> $GITHUB_ENV + if [ -z "${{ inputs.docker_push_repository }}" ]; then + echo "DOCKER_PUSH_REPOSITORY=ghcr.io/${{ github.repository }}/" >> $GITHUB_ENV + else + echo "DOCKER_PUSH_REPOSITORY=$(echo ${{ inputs.docker_push_repository }} | tr "[:upper:]" "[:lower:]")" >> $GITHUB_ENV + fi echo "DOCKER_CONFIG_FILE=$HOME/.docker/config.json" >> $GITHUB_ENV fi @@ -346,7 +350,7 @@ jobs: with: path: artifacts name: ${{ env.LOGS_ARTIFACT_NAME }} - if: always() && inputs.logs_artifact + if: always() && (inputs.logs_artifact == true || inputs.logs_artifact == null) - name: Print out logs for immediate inspection # and markup the output with GitHub Actions logging commands diff --git a/build/pkgs/_develop/dependencies b/build/pkgs/_develop/dependencies index f37c427ebcd..d34a1df4f0d 100644 --- a/build/pkgs/_develop/dependencies +++ b/build/pkgs/_develop/dependencies @@ -1 +1 @@ -_bootstrap git pytest pytest_xdist github_cli +git pytest pytest_xdist github_cli diff --git a/build/pkgs/_prereq/distros/debian.txt b/build/pkgs/_prereq/distros/debian.txt index c6598935e3c..e4d984d22dd 100644 --- a/build/pkgs/_prereq/distros/debian.txt +++ b/build/pkgs/_prereq/distros/debian.txt @@ -19,10 +19,11 @@ python3 tar bc gcc -# On debian buster, need C++ even to survive 'configure'. Otherwise: -# checking how to run the C++ preprocessor... /lib/cpp -# configure: error: in `/sage': -# configure: error: C++ preprocessor "/lib/cpp" fails sanity check +# On debian bullseye, need C++ even to survive 'configure'. Otherwise: +# +# checking how to run the C++ preprocessor... /lib/cpp +# Error: configure: error: in `/sage': +# Error: configure: error: C++ preprocessor "/lib/cpp" fails sanity check g++ -# Needed if we download some packages from a https upstream URL +# needed if we download some packages from a https upstream URL ca-certificates diff --git a/src/doc/en/developer/portability_testing.rst b/src/doc/en/developer/portability_testing.rst index 33e547b8a0c..e293d43ec1f 100644 --- a/src/doc/en/developer/portability_testing.rst +++ b/src/doc/en/developer/portability_testing.rst @@ -47,7 +47,7 @@ use to test Sage and fix portability issues for platforms other than their own machines. -Docker-based Testing +Docker-based testing ==================== `Docker `_ is a popular virtualization @@ -1076,11 +1076,11 @@ pushing a custom tag as follows. In both commands, the "force" option (``-f``) allows overwriting a previous tag of that name. -The `Workflow for Linux portability CI +The `workflow for Linux portability CI `_ is convenient when you are fixing issues for specific Linux platforms. The "Run workflow" button allows you to precisely select the platforms and the build targets -tailored for the issue you are tackling. This is for advanced developers, who +tailored for the issues you are tackling. This is for advanced developers, who read the workflow script :sage_root:`.github/workflows/docker.yml` in detail. When any CI workflow has been triggered, you can inspect it @@ -1094,9 +1094,28 @@ pane if ``make build doc-html`` finished without error. (It also runs package testsuites and the Sage doctests but failures in these are not reflected in the left pane; see below.) -The right pane ("Artifacts") offers archives of the logs for download. +Clicking an item in the left pane opens a log viewer on the right. The most +important item in the log viewer is the step "Configure and build Sage ...", +where you see full logs generated from the workflow. If the job failed, these +logs show at what point in the build process the failure occurred. -Scrolling down in the right pane shows "Annotations": +.. NOTE:: + + The massive volume of logs would look overwhelming at first sight. Here are + some guides: + + - ``► ...``: These are commands executed by the workflow :sage_root:`.github/workflows/docker.yml`. + - ``docker-...:``: These are commands executed by Tox :sage_root:`tox.ini`. + - ``#xx ...`` where ``xx`` is a number: These show the commands executed by + Docker building Sage with the Dockerfile generated by + :sage_root:`.ci/write-dockerfile.sh`. + - Other lines are output from the commands executed by the workflow, Tox, + or Docker. The majority of these will likely be the output from the Sage + build process. + +The "Artifacts" pane on the right offers archives of the logs for download. + +The "Annotations" pane on the right shows errors, warnings or notices: * Red "check failure" annotations appear for each log file that contains a build error. For example, you might see:: @@ -1124,6 +1143,8 @@ Clicking on the annotations does not take you to a very useful place. To view details, click on one of the items in the pane. This changes the right pane to a log viewer. + + The ``docker`` workflows automatically push images to ``ghcr.io``. You find them in the Packages tab of your GitHub repository. diff --git a/tox.ini b/tox.ini index ac4390c2d67..d4ddaf66a67 100644 --- a/tox.ini +++ b/tox.ini @@ -196,11 +196,10 @@ setenv = # Default: all standard packages with spkg-configure SAGE_PACKAGE_LIST_ARGS=--has-file=spkg-configure.m4 :standard: recommended: EXTRA_SAGE_PACKAGES_3=_recommended $(head -n 1 build/pkgs/_recommended/dependencies) - incremental: EXTRA_SAGE_PACKAGES_4=git develop: EXTRA_SAGE_PACKAGES_4=_develop $(head -n 1 build/pkgs/_develop/dependencies) - minimal: SAGE_PACKAGE_LIST_ARGS=_prereq - standard: SAGE_PACKAGE_LIST_ARGS=_prereq :standard: - maximal: SAGE_PACKAGE_LIST_ARGS=_prereq :standard: :optional: + minimal: SAGE_PACKAGE_LIST_ARGS=--has-file=spkg-configure.m4 _prereq + standard: SAGE_PACKAGE_LIST_ARGS=--has-file=spkg-configure.m4 _prereq :standard: + maximal: SAGE_PACKAGE_LIST_ARGS=--has-file=spkg-configure.m4 _prereq :standard: :optional: maximal: IGNORE_MISSING_SYSTEM_PACKAGES=yes sitepackages: ENABLE_SYSTEM_SITE_PACKAGES=yes sitepackages: CONFIG_CONFIGURE_ARGS_SITEPACKAGES=--enable-system-site-packages @@ -217,6 +216,7 @@ setenv = # default tag is "latest" # docker: BASE_TAG=latest + docker: EXTRA_SAGE_PACKAGES_4=git # # https://hub.docker.com/_/ubuntu?tab=description # as of 2024-02, latest=jammy=22.04, rolling=mantic=23.10, devel=noble=24.04 From 35f10f9beb3fe37db42e2c7773dab44ee4e28da0 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Wed, 19 Feb 2025 02:53:07 +0900 Subject: [PATCH 26/40] Fix missing build/make/Makefile error --- .ci/retrofit-worktree.sh | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/.ci/retrofit-worktree.sh b/.ci/retrofit-worktree.sh index 39d11a71ac4..89ee95e5bc9 100755 --- a/.ci/retrofit-worktree.sh +++ b/.ci/retrofit-worktree.sh @@ -20,20 +20,18 @@ git config --global user.email "$GIT_AUTHOR_EMAIL" set -x -# If actions/checkout downloaded our source tree using the GitHub REST API -# instead of with git, we first make the source tree a repo. +# If actions/checkout downloaded our source tree (in current directory) using the +# GitHub REST API instead of with git, we first make the source tree a repo. if [ ! -d .git ]; then git init; fi -# Commit and tag this state of the source tree "new". This is what we want to build and test. +# Commit and tag this state of the source tree "new". The current directory +# contains "new" source files with which we want to build and test. git add -A && git commit --quiet --allow-empty -m "new" git tag -f new # Our container image contains a source tree in $WORKTREE_DIRECTORY with a full build of Sage. # But $WORKTREE_DIRECTORY is not a git repository. # We make $WORKTREE_DIRECTORY a worktree whose index is at tag "new". -# We then commit the current sources and set the tag "old". (This keeps all mtimes unchanged.) -# Then we update worktree and index with "git checkout new". -# (This keeps mtimes of unchanged files unchanged and mtimes of changed files newer than unchanged files.) if [ -L $WORKTREE_NAME ]; then rm -f $WORKTREE_NAME fi @@ -41,6 +39,14 @@ git worktree prune --verbose git worktree add --detach $WORKTREE_NAME rm -rf $WORKTREE_DIRECTORY/.git && mv $WORKTREE_NAME/.git $WORKTREE_DIRECTORY/ rm -rf $WORKTREE_NAME && ln -s $WORKTREE_DIRECTORY $WORKTREE_NAME -if [ ! -f $WORKTREE_NAME/.gitignore ]; then cp .gitignore $WORKTREE_NAME/; cat $WORKTREE_NAME/.gitignore; fi -(cd $WORKTREE_NAME && git status && git add -A && git commit --quiet --allow-empty -m "old" -a && git tag -f old && git checkout -f new && git clean -fd && git status) -(echo "CIDEBUG6:"; ls -l /sage/build/make/Makefile || cat $WORKTREE_NAME/.gitignore) + +# Copy "new" .gitignore (in current directory) to the worktree if there is not one already. +if [ ! -f $WORKTREE_NAME/.gitignore ]; then cp .gitignore $WORKTREE_NAME/; fi +# We then commit the worktree and set the tag "old". (This keeps all modification times unchanged.) +(cd $WORKTREE_NAME && git add -A && git commit --quiet --allow-empty -m "old" && git tag -f old) +# Then we update the worktree and index with "git checkout new". (This keeps modification times of "old" files +# and makes modification times of "new" files newer, which triggers incremental build.) +(cd $WORKTREE_NAME && git checkout -f new && \ + # For unknown reason, "build/" directory is untracked by git. Hence we force + # it tracked, to avoid removal of "build/make/Makefile" by "git clean -fd" + git add build/ && git clean -fd) From b1520b7a2000c85298e6a189080d6eb15e2b8297 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Wed, 19 Feb 2025 08:16:04 +0900 Subject: [PATCH 27/40] Fix retrofit-worktree --- .ci/retrofit-worktree.sh | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.ci/retrofit-worktree.sh b/.ci/retrofit-worktree.sh index 89ee95e5bc9..a20765a9e82 100755 --- a/.ci/retrofit-worktree.sh +++ b/.ci/retrofit-worktree.sh @@ -46,7 +46,4 @@ if [ ! -f $WORKTREE_NAME/.gitignore ]; then cp .gitignore $WORKTREE_NAME/; fi (cd $WORKTREE_NAME && git add -A && git commit --quiet --allow-empty -m "old" && git tag -f old) # Then we update the worktree and index with "git checkout new". (This keeps modification times of "old" files # and makes modification times of "new" files newer, which triggers incremental build.) -(cd $WORKTREE_NAME && git checkout -f new && \ - # For unknown reason, "build/" directory is untracked by git. Hence we force - # it tracked, to avoid removal of "build/make/Makefile" by "git clean -fd" - git add build/ && git clean -fd) +(cd $WORKTREE_NAME && git checkout -f new) From 75e7e796ef1a64b2307bda43905c451f233715e3 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Wed, 19 Feb 2025 09:09:34 +0900 Subject: [PATCH 28/40] Revive standard-constraints_pkgs --- .github/workflows/ci-linux.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/ci-linux.yml b/.github/workflows/ci-linux.yml index 84111f1c834..f60378ee224 100644 --- a/.github/workflows/ci-linux.yml +++ b/.github/workflows/ci-linux.yml @@ -115,8 +115,7 @@ jobs: max_parallel: 8 standard-constraints_pkgs: - # Turned off since it fails for all systems - if: false + if: ${{ success() || failure() }} needs: [standard-sitepackages] uses: ./.github/workflows/docker.yml with: From fda20610236c57fcf0366008ee241760abfbc7a4 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Wed, 19 Feb 2025 10:44:19 +0900 Subject: [PATCH 29/40] Remove subprojects/factory directory --- .github/workflows/ci-linux-incremental.yml | 2 -- subprojects/factory | 1 - 2 files changed, 3 deletions(-) delete mode 160000 subprojects/factory diff --git a/.github/workflows/ci-linux-incremental.yml b/.github/workflows/ci-linux-incremental.yml index 016cff6ce5e..96edc177b40 100644 --- a/.github/workflows/ci-linux-incremental.yml +++ b/.github/workflows/ci-linux-incremental.yml @@ -132,8 +132,6 @@ jobs: max_parallel: 8 standard-constraints_pkgs-incremental: - # turned off as all platforms fail - if: false needs: [changed_files] uses: ./.github/workflows/docker.yml with: diff --git a/subprojects/factory b/subprojects/factory deleted file mode 160000 index 769668a07b8..00000000000 --- a/subprojects/factory +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 769668a07b8110213dc5d8113ad24dd096439d4c From 7937b24e1bd72abd6aaec0cd295ea1ed511f7316 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Wed, 19 Feb 2025 11:29:23 +0900 Subject: [PATCH 30/40] Remove archlinux-latest --- .github/workflows/ci-linux-incremental.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/ci-linux-incremental.yml b/.github/workflows/ci-linux-incremental.yml index 96edc177b40..c882fed1f40 100644 --- a/.github/workflows/ci-linux-incremental.yml +++ b/.github/workflows/ci-linux-incremental.yml @@ -170,7 +170,6 @@ jobs: # with only a small number of test failures as of 10.2.rc0 tox_system_factors: >- ["gentoo-python3.11", - "archlinux-latest", "fedora-40"] tox_packages_factors: >- ["standard-sitepackages"] From 4ba72d436379f8ec0b3f25b08590545906985eb4 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Wed, 19 Feb 2025 14:31:16 +0900 Subject: [PATCH 31/40] Simplify Dockerfile --- .ci/write-dockerfile.sh | 55 ++++++++++++++---------------------- .github/workflows/docker.yml | 11 +++----- tox.ini | 4 ++- 3 files changed, 28 insertions(+), 42 deletions(-) diff --git a/.ci/write-dockerfile.sh b/.ci/write-dockerfile.sh index 95994c9033b..8f8f51e26a1 100755 --- a/.ci/write-dockerfile.sh +++ b/.ci/write-dockerfile.sh @@ -1,12 +1,23 @@ #! /usr/bin/env bash -set -e -shopt -s extglob ## ## Write a Dockerfile for portability testing to stdout. ## ## This script needs to be run from SAGE_ROOT (root of the Sage repository). ## It is called by $SAGE_ROOT/tox.ini for all environments 'tox -e docker-...' ## +## The generated Dockerfile needs Sage source tree directory as context, +## and builds Sage docker images based on the source tree. +## +## Hence this is how to use it: +## +## git worktree add source-tree +## docker build source-tree -f Dockerfile ... +## git worktree remove source-tree +## +## where we assume the current directory is SAGE_ROOT. +## +set -e +shopt -s extglob ## Positional arguments: ## SYSTEM="${1:-debian}" @@ -274,37 +285,26 @@ cat <> /sage/.gitignore - printf '/src/*\n!/src/doc/bootstrap\n!/src/bin\n!/src/*.m4\n!/src/*.toml\n!/src/VERSION.txt\n' >> /new/.gitignore - if ! cd /new && /.ci/retrofit-worktree.sh worktree-image /sage; then + if ! cd /source-tree && .ci/retrofit-worktree.sh worktree-image /sage; then echo "retrofit-worktree.sh failed, falling back to replacing /sage" for a in local logs; do if [ -d /sage/\$a ]; then - mv /sage/\$a /new/ + mv /sage/\$a /source-tree/ fi done rm -rf /sage - mv /new /sage + mv /source-tree /sage fi else - mv /new /sage + mv /source-tree /sage fi EOT - WORKDIR /sage ARG BOOTSTRAP="${BOOTSTRAP-./bootstrap}" $RUN sh -x -c "\${BOOTSTRAP}"$ENDRUN$THEN_SAVE_STATUS @@ -351,20 +351,7 @@ ENV MAKE="make -j\${NUMPROC}" ARG USE_MAKEFLAGS="-k V=0" ENV SAGE_CHECK=warn ENV SAGE_CHECK_PACKAGES="!cython,!python3,!cysignals,!linbox,!ppl,!cmake,!rpy2,!sage_sws2rst" -$ADD .gitignore /new/.gitignore -$ADD src /new/src -RUN < Date: Wed, 19 Feb 2025 16:18:16 +0900 Subject: [PATCH 32/40] Some edits in CI linux incremental --- .github/workflows/ci-linux-incremental.yml | 10 ++++++---- tox.ini | 12 +++++++++--- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-linux-incremental.yml b/.github/workflows/ci-linux-incremental.yml index c882fed1f40..e66ca89611a 100644 --- a/.github/workflows/ci-linux-incremental.yml +++ b/.github/workflows/ci-linux-incremental.yml @@ -81,7 +81,7 @@ jobs: sage-package metrics :all: fi - standard-incremental: + standard: needs: [changed_files] uses: ./.github/workflows/docker.yml with: @@ -106,7 +106,7 @@ jobs: docker_push_repository: ghcr.io/${{ github.repository }}/ max_parallel: 8 - minimal-incremental: + minimal: needs: [changed_files] uses: ./.github/workflows/docker.yml with: @@ -131,7 +131,9 @@ jobs: docker_push_repository: ghcr.io/${{ github.repository }}/ max_parallel: 8 - standard-constraints_pkgs-incremental: + standard-constraints_pkgs: + # Turned off until fixed + if: false needs: [changed_files] uses: ./.github/workflows/docker.yml with: @@ -154,7 +156,7 @@ jobs: docker_push_repository: ghcr.io/${{ github.repository }}/ max_parallel: 16 - standard-sitepackages-incremental: + standard-sitepackages: needs: [changed_files] uses: ./.github/workflows/docker.yml with: diff --git a/tox.ini b/tox.ini index 9bb97becc5a..702bd7dda0e 100644 --- a/tox.ini +++ b/tox.ini @@ -112,10 +112,16 @@ envlist = # # $ tox -e local-direct -- openblas + ### + ### Delegation to src/tox.ini + ### + ### This works through build/make/Makefile(.in). Find "recursive tox invocation" there. + # + # $ tox -e sagelib-tox-sagepython-constraints_pkgs-norequirements + # + # Recursively, this runs tox -e sagepython-constraints_pkgs-norequirements in build/pkgs/sagelib/src/ + # with build/pkgs/sagelib/src/tox.ini - ##### - ##### Delegation to src/tox.ini - ##### # included with (cd src && tox -p auto): # From 26304db4cdf8df6999ec0241eb7b284305479714 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Wed, 19 Feb 2025 20:07:04 +0900 Subject: [PATCH 33/40] Make write-dockefile more robuns --- .ci/write-dockerfile.sh | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/.ci/write-dockerfile.sh b/.ci/write-dockerfile.sh index 8f8f51e26a1..a6d6c60daee 100755 --- a/.ci/write-dockerfile.sh +++ b/.ci/write-dockerfile.sh @@ -285,24 +285,23 @@ cat < Date: Wed, 19 Feb 2025 20:15:21 +0900 Subject: [PATCH 34/40] Update the doc accordingly --- src/doc/en/developer/portability_testing.rst | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/doc/en/developer/portability_testing.rst b/src/doc/en/developer/portability_testing.rst index e293d43ec1f..c0f9f175312 100644 --- a/src/doc/en/developer/portability_testing.rst +++ b/src/doc/en/developer/portability_testing.rst @@ -1214,20 +1214,17 @@ Also `smaller images corresponding to earlier build stages `_ are available: -* ``-with-system-packages`` provides a system installation with - system packages installed, no source tree, +* ``-with-system-packages`` provides a system installation with system packages + installed, no source tree, -* ``-configured`` contains a partial source tree - (:envvar:`SAGE_ROOT`) and has completed the bootstrapping phase and - the run of the ``configure`` script, +* ``-configured`` contains the source tree (:envvar:`SAGE_ROOT`) and has + completed the bootstrapping phase and the run of the ``configure`` script, -* ``-with-targets-pre`` contains a partial source tree - (:envvar:`SAGE_ROOT`) and a full installation - of all non-Python packages (:envvar:`SAGE_LOCAL`), +* ``-with-targets-pre`` contains the source tree (:envvar:`SAGE_ROOT`) and a + full installation of all non-Python packages (:envvar:`SAGE_LOCAL`), -* ``-with-targets`` contains the full source tree and a full - installation of Sage, including the HTML documentation, but ``make - ptest`` has not been run yet. +* ``-with-targets`` contains the source tree and a full installation of Sage, + including the HTML documentation, but ``make ptest`` has not been run yet. .. only:: html From cd44c2cbebba25adfad5adaa3c83a358dd492b79 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Wed, 19 Feb 2025 20:40:36 +0900 Subject: [PATCH 35/40] Slight refactoring --- .ci/write-dockerfile.sh | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/.ci/write-dockerfile.sh b/.ci/write-dockerfile.sh index a6d6c60daee..9742d87f2f6 100755 --- a/.ci/write-dockerfile.sh +++ b/.ci/write-dockerfile.sh @@ -291,17 +291,20 @@ RUN < Date: Thu, 20 Feb 2025 08:04:43 +0900 Subject: [PATCH 36/40] Add archlinux-latest testenv --- .github/workflows/ci-linux-incremental.yml | 3 +++ src/doc/en/developer/portability_testing.rst | 4 ++-- tox.ini | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-linux-incremental.yml b/.github/workflows/ci-linux-incremental.yml index e66ca89611a..31ae75d26cf 100644 --- a/.github/workflows/ci-linux-incremental.yml +++ b/.github/workflows/ci-linux-incremental.yml @@ -92,6 +92,7 @@ jobs: "debian-bookworm", "fedora-30", "fedora-40", + "archlinux-latest", "gentoo-python3.11", "debian-bullseye-i386"] tox_packages_factors: >- @@ -117,6 +118,7 @@ jobs: "debian-bookworm", "fedora-30", "fedora-40", + "archlinux-latest", "gentoo-python3.11", "debian-bullseye-i386"] tox_packages_factors: >- @@ -172,6 +174,7 @@ jobs: # with only a small number of test failures as of 10.2.rc0 tox_system_factors: >- ["gentoo-python3.11", + "archlinux-latest", "fedora-40"] tox_packages_factors: >- ["standard-sitepackages"] diff --git a/src/doc/en/developer/portability_testing.rst b/src/doc/en/developer/portability_testing.rst index c0f9f175312..dcc195c60da 100644 --- a/src/doc/en/developer/portability_testing.rst +++ b/src/doc/en/developer/portability_testing.rst @@ -1220,8 +1220,8 @@ are available: * ``-configured`` contains the source tree (:envvar:`SAGE_ROOT`) and has completed the bootstrapping phase and the run of the ``configure`` script, -* ``-with-targets-pre`` contains the source tree (:envvar:`SAGE_ROOT`) and a - full installation of all non-Python packages (:envvar:`SAGE_LOCAL`), +* ``-with-targets-pre`` contains the source tree and a full installation of all + non-Python packages (:envvar:`SAGE_LOCAL`), * ``-with-targets`` contains the source tree and a full installation of Sage, including the HTML documentation, but ``make ptest`` has not been run yet. diff --git a/tox.ini b/tox.ini index 702bd7dda0e..4e9ec326ec1 100644 --- a/tox.ini +++ b/tox.ini @@ -349,6 +349,7 @@ setenv = archlinux: SYSTEM=arch archlinux: BASE_IMAGE=archlinux archlinux: IGNORE_MISSING_SYSTEM_PACKAGES=yes + archlinux-latest: BASE_TAG=latest # # https://hub.docker.com/r/vbatts/slackware # From a972d8752e57eaab500bf0105d7cc3057fa3ae71 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Thu, 20 Feb 2025 17:45:23 +0900 Subject: [PATCH 37/40] Remove redundant source-tree after retrofit in container --- .ci/write-dockerfile.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.ci/write-dockerfile.sh b/.ci/write-dockerfile.sh index 9742d87f2f6..e378d2f2196 100755 --- a/.ci/write-dockerfile.sh +++ b/.ci/write-dockerfile.sh @@ -291,7 +291,8 @@ RUN < Date: Sat, 22 Feb 2025 09:24:25 +0900 Subject: [PATCH 38/40] Turn off failing jobs --- .github/workflows/ci-linux-incremental.yml | 2 ++ .github/workflows/ci-linux.yml | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-linux-incremental.yml b/.github/workflows/ci-linux-incremental.yml index 31ae75d26cf..5aa917b6d71 100644 --- a/.github/workflows/ci-linux-incremental.yml +++ b/.github/workflows/ci-linux-incremental.yml @@ -159,6 +159,8 @@ jobs: max_parallel: 16 standard-sitepackages: + # Turned off until fixed + if: false needs: [changed_files] uses: ./.github/workflows/docker.yml with: diff --git a/.github/workflows/ci-linux.yml b/.github/workflows/ci-linux.yml index f60378ee224..53fb6b95cfb 100644 --- a/.github/workflows/ci-linux.yml +++ b/.github/workflows/ci-linux.yml @@ -79,7 +79,8 @@ jobs: max_parallel: 50 standard-sitepackages: - if: ${{ success() || failure() }} + # Turned off until fixed + if: false needs: [standard] uses: ./.github/workflows/docker.yml with: @@ -115,7 +116,7 @@ jobs: max_parallel: 8 standard-constraints_pkgs: - if: ${{ success() || failure() }} + # Turned off until fixed needs: [standard-sitepackages] uses: ./.github/workflows/docker.yml with: From f1fbed12395c65a27c60025806bf34c1e7c08772 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Thu, 27 Feb 2025 15:58:00 +0900 Subject: [PATCH 39/40] Fix a bug for logs artifact uploading --- .github/workflows/docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 36bbc64ee11..e74ab04ea48 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -347,7 +347,7 @@ jobs: with: path: artifacts name: ${{ env.LOGS_ARTIFACT_NAME }} - if: always() && (inputs.logs_artifact == true || inputs.logs_artifact == null) + if: always() && (inputs.logs_artifact == true || github.event_name == 'workflow_dispatch') - name: Print out logs for immediate inspection # and markup the output with GitHub Actions logging commands From 4b82421b47d16ef5cfbf532bbe37a1ac9bbff149 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Thu, 27 Feb 2025 17:55:17 +0900 Subject: [PATCH 40/40] Fix a new bug in write-dockerfile.sh --- .ci/write-dockerfile.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/.ci/write-dockerfile.sh b/.ci/write-dockerfile.sh index e378d2f2196..5f5b6c14d50 100755 --- a/.ci/write-dockerfile.sh +++ b/.ci/write-dockerfile.sh @@ -292,7 +292,6 @@ rm -rf /source-tree/.git if [ -d /sage ]; then BASE_VERSION=\$(cat /sage/VERSION.txt) if (cd /source-tree && .ci/retrofit-worktree.sh worktree-image /sage); then - rm -rf /source-tree echo "### Starting incremental build from \$BASE_VERSION" else echo "retrofit-worktree.sh failed..."