In our current process, PRs submitted by Maintainers go directly to
"shipit" state, because we assume that Maintainers know their own
modules best, and we give them broad leeway to maintain those modules
as they see fit.
In a few cases, we have seen Committers reject these PRs once they
have reached "shipit" status. A good example is this one:
https://github.com/ansible/ansible-modules-extras/pull/1728
Submitter jtyr pushes a PR to an extras module. Because jtyr is also
the Maintainer, our triage bot puts it into "shipit". Committer bcoca
removes it from "shipit" state and puts it into "core review".
The problem here is that, because owner_pr implies "shipit", the bot
will naively place the PR back into "shipit" state continually.
So the question:
If a Committer overrules a Maintainer shipit, what should happen to
the PR? What should the process be?
Do we need some kind of new "core_block" state that explicitly says
"core has refused this PR" -- and if we have such a state, how does
the PR get out of this state?
In my opinion, core_review is currently insufficient, because we have
many many PRs placed into core_review by default, and they tend to
languish because Committers don't have time to review them.
Note that we will have many new Committers joining soon, both because
we're hiring and because we're promoting more community members to
Committer. I hope that having more Committers who can do final
"shipit" reviews will help -- but I'm seeing more and more of these
anti-shipits happening, and I want to make sure we understand the path
through.
--g