Meta-ticket: Refactor and improve system package related scripts, tox.ini, build/bin/write_dockerfile.sh
mkoeppe opened this issue · 44 comments
Improvements to low-level system packages scripts:
- #30861, #30865, #30947, #30951, #30968: Refactor system package code in
tox.ini,build/bin/write_dockerfile.shby extending and usingsage_bootstrap - #33873: Extend
build/bin/sage-print-system-package-commandso that it can provide all distribution-specific commands such asapt-get installforbuild/bin/write_dockerfile.sh - #29041 sage_bootstrap: Add command "sage -package list --output={install-requires,requirements,pipfile,debian,....}"
- #33860 sage-package: Add commands "dependencies", "trees"
Improvements to the system package database:
- #29124 Add script packages build/pkgs/_prereq, build/pkgs/_toolchain, build/pkgs/_bootstrap
- #36910 define shell quoting in files like
debian.txt - handle options correctly when installing packages one by one, fix up passing installation options when
IGNORE_MISSING_PACKAGES=yes
Improvements to tox docker:
- #29536 Make docker images from GitHub CI workflow and regular Sage Docker images interoperable
- optionally create a script for
docker runinstead of aDockerfile(this gives more flexibility for multiarch - see #29143) - cache Docker images with system packages installed ... https://github.com/marketplace/actions/build-docker-images-using-cache
- move log extraction code from tox.yml to tox.ini (#29530 did some preparation already)
- system package installation should retry a few times when installation errors because of network errors occur. In particular for docker because an incomplete step will be cached
- Make obtaining image from container of failing builds more robust: Use LABEL commands in dockerfiles, use
docker ps --filter label=....to look up the container (https://docs.docker.com/engine/reference/commandline/ps/) - setenv/passenv SAGE_SERVER
- Remove
TARGETS_PRE/TARGETSdistinction: Instead leave a stamp file and exit from make with an error to trigger the ADD of src/; for example, addsagelibdependency on$(SAGE_SRC)/sage, and add the rule to Makefile:
$(SAGE_SRC)/sage:
touch .need_src; exit 1
- use environment variable
MAKEfor docker builds as well, instead of asking users to pass theUSE_MAKEFLAGSvariable - rewrite Dockerfile generation via dev container templates (https://github.com/devcontainers/cli)
Improvements to tox local:
- #31216: tox.ini (local): Add environment variables to skip system package installs, mechanism for a local interactive shell
- #31064:
ci-cygwin*.yml: delegate totox, add more stages, use more specificSAGE_LOCAL - #21469: Enable VPATH builds (several independent build trees connected to one source tree)
- #29416: tox.ini: Add local-copy
- the complicated rule for the commands of
localconsists entirely of workarounds for things that should really be fixed/improved in ourMakefiles:- #30721:
build/make/Makefile.in:base-toolchainshould be a dependency of every non-base, non-toolchain package - #32785:
tox.iniandbuild/bin/write-dockerfile.shuse better defaults forSAGE_CHECK_PACKAGES; this should be moved tobuild/make/Makefile.in(SAGE_CHECK_PACKAGES_DEFAULT_yes). - #31535 New make targets "sagelib-sdist", "sage_docbuild-sdist", ... and "sagelib-tox-...", ...
Other improvements totox.ini:
- #30721:
- #32764: Make
tox -p autoandtox --listenvsuseful again (it does not understand the nested braces) - #31574:
tox.ini,build/bin/write-dockerfile.sh: Do not usemake -kby default
Improvements to auto-generated parts of the manuals:
- #29558 Autogenerated parts of installation guide
- #29557 Add script package
_recommendedand generate "recommended system packages" info
Improvements for messages at the end of a ./configure run:
- #29560
sage-guess-package-system: Ignore conda if no environment is activated - Perhaps
sage-guess-package-systemshould report several package systems such asconda ubuntuorhomebrew cpanwhen that makes sense - #29363 - At the end of
configure, indicate which optional/experimental packages are configured to be installed - #30624: Improve wording and formatting of configure's recommendation message
- #29372 - At the end of
configure, show installation hints for disabled optional packages separately - Hints after ./configure: maybe sort and remove duplicates (https://groups.google.com/d/msg/sage-devel/EWTVN-Fmc8w/y9933Zo1AQAJ)
- #32060
configure: Change defaults to--with-system-gcc=force,--with-system-python3=force - #29586: Improve configure's recommendations
- #30863: refine definition of variable SAGE_NEED_SYSTEM_PACKAGES in m4/sage_spkg_collect.m4
Tickets regarding sage_bootstrap:
- #20023
sage_bootstrap: Remove Python 2.6 support - #20104
sage --package: Add commandslist :standard:,update-latest(for packages from PyPI),upload - #29919 Restore "huge" package type
See also:
- #29060 Meta-ticket: Add Dockerfiles and CI scripts for integration testing of source and binary distributions and of downstream packages
Depends on #29417
CC: @embray @vbraun @dimpase @jhpalmieri @sheerluck @slel @tobiasdiez @seblabbe
Component: build
Branch/Commit: u/mkoeppe/meta_ticket__refactor_and_improve_system_package_related_scripts__tox_ini__build_bin_write_dockerfile_sh @ fd9b928
Issue created by migration from https://trac.sagemath.org/ticket/29146
Description changed:
---
+++
@@ -4,3 +4,6 @@
- helper scripts for extracting lists of packages according to criteria
- possibly, by extending and using `sage_bootstrap`
+Also:
+- distribution-specific commands such as `apt-get install` are in both `build/bin/write_dockerfile.sh` and `build/bin/sage-spkg`. This could be unified as well, or be obtained from another text file etc.
+Description changed:
---
+++
@@ -3,6 +3,7 @@
- instead of passing `TYPE_PATTERN` to `build/bin/write_dockerfile.sh`, do the work in `tox.ini`.
- helper scripts for extracting lists of packages according to criteria
- possibly, by extending and using `sage_bootstrap`
+- optionally create a script for `docker run` instead of a `Dockerfile` (this gives more flexibility for multiarch - see #29143)
Also:
- distribution-specific commands such as `apt-get install` are in both `build/bin/write_dockerfile.sh` and `build/bin/sage-spkg`. This could be unified as well, or be obtained from another text file etc.Description changed:
---
+++
@@ -6,5 +6,5 @@
- optionally create a script for `docker run` instead of a `Dockerfile` (this gives more flexibility for multiarch - see #29143)
Also:
-- distribution-specific commands such as `apt-get install` are in both `build/bin/write_dockerfile.sh` and `build/bin/sage-spkg`. This could be unified as well, or be obtained from another text file etc.
+- distribution-specific commands such as `apt-get install` are in both `build/bin/write_dockerfile.sh` and `build/bin/sage-spkg`. This could be unified as well, or be obtained from another text file etc., by using/extending `build/bin/sage-print-system-package-command` from #26964
Description changed:
---
+++
@@ -4,6 +4,7 @@
- helper scripts for extracting lists of packages according to criteria
- possibly, by extending and using `sage_bootstrap`
- optionally create a script for `docker run` instead of a `Dockerfile` (this gives more flexibility for multiarch - see #29143)
+- cache Docker images with system packages installed
Also:
- distribution-specific commands such as `apt-get install` are in both `build/bin/write_dockerfile.sh` and `build/bin/sage-spkg`. This could be unified as well, or be obtained from another text file etc., by using/extending `build/bin/sage-print-system-package-command` from #26964Description changed:
---
+++
@@ -4,7 +4,7 @@
- helper scripts for extracting lists of packages according to criteria
- possibly, by extending and using `sage_bootstrap`
- optionally create a script for `docker run` instead of a `Dockerfile` (this gives more flexibility for multiarch - see #29143)
-- cache Docker images with system packages installed
+- cache Docker images with system packages installed ... https://github.com/marketplace/actions/build-docker-images-using-cache
Also:
- distribution-specific commands such as `apt-get install` are in both `build/bin/write_dockerfile.sh` and `build/bin/sage-spkg`. This could be unified as well, or be obtained from another text file etc., by using/extending `build/bin/sage-print-system-package-command` from #26964Description changed:
---
+++
@@ -6,6 +6,9 @@
- optionally create a script for `docker run` instead of a `Dockerfile` (this gives more flexibility for multiarch - see #29143)
- cache Docker images with system packages installed ... https://github.com/marketplace/actions/build-docker-images-using-cache
+tox.ini:
+- Add user option for configuring number of threads used
+
Also:
- distribution-specific commands such as `apt-get install` are in both `build/bin/write_dockerfile.sh` and `build/bin/sage-spkg`. This could be unified as well, or be obtained from another text file etc., by using/extending `build/bin/sage-print-system-package-command` from #26964
Description changed:
---
+++
@@ -5,6 +5,7 @@
- possibly, by extending and using `sage_bootstrap`
- optionally create a script for `docker run` instead of a `Dockerfile` (this gives more flexibility for multiarch - see #29143)
- cache Docker images with system packages installed ... https://github.com/marketplace/actions/build-docker-images-using-cache
+- define shell quoting in debian .txt, handle options correctly when installing packages one by one
tox.ini:
- Add user option for configuring number of threads used Description changed:
---
+++
@@ -5,7 +5,7 @@
- possibly, by extending and using `sage_bootstrap`
- optionally create a script for `docker run` instead of a `Dockerfile` (this gives more flexibility for multiarch - see #29143)
- cache Docker images with system packages installed ... https://github.com/marketplace/actions/build-docker-images-using-cache
-- define shell quoting in debian .txt, handle options correctly when installing packages one by one
+- define shell quoting in files like `debian.txt`, handle options correctly when installing packages one by one
tox.ini:
- Add user option for configuring number of threads used
@@ -13,3 +13,9 @@
Also:
- distribution-specific commands such as `apt-get install` are in both `build/bin/write_dockerfile.sh` and `build/bin/sage-spkg`. This could be unified as well, or be obtained from another text file etc., by using/extending `build/bin/sage-print-system-package-command` from #26964
+Related:
+- #29363 - At the end of configure, indicate which optional/experimental packages are configured to be installed
+- #29372 - At the end of configure, show installation hints for disabled optional packages separately
+- #29087 - Add [GitHub](../wiki/GitHub) Actions workflow for testing the build on various Linux distributions via docker; macOS with homebrew; and Windows (cygwin)
+- #29401 - Add documentation of tox and [GitHub](../wiki/GitHub) actions workflow to developer's manual
+Description changed:
---
+++
@@ -6,6 +6,7 @@
- optionally create a script for `docker run` instead of a `Dockerfile` (this gives more flexibility for multiarch - see #29143)
- cache Docker images with system packages installed ... https://github.com/marketplace/actions/build-docker-images-using-cache
- define shell quoting in files like `debian.txt`, handle options correctly when installing packages one by one
+- Hints after ./configure: maybe sort and remove duplicates (https://groups.google.com/d/msg/sage-devel/EWTVN-Fmc8w/y9933Zo1AQAJ)
tox.ini:
- Add user option for configuring number of threads used Description changed:
---
+++
@@ -15,6 +15,7 @@
- distribution-specific commands such as `apt-get install` are in both `build/bin/write_dockerfile.sh` and `build/bin/sage-spkg`. This could be unified as well, or be obtained from another text file etc., by using/extending `build/bin/sage-print-system-package-command` from #26964
Related:
+- #29417 - has various improvements already
- #29363 - At the end of configure, indicate which optional/experimental packages are configured to be installed
- #29372 - At the end of configure, show installation hints for disabled optional packages separately
- #29087 - Add [GitHub](../wiki/GitHub) Actions workflow for testing the build on various Linux distributions via docker; macOS with homebrew; and Windows (cygwin)Description changed:
---
+++
@@ -9,7 +9,7 @@
- Hints after ./configure: maybe sort and remove duplicates (https://groups.google.com/d/msg/sage-devel/EWTVN-Fmc8w/y9933Zo1AQAJ)
tox.ini:
-- Add user option for configuring number of threads used
+- Obtain image from container of failing builds. Move&improve code from tox.yml. Use `docker ps --filter label=.... ` to look up the image more reliably (https://docs.docker.com/engine/reference/commandline/ps/)
Also:
- distribution-specific commands such as `apt-get install` are in both `build/bin/write_dockerfile.sh` and `build/bin/sage-spkg`. This could be unified as well, or be obtained from another text file etc., by using/extending `build/bin/sage-print-system-package-command` from #26964Description changed:
---
+++
@@ -16,8 +16,10 @@
Related:
- #29417 - has various improvements already
-- #29363 - At the end of configure, indicate which optional/experimental packages are configured to be installed
-- #29372 - At the end of configure, show installation hints for disabled optional packages separately
- #29087 - Add [GitHub](../wiki/GitHub) Actions workflow for testing the build on various Linux distributions via docker; macOS with homebrew; and Windows (cygwin)
- #29401 - Add documentation of tox and [GitHub](../wiki/GitHub) actions workflow to developer's manual
+Wishlist items:
+- #29363 - At the end of configure, indicate which optional/experimental packages are configured to be installed
+- #29372 - At the end of configure, show installation hints for disabled optional packages separately
+Description changed:
---
+++
@@ -19,7 +19,7 @@
- #29087 - Add [GitHub](../wiki/GitHub) Actions workflow for testing the build on various Linux distributions via docker; macOS with homebrew; and Windows (cygwin)
- #29401 - Add documentation of tox and [GitHub](../wiki/GitHub) actions workflow to developer's manual
-Wishlist items:
+Wishlist items for messages at the end of configure:
- #29363 - At the end of configure, indicate which optional/experimental packages are configured to be installed
- #29372 - At the end of configure, show installation hints for disabled optional packages separately
Description changed:
---
+++
@@ -19,7 +19,11 @@
- #29087 - Add [GitHub](../wiki/GitHub) Actions workflow for testing the build on various Linux distributions via docker; macOS with homebrew; and Windows (cygwin)
- #29401 - Add documentation of tox and [GitHub](../wiki/GitHub) actions workflow to developer's manual
-Wishlist items for messages at the end of configure:
-- #29363 - At the end of configure, indicate which optional/experimental packages are configured to be installed
-- #29372 - At the end of configure, show installation hints for disabled optional packages separately
+Improvements to auto-generated parts of the manuals:
+- #29558 Autogenerated parts of installation guide
+Improvements for messages at the end of a `./configure` run:
+- #29560 `sage-guess-package-system`: Ignore conda if no environment is activated
+- #29363 - At the end of `configure`, indicate which optional/experimental packages are configured to be installed
+- #29372 - At the end of `configure`, show installation hints for disabled optional packages separately
+Description changed:
---
+++
@@ -6,7 +6,6 @@
- optionally create a script for `docker run` instead of a `Dockerfile` (this gives more flexibility for multiarch - see #29143)
- cache Docker images with system packages installed ... https://github.com/marketplace/actions/build-docker-images-using-cache
- define shell quoting in files like `debian.txt`, handle options correctly when installing packages one by one
-- Hints after ./configure: maybe sort and remove duplicates (https://groups.google.com/d/msg/sage-devel/EWTVN-Fmc8w/y9933Zo1AQAJ)
tox.ini:
- Obtain image from container of failing builds. Move&improve code from tox.yml. Use `docker ps --filter label=.... ` to look up the image more reliably (https://docs.docker.com/engine/reference/commandline/ps/)
@@ -26,4 +25,5 @@
- #29560 `sage-guess-package-system`: Ignore conda if no environment is activated
- #29363 - At the end of `configure`, indicate which optional/experimental packages are configured to be installed
- #29372 - At the end of `configure`, show installation hints for disabled optional packages separately
+- Hints after ./configure: maybe sort and remove duplicates (https://groups.google.com/d/msg/sage-devel/EWTVN-Fmc8w/y9933Zo1AQAJ)
Description changed:
---
+++
@@ -1,25 +1,26 @@
-`build/bin/write_dockerfile.sh`, introduced in #29053, determines lists of system packages in a rather crude way. This should be improved.
-
+Improvements to low-level system packages scripts:
+- `build/bin/write_dockerfile.sh`, introduced in #29053, determines lists of system packages in a rather crude way. This should be improved.
- instead of passing `TYPE_PATTERN` to `build/bin/write_dockerfile.sh`, do the work in `tox.ini`.
- helper scripts for extracting lists of packages according to criteria
- possibly, by extending and using `sage_bootstrap`
+- Extend `build/bin/sage-print-system-package-command` so that it can provide all distribution-specific commands such as `apt-get install` for `build/bin/write_dockerfile.sh`
+
+Improvements to the system package database:
+- define shell quoting in files like `debian.txt`, handle options correctly when installing packages one by one, fix up passing installation options when `IGNORE_MISSING_PACKAGES=yes`
+- #29124 Add script packages build/pkgs/_prereq, build/pkgs/_toolchain, build/pkgs/_bootstrap
+
+Improvements to `tox docker`:
- optionally create a script for `docker run` instead of a `Dockerfile` (this gives more flexibility for multiarch - see #29143)
- cache Docker images with system packages installed ... https://github.com/marketplace/actions/build-docker-images-using-cache
-- define shell quoting in files like `debian.txt`, handle options correctly when installing packages one by one
+- move log extraction code from tox.yml to tox.ini (#29530 did some preparation already)
+- Make obtaining image from container of failing builds more robust: Use LABEL commands in dockerfiles, use `docker ps --filter label=.... ` to look up the container (https://docs.docker.com/engine/reference/commandline/ps/)
-tox.ini:
-- Obtain image from container of failing builds. Move&improve code from tox.yml. Use `docker ps --filter label=.... ` to look up the image more reliably (https://docs.docker.com/engine/reference/commandline/ps/)
-
-Also:
-- distribution-specific commands such as `apt-get install` are in both `build/bin/write_dockerfile.sh` and `build/bin/sage-spkg`. This could be unified as well, or be obtained from another text file etc., by using/extending `build/bin/sage-print-system-package-command` from #26964
-
-Related:
-- #29417 - has various improvements already
-- #29087 - Add [GitHub](../wiki/GitHub) Actions workflow for testing the build on various Linux distributions via docker; macOS with homebrew; and Windows (cygwin)
-- #29401 - Add documentation of tox and [GitHub](../wiki/GitHub) actions workflow to developer's manual
+Improvements to `tox local`:
+-
Improvements to auto-generated parts of the manuals:
- #29558 Autogenerated parts of installation guide
+- #29557 Add script package `_recommended` and generate "recommended system packages" info
Improvements for messages at the end of a `./configure` run:
- #29560 `sage-guess-package-system`: Ignore conda if no environment is activated
@@ -27,3 +28,6 @@
- #29372 - At the end of `configure`, show installation hints for disabled optional packages separately
- Hints after ./configure: maybe sort and remove duplicates (https://groups.google.com/d/msg/sage-devel/EWTVN-Fmc8w/y9933Zo1AQAJ)
+See also:
+- #29060 Meta-ticket: Add Dockerfiles and CI scripts for integration testing of source and binary distributions and of downstream packages
+Description changed:
---
+++
@@ -16,7 +16,11 @@
- Make obtaining image from container of failing builds more robust: Use LABEL commands in dockerfiles, use `docker ps --filter label=.... ` to look up the container (https://docs.docker.com/engine/reference/commandline/ps/)
Improvements to `tox local`:
--
+- #29416: tox.ini: Add local-copy
+- #21469: Enable VPATH builds (several independent build trees connected to one source tree)
+
+Other improvements to `tox.ini`:
+- Make `tox -p auto` useful again (it does not understand the nested braces)
Improvements to auto-generated parts of the manuals:
- #29558 Autogenerated parts of installation guideDescription changed:
---
+++
@@ -28,6 +28,7 @@
Improvements for messages at the end of a `./configure` run:
- #29560 `sage-guess-package-system`: Ignore conda if no environment is activated
+- Perhaps `sage-guess-package-system` should report several package systems such as `conda ubuntu` or `homebrew cpan` when that makes sense
- #29363 - At the end of `configure`, indicate which optional/experimental packages are configured to be installed
- #29372 - At the end of `configure`, show installation hints for disabled optional packages separately
- Hints after ./configure: maybe sort and remove duplicates (https://groups.google.com/d/msg/sage-devel/EWTVN-Fmc8w/y9933Zo1AQAJ)Description changed:
---
+++
@@ -32,6 +32,7 @@
- #29363 - At the end of `configure`, indicate which optional/experimental packages are configured to be installed
- #29372 - At the end of `configure`, show installation hints for disabled optional packages separately
- Hints after ./configure: maybe sort and remove duplicates (https://groups.google.com/d/msg/sage-devel/EWTVN-Fmc8w/y9933Zo1AQAJ)
+- #29586: Improve configure's recommendations
See also:
- #29060 Meta-ticket: Add Dockerfiles and CI scripts for integration testing of source and binary distributions and of downstream packagesDescription changed:
---
+++
@@ -13,6 +13,7 @@
- optionally create a script for `docker run` instead of a `Dockerfile` (this gives more flexibility for multiarch - see #29143)
- cache Docker images with system packages installed ... https://github.com/marketplace/actions/build-docker-images-using-cache
- move log extraction code from tox.yml to tox.ini (#29530 did some preparation already)
+- system package installation should retry a few times when installation errors because of network errors occur. In particular for docker because an incomplete step will be cached
- Make obtaining image from container of failing builds more robust: Use LABEL commands in dockerfiles, use `docker ps --filter label=.... ` to look up the container (https://docs.docker.com/engine/reference/commandline/ps/)
Improvements to `tox local`:Description changed:
---
+++
@@ -15,6 +15,7 @@
- move log extraction code from tox.yml to tox.ini (#29530 did some preparation already)
- system package installation should retry a few times when installation errors because of network errors occur. In particular for docker because an incomplete step will be cached
- Make obtaining image from container of failing builds more robust: Use LABEL commands in dockerfiles, use `docker ps --filter label=.... ` to look up the container (https://docs.docker.com/engine/reference/commandline/ps/)
+- setenv/passenv SAGE_SERVER
Improvements to `tox local`:
- #29416: tox.ini: Add local-copyDescription changed:
---
+++
@@ -16,6 +16,7 @@
- system package installation should retry a few times when installation errors because of network errors occur. In particular for docker because an incomplete step will be cached
- Make obtaining image from container of failing builds more robust: Use LABEL commands in dockerfiles, use `docker ps --filter label=.... ` to look up the container (https://docs.docker.com/engine/reference/commandline/ps/)
- setenv/passenv SAGE_SERVER
+- Remove TARGETS_PRE/TARGETS distinction: Instead exit from make with a distinctive error code to trigger the ADD of src/
Improvements to `tox local`:
- #29416: tox.ini: Add local-copyBranch pushed to git repo; I updated commit sha1. New commits:
fd9b928 | build/bin/sage-logger [V=0]: Show build times of successful builds |
Commit: fd9b928
Description changed:
---
+++
@@ -37,6 +37,11 @@
- Hints after ./configure: maybe sort and remove duplicates (https://groups.google.com/d/msg/sage-devel/EWTVN-Fmc8w/y9933Zo1AQAJ)
- #29586: Improve configure's recommendations
+Tickets regarding `sage_bootstrap`:
+- #29919 Restore "huge" package type
+- #20023 `sage_bootstrap`: Remove Python 2.6 support
+- #20104 `sage --package`: Add commands `list :standard:`, `update-latest` (for packages from PyPI), `upload`
+
See also:
- #29060 Meta-ticket: Add Dockerfiles and CI scripts for integration testing of source and binary distributions and of downstream packages
Description changed:
---
+++
@@ -1,8 +1,8 @@
Improvements to low-level system packages scripts:
-- `build/bin/write_dockerfile.sh`, introduced in #29053, determines lists of system packages in a rather crude way. This should be improved.
-- instead of passing `TYPE_PATTERN` to `build/bin/write_dockerfile.sh`, do the work in `tox.ini`.
-- helper scripts for extracting lists of packages according to criteria
-- possibly, by extending and using `sage_bootstrap`
+- `build/bin/write_dockerfile.sh`, introduced in #29053, determines lists of system packages in a rather crude way. This should be improved. #30861
+ - instead of passing `TYPE_PATTERN` to `build/bin/write_dockerfile.sh`, do the work in `tox.ini`.
+ - helper scripts for extracting lists of packages according to criteria
+ - possibly, by extending and using `sage_bootstrap`
- Extend `build/bin/sage-print-system-package-command` so that it can provide all distribution-specific commands such as `apt-get install` for `build/bin/write_dockerfile.sh`
Improvements to the system package database:Description changed:
---
+++
@@ -36,6 +36,7 @@
- #29372 - At the end of `configure`, show installation hints for disabled optional packages separately
- Hints after ./configure: maybe sort and remove duplicates (https://groups.google.com/d/msg/sage-devel/EWTVN-Fmc8w/y9933Zo1AQAJ)
- #29586: Improve configure's recommendations
+- #30863: refine definition of variable SAGE_NEED_SYSTEM_PACKAGES in m4/sage_spkg_collect.m4
Tickets regarding `sage_bootstrap`:
- #29919 Restore "huge" package typeDescription changed:
---
+++
@@ -1,5 +1,5 @@
Improvements to low-level system packages scripts:
-- `build/bin/write_dockerfile.sh`, introduced in #29053, determines lists of system packages in a rather crude way. This should be improved. #30861
+- `build/bin/write_dockerfile.sh`, introduced in #29053, determines lists of system packages in a rather crude way. This should be improved. #30861, #30865
- instead of passing `TYPE_PATTERN` to `build/bin/write_dockerfile.sh`, do the work in `tox.ini`.
- helper scripts for extracting lists of packages according to criteria
- possibly, by extending and using `sage_bootstrap`Description changed:
---
+++
@@ -36,6 +36,7 @@
- #29372 - At the end of `configure`, show installation hints for disabled optional packages separately
- Hints after ./configure: maybe sort and remove duplicates (https://groups.google.com/d/msg/sage-devel/EWTVN-Fmc8w/y9933Zo1AQAJ)
- #29586: Improve configure's recommendations
+- #30624: Improve wording and formatting of configure's recommendation message
- #30863: refine definition of variable SAGE_NEED_SYSTEM_PACKAGES in m4/sage_spkg_collect.m4
Tickets regarding `sage_bootstrap`:Description changed:
---
+++
@@ -1,5 +1,5 @@
Improvements to low-level system packages scripts:
-- `build/bin/write_dockerfile.sh`, introduced in #29053, determines lists of system packages in a rather crude way. This should be improved. #30861, #30865
+- `build/bin/write_dockerfile.sh`, introduced in #29053, determines lists of system packages in a rather crude way. This should be improved. #30861, #30865, #30947, #30951, #30968
- instead of passing `TYPE_PATTERN` to `build/bin/write_dockerfile.sh`, do the work in `tox.ini`.
- helper scripts for extracting lists of packages according to criteria
- possibly, by extending and using `sage_bootstrap`Description changed:
---
+++
@@ -21,9 +21,11 @@
Improvements to `tox local`:
- #29416: tox.ini: Add local-copy
- #21469: Enable VPATH builds (several independent build trees connected to one source tree)
+- #31216: tox.ini (local): Add environment variables to skip system package installs, mechanism for a local interactive shell
+- #31064: `ci-cygwin*.yml`: delegate to `tox`, add more stages, use more specific `SAGE_LOCAL`
Other improvements to `tox.ini`:
-- Make `tox -p auto` useful again (it does not understand the nested braces)
+- Make `tox -p auto` and `tox --listenvs` useful again (it does not understand the nested braces)
Improvements to auto-generated parts of the manuals:
- #29558 Autogenerated parts of installation guideDescription changed:
---
+++
@@ -23,6 +23,9 @@
- #21469: Enable VPATH builds (several independent build trees connected to one source tree)
- #31216: tox.ini (local): Add environment variables to skip system package installs, mechanism for a local interactive shell
- #31064: `ci-cygwin*.yml`: delegate to `tox`, add more stages, use more specific `SAGE_LOCAL`
+- the complicated rule for the commands of `local` consists entirely of workarounds for things that should really be fixed/improved in our `Makefile`s:
+ - #30721: `build/make/Makefile.in`: `base-toolchain` should be a dependency of every non-base, non-toolchain package
+ - `tox.ini` and `build/bin/write-dockerfile.sh` use better defaults for `SAGE_CHECK_PACKAGES`; this should be moved to `build/make/Makefile.in` (`SAGE_CHECK_PACKAGES_DEFAULT_yes`).
Other improvements to `tox.ini`:
- Make `tox -p auto` and `tox --listenvs` useful again (it does not understand the nested braces)Sage development has entered the release candidate phase for 9.3. Setting a new milestone for this ticket based on a cursory review of ticket status, priority, and last modification date.
Description changed:
---
+++
@@ -16,7 +16,12 @@
- system package installation should retry a few times when installation errors because of network errors occur. In particular for docker because an incomplete step will be cached
- Make obtaining image from container of failing builds more robust: Use LABEL commands in dockerfiles, use `docker ps --filter label=.... ` to look up the container (https://docs.docker.com/engine/reference/commandline/ps/)
- setenv/passenv SAGE_SERVER
-- Remove TARGETS_PRE/TARGETS distinction: Instead exit from make with a distinctive error code to trigger the ADD of src/
+- Remove `TARGETS_PRE`/`TARGETS` distinction: Instead exit from make with a distinctive error code to trigger the ADD of src/; for example, add `sagelib` dependency on `$(SAGE_SRC)/sage`, and add the rule to Makefile:
+
+```
+$(SAGE_SRC)/sage:
+ exit 76
+```
Improvements to `tox local`:
- #29416: tox.ini: Add local-copyDescription changed:
---
+++
@@ -16,11 +16,11 @@
- system package installation should retry a few times when installation errors because of network errors occur. In particular for docker because an incomplete step will be cached
- Make obtaining image from container of failing builds more robust: Use LABEL commands in dockerfiles, use `docker ps --filter label=.... ` to look up the container (https://docs.docker.com/engine/reference/commandline/ps/)
- setenv/passenv SAGE_SERVER
-- Remove `TARGETS_PRE`/`TARGETS` distinction: Instead exit from make with a distinctive error code to trigger the ADD of src/; for example, add `sagelib` dependency on `$(SAGE_SRC)/sage`, and add the rule to Makefile:
+- Remove `TARGETS_PRE`/`TARGETS` distinction: Instead leave a stamp file and exit from make with an error to trigger the ADD of src/; for example, add `sagelib` dependency on `$(SAGE_SRC)/sage`, and add the rule to Makefile:
```
$(SAGE_SRC)/sage:
- exit 76
+ touch .need_src; exit 1
```
Improvements to `tox local`:Description changed:
---
+++
@@ -1,8 +1,5 @@
Improvements to low-level system packages scripts:
-- `build/bin/write_dockerfile.sh`, introduced in #29053, determines lists of system packages in a rather crude way. This should be improved. #30861, #30865, #30947, #30951, #30968
- - instead of passing `TYPE_PATTERN` to `build/bin/write_dockerfile.sh`, do the work in `tox.ini`.
- - helper scripts for extracting lists of packages according to criteria
- - possibly, by extending and using `sage_bootstrap`
+- #30861, #30865, #30947, #30951, #30968: Refactor system package code in `tox.ini`, `build/bin/write_dockerfile.sh` by extending and using `sage_bootstrap`
- Extend `build/bin/sage-print-system-package-command` so that it can provide all distribution-specific commands such as `apt-get install` for `build/bin/write_dockerfile.sh`
Improvements to the system package database:
@@ -22,6 +19,7 @@
$(SAGE_SRC)/sage:
touch .need_src; exit 1
```
+- use environment variable `MAKE` for docker builds as well, instead of asking users to pass the `USE_MAKEFLAGS` variable
Improvements to `tox local`:
- #29416: tox.ini: Add local-copy
@@ -34,6 +32,8 @@
Other improvements to `tox.ini`:
- Make `tox -p auto` and `tox --listenvs` useful again (it does not understand the nested braces)
+- #31574: `tox.ini`, `build/bin/write-dockerfile.sh`: Do not use `make -k` by default
+-
Improvements to auto-generated parts of the manuals:
- #29558 Autogenerated parts of installation guideDescription changed:
---
+++
@@ -3,10 +3,11 @@
- Extend `build/bin/sage-print-system-package-command` so that it can provide all distribution-specific commands such as `apt-get install` for `build/bin/write_dockerfile.sh`
Improvements to the system package database:
+- #29124 Add script packages build/pkgs/_prereq, build/pkgs/_toolchain, build/pkgs/_bootstrap
- define shell quoting in files like `debian.txt`, handle options correctly when installing packages one by one, fix up passing installation options when `IGNORE_MISSING_PACKAGES=yes`
-- #29124 Add script packages build/pkgs/_prereq, build/pkgs/_toolchain, build/pkgs/_bootstrap
Improvements to `tox docker`:
+- #29536 Make docker images from [GitHub](../wiki/GitHub) CI workflow and regular Sage Docker images interoperable
- optionally create a script for `docker run` instead of a `Dockerfile` (this gives more flexibility for multiarch - see #29143)
- cache Docker images with system packages installed ... https://github.com/marketplace/actions/build-docker-images-using-cache
- move log extraction code from tox.yml to tox.ini (#29530 did some preparation already)
@@ -22,18 +23,17 @@
- use environment variable `MAKE` for docker builds as well, instead of asking users to pass the `USE_MAKEFLAGS` variable
Improvements to `tox local`:
-- #29416: tox.ini: Add local-copy
-- #21469: Enable VPATH builds (several independent build trees connected to one source tree)
- #31216: tox.ini (local): Add environment variables to skip system package installs, mechanism for a local interactive shell
- #31064: `ci-cygwin*.yml`: delegate to `tox`, add more stages, use more specific `SAGE_LOCAL`
+- #21469: Enable VPATH builds (several independent build trees connected to one source tree)
+- #29416: tox.ini: Add local-copy
- the complicated rule for the commands of `local` consists entirely of workarounds for things that should really be fixed/improved in our `Makefile`s:
- #30721: `build/make/Makefile.in`: `base-toolchain` should be a dependency of every non-base, non-toolchain package
- `tox.ini` and `build/bin/write-dockerfile.sh` use better defaults for `SAGE_CHECK_PACKAGES`; this should be moved to `build/make/Makefile.in` (`SAGE_CHECK_PACKAGES_DEFAULT_yes`).
-
+ - #31535 New make targets "sagelib-sdist", "sage_docbuild-sdist", ... and "sagelib-tox-...", ...
Other improvements to `tox.ini`:
- Make `tox -p auto` and `tox --listenvs` useful again (it does not understand the nested braces)
- #31574: `tox.ini`, `build/bin/write-dockerfile.sh`: Do not use `make -k` by default
--
Improvements to auto-generated parts of the manuals:
- #29558 Autogenerated parts of installation guide
@@ -43,16 +43,16 @@
- #29560 `sage-guess-package-system`: Ignore conda if no environment is activated
- Perhaps `sage-guess-package-system` should report several package systems such as `conda ubuntu` or `homebrew cpan` when that makes sense
- #29363 - At the end of `configure`, indicate which optional/experimental packages are configured to be installed
+- #30624: Improve wording and formatting of configure's recommendation message
- #29372 - At the end of `configure`, show installation hints for disabled optional packages separately
- Hints after ./configure: maybe sort and remove duplicates (https://groups.google.com/d/msg/sage-devel/EWTVN-Fmc8w/y9933Zo1AQAJ)
- #29586: Improve configure's recommendations
-- #30624: Improve wording and formatting of configure's recommendation message
- #30863: refine definition of variable SAGE_NEED_SYSTEM_PACKAGES in m4/sage_spkg_collect.m4
Tickets regarding `sage_bootstrap`:
-- #29919 Restore "huge" package type
- #20023 `sage_bootstrap`: Remove Python 2.6 support
- #20104 `sage --package`: Add commands `list :standard:`, `update-latest` (for packages from PyPI), `upload`
+- #29919 Restore "huge" package type
See also:
- #29060 Meta-ticket: Add Dockerfiles and CI scripts for integration testing of source and binary distributions and of downstream packagesDescription changed:
---
+++
@@ -46,6 +46,7 @@
- #30624: Improve wording and formatting of configure's recommendation message
- #29372 - At the end of `configure`, show installation hints for disabled optional packages separately
- Hints after ./configure: maybe sort and remove duplicates (https://groups.google.com/d/msg/sage-devel/EWTVN-Fmc8w/y9933Zo1AQAJ)
+- #32060 `configure`: Change defaults to `--with-system-gcc=force`, `--with-system-python3=force`
- #29586: Improve configure's recommendations
- #30863: refine definition of variable SAGE_NEED_SYSTEM_PACKAGES in m4/sage_spkg_collect.m4
Description changed:
---
+++
@@ -32,7 +32,7 @@
- `tox.ini` and `build/bin/write-dockerfile.sh` use better defaults for `SAGE_CHECK_PACKAGES`; this should be moved to `build/make/Makefile.in` (`SAGE_CHECK_PACKAGES_DEFAULT_yes`).
- #31535 New make targets "sagelib-sdist", "sage_docbuild-sdist", ... and "sagelib-tox-...", ...
Other improvements to `tox.ini`:
-- Make `tox -p auto` and `tox --listenvs` useful again (it does not understand the nested braces)
+- #32764: Make `tox -p auto` and `tox --listenvs` useful again (it does not understand the nested braces)
- #31574: `tox.ini`, `build/bin/write-dockerfile.sh`: Do not use `make -k` by default
Improvements to auto-generated parts of the manuals:Description changed:
---
+++
@@ -29,7 +29,7 @@
- #29416: tox.ini: Add local-copy
- the complicated rule for the commands of `local` consists entirely of workarounds for things that should really be fixed/improved in our `Makefile`s:
- #30721: `build/make/Makefile.in`: `base-toolchain` should be a dependency of every non-base, non-toolchain package
- - `tox.ini` and `build/bin/write-dockerfile.sh` use better defaults for `SAGE_CHECK_PACKAGES`; this should be moved to `build/make/Makefile.in` (`SAGE_CHECK_PACKAGES_DEFAULT_yes`).
+ - #32785: `tox.ini` and `build/bin/write-dockerfile.sh` use better defaults for `SAGE_CHECK_PACKAGES`; this should be moved to `build/make/Makefile.in` (`SAGE_CHECK_PACKAGES_DEFAULT_yes`).
- #31535 New make targets "sagelib-sdist", "sage_docbuild-sdist", ... and "sagelib-tox-...", ...
Other improvements to `tox.ini`:
- #32764: Make `tox -p auto` and `tox --listenvs` useful again (it does not understand the nested braces)Description changed:
---
+++
@@ -1,6 +1,8 @@
Improvements to low-level system packages scripts:
- #30861, #30865, #30947, #30951, #30968: Refactor system package code in `tox.ini`, `build/bin/write_dockerfile.sh` by extending and using `sage_bootstrap`
- Extend `build/bin/sage-print-system-package-command` so that it can provide all distribution-specific commands such as `apt-get install` for `build/bin/write_dockerfile.sh`
+- #29041 sage_bootstrap: Add command "sage -package list --output={install-requires,requirements,pipfile,debian,....}"
+- #33860 sage-package: Add commands "dependencies", "trees"
Improvements to the system package database:
- #29124 Add script packages build/pkgs/_prereq, build/pkgs/_toolchain, build/pkgs/_bootstrapDescription changed:
---
+++
@@ -1,6 +1,6 @@
Improvements to low-level system packages scripts:
- #30861, #30865, #30947, #30951, #30968: Refactor system package code in `tox.ini`, `build/bin/write_dockerfile.sh` by extending and using `sage_bootstrap`
-- Extend `build/bin/sage-print-system-package-command` so that it can provide all distribution-specific commands such as `apt-get install` for `build/bin/write_dockerfile.sh`
+- #33873: Extend `build/bin/sage-print-system-package-command` so that it can provide all distribution-specific commands such as `apt-get install` for `build/bin/write_dockerfile.sh`
- #29041 sage_bootstrap: Add command "sage -package list --output={install-requires,requirements,pipfile,debian,....}"
- #33860 sage-package: Add commands "dependencies", "trees"