gh-36264: `sage --fixdoctests --update-known-test-failures`; silence modularized distributions in CI
<!-- ^^^^^
Please provide a concise, informative and self-explanatory title.
Don't put issue numbers in there, do this in the PR body below.
For example, instead of "Fixes #1234" use "Introduce new method to
calculate 1+1"
-->
<!-- Describe your changes here in detail -->
The distributions `sagemath-repl` and `sagemath-categories` run parts of
the testsuite in a virtual environment created by `tox` when
SAGE_CHECK=yes. This also runs as part of the Build & Test CI.
Here we make several improvements:
- Support SAGE_CHECK=warn
- Invoke the doctester with `--baseline-stats-path={toxinidir}/known-
test-failures.json`
- Make the tests silent unless new test failures, not recorded in the
`known-test-failures.json`, are encountered
To help maintain the `known-test-failures.json`, we also add new
features to the command `sage --fixdoctests`.
- `sage --fixdoctests --update-known-test-failures` reads the stats
files generated by the doctester in the virtual environments and writes
updated `known-test-failures.json` files to the source tree
- doctester stats now also include a field `ntests` - number of doctests
of a module that were run
`sage --fixdoctests` also receives new switches `--distribution all`,
`--fixed-point`, `--verbose`, `--no-diff` and some other improvements.
<!-- Why is this change required? What problem does it solve? -->
<!-- If this PR resolves an open issue, please link to it here. For
example "Fixes #12345". -->
- Part of: #29705
- Cherry-picked from: #35095
<!-- If your change requires a documentation PR, please link it
appropriately. -->
### :memo: Checklist
<!-- Put an `x` in all the boxes that apply. -->
<!-- If your change requires a documentation PR, please link it
appropriately -->
<!-- If you're unsure about any of these, don't hesitate to ask. We're
here to help! -->
<!-- Feel free to remove irrelevant items. -->
- [x] The title is concise, informative, and self-explanatory.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation accordingly.
### :hourglass: Dependencies
<!-- List all open PRs that this PR logically depends on
- #12345: short description why this is a dependency
- #34567: ...
-->
- Depends on #36263 (merged here)
- Depends on #36238 (merged here)
<!-- If you're unsure about any of these, don't hesitate to ask. We're
here to help! -->
URL: https://github.com/sagemath/sage/pull/36264
Reported by: Matthias Köppe
Reviewer(s): Kwankyu Lee, Matthias Köppe