diff --git a/.github/workflows/ci-linux.yml b/.github/workflows/ci-linux.yml index 7fd2064a108..7c0d22118c0 100644 --- a/.github/workflows/ci-linux.yml +++ b/.github/workflows/ci-linux.yml @@ -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() }} @@ -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() }} @@ -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() }} @@ -169,6 +170,7 @@ jobs: tox_packages_factors: >- ["minimal"] docker_push_repository: ghcr.io/${{ github.repository }}/ + max_parallel: 24 maximal-pre: if: ${{ success() || failure() }} @@ -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: @@ -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: @@ -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() }} diff --git a/.github/workflows/ci-macos.yml b/.github/workflows/ci-macos.yml index 102ee8ecc30..46fa10e8d34 100644 --- a/.github/workflows/ci-macos.yml +++ b/.github/workflows/ci-macos.yml @@ -42,6 +42,7 @@ jobs: stage: "2" max_parallel: 1 needs: [stage-1] + if: ${{ success() || failure() }} stage-2-optional-0-o: uses: ./.github/workflows/macos.yml @@ -49,6 +50,7 @@ jobs: stage: "2-optional-0-o" max_parallel: 1 needs: [stage-2] + if: ${{ success() || failure() }} stage-2-optional-p-z: uses: ./.github/workflows/macos.yml @@ -56,6 +58,7 @@ jobs: stage: "2-optional-p-z" max_parallel: 1 needs: [stage-2-optional-0-o] + if: ${{ success() || failure() }} stage-2-experimental-0-o: uses: ./.github/workflows/macos.yml @@ -63,6 +66,7 @@ jobs: stage: "2-optional-0-o" max_parallel: 1 needs: [stage-2-optional-p-z] + if: ${{ success() || failure() }} stage-2-experimental-p-z: uses: ./.github/workflows/macos.yml @@ -70,6 +74,7 @@ jobs: stage: "2-experimental-p-z" max_parallel: 1 needs: [stage-2-experimental-0-o] + if: ${{ success() || failure() }} dist: diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 3f5bf2e592c..cf1a04f6447 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -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 # @@ -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: | diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 91c38807e76..34483ed3d22 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -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' diff --git a/CITATION.cff b/CITATION.cff index 7294ca6763a..eaccedc842c 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -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.rc3 doi: 10.5281/zenodo.593563 -date-released: 2023-11-12 +date-released: 2023-11-14 repository-code: "https://github.com/sagemath/sage" url: "https://www.sagemath.org/" diff --git a/VERSION.txt b/VERSION.txt index bf28f5b89de..1cd43ceaa73 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -SageMath version 10.2.rc2, Release Date: 2023-11-12 +SageMath version 10.2.rc3, Release Date: 2023-11-14 diff --git a/build/make/install b/build/make/install index 80805935546..2c1aff91e1a 100755 --- a/build/make/install +++ b/build/make/install @@ -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: diff --git a/build/pkgs/_python3.10/distros/conda.txt b/build/pkgs/_python3.10/distros/conda.txt index 0e2312f6abf..3fe0755f28f 100644 --- a/build/pkgs/_python3.10/distros/conda.txt +++ b/build/pkgs/_python3.10/distros/conda.txt @@ -1 +1 @@ -python==3.10 +python=3.10 diff --git a/build/pkgs/_python3.11/distros/conda.txt b/build/pkgs/_python3.11/distros/conda.txt index 875818d94e8..b025c36b396 100644 --- a/build/pkgs/_python3.11/distros/conda.txt +++ b/build/pkgs/_python3.11/distros/conda.txt @@ -1 +1 @@ -python==3.11 +python=3.11 diff --git a/build/pkgs/_python3.12/distros/conda.txt b/build/pkgs/_python3.12/distros/conda.txt index 08c4473f336..6c4c1ce29a1 100644 --- a/build/pkgs/_python3.12/distros/conda.txt +++ b/build/pkgs/_python3.12/distros/conda.txt @@ -1 +1 @@ -python==3.12 +python=3.12 diff --git a/build/pkgs/_python3.9/distros/conda.txt b/build/pkgs/_python3.9/distros/conda.txt index ca224649651..23caf0e0ee2 100644 --- a/build/pkgs/_python3.9/distros/conda.txt +++ b/build/pkgs/_python3.9/distros/conda.txt @@ -1 +1 @@ -python==3.9 +python=3.9 diff --git a/build/pkgs/configure/checksums.ini b/build/pkgs/configure/checksums.ini index b5731ea41cd..013e3163f70 100644 --- a/build/pkgs/configure/checksums.ini +++ b/build/pkgs/configure/checksums.ini @@ -1,4 +1,4 @@ tarball=configure-VERSION.tar.gz -sha1=6c2020ef6639a24eb777eb1fa1adfca6dbd4520c -md5=c8641bab76511afffa14c46c8a6f4c73 -cksum=1432162721 +sha1=b541ad9d1ac812e89f0ce2012c17552c1f4cb006 +md5=b79a13b000f4e27fc73b0210892b81b3 +cksum=501150596 diff --git a/build/pkgs/configure/package-version.txt b/build/pkgs/configure/package-version.txt index 9789b687e7f..a0c692bf8f3 100644 --- a/build/pkgs/configure/package-version.txt +++ b/build/pkgs/configure/package-version.txt @@ -1 +1 @@ -883e05f8ee0f97b25cf28c97859c615d9ea314f7 +705a0ee9bf39c15090e8998a0366de7e76255772 diff --git a/build/pkgs/database_cubic_hecke/dependencies_check b/build/pkgs/database_cubic_hecke/dependencies_check index 1e1a85bb91a..7e7fc6e9b54 100644 --- a/build/pkgs/database_cubic_hecke/dependencies_check +++ b/build/pkgs/database_cubic_hecke/dependencies_check @@ -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 diff --git a/build/pkgs/database_knotinfo/dependencies_check b/build/pkgs/database_knotinfo/dependencies_check index 3543bac84df..b7b3b6a6492 100644 --- a/build/pkgs/database_knotinfo/dependencies_check +++ b/build/pkgs/database_knotinfo/dependencies_check @@ -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 diff --git a/build/pkgs/mathics/dependencies_check b/build/pkgs/mathics/dependencies_check index a2c2a63716e..84f94c5211b 100644 --- a/build/pkgs/mathics/dependencies_check +++ b/build/pkgs/mathics/dependencies_check @@ -1 +1 @@ -$(SAGERUNTIME) ipywidgets importlib_metadata sympy mpmath matplotlib +$(SAGERUNTIME) ipywidgets importlib_metadata sympy sphinx networkx scipy sympy matplotlib pillow mpmath fpylll diff --git a/build/pkgs/nauty/package-version.txt b/build/pkgs/nauty/package-version.txt index b6b3dcc5aa0..04e60eaa37a 100644 --- a/build/pkgs/nauty/package-version.txt +++ b/build/pkgs/nauty/package-version.txt @@ -1 +1 @@ -2.8.6.p0 +2.8.6.p1 diff --git a/build/pkgs/nauty/spkg-install.in b/build/pkgs/nauty/spkg-install.in index cf685ba5370..5a2f957511d 100644 --- a/build/pkgs/nauty/spkg-install.in +++ b/build/pkgs/nauty/spkg-install.in @@ -1,8 +1,14 @@ cd src +NAUTY_CONFIGURE="" + +if [ "$SAGE_FAT_BINARY" = "yes" ]; then + NAUTY_CONFIGURE+="--enable-generic --disable-popcnt" +fi + # Nauty doesn't have an install target; passing a prefix to configure is # useless (but harmless) -sdh_configure CC="$CC -fPIC" +sdh_configure CC="$CC -fPIC" $NAUTY_CONFIGURE sdh_make # No install target so we resort to manual copy diff --git a/build/pkgs/sage_conf/install-requires.txt b/build/pkgs/sage_conf/install-requires.txt index 72d982128c2..10c84f5466c 100644 --- a/build/pkgs/sage_conf/install-requires.txt +++ b/build/pkgs/sage_conf/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sage-conf ~= 10.2rc2 +sage-conf ~= 10.2rc3 diff --git a/build/pkgs/sage_docbuild/install-requires.txt b/build/pkgs/sage_docbuild/install-requires.txt index b3ec06fd6bd..bf58047cc02 100644 --- a/build/pkgs/sage_docbuild/install-requires.txt +++ b/build/pkgs/sage_docbuild/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sage-docbuild ~= 10.2rc2 +sage-docbuild ~= 10.2rc3 diff --git a/build/pkgs/sage_setup/install-requires.txt b/build/pkgs/sage_setup/install-requires.txt index 32b2a0f11c4..5b119bfa166 100644 --- a/build/pkgs/sage_setup/install-requires.txt +++ b/build/pkgs/sage_setup/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sage-setup ~= 10.2rc2 +sage-setup ~= 10.2rc3 diff --git a/build/pkgs/sage_sws2rst/install-requires.txt b/build/pkgs/sage_sws2rst/install-requires.txt index cb0ef8de582..275c1a2a673 100644 --- a/build/pkgs/sage_sws2rst/install-requires.txt +++ b/build/pkgs/sage_sws2rst/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sage-sws2rst ~= 10.2rc2 +sage-sws2rst ~= 10.2rc3 diff --git a/build/pkgs/sagelib/install-requires.txt b/build/pkgs/sagelib/install-requires.txt index f7ce9fc4363..fb495be5a82 100644 --- a/build/pkgs/sagelib/install-requires.txt +++ b/build/pkgs/sagelib/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-standard ~= 10.2rc2 +sagemath-standard ~= 10.2rc3 diff --git a/build/pkgs/sagemath_bliss/install-requires.txt b/build/pkgs/sagemath_bliss/install-requires.txt index 45ef2f3037c..e814f00da2f 100644 --- a/build/pkgs/sagemath_bliss/install-requires.txt +++ b/build/pkgs/sagemath_bliss/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-bliss ~= 10.2rc2 +sagemath-bliss ~= 10.2rc3 diff --git a/build/pkgs/sagemath_categories/install-requires.txt b/build/pkgs/sagemath_categories/install-requires.txt index ead89ac718b..a34419f8856 100644 --- a/build/pkgs/sagemath_categories/install-requires.txt +++ b/build/pkgs/sagemath_categories/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-categories ~= 10.2rc2 +sagemath-categories ~= 10.2rc3 diff --git a/build/pkgs/sagemath_coxeter3/install-requires.txt b/build/pkgs/sagemath_coxeter3/install-requires.txt index 1fcaeb1578e..4fec4930f3a 100644 --- a/build/pkgs/sagemath_coxeter3/install-requires.txt +++ b/build/pkgs/sagemath_coxeter3/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-coxeter3 ~= 10.2rc2 +sagemath-coxeter3 ~= 10.2rc3 diff --git a/build/pkgs/sagemath_environment/install-requires.txt b/build/pkgs/sagemath_environment/install-requires.txt index c7125057ba4..7816ad65151 100644 --- a/build/pkgs/sagemath_environment/install-requires.txt +++ b/build/pkgs/sagemath_environment/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-environment ~= 10.2rc2 +sagemath-environment ~= 10.2rc3 diff --git a/build/pkgs/sagemath_mcqd/install-requires.txt b/build/pkgs/sagemath_mcqd/install-requires.txt index 30adf8786bb..0c7b94d7211 100644 --- a/build/pkgs/sagemath_mcqd/install-requires.txt +++ b/build/pkgs/sagemath_mcqd/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-mcqd ~= 10.2rc2 +sagemath-mcqd ~= 10.2rc3 diff --git a/build/pkgs/sagemath_meataxe/install-requires.txt b/build/pkgs/sagemath_meataxe/install-requires.txt index e2ea89298af..88049a9fe7e 100644 --- a/build/pkgs/sagemath_meataxe/install-requires.txt +++ b/build/pkgs/sagemath_meataxe/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-meataxe ~= 10.2rc2 +sagemath-meataxe ~= 10.2rc3 diff --git a/build/pkgs/sagemath_objects/install-requires.txt b/build/pkgs/sagemath_objects/install-requires.txt index 7f040ebe9a2..e3d5b03e30a 100644 --- a/build/pkgs/sagemath_objects/install-requires.txt +++ b/build/pkgs/sagemath_objects/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-objects ~= 10.2rc2 +sagemath-objects ~= 10.2rc3 diff --git a/build/pkgs/sagemath_repl/install-requires.txt b/build/pkgs/sagemath_repl/install-requires.txt index 27ebea3e770..65317d670db 100644 --- a/build/pkgs/sagemath_repl/install-requires.txt +++ b/build/pkgs/sagemath_repl/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-repl ~= 10.2rc2 +sagemath-repl ~= 10.2rc3 diff --git a/build/pkgs/sagemath_sirocco/install-requires.txt b/build/pkgs/sagemath_sirocco/install-requires.txt index 4fb6d1a07b5..78b8532eb3c 100644 --- a/build/pkgs/sagemath_sirocco/install-requires.txt +++ b/build/pkgs/sagemath_sirocco/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-sirocco ~= 10.2rc2 +sagemath-sirocco ~= 10.2rc3 diff --git a/build/pkgs/sagemath_tdlib/install-requires.txt b/build/pkgs/sagemath_tdlib/install-requires.txt index b00874fb242..fd4b8549a2e 100644 --- a/build/pkgs/sagemath_tdlib/install-requires.txt +++ b/build/pkgs/sagemath_tdlib/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-tdlib ~= 10.2rc2 +sagemath-tdlib ~= 10.2rc3 diff --git a/pkgs/sage-conf/VERSION.txt b/pkgs/sage-conf/VERSION.txt index 9a33c5df14e..47b62e8563a 100644 --- a/pkgs/sage-conf/VERSION.txt +++ b/pkgs/sage-conf/VERSION.txt @@ -1 +1 @@ -10.2.rc2 +10.2.rc3 diff --git a/pkgs/sage-conf_conda/VERSION.txt b/pkgs/sage-conf_conda/VERSION.txt index 9a33c5df14e..47b62e8563a 100644 --- a/pkgs/sage-conf_conda/VERSION.txt +++ b/pkgs/sage-conf_conda/VERSION.txt @@ -1 +1 @@ -10.2.rc2 +10.2.rc3 diff --git a/pkgs/sage-conf_pypi/VERSION.txt b/pkgs/sage-conf_pypi/VERSION.txt index 9a33c5df14e..47b62e8563a 100644 --- a/pkgs/sage-conf_pypi/VERSION.txt +++ b/pkgs/sage-conf_pypi/VERSION.txt @@ -1 +1 @@ -10.2.rc2 +10.2.rc3 diff --git a/pkgs/sage-docbuild/VERSION.txt b/pkgs/sage-docbuild/VERSION.txt index 9a33c5df14e..47b62e8563a 100644 --- a/pkgs/sage-docbuild/VERSION.txt +++ b/pkgs/sage-docbuild/VERSION.txt @@ -1 +1 @@ -10.2.rc2 +10.2.rc3 diff --git a/pkgs/sage-setup/VERSION.txt b/pkgs/sage-setup/VERSION.txt index 9a33c5df14e..47b62e8563a 100644 --- a/pkgs/sage-setup/VERSION.txt +++ b/pkgs/sage-setup/VERSION.txt @@ -1 +1 @@ -10.2.rc2 +10.2.rc3 diff --git a/pkgs/sage-sws2rst/VERSION.txt b/pkgs/sage-sws2rst/VERSION.txt index 9a33c5df14e..47b62e8563a 100644 --- a/pkgs/sage-sws2rst/VERSION.txt +++ b/pkgs/sage-sws2rst/VERSION.txt @@ -1 +1 @@ -10.2.rc2 +10.2.rc3 diff --git a/pkgs/sagemath-bliss/VERSION.txt b/pkgs/sagemath-bliss/VERSION.txt index 9a33c5df14e..47b62e8563a 100644 --- a/pkgs/sagemath-bliss/VERSION.txt +++ b/pkgs/sagemath-bliss/VERSION.txt @@ -1 +1 @@ -10.2.rc2 +10.2.rc3 diff --git a/pkgs/sagemath-categories/VERSION.txt b/pkgs/sagemath-categories/VERSION.txt index 9a33c5df14e..47b62e8563a 100644 --- a/pkgs/sagemath-categories/VERSION.txt +++ b/pkgs/sagemath-categories/VERSION.txt @@ -1 +1 @@ -10.2.rc2 +10.2.rc3 diff --git a/pkgs/sagemath-coxeter3/VERSION.txt b/pkgs/sagemath-coxeter3/VERSION.txt index 9a33c5df14e..47b62e8563a 100644 --- a/pkgs/sagemath-coxeter3/VERSION.txt +++ b/pkgs/sagemath-coxeter3/VERSION.txt @@ -1 +1 @@ -10.2.rc2 +10.2.rc3 diff --git a/pkgs/sagemath-environment/VERSION.txt b/pkgs/sagemath-environment/VERSION.txt index 9a33c5df14e..47b62e8563a 100644 --- a/pkgs/sagemath-environment/VERSION.txt +++ b/pkgs/sagemath-environment/VERSION.txt @@ -1 +1 @@ -10.2.rc2 +10.2.rc3 diff --git a/pkgs/sagemath-mcqd/VERSION.txt b/pkgs/sagemath-mcqd/VERSION.txt index 9a33c5df14e..47b62e8563a 100644 --- a/pkgs/sagemath-mcqd/VERSION.txt +++ b/pkgs/sagemath-mcqd/VERSION.txt @@ -1 +1 @@ -10.2.rc2 +10.2.rc3 diff --git a/pkgs/sagemath-meataxe/VERSION.txt b/pkgs/sagemath-meataxe/VERSION.txt index 9a33c5df14e..47b62e8563a 100644 --- a/pkgs/sagemath-meataxe/VERSION.txt +++ b/pkgs/sagemath-meataxe/VERSION.txt @@ -1 +1 @@ -10.2.rc2 +10.2.rc3 diff --git a/pkgs/sagemath-objects/VERSION.txt b/pkgs/sagemath-objects/VERSION.txt index 9a33c5df14e..47b62e8563a 100644 --- a/pkgs/sagemath-objects/VERSION.txt +++ b/pkgs/sagemath-objects/VERSION.txt @@ -1 +1 @@ -10.2.rc2 +10.2.rc3 diff --git a/pkgs/sagemath-repl/VERSION.txt b/pkgs/sagemath-repl/VERSION.txt index 9a33c5df14e..47b62e8563a 100644 --- a/pkgs/sagemath-repl/VERSION.txt +++ b/pkgs/sagemath-repl/VERSION.txt @@ -1 +1 @@ -10.2.rc2 +10.2.rc3 diff --git a/pkgs/sagemath-sirocco/VERSION.txt b/pkgs/sagemath-sirocco/VERSION.txt index 9a33c5df14e..47b62e8563a 100644 --- a/pkgs/sagemath-sirocco/VERSION.txt +++ b/pkgs/sagemath-sirocco/VERSION.txt @@ -1 +1 @@ -10.2.rc2 +10.2.rc3 diff --git a/pkgs/sagemath-tdlib/VERSION.txt b/pkgs/sagemath-tdlib/VERSION.txt index 9a33c5df14e..47b62e8563a 100644 --- a/pkgs/sagemath-tdlib/VERSION.txt +++ b/pkgs/sagemath-tdlib/VERSION.txt @@ -1 +1 @@ -10.2.rc2 +10.2.rc3 diff --git a/src/VERSION.txt b/src/VERSION.txt index 9a33c5df14e..47b62e8563a 100644 --- a/src/VERSION.txt +++ b/src/VERSION.txt @@ -1 +1 @@ -10.2.rc2 +10.2.rc3 diff --git a/src/bin/sage-version.sh b/src/bin/sage-version.sh index 8bcbb63baec..fd00471303b 100644 --- a/src/bin/sage-version.sh +++ b/src/bin/sage-version.sh @@ -4,6 +4,6 @@ # which stops "setup.py develop" from rewriting it as a Python file. : # This file is auto-generated by the sage-update-version script, do not edit! -SAGE_VERSION='10.2.rc2' -SAGE_RELEASE_DATE='2023-11-12' -SAGE_VERSION_BANNER='SageMath version 10.2.rc2, Release Date: 2023-11-12' +SAGE_VERSION='10.2.rc3' +SAGE_RELEASE_DATE='2023-11-14' +SAGE_VERSION_BANNER='SageMath version 10.2.rc3, Release Date: 2023-11-14' diff --git a/src/doc/Makefile b/src/doc/Makefile index 2f76dfb9cb4..912eb5cb0e9 100644 --- a/src/doc/Makefile +++ b/src/doc/Makefile @@ -46,14 +46,17 @@ doc-inventory-reference: doc-src $(MAKE) SAGE_DOCBUILD_OPTS="$(SAGE_DOCBUILD_OPTS) --no-prune-empty-dirs" doc-inventory--reference_top endif -# reference manual, html -doc-html-reference: doc-inventory-reference +# sub docs of reference manual, html +doc-html-reference-sub: doc-inventory-reference $(eval DOCS = $(shell sage --docbuild --all-documents reference)) @if [ -z "$(DOCS)" ]; then echo "Error: 'sage --docbuild --all-documents' failed"; exit 1; fi $(eval BIBLIO = $(firstword $(DOCS))) $(eval OTHER_DOCS = $(wordlist 2, 100, $(DOCS))) $(MAKE) SAGE_DOCBUILD_OPTS="$(SAGE_DOCBUILD_OPTS) --no-prune-empty-dirs" doc-html--$(subst /,-,$(BIBLIO)) $(MAKE) SAGE_DOCBUILD_OPTS="$(SAGE_DOCBUILD_OPTS) --no-prune-empty-dirs" $(foreach doc, $(OTHER_DOCS), doc-html--$(subst /,-,$(doc))) + +# reference manual, html; reference_top is built after sub docs +doc-html-reference: doc-html-reference-sub $(MAKE) SAGE_DOCBUILD_OPTS="$(SAGE_DOCBUILD_OPTS) --no-prune-empty-dirs" doc-html--reference_top # other documentation, html @@ -79,16 +82,13 @@ doc-pdf-reference: doc-inventory-reference $(MAKE) SAGE_DOCBUILD_OPTS="$(SAGE_DOCBUILD_OPTS) --no-prune-empty-dirs" doc-pdf--reference_top # other documentation, pdf -doc-pdf-other: doc-html-reference +doc-pdf-other: doc-pdf-reference $(eval DOCS = $(shell sage --docbuild --all-documents all)) @if [ -z "$(DOCS)" ]; then echo "Error: 'sage --docbuild --all-documents' failed"; exit 1; fi $(MAKE) SAGE_DOCBUILD_OPTS="$(SAGE_DOCBUILD_OPTS) --no-prune-empty-dirs" $(foreach doc, $(wordlist 2, 100, $(DOCS)), doc-pdf--$(subst /,-,$(doc))) -# website with pdf links -doc-pdf-website: - sage --docbuild website html $(SAGE_DOCBUILD_OPTS) +doc-pdf: doc-pdf-reference doc-pdf-other -doc-pdf: doc-pdf-reference doc-pdf-other doc-pdf-website .PHONY: all clean \ doc-src \ diff --git a/src/doc/en/reference/references/index.rst b/src/doc/en/reference/references/index.rst index 697c50a6bcf..fa67dade3ab 100644 --- a/src/doc/en/reference/references/index.rst +++ b/src/doc/en/reference/references/index.rst @@ -960,6 +960,13 @@ REFERENCES: .. [BL2003] \S. Brlek, A. Ladouceur, A note on differentiable palindromes, Theoret. Comput. Sci. 302 (2003) 167--178. +.. [BLL1998] \F. Bergeron, G. Labelle, and P. Leroux. + "Combinatorial species and tree-like structures". + Encyclopedia of Mathematics and its Applications, vol. 67, Cambridge Univ. Press. 1998. + +.. [BLL2008] François Bergeron, Gilbert Labelle, and Pierre Leroux. + "Introduction to the Theory of Species of Structures", March 14, 2008. + .. [BraLea2008] \C. Bracken and Gregor Leander: *New families of functions with differential uniformity of 4*, Proceedings of the Conference BFCA, Copenhagen, 2008. diff --git a/src/doc/en/website/root_index.html b/src/doc/en/website/root_index.html index 21a6086ed72..c3d25ff495b 100644 --- a/src/doc/en/website/root_index.html +++ b/src/doc/en/website/root_index.html @@ -118,7 +118,7 @@
-
- A Tour of Sage
-
+
+ A Tour of Sage
+
This is a tour of Sage that closely follows the tour of
@@ -60,12 +60,12 @@
-
- PREP Tutorials
-
-
- Tutorial
-
-
- Constructions
-
-
- Thematic Tutorials
-
-
- FAQ
-
+
+
-
- Installation Guide
-
-
- Developer Guide
-
-
- A Tour of Sage
-
-
- PREP Tutorials
-
-
- Tutorial
-
-
- Constructions
-
-
- Thematic Tutorials
-
-
- FAQ
-
+
+
-
- Installation Guide
-
-
- Developer Guide
-
+
+ PREP Tutorials
+
This set of tutorials takes the reader from very minimal
@@ -80,12 +80,12 @@
+
+ Tutorial
+
This tutorial is the best way to become familiar with Sage
@@ -95,12 +95,12 @@
+
+ Constructions
+
This document collects answers to some questions along the line "How
@@ -113,12 +113,12 @@
+
+ Thematic Tutorials
+
A collection of in-depth tutorials on specific topics. These
@@ -133,12 +133,12 @@
+
+ FAQ
+
A collection of frequently asked questions, together with
@@ -158,12 +158,12 @@
+
Reference Manual
-
-
-
This is the reference manual for the Sage mathematics
@@ -189,12 +189,12 @@
+
+ Installation Guide
+
A guide on how to install Sage. You can install a Sage
@@ -206,12 +206,12 @@
+
+ Developer Guide
+
This document describes guidelines and policies regarding
diff --git a/src/doc/en/website/templates/index_furo.html b/src/doc/en/website/templates/index_furo.html
index 922068b9b52..1dca6907c93 100644
--- a/src/doc/en/website/templates/index_furo.html
+++ b/src/doc/en/website/templates/index_furo.html
@@ -41,12 +41,12 @@
+
+ A Tour of Sage
+
A one page introduction to Sage as a handy calculator.
@@ -55,12 +55,12 @@
+
+ PREP Tutorials
+
This set of tutorials takes the reader from very minimal
@@ -75,12 +75,12 @@
+
+ Tutorial
+
The best way to become familiar with Sage
@@ -90,12 +90,12 @@
+
+ Constructions
+
This document collects answers to some questions along the line "How
@@ -108,12 +108,12 @@
+
+ Thematic Tutorials
+
A collection of in-depth tutorials on specific topics. These
@@ -128,12 +128,12 @@
+
+ FAQ
+
A collection of frequently asked questions, together with
@@ -153,12 +153,12 @@
+
Reference Manual
-
-
-
This is the reference manual for the Sage mathematics
@@ -184,12 +184,12 @@
+
+ Installation Guide
+
A guide on how to install Sage. You can install a Sage
@@ -201,12 +201,12 @@
+
+ Developer Guide
+
This document describes guidelines and policies regarding
diff --git a/src/sage/combinat/species/generating_series.py b/src/sage/combinat/species/generating_series.py
index e7f7c8ee978..dca117a9971 100644
--- a/src/sage/combinat/species/generating_series.py
+++ b/src/sage/combinat/species/generating_series.py
@@ -30,13 +30,6 @@
sage: s[3] # optional - sage.modules
p[1, 1, 1] + p[2, 1]
-REFERENCES:
-
-.. [BLL] \F. Bergeron, G. Labelle, and P. Leroux.
- "Combinatorial species and tree-like structures".
- Encyclopedia of Mathematics and its Applications, vol. 67, Cambridge Univ. Press. 1998.
-.. [BLL-Intro] François Bergeron, Gilbert Labelle, and Pierre Leroux.
- "Introduction to the Theory of Species of Structures", March 14, 2008.
"""
# ****************************************************************************
@@ -217,7 +210,7 @@ def functorial_composition(self, y):
REFERENCES:
- - Section 2.2 of [BLL]_.
+ - Section 2.2 of [BLL1998]_.
EXAMPLES::
@@ -651,7 +644,7 @@ def LogarithmCycleIndexSeries(R=QQ):
Return the cycle index series of the virtual species `\Omega`, the
compositional inverse of the species `E^{+}` of nonempty sets.
- The notion of virtual species is treated thoroughly in [BLL]_.
+ The notion of virtual species is treated thoroughly in [BLL1998]_.
The specific algorithm used here to compute the cycle index of
`\Omega` is found in [Labelle2008]_.
diff --git a/src/sage/doctest/control.py b/src/sage/doctest/control.py
index 8583d7a447d..633afd5c2e6 100644
--- a/src/sage/doctest/control.py
+++ b/src/sage/doctest/control.py
@@ -457,11 +457,15 @@ def __init__(self, options, args):
options.hide.discard('all')
from sage.features.all import all_features
feature_names = {f.name for f in all_features() if not f.is_standard()}
+ from sage.doctest.external import external_software
+ feature_names.difference_update(external_software)
options.hide = options.hide.union(feature_names)
if 'optional' in options.hide:
options.hide.discard('optional')
from sage.features.all import all_features
feature_names = {f.name for f in all_features() if f.is_optional()}
+ from sage.doctest.external import external_software
+ feature_names.difference_update(external_software)
options.hide = options.hide.union(feature_names)
options.disabled_optional = set()
diff --git a/src/sage/features/internet.py b/src/sage/features/internet.py
index f1eb000fe92..576b0136926 100644
--- a/src/sage/features/internet.py
+++ b/src/sage/features/internet.py
@@ -56,7 +56,7 @@ def _is_present(self):
try:
urlopen(req, timeout=1, context=default_context())
return FeatureTestResult(self, True)
- except urllib.error.URLError:
+ except (urllib.error.URLError, TimeoutError):
return FeatureTestResult(self, False)
diff --git a/src/sage/rings/lazy_series.py b/src/sage/rings/lazy_series.py
index 8086e15f9ef..5fdfb64cea4 100644
--- a/src/sage/rings/lazy_series.py
+++ b/src/sage/rings/lazy_series.py
@@ -6219,7 +6219,7 @@ def functorial_composition(self, *args):
whose labels are the set of all `G`-structures on `A`.
The Frobenius character (or cycle index series) of `F \Box G`
- can be computed as follows, see section 2.2 of [BLL]_):
+ can be computed as follows, see section 2.2 of [BLL1998]_):
.. MATH::
diff --git a/src/sage/version.py b/src/sage/version.py
index 4dc5fe09e63..528136535fa 100644
--- a/src/sage/version.py
+++ b/src/sage/version.py
@@ -1,5 +1,5 @@
# Sage version information for Python scripts
# This file is auto-generated by the sage-update-version script, do not edit!
-version = '10.2.rc2'
-date = '2023-11-12'
-banner = 'SageMath version 10.2.rc2, Release Date: 2023-11-12'
+version = '10.2.rc3'
+date = '2023-11-14'
+banner = 'SageMath version 10.2.rc3, Release Date: 2023-11-14'
diff --git a/src/sage_docbuild/builders.py b/src/sage_docbuild/builders.py
index 323c9247252..63aa1145154 100644
--- a/src/sage_docbuild/builders.py
+++ b/src/sage_docbuild/builders.py
@@ -431,11 +431,17 @@ class WebsiteBuilder(DocBuilder):
def html(self):
"""
After we have finished building the website index page, we copy
- everything one directory up.
+ everything one directory up, that is, to the base diectory ``html/en``.
In addition, an index file is installed into the root doc directory.
+
+ Thus we have three index.html files:
+
+ html/en/website/index.html (not used)
+ html/en/index.html (base directory)
+ index.html (root doc directory)
"""
- DocBuilder.html(self)
+ super().html()
html_output_dir = self._output_dir('html')
for f in os.listdir(html_output_dir):
src = os.path.join(html_output_dir, f)
@@ -450,6 +456,23 @@ def html(self):
shutil.copy2(os.path.join(SAGE_DOC_SRC, self.lang, 'website', 'root_index.html'),
root_index_file)
+ def pdf(self):
+ """
+ Build the website hosting pdf docs.
+ """
+ super().pdf()
+
+ # If the website exists, update it.
+
+ from sage.env import SAGE_DOC
+ website_dir = os.path.join(SAGE_DOC, 'html', 'en', 'website')
+
+ if os.path.exists(os.path.join(website_dir, 'index.html')):
+ # Rebuild WITHOUT --no-pdf-links, which is translated to
+ # "-A hide_pdf_links=1" Sphinx argument. Thus effectively
+ # the index page SHOWS links to pdf docs.
+ self.html()
+
def clean(self):
"""
When we clean the output for the website index, we need to
@@ -637,16 +660,20 @@ def pdf(self):
"""
super().pdf()
- # we need to build master index file which lists all
- # of the PDF file. So we create an html file, based on
- # the file index.html from the "reference_top" target.
-
- # First build the top reference page. This only takes a few seconds.
- getattr(get_builder('reference_top'), 'html')()
+ # We want to build master index file which lists all of the PDF file.
+ # We modify the file index.html from the "reference_top" target, if it
+ # exists. Otherwise, we are done.
from sage.env import SAGE_DOC
reference_dir = os.path.join(SAGE_DOC, 'html', 'en', 'reference')
- output_dir = self._output_dir('pdf')
+ output_dir = self._output_dir('html')
+
+ # Check if the top reference index.html exists.
+ try:
+ with open(os.path.join(reference_dir, 'index.html')) as f:
+ html = f.read()
+ except FileNotFoundError:
+ return
# Install in output_dir a symlink to the directory containing static files.
# Prefer relative path for symlinks.
@@ -657,17 +684,12 @@ def pdf(self):
pass
# Now modify top reference index.html page and write it to output_dir.
- with open(os.path.join(reference_dir, 'index.html')) as f:
- html = f.read()
html_output_dir = os.path.dirname(reference_dir)
# Fix links in navigation bar
html = re.sub(r'Sage(.*)Documentation',
r'Sage\2Documentation',
html)
- html = re.sub(r'Reference Manual',
- r'Reference Manual (PDF version)',
- html)
html = re.sub(r'