+1 to the general idea of maintainers for distinct subtrees As far as the implementation, I'd rather follow a model where there is a single merge queue at the end (currently me, could be automated when the CI is stricter and developers do not / cannot ignore it any more). Otherwise we'll just either have broken releases (untested rebase at the end) or drain my time by having to rebase / retest (takes a long time on the buildbot) / notice than another rebase is needed / rinse and repeat
Really all you need is to * have a "CI Build & Test" tag whose PR's are merged in before CI runs. * maintainer sets positive review on tickets under his responsibility On Tuesday, April 9, 2024 at 11:12:00 PM UTC+2 Matthias Koeppe wrote: > Dear Sage developers: > I propose to consider the following governance change for a small part of > the Sage repository: > 1. The directories *.ci, .devcontainer, .github/workflows*. These are > special directories that control the GitHub workflows that run for example > on pull requests and when release tags are pushed. > 2. The files *tox.ini* and *build/bin/write-dockerfile.sh*. They contain > the infrastructure for portability testing of the Sage distribution ( > https://doc.sagemath.org/html/en/developer/portability_testing.html). > > Some of these files are shipped as part of the Sage distribution, but none > of them have any role in the build process or runtime of Sage, and thus > none of them are tested by the Release Manager. > > *Status quo: *All changes to these files go through the normal review > process for Sage PRs; when set to "positive review", Volker merges them > into the next development release. > In the terminology of https://martinfowler.com/articles/ship-show-ask.html > (ht Gonzalo Tornaria), this is the "Ask" model. > > Acknowledgment: I'm grateful to all who have contributed to the review of > my PRs that made changes to these files in the past: thanks for your time > and energy. > > *Proposed change: *All changes to these files are made through PRs. When > the PR is ready, a developer in the Maintainer role directly merges the PR > into the "develop" branch. > In other words, switch to the "Show" model for these changes. > > *Why the change:* > 1. Changes to these files do not have any effect on the build and runtime > of Sage; > - thus changes to these files do not risk breaking the mathematical > correctness, or the performance of anything in Sage; > - hence there may not be the same need for formal review compared to > changes to the Sage library. > > 2. Our project has a collective interest in smoothly operating development > infrastructure / quality assurance tools; > - but tragedy of the commons; > - more specifically, developing/improving such development tools only pays > off individually for developers with a sufficiently high volume of activity > (cf. > https://github.com/sagemath/sage/graphs/contributors?from=2020-01-01&to=2024-04-09&type=c > ); > - there may also be a technical barrier that prevents developers from even > reviewing a PR that makes changes to these files; > - hence, waiting for reviewers to approve a PR and waiting for the Release > Manager to merge it adds too much delay and friction. > > 3. Examples (all PRs authored by me, waiting for review): > - "CI build, doc-build: Run containers explicitly, separate jobs for > pyright, build, modularized tests, long tests" ( > https://github.com/sagemath/sage/pull/36498) waiting for review since Oct > 21, 2023 > - "GH Actions: Build platform-independent wheels of sagemath-environment, > sage-setup, sage-sws2rst for PyPI" ( > https://github.com/sagemath/sage/pull/37099) waiting for review since Feb > 5 > - "CI: Update Linux platforms / runners" waiting for review since Feb 14 > - "GH Actions: Build macOS arm64 wheels" ( > https://github.com/sagemath/sage/pull/37503) waiting for review since Feb > 28 > - "CI Build&Test: Fix "test modularized distributions" ( > https://github.com/sagemath/sage/pull/37750) waiting for review since Apr > 4 > - "dist.yml: Download optional/experimental tarballs for GitHub Release > assets" (https://github.com/sagemath/sage/pull/37762) waiting for review > since Apr 6 > > 4. Non-examples (all PRs authored by me, waiting for review): > - "CI Build&Test: Show segfaults using GitHub annotations" ( > https://github.com/sagemath/sage/pull/37738, waiting for review) -- this > makes changes in sage.doctest, so would continue to be reviewed normally > - "tox.ini: Add environments ruff, ruff-minimal; GH Actions: run > ruff-minimal" (https://github.com/sagemath/sage/pull/37453, waiting for > review) -- this also makes changes in src/tox.ini and src/doc, so would > continue to be reviewed normally > - "src/tox.ini (coverage:run): Set concurrency = multiprocessing,threads" ( > https://github.com/sagemath/sage/pull/37010) -- makes changes in > src/tox.ini, so would continue to be reviewed normally > - "sage -tox -e pyright: Update, speed up, isolate" ( > https://github.com/sagemath/sage/pull/36515) -- makes changes to > pyrightconfig.json and src/tox.ini, so would continue to be reviewed > normally > > > -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/fda6eace-188a-44e1-b7b8-1d68873660a4n%40googlegroups.com.