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