What do you think the requirement to becoming a committer are? is there an official process ? if there are none, what do you think of something along those lines?
The following process applies to the core projects (mangeiq, manageiq-classical-ui … <other repos?> ). other plugins/providers may follow a more informal process.
What is a committer
A ManageIQ committer is a person with commit access to one or more of the repositories under the ManageIQ organization. Committers are members of the ManageIQ contributors community who exhibit most of the following behaviors:
- Review and merge code and documentation
- Help triaging bugs and testing pull requests
- Make well formed pull requests
- Take care of releases
- Have a sense of duty about the ManageIQ project
- Play well with others, are respectful, show gratitude
We ask new contributors to ‘act as a committer’ to the extent we feel they are capable.
If you want to become a committer, we expect you help with some of these tasks:
- Review and test the patches submitted by others; this helps to offload the burden on existing committers, who will definitely appreciate your efforts
- Participate in discussions about releases, road maps, architecture, and long-term plans
- Improve the website
- Improve project infrastructure in order to increase the efficiency of committers and other contributors
- Help raise the project’s quality bar (e.g. by setting up code coverage analysis)
- As much as possible, keep your activity sustained rather than sporadic
Other things that are nice to do:
- Support users and other developers on the various channels (ManageIQ Talk, github issues and in gitter channels).
- Participate in (or even initiate) real-world events such as user/developer meetups, papers/talks at conferences, etc
How do I become a committer?
One person has to nominate you to the group of existing committers. The person who nominates you has to:
- Submit 10 examples that prove this person behaves like a committer. For instance:
- Strategic patches to the project that fix or add key functionality
- talk threads where the person is clearly helpful
- Comments that prove the person has triaged bugs
- Proof the nominee has maintained a plugin/provider successfully
- Anything else that shows the nominee should become a committer
- Explain how the nominee is involved in the community and cares about the future of the project
This nomination is public and should be made to the ManageIQ developer Talk. After the nomination is submitted, two other committers have to second the nomination. If no one objects in one week, the nomination is accepted.
Such objections may happen in public on the nomination thread. Understandably, however, not everyone is comfortable giving objections publicly. Therefore, it is acceptable for other committers to raise their concerns with the sponsor and/or other committers privately if they wish to do so. The sponsor is expected to update the nomination thread to show that it is on hold pending private concerns.
Regardless, during any objections, private or public, the nomination is on hold until the objections are resolved or the nomination is rejected. In the event of a failed nomination, the sponsor (as part of the discussing group) will know the grounds for the rejection, and can pass along constructive feedback to the candidate. Care should be taken to do this sensitively.
How do I lose committer status?
If you are inactive in the community for one year, we will remove you from the committers list and revoke your permission, but we will make a mention of you in manageiq.org list of previous committers.
In the event that a committer continues to disregard good citizenship (or actively disrupts the project), we may need to revoke that person’s status. The process is the same as for nominating a new committer: someone suggests the revocation with a good reason, two people second the motion, and a vote may be called if consensus cannot be reached. We hope that’s simple enough, and that we never have to test it in practice.
Special thanks to Chromium, Mozilla, V8, FreeBSD, Apache Hive and Foreman project for providing the basis of this procedure.