Skip to content

Commit aaf7d36

Browse files
author
Matthias Koeppe
committed
Merge tag '10.1.beta7' into t/34346/document_new_conda_packages_sagemath_sirocco_and_sagemath_bliss
SageMath version 10.1.beta7, Release Date: 2023-07-20
2 parents 7c04f44 + 543f8d6 commit aaf7d36

File tree

1,061 files changed

+24991
-18110
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,061 files changed

+24991
-18110
lines changed

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,33 +3,11 @@ description: Report a bug
33
title: "<title>"
44
labels: "t: bug"
55
body:
6-
- type: checkboxes
7-
attributes:
8-
label: Is there an existing issue for this?
9-
description: Please search to see if an issue already exists for the bug you encountered.
10-
options:
11-
- label: I have searched the existing issues for a bug report that matches the one I want to file, without success.
12-
required: true
13-
- type: checkboxes
14-
attributes:
15-
label: Did you read the documentation and troubleshoot guide?
16-
description: Please read [README.md](https://github.com/sagemath/sage/blob/develop/README.md) and [the Troubleshooting section in the Installation Guide](https://doc.sagemath.org/html/en/installation/troubles.html).
17-
options:
18-
- label: I have read the documentation and troubleshoot guide
19-
required: true
20-
- type: textarea
6+
- type: markdown
217
attributes:
22-
label: Environment
23-
description: |
24-
examples:
25-
- **OS**: Ubuntu 20.04
26-
- Sage Version: 9.2
278
value: |
28-
- **OS**:
29-
- **Sage Version**:
30-
render: markdown
31-
validations:
32-
required: true
9+
* Please search to see if an issue already exists for the bug you encountered.
10+
* Please read [README.md](https://github.com/sagemath/sage/blob/develop/README.md) and [the Troubleshooting section in the Installation Guide](https://doc.sagemath.org/html/en/installation/troubles.html).
3311
- type: textarea
3412
attributes:
3513
label: Steps To Reproduce
@@ -60,3 +38,24 @@ body:
6038
Links? References? Anything that will give us more context about the issue you are encountering!
6139
validations:
6240
required: false
41+
- type: textarea
42+
attributes:
43+
label: Environment
44+
description: |
45+
examples:
46+
- **OS**: Ubuntu 20.04
47+
- Sage Version: 9.2
48+
value: |
49+
- **OS**:
50+
- **Sage Version**:
51+
render: markdown
52+
validations:
53+
required: true
54+
- type: checkboxes
55+
attributes:
56+
label: Checklist
57+
options:
58+
- label: I have searched the existing issues for a bug report that matches the one I want to file, without success.
59+
required: true
60+
- label: I have read the documentation and troubleshoot guide
61+
required: true

.github/ISSUE_TEMPLATE/failure_building_from_source.yml

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,11 @@ title: "<title>"
44
labels: ['c: build', 't: bug']
55
assignees: []
66
body:
7-
- type: checkboxes
7+
- type: markdown
88
attributes:
9-
label: Is there an existing issue for this?
10-
description: Please search to see if an issue already exists for the bug you encountered.
11-
options:
12-
- label: I have searched the existing issues for a bug report that matches the one I want to file, without success.
13-
required: true
14-
- type: checkboxes
15-
attributes:
16-
label: Did you read the documentation and troubleshoot guide?
17-
description: Please read [README.md](https://github.com/sagemath/sage/blob/develop/README.md) and [the Troubleshooting sectionin the Installation Guide](https://doc.sagemath.org/html/en/installation/troubles.html).
18-
options:
19-
- label: I have read the documentation and troubleshoot guide
20-
required: true
9+
value: |
10+
* Please search to see if an issue already exists for the bug you encountered.
11+
* Please read [README.md](https://github.com/sagemath/sage/blob/develop/README.md) and [the Troubleshooting section in the Installation Guide](https://doc.sagemath.org/html/en/installation/troubles.html).
2112
- type: textarea
2213
attributes:
2314
label: Environment
@@ -65,3 +56,11 @@ body:
6556
Links? References? Anything that will give us more context about the issue you are encountering!
6657
validations:
6758
required: false
59+
- type: checkboxes
60+
attributes:
61+
label: Checklist
62+
options:
63+
- label: I have searched the existing issues for a bug report that matches the one I want to file, without success.
64+
required: true
65+
- label: I have read the documentation and troubleshoot guide
66+
required: true

.github/ISSUE_TEMPLATE/feature_report.yml

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,10 @@ description: Suggest an idea
33
title: "<title>"
44
labels: "t: enhancement"
55
body:
6-
- type: checkboxes
6+
- type: markdown
77
attributes:
8-
label: Is there an existing issue for this?
9-
description: Please search to see if an issue already exists for the bug you encountered.
10-
options:
11-
- label: I have searched the existing issues for a bug report that matches the one I want to file, without success.
12-
required: true
8+
value: |
9+
* Please search to see if an issue already exists for the bug you encountered.
1310
- type: textarea
1411
attributes:
1512
label: Problem Description
@@ -34,3 +31,9 @@ body:
3431
description: Add any other context about the problem here.
3532
validations:
3633
required: false
34+
- type: checkboxes
35+
attributes:
36+
label: Is there an existing issue for this?
37+
options:
38+
- label: I have searched the existing issues for a bug report that matches the one I want to file, without success.
39+
required: true

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
1-
<!-- Please provide a concise, informative and self-explanatory title. -->
2-
<!-- Don't put issue numbers in the title. Put it in the Description below. -->
3-
<!-- For example, instead of "Fixes #12345", use "Add a new method to multiply two integers" -->
4-
5-
### :books: Description
1+
<!-- ^^^^^
2+
Please provide a concise, informative and self-explanatory title.
3+
Don't put issue numbers in there, do this in the PR body below.
4+
For example, instead of "Fixes #1234" use "Introduce new method to calculate 1+1"
5+
-->
6+
<!-- Describe your changes here in detail -->
67

7-
<!-- Describe your changes here in detail. -->
88
<!-- Why is this change required? What problem does it solve? -->
99
<!-- If this PR resolves an open issue, please link to it here. For example "Fixes #12345". -->
1010
<!-- If your change requires a documentation PR, please link it appropriately. -->
1111

1212
### :memo: Checklist
1313

14-
<!-- Put an `x` in all the boxes that apply. It should be `[x]` not `[x ]`. -->
14+
<!-- Put an `x` in all the boxes that apply. -->
15+
<!-- If your change requires a documentation PR, please link it appropriately -->
16+
<!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
17+
<!-- Feel free to remove irrelevant items. -->
1518

1619
- [ ] The title is concise, informative, and self-explanatory.
1720
- [ ] The description explains in detail what this PR is about.

.github/workflows/build.yml

Lines changed: 69 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -32,50 +32,84 @@ jobs:
3232
id: checkout
3333
uses: actions/checkout@v3
3434

35-
- name: Prepare
35+
- name: Update system packages
3636
id: prepare
3737
run: |
38-
# Install test tools.
39-
if apt-get update && apt-get install -y git python3-venv; then
40-
# Debian-specific temporary code:
41-
# Installation of python3-venv can be removed as soon as a
42-
# base image with a release including #33822 is available
43-
:
44-
else
45-
export PATH="build/bin:$PATH"
46-
eval $(sage-print-system-package-command auto update)
47-
eval $(sage-print-system-package-command auto --spkg --yes --no-install-recommends install git)
48-
fi
49-
# Reuse built SAGE_LOCAL contained in the Docker image
50-
./bootstrap
51-
./configure --enable-build-as-root --prefix=/sage/local --with-sage-venv --enable-editable --enable-download-from-upstream-url
52-
38+
export PATH="build/bin:$PATH"
39+
eval $(sage-print-system-package-command auto update)
40+
eval $(sage-print-system-package-command auto --spkg --yes --no-install-recommends install git)
41+
42+
- name: Add prebuilt tree as a worktree
43+
id: worktree
44+
run: |
45+
set -ex
46+
git config --global user.email "[email protected]"
47+
git config --global user.name "Build & Test workflow"
48+
git config --global --add safe.directory $(pwd)
49+
# If actions/checkout downloaded our source tree using the GitHub REST API
50+
# instead of with git (because do not have git installed in our image),
51+
# we first make the source tree a repo.
52+
if [ ! -d .git ]; then git init && git add -A && git commit --quiet -m "new"; fi
53+
# Tag this state of the source tree "new". This is what we want to build and test.
54+
git tag -f new
55+
# Our container image contains a source tree in /sage with a full build of Sage.
56+
# But /sage is not a git repository.
57+
# We make /sage a worktree whose index is at tag "new".
58+
# We then commit the current sources and set the tag "old". (This keeps all mtimes unchanged.)
59+
# Then we update worktree and index with "git reset --hard new".
60+
# (This keeps mtimes of unchanged files unchanged and mtimes of changed files newer than unchanged files.)
61+
# Finally we reset the index to "old". (This keeps all mtimes unchanged.)
62+
# The changed files now show up as uncommitted changes.
63+
# The final "git add -N" makes sure that files that were added in "new" do not show
64+
# as untracked files, which would be removed by "git clean -fx".
65+
git worktree add --detach worktree-image
66+
rm -rf /sage/.git && mv worktree-image/.git /sage/
67+
rm -rf worktree-image && ln -s /sage worktree-image
68+
if [ ! -f worktree-image/.gitignore ]; then cp .gitignore worktree-image/; fi
69+
(cd worktree-image && git add -A && git commit --quiet --allow-empty -m "old" -a && git tag -f old && git reset --hard new && git reset --quiet old && git add -N . && git status)
70+
71+
- name: Incremental build, test changed files (sage -t --new)
72+
id: incremental
73+
run: |
74+
# Now re-bootstrap and build. The build is incremental because we were careful with the timestamps.
75+
# We run tests with "sage -t --new"; this only tests the uncommitted changes.
76+
./bootstrap && make build && ./sage -t --new -p2
77+
working-directory: ./worktree-image
78+
env:
79+
MAKE: make -j2
80+
SAGE_NUM_THREADS: 2
81+
5382
- name: Build and test modularized distributions
54-
if: always() && steps.prepare.outcome == 'success'
83+
if: always() && steps.worktree.outcome == 'success'
5584
run: make V=0 tox && make pypi-wheels
85+
working-directory: ./worktree-image
5686
env:
5787
MAKE: make -j2
5888
SAGE_NUM_THREADS: 2
5989

6090
- name: Set up node to install pyright
61-
if: always() && steps.prepare.outcome == 'success'
91+
if: always() && steps.worktree.outcome == 'success'
6292
uses: actions/setup-node@v3
6393
with:
6494
node-version: '12'
6595

6696
- name: Install pyright
67-
if: always() && steps.prepare.outcome == 'success'
97+
if: always() && steps.worktree.outcome == 'success'
6898
# Fix to v232 due to bug https://github.com/microsoft/pyright/issues/3239
6999
run: npm install -g [email protected]
70100

71101
- name: Static code check with pyright
72-
if: always() && steps.prepare.outcome == 'success'
73-
run: pyright
74-
75-
- name: Build
102+
if: always() && steps.worktree.outcome == 'success'
103+
run: pyright
104+
working-directory: ./worktree-image
105+
106+
- name: Build (fallback to non-incremental)
76107
id: build
77-
if: always() && steps.prepare.outcome == 'success'
78-
run: make build
108+
if: always() && steps.worktree.outcome == 'success' && steps.incremental.outcome != 'success'
109+
run: |
110+
set -ex
111+
./bootstrap && make doc-clean doc-uninstall sagelib-clean && git clean -fx src/sage && ./config.status && make build
112+
working-directory: ./worktree-image
79113
env:
80114
MAKE: make -j2
81115
SAGE_NUM_THREADS: 2
@@ -85,27 +119,28 @@ jobs:
85119
run: |
86120
../sage -python -m pip install coverage pytest-xdist
87121
../sage -python -m coverage run -m pytest -c tox.ini --doctest-modules || true
88-
working-directory: ./src
122+
working-directory: ./worktree-image/src
89123
env:
90124
# Increase the length of the lines in the "short summary"
91125
COLUMNS: 120
92126

93-
- name: Test
94-
if: always() && steps.build.outcome == 'success'
127+
- name: Test all files (sage -t --all --long)
128+
if: always() && (steps.incremental.outcome == 'success' || steps.build.outcome == 'success')
95129
run: |
96130
../sage -python -m pip install coverage
97-
../sage -python -m coverage run ./bin/sage-runtests --all -p2 --random-seed=286735480429121101562228604801325644303
98-
working-directory: ./src
131+
../sage -python -m coverage run ./bin/sage-runtests --all --long -p2 --random-seed=286735480429121101562228604801325644303
132+
working-directory: ./worktree-image/src
99133

100134
- name: Prepare coverage results
101-
if: always() && steps.build.outcome == 'success'
135+
if: always() && (steps.incremental.outcome == 'success' || steps.build.outcome == 'success')
102136
run: |
103137
./venv/bin/python3 -m coverage combine src/.coverage/
104138
./venv/bin/python3 -m coverage xml
105139
find . -name *coverage*
106-
140+
working-directory: ./worktree-image
141+
107142
- name: Upload coverage to codecov
108-
if: always() && steps.build.outcome == 'success'
143+
if: always() && (steps.incremental.outcome == 'success' || steps.build.outcome == 'success')
109144
uses: codecov/codecov-action@v3
110145
with:
111-
files: ./coverage.xml
146+
files: ./worktree-image/coverage.xml

.github/workflows/ci-conda.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ jobs:
3434
matrix:
3535
os: [ubuntu-latest, macos-latest]
3636
python: ['3.9', '3.10', '3.11']
37-
conda-env: [environment, environment-optional]
37+
# Optional environment is disabled for now as its not yet working
38+
# environment: [environment, environment-optional]
39+
conda-env: [environment]
3840

3941
steps:
4042
- uses: actions/checkout@v3
@@ -100,19 +102,20 @@ jobs:
100102
SAGE_NUM_THREADS: 2
101103

102104
- name: Verify dependencies
103-
if: always()
105+
if: success() || failure()
104106
shell: bash -l {0}
105107
run: pip check
106108

107109
- name: Test
110+
if: success() || failure()
108111
shell: bash -l {0}
109112
run: ./sage -t --all -p0
110113

111114
- name: Print logs
115+
if: always()
112116
run: |
113117
for file in $(find . -type f -name "*.log"); do
114118
echo "::group::$file"
115119
cat "$file"
116120
echo "::endgroup::"
117121
done
118-
if: always()

0 commit comments

Comments
 (0)