Update: PR Status Label Bot is functional. You'll see your PRs getting labels such as - pr-awaiting-testing [When CI is kick-started for every commit] - pr-work-in-progress [When CI has failed or PR is marked draft or WIP in title] - pr-pending-review [When CI succeeded & no review] - pr-pending-merge [When CI succeeds & 2 Apache MXNet Committers approve] - pr-awaiting-response [When CI succeeded but reviewer request changes]
PR: https://github.com/apache/incubator-mxnet-ci/pull/27 Followup PR to enable add/remove label : https://github.com/apache/incubator-mxnet-ci/pull/33 On Sun, 2 Aug 2020 at 13:56, Chaitanya Bapat <[email protected]> wrote: > Yes. It has been disabled. > > On Sun, 2 Aug 2020 at 13:14, Marco de Abreu <[email protected]> > wrote: > >> Great. As I said, please make sure that the bot is disabled until it has >> been reviewed and approved. >> >> -Marco >> >> On Sun, Aug 2, 2020, 10:12 PM Chaitanya Bapat <[email protected]> >> wrote: >> >> > Thanks. webhook is setup! >> > >> > On Sun, 2 Aug 2020 at 02:43, Marco de Abreu <[email protected]> >> > wrote: >> > >> > > Ticket created: https://issues.apache.org/jira/browse/INFRA-20624 >> > > >> > > -Marco >> > > >> > > On Sun, Aug 2, 2020, 7:43 AM Chaitanya Bapat <[email protected]> >> > wrote: >> > > >> > > > Right. >> > > > I've sent you the email on your personal email address. >> > > > Thanks for helping setup the github webhook with Apache Infra. >> > > > >> > > > Cheers >> > > > Chai >> > > > >> > > > On Sat, 1 Aug 2020 at 03:25, Marco de Abreu < >> [email protected]> >> > > > wrote: >> > > > >> > > > > Maybe we should just remove the pr-awaiting-testing state >> entirely. >> > > > Either >> > > > > it's WIP or CI passed. >> > > > > >> > > > > -Marco >> > > > > >> > > > > On Sat, Aug 1, 2020 at 12:21 PM Marco de Abreu < >> > > [email protected]> >> > > > > wrote: >> > > > > >> > > > > > Hi, >> > > > > > >> > > > > > I generally like the idea, thanks for improving the user >> experience >> > > for >> > > > > > the project, Chai! One thing that would be important to me is >> > > avoiding >> > > > a >> > > > > > constant shifting between the states. The PR shouldn't switch to >> > > > > > "awaiting-testing" every single time CI is retriggered but >> rather >> > > have >> > > > > some >> > > > > > consistency. But that's something we can also tweak as we go. >> > > > > > >> > > > > > Before the bot is run, a small heads up would be nice. Just >> > running a >> > > > > > batch job on the repository - especially using others' >> credentials >> > - >> > > > > > without previous approval is not that nice. Hence, please run >> your >> > > > tests >> > > > > a >> > > > > > non-intrusive way until the bot has been approved for >> deployment. >> > > > > > >> > > > > > With regards to the ticket, I'm happy to be of assistance. Just >> > send >> > > > the >> > > > > > secret to my personal email. >> > > > > > >> > > > > > Best regards >> > > > > > Marco >> > > > > > >> > > > > > On Fri, Jul 31, 2020 at 9:12 PM Sheng Zha <[email protected]> >> > > wrote: >> > > > > > >> > > > > >> +1, thanks for driving this. Here's the pseudo code for the PR >> > > > labeling >> > > > > >> for better readability: >> > > > > >> >> > > > > >> if WIP in title or PR is draft or CI failed: >> > > > > >> pr-work-in-progress >> > > > > >> elif CI has not started yet or CI is in progress: >> > > > > >> pr-awaiting-testing >> > > > > >> else: # CI passed checks >> > > > > >> if pr has at least one approval and no request changes: >> > > > > >> pr-awaiting-merge >> > > > > >> elif pr has no review or all reviews have been >> > > > > dismissed/re-requested: >> > > > > >> pr-awaiting-review >> > > > > >> else: # pr has a review that hasn't been dismissed yet no >> > > approval >> > > > > >> pr-awaiting-response >> > > > > >> >> > > > > >> Best, >> > > > > >> Sheng >> > > > > >> >> > > > > >> On 2020/07/31 18:08:34, Chaitanya Bapat <[email protected]> >> > > wrote: >> > > > > >> > Hello MXNet community, >> > > > > >> > >> > > > > >> > Banking on the success of mxnet-bot that has been triggering >> CI >> > > > > >> > successfully for the past 3 months, Sheng proposed an idea >> for >> > > > > >> automatic PR >> > > > > >> > labeling. I am working on the implementation of the same. >> > > > > >> > >> > > > > >> > *What's the idea?* >> > > > > >> > An automated way of labeling PRs based on the status of CI. >> > > > > >> > >> > > > > >> > *Why?* >> > > > > >> > >> > > > > >> > This serves dual purpose >> > > > > >> > >> > > > > >> > - Automates the labeling [currently manual] >> > > > > >> > - Allows contributors to prioritize review of PRs. >> > > > > >> > >> > > > > >> > *How?* >> > > > > >> > 1. Github webhook would send status update events to the >> Lambda >> > > > > function >> > > > > >> > 2. Lambda would then label the CI based on following >> conditions >> > > > > >> > >> > > > > >> > >> > > > > >> > >> > > > > >> > >> > > > > >> > >> > > > > >> > >> > > > > >> > >> > > > > >> > >> > > > > >> > >> > > > > >> > >> > > > > >> > >> > > > > >> > *if WIP in title or PR is draft or CI failed: >> > > > > >> pr-work-in-progresselif CI >> > > > > >> > has not started yet or CI is in progress: >> > > > pr-awaiting-testingelse: >> > > > > # >> > > > > >> CI >> > > > > >> > passed checks if pr has at least one approval and no >> request >> > > > > changes: >> > > > > >> > pr-awaiting-merge elif pr has no review or all reviews >> > have >> > > > > been >> > > > > >> > dismissed/re-requested: pr-awaiting-review else: # >> pr >> > > has >> > > > a >> > > > > >> > review that hasn't been dismissed yet no approval >> > > > > >> > pr-awaiting-response* >> > > > > >> > >> > > > > >> > To that end, a POC was done to test if it's possible & >> result: >> > it >> > > > > works. >> > > > > >> > Results of 1 successful run on Prod for >> apache/incubator-mxnet >> > > repo >> > > > > >> > >> > > > > >> > Open PRs : 207 >> > > > > >> > PRs labeled : 18 >> > > > > >> > PRs already labeled : 38 >> > > > > >> > PRs with unknown jobs : 2 >> > > > > >> > PRs with status failed : 149 >> > > > > >> > >> > > > > >> > Lambda function labeled 18 PRs that had passed all the tests. >> > > > > >> > >> > > > > >> > PR for POC: >> > https://github.com/apache/incubator-mxnet-ci/pull/27 >> > > > > >> > However, Marco made a valid point regarding leveraging Github >> > > > Webhooks >> > > > > >> > [instead of Jenkins] for retrieving status of the PR. >> > > > > >> > >> > > > > >> > *What's required?* >> > > > > >> > Thus, to get this feature functional, I'd need a separate >> Github >> > > > > webhook >> > > > > >> > that sends information related to PR Status. Just like the >> > webhook >> > > > > >> request >> > > > > >> > for CI Bot, I can send the details over private email to >> Marco's >> > > > > >> personal >> > > > > >> > email address & then he can create a ticket with Apache >> Infra. >> > > > > >> > >> > > > > >> > Thanks to Sheng & Marco for guidance & assistance on this. >> > > > > >> > >> > > > > >> > Thanks, >> > > > > >> > Chai >> > > > > >> > >> > > > > >> > -- >> > > > > >> > *Chaitanya Prakash Bapat* >> > > > > >> > *+1 (973) 953-6299* >> > > > > >> > >> > > > > >> > [image: https://www.linkedin.com//in/chaibapat25] >> > > > > >> > <https://github.com/ChaiBapchya>[image: >> > > > > >> https://www.facebook.com/chaibapat] >> > > > > >> > <https://www.facebook.com/chaibapchya>[image: >> > > > > >> > https://twitter.com/ChaiBapchya] < >> > https://twitter.com/ChaiBapchya >> > > > > >> >[image: >> > > > > >> > https://www.linkedin.com//in/chaibapat25] >> > > > > >> > <https://www.linkedin.com//in/chaibapchya/> >> > > > > >> > >> > > > > >> >> > > > > > >> > > > > >> > > > >> > > > >> > > > -- >> > > > *Chaitanya Prakash Bapat* >> > > > *+1 (973) 953-6299* >> > > > >> > > > [image: https://www.linkedin.com//in/chaibapat25] >> > > > <https://github.com/ChaiBapchya>[image: >> > > https://www.facebook.com/chaibapat >> > > > ] >> > > > <https://www.facebook.com/chaibapchya>[image: >> > > > https://twitter.com/ChaiBapchya] <https://twitter.com/ChaiBapchya >> > > >[image: >> > > > https://www.linkedin.com//in/chaibapat25] >> > > > <https://www.linkedin.com//in/chaibapchya/> >> > > > >> > > >> > >> > >> > -- >> > *Chaitanya Prakash Bapat* >> > *+1 (973) 953-6299* >> > >> > [image: https://www.linkedin.com//in/chaibapat25] >> > <https://github.com/ChaiBapchya>[image: >> https://www.facebook.com/chaibapat >> > ] >> > <https://www.facebook.com/chaibapchya>[image: >> > https://twitter.com/ChaiBapchya] <https://twitter.com/ChaiBapchya >> >[image: >> > https://www.linkedin.com//in/chaibapat25] >> > <https://www.linkedin.com//in/chaibapchya/> >> > >> > > > -- > *Chaitanya Prakash Bapat* > *+1 (973) 953-6299* > > [image: https://www.linkedin.com//in/chaibapat25] > <https://github.com/ChaiBapchya>[image: > https://www.facebook.com/chaibapat] > <https://www.facebook.com/chaibapchya>[image: > https://twitter.com/ChaiBapchya] <https://twitter.com/ChaiBapchya>[image: > https://www.linkedin.com//in/chaibapat25] > <https://www.linkedin.com//in/chaibapchya/> > -- *Chaitanya Prakash Bapat* *+1 (973) 953-6299* [image: https://www.linkedin.com//in/chaibapat25] <https://github.com/ChaiBapchya>[image: https://www.facebook.com/chaibapat] <https://www.facebook.com/chaibapchya>[image: https://twitter.com/ChaiBapchya] <https://twitter.com/ChaiBapchya>[image: https://www.linkedin.com//in/chaibapat25] <https://www.linkedin.com//in/chaibapchya/>
