Skip to content

Commit 59c87cd

Browse files
committed
Merge remote-tracking branch 'upstream/develop' into remove_sage_conf_minimial
2 parents 8357707 + f4adc25 commit 59c87cd

File tree

180 files changed

+1665
-1481
lines changed

Some content is hidden

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

180 files changed

+1665
-1481
lines changed

.github/sync_labels.py

Lines changed: 48 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -408,7 +408,17 @@ def get_commits(self):
408408
return self._commits
409409

410410
self._commits = self.view('commits')
411-
self._commit_date = max( com['committedDate'] for com in self._commits )
411+
412+
# ignore merge commits with the develop branch for _commit_date unless positive review is set
413+
date_commits = list(self._commits)
414+
if Status.positive_review.value not in self.get_labels():
415+
for com in self._commits:
416+
message = com['messageHeadline']
417+
if message.startswith('Merge') and 'develop' in message:
418+
debug('Ignore merge commit %s for commit_date' % com['oid'])
419+
date_commits.remove(com)
420+
421+
self._commit_date = max(com['committedDate'] for com in date_commits)
412422
info('Commits until %s for %s: %s' % (self._commit_date, self._issue, self._commits))
413423
return self._commits
414424

@@ -1034,6 +1044,35 @@ def run_tests(self):
10341044
elif self.is_pull_request():
10351045
self.run(action)
10361046

1047+
def test_method(self, method, *args, **kwds):
1048+
r"""
1049+
Run the given method for testing.
1050+
1051+
EXAMPLES::
1052+
1053+
sage$ python .github/sync_labels.py https://github.com/sagemath/sage/pull/40634 soehms is_auth_team_member "{'login': 'soehms'}" -t
1054+
INFO:root:cmdline_args (4) ['https://github.com/sagemath/sage/pull/40634', 'soehms', 'is_auth_team_member', "{'login': 'soehms'}"]
1055+
...
1056+
DEBUG:root:call is_auth_team_member with args () and kwds {'login': 'soehms'}
1057+
DEBUG:root:================================================================================
1058+
DEBUG:root:Execute command: gh api -X GET -H "Accept: application/vnd.github+json" /orgs/sagemath/teams/triage/memberships/soehms
1059+
INFO:root:User soehms is a member of triage
1060+
INFO:root:result of is_auth_team_member with args () and kwds {'login': 'soehms'} is True
1061+
INFO:root:================================================================================
1062+
...
1063+
"""
1064+
if hasattr(self, method):
1065+
meth = self.__getattribute__(method)
1066+
if callable(meth):
1067+
debug('call %s with args %s and kwds %s' % (method, args, kwds))
1068+
debug('='*80)
1069+
res = meth(*args, **kwds)
1070+
info('result of %s with args %s and kwds %s is %s' % (method, args, kwds, res))
1071+
info('='*80)
1072+
debug('state of self: %s' % self.__dict__)
1073+
return
1074+
raise ValueError('%s is not a method of %s' % (method, self))
1075+
10371076

10381077
###############################################################################
10391078
# Main
@@ -1068,8 +1107,10 @@ def run_tests(self):
10681107
num_args = len(cmdline_args)
10691108
info('cmdline_args (%s) %s' % (num_args, cmdline_args))
10701109

1071-
if run_tests and num_args in (1,2):
1072-
if num_args == 2:
1110+
if run_tests:
1111+
if num_args == 4:
1112+
url, actor, method, args = cmdline_args
1113+
elif num_args == 2:
10731114
url, actor = cmdline_args
10741115
else:
10751116
url, = cmdline_args
@@ -1079,7 +1120,10 @@ def run_tests(self):
10791120
info('actor: %s' % actor)
10801121

10811122
gh = GhLabelSynchronizer(url, actor)
1082-
gh.run_tests()
1123+
if num_args == 4:
1124+
gh.test_method(method, **eval(args))
1125+
else:
1126+
gh.run_tests()
10831127

10841128
elif num_args == 5:
10851129
action, url, actor, label, rev_state = cmdline_args

.github/workflows/ci-meson.yml

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ jobs:
2121
test:
2222
name: Conda (${{ matrix.os }}, Python ${{ matrix.python }}, ${{ matrix.tests }}${{ matrix.editable && ', editable' || '' }})
2323
runs-on: ${{ matrix.os }}-latest
24+
env:
25+
SEPARATELY_TESTED_FLAKY_FILES: "src/sage/libs/singular/function.pyx src/sage/rings/polynomial/plural.pyx"
2426

2527
strategy:
2628
fail-fast: false
@@ -168,9 +170,22 @@ jobs:
168170
pytest --doctest-ignore-import-errors --doctest -rfEs -s src || true
169171
else
170172
pytest -rfEs -s src
171-
./sage -t ${{ matrix.tests == 'all' && '--all' || '--new --long' }} -p4 --format github
173+
./sage -t ${{
174+
matrix.tests == 'all' &&
175+
'--all-except="$SEPARATELY_TESTED_FLAKY_FILES"' ||
176+
'--new --long' }} -p4 --format github
172177
fi
173178
179+
- name: Test flaky files
180+
# unknown issues with plural.pyx causes sporadic failure: https://github.com/sagemath/sage/issues/29528
181+
# we rerun a few times, this step succeeds if any of the 5 runs succeed
182+
if: runner.os != 'windows' && matrix.tests == 'all'
183+
shell: bash -l {0}
184+
run: |
185+
for i in {1..5}; do
186+
./sage -t -p4 --format github $SEPARATELY_TESTED_FLAKY_FILES && break
187+
done
188+
174189
- name: Check that all modules can be imported
175190
shell: bash -l {0}
176191
run: |
@@ -179,7 +194,11 @@ jobs:
179194
# The following command checks that all modules can be imported.
180195
# The output also includes a long list of modules together with the number of tests in each module.
181196
# This can be ignored.
182-
pytest -qq --doctest --collect-only || true
197+
if [[ "${{ matrix.os }}" == "windows" ]]; then
198+
pytest -qq --doctest --collect-only || true
199+
else
200+
pytest -qq --doctest --collect-only
201+
fi
183202
184203
- name: Upload log
185204
uses: actions/[email protected]

.github/workflows/dist.yml

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,14 +133,32 @@ jobs:
133133
name: dist
134134
path: dist
135135

136-
- name: Create release assets
136+
- name: Create release notes
137+
env:
138+
GITHUB_PAT: ${{ secrets.RELEASE_CREATION_TOKEN }}
139+
run: |
140+
latest_release_tag=$(curl -s https://api.github.com/repos/${{ github.repository }}/releases \
141+
| jq -r 'sort_by(.created_at) | last(.[]).tag_name')
142+
release_notes=$(curl -s \
143+
-X POST \
144+
-H "Accept: application/vnd.github+json" \
145+
-H "Authorization: Bearer $GITHUB_PAT" \
146+
-H "X-GitHub-Api-Version: 2022-11-28" \
147+
https://api.github.com/repos/${{ github.repository }}/releases/generate-notes \
148+
-d "{
149+
\"tag_name\": \"${{ github.ref_name }}\",
150+
\"previous_tag_name\": \"$latest_release_tag\"
151+
}" | jq -r '.body')
152+
echo "$release_notes" > release_notes
153+
154+
- name: Create release
137155
uses: softprops/action-gh-release@v2
138156
with:
139157
files: |
140158
dist/*
141159
upstream/*
142160
token: ${{ secrets.RELEASE_CREATION_TOKEN }}
143-
generate_release_notes: true
161+
body_path: release_notes
144162
prerelease: ${{ contains(github.ref_name, 'beta') || contains(github.ref_name, 'rc') }}
145163

146164
build_wheels:

.github/workflows/pyright.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ jobs:
4949
# No need to build sagelib; pyright only needs the libraries from which sagelib imports
5050

5151
- name: Static code check with pyright
52-
uses: jakebailey/[email protected].2
52+
uses: jakebailey/[email protected].3
5353
with:
5454
version: 1.1.332
5555
annotate: "errors"

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.8.beta4
7+
version: 10.8.beta5
88
doi: 10.5281/zenodo.8042260
9-
date-released: 2025-09-21
9+
date-released: 2025-09-27
1010
repository-code: "https://github.com/sagemath/sage"
1111
url: "https://www.sagemath.org/"

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ SAGE_ROOT_LOGS = logs
4242

4343
# CONFIG_FILES lists all files that appear in AC_CONFIG_FILES in configure.ac;
4444
# except for build/make/Makefile-auto, which is unused by the build system
45-
CONFIG_FILES = build/make/Makefile src/bin/sage-env-config build/bin/sage-build-env-config
45+
CONFIG_FILES = build/make/Makefile src/bin/sage-env-config build/bin/sage-build-env-config pkgs/sage-conf/_sage_conf/_conf.py
4646

4747
# SPKG_COLLECT_FILES contains the files that influence the *runtime* of the
4848
# portions of the 'configure' script generated by the SAGE_SPKG_COLLECT macro

VERSION.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
10.8.beta4
1+
10.8.beta5

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=5d512119d3ad3e0a3fefa64f26674c25529d241d
3-
sha256=42aa2aed7c199ada325f80a64ad4c3626378b84bb19519e68b024a617ca79ca6
2+
sha1=b36924b2391937313f3b2037eb1ffa4e3a9b2d81
3+
sha256=ec9a7a235593430352081443b1089403452ec349a202b2ca5cd73ceb63bbe26c
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
9c1da99ac79711edccbad5590ed73d14495a0b43
1+
0ef31d1493e6873bbdb7e14f91c57275ba3b20ee
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
# This file is updated on every release by the update-version script
2-
sage-docbuild ~= 10.8b3
2+
sage-docbuild ~= 10.8b4

0 commit comments

Comments
 (0)