Skip to content

Commit c3aa9cd

Browse files
committed
Merge remote-tracking branch 'sagemath/develop' into matroid.pyx
2 parents 2c49852 + b693ea9 commit c3aa9cd

File tree

1,403 files changed

+9822
-5112
lines changed

Some content is hidden

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

1,403 files changed

+9822
-5112
lines changed

.ci/merge-fixes.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ for REPO in ${SAGE_CI_FIXES_FROM_REPOSITORIES:-sagemath/sage}; do
4242
# Considered alternative: Use https://github.com/$REPO/pull/$a.diff,
4343
# which squashes everything into one diff without commit metadata.
4444
PULL_URL="https://github.com/$REPO/pull/$a"
45+
PULL_SHORT="$REPO#$a"
4546
PULL_FILE="$REPO_FILE-$a"
4647
PATH=build/bin:$PATH build/bin/sage-download-file --quiet "$PULL_URL.patch" $PULL_FILE.patch
4748
date -u +"%Y-%m-%dT%H:%M:%SZ" > $PULL_FILE.date # Record the date, for future reference
@@ -67,7 +68,7 @@ for REPO in ${SAGE_CI_FIXES_FROM_REPOSITORIES:-sagemath/sage}; do
6768
git am --signoff --show-current-patch=diff
6869
echo "--------------------------------------------------------------------8<-----------------------------"
6970
echo "::endgroup::"
70-
echo "Failure applying $PULL_URL as a patch, resetting"
71+
echo "Failure applying $PULL_SHORT as a patch, resetting"
7172
git am --signoff --abort
7273
fi
7374
done

.github/workflows/build.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,13 @@ jobs:
3535
uses: actions/checkout@v4
3636
- name: Merge CI fixes from sagemath/sage
3737
run: |
38-
.ci/merge-fixes.sh
38+
mkdir -p upstream
39+
.ci/merge-fixes.sh 2>&1 | tee upstream/ci_fixes.log
3940
env:
4041
GH_TOKEN: ${{ github.token }}
4142
SAGE_CI_FIXES_FROM_REPOSITORIES: ${{ vars.SAGE_CI_FIXES_FROM_REPOSITORIES }}
4243
- name: Store CI fixes in upstream artifact
4344
run: |
44-
mkdir -p upstream
4545
if git format-patch --stdout test_base > ci_fixes.patch; then
4646
cp ci_fixes.patch upstream/
4747
fi

.github/workflows/ci-linux.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ jobs:
3939
uses: ./.github/workflows/docker.yml
4040
with:
4141
# Build from scratch
42+
free_disk_space: true
4243
docker_targets: "with-system-packages configured with-targets-pre with-targets"
4344
# FIXME: duplicated from env.TARGETS
4445
targets_pre: all-sage-local

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,13 @@ jobs:
2929
uses: actions/checkout@v4
3030
- name: Merge CI fixes from sagemath/sage
3131
run: |
32-
.ci/merge-fixes.sh
32+
mkdir -p upstream
33+
.ci/merge-fixes.sh 2>&1 | tee upstream/ci_fixes.log
3334
env:
3435
GH_TOKEN: ${{ github.token }}
3536
SAGE_CI_FIXES_FROM_REPOSITORIES: ${{ vars.SAGE_CI_FIXES_FROM_REPOSITORIES }}
3637
- name: Store CI fixes in upstream artifact
3738
run: |
38-
mkdir -p upstream
3939
if git format-patch --stdout test_base > ci_fixes.patch; then
4040
cp ci_fixes.patch upstream/
4141
fi

.github/workflows/doc-build.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,13 @@ jobs:
2424
uses: actions/checkout@v4
2525
- name: Merge CI fixes from sagemath/sage
2626
run: |
27-
.ci/merge-fixes.sh
27+
mkdir -p upstream
28+
.ci/merge-fixes.sh 2>&1 | tee upstream/ci_fixes.log
2829
env:
2930
GH_TOKEN: ${{ github.token }}
3031
SAGE_CI_FIXES_FROM_REPOSITORIES: ${{ vars.SAGE_CI_FIXES_FROM_REPOSITORIES }}
3132
- name: Store CI fixes in upstream artifact
3233
run: |
33-
mkdir -p upstream
3434
if git format-patch --stdout test_base > ci_fixes.patch; then
3535
cp ci_fixes.patch upstream/
3636
fi

.github/workflows/docker.yml

Lines changed: 43 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -248,9 +248,8 @@ jobs:
248248
- name: Copy logs from the Docker image or build container
249249
run: |
250250
mkdir -p "artifacts/$LOGS_ARTIFACT_NAME"
251-
cp -r .tox/$TOX_ENV/Dockerfile .tox/$TOX_ENV/log "artifacts/$LOGS_ARTIFACT_NAME"
252-
if [ -f .tox/$TOX_ENV/Dockertags ]; then CONTAINERS=$(docker create $(tail -1 .tox/$TOX_ENV/Dockertags) /bin/bash || true); fi
253-
if [ -n "$CONTAINERS" ]; then for CONTAINER in $CONTAINERS; do for ARTIFACT in /sage/logs; do docker cp $CONTAINER:$ARTIFACT artifacts/$LOGS_ARTIFACT_NAME && HAVE_LOG=1; done; if [ -n "$HAVE_LOG" ]; then break; fi; done; fi
251+
cp -r .tox/$TOX_ENV/* "artifacts/$LOGS_ARTIFACT_NAME"
252+
rm -rf "artifacts/$LOGS_ARTIFACT_NAME"/{bin,lib,pyvenv.cfg}
254253
if: always()
255254
- uses: actions/upload-artifact@v3
256255
with:
@@ -262,9 +261,46 @@ jobs:
262261
run: |
263262
.github/workflows/scan-logs.sh "artifacts/$LOGS_ARTIFACT_NAME"
264263
if: always()
265-
- name: List docker images
264+
- name: List Docker images
266265
run: |
267-
if [ -f .tox/$TOX_ENV/Dockertags ]; then
268-
cat .tox/$TOX_ENV/Dockertags
266+
if [ -n "$DOCKER_PUSH_REPOSITORY" -a -f .tox/$TOX_ENV/Dockertags.pushed ]; then
267+
set -- $(cat .tox/$TOX_ENV/Dockertags.pushed)
268+
case $# in
269+
1) images="image"; one_image="the image";;
270+
*) images="images"; one_image="one of the images";;
271+
esac
272+
echo "::notice title=Docker $images pushed::Pushed $images $*)"
273+
echo
274+
echo "To pull $one_image and enter the container, type:"
275+
echo
276+
for TAG in $*; do
277+
echo " \$ docker run -it $TAG bash"
278+
done
279+
echo
280+
echo "To use $one_image as the base for an incremental build, type:"
281+
echo
282+
TOX_ENV_SANS_INCREMENTAL=${TOX_ENV/-incremental/}
283+
DOCKER_IMAGE=${TOX_ENV_SANS_INCREMENTAL#docker-}
284+
for TAG in $*; do
285+
echo -n " \$"
286+
if [ "$DOCKER_PUSH_REPOSITORY" != "ghcr.io/sagemath/sage/" ]; then
287+
echo -n " FROM_DOCKER_REPOSITORY=$DOCKER_PUSH_REPOSITORY"
288+
fi
289+
eval DOCKER_TARGET=\${TAG#*$DOCKER_IMAGE-}
290+
DOCKER_TARGET=${DOCKER_TARGET%:*}
291+
if [ "$DOCKER_TARGET" != "with-targets" ]; then
292+
echo -n " FROM_DOCKER_TARGET=$DOCKER_TARGET"
293+
fi
294+
echo " FROM_DOCKER_TAG=${TAG#*:} tox -e $TOX_ENV_SANS_INCREMENTAL-incremental"
295+
done
296+
elif [ -n "$DOCKER_PUSH_REPOSITORY" -a -f .tox/$TOX_ENV/Dockertags ]; then
297+
echo "Unable to push Docker images to $DOCKER_PUSH_REPOSITORY."
298+
echo "This is normal in a pull request to sagemath/sage or to another user's repository."
299+
echo
300+
echo "If you need Docker images, "
301+
echo " - either run this GitHub Actions workflow in your repository fork"
302+
echo " - or use the method described in https://doc.sagemath.org/html/en/developer/portability_testing.html#automatic-docker-based-build-testing-using-tox"
303+
else
304+
echo "No Docker images created."
269305
fi
270-
if: always()
306+
if: always() && ${{ inputs.docker_push_repository }}
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.4/
34
https://github.com/sagemath/sage/releases/download/10.3/
45
https://github.com/sagemath/sage/releases/download/10.2/
5-
https://github.com/sagemath/sage/releases/download/10.1/

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

CODE_OF_CONDUCT.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,4 @@ Sage can more effectively collaborate with others if they follow this code.
3737

3838
If you believe someone is violating the code of conduct, we ask that you report
3939
it to https://groups.google.com/g/sage-abuse. The group administrators will
40-
consider the issue and explore resolutions. It is also possible to move heated
41-
discussions to https://groups.google.com/g/sage-flame.
42-
40+
consider the issue and explore resolutions.

Makefile

Lines changed: 37 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,25 @@ SAGE_ROOT_LOGS = logs
4444
# except for build/make/Makefile-auto, which is unused by the build system
4545
CONFIG_FILES = build/make/Makefile src/bin/sage-env-config build/bin/sage-build-env-config pkgs/sage-conf/_sage_conf/_conf.py
4646

47-
# SPKG_COLLECT_FILES contains all files that influence the SAGE_SPKG_COLLECT macro
48-
SPKG_COLLECT_FILES = build/pkgs/*/type build/pkgs/*/package-version.txt build/pkgs/*/dependencies build/pkgs/*/requirements.txt build/pkgs/*/checksums.ini build/pkgs/*/spkg-install
49-
50-
# If configure was run before, rerun it with the old arguments.
51-
# Otherwise, run configure with argument $PREREQ_OPTIONS.
47+
# SPKG_COLLECT_FILES contains the files that influence the *runtime* of the
48+
# portions of the 'configure' script generated by the SAGE_SPKG_COLLECT macro
49+
SPKG_COLLECT_FILES = build/pkgs/*/package-version.txt build/pkgs/*/dependencies*
50+
51+
# If configure was not run before, complain.
52+
# If configure is newer than the files it generated (we test build/make/Makefile),
53+
# we regenerate config.status by running the "config.status --recheck".
54+
# Either way we regenerate the generated files by calling "config.status".
5255
build/make/Makefile: configure $(SPKG_COLLECT_FILES) $(CONFIG_FILES:%=%.in)
53-
$(MAKE) reconfigure
56+
@if [ -x config.status ]; then \
57+
case '$?' in \
58+
*configure*|*package-version*|*dependencies*) \
59+
$(MAKE) reconfigure;; \
60+
*) \
61+
./config.status;; \
62+
esac; \
63+
else \
64+
$(MAKE) reconfigure; \
65+
fi
5466

5567
reconfigure:
5668
rm -f config.log
@@ -324,7 +336,25 @@ ptestoptionallong-nodoc:
324336

325337
###############################################################################
326338

327-
configure: bootstrap src/doc/bootstrap configure.ac src/bin/sage-version.sh m4/*.m4 build/pkgs/*/spkg-configure.m4 build/pkgs/*/type build/pkgs/*/install-requires.txt build/pkgs/*/package-version.txt build/pkgs/*/distros/*.txt
339+
# The 'configure' script is just one of the files generated by 'bootstrap'.
340+
# CONFIGURE_DEPENDENCIES is the list of files that influence the generation of 'configure'.
341+
CONFIGURE_DEPENDENCIES = \
342+
configure.ac src/bin/sage-version.sh m4/*.m4 \
343+
build/pkgs/*/spkg-configure.m4 \
344+
build/pkgs/*/type build/pkgs/*/SPKG.rst \
345+
build/pkgs/*/checksums.ini build/pkgs/*/requirements.txt \
346+
build/pkgs/*/install-requires.txt build/pkgs/*/package-version.txt \
347+
build/pkgs/*/spkg-install build/pkgs/*/spkg-install.in
348+
349+
# SPKG_INFO_DEPENDENCIES is the list of files that influence the run of 'sage-spkg-info' and hence
350+
# the generation of the files generated in 'src/doc' by 'src/doc/bootstrap'.
351+
SPKG_INFO_DEPENDENCIES = \
352+
build/pkgs/*/type build/pkgs/*/SPKG.rst \
353+
build/pkgs/*/requirements.txt \
354+
build/pkgs/*/install-requires.txt build/pkgs/*/package-version.txt \
355+
build/pkgs/*/distros/*.txt
356+
357+
configure: bootstrap src/doc/bootstrap $(CONFIGURE_DEPENDENCIES) $(SPKG_INFO_DEPENDENCIES)
328358
./bootstrap -d
329359

330360
install: all

0 commit comments

Comments
 (0)