From 445188664efb1224b5d8a510c9ef716b519558da Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Thu, 18 May 2023 17:37:13 -0700 Subject: [PATCH 01/26] .github/workflows/build.yml: First build really incrementally and test changed files --- .github/workflows/build.yml | 40 +++++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ffc09d56ff2..b18b3ad5264 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -29,24 +29,38 @@ jobs: id: checkout uses: actions/checkout@v3 - - name: Prepare + - name: Update system packages id: prepare run: | - # Install test tools. - if apt-get update && apt-get install -y git python3-venv; then - # Debian-specific temporary code: - # Installation of python3-venv can be removed as soon as a - # base image with a release including #33822 is available - : - else - export PATH="build/bin:$PATH" - eval $(sage-print-system-package-command auto update) - eval $(sage-print-system-package-command auto --spkg --yes --no-install-recommends install git) - fi + export PATH="build/bin:$PATH" + eval $(sage-print-system-package-command auto update) + eval $(sage-print-system-package-command auto --spkg --yes --no-install-recommends install git) + + - name: Incremental build and test + if: always() && steps.prepare.outcome == 'success' + id: incremental + run: | + set -ex + git config --global user.email "ci-sage@example.com" + git config --global user.name "Build & Test workflow" + # If actions/checkout downloaded using the GitHub REST API: + if [ ! -d .git ]; then git config --global --add safe.directory $(pwd) && git init && git add -A && git commit --quiet -m "new"; fi + # Make the source tree from the container image a worktree: + git worktree add --detach worktree-image && git tag -f new + rm -rf /sage/.git && mv worktree-image/.git /sage/ + rm -rf worktree-image && ln -s /sage worktree-image + (cd /sage && git commit --allow-empty -m "old" -a && git tag -f old && git reset --hard new && git reset old && make build && ./sage -t --new -p2) + env: + MAKE: make -j2 + SAGE_NUM_THREADS: 2 + + - name: Configure new tree + if: always() && steps.prepare.outcome == 'success' + run: | # Reuse built SAGE_LOCAL contained in the Docker image ./bootstrap ./configure --enable-build-as-root --prefix=/sage/local --with-sage-venv --enable-editable --enable-download-from-upstream-url - + - name: Build and test modularized distributions if: always() && steps.prepare.outcome == 'success' run: make V=0 tox && make pypi-wheels From 2881586dd605cfb14be3f6c2860ae59e1b3abfcf Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Thu, 18 May 2023 19:30:24 -0700 Subject: [PATCH 02/26] src/sage/doctest/control.py: Make 'sage -t --new' work in git worktrees --- src/sage/doctest/control.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/doctest/control.py b/src/sage/doctest/control.py index 450d9b607da..c2e9f927e05 100644 --- a/src/sage/doctest/control.py +++ b/src/sage/doctest/control.py @@ -791,7 +791,7 @@ def add_files(self): # SAGE_ROOT_GIT can be None on distributions which typically # only have the SAGE_LOCAL install tree but not SAGE_ROOT if SAGE_ROOT_GIT is not None: - have_git = os.path.isdir(SAGE_ROOT_GIT) + have_git = os.path.exists(SAGE_ROOT_GIT) else: have_git = False From 43fcf4a93d03c6d9413d101369e795549407630c Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Thu, 18 May 2023 19:43:06 -0700 Subject: [PATCH 03/26] .github/workflows/build.yml: Run non-incremental tests with --long --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b18b3ad5264..083e1f869b7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -105,7 +105,7 @@ jobs: if: always() && steps.build.outcome == 'success' run: | ../sage -python -m pip install coverage - ../sage -python -m coverage run ./bin/sage-runtests --all -p2 + ../sage -python -m coverage run ./bin/sage-runtests --all --long -p2 working-directory: ./src - name: Prepare coverage results From f9b4412d823b2c7964ded86c3e5afaba103c1430 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Thu, 25 May 2023 19:04:36 -0700 Subject: [PATCH 04/26] .github/workflows/build.yml: Explicitly run bootstrap before the incremental build --- .github/workflows/build.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 083e1f869b7..e287b5e52fd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -49,7 +49,7 @@ jobs: git worktree add --detach worktree-image && git tag -f new rm -rf /sage/.git && mv worktree-image/.git /sage/ rm -rf worktree-image && ln -s /sage worktree-image - (cd /sage && git commit --allow-empty -m "old" -a && git tag -f old && git reset --hard new && git reset old && make build && ./sage -t --new -p2) + (cd /sage && git commit --allow-empty -m "old" -a && git tag -f old && git reset --hard new && git reset old && ./bootstrap && make build && ./sage -t --new -p2) env: MAKE: make -j2 SAGE_NUM_THREADS: 2 @@ -58,7 +58,6 @@ jobs: if: always() && steps.prepare.outcome == 'success' run: | # Reuse built SAGE_LOCAL contained in the Docker image - ./bootstrap ./configure --enable-build-as-root --prefix=/sage/local --with-sage-venv --enable-editable --enable-download-from-upstream-url - name: Build and test modularized distributions From f93a4d68489383c0601ffa227245aca44916bafd Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 27 May 2023 09:37:49 -0700 Subject: [PATCH 05/26] .github/workflows/build.yml: Explicitly run bootstrap before the incremental build (fixup) --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e287b5e52fd..3f61126b8a8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -58,6 +58,7 @@ jobs: if: always() && steps.prepare.outcome == 'success' run: | # Reuse built SAGE_LOCAL contained in the Docker image + ./bootstrap ./configure --enable-build-as-root --prefix=/sage/local --with-sage-venv --enable-editable --enable-download-from-upstream-url - name: Build and test modularized distributions From f46d247a303306ddafeb352f733fac09035500a6 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 27 May 2023 18:43:48 -0700 Subject: [PATCH 06/26] .github/workflows/build.yml: Add comments --- .github/workflows/build.yml | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3f61126b8a8..edc0cf1337b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -43,13 +43,27 @@ jobs: set -ex git config --global user.email "ci-sage@example.com" git config --global user.name "Build & Test workflow" - # If actions/checkout downloaded using the GitHub REST API: + # 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. if [ ! -d .git ]; then git config --global --add safe.directory $(pwd) && git init && git add -A && git commit --quiet -m "new"; fi - # Make the source tree from the container image a worktree: - git worktree add --detach worktree-image && git tag -f new + # Tag this state of the source tree "new". This is what we want to build and test. + git tag -f new + # Our container image contains a source tree in /sage with a full build of Sage. + # But /sage is not a git repository. + # We make /sage 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 reset --hard". + # (This keeps mtimes of unchanged files unchanged and mtimes of changed files newer than unchanged files.) + # Finally we reset the index to "old". (This keeps all mtimes unchanged.) + # The changed files now show up as uncommitted changes. + git worktree add --detach worktree-image rm -rf /sage/.git && mv worktree-image/.git /sage/ rm -rf worktree-image && ln -s /sage worktree-image - (cd /sage && git commit --allow-empty -m "old" -a && git tag -f old && git reset --hard new && git reset old && ./bootstrap && make build && ./sage -t --new -p2) + (cd worktree-image && git commit --allow-empty -m "old" -a && git tag -f old && git reset --hard new && git reset old) + # Now re-bootstrap and build. The build is incremental because we were careful with the timestamps. + # We run tests with "sage -t --new"; this only tests the uncommitted changes. + (cd worktree-image && ./bootstrap && make build && ./sage -t --new -p2) env: MAKE: make -j2 SAGE_NUM_THREADS: 2 From cbc0198be05923dc230021749bcd59cb4cb3cf99 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 27 May 2023 19:32:26 -0700 Subject: [PATCH 07/26] .github/workflows/build.yml: Add comments (fixup) --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index edc0cf1337b..1977b2d27f3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -53,7 +53,7 @@ jobs: # But /sage is not a git repository. # We make /sage 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 reset --hard". + # Then we update worktree and index with "git reset --hard new". # (This keeps mtimes of unchanged files unchanged and mtimes of changed files newer than unchanged files.) # Finally we reset the index to "old". (This keeps all mtimes unchanged.) # The changed files now show up as uncommitted changes. From f4a6ca069587a4132c5efa995f9ec6358b39d547 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 5 Jun 2023 10:18:15 -0700 Subject: [PATCH 08/26] .github/workflows/doc-build.yml: Build incrementally --- .github/workflows/build.yml | 3 ++- .github/workflows/doc-build.yml | 40 +++++++++++++++++++++++++++------ 2 files changed, 35 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ceb2af231ca..a9db05e9641 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -46,10 +46,11 @@ jobs: set -ex git config --global user.email "ci-sage@example.com" git config --global user.name "Build & Test workflow" + git config --global --add safe.directory $(pwd) # 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. - if [ ! -d .git ]; then git config --global --add safe.directory $(pwd) && git init && git add -A && git commit --quiet -m "new"; fi + if [ ! -d .git ]; then git init && git add -A && git commit --quiet -m "new"; fi # Tag this state of the source tree "new". This is what we want to build and test. git tag -f new # Our container image contains a source tree in /sage with a full build of Sage. diff --git a/.github/workflows/doc-build.yml b/.github/workflows/doc-build.yml index 4be22210eee..2d0c2303829 100644 --- a/.github/workflows/doc-build.yml +++ b/.github/workflows/doc-build.yml @@ -19,25 +19,51 @@ jobs: - name: Checkout uses: actions/checkout@v3 - - name: Prepare + - name: Update system packages run: | - apt-get update && apt-get install -y zip - # Reuse built SAGE_LOCAL contained in the Docker image - ./bootstrap - ./configure --enable-build-as-root --prefix=/sage/local --with-sage-venv --enable-download-from-upstream-url + apt-get update && apt-get install -y git zip - name: Build - run: make doc-html + run: | + set -ex + git config --global user.email "ci-sage@example.com" + git config --global user.name "Build & Test workflow" + git config --global --add safe.directory $(pwd) + # 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. + if [ ! -d .git ]; then git init && git add -A && git commit --quiet -m "new"; fi + # Tag this state of the source tree "new". This is what we want to build and test. + git tag -f new + # Our container image contains a source tree in /sage with a full build of Sage. + # But /sage is not a git repository. + # We make /sage 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 reset --hard new". + # (This keeps mtimes of unchanged files unchanged and mtimes of changed files newer than unchanged files.) + # Finally we reset the index to "old". (This keeps all mtimes unchanged.) + # The changed files now show up as uncommitted changes. + git worktree add --detach worktree-image + rm -rf /sage/.git && mv worktree-image/.git /sage/ + rm -rf worktree-image && ln -s /sage worktree-image + (cd worktree-image && git commit --allow-empty -m "old" -a && git tag -f old && git reset --hard new && git reset old) + # Keep track of changes to built HTML + (cd /sage/local/share/doc/sage/html && git init && git add -A && git commit -m "old") + # Now re-bootstrap and build. The build is incremental because we were careful with the timestamps. + (cd worktree-image && ./bootstrap && make doc-html) env: MAKE: make -j2 SAGE_NUM_THREADS: 2 - name: Copy docs run: | + mkdir -p ./docs + # Create changelog + (cd /sage/local/share/doc/sage/html/en && git diff --name-only && rm -rf .git) | tee ./docs/CHANGES.txt + sed -E 's,(.*),

\1,' ./docs/CHANGES.txt > .docs/CHANGES.html # For some reason the deploy step below cannot find /sage/... # So copy everything from there to local folder # We also need to replace the symlinks because netlify is not following them - mkdir -p ./docs cp -r -L /sage/local/share/doc/sage/html/en/* ./docs # Zip everything for increased performance zip -r docs.zip docs From 29a3ae096e91f602be479c20216cd4929d4b0fa1 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 5 Jun 2023 15:58:52 -0700 Subject: [PATCH 09/26] build/pkgs/maxima/spkg-install.in: Patch out self-race --- build/pkgs/maxima/spkg-install.in | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/build/pkgs/maxima/spkg-install.in b/build/pkgs/maxima/spkg-install.in index cdb6fbf2069..ef044cbf010 100644 --- a/build/pkgs/maxima/spkg-install.in +++ b/build/pkgs/maxima/spkg-install.in @@ -20,6 +20,10 @@ cd src/ # Use newer version of config.guess and config.sub (see Trac #19734) cp "$SAGE_ROOT"/config/config.* . +# Patch out bad 'multiple targets' rule +# https://github.com/sagemath/sage/pull/35619#issuecomment-1567351409 +sed -i.bak 's/^maxima_singlepage.html //' doc/info/Makefile.in + # Note that maxima configure checks for git and, if it finds it, uses # versions information from the repo. See #15529. We disable this with # git_found=false From 7d9af59d6667fef4c12d0ed06eeed445c7997f61 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 5 Jun 2023 16:42:25 -0700 Subject: [PATCH 10/26] Fix up git acrobatics --- .github/workflows/build.yml | 3 ++- .github/workflows/doc-build.yml | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a9db05e9641..2abe99d8aae 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -64,7 +64,8 @@ jobs: git worktree add --detach worktree-image rm -rf /sage/.git && mv worktree-image/.git /sage/ rm -rf worktree-image && ln -s /sage worktree-image - (cd worktree-image && git commit --allow-empty -m "old" -a && git tag -f old && git reset --hard new && git reset old) + if [ ! -f worktree-image/.gitignore ]; then cp .gitignore worktree-image/; fi + (cd worktree-image && git add -A && git commit --allow-empty -m "old" -a && git tag -f old && git reset --hard new && git reset old) # Now re-bootstrap and build. The build is incremental because we were careful with the timestamps. # We run tests with "sage -t --new"; this only tests the uncommitted changes. (cd worktree-image && ./bootstrap && make build && ./sage -t --new -p2) diff --git a/.github/workflows/doc-build.yml b/.github/workflows/doc-build.yml index 2d0c2303829..fc69756a557 100644 --- a/.github/workflows/doc-build.yml +++ b/.github/workflows/doc-build.yml @@ -46,7 +46,8 @@ jobs: git worktree add --detach worktree-image rm -rf /sage/.git && mv worktree-image/.git /sage/ rm -rf worktree-image && ln -s /sage worktree-image - (cd worktree-image && git commit --allow-empty -m "old" -a && git tag -f old && git reset --hard new && git reset old) + if [ ! -f worktree-image/.gitignore ]; then cp .gitignore worktree-image/; fi + (cd worktree-image && git add -A && git commit --allow-empty -m "old" -a && git tag -f old && git reset --hard new && git reset old) # Keep track of changes to built HTML (cd /sage/local/share/doc/sage/html && git init && git add -A && git commit -m "old") # Now re-bootstrap and build. The build is incremental because we were careful with the timestamps. From a0e18d9c62e4d5f688afac505e0ffdf9c59763cf Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 5 Jun 2023 16:42:34 -0700 Subject: [PATCH 11/26] build/pkgs/info/spkg-configure.m4: Remove info file created in test --- build/pkgs/info/spkg-configure.m4 | 1 + 1 file changed, 1 insertion(+) diff --git a/build/pkgs/info/spkg-configure.m4 b/build/pkgs/info/spkg-configure.m4 index 85fe1ea4731..76ea2cc7565 100644 --- a/build/pkgs/info/spkg-configure.m4 +++ b/build/pkgs/info/spkg-configure.m4 @@ -9,6 +9,7 @@ SAGE_SPKG_CONFIGURE([info], [ AS_IF([makeinfo -c foo 2>&1 | grep -q invalid], [ dnl makeinfo found, but too old, and does not support all options that ecl likes to use sage_spkg_install_info=yes]) + rm -f stdin.info ]) ]) ]) From 36b9484ef9017070263d3a5db9c1c3bdf1e5d050 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 5 Jun 2023 16:42:57 -0700 Subject: [PATCH 12/26] .github/workflows/doc-publish.yml: Show link to CHANGES.html --- .github/workflows/doc-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/doc-publish.yml b/.github/workflows/doc-publish.yml index 351b3277f92..b7acc9b0a48 100644 --- a/.github/workflows/doc-publish.yml +++ b/.github/workflows/doc-publish.yml @@ -72,7 +72,7 @@ jobs: header: preview-comment recreate: true message: | - [Documentation preview for this PR](${{ steps.deploy-netlify.outputs.NETLIFY_URL }}) (built with commit ${{ steps.source-run-info.outputs.sourceHeadSha }}) is ready! :tada: + [Documentation preview for this PR](${{ steps.deploy-netlify.outputs.NETLIFY_URL }}) (built with commit ${{ steps.source-run-info.outputs.sourceHeadSha }}; [changes](${{ steps.deploy-netlify.outputs.NETLIFY_URL }}/CHANGES.html)) is ready! :tada: - name: Update deployment status PR check uses: myrotvorets/set-commit-status-action@1.1.6 From 5d13d8ff43180254fe8c5b467b6a81f4b90aca1b Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 5 Jun 2023 18:14:07 -0700 Subject: [PATCH 13/26] .github/workflows/doc-build.yml: Normalize Sage version in output before comparing --- .github/workflows/doc-build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/doc-build.yml b/.github/workflows/doc-build.yml index fc69756a557..7e8448ab515 100644 --- a/.github/workflows/doc-build.yml +++ b/.github/workflows/doc-build.yml @@ -49,7 +49,7 @@ jobs: if [ ! -f worktree-image/.gitignore ]; then cp .gitignore worktree-image/; fi (cd worktree-image && git add -A && git commit --allow-empty -m "old" -a && git tag -f old && git reset --hard new && git reset old) # Keep track of changes to built HTML - (cd /sage/local/share/doc/sage/html && git init && git add -A && git commit -m "old") + (cd /sage/local/share/doc/sage/html && find . -name "*.html" | xargs sed -i '/class="sidebar-brand-text"/s/Sage [0-9a-z.]* /Sage dev /'; git init && git add -A && git commit -m "old") # Now re-bootstrap and build. The build is incremental because we were careful with the timestamps. (cd worktree-image && ./bootstrap && make doc-html) env: @@ -60,8 +60,8 @@ jobs: run: | mkdir -p ./docs # Create changelog - (cd /sage/local/share/doc/sage/html/en && git diff --name-only && rm -rf .git) | tee ./docs/CHANGES.txt - sed -E 's,(.*),

\1,' ./docs/CHANGES.txt > .docs/CHANGES.html + (cd /sage/local/share/doc/sage/html/en && find . -name "*.html" | xargs sed -i '/class="sidebar-brand-text"/s/Sage [0-9a-z.]* /Sage dev /'; git diff --name-only && rm -rf .git) | tee ./docs/CHANGES.txt + sed -E 's,(.*),

\1,' ./docs/CHANGES.txt > ./docs/CHANGES.html # For some reason the deploy step below cannot find /sage/... # So copy everything from there to local folder # We also need to replace the symlinks because netlify is not following them From 2384f1db20bf565d5724b4a5f4a19a298a939f0e Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 5 Jun 2023 20:18:29 -0700 Subject: [PATCH 14/26] .github/workflows/doc-build.yml: Fix path --- .github/workflows/doc-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/doc-build.yml b/.github/workflows/doc-build.yml index 7e8448ab515..d099445d6e0 100644 --- a/.github/workflows/doc-build.yml +++ b/.github/workflows/doc-build.yml @@ -49,7 +49,7 @@ jobs: if [ ! -f worktree-image/.gitignore ]; then cp .gitignore worktree-image/; fi (cd worktree-image && git add -A && git commit --allow-empty -m "old" -a && git tag -f old && git reset --hard new && git reset old) # Keep track of changes to built HTML - (cd /sage/local/share/doc/sage/html && find . -name "*.html" | xargs sed -i '/class="sidebar-brand-text"/s/Sage [0-9a-z.]* /Sage dev /'; git init && git add -A && git commit -m "old") + (cd /sage/local/share/doc/sage/html/en && find . -name "*.html" | xargs sed -i '/class="sidebar-brand-text"/s/Sage [0-9a-z.]* /Sage dev /'; git init && git add -A && git commit -m "old") # Now re-bootstrap and build. The build is incremental because we were careful with the timestamps. (cd worktree-image && ./bootstrap && make doc-html) env: From f40fa16c7d7c0cec09224e7ddc9c31272192cdf5 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 5 Jun 2023 20:29:46 -0700 Subject: [PATCH 15/26] .github/workflows/doc-build.yml: Ignore some generated files for diff --- .github/workflows/doc-build.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/doc-build.yml b/.github/workflows/doc-build.yml index d099445d6e0..1964c6b79f2 100644 --- a/.github/workflows/doc-build.yml +++ b/.github/workflows/doc-build.yml @@ -49,7 +49,7 @@ jobs: if [ ! -f worktree-image/.gitignore ]; then cp .gitignore worktree-image/; fi (cd worktree-image && git add -A && git commit --allow-empty -m "old" -a && git tag -f old && git reset --hard new && git reset old) # Keep track of changes to built HTML - (cd /sage/local/share/doc/sage/html/en && find . -name "*.html" | xargs sed -i '/class="sidebar-brand-text"/s/Sage [0-9a-z.]* /Sage dev /'; git init && git add -A && git commit -m "old") + (cd /sage/local/share/doc/sage/html/en && find . -name "*.html" | xargs sed -i '/class="sidebar-brand-text"/s/Sage [0-9a-z.]* /Sage dev /'; git init && (echo ".buildinfo"; echo ".inv") > .gitignore; git add -A && git commit -m "old") # Now re-bootstrap and build. The build is incremental because we were careful with the timestamps. (cd worktree-image && ./bootstrap && make doc-html) env: @@ -58,9 +58,11 @@ jobs: - name: Copy docs run: | + set -ex mkdir -p ./docs # Create changelog - (cd /sage/local/share/doc/sage/html/en && find . -name "*.html" | xargs sed -i '/class="sidebar-brand-text"/s/Sage [0-9a-z.]* /Sage dev /'; git diff --name-only && rm -rf .git) | tee ./docs/CHANGES.txt + (cd /sage/local/share/doc/sage/html/en && find . -name "*.html" | xargs sed -i '/class="sidebar-brand-text"/s/Sage [0-9a-z.]* /Sage dev /'; git diff --name-only) | tee ./docs/CHANGES.txt + (cd /sage/local/share/doc/sage/html/en && git diff; rm -rf .git) | head -n400 sed -E 's,(.*),

\1,' ./docs/CHANGES.txt > ./docs/CHANGES.html # For some reason the deploy step below cannot find /sage/... # So copy everything from there to local folder From c865882d4f4e5babd2edbd1bbeb2da94a0a12ac2 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 6 Jun 2023 09:24:47 -0700 Subject: [PATCH 16/26] sage -t --new: Handle '# sage.doctest: optional' directives --- src/sage/doctest/control.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/sage/doctest/control.py b/src/sage/doctest/control.py index c2e9f927e05..abaa33f6239 100644 --- a/src/sage/doctest/control.py +++ b/src/sage/doctest/control.py @@ -866,11 +866,12 @@ def all_doc_sources(): data = line.strip().split(' ') status, filename = data[0], data[-1] if (set(status).issubset("MARCU") - and filename.startswith("src/sage") - and (filename.endswith(".py") or - filename.endswith(".pyx") or - filename.endswith(".rst"))): - self.files.append(os.path.relpath(opj(SAGE_ROOT,filename))) + and filename.startswith("src/sage") + and (filename.endswith(".py") or + filename.endswith(".pyx") or + filename.endswith(".rst")) + and not skipfile(opj(SAGE_ROOT, filename), self.options.optional)): + self.files.append(os.path.relpath(opj(SAGE_ROOT, filename))) def expand_files_into_sources(self): r""" From 21c524072fe0ef3f5dfeab3367d4cefbc6eb45ed Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 6 Jun 2023 12:01:59 -0700 Subject: [PATCH 17/26] build/pkgs/{ecl,maxima}: Make info an order-only dependency --- build/pkgs/ecl/dependencies | 2 +- build/pkgs/ecl/dependencies_order_only | 1 + build/pkgs/maxima/dependencies | 2 +- build/pkgs/maxima/dependencies_order_only | 1 + 4 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 build/pkgs/ecl/dependencies_order_only create mode 100644 build/pkgs/maxima/dependencies_order_only diff --git a/build/pkgs/ecl/dependencies b/build/pkgs/ecl/dependencies index 51a953403e9..cda6316bf5a 100644 --- a/build/pkgs/ecl/dependencies +++ b/build/pkgs/ecl/dependencies @@ -1,4 +1,4 @@ -$(MP_LIBRARY) readline gc libffi info +$(MP_LIBRARY) readline gc libffi ---------- All lines of this file are ignored except the first. diff --git a/build/pkgs/ecl/dependencies_order_only b/build/pkgs/ecl/dependencies_order_only new file mode 100644 index 00000000000..55021245387 --- /dev/null +++ b/build/pkgs/ecl/dependencies_order_only @@ -0,0 +1 @@ +info diff --git a/build/pkgs/maxima/dependencies b/build/pkgs/maxima/dependencies index 55c7e0d8d14..fffb89e2050 100644 --- a/build/pkgs/maxima/dependencies +++ b/build/pkgs/maxima/dependencies @@ -1,4 +1,4 @@ -ecl info +ecl ---------- All lines of this file are ignored except the first. diff --git a/build/pkgs/maxima/dependencies_order_only b/build/pkgs/maxima/dependencies_order_only new file mode 100644 index 00000000000..55021245387 --- /dev/null +++ b/build/pkgs/maxima/dependencies_order_only @@ -0,0 +1 @@ +info From eb0ef342fb9810a17b350040573209566ce9f444 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 6 Jun 2023 12:33:27 -0700 Subject: [PATCH 18/26] .github/workflows/doc-build.yml: Fall back to non-incremental build&docbuild on error --- .github/workflows/build.yml | 9 ++++++--- .github/workflows/doc-build.yml | 20 +++++++++++++++++++- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2abe99d8aae..e65542d5cf1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -39,9 +39,8 @@ jobs: eval $(sage-print-system-package-command auto update) eval $(sage-print-system-package-command auto --spkg --yes --no-install-recommends install git) - - name: Incremental build and test - if: always() && steps.prepare.outcome == 'success' - id: incremental + - name: Add prebuilt tree as a worktree + id: worktree run: | set -ex git config --global user.email "ci-sage@example.com" @@ -66,6 +65,10 @@ jobs: rm -rf worktree-image && ln -s /sage worktree-image if [ ! -f worktree-image/.gitignore ]; then cp .gitignore worktree-image/; fi (cd worktree-image && git add -A && git commit --allow-empty -m "old" -a && git tag -f old && git reset --hard new && git reset old) + + - name: Incremental build and test + id: incremental + run: | # Now re-bootstrap and build. The build is incremental because we were careful with the timestamps. # We run tests with "sage -t --new"; this only tests the uncommitted changes. (cd worktree-image && ./bootstrap && make build && ./sage -t --new -p2) diff --git a/.github/workflows/doc-build.yml b/.github/workflows/doc-build.yml index 1964c6b79f2..9215c2f4898 100644 --- a/.github/workflows/doc-build.yml +++ b/.github/workflows/doc-build.yml @@ -23,7 +23,8 @@ jobs: run: | apt-get update && apt-get install -y git zip - - name: Build + - name: Add prebuilt tree as a worktree + id: worktree run: | set -ex git config --global user.email "ci-sage@example.com" @@ -50,13 +51,29 @@ jobs: (cd worktree-image && git add -A && git commit --allow-empty -m "old" -a && git tag -f old && git reset --hard new && git reset old) # Keep track of changes to built HTML (cd /sage/local/share/doc/sage/html/en && find . -name "*.html" | xargs sed -i '/class="sidebar-brand-text"/s/Sage [0-9a-z.]* /Sage dev /'; git init && (echo ".buildinfo"; echo ".inv") > .gitignore; git add -A && git commit -m "old") + + - name: Incremental build + id: incremental + run: | # Now re-bootstrap and build. The build is incremental because we were careful with the timestamps. (cd worktree-image && ./bootstrap && make doc-html) env: MAKE: make -j2 SAGE_NUM_THREADS: 2 + - name: Build (fallback to non-incremental) + id: build + if: always() && steps.worktree.outcome == 'success' && steps.incremental.outcome != 'success' + run: | + set -ex + (cd worktree-image && ./bootstrap && make doc-clean doc-uninstall sagelib-clean && git clean -fx src/sage && ./config.status && make doc-html) + env: + MAKE: make -j2 + SAGE_NUM_THREADS: 2 + - name: Copy docs + id: copy + if: always() && (steps.incremental.outcome == 'success' || steps.build.outcome == 'success') run: | set -ex mkdir -p ./docs @@ -72,6 +89,7 @@ jobs: zip -r docs.zip docs - name: Upload docs + if: always() && steps.copy.outcome == 'success' uses: actions/upload-artifact@v3 with: name: docs From a423367223d9367608ff520064098457bfa2470f Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 6 Jun 2023 16:38:28 -0700 Subject: [PATCH 19/26] .github/workflows/build.yml: Also do the main test in worktree-image --- .github/workflows/build.yml | 47 +++++++++++++++++++-------------- .github/workflows/doc-build.yml | 10 ++++--- 2 files changed, 33 insertions(+), 24 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e65542d5cf1..af3d797f73a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -66,49 +66,55 @@ jobs: if [ ! -f worktree-image/.gitignore ]; then cp .gitignore worktree-image/; fi (cd worktree-image && git add -A && git commit --allow-empty -m "old" -a && git tag -f old && git reset --hard new && git reset old) - - name: Incremental build and test + - name: Incremental build and test --new id: incremental run: | # Now re-bootstrap and build. The build is incremental because we were careful with the timestamps. # We run tests with "sage -t --new"; this only tests the uncommitted changes. - (cd worktree-image && ./bootstrap && make build && ./sage -t --new -p2) + ./bootstrap && make build && ./sage -t --new -p2 + working-directory: ./worktree-image env: MAKE: make -j2 SAGE_NUM_THREADS: 2 - name: Configure new tree - if: always() && steps.prepare.outcome == 'success' + if: always() && steps.worktree.outcome == 'success' run: | # Reuse built SAGE_LOCAL contained in the Docker image ./bootstrap ./configure --enable-build-as-root --prefix=/sage/local --with-sage-venv --enable-editable --enable-download-from-upstream-url - name: Build and test modularized distributions - if: always() && steps.prepare.outcome == 'success' + if: always() && steps.worktree.outcome == 'success' run: make V=0 tox && make pypi-wheels + working-directory: ./worktree-image env: MAKE: make -j2 SAGE_NUM_THREADS: 2 - name: Set up node to install pyright - if: always() && steps.prepare.outcome == 'success' + if: always() && steps.worktree.outcome == 'success' uses: actions/setup-node@v3 with: node-version: '12' - name: Install pyright - if: always() && steps.prepare.outcome == 'success' + if: always() && steps.worktree.outcome == 'success' # Fix to v232 due to bug https://github.com/microsoft/pyright/issues/3239 run: npm install -g pyright@1.1.232 - name: Static code check with pyright - if: always() && steps.prepare.outcome == 'success' - run: pyright - - - name: Build + if: always() && steps.worktree.outcome == 'success' + run: pyright + working-directory: ./worktree-image + + - name: Build (fallback to non-incremental) id: build - if: always() && steps.prepare.outcome == 'success' - run: make build + if: always() && steps.worktree.outcome == 'success' && steps.incremental.outcome != 'success' + run: | + set -ex + ./bootstrap && make doc-clean doc-uninstall sagelib-clean && git clean -fx src/sage && ./config.status && make build + working-directory: ./worktree-image env: MAKE: make -j2 SAGE_NUM_THREADS: 2 @@ -118,27 +124,28 @@ jobs: run: | ../sage -python -m pip install coverage pytest-xdist ../sage -python -m coverage run -m pytest -c tox.ini --doctest-modules || true - working-directory: ./src + working-directory: ./worktree-image/src env: # Increase the length of the lines in the "short summary" COLUMNS: 120 - - name: Test - if: always() && steps.build.outcome == 'success' + - name: Test --all --long + if: always() && (steps.incremental.outcome == 'success' || steps.build.outcome == 'success') run: | ../sage -python -m pip install coverage ../sage -python -m coverage run ./bin/sage-runtests --all --long -p2 --random-seed=286735480429121101562228604801325644303 - working-directory: ./src + working-directory: ./worktree-image/src - name: Prepare coverage results - if: always() && steps.build.outcome == 'success' + if: always() && (steps.incremental.outcome == 'success' || steps.build.outcome == 'success') run: | ./venv/bin/python3 -m coverage combine src/.coverage/ ./venv/bin/python3 -m coverage xml find . -name *coverage* - + working-directory: ./worktree-image + - name: Upload coverage to codecov - if: always() && steps.build.outcome == 'success' + if: always() && (steps.incremental.outcome == 'success' || steps.build.outcome == 'success') uses: codecov/codecov-action@v3 with: - files: ./coverage.xml + files: ./worktree-image/coverage.xml diff --git a/.github/workflows/doc-build.yml b/.github/workflows/doc-build.yml index 9215c2f4898..97bc2b943f4 100644 --- a/.github/workflows/doc-build.yml +++ b/.github/workflows/doc-build.yml @@ -52,21 +52,23 @@ jobs: # Keep track of changes to built HTML (cd /sage/local/share/doc/sage/html/en && find . -name "*.html" | xargs sed -i '/class="sidebar-brand-text"/s/Sage [0-9a-z.]* /Sage dev /'; git init && (echo ".buildinfo"; echo ".inv") > .gitignore; git add -A && git commit -m "old") - - name: Incremental build + - name: Incremental build and docbuild id: incremental run: | # Now re-bootstrap and build. The build is incremental because we were careful with the timestamps. - (cd worktree-image && ./bootstrap && make doc-html) + ./bootstrap && make doc-html + working-directory: ./worktree-image env: MAKE: make -j2 SAGE_NUM_THREADS: 2 - - name: Build (fallback to non-incremental) + - name: Build and docbuild (fallback to non-incremental) id: build if: always() && steps.worktree.outcome == 'success' && steps.incremental.outcome != 'success' run: | set -ex - (cd worktree-image && ./bootstrap && make doc-clean doc-uninstall sagelib-clean && git clean -fx src/sage && ./config.status && make doc-html) + ./bootstrap && make doc-clean doc-uninstall sagelib-clean && git clean -fx src/sage && ./config.status && make doc-html + working-directory: ./worktree-image env: MAKE: make -j2 SAGE_NUM_THREADS: 2 From 506db04ace018706f9692d597bac1a4349ef95ac Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 6 Jun 2023 17:10:56 -0700 Subject: [PATCH 20/26] .github/workflows/build.yml: Remove an obsolete step --- .github/workflows/build.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index af3d797f73a..2116ef2d515 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -77,13 +77,6 @@ jobs: MAKE: make -j2 SAGE_NUM_THREADS: 2 - - name: Configure new tree - if: always() && steps.worktree.outcome == 'success' - run: | - # Reuse built SAGE_LOCAL contained in the Docker image - ./bootstrap - ./configure --enable-build-as-root --prefix=/sage/local --with-sage-venv --enable-editable --enable-download-from-upstream-url - - name: Build and test modularized distributions if: always() && steps.worktree.outcome == 'success' run: make V=0 tox && make pypi-wheels From 9f30a8dae7ace441c536d77b8af32d17521ef7d4 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 6 Jun 2023 21:08:23 -0700 Subject: [PATCH 21/26] .github/workflows/doc-build.yml: Include diff in zip --- .github/workflows/doc-build.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/doc-build.yml b/.github/workflows/doc-build.yml index 97bc2b943f4..a94916f37d7 100644 --- a/.github/workflows/doc-build.yml +++ b/.github/workflows/doc-build.yml @@ -80,9 +80,11 @@ jobs: set -ex mkdir -p ./docs # Create changelog + echo '## Preview of CHANGES.html' (cd /sage/local/share/doc/sage/html/en && find . -name "*.html" | xargs sed -i '/class="sidebar-brand-text"/s/Sage [0-9a-z.]* /Sage dev /'; git diff --name-only) | tee ./docs/CHANGES.txt - (cd /sage/local/share/doc/sage/html/en && git diff; rm -rf .git) | head -n400 - sed -E 's,(.*),

\1,' ./docs/CHANGES.txt > ./docs/CHANGES.html + (cd /sage/local/share/doc/sage/html/en && git diff; rm -rf .git) > ./docs/html.diff + echo '## Preview of html.diff'; head -n 400 ./docs/html.diff + (echo '

HTML diff'; sed -E 's,(.*),

\1,' ./docs/CHANGES.txt) > ./docs/CHANGES.html # For some reason the deploy step below cannot find /sage/... # So copy everything from there to local folder # We also need to replace the symlinks because netlify is not following them From b13cbf4c381a983dd62f8595cc7e9ee7b3fbc5da Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Wed, 7 Jun 2023 07:55:30 -0700 Subject: [PATCH 22/26] .github/workflows/doc-build.yml: Reduce verbosity --- .github/workflows/doc-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/doc-build.yml b/.github/workflows/doc-build.yml index a94916f37d7..dde57a7057f 100644 --- a/.github/workflows/doc-build.yml +++ b/.github/workflows/doc-build.yml @@ -50,7 +50,7 @@ jobs: if [ ! -f worktree-image/.gitignore ]; then cp .gitignore worktree-image/; fi (cd worktree-image && git add -A && git commit --allow-empty -m "old" -a && git tag -f old && git reset --hard new && git reset old) # Keep track of changes to built HTML - (cd /sage/local/share/doc/sage/html/en && find . -name "*.html" | xargs sed -i '/class="sidebar-brand-text"/s/Sage [0-9a-z.]* /Sage dev /'; git init && (echo ".buildinfo"; echo ".inv") > .gitignore; git add -A && git commit -m "old") + (cd /sage/local/share/doc/sage/html/en && find . -name "*.html" | xargs sed -i '/class="sidebar-brand-text"/s/Sage [0-9a-z.]* /Sage dev /'; git init && (echo ".buildinfo"; echo ".inv") > .gitignore; git add -A && git commit --quiet -m "old") - name: Incremental build and docbuild id: incremental From 136337ceceac4c5b911aafecc284e354a9d8ca60 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Wed, 7 Jun 2023 07:55:46 -0700 Subject: [PATCH 23/26] .github/workflows/doc-build.yml: Remove redundant bootstrap --- .github/workflows/doc-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/doc-build.yml b/.github/workflows/doc-build.yml index dde57a7057f..dd1a0364fa5 100644 --- a/.github/workflows/doc-build.yml +++ b/.github/workflows/doc-build.yml @@ -67,7 +67,7 @@ jobs: if: always() && steps.worktree.outcome == 'success' && steps.incremental.outcome != 'success' run: | set -ex - ./bootstrap && make doc-clean doc-uninstall sagelib-clean && git clean -fx src/sage && ./config.status && make doc-html + make doc-clean doc-uninstall sagelib-clean && git clean -fx src/sage && ./config.status && make doc-html working-directory: ./worktree-image env: MAKE: make -j2 From a29d22e9c9ef69296facbb3503eb1ba34985cdce Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Mon, 12 Jun 2023 13:11:35 +0900 Subject: [PATCH 24/26] Add note on a doctest that randomly behaves --- src/sage/doctest/test.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/sage/doctest/test.py b/src/sage/doctest/test.py index a36b3caf64f..60075a53578 100644 --- a/src/sage/doctest/test.py +++ b/src/sage/doctest/test.py @@ -251,17 +251,24 @@ Even though the doctester master process has exited, the child process is still alive, but it should be killed automatically -after the `die_timeout` given above (10 seconds):: +after the ``die_timeout`` given above (10 seconds):: sage: pid = int(open(F).read()) # long time sage: time.sleep(2) # long time sage: os.kill(pid, signal.SIGQUIT) # long time; 2 seconds passed => still alive sage: time.sleep(8) # long time - sage: os.kill(pid, signal.SIGQUIT) # long time; 10 seconds passed => dead + sage: os.kill(pid, signal.SIGQUIT) # long time; 10 seconds passed => dead # random Traceback (most recent call last): ... ProcessLookupError: ... +If the child process is dead and removed, the last output should be as above. +However, the child process interrupted its parent process (see +``"interrupt_diehard.rst"``), and became an orphan process. Depending on the +system, an orphan process may eventually become a zombie process instead of +being removed, and then the last output would just be a blank. Hence the ``# +random`` tag. + Test a doctest failing with ``abort()``:: sage: subprocess.call(["sage", "-t", "--warn-long", "0", # long time From 2e5d4ce0588dbbfce90de7c1427ed7a2752a448b Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 12 Jun 2023 08:40:31 -0700 Subject: [PATCH 25/26] .github/workflows/doc-build.yml: Build docs non-incrementally --- .github/workflows/doc-build.yml | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/.github/workflows/doc-build.yml b/.github/workflows/doc-build.yml index dd1a0364fa5..01748c3c823 100644 --- a/.github/workflows/doc-build.yml +++ b/.github/workflows/doc-build.yml @@ -52,19 +52,32 @@ jobs: # Keep track of changes to built HTML (cd /sage/local/share/doc/sage/html/en && find . -name "*.html" | xargs sed -i '/class="sidebar-brand-text"/s/Sage [0-9a-z.]* /Sage dev /'; git init && (echo ".buildinfo"; echo ".inv") > .gitignore; git add -A && git commit --quiet -m "old") - - name: Incremental build and docbuild + - name: Incremental build id: incremental run: | # Now re-bootstrap and build. The build is incremental because we were careful with the timestamps. - ./bootstrap && make doc-html + ./bootstrap && make build working-directory: ./worktree-image env: MAKE: make -j2 SAGE_NUM_THREADS: 2 - - name: Build and docbuild (fallback to non-incremental) + - name: Build (fallback to non-incremental) id: build if: always() && steps.worktree.outcome == 'success' && steps.incremental.outcome != 'success' + run: | + set -ex + make doc-clean doc-uninstall sagelib-clean && git clean -fx src/sage && ./config.status && make build + working-directory: ./worktree-image + env: + MAKE: make -j2 + SAGE_NUM_THREADS: 2 + + - name: Build docs + id: docbuild + if: always() && (steps.incremental.outcome == 'success' || steps.build.outcome == 'success') + # Always non-incremental because of the concern that + # incremental docbuild may introduce broken links (inter-file references) though build succeeds run: | set -ex make doc-clean doc-uninstall sagelib-clean && git clean -fx src/sage && ./config.status && make doc-html @@ -75,7 +88,7 @@ jobs: - name: Copy docs id: copy - if: always() && (steps.incremental.outcome == 'success' || steps.build.outcome == 'success') + if: always() && steps.docbuild.outcome == 'success' run: | set -ex mkdir -p ./docs From 908ad71a143b6c5ac3bc336bb5470f990791923c Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 12 Jun 2023 16:44:48 -0700 Subject: [PATCH 26/26] .github/workflows/build.yml: Reword test steps --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2116ef2d515..ea2cb1aa79d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -66,7 +66,7 @@ jobs: if [ ! -f worktree-image/.gitignore ]; then cp .gitignore worktree-image/; fi (cd worktree-image && git add -A && git commit --allow-empty -m "old" -a && git tag -f old && git reset --hard new && git reset old) - - name: Incremental build and test --new + - name: Incremental build, test changed files (sage -t --new) id: incremental run: | # Now re-bootstrap and build. The build is incremental because we were careful with the timestamps. @@ -122,7 +122,7 @@ jobs: # Increase the length of the lines in the "short summary" COLUMNS: 120 - - name: Test --all --long + - name: Test all files (sage -t --all --long) if: always() && (steps.incremental.outcome == 'success' || steps.build.outcome == 'success') run: | ../sage -python -m pip install coverage