Overview of Proposal
A few projects have documented the way they manage their maintainers but it would be desirable to increase consistency in how this is done across all the projects. This proposal is about defining a common Maintainers management policy that could then be adopted by the projects.
The following list points to the known existing policies (please add any other that is not listed here):
- Besu: https://github.com/hyperledger/besu/blob/master/MAINTAINERS.md
- Fabric: https://hyperledger-fabric.readthedocs.io/en/latest/CONTRIBUTING.html#maintainers
- Sawtooth: https://github.com/hyperledger/sawtooth-rfcs/blob/master/text/0006-sawtooth-governance.md#contributor-permission-levels
- Grid (same as Sawtooth): https://github.com/hyperledger/grid-rfcs/blob/master/text/0008-grid-governance.md#contributor-permission-levels
- Transact (same as Sawtooth): https://github.com/hyperledger/transact-rfcs/blob/master/text/0000-transact-governance.md#contributor-permission-levels
- Type your task here, using "@" to assign to a user and "//" to select a due date
- Angelo De Caro
- Arnaud J Le Hors
- Christopher Ferris
- Dan Middleton
- Gari Singh
- Hart Montgomery
- Mark Wagner
- Nathan George
- Swetha Repakula
- Tracy Kuhrt
- Troy Ronda
I'm not sure that every project needs to have the exact same policy, but agree that it would be good to have a standard / common list of things each project can adopt if it likes. For example, "removal for inactivity" is a good practice, but some projects might say 60 days and others might say 90 days based on each project's own contribution pattern(s).
Because each project had their own policy i agree it's going to be hard to get every project to adopt the same policy. But I think we need consistency on what the policy covers. For example, a "removal for inactivity" clause should be in each policy, even if the policy is "no removal for inactivity". Perhaps a minimum of:
and the policy could suggest other things to consider when making or updating a policy, such as
There are some cases where you may want an even more fine-grained maintainer policy. For instance, Ursa breaks maintainers into categories. Someone who "knows the math" of crypto is required to review changes that touch "the math."
That being said, it would be nice to have a common maintainer clause that projects could adopt and add to as they see fit (as Gari suggests).
Please see https://github.com/hyperledger/tsc/pull/1