Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/develop' into rel_import_categ…
Browse files Browse the repository at this point in the history
…ories
  • Loading branch information
tobiasdiez authored Nov 26, 2023
2 parents bafc803 + f10820f commit df2f18d
Show file tree
Hide file tree
Showing 90 changed files with 457 additions and 317 deletions.
20 changes: 10 additions & 10 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -96,15 +96,15 @@ jobs:
SAGE_NUM_THREADS: 2

- name: Build modularized distributions
if: always() && steps.worktree.outcome == 'success'
if: (success() || failure()) && steps.worktree.outcome == 'success'
run: make V=0 tox && make SAGE_CHECK=no pypi-wheels
working-directory: ./worktree-image
env:
MAKE: make -j2 --output-sync=recurse
SAGE_NUM_THREADS: 2

- name: Static code check with pyright
if: always() && steps.worktree.outcome == 'success'
if: (success() || failure()) && steps.worktree.outcome == 'success'
uses: jakebailey/pyright-action@v1
with:
version: 1.1.332
Expand All @@ -116,7 +116,7 @@ jobs:
NODE_OPTIONS: --max-old-space-size=8192

- name: Static code check with pyright (annotated)
if: always() && steps.worktree.outcome == 'success'
if: (success() || failure()) && steps.worktree.outcome == 'success'
uses: jakebailey/pyright-action@v1
with:
version: 1.1.332
Expand All @@ -130,7 +130,7 @@ jobs:

- name: Clean (fallback to non-incremental)
id: clean
if: always() && steps.worktree.outcome == 'success' && steps.incremental.outcome != 'success'
if: (success() || failure()) && 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
Expand All @@ -143,7 +143,7 @@ jobs:
# This step is needed because building the modularized distributions installs some optional packages,
# so the editable install of sagelib needs to build the corresponding optional extension modules.
id: build
if: always() && (steps.incremental.outcome == 'success' || steps.clean.outcome == 'success')
if: (success() || failure()) && (steps.incremental.outcome == 'success' || steps.clean.outcome == 'success')
run: |
make build
working-directory: ./worktree-image
Expand All @@ -154,7 +154,7 @@ jobs:
# Testing

- name: Test changed files (sage -t --new)
if: always() && steps.build.outcome == 'success'
if: (success() || failure()) && steps.build.outcome == 'success'
run: |
# We run tests with "sage -t --new"; this only tests the uncommitted changes.
./sage -t --new -p2
Expand All @@ -164,7 +164,7 @@ jobs:
SAGE_NUM_THREADS: 2

- name: Test modularized distributions
if: always() && steps.build.outcome == 'success'
if: (success() || failure()) && steps.build.outcome == 'success'
run: make V=0 tox && make pypi-wheels-check
working-directory: ./worktree-image
env:
Expand All @@ -182,14 +182,14 @@ jobs:
COLUMNS: 120

- name: Test all files (sage -t --all --long)
if: always() && steps.build.outcome == 'success'
if: (success() || failure()) && 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: ./worktree-image/src

- name: Prepare coverage results
if: always() && steps.build.outcome == 'success'
if: (success() || failure()) && steps.build.outcome == 'success'
run: |
./venv/bin/python3 -m coverage combine src/.coverage/
./venv/bin/python3 -m coverage xml
Expand All @@ -198,7 +198,7 @@ jobs:
working-directory: ./worktree-image

- name: Upload coverage to codecov
if: always() && steps.build.outcome == 'success'
if: (success() || failure()) && steps.build.outcome == 'success'
uses: codecov/codecov-action@v3
with:
directory: ./worktree-image/coverage-report
18 changes: 11 additions & 7 deletions .github/workflows/ci-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,9 @@ jobs:
tox_packages_factors: >-
["standard"]
docker_push_repository: ghcr.io/${{ github.repository }}/
# Reduce from 30 to 25 because it runs in parallel with 'standard-sitepackages' below
max_parallel: 25
# Reduce from 30 to 20 because it runs in parallel with 'standard-sitepackages'
# and 'minimal-pre' below
max_parallel: 20

standard-sitepackages:
if: ${{ success() || failure() }}
Expand Down Expand Up @@ -135,7 +136,7 @@ jobs:
"opensuse-tumbleweed",
"debian-bullseye-i386"]
docker_push_repository: ghcr.io/${{ github.repository }}/
max_parallel: 10
max_parallel: 8

minimal-pre:
if: ${{ success() || failure() }}
Expand All @@ -148,9 +149,9 @@ jobs:
tox_packages_factors: >-
["minimal"]
docker_push_repository: ghcr.io/${{ github.repository }}/
# Reduced from 30 because it may run in parallel with 'standard-sitepackages' above.
# 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: 20
max_parallel: 24

minimal:
if: ${{ success() || failure() }}
Expand All @@ -169,6 +170,7 @@ jobs:
tox_packages_factors: >-
["minimal"]
docker_push_repository: ghcr.io/${{ github.repository }}/
max_parallel: 24

maximal-pre:
if: ${{ success() || failure() }}
Expand Down Expand Up @@ -196,7 +198,8 @@ jobs:
tox_packages_factors: >-
["maximal"]
docker_targets: "with-targets-optional"
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 ^[0-o]))'
# [0-9a-o] excludes _, 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 ^[0-9a-o]))'


optional-p-z:
Expand All @@ -211,6 +214,7 @@ jobs:
tox_packages_factors: >-
["maximal"]
docker_targets: "with-targets-optional"
# [0-9a-o] excludes _, 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 ^[p-z]))'

experimental-0-o:
Expand All @@ -225,7 +229,7 @@ jobs:
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 | grep ^[0-o]))'
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 | grep ^[0-9a-o]))'

experimental-p-z:
if: ${{ success() || failure() }}
Expand Down
7 changes: 6 additions & 1 deletion .github/workflows/ci-macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,30 +40,35 @@ jobs:
with:
stage: "2"
needs: [stage-1]
if: ${{ success() || failure() }}

stage-2-optional-0-o:
uses: ./.github/workflows/macos.yml
with:
stage: "2-optional-0-o"
needs: [stage-2]
if: ${{ success() || failure() }}

stage-2-optional-p-z:
uses: ./.github/workflows/macos.yml
with:
stage: "2-optional-p-z"
needs: [stage-2-optional-0-o]
if: ${{ success() || failure() }}

stage-2-experimental-0-o:
uses: ./.github/workflows/macos.yml
with:
stage: "2-optional-0-o"
needs: [stage-2-optional-p-z]
if: ${{ success() || failure() }}

stage-2-experimental-p-z:
uses: ./.github/workflows/macos.yml
with:
stage: "2-experimental-p-z"
needs: [stage-2-experimental-0-o]
if: ${{ success() || failure() }}

dist:

Expand All @@ -85,7 +90,7 @@ jobs:
run: |
git config --global user.email "nobody@example.com"
git config --global user.name "Sage GitHub CI"
SAGE_ROOT=. SAGE_SRC=./src src/bin/sage-update-version $(git describe) || echo "(ignoring error)"
SAGE_ROOT=. SAGE_SRC=./src src/bin/sage-update-version $(git describe --tags) || echo "(ignoring error)"
- name: make dist
run: |
./configure --enable-download-from-upstream-url && make dist
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/doc-build-pdf.yml
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ jobs:

- name: Build (fallback to non-incremental)
id: build
if: always() && steps.worktree.outcome == 'success' && steps.incremental.outcome != 'success'
if: (success() || failure()) && steps.worktree.outcome == 'success' && steps.incremental.outcome != 'success'
run: |
set -ex
make sagelib-clean && git clean -fx src/sage && ./config.status && make build
Expand All @@ -103,7 +103,7 @@ jobs:

- name: Build docs (PDF)
id: docbuild
if: always() && (steps.incremental.outcome == 'success' || steps.build.outcome == 'success')
if: (success() || failure()) && (steps.incremental.outcome == 'success' || steps.build.outcome == 'success')
run: |
make doc-clean doc-uninstall; make sagemath_doc_html-build-deps sagemath_doc_pdf-no-deps
working-directory: ./worktree-image
Expand All @@ -113,7 +113,7 @@ jobs:

- name: Copy docs
id: copy
if: always() && steps.docbuild.outcome == 'success'
if: (success() || failure()) && steps.docbuild.outcome == 'success'
run: |
# For some reason the deploy step below cannot find /sage/...
# So copy everything from there to local folder
Expand All @@ -123,7 +123,7 @@ jobs:
zip -r docs-pdf.zip docs
- name: Upload docs
if: always() && steps.copy.outcome == 'success'
if: (success() || failure()) && steps.copy.outcome == 'success'
uses: actions/upload-artifact@v3
with:
name: docs-pdf
Expand Down
9 changes: 4 additions & 5 deletions .github/workflows/doc-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ jobs:

- name: Build (fallback to non-incremental)
id: build
if: always() && steps.worktree.outcome == 'success' && steps.incremental.outcome != 'success'
if: (success() || failure()) && steps.worktree.outcome == 'success' && steps.incremental.outcome != 'success'
run: |
set -ex
make sagelib-clean && git clean -fx src/sage && ./config.status && make sagemath_doc_html-build-deps
Expand All @@ -110,7 +110,7 @@ jobs:

- name: Build docs
id: docbuild
if: always() && (steps.incremental.outcome == 'success' || steps.build.outcome == 'success')
if: (success() || failure()) && (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: |
Expand All @@ -127,7 +127,7 @@ jobs:

- name: Copy docs
id: copy
if: always() && steps.docbuild.outcome == 'success'
if: (success() || failure()) && steps.docbuild.outcome == 'success'
run: |
set -ex
mkdir -p ./docs
Expand Down Expand Up @@ -182,7 +182,6 @@ jobs:
echo '</body>' >> ./docs/CHANGES.html
echo '</html>' >>./docs/CHANGES.html
rm ./docs/diff.txt ./docs/diff.html
(cd /sage/local/share/doc/sage/html && git reset --hard HEAD)
# 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
Expand All @@ -192,7 +191,7 @@ jobs:
zip -r docs.zip docs
- name: Upload docs
if: always() && steps.copy.outcome == 'success'
if: (success() || failure()) && steps.copy.outcome == 'success'
uses: actions/upload-artifact@v3
with:
name: docs
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/doc-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ jobs:
publish-live-doc:
runs-on: ubuntu-latest
if: github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.head_branch == 'develop'
if: github.event.workflow_run.conclusion == 'success' && github.repository == 'sagemath/sage' && github.event.workflow_run.head_branch == 'develop'
steps:
- name: Download live doc
uses: actions/github-script@v6.4.1
Expand Down
11 changes: 9 additions & 2 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,14 +51,13 @@ on:
"almalinux-9-python3.11",
"gentoo-python3.10",
"gentoo-python3.11",
"gentoo-python3.12",
"archlinux-latest",
"opensuse-15.3-gcc_11-python3.9",
"opensuse-15.4-gcc_11-python3.10",
"opensuse-15.5-gcc_11-python3.11",
"opensuse-tumbleweed-python3.10",
"opensuse-tumbleweed",
"conda-forge",
"conda-forge-python3.11",
"ubuntu-bionic-gcc_8-i386",
"debian-bullseye-i386",
]
Expand All @@ -79,6 +78,10 @@ on:
free_disk_space:
default: false
type: boolean
timeout:
description: 'Elapsed time (seconds) at which to kill the build'
default: 20000
type: number
#
# Publishing to GitHub Packages
#
Expand Down Expand Up @@ -191,6 +194,9 @@ jobs:
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
Expand Down Expand Up @@ -222,6 +228,7 @@ jobs:
if: inputs.free_disk_space
- name: Configure and build Sage distribution within a Docker container
run: |
(sleep ${{ inputs.timeout }}; for id in $(docker ps -q); do docker exec $id pkill make; done) &
set -o pipefail; EXTRA_DOCKER_BUILD_ARGS="--build-arg NUMPROC=4 --build-arg USE_MAKEFLAGS=\"-k V=0 SAGE_NUM_THREADS=3\"" tox -e $TOX_ENV -- $TARGETS 2>&1 | sed "/^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: |
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,13 @@ jobs:
run: pip install tox

- name: Code style check with pycodestyle
if: always() && steps.deps.outcome == 'success'
if: (success() || failure()) && steps.deps.outcome == 'success'
run: tox -e pycodestyle-minimal

- name: Code style check with relint
if: always() && steps.deps.outcome == 'success'
if: (success() || failure()) && steps.deps.outcome == 'success'
run: tox -e relint -- src/sage/

- name: Validate docstring markup as RST
if: always() && steps.deps.outcome == 'success'
if: (success() || failure()) && steps.deps.outcome == 'success'
run: tox -e rst
19 changes: 9 additions & 10 deletions .github/workflows/macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,15 @@ on:
osversion_xcodeversion_toxenv_tuples:
description: 'Stringified JSON object'
default: >-
[["latest", "", "homebrew-macos-usrlocal-minimal"],
["latest", "", "homebrew-macos-usrlocal-standard"],
["11", "xcode_11.7", "homebrew-macos-usrlocal-standard"],
["12", "", "homebrew-macos-usrlocal-standard"],
["13", "xcode_15.0", "homebrew-macos-usrlocal-standard"],
["latest", "", "homebrew-macos-usrlocal-maximal"],
["latest", "", "homebrew-macos-usrlocal-python3_xcode-standard"],
["latest", "", "conda-forge-macos-minimal"],
["latest", "", "conda-forge-macos-standard"],
["latest", "", "conda-forge-macos-maximal"]]
[["latest", "", "homebrew-macos-usrlocal-minimal"],
["latest", "", "homebrew-macos-usrlocal-standard"],
["11", "xcode_13.2.1", "homebrew-macos-usrlocal-minimal"],
["12", "", "homebrew-macos-usrlocal-standard"],
["13", "xcode_15.0", "homebrew-macos-usrlocal-standard"],
["latest", "", "homebrew-macos-usrlocal-maximal"],
["latest", "", "homebrew-macos-usrlocal-python3_xcode-standard"],
["latest", "", "conda-forge-macos-minimal"],
["latest", "", "conda-forge-macos-standard"]]
type: string
extra_sage_packages:
description: 'Extra Sage packages to install as system packages'
Expand Down
4 changes: 2 additions & 2 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ title: SageMath
abstract: SageMath is a free open-source mathematics software system.
authors:
- name: "The SageMath Developers"
version: 10.2.rc0
version: 10.2.rc4
doi: 10.5281/zenodo.593563
date-released: 2023-11-05
date-released: 2023-11-17
repository-code: "https://github.com/sagemath/sage"
url: "https://www.sagemath.org/"
2 changes: 1 addition & 1 deletion VERSION.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
SageMath version 10.2.rc0, Release Date: 2023-11-05
SageMath version 10.2.rc4, Release Date: 2023-11-17
Loading

0 comments on commit df2f18d

Please sign in to comment.