diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5f466d3a285..53a281ca5b4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -96,7 +96,7 @@ 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: @@ -104,7 +104,7 @@ jobs: 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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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: @@ -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 @@ -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 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 9482eb9632b..9d2c70cbb78 100644 --- a/.github/workflows/ci-macos.yml +++ b/.github/workflows/ci-macos.yml @@ -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: @@ -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 diff --git a/.github/workflows/doc-build-pdf.yml b/.github/workflows/doc-build-pdf.yml index 1d14d0c29f7..37b0cff6376 100644 --- a/.github/workflows/doc-build-pdf.yml +++ b/.github/workflows/doc-build-pdf.yml @@ -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 @@ -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 @@ -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 @@ -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 diff --git a/.github/workflows/doc-build.yml b/.github/workflows/doc-build.yml index e079fa04beb..b0f3e4566bc 100644 --- a/.github/workflows/doc-build.yml +++ b/.github/workflows/doc-build.yml @@ -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 @@ -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: | @@ -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 @@ -182,7 +182,6 @@ jobs: echo '' >> ./docs/CHANGES.html echo '' >>./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 @@ -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 diff --git a/.github/workflows/doc-publish.yml b/.github/workflows/doc-publish.yml index 1a42a22dbb8..961809e343e 100644 --- a/.github/workflows/doc-publish.yml +++ b/.github/workflows/doc-publish.yml @@ -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 diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index c12ec820f83..cf1a04f6447 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -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", ] @@ -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 # @@ -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 @@ -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: | diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 41560674b49..7821ea20212 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -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 diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 5b448cec1bb..6d71bcefa16 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -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' diff --git a/CITATION.cff b/CITATION.cff index bcd3dad6665..d065a454dc6 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.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/" diff --git a/VERSION.txt b/VERSION.txt index a43284eebe1..529cf2e0639 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -SageMath version 10.2.rc0, Release Date: 2023-11-05 +SageMath version 10.2.rc4, Release Date: 2023-11-17 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/_prereq/distros/opensuse.txt b/build/pkgs/_prereq/distros/opensuse.txt index 070f456aea4..6f7a11fea47 100644 --- a/build/pkgs/_prereq/distros/opensuse.txt +++ b/build/pkgs/_prereq/distros/opensuse.txt @@ -11,6 +11,7 @@ binutils make m4 +gawk perl python3 tar diff --git a/build/pkgs/_python3.10/distros/conda.txt b/build/pkgs/_python3.10/distros/conda.txt new file mode 100644 index 00000000000..3fe0755f28f --- /dev/null +++ b/build/pkgs/_python3.10/distros/conda.txt @@ -0,0 +1 @@ +python=3.10 diff --git a/build/pkgs/_python3.11/distros/conda.txt b/build/pkgs/_python3.11/distros/conda.txt new file mode 100644 index 00000000000..b025c36b396 --- /dev/null +++ b/build/pkgs/_python3.11/distros/conda.txt @@ -0,0 +1 @@ +python=3.11 diff --git a/build/pkgs/_python3.12/distros/conda.txt b/build/pkgs/_python3.12/distros/conda.txt new file mode 100644 index 00000000000..6c4c1ce29a1 --- /dev/null +++ b/build/pkgs/_python3.12/distros/conda.txt @@ -0,0 +1 @@ +python=3.12 diff --git a/build/pkgs/_python3.9/distros/conda.txt b/build/pkgs/_python3.9/distros/conda.txt new file mode 100644 index 00000000000..23caf0e0ee2 --- /dev/null +++ b/build/pkgs/_python3.9/distros/conda.txt @@ -0,0 +1 @@ +python=3.9 diff --git a/build/pkgs/configure/checksums.ini b/build/pkgs/configure/checksums.ini index bae48b7cfe0..9b9aa7e4339 100644 --- a/build/pkgs/configure/checksums.ini +++ b/build/pkgs/configure/checksums.ini @@ -1,4 +1,4 @@ tarball=configure-VERSION.tar.gz -sha1=41ec9a0bdf6e5982204b26ce2593e4b5a1863c96 -md5=8ea80ef7438ed62345de677dc921af2e -cksum=2979893163 +sha1=374eca6cdfb4bd3dd2d3173e300639f86407077c +md5=5810e2d5a26f7457239a576b022b0a19 +cksum=409095104 diff --git a/build/pkgs/configure/package-version.txt b/build/pkgs/configure/package-version.txt index 6a758846d8a..d5b0ee2fa8f 100644 --- a/build/pkgs/configure/package-version.txt +++ b/build/pkgs/configure/package-version.txt @@ -1 +1 @@ -be0b5cf887fefcdf31df70be0a62b10b7929f28c +dcd23be6c05f8de220a8404175c6e4175842255e 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/openblas/checksums.ini b/build/pkgs/openblas/checksums.ini index c2a1fe997c5..2de5fe8909d 100644 --- a/build/pkgs/openblas/checksums.ini +++ b/build/pkgs/openblas/checksums.ini @@ -1,5 +1,5 @@ tarball=openblas-VERSION.tar.gz -sha1=6b781727c7b95850ae4a3eb0a391492eb4f3e780 -md5=115634b39007de71eb7e75cf7591dfb2 -cksum=2485407229 +sha1=79f2828dff06e24ecec7277f3d3da5e7b196ff53 +md5=48384e324cd1cdcfbdb0d2e16ca55327 +cksum=1614515639 upstream_url=https://github.com/xianyi/OpenBLAS/archive/vVERSION.tar.gz diff --git a/build/pkgs/openblas/package-version.txt b/build/pkgs/openblas/package-version.txt index a1dad2aa79c..88dbf46f411 100644 --- a/build/pkgs/openblas/package-version.txt +++ b/build/pkgs/openblas/package-version.txt @@ -1 +1 @@ -0.3.23 +0.3.25 diff --git a/build/pkgs/openblas/spkg-install.in b/build/pkgs/openblas/spkg-install.in index 00413ca517d..2f8aea512bc 100644 --- a/build/pkgs/openblas/spkg-install.in +++ b/build/pkgs/openblas/spkg-install.in @@ -34,10 +34,18 @@ fi echo "Building OpenBLAS: $MAKE $OPENBLAS_CONFIGURE" +if $MAKE --version | grep -q -F '3.81'; then + # Work around https://savannah.gnu.org/bugs/?15919 + OPENBLAS_CONFIGURE+=" MAKE_NB_JOBS=1" +else + # Do not emit "-j" options; use jobserver + OPENBLAS_CONFIGURE+=" MAKE_NB_JOBS=0" +fi + # Ensure USE_TLS=1 ; see https://github.com/sagemath/sage/issues/27256 OPENBLAS_CONFIGURE="$OPENBLAS_CONFIGURE USE_TLS=1" -if ! (sdh_make libs netlib shared $OPENBLAS_CONFIGURE); then +if ! (sdh_make libs $OPENBLAS_CONFIGURE && sdh_make netlib $OPENBLAS_CONFIGURE && sdh_make shared $OPENBLAS_CONFIGURE); then if [[ $OPENBLAS_CONFIGURE == *"TARGET"* ]]; then sdh_die "Error building OpenBLAS" else @@ -47,7 +55,7 @@ if ! (sdh_make libs netlib shared $OPENBLAS_CONFIGURE); then echo "Error building OpenBLAS" echo "Retrying building OpenBLAS: $MAKE $OPENBLAS_CONFIGURE" sdh_make clean - sdh_make libs netlib shared $OPENBLAS_CONFIGURE + sdh_make libs $OPENBLAS_CONFIGURE && sdh_make netlib $OPENBLAS_CONFIGURE && sdh_make shared $OPENBLAS_CONFIGURE fi fi diff --git a/build/pkgs/prompt_toolkit/distros/conda.txt b/build/pkgs/prompt_toolkit/distros/conda.txt index 29392dfc5b3..bfb1ed6a874 100644 --- a/build/pkgs/prompt_toolkit/distros/conda.txt +++ b/build/pkgs/prompt_toolkit/distros/conda.txt @@ -1 +1 @@ -prompt_toolkit +prompt_toolkit>=3.0.5,<3.0.25 diff --git a/build/pkgs/pyzmq/checksums.ini b/build/pkgs/pyzmq/checksums.ini index d9abd25d464..091981fb051 100644 --- a/build/pkgs/pyzmq/checksums.ini +++ b/build/pkgs/pyzmq/checksums.ini @@ -1,5 +1,5 @@ tarball=pyzmq-VERSION.tar.gz -sha1=1a2e7220d7d1b6167c14ae2cc001dfc5d9a28dde -md5=f10b7c3dee2c03557e2c5d00b73dfc7f -cksum=1163982926 +sha1=f750e59a3d5fcca64d0a1a6723c1bc72173e976f +md5=993a646d3f1c6201a8c93bcb2d2f867e +cksum=2057198190 upstream_url=https://pypi.io/packages/source/p/pyzmq/pyzmq-VERSION.tar.gz diff --git a/build/pkgs/pyzmq/package-version.txt b/build/pkgs/pyzmq/package-version.txt index 1b3e74f84e7..139ab877a87 100644 --- a/build/pkgs/pyzmq/package-version.txt +++ b/build/pkgs/pyzmq/package-version.txt @@ -1 +1 @@ -24.0.1 +25.1.1 diff --git a/build/pkgs/pyzmq/patches/0001-setup.py-Remove-setting-of-rpath.patch b/build/pkgs/pyzmq/patches/0001-setup.py-Remove-setting-of-rpath.patch new file mode 100644 index 00000000000..9f0483d8442 --- /dev/null +++ b/build/pkgs/pyzmq/patches/0001-setup.py-Remove-setting-of-rpath.patch @@ -0,0 +1,25 @@ +From 29427869ce0a9f13e29c7f89873a1880c8be55a1 Mon Sep 17 00:00:00 2001 +From: Matthias Koeppe +Date: Sun, 5 Nov 2023 21:12:48 -0800 +Subject: [PATCH 1/2] setup.py: Remove setting of rpath + +--- + setup.py | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/setup.py b/setup.py +index d5c77a23..8a2a4943 100755 +--- a/setup.py ++++ b/setup.py +@@ -300,8 +300,6 @@ def settings_from_prefix(prefix=None): + settings['include_dirs'] += [pjoin(env, 'include')] + settings['library_dirs'] += [pjoin(env, 'lib')] + +- for path in settings['library_dirs']: +- _add_rpath(settings, os.path.abspath(path)) + info(settings) + + return settings +-- +2.42.0 + diff --git a/build/pkgs/pyzmq/patches/0002-setup.py-Patch-out-broken-version-detection.patch b/build/pkgs/pyzmq/patches/0002-setup.py-Patch-out-broken-version-detection.patch new file mode 100644 index 00000000000..95e62898233 --- /dev/null +++ b/build/pkgs/pyzmq/patches/0002-setup.py-Patch-out-broken-version-detection.patch @@ -0,0 +1,24 @@ +From b5bdcad66a28394f6e5be4ad7fd00835deec73f7 Mon Sep 17 00:00:00 2001 +From: Matthias Koeppe +Date: Sun, 5 Nov 2023 21:35:29 -0800 +Subject: [PATCH 2/2] setup.py: Patch out broken version detection + +--- + setup.py | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/setup.py b/setup.py +index 8a2a4943..19d31654 100755 +--- a/setup.py ++++ b/setup.py +@@ -463,6 +463,7 @@ class Configure(build_ext): + + def check_zmq_version(self): + """check the zmq version""" ++ return + cfg = self.config + # build test program + zmq_prefix = cfg['zmq_prefix'] +-- +2.42.0 + diff --git a/build/pkgs/sage_conf/install-requires.txt b/build/pkgs/sage_conf/install-requires.txt index 4b66d1b0602..768110a40b2 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.2rc0 +sage-conf ~= 10.2rc4 diff --git a/build/pkgs/sage_docbuild/install-requires.txt b/build/pkgs/sage_docbuild/install-requires.txt index cebed4e3b62..20b4014d9c9 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.2rc0 +sage-docbuild ~= 10.2rc4 diff --git a/build/pkgs/sage_setup/install-requires.txt b/build/pkgs/sage_setup/install-requires.txt index 1631564eec7..e8f9803223b 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.2rc0 +sage-setup ~= 10.2rc4 diff --git a/build/pkgs/sage_sws2rst/install-requires.txt b/build/pkgs/sage_sws2rst/install-requires.txt index 628374d5f1a..210e209b2b1 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.2rc0 +sage-sws2rst ~= 10.2rc4 diff --git a/build/pkgs/sagelib/install-requires.txt b/build/pkgs/sagelib/install-requires.txt index 6004e85c25d..041db2e12b2 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.2rc0 +sagemath-standard ~= 10.2rc4 diff --git a/build/pkgs/sagemath_bliss/install-requires.txt b/build/pkgs/sagemath_bliss/install-requires.txt index 5ea4526cc33..489dabd64e2 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.2rc0 +sagemath-bliss ~= 10.2rc4 diff --git a/build/pkgs/sagemath_categories/install-requires.txt b/build/pkgs/sagemath_categories/install-requires.txt index 1d37a18c187..c6b1335bb36 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.2rc0 +sagemath-categories ~= 10.2rc4 diff --git a/build/pkgs/sagemath_coxeter3/install-requires.txt b/build/pkgs/sagemath_coxeter3/install-requires.txt index 8d6115b1868..147b0859f3c 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.2rc0 +sagemath-coxeter3 ~= 10.2rc4 diff --git a/build/pkgs/sagemath_environment/install-requires.txt b/build/pkgs/sagemath_environment/install-requires.txt index c870e97dca1..7a744b52d45 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.2rc0 +sagemath-environment ~= 10.2rc4 diff --git a/build/pkgs/sagemath_mcqd/install-requires.txt b/build/pkgs/sagemath_mcqd/install-requires.txt index cff0dac0026..6aa36800227 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.2rc0 +sagemath-mcqd ~= 10.2rc4 diff --git a/build/pkgs/sagemath_meataxe/install-requires.txt b/build/pkgs/sagemath_meataxe/install-requires.txt index 464942fef75..f94e1aac639 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.2rc0 +sagemath-meataxe ~= 10.2rc4 diff --git a/build/pkgs/sagemath_objects/install-requires.txt b/build/pkgs/sagemath_objects/install-requires.txt index 663b7d78f8b..772df655f0d 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.2rc0 +sagemath-objects ~= 10.2rc4 diff --git a/build/pkgs/sagemath_repl/install-requires.txt b/build/pkgs/sagemath_repl/install-requires.txt index 917144d154c..850ce7e19d3 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.2rc0 +sagemath-repl ~= 10.2rc4 diff --git a/build/pkgs/sagemath_sirocco/install-requires.txt b/build/pkgs/sagemath_sirocco/install-requires.txt index 896662f1b95..f3cc76b26fa 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.2rc0 +sagemath-sirocco ~= 10.2rc4 diff --git a/build/pkgs/sagemath_tdlib/install-requires.txt b/build/pkgs/sagemath_tdlib/install-requires.txt index c26900d9abf..bffa6c8223c 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.2rc0 +sagemath-tdlib ~= 10.2rc4 diff --git a/build/pkgs/zeromq/checksums.ini b/build/pkgs/zeromq/checksums.ini index dc802612ddd..bc7f6b0c8b1 100644 --- a/build/pkgs/zeromq/checksums.ini +++ b/build/pkgs/zeromq/checksums.ini @@ -1,5 +1,5 @@ tarball=zeromq-VERSION.tar.gz -sha1=47277a64749049123d1401600e8cfbab10a3ae28 -md5=c897d4005a3f0b8276b00b7921412379 -cksum=1500782345 +sha1=bdbf686c8a40ba638e21cf74e34dbb425e108500 +md5=ae933b1e98411fd7cb8309f9502d2737 +cksum=1351453048 upstream_url=https://github.com/zeromq/libzmq/releases/download/vVERSION/zeromq-VERSION.tar.gz diff --git a/build/pkgs/zeromq/package-version.txt b/build/pkgs/zeromq/package-version.txt index eda862a98c1..e198586e42b 100644 --- a/build/pkgs/zeromq/package-version.txt +++ b/build/pkgs/zeromq/package-version.txt @@ -1 +1 @@ -4.3.4 +4.3.5 diff --git a/build/pkgs/zeromq/patches/438d5d88392baffa6c2c5e0737d9de19d6686f0d.patch b/build/pkgs/zeromq/patches/438d5d88392baffa6c2c5e0737d9de19d6686f0d.patch deleted file mode 100644 index 75bfbd8744b..00000000000 --- a/build/pkgs/zeromq/patches/438d5d88392baffa6c2c5e0737d9de19d6686f0d.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 438d5d88392baffa6c2c5e0737d9de19d6686f0d Mon Sep 17 00:00:00 2001 -From: Sergei Trofimovich -Date: Tue, 20 Dec 2022 21:45:16 +0000 -Subject: [PATCH] src/secure_allocator.hpp: define missing 'rebind' type - -`gcc-13` added an assert to standard headers to make sure custom -allocators have intended implementation of rebind type instead -of inherited rebind. gcc change: - https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=64c986b49558a7 - -Without the fix build fails on this week's `gcc-13` as: - - [ 92%] Building CXX object tests/CMakeFiles/test_security_curve.dir/test_security_curve.cpp.o - In file included from /<>/gcc-13.0.0/include/c++/13.0.0/ext/alloc_traits.h:34, - from /<>/gcc-13.0.0/include/c++/13.0.0/bits/stl_uninitialized.h:64, - from /<>/gcc-13.0.0/include/c++/13.0.0/memory:69, - from tests/../src/secure_allocator.hpp:42, - from tests/../src/curve_client_tools.hpp:49, - from tests/test_security_curve.cpp:53: - /<>/gcc-13.0.0/include/c++/13.0.0/bits/alloc_traits.h: In instantiation of 'struct std::__allocator_traits_base::__rebind, unsigned char, void>': - /<>/gcc-13.0.0/include/c++/13.0.0/bits/alloc_traits.h:94:11: required by substitution of 'template using std::__alloc_rebind = typename std::__allocator_traits_base::__rebind<_Alloc, _Up>::type [with _Alloc = zmq::secure_allocator_t; _Up = unsigned char]' - /<>/gcc-13.0.0/include/c++/13.0.0/bits/alloc_traits.h:228:8: required by substitution of 'template template using std::allocator_traits< >::rebind_alloc = std::__alloc_rebind<_Alloc, _Tp> [with _Tp = unsigned char; _Alloc = zmq::secure_allocator_t]' - /<>/gcc-13.0.0/include/c++/13.0.0/ext/alloc_traits.h:126:65: required from 'struct __gnu_cxx::__alloc_traits, unsigned char>::rebind' - /<>/gcc-13.0.0/include/c++/13.0.0/bits/stl_vector.h:88:21: required from 'struct std::_Vector_base >' - /<>/gcc-13.0.0/include/c++/13.0.0/bits/stl_vector.h:423:11: required from 'class std::vector >' - tests/../src/curve_client_tools.hpp:64:76: required from here - /<>/gcc-13.0.0/include/c++/13.0.0/bits/alloc_traits.h:70:31: error: static assertion failed: allocator_traits::rebind_alloc must be A - 70 | _Tp>::value, - | ^~~~~ - -The change adds trivial `rebind` definition with expected return type -and satisfies conversion requirements. ---- - src/secure_allocator.hpp | 11 +++++++++++ - 1 file changed, 11 insertions(+) - -diff --git a/src/secure_allocator.hpp b/src/secure_allocator.hpp -index e0871dcc99..5e97368911 100644 ---- a/src/secure_allocator.hpp -+++ b/src/secure_allocator.hpp -@@ -99,6 +99,17 @@ bool operator!= (const secure_allocator_t &, const secure_allocator_t &) - #else - template struct secure_allocator_t : std::allocator - { -+ secure_allocator_t () ZMQ_DEFAULT; -+ -+ template -+ secure_allocator_t (const secure_allocator_t &) ZMQ_NOEXCEPT -+ { -+ } -+ -+ template struct rebind -+ { -+ typedef secure_allocator_t other; -+ }; - }; - #endif - } diff --git a/pkgs/sage-conf/.gitignore b/pkgs/sage-conf/.gitignore index 2f96201a1c9..2fff1627b9f 100644 --- a/pkgs/sage-conf/.gitignore +++ b/pkgs/sage-conf/.gitignore @@ -1,5 +1,4 @@ /_sage_conf/_conf.py -/setup.cfg /build /dist /*.egg-info diff --git a/pkgs/sage-conf/VERSION.txt b/pkgs/sage-conf/VERSION.txt index 7694f7787b5..6bdcf0406e9 100644 --- a/pkgs/sage-conf/VERSION.txt +++ b/pkgs/sage-conf/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc4 diff --git a/pkgs/sage-conf_conda/VERSION.txt b/pkgs/sage-conf_conda/VERSION.txt index 7694f7787b5..6bdcf0406e9 100644 --- a/pkgs/sage-conf_conda/VERSION.txt +++ b/pkgs/sage-conf_conda/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc4 diff --git a/pkgs/sage-conf_pypi/VERSION.txt b/pkgs/sage-conf_pypi/VERSION.txt index 7694f7787b5..6bdcf0406e9 100644 --- a/pkgs/sage-conf_pypi/VERSION.txt +++ b/pkgs/sage-conf_pypi/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc4 diff --git a/pkgs/sage-conf_pypi/sage_root/.upstream.d b/pkgs/sage-conf_pypi/sage_root/.upstream.d new file mode 120000 index 00000000000..243d6b8c910 --- /dev/null +++ b/pkgs/sage-conf_pypi/sage_root/.upstream.d @@ -0,0 +1 @@ +../../../.upstream.d \ No newline at end of file diff --git a/pkgs/sage-conf_pypi/setup.py b/pkgs/sage-conf_pypi/setup.py index ac2b5fb3192..5a8240b6e9d 100644 --- a/pkgs/sage-conf_pypi/setup.py +++ b/pkgs/sage-conf_pypi/setup.py @@ -36,14 +36,14 @@ def run(self): if os.environ.get('CONDA_PREFIX', ''): SETENV = ':' else: - SETENV = '(. ./.homebrew-build-env 2> /dev/null || :)' + SETENV = '. ./.homebrew-build-env 2> /dev/null' SAGE_LOCAL = os.path.join(SAGE_ROOT, 'local') if os.path.exists(os.path.join(SAGE_ROOT, 'config.status')): print(f'Reusing configured SAGE_ROOT={SAGE_ROOT}') else: - cmd = f"cd {SAGE_ROOT} && {SETENV} && ./configure --prefix={SAGE_LOCAL} --with-python={sys.executable} --enable-build-as-root --enable-download-from-upstream-url --with-system-python3=force --with-sage-venv --disable-notebook --disable-sagelib --disable-sage_conf --disable-doc" + cmd = f"cd {SAGE_ROOT} && ({SETENV}; ./configure --prefix={SAGE_LOCAL} --with-python={sys.executable} --enable-build-as-root --enable-download-from-upstream-url --with-system-python3=force --with-sage-venv --disable-notebook --disable-sagelib --disable-sage_conf --disable-doc)" print(f"Running {cmd}") sys.stdout.flush() if os.system(cmd) != 0: @@ -73,10 +73,10 @@ def run(self): # (that use native libraries shared with other packages). SETMAKE = 'if [ -z "$MAKE" ]; then export MAKE="make -j$(PATH=build/bin:$PATH build/bin/sage-build-num-threads | cut -d" " -f 2)"; fi' TARGETS = 'build' - cmd = f'cd {SAGE_ROOT} && {SETENV} && {SETMAKE} && $MAKE V=0 {TARGETS}' + cmd = f'cd {SAGE_ROOT} && ({SETENV}; {SETMAKE} && $MAKE V=0 ${{SAGE_CONF_TARGETS-{TARGETS}}})' print(f"Running {cmd}", flush=True) if os.system(cmd) != 0: - raise DistutilsSetupError(f"make {TARGETS} failed") + raise SetupError(f"make ${{SAGE_CONF_TARGETS-{TARGETS}}} failed") setuptools_build_py.run(self) diff --git a/pkgs/sage-conf_pypi/tox.ini b/pkgs/sage-conf_pypi/tox.ini index b530bd10554..fadf9a9cc6c 100644 --- a/pkgs/sage-conf_pypi/tox.ini +++ b/pkgs/sage-conf_pypi/tox.ini @@ -1,12 +1,49 @@ [tox] -envlist = python +envlist = py39, py310, py311, py39-user, py310-user, py311-user -[testenv] +[testenv:.pkg] +basepython = py311 passenv = MAKE + # So that .homebrew-build-env will work + HOMEBREW setenv = - HOME={envdir} + HOME={work_dir}/home + # Passed to 'make' instead of 'build'. We test here: + # - frobby (standalone program with dependency on gmp; tests that .homebrew-build-env is invoked correctly) + # - lrcalc_python (builds a platform wheel, possibly with use of system library) + # - coxeter3 (which allows us to build sagemath-coxeter3) + SAGE_CONF_TARGETS=frobby lrcalc_python coxeter3 +[testenv:python] +package = wheel +deps = + # For the 'sage' script + sagemath-environment +setenv = + HOME={work_dir}/home +allowlist_externals = + bash + env +commands = + bash -c 'set -ex; eval $SETENV; \ + sage-config; \ + ls $(sage-config SAGE_SPKG_WHEELS); \ + sage -sh -c "frobby genideal"; \ + {envpython} -m pip install $(sage-config SAGE_SPKG_WHEELS)/*.whl' + +[testenv:python-user] +package = wheel +deps = + {[testenv:python]deps} +setenv = + {[testenv:python]setenv} + PYTHONUSERBASE={work_dir}/userbase + SETENV=export PATH={env:PYTHONUSERBASE}/bin:{env:PATH} +system_site_packages = True +install_command = env PATH={env:PYTHONUSERBASE}/bin:{env_bin_dir} python -I -m pip install --user {opts} {packages} +allowlist_externals = + {[testenv:python]allowlist_externals} commands = - sage-config + {[testenv:python]commands} diff --git a/pkgs/sage-docbuild/VERSION.txt b/pkgs/sage-docbuild/VERSION.txt index 7694f7787b5..6bdcf0406e9 100644 --- a/pkgs/sage-docbuild/VERSION.txt +++ b/pkgs/sage-docbuild/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc4 diff --git a/pkgs/sage-setup/VERSION.txt b/pkgs/sage-setup/VERSION.txt index 7694f7787b5..6bdcf0406e9 100644 --- a/pkgs/sage-setup/VERSION.txt +++ b/pkgs/sage-setup/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc4 diff --git a/pkgs/sage-sws2rst/VERSION.txt b/pkgs/sage-sws2rst/VERSION.txt index 7694f7787b5..6bdcf0406e9 100644 --- a/pkgs/sage-sws2rst/VERSION.txt +++ b/pkgs/sage-sws2rst/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc4 diff --git a/pkgs/sagemath-bliss/VERSION.txt b/pkgs/sagemath-bliss/VERSION.txt index 7694f7787b5..6bdcf0406e9 100644 --- a/pkgs/sagemath-bliss/VERSION.txt +++ b/pkgs/sagemath-bliss/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc4 diff --git a/pkgs/sagemath-categories/VERSION.txt b/pkgs/sagemath-categories/VERSION.txt index 7694f7787b5..6bdcf0406e9 100644 --- a/pkgs/sagemath-categories/VERSION.txt +++ b/pkgs/sagemath-categories/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc4 diff --git a/pkgs/sagemath-coxeter3/VERSION.txt b/pkgs/sagemath-coxeter3/VERSION.txt index 7694f7787b5..6bdcf0406e9 100644 --- a/pkgs/sagemath-coxeter3/VERSION.txt +++ b/pkgs/sagemath-coxeter3/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc4 diff --git a/pkgs/sagemath-environment/VERSION.txt b/pkgs/sagemath-environment/VERSION.txt index 7694f7787b5..6bdcf0406e9 100644 --- a/pkgs/sagemath-environment/VERSION.txt +++ b/pkgs/sagemath-environment/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc4 diff --git a/pkgs/sagemath-mcqd/VERSION.txt b/pkgs/sagemath-mcqd/VERSION.txt index 7694f7787b5..6bdcf0406e9 100644 --- a/pkgs/sagemath-mcqd/VERSION.txt +++ b/pkgs/sagemath-mcqd/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc4 diff --git a/pkgs/sagemath-meataxe/VERSION.txt b/pkgs/sagemath-meataxe/VERSION.txt index 7694f7787b5..6bdcf0406e9 100644 --- a/pkgs/sagemath-meataxe/VERSION.txt +++ b/pkgs/sagemath-meataxe/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc4 diff --git a/pkgs/sagemath-objects/VERSION.txt b/pkgs/sagemath-objects/VERSION.txt index 7694f7787b5..6bdcf0406e9 100644 --- a/pkgs/sagemath-objects/VERSION.txt +++ b/pkgs/sagemath-objects/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc4 diff --git a/pkgs/sagemath-repl/VERSION.txt b/pkgs/sagemath-repl/VERSION.txt index 7694f7787b5..6bdcf0406e9 100644 --- a/pkgs/sagemath-repl/VERSION.txt +++ b/pkgs/sagemath-repl/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc4 diff --git a/pkgs/sagemath-sirocco/VERSION.txt b/pkgs/sagemath-sirocco/VERSION.txt index 7694f7787b5..6bdcf0406e9 100644 --- a/pkgs/sagemath-sirocco/VERSION.txt +++ b/pkgs/sagemath-sirocco/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc4 diff --git a/pkgs/sagemath-tdlib/VERSION.txt b/pkgs/sagemath-tdlib/VERSION.txt index 7694f7787b5..6bdcf0406e9 100644 --- a/pkgs/sagemath-tdlib/VERSION.txt +++ b/pkgs/sagemath-tdlib/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc4 diff --git a/src/VERSION.txt b/src/VERSION.txt index 7694f7787b5..6bdcf0406e9 100644 --- a/src/VERSION.txt +++ b/src/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc4 diff --git a/src/bin/sage-env b/src/bin/sage-env index 5c1b4b87ac7..b4fca91b314 100644 --- a/src/bin/sage-env +++ b/src/bin/sage-env @@ -374,7 +374,14 @@ if [ -n "$PYTHONHOME" ]; then fi if [ -n "$SAGE_LOCAL" ]; then - LDFLAGS="-L$SAGE_LOCAL/lib -Wl,-rpath,$SAGE_LOCAL/lib $LDFLAGS" + # On OS X, test whether "ld-classic" is present in the installed + # version of the command-line tools. If so, we add "-ld_classic" + # to LD_FLAGS. See #36599. + if [ "$UNAME" = "Darwin" ] && [ -x "$(xcode-select -p)/usr/bin/ld-classic" ] ; then + LDFLAGS="-L$SAGE_LOCAL/lib -Wl,-ld_classic,-rpath,$SAGE_LOCAL/lib $LDFLAGS" + else + LDFLAGS="-L$SAGE_LOCAL/lib -Wl,-rpath,$SAGE_LOCAL/lib $LDFLAGS" + fi if [ "$UNAME" = "Linux" ]; then LDFLAGS="-Wl,-rpath-link,$SAGE_LOCAL/lib $LDFLAGS" fi diff --git a/src/bin/sage-version.sh b/src/bin/sage-version.sh index d6b42fe389d..c2a6f2749ae 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.rc0' -SAGE_RELEASE_DATE='2023-11-05' -SAGE_VERSION_BANNER='SageMath version 10.2.rc0, Release Date: 2023-11-05' +SAGE_VERSION='10.2.rc4' +SAGE_RELEASE_DATE='2023-11-17' +SAGE_VERSION_BANNER='SageMath version 10.2.rc4, Release Date: 2023-11-17' 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 d9f406d055d..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. @@ -1373,6 +1380,10 @@ REFERENCES: for closed Riemannian manifolds*, Ann. of Math. (2) 45 (1944), 747–752. +.. [CP2023] \M. Cati and D.V. Pasechnik. + *Implementing Hadamard Matrices in SageMath*. + Preprint, :arxiv:`2306.16812`, (2023). + .. [CQ2019] \A. Cassella and C. Quadrelli. *Right-angled Artin groups and enhanced Koszul properties*. Preprint, :arxiv:`1907.03824`, (2019). 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 @@

Sage Documentation

PREP Tutorials
Constructions
FAQ
-
Reference Manual
+
Reference Manual
Installation Guide
Developer Guide
diff --git a/src/doc/en/website/templates/index.html b/src/doc/en/website/templates/index.html index c63d109b4dc..cad4cbc287a 100644 --- a/src/doc/en/website/templates/index.html +++ b/src/doc/en/website/templates/index.html @@ -44,12 +44,12 @@

  • ', r'