Governance - Samsung/WATT GitHub Wiki
Governance
1. Project Roles
A recognizes the following formal roles: Contributor, Reviewer and Maintainer.
Contributor
A Contributor is anyone who wishes to contribute to the project, at any level. Contributors are granted the following rights, to:
- Contribute code, documentation, translations, artwork, etc.;
- Report defects (bugs) and suggestions for enhancement;
- Participate in the process of reviewing contributions by others;
- Initiate and participate in discussions in the mailing lists;
- Approach any member of the community with matters they believe to be important.
- Responsibility to abide by decisions, once made. They are welcome to provide new, relevant information to reopen decisions;
- Responsibility for issues and bugs introduced by one’s own contributions;
- Responsibility to respect the rules of the community (see below);
- Responsibility to provide constructive advice whenever participating in discussions and in the review of contributions.
Reviewer
A Reviewer is a Contributor who is also responsible for the maintenance of a WATT.
Reviewers have the following rights and responsibilities, in addition to those listed for Contributors:
- Right to set goals for the short and medium terms for the Module being maintained, alongside the Maintainer;
- Right to exceptionally make more invasive changes to the source code, when required;
- Right to approve own contribution, after discussing with other Contributors;
- Right and responsibility to participate in the feature development process (“Request for Comments”)
- Responsibility to ensure all contributions to the Module have been reviewed within reasonable time;
- Responsibility to ensure the quality of the code to expected levels;
- Responsibility to monitor discussions in the mailing list(s);
- Responsibility to participate in the quality verification and release process, when those happen.
Maintainer
A Module Maintainer is a Contributor who is also responsible for knowing, directing and anticipating the needs of a given WATT.
Revocation of Reviewers/Maintainers status
A Maintainer or a Reviewer who intentionally abused his review privilege may have it temporarily suspended on the request of other Reviewers or Maintainers.
Reviewers and Maintainers not including the person under consideration should discuss on the revocation of the person. If consensus cannot be reached, the Steering Committee will make the decision and all decisions must be ratified by the Steering Committee.
2. Rules of Community
All community members must abide by rules of common sense, civility and good neighborliness. Frank discussion is welcomed and encouraged with the goal of arriving at the best technical solution possible.
Discussion about the people participating in development is not welcomed and ad hominem attacks will not be tolerated.
Community participants must adhere to these simple rules:
- Respect and acknowledge all contributions, suggestions and comments from the community;
- Listen and be open to all opinions, which are subject to open discussion;
- Help each other and the other Modules;
- Assume people mean well
- Keep the project open-source friendly by using the mailing list(s) and IRC as the primary communication channels and keeping these open and friendly.
3. Decision-making in WATT
Decisions in the A project are made always at the lowest level possible that is applicable for the decision in question. Decision makers always need to keep in mind the rules of community and the WATT goals and roadmap.
- Individual Contributors are making decisions every time they submit changes in the form of deciding what to implement and how to go about it.
- Two or more Contributors also make decisions when participating in discussions in the mailing list, on bug or feature reports, in reviewing of commits. Their arguments in why a given decision should be made are part of the consensus that needs to be reached for the decision. At this level, the principle of meritocracy is important, as the opinion of those who have contributed more will be given more weight in the consensus-building.
- If those Contributors cannot agree and reach consensus on a decision, then A provides for decisions to be made by group of people, avoiding stalemates
4. Code Review
Reviewing Guidelines
Code review can be performed by all the members of the project (not just Reviewers and Maintainers). Members can review the code changes and share their opinion by comments. Changes are submitted using pull request and only Maintainer or Reviewers should approve or reject the changes.