mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
99 lines
7.7 KiB
Markdown
99 lines
7.7 KiB
Markdown
# New Maintainer Checklist
|
|
|
|
**This is a guide used by existing maintainers to invite new maintainers. You might find it interesting but there's nothing here users should have to know.**
|
|
|
|
There's someone who has been making consistently high-quality contributions to Homebrew and shown themselves able to make slightly more advanced contributions than just e.g. formula updates? Let's invite them to be a maintainer!
|
|
|
|
First, send them the invitation email:
|
|
|
|
```markdown
|
|
The Homebrew team and I really appreciate your help on issues, pull requests and
|
|
your contributions to Homebrew.
|
|
|
|
We would like to invite you to have commit access and be a Homebrew maintainer.
|
|
If you agree to be a maintainer, you should spend a significant proportion of
|
|
the time you are working on Homebrew applying and self-merging widely used
|
|
changes (e.g. version updates), triaging, fixing and debugging user-reported
|
|
issues, or reviewing user pull requests. You should also be making contributions
|
|
to Homebrew at least once per quarter.
|
|
|
|
You should watch or regularly check Homebrew/brew and/or
|
|
Homebrew/homebrew-core and/or Homebrew/homebrew-cask. Let us know which so we
|
|
can grant you commit access appropriately.
|
|
|
|
If you're no longer able to perform all of these tasks, please continue to
|
|
contribute to Homebrew, but we will ask you to step down as a maintainer.
|
|
|
|
A few requests:
|
|
|
|
- Please make pull requests on any changes to Homebrew/brew code or any
|
|
non-trivial (e.g. not a test or audit improvement or version bump) changes
|
|
to formulae code and don't merge them unless you get at least one approval
|
|
and passing tests.
|
|
- In Homebrew/brew, close pull requests using GitHub's "Merge pull request"
|
|
button in "Create a merge commit" mode.
|
|
- In Homebrew/homebrew-core, use `brew pr-publish` to close pull requests
|
|
that require new bottles or change multiple formulae. Note that an approving
|
|
review on a pull request for an existing formula will trigger this automatically.
|
|
If commits need to be amended use `brew pr-pull` instead. Let these commands
|
|
auto-close issues whenever possible (it may take up to 5 minutes). If in doubt,
|
|
check with e.g. Fork.app that you've not accidentally added merge commits.
|
|
If bottles are unnecessary, use GitHub's "Merge pull request" button in
|
|
"Squash and merge" mode for a single formula change.
|
|
- Still create your branches on your fork rather than in the main repository.
|
|
Note GitHub's UI will create edits and reverts on the main repository if you
|
|
make edits or click "Revert" on the Homebrew/brew repository rather than your
|
|
own fork.
|
|
- If still in doubt please ask for help and we'll help you out.
|
|
- Please read:
|
|
- https://docs.brew.sh/Brew-Test-Bot-For-Core-Contributors
|
|
- https://docs.brew.sh/Maintainer-Guidelines
|
|
- anything else you haven't read on https://docs.brew.sh
|
|
|
|
How does that sound?
|
|
|
|
Thanks for all your work so far!
|
|
```
|
|
|
|
If they accept, follow a few steps to get them set up:
|
|
|
|
- Invite them to the [**@Homebrew/maintainers** team](https://github.com/orgs/Homebrew/teams/maintainers) (or any relevant [subteams](https://github.com/orgs/Homebrew/teams/maintainers/teams)) to give them write access to relevant repositories (but don't make them owners). They will need to enable [GitHub's Two Factor Authentication](https://help.github.com/articles/about-two-factor-authentication/).
|
|
- Ask them to sign in to [Bintray](https://bintray.com) using their GitHub account and they should auto-sync to [Bintray's Homebrew organisation](https://bintray.com/homebrew/organization/edit/members) as a member so they can publish new bottles.
|
|
- Invite them to the [`homebrew-maintainers` private maintainers mailing list](https://lists.sfconservancy.org/mailman/admin/homebrew-maintainers/members/add).
|
|
- Invite them to the [`machomebrew` private maintainers Slack](https://machomebrew.slack.com/admin/invites) (and ensure they've read the [communication guidelines](Maintainer-Guidelines.md#communication)) and ask them to use their real name there (rather than a pseudonym they may use on e.g. GitHub).
|
|
- Ask them to disable SMS as a 2FA device or fallback on their GitHub account in favour of using one of the other authentication methods.
|
|
- Ask them to (regularly) review remove any unneeded [GitHub personal access tokens](https://github.com/settings/tokens).
|
|
- Add them to Homebrew/brew's README, run `brew man` and commit the changes.
|
|
- Start the process to [add them as Homebrew members](#members), for formal voting rights and the ability to hold office for Homebrew.
|
|
|
|
If they are interested in doing system administration work:
|
|
|
|
- Invite them to the [`homebrew-ops` private operations mailing list](https://lists.sfconservancy.org/mailman/admin/homebrew-ops/members/add).
|
|
- Invite them to the [`homebrew` private 1Password](https://homebrew.1password.com/people).
|
|
- Optionally: make them [owners on the Homebrew GitHub organisation](https://github.com/orgs/Homebrew/people) if they need to access organisation-wide settings (like GitHub Actions organisation shared runners).
|
|
|
|
If they are elected to the Homebrew's [Project Leadership Committee](https://docs.brew.sh/Homebrew-Governance#4-project-leadership-committee):
|
|
|
|
- Email their name, email and employer to the [Software Freedom Conservancy](https://sfconservancy.org) at homebrew@sfconservancy.org
|
|
- Make them [owners on the Homebrew GitHub organisation](https://github.com/orgs/Homebrew/people)
|
|
- Invite them to the [**@Homebrew/plc** team](https://github.com/orgs/Homebrew/teams/plc/members)
|
|
- Invite them to [Google Analytics](https://analytics.google.com/analytics/web/#management/Settings/a76679469w115400090p120682403/%3Fm.page%3DAccountUsers/) and add them to the relevant section of the [Homebrew/brew's README](https://github.com/Homebrew/brew/edit/master/README.md).
|
|
- Invite them to the [`homebrew` private 1Password](https://homebrew.1password.com/people).
|
|
- Make them owners on the [`machomebrew` private maintainers Slack](https://machomebrew.slack.com/admin)).
|
|
|
|
If there are problems, ask them to step down as a maintainer and revoke their access to all of the above.
|
|
|
|
In interests of loosely verifying maintainer identity and building camaraderie, if you find yourself in the same town (e.g living, visiting or at a conference) as another Homebrew maintainer you should make the effort to meet up. If you do so, you can expense your meal (within [SFC reimbursable expense policies](https://sfconservancy.org/projects/policies/conservancy-travel-policy.html#meals-for-organizational-development). This is a more relaxed version of similar policies used by other projects, e.g. the Debian system to meet in person to sign keys with legal ID verification.
|
|
|
|
Now sit back, relax and let the new maintainers handle more of our contributions.
|
|
|
|
## Members
|
|
|
|
People who are either not eligible or willing to be Homebrew maintainers but have shown continued involvement in the Homebrew community may be admitted by a majority vote of the [Project Leadership Committee](https://docs.brew.sh/Homebrew-Governance#4-project-leadership-committee) to join the Homebrew GitHub organisation as [members](https://docs.brew.sh/Homebrew-Governance#2-members).
|
|
|
|
When admitted as members:
|
|
|
|
- Invite them to the [**@Homebrew/members** team](https://github.com/orgs/Homebrew/teams/members), to give them access to the private governance repository.
|
|
- Invite them as a single-channel guest to the #members channel on the [`machomebrew` private maintainers Slack](https://machomebrew.slack.com/admin/invites) (and ensure they've read the [communication guidelines](Maintainer-Guidelines.md#communication)) and ask them to use their real name there (rather than a pseudonym they may use on e.g. GitHub).
|
|
- Add them to the membership list in the [homebrew-governance repository](https://github.com/Homebrew/homebrew-governance).
|