[RFC] On sending forge pull request discussions to the mailing list

Claudio Bantaloukas <[email protected]>
Newsgroups gmane.comp.ai.sourceware.forge,gmane.comp.gcc.devel
Message-ID <[email protected]>
Hi folks,
I've thought about Joseph's proposal to send all discussion happening on 
forge to the mailing list*, specifically which bot workflows would need 
to be implemented and what should happen at what time and here's a 
slightly specific description that I plan to implement soon. I'm posting 
this to get feedback as.

- A "PR rollup" means:
   - if the user has force pushed a new version of the patch series, a 
PR version is created
   - if the current PR version has not been posted to the mailing list 
yet, an up to date email patch series is sent
   - messages related to the PR are sent as replies to the cover letter 
of the latest patch series
     - this includes all comments and reviews
     - this includes requests to review
     - excluding those that were already sent to the mailing list as 
emails (the list is tracked on a database table)
     - one message per comment or review

- Messages that must not be sent to the mailing list:
   - all messages by the batrachomyomachia bot
   - messages by the linaro bot (that do not include a <!-- bmm:send --> 
tag in the comment, which is a convention we can ask the linaro bot to 
adopt for comments that are meant to be sent to the mailing list)
   - comments that include a <!-- bmm:nosend --> tag, which is a 
convention to allow users to explicitly exclude certain comments from 
being sent to the mailing list
   - comments that contain the /submit or /preview command, since they 
are meant to trigger an email rather than be included in the email 
themselves

I think it will be enough to implement the following workflows in 
batrachomyomachia:
- when a PR is opened
   - no email is sent
   - user gets a welcome comment with guidance on how to use the bot and 
the available commands (a shorter version than what we currently have!)

- when someone requests a review on a PR by setting the Reviewers list
   - "PR rollup" occurs
- when someone requests a review on a PR by writing a /submit comment
   - "PR rollup" occurs
- when someone posts a review on a PR (hits the Finish review button and 
completes a review, with any review state)
   - "PR rollup" occurs

- When someone writes a comment that is not filtered by the rules above
   - if a patch email has already been sent for the PR, an email is sent 
to the mailing list with the content of the comment, with In-Reply-To 
set to the message id of the last cover letter, so that it is grouped in 
the same thread.
   Note that this is not PR rollup (random comments don't create a new 
PR version and patch posting)
   - if no patch email has been sent for the PR, no email is sent to 
avoid sending messages that are not linked to a patch series. These 
comments will be included in the email when a patch series is eventually 
sent.

- when a PR is closed without being merged and no patch email has been 
sent and no messages would be sent
   - no email is sent as no interaction happened
- when a PR is closed without being merged and at least one patch email 
has been sent or at least one message would be sent
   - a single email is sent to the mailing list notifying about the 
closure, with In-Reply-To set to the message id of the last cover letter
   - the email includes all comments and reviews in sequence

I think this strikes a balance between wanting to keep the mailing list 
up to date with what's happening and overwhelming it with too many emails.

One thing to add: the linaro bot currently updates existing comments so 
it will be good to figure out which messages are a "final state" and 
either make the bot recognize them or mark them with <!-- bmm:send -->.

* https://forge.sourceware.org/forge/batrachomyomachia/issues/15


Cheers
Claudio
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.