sagemath / sage

Main repository of SageMath
https://www.sagemath.org
Other
1.47k stars 487 forks source link

Meta-ticket: Add Dockerfiles and CI scripts for integration testing of source and binary distributions and of downstream packages #29060

Open mkoeppe opened 4 years ago

mkoeppe commented 4 years ago

Testing of source and binary distributions relies too much on manual testing by people.

We propose to set up Dockerfiles and CI scripts that document and test the expected capabilities of source and binary Sage distributions; and of downstream distribution packaging.

Testing of source trees and source distributions: (in progress)

With the important changes brought by #27330 (Meta-ticket: spkg-configure: Try to use as many system packages as possible), sage-the-distribution has become less monolithic; it now interacts in a more complex way with distribution packaging. We propose to add infrastructure for testing correct installation of sage source distributions on a variety of platforms.

  1. We collect information about distribution packages systematically and store it in on a per-SPKG basis in build/pkgs/SPKG/distros/. (Right now this information is scattered - in downstream sage distribution packagers' build scripts, trac tickets, replies to bug reports in google groups, the sage installation manual, personal knowledge...) This is part of #29053, for debian/fedora/arch/conda (with follow-up tickets #29105, #29106 for other platforms).

  2. We generate well-defined test environments in the form of Dockerfiles. This makes it possible to test, on one's development computer, the correct installation of sage-the-distribution on a variety of platforms and configurations. #29053 provides build/bin/write-dockerfile.sh that generates the Dockerfile using the information in 1. The minimal configuration has just the packages that are needed for a build to succeed. The standard configuration installs all distribution packages that sage knows how to use.

  3. Running tests on many test environments is automated using tox in #29053. The top-level tox.ini file defines the test environments. Using tox's factor conditions (https://tox.readthedocs.io/en/latest/config.html#complex-factor-conditions), there is a succinct description of many test environments. For example, we can run tox -e docker-debian-stretch-minimal,docker-arch-latest-standard.

  4. 29087 automates running the tox tests for a selection of 34 platforms/configurations using a GitHub Actions workflow on every git push to a GitHub repository. An example run: https://github.com/mkoeppe/sage/actions/runs/32812271

Tickets:

Related meta-tickets:

Ideas without tickets so far:


Testing of the sage binary distributions: moved to #31133


Testing of downstream packaging of sage: (planning stage)


Symptoms:

CC: @vbraun @kiwifb @isuruf @dimpase @embray @saraedum @antonio-rojas @slel @sheerluck @tobiasdiez

Component: build

Keywords: ContinuousIntegration, sd111

Issue created by migration from https://trac.sagemath.org/ticket/29060

saraedum commented 4 years ago

Changed keywords from none to ContinuousIntegration

saraedum commented 4 years ago
comment:1

I like the general idea of doing more CI a lot. Probably we should split this ticket up though or turn it into a meta ticket that tracks similar CI improvements such as #28457, #24854, #25262.

For this to be actually noticed by people we probably would need some integration with Trac. If I understood embray correctly, adding something like that, similar to the patchbot status, would not be difficult. (Since #28457 has been ready for a while, it might be a good first candidate for such an integration.)

I would propose to use GitLab CI for probably all the things you describe. We already have some CI setup there that has been mostly stable recently (though most people don't know about it https://gitlab.com/sagemath/dev/trac/pipelines?page=1&scope=all since it's not visible in trac yet.) I had made some experiments with macOS & Windows there that were not completely disappointing. For macOS you cannot use docker but still GitLab CI works, see e.g. #25980. Windows can be run inside docker (on Windows) but two years ago, the performance was not sufficient, see #25805. Without docker it worked fine though.

For our Linux CI needs, we can mostly use the free GitLab runners but last time we tried we could also easily get plenty of free credits on Google Cloud. For macOS & Windows, I had at some point built a PoC runner that slelievre volunteered to host; unfortunately, I never finished that project.

mkoeppe commented 4 years ago
comment:2

Replying to @saraedum:

I like the general idea of doing more CI a lot. Probably we should split this ticket up though or turn it into a meta ticket that tracks similar CI improvements such as #28457, #24854, #25262.

For this to be actually noticed by people we probably would need some integration with Trac.

Yes, that would be nice. But it would already help if this were run at the time that betas and releases are prepared. I don't think it needs to be run on every ticket.

mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -15,3 +15,5 @@
 - https://github.com/mkoeppe/sage-numerical-backends-coin (current)
 - https://github.com/mkoeppe/sage_binary_tester (outdated)

+Tickets:
+- #29066: Add Dockerfile that sets up sage prerequisites on Arch Linux
mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -17,3 +17,6 @@

 Tickets:
 - #29066: Add Dockerfile that sets up sage prerequisites on Arch Linux
+
+Symptoms:
+- #29055: Installing any optional package on the binary distribution triggers full recompile of sagelib
mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -17,6 +17,8 @@

 Tickets:
 - #29066: Add Dockerfile that sets up sage prerequisites on Arch Linux
+- #29053: Add debian/fedora package information to build/pkgs, generate Dockerfiles and installation help

 Symptoms:
 - #29055: Installing any optional package on the binary distribution triggers full recompile of sagelib
+- #29051: Paths configured in installed numpy site.cfg [DEFAULT/ALL] do not affect scipy
mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -18,6 +18,7 @@
 Tickets:
 - #29066: Add Dockerfile that sets up sage prerequisites on Arch Linux
 - #29053: Add debian/fedora package information to build/pkgs, generate Dockerfiles and installation help
+- #29087: Add [GitHub](../wiki/GitHub) Actions workflow for testing spkg-configure / build on various Linux distributions

 Symptoms:
 - #29055: Installing any optional package on the binary distribution triggers full recompile of sagelib
mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -17,7 +17,8 @@

 Tickets:
 - #29066: Add Dockerfile that sets up sage prerequisites on Arch Linux
-- #29053: Add debian/fedora package information to build/pkgs, generate Dockerfiles and installation help
+- #29053: Add debian/fedora/arch/conda package information to build/pkgs, generate Dockerfiles and installation help; add tox.ini
+- #29104: Add to tox.ini some homebrew toxenvs (with a fresh install not in /usr/local)
 - #29087: Add [GitHub](../wiki/GitHub) Actions workflow for testing spkg-configure / build on various Linux distributions

 Symptoms:
mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -2,24 +2,28 @@

 We propose to set up Dockerfiles and CI scripts that document and test the expected capabilities of source and binary Sage distributions; and of downstream distribution packaging.

-Examples:
+Testing of source trees and source distributions:
+- #29066: Add Dockerfile that sets up sage prerequisites on Arch Linux
+- #29053: Add debian/fedora/arch/conda package information to build/pkgs, generate Dockerfiles and installation help; add tox.ini --- this helps test that all `spkg-configure.m4` scripts work as expected
+- #29104: Add to tox.ini some homebrew toxenvs (with a fresh install not in /usr/local)
+- #29087: Add [GitHub](../wiki/GitHub) Actions workflow for testing spkg-configure / build on various Linux distributions
+- Testing that it is possible to build without error when upgrading with git from some list of previous releases.
+- Testing the cygwin build using Azure pipelines / GitHub Actions.
+
+Testing of the sage binary distributions:
 - A Dockerfile for testing that the sage binary distribution runs on `ubuntu:latest` with the following set of installed distribution packages....
 - A Dockerfile for testing that the sage binary distribution is able to install optional packages when run on `ubuntu:latest` with the following set of installed distribution packages....
-- A Dockerfile for testing that all `spkg-configure.m4` scripts work as expected (using `./configure --with-system-PACKAGE=force`)
-- Testing that it is possible to build without error when upgrading with git from some list of previous releases.
-- Testing that `sage -c SAGECOMMAND`, `sage -t`, `sage -python -c COMMAND`, ... work with the `sage` script provided by the distribution (see https://groups.google.com/d/msg/sage-packaging/BmkxIBdwbvE/fRMl2sjdBQAJ)
-- Testing that a macOS binary distribution works on a set of OS versions, with and without XCode installed. (Sadly, cannot use Docker for that.)
-- Testing the cygwin build using Azure pipelines / GitHub Actions.
+- Test that a macOS binary distribution works on a set of OS versions, with and without XCode installed. (Sadly, cannot use Docker for that.)
+- See the following for some work in this direction:
+   - https://github.com/mkoeppe/sage-numerical-backends-coin (current)
+   - https://github.com/mkoeppe/sage_binary_tester (outdated)

-See the following for some work in this direction:
-- https://github.com/mkoeppe/sage-numerical-backends-coin (current)
-- https://github.com/mkoeppe/sage_binary_tester (outdated)
+Testing of downstream packaging of sage:

-Tickets:
-- #29066: Add Dockerfile that sets up sage prerequisites on Arch Linux
-- #29053: Add debian/fedora/arch/conda package information to build/pkgs, generate Dockerfiles and installation help; add tox.ini
-- #29104: Add to tox.ini some homebrew toxenvs (with a fresh install not in /usr/local)
-- #29087: Add [GitHub](../wiki/GitHub) Actions workflow for testing spkg-configure / build on various Linux distributions
+- Test that `sage -c SAGECOMMAND`, `sage -t`, `sage -python -c COMMAND`, ... work with the `sage` script provided by the distribution (see https://groups.google.com/d/msg/sage-packaging/BmkxIBdwbvE/fRMl2sjdBQAJ)
+
+
+---

 Symptoms:
 - #29055: Installing any optional package on the binary distribution triggers full recompile of sagelib
mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -4,6 +4,7 @@

 Testing of source trees and source distributions:
 - #29066: Add Dockerfile that sets up sage prerequisites on Arch Linux
+- #29105: Add gentoo package information, extend dockerfile generator to gentoo
 - #29053: Add debian/fedora/arch/conda package information to build/pkgs, generate Dockerfiles and installation help; add tox.ini --- this helps test that all `spkg-configure.m4` scripts work as expected
 - #29104: Add to tox.ini some homebrew toxenvs (with a fresh install not in /usr/local)
 - #29087: Add [GitHub](../wiki/GitHub) Actions workflow for testing spkg-configure / build on various Linux distributions
mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -3,9 +3,9 @@
 We propose to set up Dockerfiles and CI scripts that document and test the expected capabilities of source and binary Sage distributions; and of downstream distribution packaging.

 Testing of source trees and source distributions:
+- #29053: Add debian/fedora/arch/conda package information to build/pkgs, generate Dockerfiles and installation help; add tox.ini --- this helps test that all `spkg-configure.m4` scripts work as expected
 - #29066: Add Dockerfile that sets up sage prerequisites on Arch Linux
 - #29105: Add gentoo package information, extend dockerfile generator to gentoo
-- #29053: Add debian/fedora/arch/conda package information to build/pkgs, generate Dockerfiles and installation help; add tox.ini --- this helps test that all `spkg-configure.m4` scripts work as expected
 - #29104: Add to tox.ini some homebrew toxenvs (with a fresh install not in /usr/local)
 - #29087: Add [GitHub](../wiki/GitHub) Actions workflow for testing spkg-configure / build on various Linux distributions
 - Testing that it is possible to build without error when upgrading with git from some list of previous releases.
mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -21,7 +21,7 @@

 Testing of downstream packaging of sage:

-- Test that `sage -c SAGECOMMAND`, `sage -t`, `sage -python -c COMMAND`, ... work with the `sage` script provided by the distribution (see https://groups.google.com/d/msg/sage-packaging/BmkxIBdwbvE/fRMl2sjdBQAJ)
+- #29111: Specify a subset of sage command line options that are supported by sagelib - rather than sage-the-distribution. Test that `sage -c SAGECOMMAND`, `sage -t`, `sage -python -c COMMAND`, ... work with the `sage` script provided by the distribution (see https://groups.google.com/d/msg/sage-packaging/BmkxIBdwbvE/fRMl2sjdBQAJ)

 ---
dimpase commented 4 years ago
comment:12

This needs a writeup to explain how all these cogs: tox, docker, github actions, etc. fit together and move.

mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -2,16 +2,33 @@

 We propose to set up Dockerfiles and CI scripts that document and test the expected capabilities of source and binary Sage distributions; and of downstream distribution packaging.

-Testing of source trees and source distributions:
+**Testing of source trees and source distributions:** (in progress) 
+
+With the important changes brought by #27330 (Meta-ticket: `spkg-configure`: Try to use as many system packages as possible), sage-the-distribution has become less monolithic; it now interacts in a more complex way with distribution packaging. We propose to add infrastructure for testing correct installation of sage source distributions on a variety of platforms. 
+
+1. We collect information about distribution packages systematically and store it in on a per-SPKG basis in  `build/pkgs/SPKG/distros/`. (Right now this information is scattered - in downstream sage distribution packagers' build scripts, trac tickets, replies to bug reports in google groups, the sage installation manual, personal knowledge...) This is part of #29053, for debian/fedora/arch/conda (with follow-up tickets #29105, #29106 for other platforms).
+
+2. We generate well-defined test environments in the form of `Dockerfile`s. This makes it possible to test, on one's development computer, the correct installation of sage-the-distribution on a variety of platforms and configurations. #29053 provides `build/bin/write-dockerfile.sh` that generates the `Dockerfile` using the information in 1. The `minimal` configuration` has just the packages that are needed for a build to succeed. The `standard` configuration installs all distribution packages that sage knows how to use.
+
+3. Running tests on many test environments is automated using `tox` in #29053. The top-level [tox.ini](https://github.com/sagemath/sagetrac-mirror/blob/develop/tox.ini?id=23c6334cf2927a4d917a27b3963471e8242d86a3) file defines the test environments. Using `tox`'s factor conditions (https://tox.readthedocs.io/en/latest/config.html#complex-factor-conditions), there is a succinct description of many test environments. For example, we can run `tox -e docker-debian-stretch-minimal,docker-arch-latest-standard`.
+
+4. #29087 automates running the `tox` tests for a selection of 34 platforms/configurations using a [GitHub](../wiki/GitHub) Actions workflow. An example run: https://github.com/mkoeppe/sage/actions/runs/32812271
+
+
+Tickets:
 - #29053: Add debian/fedora/arch/conda package information to build/pkgs, generate Dockerfiles and installation help; add tox.ini --- this helps test that all `spkg-configure.m4` scripts work as expected
 - #29066: Add Dockerfile that sets up sage prerequisites on Arch Linux
 - #29105: Add gentoo package information, extend dockerfile generator to gentoo
 - #29104: Add to tox.ini some homebrew toxenvs (with a fresh install not in /usr/local)
 - #29087: Add [GitHub](../wiki/GitHub) Actions workflow for testing spkg-configure / build on various Linux distributions
 - Testing that it is possible to build without error when upgrading with git from some list of previous releases.
+- #29106 Add cygwin package information
 - Testing the cygwin build using Azure pipelines / GitHub Actions.

-Testing of the sage binary distributions:
+---
+
+**Testing of the sage binary distributions:** (planning stage)
+
 - A Dockerfile for testing that the sage binary distribution runs on `ubuntu:latest` with the following set of installed distribution packages....
 - A Dockerfile for testing that the sage binary distribution is able to install optional packages when run on `ubuntu:latest` with the following set of installed distribution packages....
 - Test that a macOS binary distribution works on a set of OS versions, with and without XCode installed. (Sadly, cannot use Docker for that.)
@@ -19,7 +36,9 @@
    - https://github.com/mkoeppe/sage-numerical-backends-coin (current)
    - https://github.com/mkoeppe/sage_binary_tester (outdated)

-Testing of downstream packaging of sage:
+---
+
+**Testing of downstream packaging of sage:** (planning stage)

 - #29111: Specify a subset of sage command line options that are supported by sagelib - rather than sage-the-distribution. Test that `sage -c SAGECOMMAND`, `sage -t`, `sage -python -c COMMAND`, ... work with the `sage` script provided by the distribution (see https://groups.google.com/d/msg/sage-packaging/BmkxIBdwbvE/fRMl2sjdBQAJ)
mkoeppe commented 4 years ago
comment:14

Replying to @dimpase:

This needs a writeup to explain how all these cogs: tox, docker, github actions, etc. fit together and move.

Good idea, please take a look at the revised description and let me know what needs more detail.

mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -8,11 +8,11 @@

 1. We collect information about distribution packages systematically and store it in on a per-SPKG basis in  `build/pkgs/SPKG/distros/`. (Right now this information is scattered - in downstream sage distribution packagers' build scripts, trac tickets, replies to bug reports in google groups, the sage installation manual, personal knowledge...) This is part of #29053, for debian/fedora/arch/conda (with follow-up tickets #29105, #29106 for other platforms).

-2. We generate well-defined test environments in the form of `Dockerfile`s. This makes it possible to test, on one's development computer, the correct installation of sage-the-distribution on a variety of platforms and configurations. #29053 provides `build/bin/write-dockerfile.sh` that generates the `Dockerfile` using the information in 1. The `minimal` configuration` has just the packages that are needed for a build to succeed. The `standard` configuration installs all distribution packages that sage knows how to use.
+2. We generate well-defined test environments in the form of `Dockerfile`s. This makes it possible to test, on one's development computer, the correct installation of sage-the-distribution on a variety of platforms and configurations. #29053 provides `build/bin/write-dockerfile.sh` that generates the `Dockerfile` using the information in 1. The `minimal` configuration has just the packages that are needed for a build to succeed. The `standard` configuration installs all distribution packages that sage knows how to use.

 3. Running tests on many test environments is automated using `tox` in #29053. The top-level [tox.ini](https://github.com/sagemath/sagetrac-mirror/blob/develop/tox.ini?id=23c6334cf2927a4d917a27b3963471e8242d86a3) file defines the test environments. Using `tox`'s factor conditions (https://tox.readthedocs.io/en/latest/config.html#complex-factor-conditions), there is a succinct description of many test environments. For example, we can run `tox -e docker-debian-stretch-minimal,docker-arch-latest-standard`.

-4. #29087 automates running the `tox` tests for a selection of 34 platforms/configurations using a [GitHub](../wiki/GitHub) Actions workflow. An example run: https://github.com/mkoeppe/sage/actions/runs/32812271
+4. #29087 automates running the `tox` tests for a selection of 34 platforms/configurations using a [GitHub](../wiki/GitHub) Actions workflow on every `git push` to a [GitHub](../wiki/GitHub) repository. An example run: https://github.com/mkoeppe/sage/actions/runs/32812271

 Tickets:
mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -21,8 +21,10 @@
 - #29105: Add gentoo package information, extend dockerfile generator to gentoo
 - #29104: Add to tox.ini some homebrew toxenvs (with a fresh install not in /usr/local)
 - #29087: Add [GitHub](../wiki/GitHub) Actions workflow for testing spkg-configure / build on various Linux distributions
+- #29106 Add cygwin package information
+
+Ideas without tickets so far:
 - Testing that it is possible to build without error when upgrading with git from some list of previous releases.
-- #29106 Add cygwin package information
 - Testing the cygwin build using Azure pipelines / GitHub Actions.

 ---
mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -20,6 +20,7 @@
 - #29066: Add Dockerfile that sets up sage prerequisites on Arch Linux
 - #29105: Add gentoo package information, extend dockerfile generator to gentoo
 - #29104: Add to tox.ini some homebrew toxenvs (with a fresh install not in /usr/local)
+- #29129: Add more system packages to build/pkgs/SPKG/distros/
 - #29087: Add [GitHub](../wiki/GitHub) Actions workflow for testing spkg-configure / build on various Linux distributions
 - #29106 Add cygwin package information
mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -20,6 +20,7 @@
 - #29066: Add Dockerfile that sets up sage prerequisites on Arch Linux
 - #29105: Add gentoo package information, extend dockerfile generator to gentoo
 - #29104: Add to tox.ini some homebrew toxenvs (with a fresh install not in /usr/local)
+- #29143: Add to tox.ini 32-bit linux environments and other architectures supported by docker
 - #29129: Add more system packages to build/pkgs/SPKG/distros/
 - #29087: Add [GitHub](../wiki/GitHub) Actions workflow for testing spkg-configure / build on various Linux distributions
 - #29106 Add cygwin package information
dimpase commented 4 years ago
comment:19

On some branches there are also lists of <distro> packages in build/pkgs/<distro>.txt which appear to be used for some kind of bootstrapping. What are these?

mkoeppe commented 4 years ago
comment:20

build/pkgs/DISTRO.txt contains the minimal requirements for building sage from a source distribution and build/pkgs/DISTRO-bootstrap.txt are the additional requirements so that ./bootstrap works. In #29124 I propose to create pseudo-spkgs to capture these, instead, to make this a bit more uniform.

mkoeppe commented 4 years ago
comment:21

Comments on the top of build/pkgs/debian.txt explain this.

mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -22,8 +22,11 @@
 - #29104: Add to tox.ini some homebrew toxenvs (with a fresh install not in /usr/local)
 - #29143: Add to tox.ini 32-bit linux environments and other architectures supported by docker
 - #29129: Add more system packages to build/pkgs/SPKG/distros/
+- #29273: add system packages info for R and others
 - #29087: Add [GitHub](../wiki/GitHub) Actions workflow for testing spkg-configure / build on various Linux distributions
-- #29106 Add cygwin package information
+- #29106: Add cygwin package information
+- #29283: tox.ini: Add test environments using LXC
+- #29130: Add nix package information, extend dockerfile generator to nix

 Ideas without tickets so far:
 - Testing that it is possible to build without error when upgrading with git from some list of previous releases.
mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -25,6 +25,7 @@
 - #29273: add system packages info for R and others
 - #29087: Add [GitHub](../wiki/GitHub) Actions workflow for testing spkg-configure / build on various Linux distributions
 - #29106: Add cygwin package information
+- #29295: Add [GitHub](../wiki/GitHub) CI workflow for cygwin
 - #29283: tox.ini: Add test environments using LXC
 - #29130: Add nix package information, extend dockerfile generator to nix
mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -31,7 +31,6 @@

 Ideas without tickets so far:
 - Testing that it is possible to build without error when upgrading with git from some list of previous releases.
-- Testing the cygwin build using Azure pipelines / GitHub Actions.

 ---
mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -18,16 +18,28 @@
 Tickets:
 - #29053: Add debian/fedora/arch/conda package information to build/pkgs, generate Dockerfiles and installation help; add tox.ini --- this helps test that all `spkg-configure.m4` scripts work as expected
 - #29066: Add Dockerfile that sets up sage prerequisites on Arch Linux
-- #29105: Add gentoo package information, extend dockerfile generator to gentoo
 - #29104: Add to tox.ini some homebrew toxenvs (with a fresh install not in /usr/local)
 - #29143: Add to tox.ini 32-bit linux environments and other architectures supported by docker
 - #29129: Add more system packages to build/pkgs/SPKG/distros/
 - #29273: add system packages info for R and others
-- #29087: Add [GitHub](../wiki/GitHub) Actions workflow for testing spkg-configure / build on various Linux distributions
 - #29106: Add cygwin package information
 - #29295: Add [GitHub](../wiki/GitHub) CI workflow for cygwin
+- #29087: Add [GitHub](../wiki/GitHub) Actions workflow for testing spkg-configure / build on various Linux distributions
+- #29367: tox.ini: Add tests for python2
+- #29415: tox.ini: Add environment local-conda
+- #29417: tox.ini, [GitHub](../wiki/GitHub) CI workflow - minor fixes
+- #29401: Add documentation of tox and [GitHub](../wiki/GitHub) actions workflow to developer's manual
+- #29356: Meta-ticket: more system pkgs info for various linuxes
+- #29130: Add nix package information, extend dockerfile generator to nix
+- #29366: archlinux: Add missing system packages (arch.txt), add arch section to installation manual, fix detection of system packages
+- #29105: Add gentoo package information, extend dockerfile generator to gentoo
+- #28745: Add SAGE_ROOT/environment.yml for "conda env create -f".
+- #29341: [GitHub](../wiki/GitHub) CI workflow: Add testing of optional packages
+- #29403: ci-cygwin.yml: Multi-stage build
+- #29416: tox.ini: Add local-copy
+- #21469: Enable VPATH builds (several independent build trees connected to one source tree)
 - #29283: tox.ini: Add test environments using LXC
-- #29130: Add nix package information, extend dockerfile generator to nix
+- #29146: Meta-ticket: Refactor system package related scripts, `tox.ini`, `build/bin/write_dockerfile.sh`

 Ideas without tickets so far:
 - Testing that it is possible to build without error when upgrading with git from some list of previous releases.
mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -43,6 +43,7 @@

 Ideas without tickets so far:
 - Testing that it is possible to build without error when upgrading with git from some list of previous releases.
+- Test that packages can be cleanly uninstalled

 ---
mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -40,6 +40,7 @@
 - #21469: Enable VPATH builds (several independent build trees connected to one source tree)
 - #29283: tox.ini: Add test environments using LXC
 - #29146: Meta-ticket: Refactor system package related scripts, `tox.ini`, `build/bin/write_dockerfile.sh`
+- #29527: tox.ini: Add docker-opensuse

 Ideas without tickets so far:
 - Testing that it is possible to build without error when upgrading with git from some list of previous releases.
mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -29,7 +29,6 @@
 - #29415: tox.ini: Add environment local-conda
 - #29417: tox.ini, [GitHub](../wiki/GitHub) CI workflow - minor fixes
 - #29401: Add documentation of tox and [GitHub](../wiki/GitHub) actions workflow to developer's manual
-- #29356: Meta-ticket: more system pkgs info for various linuxes
 - #29130: Add nix package information, extend dockerfile generator to nix
 - #29366: archlinux: Add missing system packages (arch.txt), add arch section to installation manual, fix detection of system packages
 - #29105: Add gentoo package information, extend dockerfile generator to gentoo
@@ -39,8 +38,11 @@
 - #29416: tox.ini: Add local-copy
 - #21469: Enable VPATH builds (several independent build trees connected to one source tree)
 - #29283: tox.ini: Add test environments using LXC
-- #29146: Meta-ticket: Refactor system package related scripts, `tox.ini`, `build/bin/write_dockerfile.sh`
 - #29527: tox.ini: Add docker-opensuse
+
+Related meta-tickets:
+- #29356: Meta-ticket: more system pkgs info for various linuxes
+- #29146: Meta-ticket: Refactor/improve system package related scripts, `tox.ini`, `build/bin/write_dockerfile.sh`

 Ideas without tickets so far:
 - Testing that it is possible to build without error when upgrading with git from some list of previous releases.
mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -29,16 +29,18 @@
 - #29415: tox.ini: Add environment local-conda
 - #29417: tox.ini, [GitHub](../wiki/GitHub) CI workflow - minor fixes
 - #29401: Add documentation of tox and [GitHub](../wiki/GitHub) actions workflow to developer's manual
-- #29130: Add nix package information, extend dockerfile generator to nix
 - #29366: archlinux: Add missing system packages (arch.txt), add arch section to installation manual, fix detection of system packages
+- #29341: [GitHub](../wiki/GitHub) CI workflow: Add testing of optional packages
+- #29403: ci-cygwin.yml: Multi-stage build
+- #29530: Make Docker images generated by [GitHub](../wiki/GitHub) CI workflows available; minor CI fixes
 - #29105: Add gentoo package information, extend dockerfile generator to gentoo
 - #28745: Add SAGE_ROOT/environment.yml for "conda env create -f".
-- #29341: [GitHub](../wiki/GitHub) CI workflow: Add testing of optional packages
-- #29403: ci-cygwin.yml: Multi-stage build
 - #29416: tox.ini: Add local-copy
 - #21469: Enable VPATH builds (several independent build trees connected to one source tree)
 - #29283: tox.ini: Add test environments using LXC
+- #29130: Add nix package information, extend dockerfile generator to nix
 - #29527: tox.ini: Add docker-opensuse
+- #29535: Customize CI workflows on [GitHub](../wiki/GitHub) Actions using specially structured tag names

 Related meta-tickets:
 - #29356: Meta-ticket: more system pkgs info for various linuxes
mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -33,6 +33,7 @@
 - #29341: [GitHub](../wiki/GitHub) CI workflow: Add testing of optional packages
 - #29403: ci-cygwin.yml: Multi-stage build
 - #29530: Make Docker images generated by [GitHub](../wiki/GitHub) CI workflows available; minor CI fixes
+- #29901: `.github/workflows/`: Test all optional packages, add workflow for testing all experimental packages
 - #29105: Add gentoo package information, extend dockerfile generator to gentoo
 - #28745: Add SAGE_ROOT/environment.yml for "conda env create -f".
 - #29416: tox.ini: Add local-copy
mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -35,6 +35,7 @@
 - #29530: Make Docker images generated by [GitHub](../wiki/GitHub) CI workflows available; minor CI fixes
 - #29901: `.github/workflows/`: Test all optional packages, add workflow for testing all experimental packages
 - #29105: Add gentoo package information, extend dockerfile generator to gentoo
+- test gentoo "prefix" builds on top of some Linux distribution
 - #28745: Add SAGE_ROOT/environment.yml for "conda env create -f".
 - #29416: tox.ini: Add local-copy
 - #21469: Enable VPATH builds (several independent build trees connected to one source tree)
mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -33,8 +33,19 @@
 - #29341: [GitHub](../wiki/GitHub) CI workflow: Add testing of optional packages
 - #29403: ci-cygwin.yml: Multi-stage build
 - #29530: Make Docker images generated by [GitHub](../wiki/GitHub) CI workflows available; minor CI fixes
+- #29669: For Sage 9.2: Remove Python 2 support from the build system and CI scripts
+- #29757: .github/workflows/tox-gcc_spkg.yml: Remove python2
 - #29901: `.github/workflows/`: Test all optional packages, add workflow for testing all experimental packages
+- #29815: .github/workflows/tox-gcc_spkg.yml: Disable tests on some platforms that fail --without-system-gcc
 - #29105: Add gentoo package information, extend dockerfile generator to gentoo
+- #29851: tox.ini: debian-bullseye, -sid have Python3.8 instead of 3.7
+- #30064: Fix tox-docker builds broken by #29884
+- #29091: tox.ini: Add raspbian-buster
+- #29929: tox.ini: Various CI fixes
+- #30195: tox.ini: Add centos-6, docker-nobootstrap, manylinux-*
+- #30044: tox.ini: Test on voidlinux
+- #30154: cygwin: CI fixes
+- #30144: tox.ini / tox.yml: Move code for tagging/pushing docker images into tox.ini
 - test gentoo "prefix" builds on top of some Linux distribution
 - #28745: Add SAGE_ROOT/environment.yml for "conda env create -f".
 - #29416: tox.ini: Add local-copy
@@ -42,6 +53,7 @@
 - #29283: tox.ini: Add test environments using LXC
 - #29130: Add nix package information, extend dockerfile generator to nix
 - #29527: tox.ini: Add docker-opensuse
+- #29159: Add to tox.ini a toxenv docker-linuxbrew
 - #29535: Customize CI workflows on [GitHub](../wiki/GitHub) Actions using specially structured tag names

 Related meta-tickets:
mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -46,6 +46,7 @@
 - #30044: tox.ini: Test on voidlinux
 - #30154: cygwin: CI fixes
 - #30144: tox.ini / tox.yml: Move code for tagging/pushing docker images into tox.ini
+- #30216 GH Actions: Test Windows with WSL
 - test gentoo "prefix" builds on top of some Linux distribution
 - #28745: Add SAGE_ROOT/environment.yml for "conda env create -f".
 - #29416: tox.ini: Add local-copy
mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -47,6 +47,8 @@
 - #30154: cygwin: CI fixes
 - #30144: tox.ini / tox.yml: Move code for tagging/pushing docker images into tox.ini
 - #30216 GH Actions: Test Windows with WSL
+- #30505 tox.ini: Add `wsl` as a technology, to complement `local` and `docker`
+- #29536 Make docker images from [GitHub](../wiki/GitHub) CI workflow and regular Sage Docker images interoperable
 - test gentoo "prefix" builds on top of some Linux distribution
 - #28745: Add SAGE_ROOT/environment.yml for "conda env create -f".
 - #29416: tox.ini: Add local-copy
mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -44,17 +44,19 @@
 - #29929: tox.ini: Various CI fixes
 - #30195: tox.ini: Add centos-6, docker-nobootstrap, manylinux-*
 - #30044: tox.ini: Test on voidlinux
-- #30154: cygwin: CI fixes
 - #30144: tox.ini / tox.yml: Move code for tagging/pushing docker images into tox.ini
+- #29130: Add nix package information, extend dockerfile generator to nix
 - #30216 GH Actions: Test Windows with WSL
 - #30505 tox.ini: Add `wsl` as a technology, to complement `local` and `docker`
 - #29536 Make docker images from [GitHub](../wiki/GitHub) CI workflow and regular Sage Docker images interoperable
+- #30154: cygwin: CI fixes
+- #30213 tox.ini: Add scientificlinux
+- #30217 tox.ini: Add tests with Ubuntu + deadsnakes
 - test gentoo "prefix" builds on top of some Linux distribution
 - #28745: Add SAGE_ROOT/environment.yml for "conda env create -f".
 - #29416: tox.ini: Add local-copy
 - #21469: Enable VPATH builds (several independent build trees connected to one source tree)
 - #29283: tox.ini: Add test environments using LXC
-- #29130: Add nix package information, extend dockerfile generator to nix
 - #29527: tox.ini: Add docker-opensuse
 - #29159: Add to tox.ini a toxenv docker-linuxbrew
 - #29535: Customize CI workflows on [GitHub](../wiki/GitHub) Actions using specially structured tag names
mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -47,6 +47,8 @@
 - #30144: tox.ini / tox.yml: Move code for tagging/pushing docker images into tox.ini
 - #29130: Add nix package information, extend dockerfile generator to nix
 - #30216 GH Actions: Test Windows with WSL
+- #30619: update opensuse.txt across build/pkgs/
+- #29527: tox.ini: Add docker-opensuse
 - #30505 tox.ini: Add `wsl` as a technology, to complement `local` and `docker`
 - #29536 Make docker images from [GitHub](../wiki/GitHub) CI workflow and regular Sage Docker images interoperable
 - #30154: cygwin: CI fixes
@@ -57,7 +59,6 @@
 - #29416: tox.ini: Add local-copy
 - #21469: Enable VPATH builds (several independent build trees connected to one source tree)
 - #29283: tox.ini: Add test environments using LXC
-- #29527: tox.ini: Add docker-opensuse
 - #29159: Add to tox.ini a toxenv docker-linuxbrew
 - #29535: Customize CI workflows on [GitHub](../wiki/GitHub) Actions using specially structured tag names
mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -47,6 +47,7 @@
 - #30144: tox.ini / tox.yml: Move code for tagging/pushing docker images into tox.ini
 - #29130: Add nix package information, extend dockerfile generator to nix
 - #30216 GH Actions: Test Windows with WSL
+- #30923: tox.ini: Add environments `local-sudo-ubuntu-standard`, etc.
 - #30619: update opensuse.txt across build/pkgs/
 - #29527: tox.ini: Add docker-opensuse
 - #30505 tox.ini: Add `wsl` as a technology, to complement `local` and `docker`
mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -50,11 +50,12 @@
 - #30923: tox.ini: Add environments `local-sudo-ubuntu-standard`, etc.
 - #30619: update opensuse.txt across build/pkgs/
 - #29527: tox.ini: Add docker-opensuse
-- #30505 tox.ini: Add `wsl` as a technology, to complement `local` and `docker`
-- #29536 Make docker images from [GitHub](../wiki/GitHub) CI workflow and regular Sage Docker images interoperable
+- #30505: tox.ini: Add `wsl` as a technology, to complement `local` and `docker`
+- #30924: tox.ini: Add `cygwin` as a technology, to complement `local` and `docker`
+- #29536: Make docker images from [GitHub](../wiki/GitHub) CI workflow and regular Sage Docker images interoperable
 - #30154: cygwin: CI fixes
-- #30213 tox.ini: Add scientificlinux
-- #30217 tox.ini: Add tests with Ubuntu + deadsnakes
+- #30213: tox.ini: Add scientificlinux
+- #30217: tox.ini: Add tests with Ubuntu + deadsnakes
 - test gentoo "prefix" builds on top of some Linux distribution
 - #28745: Add SAGE_ROOT/environment.yml for "conda env create -f".
 - #29416: tox.ini: Add local-copy
mkoeppe commented 3 years ago
comment:41

Hoping we can make progress on this ticket this week - https://wiki.sagemath.org/days111

mkoeppe commented 3 years ago

Changed keywords from ContinuousIntegration to ContinuousIntegration, sd111

mkoeppe commented 3 years ago

Description changed:

--- 
+++ 
@@ -74,14 +74,7 @@

 ---

-**Testing of the sage binary distributions:** (planning stage)
-
-- A Dockerfile for testing that the sage binary distribution runs on `ubuntu:latest` with the following set of installed distribution packages....
-- A Dockerfile for testing that the sage binary distribution is able to install optional packages when run on `ubuntu:latest` with the following set of installed distribution packages....
-- Test that a macOS binary distribution works on a set of OS versions, with and without XCode installed. (Sadly, cannot use Docker for that.)
-- See the following for some work in this direction:
-   - https://github.com/mkoeppe/sage-numerical-backends-coin (current)
-   - https://github.com/mkoeppe/sage_binary_tester (outdated)
+**Testing of the sage binary distributions:** moved to #31133

 ---
mkoeppe commented 3 years ago

Description changed:

--- 
+++ 
@@ -49,16 +49,23 @@
 - #30216 GH Actions: Test Windows with WSL
 - #30923: tox.ini: Add environments `local-sudo-ubuntu-standard`, etc.
 - #30619: update opensuse.txt across build/pkgs/
+- #30154: cygwin: CI fixes
+- #28745: Add SAGE_ROOT/environment.yml for "conda env create -f".
+- #31211: `ci-cygwin*.yml`: Fix packaging up of SAGE_LOCAL/var/tmp/sage/build/*
+- #30933: GH Actions: Repair upload of docker images
+- #31088: GH Actions: WSL workflow: No space left on device
+- #31413: GH Actions: Add workflow with `configure --enable-editable`
+- #30845: tox.ini, GH Actions: Add test for conda without SPKG
+- #30726: GH Actions: Test optional/experimental packages with Xcode 12
 - #29527: tox.ini: Add docker-opensuse
 - #30505: tox.ini: Add `wsl` as a technology, to complement `local` and `docker`
 - #30924: tox.ini: Add `cygwin` as a technology, to complement `local` and `docker`
 - #29536: Make docker images from [GitHub](../wiki/GitHub) CI workflow and regular Sage Docker images interoperable
-- #30154: cygwin: CI fixes
 - #30213: tox.ini: Add scientificlinux
 - #30217: tox.ini: Add tests with Ubuntu + deadsnakes
 - test gentoo "prefix" builds on top of some Linux distribution
-- #28745: Add SAGE_ROOT/environment.yml for "conda env create -f".
 - #29416: tox.ini: Add local-copy
+- #30506: GH Actions: Use cancel-all-previous-workflow-runs
 - #21469: Enable VPATH builds (several independent build trees connected to one source tree)
 - #29283: tox.ini: Add test environments using LXC
 - #29159: Add to tox.ini a toxenv docker-linuxbrew
mkoeppe commented 3 years ago
comment:44

Moving to 9.4, as 9.3 has been released.

mkoeppe commented 2 years ago

Description changed:

--- 
+++ 
@@ -70,6 +70,7 @@
 - #29283: tox.ini: Add test environments using LXC
 - #29159: Add to tox.ini a toxenv docker-linuxbrew
 - #29535: Customize CI workflows on [GitHub](../wiki/GitHub) Actions using specially structured tag names
+- Refactor GH Actions workflows using https://docs.github.com/en/actions/learn-github-actions/reusing-workflows

 Related meta-tickets:
 - #29356: Meta-ticket: more system pkgs info for various linuxes
mkoeppe commented 2 years ago

Description changed:

--- 
+++ 
@@ -51,17 +51,26 @@
 - #30619: update opensuse.txt across build/pkgs/
 - #30154: cygwin: CI fixes
 - #28745: Add SAGE_ROOT/environment.yml for "conda env create -f".
+- #30726: GH Actions: Test optional/experimental packages with Xcode 12
+- #29527: tox.ini: Add docker-opensuse
+- #30213: tox.ini: Add scientificlinux
+- #32113: GH Actions: `conda-forge` tests broken
+- #32947: `tox.ini`, GH Actions: Update Linux platforms
+- #32703: GH Actions: Run a job for `make build-local` first, cache image for job `make build`
+- 
 - #31211: `ci-cygwin*.yml`: Fix packaging up of SAGE_LOCAL/var/tmp/sage/build/*
 - #30933: GH Actions: Repair upload of docker images
+- #32784: Filter singular system package out of `tox.ini` for homebrew 
 - #31088: GH Actions: WSL workflow: No space left on device
 - #31413: GH Actions: Add workflow with `configure --enable-editable`
+- #32570: `tox.ini`, GH Actions: Update macOS environments
+- #32966: tox / GH Actions: Add ubuntu variants using `ppa:ubuntu-toolchain-r`
+- #32965: tox / GH Actions: Add fedora/centos variants using devtoolset
+- #32531: `SAGE_ROOT/tox.ini`: Add variants that provision a system python using `pyenv`
 - #30845: tox.ini, GH Actions: Add test for conda without SPKG
-- #30726: GH Actions: Test optional/experimental packages with Xcode 12
-- #29527: tox.ini: Add docker-opensuse
 - #30505: tox.ini: Add `wsl` as a technology, to complement `local` and `docker`
 - #30924: tox.ini: Add `cygwin` as a technology, to complement `local` and `docker`
 - #29536: Make docker images from [GitHub](../wiki/GitHub) CI workflow and regular Sage Docker images interoperable
-- #30213: tox.ini: Add scientificlinux
 - #30217: tox.ini: Add tests with Ubuntu + deadsnakes
 - test gentoo "prefix" builds on top of some Linux distribution
 - #29416: tox.ini: Add local-copy
mkoeppe commented 2 years ago

Description changed:

--- 
+++ 
@@ -80,6 +80,7 @@
 - #29159: Add to tox.ini a toxenv docker-linuxbrew
 - #29535: Customize CI workflows on [GitHub](../wiki/GitHub) Actions using specially structured tag names
 - Refactor GH Actions workflows using https://docs.github.com/en/actions/learn-github-actions/reusing-workflows
+- Also use reusable workflows for the upstream deployments of `ci-sage.yml` (suggested in https://github.com/pypa/setuptools/pull/2923#discussion_r795977169)

 Related meta-tickets:
 - #29356: Meta-ticket: more system pkgs info for various linuxes
mkoeppe commented 2 years ago

Description changed:

--- 
+++ 
@@ -79,8 +79,7 @@
 - #29283: tox.ini: Add test environments using LXC
 - #29159: Add to tox.ini a toxenv docker-linuxbrew
 - #29535: Customize CI workflows on [GitHub](../wiki/GitHub) Actions using specially structured tag names
-- Refactor GH Actions workflows using https://docs.github.com/en/actions/learn-github-actions/reusing-workflows
-- Also use reusable workflows for the upstream deployments of `ci-sage.yml` (suggested in https://github.com/pypa/setuptools/pull/2923#discussion_r795977169)
+- #33338 Refactor GH Actions workflows using https://docs.github.com/en/actions/learn-github-actions/reusing-workflows, also use reusable workflows for the upstream deployments of `ci-sage.yml` (suggested in https://github.com/pypa/setuptools/pull/2923#discussion_r795977169)

 Related meta-tickets:
 - #29356: Meta-ticket: more system pkgs info for various linuxes
mkoeppe commented 2 years ago

Description changed:

--- 
+++ 
@@ -56,8 +56,15 @@
 - #30213: tox.ini: Add scientificlinux
 - #32113: GH Actions: `conda-forge` tests broken
 - #32947: `tox.ini`, GH Actions: Update Linux platforms
+- #33196: `tox.ini`: Add `centos-stream-8`, `centos-stream-9`, remove defunct `centos-6`
+- #33296: tox.ini: Add `-recommended` package factor
+- #33140: GH Actions (macOS): Fix filtering of experimental packages
+- #31415: GH Actions workflow that builds documentation on each push
+- #33306: `tox.ini`: Linux platform updates
+- #32965: `tox` / GH Actions: Add `centos-7-devtoolset-gcc_{9,10,11}`
+- #33263: Add github action running on each push
+- #30845: GH Actions: Add test for conda without SPKG
 - #32703: GH Actions: Run a job for `make build-local` first, cache image for job `make build`
-- 
 - #31211: `ci-cygwin*.yml`: Fix packaging up of SAGE_LOCAL/var/tmp/sage/build/*
 - #30933: GH Actions: Repair upload of docker images
 - #32784: Filter singular system package out of `tox.ini` for homebrew 
@@ -75,6 +82,7 @@
 - test gentoo "prefix" builds on top of some Linux distribution
 - #29416: tox.ini: Add local-copy
 - #30506: GH Actions: Use cancel-all-previous-workflow-runs
+- #32280: Manage disk space constraints in continuous integration
 - #21469: Enable VPATH builds (several independent build trees connected to one source tree)
 - #29283: tox.ini: Add test environments using LXC
 - #29159: Add to tox.ini a toxenv docker-linuxbrew
mkoeppe commented 2 years ago

Description changed:

--- 
+++ 
@@ -72,7 +72,6 @@
 - #31413: GH Actions: Add workflow with `configure --enable-editable`
 - #32570: `tox.ini`, GH Actions: Update macOS environments
 - #32966: tox / GH Actions: Add ubuntu variants using `ppa:ubuntu-toolchain-r`
-- #32965: tox / GH Actions: Add fedora/centos variants using devtoolset
 - #32531: `SAGE_ROOT/tox.ini`: Add variants that provision a system python using `pyenv`
 - #30845: tox.ini, GH Actions: Add test for conda without SPKG
 - #30505: tox.ini: Add `wsl` as a technology, to complement `local` and `docker`