Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add bots to improve productivity and engagement #67

Open
5 of 10 tasks
LouiseBonnard opened this issue Mar 19, 2020 · 18 comments · Fixed by PrestaShop/prestonbot#93, PrestaShop/prestonbot#94 or PrestaShop/prestonbot#96
Assignees
Labels
community engagement side-project Side project that need time from devs and PMs team productivity

Comments

@LouiseBonnard
Copy link

LouiseBonnard commented Mar 19, 2020

Here is a generic issue about all actions we want to do through bots to:

  1. improve community engagement and collaboration
  2. improve teamwork and efficiency

Add a bot to collect contributors feedback

Use a bot to automatically comment on a freshly merged pull request and ask its author for his/her feedback. Our goal here is to collect insights in order to continuously improve our processes.

  • Write the content displayed by the bot

Contribution merged, congratulations!

Would you mind answering our quick 1-minute survey? We would love to hear about your experience so far, it will help us improve our process for the community involved, like you. ;-)

Bot displays it automatically when a pull request from the community is merged. If several pull requests by the same community member are merged, the bot observes a one month delay before submitting this message again.

  • Create the survey with Typeform (here)
  • Implement it technically on our end

➡️ by Prestonbot

Add a bot to improve our process

  • Display a warning message when a pull request is submitted without being linked to an issue:

Your pull request does not seem to fix any issue, you might consider creating one (see note below).

Note: it is a good practice to open an issue before submitting a Pull Request as it allows maintainers to verify that the bug is effectively due to a defect in the code (and that it hasn't already been fixed) and to discuss the improvement/feature suggestion before a single line of code is written. Additionally, it may lead the Core Product team to mark that issue as a priority, further attracting the maintainer's attention.

➡️ by Prestonbot

  • When a core pull request turns QA approved but has no milestone, display a comment to avoid a merge without a milestone:

QA approved, well done! Message to the maintainers: do not forget to milestone it before the merge.

➡️ by Prestonbot

  • Make the bot close issues that are left NMI for more than 30 days:

daysUntilClose: 30
responseRequiredLabel: NMI
closeComment: Since no news from its original author popped out for 30 days, this issue is automatically closed. Please reach out if you find the answer so that we can investigate further. ;-)

➡️ by No Response probot

  • Make regular automatic pings to the dev ( @ PrestaShop/prestashop-core-developers ) / product ( @ PrestaShop/prestashop-product-team ) / CM ( @ Junebyun ) / UX ( @ PrestaShop/prestashop-designers ) teams when pull requests are still waiting for dev, waiting for PM, waiting for wording, or waiting for UX after 15 days.

@ prestashop-concernedteam, friendly reminder! 👋

➡️ by Prestonbot

  • Crawl all pull requests left waiting for author with no comment from its original author for 15 days and write that with no action in the next 15 days, his/her contribution will be closed:

Hi @ author, your answer is needed at some point to complete the review, could you please have a look at it? With no further information in the next 15 days, your pull request will be closed.

➡️ by Prestonbot

  • Send a Slack message to #team-core when the in progress column reaches 12 issues and the to be tested column reaches more than 4 issues:

Hi there, just a small warning: there are at least 12 issues in progress in the kanban!

Hi there, just a small warning: there are more than 4 issues to be tested in the kanban!

➡️ by Issuebot

Improve Issuebot

  • Remove the welcome message each time an issue is created:

Thanks for opening this issue! We will help you to keep its state consistent

➡️ by Issuebot

Issuebot or Prestonbot?

Issuebot reacts to an event. It can display a message once an action performed. Prestonbot is in PHP, it can check any information and react to it. For issues and pull requests, it checks if the information is correct.

Resources

https://probot.github.io/apps/welcome/
https://probot.github.io/apps/first-timers/


Issue updated on April 20th to list @colinegin's ideas here as well.

@LouiseBonnard LouiseBonnard added the side-project Side project that need time from devs and PMs label Mar 19, 2020
@LouiseBonnard LouiseBonnard self-assigned this Mar 19, 2020
@colinegin
Copy link

colinegin commented Mar 19, 2020

This issue needs to be updated in order to be more generic about all actions we want to do through bot to

  • improve the community engagement and collaboration
  • improve the team work and efficiency.

On this 2nd objective, a few features are needed :

  • force all new pull requests to be associated with an existing or new issue
  • new check on the bot and github to only merge PRs which have a milestone (only for core PRs)
  • make the bot crawl every X days PRs which are "waiting for author" with no recent update to automatically write to the author that with no action in the next X days, his PR will be closed.
  • make regular automatic pings to dev / product when PRs are waiting for dev or product or ux.
  • define a maximum number of issues per column and prevent to exceed this number with a bot (should be equal to number of people + number of people/2)

@LouiseBonnard LouiseBonnard changed the title Make PrestonBot collect contributors feedback Add bots to improve productivity and engagement Mar 19, 2020
@LouiseBonnard
Copy link
Author

@atomiix, @sowbiba, who would like to work on it? I think you're both on this topic. ;-)

@LouiseBonnard
Copy link
Author

Should this issue be mentioned here as well?

@LouiseBonnard
Copy link
Author

Hi @colinegin, I've checked with @sowbiba and here is a few feedback regarding your ideas:

force all new pull requests to be associated with an existing or new issue
new check on the bot and github to only merge PRs which have a milestone (only for core PRs)

A bot cannot force or perform an action on GitHub's behavior. So here it won't be possible to force the association nor block the merge but Prestonbot could a message or an alert to warn about:

  1. the necessity for any PR to be linked to an issue in order to be reviewed.
  2. the necessity to milestone the PR to have it merged, for example when it's QA approved.

define a maximum number of issues per column and prevent to exceed this number with a bot (should be equal to number of people + number of people/2)

Same, you could get a message to be warned when the maximum number of issues is reached. It could be a message on Slack or a mail. What do you prefer?

@eternoendless
Copy link
Member

eternoendless commented Apr 30, 2020

I think Prestonbot and Issuebot have two distinct purposes.

Issuebot (based on the probot framework) should be used to automate our issue/PR workflow. Nothing more.

Prestonbot (based on carsonbot) can be used to automate other interactions with contributors, like greeting them when they create their first PR, verifying if wordings exist, etc... it's closer to the a review automate.

Whenever we need new behavior, we should think if it makes sense to put it in one bot or the other. Some features (especially the ones we might want to turn on and off) may justify building a bot of its own, especially if it's based on probot, since it can be published and reused by other projects.

@sowbiba
Copy link

sowbiba commented Apr 30, 2020

@devs can be interesting https://github.com/probot/scheduler

@LouiseBonnard
Copy link
Author

Hi there, any news?

@colinegin
Copy link

Hello @LouiseBonnard ,

sorry for my late reply. I'm all for your recommendations !

  • For PR without issues when they are submitted, send a warning message to tell contributors that there PR has more chances to be reviewed and QA tested if there is an issue associated to it (or something like that)
  • For PR merged without milestones, maybe something like what Probot does when the PR is merged without QA, nothing blocking but a comment on the PR to warn the attention.
  • For the max number of issues in the kanban, yes a message on slack is a good idea ! On team core for instance, so that we can easily be warned when a column reaches its max.

Would that be ok for you two ?

@LouiseBonnard
Copy link
Author

Hi @sowbiba, @atomiix, and @eternoendless, everything is ready to be developed! Do you think that it could be done in the next few days? At least the bot to collect contributors' feedback, it is the most important. :-)

@atomiix
Copy link

atomiix commented Jun 4, 2020

Hi @LouiseBonnard, RN I'm working on the improvement of the wording feature for prestonbot but contributors' feedback is coming right after ;)

@eternoendless
Copy link
Member

Regarding the issue message, I'm thinking on something along these lines:

I noticed that your Pull Request is not linked to an issue.

It's generally a good idea to open an issue before submitting a Pull Request: it allows maintainers to verify that the problem is effectively due to a defect in the code that hasn't already been fixed. It also encourages discussion about the best possible solution before a single line of code has been written. Additionally, it can also lead the Product team to mark that issue as a priority, which will further attract the maintainers' attention.

@LouiseBonnard
Copy link
Author

LouiseBonnard commented Jul 6, 2020

Well, it is a bit long to be included in the already existing PrestonBot comment. I suggest shortening it to have it included as one of the bullet points and clarified in a note at the end.

Your pull request does not seem to fix any issue, you might consider creating one, cf. the note.

Note: it is a good practice to open an issue before submitting a pull request as it allows maintainers to verify that the problem is effectively due to a defect in the code and has not already been fixed. It also encourages discussion about the best possible solution before a single line of code has been written. Additionally, it leads the core product team to mark that issue as a priority.

Otherwise we can just create another PrestonBot comment that would fully apply to this topic.

Feel free to have a look at the other automatized comments so that we can be all aligned before adding this feature to the bots. ;-)

@colinegin
Copy link

I like the note, the only thing is that it only applies to bugs ("problem", "defect") while it's also key for improvements & features. Wdyt ? One option would be to have different messages according to the PR type, but that may be a bit heavy.

@LouiseBonnard
Copy link
Author

Right, it might not be clear enough. I thus suggest the following wording:

Your pull request does not seem to fix any issue, you might consider creating one, cf. the note.

Note: it is a good practice to open an issue before submitting a pull request as it allows maintainers to verify that the bug is effectively due to a defect in the code (and has not already been fixed) or to discuss the improvement/feature suggestion before writing a single line of code. Additionally, it leads the core product team to mark that issue as a priority.

@eternoendless, is it okay for you as well?

@eternoendless
Copy link
Member

Your pull request does not seem to fix any issue, you might consider creating one (see note below).

Note: it is a good practice to open an issue before submitting a Pull Request as it allows maintainers to verify that the bug is effectively due to a defect in the code (and that it hasn't already been fixed) and to discuss the improvement/feature suggestion before a single line of code is written. Additionally, it may lead the Core Product team to mark that issue as a priority, further attracting the maintainer's attention.

I re added the final phrase ("further attracting the maintainer's attention") to explain why should someone care about the Product team making an issue a priority.

@ttoine
Copy link

ttoine commented Jan 13, 2021

Sorry in the current implementation, this is like spam, plus there is no information about how the collected information is accessible, so it might even be not RGPD compliant at all (Typeform is connected to our CRM, this is an information that people must be aware of).

I just can't image how you would hate to work on GitHub or on open source projects if any time you contribute to any project you would get this kind of request in the pull request discussion from many companies. Can anyone imagine what would happen if Redhat would send that kind of content to the Linux Kernel Mailing List?

So please disable this bot for the moment, and let's think about how to implement it a better way. In this current version, it would not be possible to even put that on prestashopcorp's repository because of RGPD.

@LouiseBonnard
Copy link
Author

Typeform is connected to our CRM, this is an information that people must be aware of.

Slight difference: Typeform can be connected to our CRM, this is not in any way a default state and clearly not the case for this survey.

@matthieu-rolland
Copy link

the tasks that are undone should be turned into dedicated issues

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment