Skip to content

Commit 81e9c9a

Browse files
author
Matthias Koeppe
committed
Merge #32899
2 parents 43ca790 + b555735 commit 81e9c9a

File tree

268 files changed

+3522
-1336
lines changed

Some content is hidden

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

268 files changed

+3522
-1336
lines changed

.github/workflows/tox-experimental.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ jobs:
4141
# This list is different from the one in tox.yml:
4242
# Trac #31526 switches gcc 4.x-based distributions to using the gcc_spkg configuration factor
4343
# Trac #32281 removes gcc 4.x-based distributions whose binutils are unusable
44-
tox_system_factor: [ubuntu-xenial, ubuntu-bionic, ubuntu-focal, ubuntu-groovy, ubuntu-hirsute, debian-jessie-gcc_spkg, debian-stretch, debian-buster, debian-bullseye, debian-sid, linuxmint-18, linuxmint-19, linuxmint-19.3, linuxmint-20.1, fedora-26, fedora-27, fedora-28, fedora-29, fedora-30, fedora-31, fedora-32, fedora-33, fedora-34, centos-7-gcc_spkg, centos-8, gentoo, archlinux-latest, opensuse-15, opensuse-15.3, opensuse-tumbleweed, slackware-14.2, conda-forge, ubuntu-bionic-i386, manylinux-2_24-i686, debian-buster-i386, centos-7-i386-gcc_spkg]
44+
tox_system_factor: [ubuntu-xenial, ubuntu-bionic, ubuntu-focal, ubuntu-groovy, ubuntu-hirsute, debian-jessie-gcc_spkg, debian-stretch, debian-buster, debian-bullseye, debian-sid, linuxmint-18, linuxmint-19, linuxmint-19.3, linuxmint-20.1, fedora-26, fedora-27, fedora-28, fedora-29, fedora-30, fedora-31, fedora-32, fedora-33, fedora-34, centos-7-gcc_spkg, centos-8, gentoo-python3.9, gentoo-python3.10, archlinux-latest, opensuse-15, opensuse-15.3, opensuse-tumbleweed, slackware-14.2, conda-forge, ubuntu-bionic-i386, manylinux-2_24-i686, debian-buster-i386, centos-7-i386-gcc_spkg]
4545
tox_packages_factor: [maximal]
4646
targets_pattern: [0-g, h-o, p, q-z]
4747
env:

.github/workflows/tox-optional.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ jobs:
4141
# This list is different from the one in tox.yml:
4242
# Trac #31526 switches gcc 4.x-based distributions to using the gcc_spkg configuration factor
4343
# Trac #32281 removes gcc 4.x-based distributions whose binutils are unusable
44-
tox_system_factor: [ubuntu-xenial, ubuntu-bionic, ubuntu-focal, ubuntu-groovy, ubuntu-hirsute, debian-jessie-gcc_spkg, debian-stretch, debian-buster, debian-bullseye, debian-sid, linuxmint-18, linuxmint-19, linuxmint-19.3, linuxmint-20.1, fedora-26, fedora-27, fedora-28, fedora-29, fedora-30, fedora-31, fedora-32, fedora-33, fedora-34, centos-7-gcc_spkg, centos-8, gentoo, archlinux-latest, opensuse-15, opensuse-15.3, opensuse-tumbleweed, slackware-14.2, conda-forge, ubuntu-bionic-i386, manylinux-2_24-i686, debian-buster-i386, centos-7-i386-gcc_spkg]
44+
tox_system_factor: [ubuntu-xenial, ubuntu-bionic, ubuntu-focal, ubuntu-groovy, ubuntu-hirsute, debian-jessie-gcc_spkg, debian-stretch, debian-buster, debian-bullseye, debian-sid, linuxmint-18, linuxmint-19, linuxmint-19.3, linuxmint-20.1, fedora-26, fedora-27, fedora-28, fedora-29, fedora-30, fedora-31, fedora-32, fedora-33, fedora-34, centos-7-gcc_spkg, centos-8, gentoo-python3.9, gentoo-python3.10, archlinux-latest, opensuse-15, opensuse-15.3, opensuse-tumbleweed, slackware-14.2, conda-forge, ubuntu-bionic-i386, manylinux-2_24-i686, debian-buster-i386, centos-7-i386-gcc_spkg]
4545
tox_packages_factor: [maximal]
4646
targets_pattern: [0-g, h-o, p, q-z]
4747
env:

.github/workflows/tox.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838
fail-fast: false
3939
max-parallel: 20
4040
matrix:
41-
tox_system_factor: [ubuntu-trusty, ubuntu-xenial, ubuntu-bionic, ubuntu-focal, ubuntu-groovy, ubuntu-hirsute, ubuntu-impish, debian-jessie, debian-stretch, debian-buster, debian-bullseye, debian-sid, linuxmint-17, linuxmint-18, linuxmint-19, linuxmint-19.3, linuxmint-20.1, linuxmint-20.2, fedora-26, fedora-27, fedora-28, fedora-29, fedora-30, fedora-31, fedora-32, fedora-33, fedora-34, fedora-35, centos-7, centos-8, gentoo, gentoo-python3.7, archlinux-latest, opensuse-15, opensuse-15.3, opensuse-tumbleweed, slackware-14.2, conda-forge, ubuntu-bionic-i386, manylinux-2_24-i686, debian-buster-i386, centos-7-i386]
41+
tox_system_factor: [ubuntu-trusty, ubuntu-xenial, ubuntu-bionic, ubuntu-focal, ubuntu-groovy, ubuntu-hirsute, ubuntu-impish, debian-jessie, debian-stretch, debian-buster, debian-bullseye, debian-sid, linuxmint-17, linuxmint-18, linuxmint-19, linuxmint-19.3, linuxmint-20.1, linuxmint-20.2, fedora-26, fedora-27, fedora-28, fedora-29, fedora-30, fedora-31, fedora-32, fedora-33, fedora-34, fedora-35, centos-7, centos-8, gentoo-python3.9, gentoo-python3.10, archlinux-latest, opensuse-15, opensuse-15.3, opensuse-tumbleweed, slackware-14.2, conda-forge, ubuntu-bionic-i386, manylinux-2_24-i686, debian-buster-i386, centos-7-i386]
4242
tox_packages_factor: [minimal, standard]
4343
env:
4444
TOX_ENV: docker-${{ matrix.tox_system_factor }}-${{ matrix.tox_packages_factor }}

.zenodo.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{
22
"description": "Mirror of the Sage https://sagemath.org/ source tree",
33
"license": "other-open",
4-
"title": "sagemath/sage: 9.5.beta6",
5-
"version": "9.5.beta6",
4+
"title": "sagemath/sage: 9.5.beta7",
5+
"version": "9.5.beta7",
66
"upload_type": "software",
7-
"publication_date": "2021-11-12",
7+
"publication_date": "2021-11-18",
88
"creators": [
99
{
1010
"affiliation": "SageMath.org",
@@ -15,7 +15,7 @@
1515
"related_identifiers": [
1616
{
1717
"scheme": "url",
18-
"identifier": "https://github.com/sagemath/sage/tree/9.5.beta6",
18+
"identifier": "https://github.com/sagemath/sage/tree/9.5.beta7",
1919
"relation": "isSupplementTo"
2020
},
2121
{

README.md

Lines changed: 32 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -349,54 +349,72 @@ Simplified directory layout (only essential files/directories):
349349
SAGE_ROOT Root directory (sage-x.y.z in Sage tarball)
350350
├── build
351351
│ └── pkgs Every package is a subdirectory here
352-
│ ├── 4ti2
352+
│ ├── 4ti2/
353353
│ …
354-
│ └── zn_poly
354+
│ └── zn_poly/
355355
├── configure Top-level configure script
356356
├── COPYING.txt Copyright information
357357
├── pkgs Source trees of Python distribution packages
358358
│ ├── sage-conf
359359
│ │ ├── sage_conf.py
360360
│ │ └── setup.py
361361
│ ├── sage-docbuild
362-
│ │ ├── sage_docbuild
362+
│ │ ├── sage_docbuild/
363+
│ │ └── setup.py
364+
│ ├── sage-setup
365+
│ │ ├── sage_setup/
363366
│ │ └── setup.py
364367
│ ├── sage-sws2rst
365-
│ │ ├── sage_sws2rst
368+
│ │ ├── sage_sws2rst/
366369
│ │ └── setup.py
367370
│ └── sagemath-standard
368-
│ ├── bin
369-
│ ├── sage
371+
│ ├── bin/
372+
│ ├── sage -> ../../src/sage
370373
│ └── setup.py
371-
├── local (SAGE_LOCAL) Compiled packages are installed here
374+
├── local (SAGE_LOCAL) Installation hierarchy for non-Python packages
372375
│ ├── bin Executables
373376
│ ├── include C/C++ headers
374-
│ ├── lib Shared libraries
377+
│ ├── lib Shared libraries, architecture-dependent data
375378
│ ├── share Databases, architecture-independent data, docs
376379
│ │ └── doc Viewable docs of Sage and of some components
377380
│ └── var
378-
│ ├── lib/sage List of installed packages
379-
│ └── tmp/sage Temporary files when building Sage
381+
│ ├── lib/sage
382+
│ │ ├── installed/
383+
│ │ │ Records of installed non-Python packages
384+
│ │ ├── scripts/ Scripts for uninstalling installed packages
385+
│ │ └── venv-python3.9 (SAGE_VENV)
386+
│ │ │ Installation hierarchy (virtual environment)
387+
│ │ │ for Python packages
388+
│ │ ├── bin/ Executables and installed scripts
389+
│ │ ├── lib/python3.9/site-packages/
390+
│ │ │ Python modules/packages are installed here
391+
│ │ └── var/lib/sage/
392+
│ │ └── wheels/
393+
│ │ Python wheels for all installed Python packages
394+
│ │
395+
│ └── tmp/sage/ Temporary files when building Sage
380396
├── logs
381397
│ ├── dochtml.log Log of the documentation build
382398
│ ├── install.log Full install log
383399
│ └── pkgs Build logs of individual packages
384400
│ ├── alabaster-0.7.12.log
385401
│ …
386402
│ └── zn_poly-0.9.2.log
387-
├── m4 M4 macros for configure
403+
├── m4 M4 macros for generating the configure script
388404
│ └── *.m4
389405
├── Makefile Running "make" uses this file
406+
├── prefix -> SAGE_LOCAL Convenience symlink to the installation tree
390407
├── README.md This file
391408
├── sage Script to start Sage
392409
├── src Monolithic Sage library source tree
393-
│ ├── bin Scripts that Sage uses internally
394-
│ ├── doc Sage documentation sources
395-
│ └── sage The Sage library source code
410+
│ ├── bin/ Scripts that Sage uses internally
411+
│ ├── doc/ Sage documentation sources
412+
│ └── sage/ The Sage library source code
396413
├── upstream Source tarballs of packages
397414
│ ├── Babel-2.9.1.tar.gz
398415
│ …
399416
│ └── zn_poly-0.9.2.tar.gz
417+
├── venv -> SAGE_VENV Convenience symlink to the virtual environment
400418
└── VERSION.txt
401419
```
402420
For more details see [our Developer's Guide](https://doc.sagemath.org/html/en/developer/coding_basics.html#files-and-directory-structure).

VERSION.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
SageMath version 9.5.beta6, Release Date: 2021-11-12
1+
SageMath version 9.5.beta7, Release Date: 2021-11-18

build/bin/sage-bootstrap-python

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,19 @@ if [ "$LC_ALL" = "C" -o "$LANG" = "C" -o "$LC_CTYPE" = "C" ]; then
4040
export LANG
4141
fi
4242

43-
PYTHONS="python python3 python3.8 python3.7 python2.7 python3.6 python2"
43+
PYTHONS="python python3 python3.10 python3.9 python3.8 python3.7 python2.7 python3.6 python2"
44+
# Trac #32405: Prefer a Python that provides ssl with SNI, which allows developers
45+
# to download from upstream URLs (configure --enable-download-from-upstream-url),
46+
# in particular from PyPI, which requires SNI.
47+
for PY in $PYTHONS; do
48+
PYTHON="$(PATH="$SAGE_ORIG_PATH" command -v $PY)"
49+
if [ -n "$PYTHON" ]; then
50+
if "$PYTHON" -c "import argparse; import urllib; from hashlib import sha1; from ssl import HAS_SNI; assert HAS_SNI; from os import listdir; listdir(\"$(pwd)\");" 2>/dev/null; then
51+
exec "$PYTHON" "$@"
52+
fi
53+
fi
54+
done
55+
# Second round, no ssl/SNI test.
4456
for PY in $PYTHONS; do
4557
PYTHON="$(PATH="$SAGE_ORIG_PATH" command -v $PY)"
4658
if [ -n "$PYTHON" ]; then

build/bin/sage-dist-helpers

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,12 @@ sdh_pip_install() {
268268
sdh_store_and_pip_install_wheel $install_options .
269269
}
270270

271+
sdh_pip_editable_install() {
272+
echo "Installing $PKG_NAME (editable mode)"
273+
python3 -m pip install --verbose --no-deps --no-index --no-build-isolation --isolated --editable "$@" || \
274+
sdh_die "Error installing $PKG_NAME"
275+
}
276+
271277
sdh_store_wheel() {
272278
if [ -n "$SAGE_DESTDIR" ]; then
273279
local sudo=""

build/make/Makefile.in

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ SAGE_SPKG = sage-spkg
5252
# These are added to SAGE_SPKG in the call
5353
SAGE_SPKG_OPTIONS = @SAGE_SPKG_OPTIONS@
5454

55+
# Where the Sage distribution installs documentation.
56+
# set to empty if --disable-doc is used
57+
SAGE_DOCS = $(SAGE_LOCAL)
58+
5559
# Where the Sage distribution installs Python packages.
5660
# This can be overridden by 'make SAGE_VENV=/some/venv'.
5761
SAGE_VENV = @SAGE_VENV@
@@ -142,7 +146,7 @@ SCRIPT_PACKAGES = @SAGE_SCRIPT_PACKAGES@
142146
# inst_git = $(INST)/.dummy
143147

144148
$(foreach pkgname,$(BUILT_PACKAGES),\
145-
$(eval inst_$(pkgname) = $(foreach tree, $(trees_$(pkgname)), $($(tree))/$(SPKG_INST_RELDIR)/$(pkgname)-$(vers_$(pkgname)))))
149+
$(eval inst_$(pkgname) = $(foreach tree, $(trees_$(pkgname)), $(and $($(tree)), $($(tree))/$(SPKG_INST_RELDIR)/$(pkgname)-$(vers_$(pkgname))))))
146150
$(foreach pkgname,$(DUMMY_PACKAGES),\
147151
$(eval inst_$(pkgname) = $(SAGE_LOCAL)/$(SPKG_INST_RELDIR)/.dummy))
148152

@@ -157,7 +161,7 @@ $(SAGE_LOCAL)/$(SPKG_INST_RELDIR)/.dummy:
157161

158162

159163
# Filtered by installation tree
160-
$(foreach tree,SAGE_LOCAL SAGE_VENV, \
164+
$(foreach tree,SAGE_LOCAL SAGE_VENV SAGE_DOCS, \
161165
$(eval $(tree)_INSTALLED_PACKAGE_INSTS = \
162166
$(foreach pkgname,$(INSTALLED_PACKAGES), \
163167
$(if $(findstring $(tree),$(trees_$(pkgname))), \
@@ -228,11 +232,11 @@ build-start: all-build
228232
base-toolchain: _clean-broken-gcc base
229233
+$(MAKE_REC) toolchain
230234

231-
# All targets except for the base packages
235+
# All targets except for the base packages and except the documentation
232236
all-sage: \
233237
sagelib \
234-
$(INSTALLED_PACKAGE_INSTS) \
235-
$(UNINSTALLED_PACKAGES_CLEANS)
238+
$(SAGE_LOCAL_INSTALLED_PACKAGE_INSTS) $(SAGE_LOCAL_UNINSTALLED_PACKAGES_CLEANS) \
239+
$(SAGE_VENV_INSTALLED_PACKAGE_INSTS) $(SAGE_VENV_UNINSTALLED_PACKAGES_CLEANS)
236240

237241
# Same but filtered by installation trees:
238242
all-build-local: toolchain-deps
@@ -245,6 +249,11 @@ all-build-venv: toolchain-deps
245249

246250
all-sage-venv: $(SAGE_VENV_INSTALLED_PACKAGE_INSTS) $(SAGE_VENV_UNINSTALLED_PACKAGES_CLEANS)
247251

252+
all-build-docs: toolchain-deps
253+
+$(MAKE_REC) all-sage-docs
254+
255+
all-sage-docs: $(SAGE_DOCS_INSTALLED_PACKAGE_INSTS) $(SAGE_DOCS_UNINSTALLED_PACKAGES_CLEANS)
256+
248257
# Download all packages which should be inside an sdist tarball (the -B
249258
# option to make forces all targets to be built unconditionally)
250259
download-for-sdist:
@@ -316,35 +325,28 @@ base: $(inst_patch) $(inst_pkgconf)
316325
#
317326
# $ ./sage --docbuild -H
318327

319-
# Building the documentation has many dependencies, because all
320-
# documented modules are imported and because we use matplotlib to
321-
# produce plots.
322-
DOC_DEPENDENCIES = sagelib sage_docbuild $(inst_sphinx) \
323-
| $(SAGERUNTIME) $(inst_maxima) $(inst_networkx) $(inst_scipy) $(inst_sympy) \
324-
$(inst_matplotlib) $(inst_pillow) $(inst_mathjax) $(inst_mpmath) \
325-
$(inst_ipykernel) $(inst_jupyter_client) $(inst_conway_polynomials) \
326-
$(inst_tachyon) $(inst_jmol) $(inst_thebe) $(inst_ipywidgets)
327-
328-
doc: doc-html
328+
doc: $(SAGE_DOCS_INSTALLED_PACKAGE_INSTS) $(SAGE_DOCS_UNINSTALLED_PACKAGES_CLEANS)
329329

330-
doc-html: $(DOC_DEPENDENCIES)
331-
$(AM_V_at)cd "$(SAGE_SRC)/doc" && sage-logger -p "$(MAKE) doc-html" $(SAGE_ROOT)/logs/dochtml.log
330+
# All doc-building is delegated to the script packages
331+
# sagemath_doc_html, sagemath_doc_pdf
332+
doc-html: sagemath_doc_html
332333

333334
# 'doc-html-no-plot': build docs without building the graphics coming
334335
# from the '.. plot' directive, in case you want to save a few
335336
# megabytes of disk space. 'doc-clean' is a prerequisite because the
336337
# presence of graphics is cached in src/doc/output.
337338
doc-html-no-plot: doc-clean
338-
$(AM_V_at)sage-logger -p "$(MAKE) SAGE_DOCBUILD_OPTS=\"$(SAGE_DOCBUILD_OPTS) --no-plot\" doc-html" $(SAGE_ROOT)/logs/dochtml.log
339+
+$(MAKE_REC) SAGE_DOCBUILD_OPTS="$(SAGE_DOCBUILD_OPTS) --no-plot" doc-html
339340

341+
# Using mathjax is actually the default, but this target can be used
342+
# to override an environment setting of SAGE_DOC_MATHJAX=no
340343
doc-html-mathjax:
341-
$(AM_V_at)sage-logger -p "$(MAKE) SAGE_DOCBUILD_OPTS=\"$(SAGE_DOCBUILD_OPTS) -j\" doc-html" $(SAGE_ROOT)/logs/dochtml.log
344+
+$(MAKE_REC) SAGE_DOCBUILD_OPTS="$(SAGE_DOCBUILD_OPTS) -j" doc-html
342345

343346
# Keep target 'doc-html-jsmath' for backwards compatibility.
344347
doc-html-jsmath: doc-html-mathjax
345348

346-
doc-pdf: $(DOC_DEPENDENCIES)
347-
$(AM_V_at)cd "$(SAGE_SRC)/doc" && sage-logger -p "$(MAKE) doc-pdf" $(SAGE_ROOT)/logs/docpdf.log
349+
doc-pdf: sagemath_doc_pdf
348350

349351
doc-clean: doc-src-clean doc-output-clean
350352

build/pkgs/configure/checksums.ini

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
tarball=configure-VERSION.tar.gz
2-
sha1=bdfd5753a2548365230216455d9a543fe238f092
3-
md5=49ffa01e32a876dd4feea975d822351e
4-
cksum=3517586928
2+
sha1=d9fff88398cb15f16c7dcb3b6180163bb206a699
3+
md5=585dece094717b58049a2bfaf9811162
4+
cksum=3669459096

0 commit comments

Comments
 (0)