Skip to content

Commit b595ff1

Browse files
authored
Merge branch 'develop' into precision_in_logexp
2 parents 492fcd4 + 766c7a0 commit b595ff1

File tree

807 files changed

+16910
-11889
lines changed

Some content is hidden

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

807 files changed

+16910
-11889
lines changed

.devcontainer/onCreate-conda.sh

+1-2
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,4 @@ mamba env create -y --file environment-3.11-linux.yml || mamba env update -y --f
1010
conda init bash
1111

1212
# Build sage
13-
conda run -n sage-dev ./bootstrap
14-
conda run -n sage-dev pip install --no-build-isolation -v -v -e ./src
13+
conda run -n sage-dev pip install --no-build-isolation -v -v -e .

.github/workflows/build.yml

+2-100
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ concurrency:
2929
#
3030
# The three workflows:
3131
#
32-
# - build.yml (with jobs test-new, test-mod, test-long),
32+
# - build.yml (with jobs test-new, test-long),
3333
# - doc-build.yml,
3434
# - doc-build-pdf.yml
3535
#
@@ -50,7 +50,7 @@ concurrency:
5050
# This baseline is transparently improved by our use of the GH Actions cache,
5151
# see https://docs.docker.com/build/ci/github-actions/cache/#cache-backend-api.
5252
#
53-
# Jobs test-mod and test-long are only started after test-new completed;
53+
# Jobs test-long is only started after test-new completed;
5454
# but the workflows doc-build.yml and doc-build-pdf.yml are started independently.
5555
#
5656
# - When nothing is cached and the 3 workflows are launched in parallel,
@@ -254,104 +254,6 @@ jobs:
254254
./sage -t --long --format github -p4 ${{ steps.changed-files.outputs.doctests_all_changed_files }}
255255
shell: sh .ci/docker-exec-script.sh BUILD /sage {0}
256256

257-
test-mod:
258-
runs-on: ubuntu-latest
259-
needs: [test-new]
260-
services:
261-
# https://docs.docker.com/build/ci/github-actions/local-registry/
262-
registry:
263-
image: registry:2
264-
ports:
265-
- 5000:5000
266-
strategy:
267-
fail-fast: false
268-
matrix:
269-
targets:
270-
- sagemath_categories-check
271-
steps:
272-
- name: Maximize build disk space
273-
uses: easimon/maximize-build-space@v10
274-
with:
275-
# need space in /var for Docker images
276-
root-reserve-mb: 30000
277-
remove-dotnet: true
278-
remove-android: true
279-
remove-haskell: true
280-
remove-codeql: true
281-
remove-docker-images: true
282-
283-
- name: Checkout
284-
id: checkout
285-
uses: actions/checkout@v4
286-
287-
- name: Install test prerequisites
288-
# From docker.yml
289-
run: |
290-
sudo DEBIAN_FRONTEND=noninteractive apt-get update
291-
sudo DEBIAN_FRONTEND=noninteractive apt-get install tox
292-
sudo apt-get clean
293-
df -h
294-
295-
- name: Merge CI fixes from sagemath/sage
296-
# From docker.yml
297-
# This step needs to happen after the commit sha is put in DOCKER_TAG
298-
# so that multi-stage builds can work correctly.
299-
run: |
300-
.ci/merge-fixes.sh
301-
env:
302-
GH_TOKEN: ${{ github.token }}
303-
304-
# Building
305-
306-
- name: Generate Dockerfile
307-
# From docker.yml
308-
run: |
309-
tox -e ${{ env.TOX_ENV }}
310-
cp .tox/${{ env.TOX_ENV }}/Dockerfile .
311-
env:
312-
# Only generate the Dockerfile, do not run 'docker build' here
313-
DOCKER_TARGETS: ""
314-
315-
- name: Set up Docker Buildx
316-
uses: docker/setup-buildx-action@v3
317-
with:
318-
driver-opts: network=host
319-
320-
- name: Build Docker image
321-
id: image
322-
uses: docker/build-push-action@v6
323-
with:
324-
push: true
325-
load: false
326-
context: .
327-
tags: ${{ env.BUILD_IMAGE }}
328-
target: with-targets
329-
cache-from: type=gha
330-
cache-to: type=gha,mode=max
331-
build-args: |
332-
NUMPROC=6
333-
USE_MAKEFLAGS=-k V=0 SAGE_NUM_THREADS=4 --output-sync=recurse
334-
TARGETS_PRE=build/make/Makefile
335-
TARGETS=${{ needs.test-new.outputs.build_targets }}
336-
337-
- name: Start container
338-
id: container
339-
if: (success() || failure())
340-
run: |
341-
docker run --name BUILD -dit \
342-
--mount type=bind,src=$(pwd),dst=$(pwd) \
343-
--workdir $(pwd) \
344-
${{ env.BUILD_IMAGE }} /bin/sh
345-
346-
# Testing
347-
348-
- name: Test modularized distributions
349-
if: (success() || failure()) && steps.container.outcome == 'success'
350-
run: |
351-
export MAKE="make -j2 --output-sync=recurse" SAGE_NUM_THREADS=4
352-
make V=0 tox-ensure && make ${{ matrix.targets }}
353-
shell: sh .ci/docker-exec-script.sh BUILD /sage {0}
354-
355257
test-long:
356258
runs-on: ubuntu-latest
357259
needs: [test-new]

.github/workflows/ci-conda.yml

+2-13
Original file line numberDiff line numberDiff line change
@@ -26,23 +26,12 @@ jobs:
2626
# On pushes to tags or branches, test the whole matrix.
2727
os: >-
2828
${{ github.event_name == 'pull_request'
29-
&& fromJson('["ubuntu-latest"]')
29+
&& fromJson('["ubuntu-latest", "macos-latest"]')
3030
|| fromJson('["ubuntu-latest", "macos-latest", "macos-13"]') }}
31-
python: >-
32-
${{ github.event_name == 'pull_request'
33-
&& fromJson('["3.9"]')
34-
|| fromJson('["3.9", "3.10", "3.11"]') }}
31+
python: ['3.11', '3.12']
3532
# Optional environment is disabled for now as its not yet working
3633
# environment: [environment, environment-optional]
3734
conda-env: [environment]
38-
# On pull requests, only test two jobs:
39-
# Ubuntu with Python 3.9, macOS (arm64) with Python 3.11.
40-
# Build & Test currently uses Python 3.10 (on ubuntu-jammy).
41-
# Together, they cover the supported minor Python versions.
42-
include: >-
43-
${{ github.event_name == 'pull_request'
44-
&& fromJson('[{"os": "macos-latest", "python": "3.11", "conda-env": "environment"}]')
45-
|| fromJson('[]') }}
4635

4736
steps:
4837
- uses: actions/checkout@v4

.github/workflows/ci-meson.yml

+14-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
fail-fast: false
2424
matrix:
2525
os: [ubuntu]
26-
python: ['3.9', '3.10', '3.11']
26+
python: ['3.11', '3.12']
2727

2828
steps:
2929
- uses: actions/checkout@v4
@@ -69,11 +69,23 @@ jobs:
6969
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
7070
export CC="ccache $CC"
7171
export CXX="ccache $CXX"
72-
pip install --no-build-isolation --config-settings=builddir=builddir . -v
72+
# Use --no-deps and pip check below to verify that all necessary dependencies are installed via conda
73+
pip install --no-build-isolation --no-deps --config-settings=builddir=builddir . -v
74+
75+
- name: Verify dependencies
76+
shell: bash -l {0}
77+
run: pip check
7378

7479
- name: Test
7580
shell: bash -l {0}
7681
run: |
7782
# We don't install sage_setup, so don't try to test it
7883
rm -R ./src/sage_setup/
7984
./sage -t --all -p4
85+
86+
- name: Upload log
87+
uses: actions/[email protected]
88+
if: failure()
89+
with:
90+
name: ${{ runner.os }}-meson-${{ matrix.python }}-log
91+
path: builddir/meson-logs/

.github/workflows/dist.yml

+31-3
Original file line numberDiff line numberDiff line change
@@ -119,10 +119,38 @@ jobs:
119119
with:
120120
name: dist
121121
path: dist
122-
- uses: softprops/action-gh-release@v2
122+
- name: Create release
123+
env:
124+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
125+
run: |
126+
latest_release_tag=$(curl -s https://api.github.com/repos/${{ github.repository }}/releases \
127+
| jq -r 'sort_by(.created_at) | last(.[]).tag_name')
128+
release_notes=$(curl -s \
129+
-X POST \
130+
-H "Accept: application/vnd.github+json" \
131+
-H "Authorization: Bearer $GITHUB_TOKEN" \
132+
-H "X-GitHub-Api-Version: 2022-11-28" \
133+
https://api.github.com/repos/${{ github.repository }}/releases/generate-notes \
134+
-d "{
135+
\"tag_name\": \"${{ github.ref_name }}\",
136+
\"previous_tag_name\": \"$latest_release_tag\"
137+
}" | jq -r '.body')
138+
# escape special characters for json
139+
release_notes=$(jq -R -s '.' <<< "$release_notes")
140+
curl -L \
141+
-X POST \
142+
-H "Accept: application/vnd.github+json" \
143+
-H "Authorization: Bearer $GITHUB_TOKEN" \
144+
-H "X-GitHub-Api-Version: 2022-11-28" \
145+
https://api.github.com/repos/${{ github.repository }}/releases \
146+
-d "{
147+
\"tag_name\": \"${{ github.ref_name }}\",
148+
\"prerelease\": ${{ contains(github.ref, 'beta') || contains(github.ref, 'rc') }},
149+
\"body\": $release_notes
150+
}"
151+
- name: Create release assets
152+
uses: softprops/action-gh-release@v2
123153
with:
124-
generate_release_notes: true
125-
prerelease: ${{ contains(github.ref, 'beta') || contains(github.ref, 'rc') }}
126154
files: |
127155
dist/*
128156
upstream/*

.github/workflows/pyright.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
eval $(sage-print-system-package-command auto --spkg --yes --no-install-recommends install git)
3333
3434
- name: Install GH CLI
35-
uses: dev-hanz-ops/[email protected].0
35+
uses: dev-hanz-ops/[email protected].1
3636
with:
3737
gh-cli-version: 2.32.0
3838

.gitignore

+4-7
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
/config.log
1919
/config.status
2020
/configure
21-
/conftest*
2221
/confdefs.h
2322

2423
/m4/sage_spkg_configures.m4
@@ -27,13 +26,11 @@
2726
# no longer generated, but may still be in user worktrees
2827
/src/lib/pkgconfig
2928

30-
# Conda environment files
31-
# The files without Python version, with -dev or in src are no longer generated
32-
# but may still be in users' directories.
29+
# Conda environment files (auto-generated)
30+
/environment-3.[0-9].yml
31+
/environment-3.[0-9][0-9].yml
32+
# The following files are no longer generated but may still be in users' directories
3333
/environment.yml
34-
/environment-3.9.yml
35-
/environment-3.10.yml
36-
/environment-3.11.yml
3734
/environment-dev-3.9.yml
3835
/environment-dev-3.10.yml
3936
/environment-dev-3.11.yml

.vscode/settings.json

+8-4
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,7 @@
1818
},
1919
"python.testing.pytestEnabled": true,
2020
"python.testing.pytestArgs": [
21-
"--rootdir=src/sage",
22-
"-c=src/tox.ini",
23-
"--doctest-modules"
21+
"--doctest"
2422
],
2523
"python.testing.unittestEnabled": false,
2624
"cSpell.words": [
@@ -110,5 +108,11 @@
110108
"zmin"
111109
],
112110
"editor.formatOnType": true,
113-
"esbonio.sphinx.confDir": ""
111+
"esbonio.sphinx.confDir": "",
112+
// Don't update the settings.json file with values inferred from Meson (we provide them manually)
113+
"mesonbuild.modifySettings": false,
114+
// Use the Meson build system for C/C++ files
115+
"C_Cpp.default.configurationProvider": "mesonbuild.mesonbuild",
116+
// Use the compile_commands.json file generated by Meson for IntelliSense
117+
"C_Cpp.default.compileCommands": "${workspaceFolder}/builddir/compile_commands.json"
114118
}

CITATION.cff

+2-2
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.beta2
7+
version: 10.6.beta6
88
doi: 10.5281/zenodo.8042260
9-
date-released: 2024-12-22
9+
date-released: 2025-02-10
1010
repository-code: "https://github.com/sagemath/sage"
1111
url: "https://www.sagemath.org/"

Makefile

+15-3
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ distclean: build-clean
173173
bootstrap-clean:
174174
rm -rf config/install-sh config/compile config/config.guess config/config.sub config/missing configure build/make/Makefile-auto.in
175175
rm -f src/doc/en/installation/*.txt
176-
find src/doc/en/reference/spkg -name index.rst -prune -o -maxdepth 1 -name "*.rst" -exec rm -f {} \+
176+
find src/doc/en/reference/spkg -maxdepth 1 -name index.rst -prune -o -name "*.rst" -exec rm -f {} \+
177177
for a in environment environment-optional src/environment src/environment-optional; do rm -f $$a.yml $$a-3.[89].yml $$a-3.1[0-9].yml; done
178178
rm -f src/requirements.txt
179179
rm -f src/setup.cfg
@@ -253,9 +253,19 @@ TEST_TARGET = $@
253253

254254
TEST = ./sage -t --logfile=$(TEST_LOG) $(TEST_FLAGS) --optional=$(TEST_OPTIONAL) $(TEST_FILES)
255255

256+
test-git-no-uncommitted-changes:
257+
@UNCOMMITTED=$$(git status --porcelain); \
258+
if [ -n "$$UNCOMMITTED" ]; then \
259+
echo "Error: the git repo has uncommitted changes:"; \
260+
echo "$$UNCOMMITTED"; \
261+
echo; \
262+
exit 1; \
263+
fi
264+
256265
test: all
257266
@echo '### make $(TEST_TARGET): Running $(TEST)' >> $(TEST_LOG)
258-
$(TEST)
267+
$(TEST); \
268+
$(MAKE) test-git-no-uncommitted-changes
259269

260270
check:
261271
@$(MAKE) test
@@ -302,7 +312,8 @@ ptestoptionallong:
302312
test-nodoc: TEST_OPTIONAL := $(TEST_OPTIONAL),!sagemath_doc_html,!sagemath_doc_pdf
303313
test-nodoc: build
304314
@echo '### make $(TEST_TARGET): Running $(TEST)' >> $(TEST_LOG)
305-
$(TEST)
315+
$(TEST); \
316+
$(MAKE) test-git-no-uncommitted-changes
306317

307318
check-nodoc:
308319
@$(MAKE) test-nodoc
@@ -387,5 +398,6 @@ list:
387398
misc-clean bdist-clean distclean bootstrap-clean maintainer-clean \
388399
test check testoptional testall testlong testoptionallong testallong \
389400
ptest ptestoptional ptestall ptestlong ptestoptionallong ptestallong \
401+
test-git-no-uncommitted-changes \
390402
list \
391403
doc-clean clean sagelib-clean build-clean

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -679,7 +679,7 @@ information, patches, and build scripts are in the accompanying
679679
part of the Sage git repository.
680680

681681
<p align="center">
682-
Copyright (C) 2005-2024 The Sage Development Team
682+
Copyright (C) 2005-2025 The Sage Development Team
683683
</p>
684684
<p align="center">
685685
https://www.sagemath.org

VERSION.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
SageMath version 10.6.beta2, Release Date: 2024-12-22
1+
SageMath version 10.6.beta6, Release Date: 2025-02-10

bootstrap

+2-2
Original file line numberDiff line numberDiff line change
@@ -224,8 +224,8 @@ save () {
224224
config/install-sh config/compile config/config.guess config/config.sub config/missing \
225225
build/make/Makefile-auto.in \
226226
src/doc/en/installation/*.txt \
227-
$(find src/doc/en/reference/spkg -name index.rst -prune -o -maxdepth 1 -name "*.rst" -print) \
228-
environment-3.[89]-*.yml environment-3.1[0-9]-*.yml \
227+
$(find src/doc/en/reference/spkg -maxdepth 1 -name index.rst -prune -o -name "*.rst" -print) \
228+
environment-3.1[0-9]-*.yml \
229229
src/pyproject.toml \
230230
src/requirements.txt \
231231
src/setup.cfg \

build/bin/sage-spkg

+8-8
Original file line numberDiff line numberDiff line change
@@ -603,14 +603,14 @@ case "$PKG_SRC" in
603603
esac
604604
605605
# Poison the proxy variable to forbid downloads in spkg-install
606-
# for normal packages
607-
case $PKG_SRC_TYPE in
608-
normal|wheel)
609-
export http_proxy=http://192.0.2.0:5187/
610-
export https_proxy=$http_proxy
611-
export ftp_proxy=$http_proxy
612-
export rsync_proxy=$http_proxy
613-
;;
606+
# for normal/wheel standard packages
607+
case "$PKG_TYPE:$PKG_SRC_TYPE" in
608+
standard:normal|standard:wheel)
609+
export http_proxy=http://192.0.2.0:5187/
610+
export https_proxy=$http_proxy
611+
export ftp_proxy=$http_proxy
612+
export rsync_proxy=$http_proxy
613+
;;
614614
esac
615615
616616
# Make sage-logger show the full logs

0 commit comments

Comments
 (0)