Skip to content

Commit ff9cfd6

Browse files
committed
merge 10.4beta
2 parents 638fe01 + c4363fc commit ff9cfd6

File tree

3,650 files changed

+11426
-10447
lines changed

Some content is hidden

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

3,650 files changed

+11426
-10447
lines changed

.devcontainer/onCreate-conda.sh

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,4 @@ conda init bash
88

99
# Build sage
1010
conda run -n sage-dev ./bootstrap
11-
conda run -n sage-dev ./configure --with-python=/opt/conda/envs/sage-dev/bin/python --prefix=/opt/conda/envs/sage-dev
12-
conda run -n sage-dev pip install --no-build-isolation -v -v -e ./pkgs/sage-conf ./pkgs/sage-setup
1311
conda run -n sage-dev pip install --no-build-isolation -v -v -e ./src

.github/workflows/ci-conda.yml

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ jobs:
5454
SAGE_CI_FIXES_FROM_REPOSITORIES: ${{ vars.SAGE_CI_FIXES_FROM_REPOSITORIES }}
5555

5656
- name: Cache conda packages
57-
uses: actions/cache@v3
57+
uses: actions/cache@v4
5858
with:
5959
path: ~/conda_pkgs_dir
6060
key:
@@ -77,21 +77,16 @@ jobs:
7777
conda info
7878
conda list
7979
80-
- name: Configure
80+
- name: Bootstrap
8181
shell: bash -l {0}
8282
continue-on-error: true
8383
run: |
8484
./bootstrap
85-
echo "::add-matcher::.github/workflows/configure-systempackage-problem-matcher.json"
86-
./configure --enable-build-as-root --with-python=$CONDA_PREFIX/bin/python --prefix=$CONDA_PREFIX --enable-system-site-packages $(for pkg in $(./sage -package list :standard: --has-file spkg-configure.m4 --has-file distros/conda.txt --exclude rpy2); do echo --with-system-$pkg=force; done)
87-
echo "::remove-matcher owner=configure-system-package-warning::"
88-
echo "::remove-matcher owner=configure-system-package-error::"
8985
9086
- name: Build
9187
shell: bash -l {0}
9288
run: |
9389
# Use --no-deps and pip check below to verify that all necessary dependencies are installed via conda.
94-
pip install --no-build-isolation --no-deps -v -v -e ./pkgs/sage-conf ./pkgs/sage-setup
9590
pip install --no-build-isolation --no-deps --config-settings editable_mode=compat -v -v -e ./src
9691
env:
9792
SAGE_NUM_THREADS: 2

.github/workflows/dist.yml

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,9 @@ jobs:
116116
- os: ubuntu-latest
117117
arch: i686
118118
- os: macos-latest
119-
arch: auto
119+
arch: x86_64
120+
- os: macos-14
121+
arch: arm64
120122
env:
121123
# SPKGs to install as system packages
122124
SPKGS: _bootstrap _prereq
@@ -141,6 +143,14 @@ jobs:
141143
name: dist
142144
path: dist
143145

146+
- uses: actions/setup-python@v5
147+
# As of 2024-02-03, the macOS M1 runners do not have preinstalled python or pipx.
148+
# Installing pipx follows the approach of https://github.com/pypa/cibuildwheel/pull/1743
149+
id: python
150+
with:
151+
python-version: "3.8 - 3.12"
152+
update-environment: false
153+
144154
- name: Build platform wheels
145155
# We build the wheels from the sdists so that MANIFEST filtering becomes effective.
146156
# But we must run cibuildwheel with the unpacked source directory, not a tarball,
@@ -151,12 +161,13 @@ jobs:
151161
# This is unfortunately repeated for each of the packages that we build wheels for
152162
# because CIBW starts with a fresh container on each invocation.
153163
run: |
164+
"${{ steps.python.outputs.python-path }}" -m pip install pipx
154165
export PATH=build/bin:$PATH
155166
export CIBW_BEFORE_ALL="( $(sage-print-system-package-command debian --yes --no-install-recommends install $(sage-get-system-packages debian $SPKGS)) || $(sage-print-system-package-command fedora --yes --no-install-recommends install $(sage-get-system-packages fedora $SPKGS | sed s/pkg-config/pkgconfig/)) || ( $(sage-print-system-package-command homebrew --yes --no-install-recommends install $(sage-get-system-packages homebrew $SPKGS)) || echo error ignored) ) && ./bootstrap && ./configure --enable-build-as-root && make -j4 V=0 $TARGETS_PRE"
156167
mkdir -p unpacked
157168
for pkg in sagemath-objects sagemath-categories; do
158169
(cd unpacked && tar xfz - ) < dist/$pkg*.tar.gz
159-
pipx run cibuildwheel==2.16.2 unpacked/$pkg*
170+
"${{ steps.python.outputs.python-path }}" -m pipx run cibuildwheel==2.17.0 unpacked/$pkg*
160171
done
161172
162173
- uses: actions/upload-artifact@v3

.github/workflows/pr-labeler.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# This action automatically labels Pull-Requests
2+
# based on files edited and no of lines changed.
3+
name: Size Labeler/Checker
4+
on:
5+
pull_request_target:
6+
types:
7+
- opened
8+
- reopened
9+
- synchronize
10+
- ready_for_review
11+
- review_requested
12+
- edited
13+
jobs:
14+
label-changes:
15+
if: vars.SMALL_THRESHOLD && vars.MODERATE_THRESHOLD && vars.LARGE_THRESHOLD && github.event.pull_request.draft == false
16+
runs-on: ubuntu-latest
17+
permissions:
18+
pull-requests: write
19+
steps:
20+
- name: Checkout code
21+
uses: actions/checkout@v4
22+
with:
23+
ref: ${{ github.event.pull_request.head.sha }}
24+
25+
- name: Add labels based on size
26+
run: |
27+
git fetch origin $BASE_SHA
28+
chmod a+x .github/workflows/set_labels_by_changes.sh
29+
.github/workflows/set_labels_by_changes.sh
30+
env:
31+
BASE_SHA: ${{ github.base_ref }}
32+
PR_BASE_SHA: ${{ github.event.pull_request.base.sha }}
33+
PR_HEAD_SHA: ${{ github.event.pull_request.head.sha }}
34+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
35+
REPOSITORY: ${{ github.repository }}
36+
PR_NUMBER: ${{ github.event.pull_request.number}}
37+
SMALL_THRESHOLD: ${{ vars.SMALL_THRESHOLD }}
38+
MODERATE_THRESHOLD: ${{ vars.MODERATE_THRESHOLD }}
39+
LARGE_THRESHOLD: ${{ vars.LARGE_THRESHOLD }}
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
#!/usr/bin/env bash
2+
3+
echo 'set_labels_by_changes.sh called with environment:'
4+
echo "BASE SHA: $PR_BASE_SHA"
5+
echo "HEAD SHA: $PR_HEAD_SHA"
6+
echo "SMALL THRESHOLD $SMALL_THRESHOLD"
7+
echo "MODERATE THERESHOLD: $MODERATE_THRESHOLD"
8+
echo "LARGE THRESHOLD: $LARGE_THRESHOLD"
9+
10+
# get all the changes made and changed files
11+
CHANGES=$(git diff --ignore-all-space $PR_BASE_SHA $PR_HEAD_SHA)
12+
13+
# ignore blank lines
14+
CHANGES=$(echo "$CHANGES" | grep -vE '^[\+\-]\s*$')
15+
16+
# ignore non necessary lines from git diff
17+
CHANGES=$(echo "$CHANGES" | grep -E '^[+\-]' | grep -vE '^\+\+\+|^\-\-\-')
18+
19+
# count total no of lines
20+
CHANGES=$(echo "$CHANGES" | wc -l)
21+
22+
echo "CHANGES MADE: $CHANGES"
23+
24+
AUTH_HEADER="Authorization: Bearer $GITHUB_TOKEN"
25+
26+
MINIMAL="v: minimal"
27+
SMALL="v: small"
28+
MODERATE="v: moderate"
29+
LARGE="v: large"
30+
31+
DELETE_LABELS=("$MINIMAL" "$SMALL" "$MODERATE" "$LARGE")
32+
33+
if [ "$CHANGES" -gt "$LARGE_THRESHOLD" ]; then
34+
SIZE_LABEL="$LARGE"
35+
elif [ "$CHANGES" -gt "$MODERATE_THRESHOLD" ]; then
36+
SIZE_LABEL="$MODERATE"
37+
elif [ "$CHANGES" -gt "$SMALL_THRESHOLD" ]; then
38+
SIZE_LABEL="$SMALL"
39+
else
40+
SIZE_LABEL="$MINIMAL"
41+
fi
42+
43+
DELETE_LABELS=("${DELETE_LABELS[@]//${SIZE_LABEL}/}")
44+
45+
# API for adding labels on the Pull Request
46+
API_URL="https://api.github.com/repos/$REPOSITORY/issues/$PR_NUMBER/labels"
47+
48+
echo "Adding label: ${SIZE_LABEL[@]}"
49+
for LABEL in "${SIZE_LABEL[@]}"; do
50+
curl -X POST \
51+
-H "$AUTH_HEADER" \
52+
-H "Accept: application/vnd.github+json" \
53+
-H "X-GitHub-Api-Version: 2022-11-28" \
54+
-d "{\"labels\":[\"$LABEL\"]}" \
55+
"$API_URL" >/dev/null
56+
done
57+
58+
echo "Deleting Labels:"
59+
60+
for DELETE_LABEL in "${DELETE_LABELS[@]}"; do
61+
ENCODED_LABEL=$(echo "$DELETE_LABEL" | sed 's/ /%20/g')
62+
curl -X DELETE \
63+
-H "Accept: application/vnd.github+json" \
64+
-H "$AUTH_HEADER" \
65+
-H "X-GitHub-Api-Version: 2022-11-28" \
66+
"$API_URL/$ENCODED_LABEL" >/dev/null
67+
done

.gitpod.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ tasks:
1111
&& conda config --append envs_dirs $(pwd)
1212
&& conda activate $(pwd)/venv
1313
&& ./bootstrap
14-
&& ./configure --enable-build-as-root --with-python=$CONDA_PREFIX/bin/python --prefix=$CONDA_PREFIX
15-
&& pip install --no-build-isolation -v -v -e ./pkgs/sage-conf ./pkgs/sage-setup
1614
&& pip install --no-build-isolation -v -v -e ./src
1715
# Activate conda environment, set up Trac remote
1816
# RestructuredText extension recommends python extension, although we have already installed it

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.4.beta3
7+
version: 10.4.beta4
88
doi: 10.5281/zenodo.593563
9-
date-released: 2024-04-12
9+
date-released: 2024-04-27
1010
repository-code: "https://github.com/sagemath/sage"
1111
url: "https://www.sagemath.org/"

VERSION.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
SageMath version 10.4.beta3, Release Date: 2024-04-12
1+
SageMath version 10.4.beta4, Release Date: 2024-04-27

bootstrap

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,8 @@ save () {
232232
src/environment-optional-3.[89].yml src/environment-optional-3.1[0-9].yml \
233233
src/Pipfile \
234234
src/pyproject.toml \
235-
src/requirements.txt
235+
src/requirements.txt \
236+
src/setup.cfg
236237

237238
# Update version
238239
echo "$NEWCONFVERSION" >$PKG/package-version.txt

build/bin/sage-logger

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,15 +63,15 @@ fi
6363

6464
timefile="$logdir/$logname.time"
6565
rm -f "$timefile"
66-
if /usr/bin/time -h -o /dev/null true; then
66+
if /usr/bin/time -h -o /dev/null true 2>/dev/null; then
6767
TIME="/usr/bin/time -h -o $timefile"
6868
else
6969
TIME=""
7070
fi
7171

7272
report_time ()
7373
{
74-
time=$(echo $(cat $timefile))
74+
time=$(echo $(cat $timefile 2>/dev/null))
7575
case "$time" in
7676
*m*real*|*h*real*|*[1-9][0-9].*real*|*[1-9][0-9],*real*)
7777
# at least 10 seconds wall time

build/bin/write-dockerfile.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ $ADD Makefile VERSION.txt COPYING.txt condarc.yml README.md bootstrap bootstrap-
236236
$ADD config/config.rpath config/config.rpath
237237
$ADD src/doc/bootstrap src/doc/bootstrap
238238
$ADD src/bin src/bin
239-
$ADD src/Pipfile.m4 src/pyproject.toml.m4 src/requirements.txt.m4 src/VERSION.txt src/
239+
$ADD src/Pipfile.m4 src/pyproject.toml.m4 src/requirements.txt.m4 src/setup.cfg.m4 src/VERSION.txt src/
240240
$ADD m4 ./m4
241241
$ADD pkgs pkgs
242242
$ADD build ./build

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=b9d9a4bb2d949d8f6fffe63c77ff069d59ca6e8c
3-
md5=95f8a1d22f684e3f61019ae82111e639
4-
cksum=3352815196
2+
sha1=2d6779beb2e69f0f7bddc2edc44ad275442ffd29
3+
md5=789344e03a6b57ba1538c0c760449720
4+
cksum=3806733369
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
4dd66116b58babf05bb8e4b30282638e2c0b82c3
1+
0a7b2513287af1124a358c2494b8bef4668a1882

build/pkgs/gdb/dependencies

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
mpfr zlib ncurses xz | $(PYTHON)
1+
mpfr zlib ncurses | $(PYTHON) xz
22

33
----------
44
All lines of this file are ignored except the first.

build/pkgs/gmp/dependencies

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
xz
1+
| xz
22

33
# xz is only needed to unpack the tarball when sage-bootstrap-python is Python < 3.3

build/pkgs/libgd/dependencies

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
libpng xz
1+
libpng | xz
22

33
# xz needed to unpack tarball when sage-bootstrap-python is Python < 3.3
44
----------

build/pkgs/onetbb/checksums.ini

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
tarball=onetbb-VERSION.tar.gz
2-
sha1=b991f5d882aba2182871cfe011614cc43b92aa3c
3-
md5=ba4ecedc4949f673a34b35de738a72fc
4-
cksum=211900655
2+
sha1=740e86b703f42446ddde392b73a9db3dc0f5f4cd
3+
md5=b301151120b08a17e98dcdda6e4f6011
4+
cksum=3287903962
55
upstream_url=https://github.com/oneapi-src/oneTBB/archive/refs/tags/vVERSION.tar.gz

build/pkgs/onetbb/package-version.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2021.9.0
1+
2021.11.0

build/pkgs/onetbb/patches/gcc13-154cc73ca4d359621202399cc0c3c91058e56e79.patch

Lines changed: 0 additions & 36 deletions
This file was deleted.

build/pkgs/papilo/checksums.ini

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
tarball=papilo-VERSION.tar.gz
2-
sha1=85d599ac9936aa1ddf687e04273b995522909de5
3-
md5=c41f5aa615ffc9914f8ca924947aa8cb
4-
cksum=1535425476
2+
sha1=069f64ff25cfb08c9b2a416d1d215bd5b907c877
3+
md5=d58b7c991ac1c4a863de92a404409ca8
4+
cksum=1552180280
55
upstream_url=https://github.com/scipopt/papilo/archive/refs/tags/vVERSION.tar.gz

build/pkgs/papilo/package-version.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.1.1
1+
2.2.0

build/pkgs/papilo/patches/0001-CMakeLists.txt-Do-not-require-boost-program_options-.patch

Lines changed: 0 additions & 26 deletions
This file was deleted.

build/pkgs/papilo/patches/import_memory_multiprecision.patch

Lines changed: 0 additions & 20 deletions
This file was deleted.

0 commit comments

Comments
 (0)