Skip to content

Commit 2de57b5

Browse files
Merge branch 'sagemath:develop' into 39314CoefficientPowerSeries
2 parents 147de73 + 871ba9d commit 2de57b5

File tree

128 files changed

+1986
-597
lines changed

Some content is hidden

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

128 files changed

+1986
-597
lines changed

.github/workflows/build.yml

Lines changed: 0 additions & 186 deletions
Original file line numberDiff line numberDiff line change
@@ -76,190 +76,8 @@ env:
7676
EXTRA_CONFIGURE_ARGS: --enable-fat-binary
7777

7878
jobs:
79-
test-new:
80-
runs-on: ubuntu-latest
81-
outputs:
82-
build_targets: ${{ steps.build-targets.outputs.build_targets }}
83-
services:
84-
# https://docs.docker.com/build/ci/github-actions/local-registry/
85-
registry:
86-
image: registry:2
87-
ports:
88-
- 5000:5000
89-
steps:
90-
- name: Maximize build disk space
91-
uses: easimon/maximize-build-space@v10
92-
with:
93-
# need space in /var for Docker images
94-
root-reserve-mb: 30000
95-
remove-dotnet: true
96-
remove-android: true
97-
remove-haskell: true
98-
remove-codeql: true
99-
remove-docker-images: true
100-
101-
- name: Checkout
102-
id: checkout
103-
uses: actions/checkout@v4
104-
105-
- name: Get changed files and packages
106-
id: changed-files
107-
uses: tj-actions/changed-files@v46
108-
with:
109-
# File extensions for doctests per sage.doctest.control.skipfile
110-
# Also src/sage/doctests/tests/ are excluded because of nodoctest file
111-
# which would make sage.doctest.control.skipdir return True
112-
files_yaml: |
113-
configures:
114-
- 'build/pkgs/*/spkg-configure.m4'
115-
pkgs:
116-
- 'build/pkgs/**'
117-
- '!build/pkgs/_**'
118-
- '!build/pkgs/configure/**'
119-
- 'pkgs/**'
120-
doctests:
121-
- 'src/**/*.{py,pyx,pxd,pxi,sage,spyx,rst,tex}'
122-
- '!src/{setup,conftest*}.py'
123-
- '!src/sage/doctest/tests/*'
124-
125-
- name: Determine targets to build
126-
id: build-targets
127-
run: |
128-
uninstall_targets=$(echo $(
129-
for a in '' ${{ steps.changed-files.outputs.configures_all_changed_files }}; do
130-
# Extract package name from the file path and append '-uninstall'
131-
echo $a | sed -E 's,build/pkgs/([a-z0-9][_.a-z0-9]*)/spkg-configure[.]m4 *,\1-uninstall,'
132-
done | sort -u # Sort and ensure uniqueness
133-
))
134-
build_targets=$(echo $(
135-
for a in '' ${{ steps.changed-files.outputs.pkgs_all_changed_files }}; do
136-
# Extract package name, replace '-' with '_', and strip extra parts from the path
137-
SPKG=$(echo $a | sed -E 's,-,_,g;s,(build/)?pkgs/([a-z0-9][-_.a-z0-9]*)/[^ ]* *,\2,;')
138-
# Check if key files exist in the package directory
139-
if [ -f "build/pkgs/$SPKG/checksums.ini" ] || \
140-
[ -f "build/pkgs/$SPKG/requirements.txt" ] || \
141-
[ -f "build/pkgs/$SPKG/spkg-install" ]; then
142-
echo "$SPKG-ensure" # add the "$SPKG-ensure" target
143-
fi
144-
done | sort -u # Sort and ensure uniqueness
145-
))
146-
if [ -n "$uninstall_targets" ]; then
147-
echo "build_targets=$uninstall_targets reconfigure $build_targets ci-build-with-fallback" >> $GITHUB_OUTPUT
148-
else
149-
echo "build_targets=$build_targets ci-build-with-fallback" >> $GITHUB_OUTPUT
150-
fi
151-
cat $GITHUB_OUTPUT
152-
153-
- uses: actions/checkout@v4
154-
with:
155-
ref: ${{ github.base_ref }}
156-
path: worktree-base
157-
if: github.base_ref && steps.changed-files.outputs.pkgs_all_changed_files
158-
159-
- name: Compute metrics
160-
run: |
161-
export PATH=build/bin:$PATH
162-
if [ -d worktree-base ]; then
163-
(echo "# $GITHUB_BASE_REF"; SAGE_ROOT=worktree-base sage-package metrics :all:) > base-metrics.txt
164-
(echo "# $GITHUB_REF"; sage-package metrics :all:) > metrics.txt
165-
diff --color=always --width=100 --side-by-side --left-column base-metrics.txt metrics.txt || true
166-
else
167-
sage-package metrics :all:
168-
fi
169-
170-
- name: Install test prerequisites
171-
# From docker.yml
172-
run: |
173-
sudo DEBIAN_FRONTEND=noninteractive apt-get update
174-
sudo DEBIAN_FRONTEND=noninteractive apt-get install tox
175-
sudo apt-get clean
176-
df -h
177-
178-
- name: Merge CI fixes from sagemath/sage
179-
# From docker.yml
180-
# This step needs to happen after the commit sha is put in DOCKER_TAG
181-
# so that multi-stage builds can work correctly.
182-
run: |
183-
mkdir -p upstream
184-
.ci/merge-fixes.sh 2>&1 | tee upstream/ci_fixes.log
185-
env:
186-
GH_TOKEN: ${{ github.token }}
187-
SAGE_CI_FIXES_FROM_REPOSITORIES: ${{ vars.SAGE_CI_FIXES_FROM_REPOSITORIES }}
188-
189-
# Building
190-
191-
- name: Generate Dockerfile
192-
# From docker.yml
193-
run: |
194-
tox -e ${{ env.TOX_ENV }}
195-
cp .tox/${{ env.TOX_ENV }}/Dockerfile .
196-
env:
197-
# Only generate the Dockerfile, do not run 'docker build' here
198-
DOCKER_TARGETS: ""
199-
200-
- name: Set up Docker Buildx
201-
uses: docker/setup-buildx-action@v3
202-
with:
203-
driver-opts: network=host
204-
205-
- name: Build Docker image
206-
id: image
207-
uses: docker/build-push-action@v6
208-
with:
209-
# push and load may not be set together at the moment
210-
#
211-
# We are using "push" (to the local registry) because it was
212-
# more reliable than "load", for which we observed random failure
213-
# conditions in which the built image could not be found.
214-
#
215-
push: ${{ steps.changed-files.outputs.doctests_all_changed_files && true || false }}
216-
load: false
217-
context: .
218-
tags: ${{ env.BUILD_IMAGE }}
219-
target: with-targets
220-
cache-from: type=gha
221-
cache-to: type=gha,mode=max
222-
build-args: |
223-
NUMPROC=6
224-
USE_MAKEFLAGS=-k V=0 SAGE_NUM_THREADS=4 --output-sync=recurse
225-
TARGETS_PRE=build/make/Makefile
226-
TARGETS=${{ steps.build-targets.outputs.build_targets }}
227-
228-
- name: Start container
229-
id: container
230-
# Try to continue when "exporting to GitHub Actions Cache" failed with timeout
231-
if: (success() || failure()) && steps.changed-files.outputs.doctests_all_changed_files
232-
run: |
233-
docker run --name BUILD -dit \
234-
--mount type=bind,src=$(pwd),dst=$(pwd) \
235-
--workdir $(pwd) \
236-
${{ env.BUILD_IMAGE }} /bin/sh
237-
238-
# Testing
239-
240-
- name: Check that all modules can be imported
241-
if: (success() || failure()) && steps.container.outcome == 'success' && steps.changed-files.outputs.doctests_all_changed_files
242-
run: |
243-
# Increase the length of the lines in the "short summary"
244-
export COLUMNS=120
245-
# The following command checks that all modules can be imported.
246-
# The output also includes a long list of modules together with the number of tests in each module.
247-
# This can be ignored.
248-
./sage -python -m pip install pytest-xdist
249-
./sage -python -m pytest -c tox.ini -qq --doctest --collect-only || true
250-
shell: sh .ci/docker-exec-script.sh BUILD /sage {0}
251-
252-
- name: Test changed files
253-
if: (success() || failure()) && steps.container.outcome == 'success' && steps.changed-files.outputs.doctests_all_changed_files
254-
run: |
255-
export MAKE="make -j2 --output-sync=recurse" SAGE_NUM_THREADS=4
256-
# https://github.com/tj-actions/changed-files?tab=readme-ov-file#outputs-
257-
./sage -t --long --format github -p4 ${{ steps.changed-files.outputs.doctests_all_changed_files }}
258-
shell: sh .ci/docker-exec-script.sh BUILD /sage {0}
259-
26079
test-long:
26180
runs-on: ubuntu-latest
262-
needs: [test-new]
26381
services:
26482
# https://docs.docker.com/build/ci/github-actions/local-registry/
26583
registry:
@@ -334,8 +152,6 @@ jobs:
334152
context: .
335153
tags: ${{ env.BUILD_IMAGE }}
336154
target: with-targets
337-
cache-from: type=gha
338-
cache-to: type=gha,mode=max
339155
build-args: |
340156
NUMPROC=6
341157
USE_MAKEFLAGS=-k V=0 SAGE_NUM_THREADS=4 --output-sync=recurse
@@ -454,8 +270,6 @@ jobs:
454270
context: .
455271
tags: ${{ env.BUILD_IMAGE }}
456272
target: with-targets
457-
cache-from: type=gha
458-
cache-to: type=gha,mode=max
459273
build-args: |
460274
NUMPROC=6
461275
USE_MAKEFLAGS=-k V=0 SAGE_NUM_THREADS=4 --output-sync=recurse

.github/workflows/ci-meson.yml

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,23 +14,31 @@ concurrency:
1414
group: ${{ github.workflow }}-${{ github.ref }}
1515
cancel-in-progress: true
1616

17+
permissions:
18+
contents: read
19+
1720
jobs:
1821
test:
19-
name: Conda (${{ matrix.os }}, Python ${{ matrix.python }}${{ matrix.editable && ', editable' || '' }})
22+
name: Conda (${{ matrix.os }}, Python ${{ matrix.python }}, ${{ matrix.tests }}${{ matrix.editable && ', editable' || '' }})
2023
runs-on: ${{ matrix.os }}-latest
2124

2225
strategy:
2326
fail-fast: false
2427
matrix:
25-
os: [ubuntu, macos]
28+
os: ['ubuntu', 'macos']
2629
python: ['3.11', '3.12']
30+
tests: ['all']
2731
editable:
2832
${{ fromJson(github.event_name == 'pull_request' && '[false]' || '[false, true]') }}
2933
include:
34+
- os: 'ubuntu'
35+
python: '3.12'
36+
tests: 'new'
3037
# one additional editable run in pull_request, this has no effect if not pull_request
31-
- os: ubuntu
38+
- os: 'ubuntu'
3239
python: 3.12
3340
editable: true
41+
tests: 'all'
3442

3543
steps:
3644
- uses: actions/checkout@v4
@@ -41,6 +49,17 @@ jobs:
4149
env:
4250
GH_TOKEN: ${{ github.token }}
4351

52+
- name: Mark new files as uncommited
53+
if: matrix.tests == 'new'
54+
run: |
55+
# List remotes (for debugging)
56+
git remote -v
57+
# Reset the branch to develop
58+
git fetch origin develop
59+
git reset --soft origin/develop
60+
# Show uncommitted changes
61+
git status
62+
4463
- name: Cache conda packages
4564
uses: actions/cache@v4
4665
with:
@@ -83,6 +102,7 @@ jobs:
83102
# this step must be after build, because meson.build creates a number of __init__.py files
84103
# that is needed to make tools/update-meson.py run correctly
85104
shell: bash -l {0}
105+
if: matrix.tests == 'all'
86106
run: |
87107
python3 tools/update-meson.py
88108
if ! ./tools/test-git-no-uncommitted-changes; then
@@ -103,7 +123,17 @@ jobs:
103123
# If editable then deleting the directory will cause sage to detect rebuild, which will cause ninja to fail
104124
# so we don't delete the directory in this case
105125
${{ matrix.editable && 'true' || 'rm -R ./src/sage_setup/' }}
106-
./sage -t --all -p4 --format github
126+
./sage -t --${{ matrix.tests }} -p4 --format github
127+
128+
- name: Check that all modules can be imported
129+
shell: bash -l {0}
130+
run: |
131+
# Increase the length of the lines in the "short summary"
132+
export COLUMNS=120
133+
# The following command checks that all modules can be imported.
134+
# The output also includes a long list of modules together with the number of tests in each module.
135+
# This can be ignored.
136+
pytest -qq --doctest --collect-only || true
107137
108138
- name: Upload log
109139
uses: actions/[email protected]

.github/workflows/dist.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -275,10 +275,6 @@ jobs:
275275
run: |
276276
"${{ steps.python.outputs.python-path }}" -m cibuildwheel unpacked/sagemath*objects*
277277
278-
- name: sagemath-categories
279-
run: |
280-
"${{ steps.python.outputs.python-path }}" -m cibuildwheel unpacked/sagemath*categories*
281-
282278
- name: sagemath-bliss
283279
run: |
284280
"${{ steps.python.outputs.python-path }}" -m cibuildwheel unpacked/sagemath*bliss*
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Upstream packages as uploaded as GitHub release assets.
22
# This file is automatically updated by the sage-update-version script.
3+
https://github.com/sagemath/sage/releases/download/10.7/
34
https://github.com/sagemath/sage/releases/download/10.6/
45
https://github.com/sagemath/sage/releases/download/10.5/
5-
https://github.com/sagemath/sage/releases/download/10.4/

.vscode/settings.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,9 @@
107107
"zmax",
108108
"zmin"
109109
],
110-
"editor.formatOnType": true,
110+
"[python]": {
111+
"editor.defaultFormatter": "charliermarsh.ruff"
112+
},
111113
"esbonio.sphinx.confDir": "",
112114
// Don't update the settings.json file with values inferred from Meson (we provide them manually)
113115
"mesonbuild.modifySettings": false,

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.6.rc0
7+
version: 10.7.beta0
88
doi: 10.5281/zenodo.8042260
9-
date-released: 2025-03-22
9+
date-released: 2025-04-02
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.6.rc0, Release Date: 2025-03-22
1+
SageMath version 10.7.beta0, Release Date: 2025-04-02

build/pkgs/configure/checksums.ini

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
tarball=configure-VERSION.tar.gz
2-
sha1=6a3a8b4a86d0190648e544e019839b1865e13fa6
3-
sha256=75113ef3d3ddffb5c671738d040cf84501b9ac12b38036e5443f53f9fd837368
2+
sha1=3371667ee074aefdde8fc64ad60928a29a1e3578
3+
sha256=4e93801f29ba7d242285ed1461300586b50db56474e84cefe0b793f8dbf54842
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
d72c36f6bbc93f7756e1138cd5659fff5c50fc62
1+
a2b47d65bcbe9d176b07208feb6aae513fc41244

build/pkgs/contourpy/checksums.ini

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
tarball=contourpy-VERSION.tar.gz
2-
sha1=eb8520cb7172aa8b957d8ba2d09e8f6d9a068d2a
3-
sha256=96ba37c2e24b7212a77da85004c38e7c4d155d3e72a45eeaf22c1f03f607e8ab
2+
sha1=6ff01b119c4c84785814c5f5645c9e8f62d0f2a1
3+
sha256=dfd97abd83335045a913e3bcc4a09c0ceadbe66580cf573fe961f4a825efa699
44
upstream_url=https://files.pythonhosted.org/packages/source/c/contourpy/contourpy-VERSION.tar.gz

0 commit comments

Comments
 (0)