The Pants project welcomes contributions from all developers. In order to properly vet changes to the codebase, we have a review process and your code must be approved and committed to the repo by a developer with commit access to the pantsbuild github project.
A Committer is a member of the community who has access to commit changes to the master branch of the github repo. We limit the number of committers to developers who have a proven track record with contributing code changes and actively participate in the project through code contributions, reviews, and community discussions.
Becoming a Committer
Nominations for committers are discussed on the email@example.com group. The discussion will consider commits contributed to date and the participation of the contributor in reviews and public communication channels. Feedback is gathered on what might be required for the contributor to be approved as a committer.
The minimum requirement to become a committer is evidence of at least 10 "significant contributions" to the open source repo. The definition of what constitutes a "significant contribution" is kept intentionally vague, but at a minimum, those contributions should:
- Include changes that impact code, test, and documentation.
- Be vetted by committers from multiple organizations.
- Cover more than a single area of the pants codebase.
- Demonstrate knowledge of and willingness to follow project development processes and procedures.
After approval by a vote of the current committers, a new committer has access to the following resources:
- Commit access to the github repo.
- Ability to Stop/restart builds on Travis-CI.
- An account on the code review site (RBCommons) that is part of the 'twitter’ team.
- Access to the firstname.lastname@example.org group.
A committer may also request access to publish changes to the org.pantsbuild groupId on the Maven Central Repository.
The list of current and past committers will be listed in a file named COMMITTERS.rb in the root of the pantsbuild/pants repo.
It is the responsibility of a Committer to ensure that the ongoing good health and high quality of the project is maintained.
- Committers are responsible for the quality of the changes that they approve.
- Committers should raise objections to changes that may impact the performance, security, or maintainability of the project.
- Committers should help shepherd changes from non-committers through our contribution process.
- Committers should maintain a courteous and professional demeanor when participating in the community.
- Committers should be regular participants on our public communications channels.
Committers should respond to public requests for code reviews. While it is not necessary for every review to be approved by every committer, the health of the community depends on quality vetting of incoming changes. If only a single committer is tagged on a review and is unable to participate, the committer should respond to the review and recommend another committer.
A Releaser is a Committer who has permission to publish releases to the pantsbuild.pants PyPi repository. A Committer who wishes to participate in the pants release rotation may additionally become a Releaser. A Releaser is responsible for updating the release documentation, creating release builds, and shepherding them through the review and release process.
A committer may be placed on emeritus status. This is an honorary position for committers who were formerly active in the community but have retired from active Pants life. These committers do not have commit access to the repositories.
The decision to place a committer on emeritus status is either by request, or by majority vote of the committers. If you have not participated in code reviews or contributed a patch to pants within the past three months an automatic recommendation for emeritus status may be put forward to the committers.