Skip to content

Commit db92607

Browse files
authored
Merge branch 'sagemath:develop' into matrix/solve_modn
2 parents f599753 + 4ac7152 commit db92607

File tree

67 files changed

+362
-241
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+362
-241
lines changed

.github/workflows/ci-macos.yml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ jobs:
3434
uses: ./.github/workflows/macos.yml
3535
with:
3636
stage: "1"
37+
timeout: 14400
3738

3839
stage-2:
3940
uses: ./.github/workflows/macos.yml
@@ -90,7 +91,7 @@ jobs:
9091
run: |
9192
git config --global user.email "[email protected]"
9293
git config --global user.name "Sage GitHub CI"
93-
SAGE_ROOT=. SAGE_SRC=./src src/bin/sage-update-version $(git describe --tags) || echo "(ignoring error)"
94+
SAGE_ROOT=. SAGE_SRC=./src src/bin/sage-update-version $(cat src/VERSION.txt).dev0 || echo "(ignoring error)"
9495
- name: make dist
9596
run: |
9697
./configure --enable-download-from-upstream-url && make dist
@@ -108,7 +109,7 @@ jobs:
108109
fail-fast: false
109110
max-parallel: 4
110111
matrix:
111-
os: [ macos-11, macos-12 ]
112+
os: [ macos-11, macos-12, macos-14 ]
112113
tox_system_factor: [macos-nobootstrap]
113114
tox_packages_factor: [minimal]
114115
xcode_version_factor: [default]
@@ -129,7 +130,7 @@ jobs:
129130
if: contains(matrix.tox_system_factor, 'nobootstrap')
130131
- name: Move homebrew away
131132
run: |
132-
(cd /usr/local && for a in bin etc include lib opt sbin share; do sudo mv $a $a-moved; done)
133+
(cd $(brew --prefix) && for a in bin etc include lib opt sbin share; do sudo mv $a $a-moved; done)
133134
- name: Select Xcode version
134135
run: |
135136
if [ ${{ matrix.xcode_version_factor }} != default ]; then sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode_version_factor }}.app; fi
@@ -140,7 +141,8 @@ jobs:
140141
# We use a high parallelization on purpose in order to catch possible parallelization bugs in the build scripts.
141142
# For doctesting, we use a lower parallelization to avoid timeouts.
142143
run: |
143-
MAKE="make -j12" tox -e $TOX_ENV -- SAGE_NUM_THREADS=4 $TARGETS
144+
(sleep 20000; pkill make) &
145+
MAKE="make -j12" tox -e $TOX_ENV -- SAGE_NUM_THREADS=6 $TARGETS
144146
- name: Prepare logs artifact
145147
run: |
146148
mkdir -p "artifacts/$LOGS_ARTIFACT_NAME"; cp -r .tox/*/log "artifacts/$LOGS_ARTIFACT_NAME"

.github/workflows/macos.yml

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,21 @@ on:
1919
type: string
2020
# System configuration
2121
osversion_xcodeversion_toxenv_tuples:
22+
# As of 2024-02, "runs-on: macos-latest" is macos-12.
23+
# and "runs-on: macos-14" selects the new M1 runners.
24+
# https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#standard-github-hosted-runners-for-public-repositories
2225
description: 'Stringified JSON object'
2326
default: >-
24-
[["latest", "", "homebrew-macos-usrlocal-minimal"],
25-
["latest", "", "homebrew-macos-usrlocal-standard"],
26-
["11", "xcode_13.2.1", "homebrew-macos-usrlocal-minimal"],
27+
[["11", "xcode_13.2.1", "homebrew-macos-usrlocal-minimal"],
28+
["12", "", "homebrew-macos-usrlocal-minimal"],
2729
["12", "", "homebrew-macos-usrlocal-standard"],
30+
["12", "", "homebrew-macos-usrlocal-python3_xcode-standard"],
31+
["12", "", "homebrew-macos-usrlocal-maximal"],
2832
["13", "xcode_15.0", "homebrew-macos-usrlocal-standard"],
29-
["latest", "", "homebrew-macos-usrlocal-maximal"],
30-
["latest", "", "homebrew-macos-usrlocal-python3_xcode-standard"],
33+
["14", "", "homebrew-macos-opthomebrew-standard"],
3134
["latest", "", "conda-forge-macos-minimal"],
32-
["latest", "", "conda-forge-macos-standard"]]
35+
["latest", "", "conda-forge-macos-standard"],
36+
["14", "", "conda-forge-macos-standard"]]
3337
type: string
3438
extra_sage_packages:
3539
description: 'Extra Sage packages to install as system packages'
@@ -41,6 +45,10 @@ on:
4145
free_disk_space:
4246
default: false
4347
type: boolean
48+
timeout:
49+
description: 'Elapsed time (seconds) at which to kill the build'
50+
default: 20000
51+
type: number
4452
#
4553
# For use in upstream CIs.
4654
#
@@ -74,10 +82,16 @@ jobs:
7482
repository: ${{ inputs.sage_repo }}
7583
ref: ${{ inputs.sage_ref }}
7684
fetch-depth: 10000
77-
85+
- uses: actions/setup-python@v5
86+
# As of 2024-02-03, the macOS M1 runners do not have preinstalled python or pipx.
87+
# Installing pipx follows the approach of https://github.com/pypa/cibuildwheel/pull/1743
88+
id: python
89+
with:
90+
python-version: "3.8 - 3.12"
91+
update-environment: false
7892
- name: Install test prerequisites
7993
run: |
80-
brew install tox
94+
"${{ steps.python.outputs.python-path }}" -m pip install pipx
8195
- name: Download upstream artifact
8296
uses: actions/download-artifact@v3
8397
with:
@@ -129,7 +143,8 @@ jobs:
129143
*) export TARGETS_PRE="${{ inputs.targets_pre }}" TARGETS="${{ inputs.targets }} TARGETS_OPTIONAL="${{ inputs.targets_optional }}
130144
;;
131145
esac
132-
MAKE="make -j12" tox -e $TOX_ENV -- SAGE_NUM_THREADS=4 $TARGETS
146+
(sleep ${{ inputs.timeout }}; pkill make) &
147+
MAKE="make -j12" EXTRA_SAGE_PACKAGES="${{ inputs.extra_sage_packages }}" "${{ steps.python.outputs.python-path }}" -m pipx run tox -e $TOX_ENV -- SAGE_NUM_THREADS=6 $TARGETS
133148
- name: Prepare logs artifact
134149
run: |
135150
mkdir -p "artifacts/$LOGS_ARTIFACT_NAME"; cp -r .tox/*/log "artifacts/$LOGS_ARTIFACT_NAME"

CITATION.cff

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ title: SageMath
44
abstract: SageMath is a free open-source mathematics software system.
55
authors:
66
- name: "The SageMath Developers"
7-
version: 10.3.rc0
7+
version: 10.3.rc1
88
doi: 10.5281/zenodo.593563
9-
date-released: 2024-02-25
9+
date-released: 2024-02-29
1010
repository-code: "https://github.com/sagemath/sage"
1111
url: "https://www.sagemath.org/"

README.md

Lines changed: 38 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -420,16 +420,47 @@ in the Installation Guide.
420420
Alternative Installation using PyPI
421421
---------------
422422

423-
For installation of `sage` in python using `pip` you need to install `sagemath-standard`. First, activate your python virtual environment and follow these steps:
423+
For installing Sage in a Python environment from PyPI, Sage provides the
424+
`pip`-installable package [sagemath-standard](https://pypi.org/project/sagemath-standard/).
424425

425-
$ python3 -m pip install sage_conf
426-
$ ls $(sage-config SAGE_SPKG_WHEELS)
427-
$ python3 -m pip install $(sage-config SAGE_SPKG_WHEELS)/*.whl sage_setup
428-
$ python3 -m pip install --no-build-isolation sagemath-standard
426+
Unless you need to install Sage into a specific existing environment, we recommend
427+
to create and activate a fresh virtual environment, for example `~/sage-venv/`:
429428

430-
You need to install `sage_conf`, a wheelhouse of various python packages. You can list the wheels using `ls $(sage-config SAGE_SPKG_WHEELS)`. After manual installation of these wheels, you can install the sage library, `sagemath-standard`.
429+
$ python3 -m venv ~/sage-venv
430+
$ source ~/sage-venv/bin/activate
431431

432-
**NOTE:** You can find `sage` and `sagemath` pip packages but with these packages, you will encounter `ModuleNotFoundError`.
432+
As the first installation step, install [sage_conf](https://pypi.org/project/sage-conf/),
433+
which builds various prerequisite packages in a subdirectory of `~/.sage/`:
434+
435+
(sage-venv) $ python3 -m pip install -v sage_conf
436+
437+
After a successful installation, a wheelhouse provides various Python packages.
438+
You can list the wheels using the command:
439+
440+
(sage-venv) $ ls $(sage-config SAGE_SPKG_WHEELS)
441+
442+
If this gives an error saying that `sage-config` is not found, check any messages
443+
that the `pip install` command may have printed. You may need to adjust your `PATH`,
444+
for example by:
445+
446+
$ export PATH="$(python3 -c 'import sysconfig; print(sysconfig.get_path("scripts", "posix_user"))'):$PATH"
447+
448+
Now install the packages from the wheelhouse and the [sage_setup](https://pypi.org/project/sage-conf/)
449+
package, and finally install the Sage library:
450+
451+
(sage-venv) $ python3 -m pip install $(sage-config SAGE_SPKG_WHEELS)/*.whl sage_setup
452+
(sage-venv) $ python3 -m pip install --no-build-isolation -v sagemath-standard
453+
454+
The above instructions install the latest stable release of Sage.
455+
To install the latest development version instead, add the switch `--pre` to all invocations of
456+
`python3 -m pip install`.
457+
458+
**NOTE:** PyPI has various other `pip`-installable packages with the word "sage" in their names.
459+
Some of them are maintained by the SageMath project, some are provided by SageMath users for
460+
various purposes, and others are entirely unrelated to SageMath. Do not use the packages
461+
`sage` and `sagemath`. For a curated list of packages, see the chapter
462+
[Packages and Features](https://doc.sagemath.org/html/en/reference/spkg/index.html) of the
463+
Sage Reference Manual.
433464

434465
SageMath Docker images
435466
----------------------

VERSION.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
SageMath version 10.3.rc0, Release Date: 2024-02-25
1+
SageMath version 10.3.rc1, Release Date: 2024-02-29

build/pkgs/configure/checksums.ini

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
tarball=configure-VERSION.tar.gz
2-
sha1=a3fc8c3bf9198d28a8f2d5a08cffdcf519150b77
3-
md5=32f4f1763765232dc7e7431d5e48e129
4-
cksum=708121316
2+
sha1=b0dfc1d5886366b5c58354527810c1dbeffd78a3
3+
md5=c2f9837bcf2823d5b2f36063ebeedb38
4+
cksum=3535625335
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0fb793fa91a0b46de452036b521cbbaeee878340
1+
686e933eb32ade977ed51836a33424e2095e5408

build/pkgs/dsdp/spkg-install.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
cd src
22
cp ../patches/CMakeLists.txt .
33
sdh_cmake -DCMAKE_BUILD_TYPE=Release \
4+
-DCMAKE_VERBOSE_MAKEFILE=ON \
45
-DBUILD_SHARED_LIBS=ON \
56
-DBLA_VENDOR=OpenBLAS \
67
-DBLAS_LIBRARIES="$(pkg-config --libs blas)" \

build/pkgs/meson/checksums.ini

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
tarball=meson-VERSION.tar.gz
2-
sha1=97e766951553ec35315712f0a27d5554a010d4c3
3-
md5=69da4c63ef06c9d3bcc00ce89abb306f
4-
cksum=2424401184
5-
upstream_url=https://pypi.io/packages/source/m/meson/meson-VERSION.tar.gz
1+
tarball=meson-VERSION-py3-none-any.whl
2+
sha1=baf5b9bc9ca97f18c7dc87cfaf0e1dc4d617a4cf
3+
md5=d418e644c04e55872ce3d7b6de007dbe
4+
cksum=559088366
5+
upstream_url=https://pypi.io/packages/py3/m/meson/meson-VERSION-py3-none-any.whl

build/pkgs/meson/package-version.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.2.3
1+
1.3.1

0 commit comments

Comments
 (0)