Skip to content

Commit

Permalink
Merge branch 'develop' into add-pull-from-function-field
Browse files Browse the repository at this point in the history
  • Loading branch information
kwankyu authored Nov 19, 2023
2 parents f3ea756 + f10820f commit 0c4cbce
Show file tree
Hide file tree
Showing 71 changed files with 258 additions and 198 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
5 changes: 5 additions & 0 deletions .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 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
8 changes: 4 additions & 4 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 @@ -191,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
5 changes: 5 additions & 0 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,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 @@ -224,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
5 changes: 2 additions & 3 deletions .github/workflows/macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,13 @@ on:
default: >-
[["latest", "", "homebrew-macos-usrlocal-minimal"],
["latest", "", "homebrew-macos-usrlocal-standard"],
["11", "xcode_13.2.1", "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"],
["latest", "", "conda-forge-macos-maximal"]]
["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.rc2
version: 10.2.rc4
doi: 10.5281/zenodo.593563
date-released: 2023-11-12
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.rc2, Release Date: 2023-11-12
SageMath version 10.2.rc4, Release Date: 2023-11-17
9 changes: 8 additions & 1 deletion build/make/install
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,17 @@ if $MAKE -q "$@" >/dev/null 2>/dev/null; then
fi

# Dump environment for debugging purposes:
echo "*** ALL ENVIRONMENT VARIABLES BEFORE BUILD: ***"
if [ -n "$GITHUB_ACTIONS" ]; then
echo "::group::*** ALL ENVIRONMENT VARIABLES BEFORE BUILD: ***"
else
echo "*** ALL ENVIRONMENT VARIABLES BEFORE BUILD: ***"
fi
env | sort
printf '\E[m'
echo "***********************************************"
if [ -n "$GITHUB_ACTIONS" ]; then
echo "::endgroup::"
fi

# look_for_errors: search log files for error messages and print a summary.
# arguments:
Expand Down
1 change: 1 addition & 0 deletions build/pkgs/_prereq/distros/opensuse.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
binutils
make
m4
gawk
perl
python3
tar
Expand Down
2 changes: 1 addition & 1 deletion build/pkgs/_python3.10/distros/conda.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
python==3.10
python=3.10
2 changes: 1 addition & 1 deletion build/pkgs/_python3.11/distros/conda.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
python==3.11
python=3.11
2 changes: 1 addition & 1 deletion build/pkgs/_python3.12/distros/conda.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
python==3.12
python=3.12
2 changes: 1 addition & 1 deletion build/pkgs/_python3.9/distros/conda.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
python==3.9
python=3.9
6 changes: 3 additions & 3 deletions build/pkgs/configure/checksums.ini
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
tarball=configure-VERSION.tar.gz
sha1=6c2020ef6639a24eb777eb1fa1adfca6dbd4520c
md5=c8641bab76511afffa14c46c8a6f4c73
cksum=1432162721
sha1=374eca6cdfb4bd3dd2d3173e300639f86407077c
md5=5810e2d5a26f7457239a576b022b0a19
cksum=409095104
2 changes: 1 addition & 1 deletion build/pkgs/configure/package-version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
883e05f8ee0f97b25cf28c97859c615d9ea314f7
dcd23be6c05f8de220a8404175c6e4175842255e
2 changes: 1 addition & 1 deletion build/pkgs/database_cubic_hecke/dependencies_check
Original file line number Diff line number Diff line change
@@ -1 +1 @@
$(SAGERUNTIME) conway_polynomials ipywidgets sympy singular gap libhomfly libbraiding matplotlib
$(SAGERUNTIME) conway_polynomials ipywidgets sympy singular gap libhomfly libbraiding sphinx networkx scipy sympy matplotlib pillow mpmath fpylll
2 changes: 1 addition & 1 deletion build/pkgs/database_knotinfo/dependencies_check
Original file line number Diff line number Diff line change
@@ -1 +1 @@
$(SAGERUNTIME) ipywidgets sympy singular gap libhomfly libbraiding matplotlib
$(SAGERUNTIME) ipywidgets sympy singular gap libhomfly libbraiding sphinx networkx scipy sympy matplotlib pillow mpmath fpylll
2 changes: 1 addition & 1 deletion build/pkgs/mathics/dependencies_check
Original file line number Diff line number Diff line change
@@ -1 +1 @@
$(SAGERUNTIME) ipywidgets importlib_metadata sympy mpmath matplotlib
$(SAGERUNTIME) ipywidgets importlib_metadata sympy sphinx networkx scipy sympy matplotlib pillow mpmath fpylll
2 changes: 1 addition & 1 deletion build/pkgs/nauty/package-version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.8.6.p0
2.8.6.p1
Loading

0 comments on commit 0c4cbce

Please sign in to comment.