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

Use bots for community health #6

Closed
wants to merge 4 commits into from
Closed

Use bots for community health #6

wants to merge 4 commits into from

Conversation

wooorm
Copy link
Member

@wooorm wooorm commented Nov 4, 2020

Rendered version: https://github.com/unifiedjs/rfcs/blob/bots-for-health/text/0000-bots-for-health.md

Mostly a conversation starter for how this could look!

@wooorm wooorm added help wanted 🙏 This could use your insight or help 🏗 area/tools This affects tooling 🛠 blocked/wip This cannot progress yet, it’s being worked on 🧘 status/waiting 💬 type/discussion This is a request for comments 👩‍⚕ area/health This affects community labels Nov 4, 2020
Copy link
Member

@ChristianMurphy ChristianMurphy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for pulling this together @wooorm!
A lot of interest and good ideas here.

Comment on lines +43 to +46
* Shared saved responses (see
<https://github.com/electron/governance/tree/master/playbooks/responses>
and
<https://github.com/electron/electron/issues?q=is%3Aissue+is%3Aclosed>)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are organization level saved responses a thing on GitHub? That'd be nice
The alternative, having a playbook document could also help.

Copy link
Member Author

@wooorm wooorm Nov 4, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nope, only per user. So either a playbook, or done by a bot through comments due to labels

interplay:
if maintainer adds `type/question`, the issue is closed and a predefined
response posted to ask in discussions instead;
`platform/*` can be found from the issue checklist;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

platform/* can be found from the issue checklist;

could you clarify what you mean by this?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we have platform/linux and such labels; in the issue templates we’re asking folks to describe their OS too.

Comment on lines +52 to +53
* “Lint” issue checklists: if someone is on an old Node, respond and close
that those aren’t supported; or enforce that
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if someone is on an old Node, respond and close
that those aren’t supported;

Interesting 🤔
I like where this idea is going, what would be DX be like?
Would it be a checkbox? Would we try to parse the semver from the issue description?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It’s interesting indeed, but now feels too structured for what issues are. Requiring folks to fill out Node/npm/etc is sometimes unrelated so I’d rather not list it all in the template.

Maybe a comment on the issue like this is more useful:

Hi @mention, could you confirm that you are using the latest versions of
packages?
The latest version published of this project, `remark-rehype`, on npm is v1.2.3.

you can use `npm ls` in your terminal to find what packages and version you have
locally.

If you are instead on an older version, your issue may already be fixed.
...

response posted to ask in discussions instead;
`platform/*` can be found from the issue checklist;
merging can add `status/merge`, or `status/wontfix` can close one;
`area/*` could be added to the issue title?
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

area/* could be added to the issue title?

Could you expand what you mean by this?
Are you proposing structured PR/commit titles? Something like: https://www.conventionalcommits.org?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Issue and PR titles at least, to make them easier to search, and make area more useful

Copy link
Member

@ChristianMurphy ChristianMurphy Nov 4, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so PRs' titles would be prefixed with things like docs:, health:, test:, types:, etc?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, it’s just one idea though, but might be useful!

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, https://github.com/conventional-changelog and particularly https://github.com/conventional-changelog/commitlint have some good tools for parsing/analyzing commit messages (or PR messages).

Comment on lines +67 to +69
I’m thinking this can be done in GH actions, which seems to be pretty fast.
That does mean the action must be added to all repos, but then it’s also a nice
opt-in.
Copy link
Member

@ChristianMurphy ChristianMurphy Nov 4, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are some options.
Many GH automations are built with https://probot.github.io
Which offers some flexibility on where/how it is hosted.
We could make these GitHub actions, we could also make this a GitHub app, or a script running on a server.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actions seems to be relatively nice for this, because:

  • It’s fast
  • It’s automatically authentication to change labels, post comments, etc
  • GHs limits seem to be based per repo, of which we have a lot, but they each have low activity, so it seems we won’t reach thresholds.

See also:

@ChristianMurphy ChristianMurphy requested review from a team November 4, 2020 16:25
@wooorm
Copy link
Member Author

wooorm commented Nov 5, 2020

An update: I’ve got an action working. It’s pretty fast: responds in 20 seconds.

Here is a response for when I remove an issue template:

Screen Shot 2020-11-05 at 19 18 44

In this case, I only filled out one section in the template:

Screen Shot 2020-11-05 at 19 22 52

When everything looks good, it’ll hide its comment.

Screen Shot 2020-11-05 at 19 23 24

@Jolg42
Copy link

Jolg42 commented Nov 6, 2020

@wooorm wooorm added 🙉 open/needs-info This needs some more info and removed 🧘 status/waiting labels May 21, 2021
@wooorm
Copy link
Member Author

wooorm commented Dec 30, 2021

Closing, bots have landed as a “beta” test, and gradually have been added to most places and work quite well. The feedback here has been super useful, but it feels weird trying to “backdate” what happened to a mergeable RFC!

Thanks folks!

@wooorm wooorm closed this Dec 30, 2021
@wooorm wooorm removed help wanted 🙏 This could use your insight or help 🏗 area/tools This affects tooling 🛠 blocked/wip This cannot progress yet, it’s being worked on 🙉 open/needs-info This needs some more info 💬 type/discussion This is a request for comments labels Dec 30, 2021
@wooorm wooorm added 💪 phase/solved Post is done and removed 👩‍⚕ area/health This affects community labels Dec 30, 2021
@wooorm wooorm deleted the bots-for-health branch December 30, 2021 17:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
💪 phase/solved Post is done
Development

Successfully merging this pull request may close these issues.

4 participants