Skip to content

Commit bafc803

Browse files
authored
Merge branch 'develop' into rel_import_categories
2 parents 08ab87a + ebef87a commit bafc803

File tree

809 files changed

+10641
-8378
lines changed

Some content is hidden

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

809 files changed

+10641
-8378
lines changed

.ci/merge-fixes.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ else
1414
git tag -f test_base
1515
git commit -q -m "Uncommitted changes" --no-allow-empty -a
1616
for a in $PRs; do
17+
git fetch --unshallow --all > /dev/null 2>&1 && echo "Unshallowed."
1718
echo "::group::Merging PR https://github.com/$REPO/pull/$a"
1819
git tag -f test_head
1920
$GH pr checkout -b pr-$a $a
20-
git fetch --unshallow --all
2121
git checkout -q test_head
2222
if git merge --no-edit --squash -q pr-$a; then
2323
echo "::endgroup::"

.github/workflows/build.yml

+3-2
Original file line numberDiff line numberDiff line change
@@ -193,11 +193,12 @@ jobs:
193193
run: |
194194
./venv/bin/python3 -m coverage combine src/.coverage/
195195
./venv/bin/python3 -m coverage xml
196-
find . -name *coverage*
196+
mkdir -p coverage-report
197+
mv coverage.xml coverage-report/
197198
working-directory: ./worktree-image
198199

199200
- name: Upload coverage to codecov
200201
if: always() && steps.build.outcome == 'success'
201202
uses: codecov/codecov-action@v3
202203
with:
203-
files: ./worktree-image/coverage.xml
204+
directory: ./worktree-image/coverage-report

.github/workflows/ci-linux.yml

+12-25
Original file line numberDiff line numberDiff line change
@@ -34,39 +34,20 @@ permissions:
3434

3535
jobs:
3636

37-
# standard-pre for the default platform (used by build.yml etc.)
38-
default-pre:
37+
# standard-pre and standard (without ptest) for the default platform (used by build.yml etc.)
38+
default:
3939
uses: ./.github/workflows/docker.yml
4040
with:
4141
# Build from scratch
42-
docker_targets: "with-system-packages configured with-targets-pre"
42+
docker_targets: "with-system-packages configured with-targets-pre with-targets"
4343
# FIXME: duplicated from env.TARGETS
4444
targets_pre: all-sage-local
45-
tox_system_factors: >-
46-
["ubuntu-focal"]
47-
tox_packages_factors: >-
48-
["standard"]
49-
docker_push_repository: ghcr.io/${{ github.repository }}/
50-
51-
# standard for the default platform (used by build.yml etc.)
52-
default:
53-
if: ${{ success() || failure() }}
54-
needs: [default-pre]
55-
uses: ./.github/workflows/docker.yml
56-
with:
57-
# Build incrementally from previous stage (pre)
58-
incremental: true
59-
free_disk_space: true
60-
from_docker_repository: ghcr.io/${{ github.repository }}/
61-
from_docker_target: "with-targets-pre"
62-
docker_targets: "with-targets with-targets-optional"
63-
# FIXME: duplicated from env.TARGETS
6445
targets: build doc-html
6546
targets_optional: ptest
6647
tox_system_factors: >-
6748
["ubuntu-focal"]
6849
tox_packages_factors: >-
69-
["standard"]
50+
["standard"]
7051
docker_push_repository: ghcr.io/${{ github.repository }}/
7152

7253
# All platforms. This duplicates the default platform, but why not,
@@ -83,6 +64,9 @@ jobs:
8364
tox_packages_factors: >-
8465
["standard"]
8566
docker_push_repository: ghcr.io/${{ github.repository }}/
67+
# Make sure that all "standard-pre" jobs can start simultaneously,
68+
# so that runners are available by the time that "default" starts.
69+
max_parallel: 50
8670

8771
standard:
8872
if: ${{ success() || failure() }}
@@ -101,6 +85,8 @@ jobs:
10185
tox_packages_factors: >-
10286
["standard"]
10387
docker_push_repository: ghcr.io/${{ github.repository }}/
88+
# Reduce from 30 to 25 because it runs in parallel with 'standard-sitepackages' below
89+
max_parallel: 25
10490

10591
standard-sitepackages:
10692
if: ${{ success() || failure() }}
@@ -153,8 +139,6 @@ jobs:
153139

154140
minimal-pre:
155141
if: ${{ success() || failure() }}
156-
# It does not really "need" it.
157-
needs: [standard]
158142
uses: ./.github/workflows/docker.yml
159143
with:
160144
# Build from scratch
@@ -164,6 +148,9 @@ jobs:
164148
tox_packages_factors: >-
165149
["minimal"]
166150
docker_push_repository: ghcr.io/${{ github.repository }}/
151+
# Reduced from 30 because it may run in parallel with 'standard-sitepackages' above.
152+
# Calibrated for clogging the job pipeline until the "default" job has finished.
153+
max_parallel: 20
167154

168155
minimal:
169156
if: ${{ success() || failure() }}

.github/workflows/dist.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ jobs:
9999
with:
100100
user: __token__
101101
password: ${{ secrets.SAGEMATH_PYPI_API_TOKEN }}
102-
skip_existing: true
102+
skip-existing: true
103103
verbose: true
104104
if: env.CAN_DEPLOY == 'true'
105105

@@ -180,7 +180,7 @@ jobs:
180180
with:
181181
user: __token__
182182
password: ${{ secrets.SAGEMATH_PYPI_API_TOKEN }}
183-
packages_dir: wheelhouse/
184-
skip_existing: true
183+
packages-dir: wheelhouse/
184+
skip-existing: true
185185
verbose: true
186186
if: env.CAN_DEPLOY == 'true'

.github/workflows/doc-build-pdf.yml

+3-4
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,6 @@ jobs:
6666
git config --global user.email "[email protected]"
6767
git config --global user.name "Build & Test workflow"
6868
.ci/retrofit-worktree.sh worktree-image /sage
69-
# Keep track of changes to built HTML
70-
new_version=$(cat src/VERSION.txt); (cd /sage/local/share/doc/sage/html/en && find . -name "*.html" | xargs sed -i '/class="sidebar-brand-text"/s/Sage [0-9a-z.]* /Sage '$new_version' /'; git init && (echo "*.svg binary"; echo "*.pdf binary") >> .gitattributes && (echo ".buildinfo"; echo '*.inv'; echo '.git*'; echo '*.svg'; echo '*.pdf'; echo '*.png'; echo 'searchindex.js') > .gitignore; git add -A && git commit --quiet -m "old")
7169
7270
- name: Download upstream artifact
7371
uses: actions/download-artifact@v3
@@ -107,19 +105,20 @@ jobs:
107105
id: docbuild
108106
if: always() && (steps.incremental.outcome == 'success' || steps.build.outcome == 'success')
109107
run: |
110-
make doc-clean doc-uninstall; make doc-pdf
108+
make doc-clean doc-uninstall; make sagemath_doc_html-build-deps sagemath_doc_pdf-no-deps
111109
working-directory: ./worktree-image
112110
env:
113111
MAKE: make -j2 --output-sync=recurse
114112
SAGE_NUM_THREADS: 2
115113

116114
- name: Copy docs
115+
id: copy
117116
if: always() && steps.docbuild.outcome == 'success'
118117
run: |
119118
# For some reason the deploy step below cannot find /sage/...
120119
# So copy everything from there to local folder
121120
mkdir -p ./docs
122-
cp -r -L /sage/local/share/doc/sage/pdf/en/* ./docs
121+
cp -r -L /sage/local/share/doc/sage/pdf ./docs
123122
# Zip everything for increased performance
124123
zip -r docs-pdf.zip docs
125124

.github/workflows/doc-build.yml

+44-10
Original file line numberDiff line numberDiff line change
@@ -63,12 +63,12 @@ jobs:
6363
mathjax_path_to=$(SAGE_USE_CDNS=yes /sage/sage -python -c "from sage_docbuild.conf import mathjax_path; print(mathjax_path)")
6464
new_version=$(cat src/VERSION.txt)
6565
# Wipe out chronic diffs between old doc and new doc
66-
(cd /sage/local/share/doc/sage/html/en && \
66+
(cd /sage/local/share/doc/sage/html && \
6767
find . -name "*.html" | xargs sed -i -e '/class="sidebar-brand-text"/ s/Sage [0-9a-z.]* /Sage '"$new_version"' /' \
6868
-e 's;'"$mathjax_path_from"';'"$mathjax_path_to"';' \
6969
-e '\;<script type="application/vnd\.jupyter\.widget-state+json">;,\;</script>; d')
7070
# Create git repo from old doc
71-
(cd /sage/local/share/doc/sage/html/en && \
71+
(cd /sage/local/share/doc/sage/html && \
7272
git init && \
7373
(echo "*.svg binary"; echo "*.pdf binary") >> .gitattributes && \
7474
(echo ".buildinfo"; echo '*.inv'; echo '.git*'; echo '*.svg'; echo '*.pdf'; echo '*.png'; echo 'searchindex.js') > .gitignore; \
@@ -116,9 +116,9 @@ jobs:
116116
run: |
117117
set -ex
118118
export SAGE_USE_CDNS=yes
119-
mv /sage/local/share/doc/sage/html/en/.git /sage/.git-doc
119+
mv /sage/local/share/doc/sage/html/.git /sage/.git-doc
120120
make doc-clean doc-uninstall
121-
mkdir -p /sage/local/share/doc/sage/html/en/ && mv /sage/.git-doc /sage/local/share/doc/sage/html/en/.git
121+
mkdir -p /sage/local/share/doc/sage/html/ && mv /sage/.git-doc /sage/local/share/doc/sage/html/.git
122122
./config.status && make sagemath_doc_html-no-deps
123123
working-directory: ./worktree-image
124124
env:
@@ -131,9 +131,9 @@ jobs:
131131
run: |
132132
set -ex
133133
mkdir -p ./docs
134-
(cd /sage/local/share/doc/sage/html/en && git commit -a -m 'new')
134+
(cd /sage/local/share/doc/sage/html && git commit -a -m 'new')
135135
# Wipe out chronic diffs between old doc and new doc
136-
(cd /sage/local/share/doc/sage/html/en && \
136+
(cd /sage/local/share/doc/sage/html && \
137137
find . -name "*.html" | xargs sed -i -e '\;<script type="application/vnd\.jupyter\.widget-state+json">;,\;</script>; d')
138138
# Create CHANGES.html
139139
echo '<html>' > ./docs/CHANGES.html
@@ -162,7 +162,7 @@ jobs:
162162
EOF
163163
echo '</head>' >> ./docs/CHANGES.html
164164
echo '<body>' >> ./docs/CHANGES.html
165-
(cd /sage/local/share/doc/sage/html/en && git diff HEAD^; rm -rf .git) > ./docs/diff.txt
165+
(cd /sage/local/share/doc/sage/html && git diff HEAD^ -- *.html; rm -rf .git) > ./docs/diff.txt
166166
/sage/sage -python - << EOF
167167
import re, html
168168
with open('./docs/diff.txt', 'r') as f:
@@ -172,7 +172,7 @@ jobs:
172172
for block in diff_blocks:
173173
match = re.search(r'^diff --git a/(.*) b/\1', block, flags=re.MULTILINE)
174174
if match:
175-
path = match.group(1)
175+
path = 'html/' + match.group(1)
176176
out_blocks.append(f'<p class="diff"><a href="{path}">{path}</a>&emsp;</p>\n<pre><code class="language-diff">' + html.escape(block).strip() + '</code></pre>')
177177
output_text = '\n'.join(out_blocks)
178178
with open('./docs/diff.html', 'w') as f:
@@ -182,11 +182,12 @@ jobs:
182182
echo '</body>' >> ./docs/CHANGES.html
183183
echo '</html>' >>./docs/CHANGES.html
184184
rm ./docs/diff.txt ./docs/diff.html
185-
(cd /sage/local/share/doc/sage/html/en && git reset --hard HEAD)
185+
(cd /sage/local/share/doc/sage/html && git reset --hard HEAD)
186186
# For some reason the deploy step below cannot find /sage/...
187187
# So copy everything from there to local folder
188188
# We also need to replace the symlinks because netlify is not following them
189-
cp -r -L /sage/local/share/doc/sage/html/en/* ./docs
189+
cp -r -L /sage/local/share/doc/sage/html ./docs
190+
cp /sage/local/share/doc/sage/index.html ./docs
190191
# Zip everything for increased performance
191192
zip -r docs.zip docs
192193
@@ -196,3 +197,36 @@ jobs:
196197
with:
197198
name: docs
198199
path: docs.zip
200+
201+
- name: Build live doc
202+
id: buildlivedoc
203+
if: (success() || failure()) && steps.copy.outcome == 'success' && github.repository == 'sagemath/sage' && github.ref == 'refs/heads/develop'
204+
run: |
205+
set -ex
206+
export SAGE_USE_CDNS=yes
207+
export SAGE_LIVE_DOC=yes
208+
export SAGE_JUPYTER_SERVER=binder:sagemath/sage-binder-env/dev
209+
make doc-clean doc-uninstall
210+
./config.status && make sagemath_doc_html-no-deps
211+
working-directory: ./worktree-image
212+
env:
213+
MAKE: make -j2 --output-sync=recurse
214+
SAGE_NUM_THREADS: 2
215+
216+
- name: Copy live doc
217+
id: copylivedoc
218+
if: (success() || failure()) && steps.buildlivedoc.outcome == 'success'
219+
run: |
220+
set -ex
221+
mkdir -p ./livedoc
222+
cp -r -L /sage/local/share/doc/sage/html ./livedoc
223+
cp /sage/local/share/doc/sage/index.html ./livedoc
224+
zip -r livedoc.zip livedoc
225+
226+
- name: Upload live doc
227+
if: (success() || failure()) && steps.copylivedoc.outcome == 'success'
228+
uses: actions/upload-artifact@v3
229+
with:
230+
name: livedoc
231+
path: livedoc.zip
232+

.github/workflows/doc-publish.yml

+45-2
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ jobs:
7272
header: preview-comment
7373
recreate: true
7474
message: |
75-
[Documentation preview for this PR](${{ steps.deploy-netlify.outputs.NETLIFY_URL }}) (built with commit ${{ steps.source-run-info.outputs.sourceHeadSha }}; [changes](${{ steps.deploy-netlify.outputs.NETLIFY_URL }}/CHANGES.html)) is ready! :tada:
75+
[Documentation preview for this PR](${{ steps.deploy-netlify.outputs.NETLIFY_URL }}/html/en) (built with commit ${{ steps.source-run-info.outputs.sourceHeadSha }}; [changes](${{ steps.deploy-netlify.outputs.NETLIFY_URL }}/CHANGES.html)) is ready! :tada:
7676
7777
- name: Update deployment status PR check
7878
uses: myrotvorets/[email protected]
@@ -90,5 +90,48 @@ jobs:
9090

9191
- name: Report deployment url
9292
run: |
93-
echo "::notice::The documentation has being automatically deployed to Netlify. %0A ✅ Preview: ${{ steps.deploy-netlify.outputs.NETLIFY_URL }}"
93+
echo "::notice::The documentation has been deployed - ${{ steps.deploy-netlify.outputs.NETLIFY_URL }}"
94+
95+
publish-live-doc:
96+
runs-on: ubuntu-latest
97+
if: github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.head_branch == 'develop'
98+
steps:
99+
- name: Download live doc
100+
uses: actions/[email protected]
101+
with:
102+
script: |
103+
var artifacts = await github.rest.actions.listWorkflowRunArtifacts({
104+
owner: context.repo.owner,
105+
repo: context.repo.repo,
106+
run_id: ${{github.event.workflow_run.id }},
107+
});
108+
var matchArtifact = artifacts.data.artifacts.filter((artifact) => {
109+
return artifact.name == "livedoc"
110+
})[0];
111+
var download = await github.rest.actions.downloadArtifact({
112+
owner: context.repo.owner,
113+
repo: context.repo.repo,
114+
artifact_id: matchArtifact.id,
115+
archive_format: 'zip',
116+
});
117+
var fs = require('fs');
118+
fs.writeFileSync('${{github.workspace}}/livedoc.zip', Buffer.from(download.data));
119+
120+
- name: Extract live doc
121+
run: unzip livedoc.zip -d doc && unzip doc/livedoc.zip -d doc/doc
122+
123+
- name: Deploy to Netlify
124+
id: deploy-netlify
125+
uses: netlify/actions/cli@master
126+
with:
127+
args: deploy --dir=doc/doc/livedoc --message ${NETLIFY_MESSAGE} --alias ${NETLIFY_ALIAS}
128+
env:
129+
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
130+
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
131+
NETLIFY_MESSAGE: Deployed live doc
132+
NETLIFY_ALIAS: deploy-livedoc
133+
134+
- name: Report deployment url
135+
run: |
136+
echo "::notice::The live documentation has been deployed - ${{ steps.deploy-netlify.outputs.NETLIFY_URL }}"
94137

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.2.beta9
7+
version: 10.2.rc0
88
doi: 10.5281/zenodo.593563
9-
date-released: 2023-10-30
9+
date-released: 2023-11-05
1010
repository-code: "https://github.com/sagemath/sage"
1111
url: "https://www.sagemath.org/"

VERSION.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
SageMath version 10.2.beta9, Release Date: 2023-10-30
1+
SageMath version 10.2.rc0, Release Date: 2023-11-05

build/pkgs/configure/checksums.ini

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
tarball=configure-VERSION.tar.gz
2-
sha1=0f90c993748bfc21ae382ac3ce6c19b434edb36c
3-
md5=b8d9355c732997566f68b60c8a8eb9cc
4-
cksum=2280021929
2+
sha1=41ec9a0bdf6e5982204b26ce2593e4b5a1863c96
3+
md5=8ea80ef7438ed62345de677dc921af2e
4+
cksum=2979893163
+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
c0221f90a86e4b4bea4b45ff8de54727313bd755
1+
be0b5cf887fefcdf31df70be0a62b10b7929f28c

build/pkgs/cypari/distros/gentoo.txt

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
dev-python/cypari2

build/pkgs/cypari/spkg-configure.m4

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
SAGE_SPKG_CONFIGURE([cypari], [
2+
SAGE_SPKG_DEPCHECK([cysignals pari], [
3+
SAGE_PYTHON_PACKAGE_CHECK([cypari])
4+
])
5+
])
+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
dev-python/cysignals
+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
SAGE_SPKG_CONFIGURE([cysignals], [
2+
SAGE_PYTHON_PACKAGE_CHECK([cysignals])
3+
])

build/pkgs/cython/distros/conda.txt

+3-1
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
1-
cython
1+
cython>=3.0,!=3.0.3,<4.0
2+
3+
# Exclude 3.0.3 because of https://github.com/cython/cython/issues/5748
+3-1
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
1-
cython >=3.0, <4.0
1+
cython >=3.0, != 3.0.3, <4.0
2+
3+
# Exclude 3.0.3 because of https://github.com/cython/cython/issues/5748

build/pkgs/fplll/checksums.ini

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
tarball=fplll-VERSION.tar.gz
2-
sha1=8353a0db588d891951aa9760fbe490f4e308de8d
3-
md5=7e333d7d0e535d27c591271340e28865
4-
cksum=2543682321
2+
sha1=607f5922109d93ddd5a05419682511e26579f9d6
3+
md5=fa4e1f24994c0345a9530397a3369b27
4+
cksum=4174005926
55
upstream_url=https://github.com/fplll/fplll/releases/download/VERSION/fplll-VERSION.tar.gz

build/pkgs/fplll/package-version.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
5.4.4
1+
5.4.5

build/pkgs/fplll/spkg-configure.m4

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ SAGE_SPKG_CONFIGURE([fplll], [
88
dnl Trac #31025: FPLLL/FPyLLL make no guarantee regarding compatibility
99
dnl other than "whatever versions were released at the same time should work together"
1010
PKG_CHECK_MODULES([FPLLL],
11-
[fplll >= 5.4.4 fplll <= 5.4.4],
11+
[fplll >= 5.4.5 fplll <= 5.4.5],
1212
[
1313
AC_MSG_CHECKING([whether BKZ default strategy JSON is installed])
1414
AC_LANG_PUSH([C++])

0 commit comments

Comments
 (0)