update maintainer rules (#2307)

Signed-off-by: Nicolas MASSART <nicolas.massart@consensys.net>
pull/2333/head
Nicolas MASSART 4 years ago committed by GitHub
parent b361e15e43
commit b8fc1109e2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 108
      MAINTAINERS.md

@ -40,39 +40,67 @@
## Becoming a Maintainer ## Becoming a Maintainer
Besu welcomes community contribution. Community members may progress to become a Besu welcomes community contribution.
maintainer. To become a maintainer the following steps occur, roughly in order. Each community member may progress to become a maintainer.
- 5 significant changes have been authored by the proposed maintainer and There are two ways to become a maintainer:
accepted.
- Contribute significantly to the code in this repository.
- Contribute significantly to the doc or being recognized as great help by other contributors.
### Code maintainers contribution requirement
The requirement to be able to be proposed as a code maintainer is:
- 5 significant changes on code have been authored in this repos by the proposed maintainer and accepted (merged PRs).
### Other maintainers contribution requirement
The requirements to be able to be proposed as a non-code maintainer are:
- 5 significant changes on documentation have been authored in this repos by the proposed maintainer and accepted (merged pull-requests (PR), excluding hyperledger/besu-doc repos contribution).
- or 5 significant support answers on official public channels that solved the user issue.
- or being recognised as a fully involved and significant help for issue triage and assignment or roadmap planning effort and code review by other maintainers.
There is no number defined for these criteria as the vote will decide if the criteria are valid.
### Maintainers approval process
For both types of maintainers, the following steps must occur for a contributor to be "upgraded" as a maintainer:
- The proposed maintainer meets the expectations for the targeted maintainership type (see [code](#code-maintainers-contribution-requirement) and [non code](#other-maintainers-contribution-requirement) types.)
- The proposed maintainer has the sponsorship of at least one other maintainer. - The proposed maintainer has the sponsorship of at least one other maintainer.
- This sponsoring maintainer will create a PR modifying the list of - This sponsoring maintainer will create a proposal PR modifying the list of
maintainers. maintainers. (see [proposal PR template](#proposal-pr-template).)
- The proposed maintainer accepts the nomination and expresses a willingness - The proposed maintainer accepts the nomination and expresses a willingness
to be a long-term (more than 6 month) committer. to be a long-term (more than 6 month) committer by adding a comment in the proposal PR.
- This would be a comment in the above PR. - The PR will be communicated in all appropriate communication channels
- This PR will be communicated in all appropriate communication channels. It including at least [Besu Rocket Chat](https://wiki.hyperledger.org/display/BESU/Rocket+Chat),
should be mentioned in any maintainer/community call. It should also be the [mailing list](https://lists.hyperledger.org/g/besu)
posted to the appropriate mailing list or chat channels if they exist. and any maintainer/community call.
- Approval by at least 3 current maintainers within two weeks of the proposal or - Approval by at least 3 current maintainers within two weeks of the proposal or
an absolute majority of current maintainers. an absolute majority (half the total + 1) of current maintainers.
- These votes will be recorded in the PR modifying the list of maintainers. - Maintainers will vote by approving the proposal PR.
- No veto by another maintainer within two weeks of proposal are recorded. - No veto raised by another maintainer within the voting timeframe.
- All vetoes must be accompanied by a public explanation as a comment in the - All vetoes must be accompanied by a public explanation as a comment in the
PR for adding this maintainer proposal PR.
- The explanation of the veto must be reasonable. - The explanation of the veto must be reasonable and follow the [Besu code of conduct](https://wiki.hyperledger.org/display/BESU/Code+of+Conduct).
- A veto can be retracted, in that case the approval/veto timeframe is reset. - A veto can be retracted, in that case the voting timeframe is reset and all approvals are removed.
- It is bad form to veto, retract, and veto again. - It is bad form to veto, retract, and veto again.
- The proposed maintainer becomes a maintainer
- Either two weeks have passed since the third approval, The proposed maintainer becomes a maintainer either:
- Or an absolute majority of maintainers approve.
- In either case, no maintainer presents a veto. - when two weeks have passed without veto since the third approval of the proposal PR,
- or an absolute majority of maintainers approved the proposal PR.
In either case, no maintainer raised and stood by a veto.
## Removing Maintainers ## Removing Maintainers
Being a maintainer is not a status symbol or a title to be maintained Being a maintainer is not a status symbol or a title to be maintained indefinitely.
indefinitely. It will occasionally be necessary and appropriate to move a
maintainer to emeritus status. This can occur in the following situations: It will occasionally be necessary and appropriate to move a maintainer to emeritus status.
This can occur in the following situations:
- Resignation of a maintainer. - Resignation of a maintainer.
- Violation of the Code of Conduct warranting removal. - Violation of the Code of Conduct warranting removal.
@ -84,9 +112,33 @@ maintainer to emeritus status. This can occur in the following situations:
leave such as parental leave and medical leave. leave such as parental leave and medical leave.
- Other unspecified circumstances. - Other unspecified circumstances.
Like adding a maintainer the record and governance process for moving a As for adding a maintainer, the record and governance process for moving a
maintainer to emeritus status is recorded in the github PR making that change. maintainer to emeritus status is recorded using review approval in the PR making that change.
Returning to active status from emeritus status uses the same steps as adding a Returning to active status from emeritus status uses the same steps as adding a
new maintainer. Note that the emeritus maintainer already has the 5 required new maintainer.
significant changes as there is no contribution time horizon for those.
Note that the emeritus maintainer always already has the required significant contributions.
There is no contribution prescription delay.
## Proposal PR template
```markdown
I propose to add [maintainer github handle] as a Besu project maintainer.
<!-- for code contributors -->
[maintainer github handle] contributed with many high quality commits:
- [list significant achievements]
Here are [their past contributions on Besu project](https://github.com/hyperledger/besu/commits?author=[user github handle]).
<!-- for non-code contributors -->
[maintainer github handle] contributed with many high quality actions:
- [list significant actions]
Voting ends two weeks from today at [[insert date and time]]([link to coundtown created with some tool like https://www.timeanddate.com/countdown/create])
For more information on this process see the Becoming a Maintainer section in the MAINTAINERS.md file.
```

Loading…
Cancel
Save