.github/workflows/: Test all optional packages, add workflow for testing all experimental packages
mkoeppe opened this issue · 49 comments
Follow up from #29341.
Depends on #29174
Depends on #29823
Depends on #20104
CC: @jhpalmieri @novoselt @kliem @orlitzky
Component: porting
Author: Matthias Koeppe
Branch/Commit: 6afe959
Reviewer: Jonathan Kliem
Issue created by migration from https://trac.sagemath.org/ticket/29901
Description changed:
---
+++
@@ -1 +1,3 @@
+Follow up from #29341.
+The present version has an explicit list of the packages to the workflow scripts. This could be made less maintenance-intensive by #29902
New commits:
c182f48 | trac 29754: remove packages backporting Python 3 components to Python 2. |
05a6937 | Merge commit 'c559f26caf56378c8c4a5652f577986b4f5d431c' of git://trac.sagemath.org/sage into t/29754/no-py2-backports |
332778d | .github/workflows/ci-cygwin*: Remove build of removed package singledispatch |
b389d77 | Merge branch 't/29745/cleanup-spkg-rst-files' into t/29174/remove_autotools_spkg |
963737e | build/pkgs/autotools: Remove |
91b5ae8 | Merge branches 't/29823/_github_workflows_ci_cygwin___remove_build_of_removed_packages' and 't/29174/remove_autotools_spkg' into t/29901/_github_workflows___test_all_optional_packages__add_workflow_for_testing_all_experimental_packages |
f582222 | .github/workflows/: Test all optional packages, add workflow for testing all experimental packages |
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
f87c885 | .github/workflows/: Test all optional packages, add workflow for testing all experimental packages |
.github/workflows/: Test all optional packages, add workflow for testing all experimental packages · mkoeppe/sage@f87c885
https://github.com/mkoeppe/sage/actions/runs/141135018
.github/workflows/: Test all optional packages, add workflow for testing all experimental packages · mkoeppe/sage@f87c885
https://github.com/mkoeppe/sage/actions/runs/141135010
Branch pushed to git repo; I updated commit sha1. New commits:
94ec3c9 | Add sage --package update-latest command |
cb7a291 | Fixup rebase |
1d36a2e | build/bin/sage-system-python: Try python first |
a91ecab | Merge branch 't/29890/build_bin_sage_system_python__try__python__first' into t/20104/automatic_updates_of_pip_type_packages |
ba6fbb5 | Merge branch 't/20104/automatic_updates_of_pip_type_packages' into t/29901/_github_workflows___test_all_optional_packages__add_workflow_for_testing_all_experimental_packages |
4dc7367 | .github/workflows: Replace explicit optional/experimental lists by using sage-package |
efb14c3 | Suppress linebreaks |
https://github.com/mkoeppe/sage/runs/789828733
Error processing tar file(exit status 1): write /sage/local/share/pari/elldata/ell366: no space left on device
Error response from daemon: Error processing tar file(exit status 1): write /sage/local/share/stein_watkins/a.010.bz2: no space left on device
Maybe we don't need to test database_stein_watkins much: if database_stein_watkins_mini works, then since they use the same spkg-install.in, the only issue, I think, is whether the big tarball is corrupt.
Right. There was apparently a point to having that old category of "huge" packages. Wondering how that got lost. --> #29919 (Restore "huge" package type)
Branch pushed to git repo; I updated commit sha1. New commits:
2a38f51 | .github/workflows/tox-optional.yml: Do not test huge packages |
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
1fcafe8 | .github/workflows/tox-optional.yml: Do not test huge packages |
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
bd703e4 | .github/workflows/tox-optional.yml: Do not test huge packages |
New test at https://github.com/mkoeppe/sage/actions/runs/141954265
Filtering out the known huge packages works now.
But there are many timeouts. Will need to split "optional" into 2 parts.
Branch pushed to git repo; I updated commit sha1. New commits:
fc59886 | Merge tag '9.2.beta5' into t/29901/_github_workflows___test_all_optional_packages__add_workflow_for_testing_all_experimental_packages |
Branch pushed to git repo; I updated commit sha1. New commits:
1a408a8 | .github/workflows/tox-optional.yml: Split jobs |
Branch pushed to git repo; I updated commit sha1. New commits:
50556a7 | Fixup syntax |
Tests for experimental packages at https://github.com/mkoeppe/sage/actions/runs/170318716
Tests for optional packages at https://github.com/mkoeppe/sage/actions/runs/170362341
Author: Matthias Koeppe
Still exceeds 2 x 6h on ubuntu-xenial, need to split it up more
Branch pushed to git repo; I updated commit sha1. New commits:
6e3051d | Split up into more jobs |
Should remove the testing of sage_numerical_backends_cplex, sage_numerical_backends_gurobi, which require the commercial packages to be installed first
Why are there green checkmarks, if things haven't worked out?
https://github.com/mkoeppe/sage/runs/876312084?check_suite_focus=true
Targets listed in TARGETS_OPTIONAL ignore errors.
Why is that? There is probably a good reason, but I'm curious. How do I efficiently use it then.
Unfortunately a test run can only get a red or a green status on GH Actions.
TARGETS_OPTIONAL is designed for additional tests of things that are likely to fail - such as ptest in tox.yml, which always has 1 or 2 failures that we don't want to be signaled by a red status.
There's only a rather shallow reason why currently use TARGETS_OPTIONAL for testing the optional and experimental packages. At the moment the majority of the optional and experimental packages fail, so all of these test runs will fail. Thus there is no information either way. But the green checkmarks look more friendly.
We can change this when we have made some progress in #29900 (Meta-ticket: Fix optional and experimental packages for Sage 9.2).
Replying to @kliem:
How do I efficiently use it then.
Look at the "This run" tab of the whole workflow and search for package names that you're interested in.
Thanks. Yes, sounds reasonable.
From my point of view, optional should mean almost as safe as sage itself and experimental is for all stuff that might or might not work (I guess there are runtime failures as well that make stuff experimental). So adding a doctesting framework for this seems great.
Replying to @kliem:
From my point of view, optional should mean almost as safe as sage itself and experimental is for all stuff that might or might not work (I guess there are runtime failures as well that make stuff experimental).
Yes, I agree with this interpretation.
Reviewer: Jonathan Kliem
I think this is a good improvement as it is.
Thanks!