This document defines governance policies for the Rook project.
Steering committee members demonstrate a strong commitment to the project with views in the interest of the broader Rook project.
Responsibilities include:
The current list of steering committee members is published and updated in OWNERS.md.
If you meet these requirements, express interest to the steering committee directly that your organization is interested in joining the steering committee.
If a steering committee member is no longer interested or cannot perform the duties listed above, they should volunteer to be moved to emeritus status. In extreme cases this can also occur by a vote of the steering committee members per the voting process below.
Maintainers have the most experience with the Rook project and are expected to have the knowledge and insight to lead the project's growth and improvement.
Responsibilities include:
The current list of maintainers is published and updated in OWNERS.md.
Reviewers have similar responsibilities as maintainers, with the differences listed in the Change Approval roles of the developer guide. Rules for adding and removing reviewers will follow the same guidelines as adding and removing maintainers as described below.
To become a maintainer you need to demonstrate the following:
Beyond your contributions to the project, consider:
If you are meeting these requirements, express interest to the steering committee directly that your organization is interested in adding a maintainer.
If a maintainer is no longer interested or cannot perform the maintainer duties listed above, they should volunteer to be moved to emeritus status. In extreme cases this can also occur by a vote of the maintainers per the voting process below.
Maintainers will be added to the Rook GitHub organization (if they are not already) and added to the GitHub Maintainers team.
The full change approval process is described in the contributing guide.
All new steering committee members and maintainers must be nominated by someone (anyone) opening a pull request that adds the nominated person’s name to the appropriate CODE-OWNERS
files in the appropriate roles.
Similarly, to remove a steering committee member or maintainer, a pull request should be opened that removes their name from the appropriate CODE-OWNERS
files.
The steering committee will approve this update in the standard voting and conflict resolution process. Note that new nominations do not go through the standard pull request approval described in the contributing guide. Only the steering committee team can approve updates of members to the steering committee or maintainer roles.
In general, we prefer that technical issues and maintainer membership are amicably worked out between the persons involved. If a dispute cannot be decided independently, the steering committee can be called in to decide an issue. If the steering committee members themselves cannot decide an issue, the issue will be resolved by voting. The voting process is a simple majority in which each steering committee member gets a single vote, except as noted below. Maintainers do not have a vote in conflict resolution, although steering committee members should consider their input.
For formal votes, a specific statement of what is being voted on should be added to the relevant GitHub issue or PR. Steering committee members should indicate their yes/no vote on that issue or PR, and after a suitable period of time (goal is by 5 business days), the votes will be tallied and the outcome noted. If any steering committee members are unreachable during the voting period, postponing the completion of the voting process should be considered.
Additions and removals of steering committee members or maintainers require a 2/3 majority, while other decisions and changes require only a simple majority.