commit | 11932ad349c0015363db197db17698c9972fec64 | [log] [tgz] |
---|---|---|
author | Edwin Kempin <ekempin@google.com> | Wed Apr 24 15:58:02 2019 +0200 |
committer | David Pursehouse <dpursehouse@collab.net> | Thu May 09 15:07:41 2019 +0900 |
tree | 73ced94ad55bdc24ec8e51c8dbcf76dee823b97f | |
parent | 66f9fee387709daafd3eaa700a0d3e4e57e2b9c3 [diff] |
Document project governance We recently discussed a proposal to foster a better collaboration within the Gerrit community. Google proposes to: 1. Have clear project governance rules, including a steering committee for decision making (this change) 2. Establish a new contribution process for large/complex features that requires to write a design doc first (change If1b6f71e7) 3. Offer mentorships to make contributions easier and faster, and raise the quality of new features (change I10fa8e926) 4. Appoint a community manager, who focuses on the health of the Gerrit community and constantly improves community processes (change I39fea7a2a) With this proposal Google increases its investment into the Gerrit open source community. Google will fund the work of 3 steering committee members, 1-2 mentorships at a time and a community manager. Historically Gerrit has been a Google project that was led by Googler Shawn Pearce. We are aware that Shawn had an exceptional standing in the community, which is why we don't think another person could fulfill his role, hence we want to establish a steering committee instead to take care of leading the project. The steering committee should have 5 members. Google as the main driver of the Gerrit core project claims 3 steering committee members to honor its funding of the project. The Google members of the steering committee are appointed by Google. The other members are elected by the non-Google maintainers. The steering committee should act in the interest of the Gerrit project and the whole Gerrit community. As an integral part of the Gerrit community, the steering committee is committed to transparency and to answer incoming requests in a timely manner. For decisions, consensus between steering committee members and all other maintainers is desired. If consensus cannot be reached, decisions can also be made by simple majority in the steering committee (should be applied only in exceptional situations). The steering committee has the following responsibilities and tasks: * define project vision and project scope * maintain a roadmap, a release plan and a prioritized backlog * ensure timely design reviews and approvals (see change If1b6f71e7 that documents the design-driven contribution process) Steering committee members must dedicate sufficient time to their role so that the steering committee can fulfill its duties. To be able to steer the project the steering committee gets the final decision making authority. Individual maintainers can still raise concerns regarding new features, and hence the project direction, by taking part in design reviews. The steering committee prefers consensus and should use its decision power to overrule opinions only in exceptional situations. Having a clear process for project governance makes it transparent and predictable how and how fast decisions are made. By having a steering committee we also have dedicated people that are responsible for project vision, project scope, roadmap, release plan, prioritized backlog etc. (all things that have been badly missed by the community so far). Details about the working mode of the steering committee are intentionally not defined yet. It's expected that the steering committee organizes itself and then documents how it works and how transparency is achieved (e.g. if there are meetings, will there be meeting notes? Where can they be found? Where is the roadmap published? etc.). This change documents how the project governance works and which powers and responsibilities the steering committee has. Follow-up changes will document the new design-driven contribution process (change If1b6f71e7), mentorships (change I10fa8e926) and the community manager role (change I39fea7a2a). For Google, setting up clear project governance is the most important part of the proposal and without it we cannot invest into mentorships and the community manager. Signed-off-by: Edwin Kempin <ekempin@google.com> Change-Id: I27e432cced4acb7ed42d45c4f1080e2a488347a3
Gerrit is a code review and project management tool for Git based projects.
Gerrit makes reviews easier by showing changes in a side-by-side display, and allowing inline comments to be added by any reviewer.
Gerrit simplifies Git based project maintainership by permitting any authorized user to submit changes to the master Git repository, rather than requiring all approved changes to be merged in by hand by the project maintainer.
For information about how to install and use Gerrit, refer to the documentation.
Our canonical Git repository is located on googlesource.com. There is a mirror of the repository on Github.
Please report bugs on the issue tracker.
Gerrit is the work of hundreds of contributors. We appreciate your help!
Please read the contribution guidelines.
Note that we do not accept Pull Requests via the Github mirror.
The IRC channel on freenode is #gerrit. An archive is available at: echelog.com.
The Developer Mailing list is repo-discuss on Google Groups.
Gerrit is provided under the Apache License 2.0.
Install Bazel and run the following:
git clone --recurse-submodules https://gerrit.googlesource.com/gerrit cd gerrit && bazel build release
The instruction how to configure GerritForge/BinTray repositories is here
On Debian/Ubuntu run:
apt-get update & apt-get install gerrit=<version>-<release>
NOTE: release is a counter that starts with 1 and indicates the number of packages that have been released with the same version of the software.
On CentOS/RedHat run:
yum clean all && yum install gerrit-<version>[-<release>]
On Fedora run:
dnf clean all && dnf install gerrit-<version>[-<release>]
Docker images of Gerrit are available on DockerHub
To run a CentOS 7 based Gerrit image:
docker run -p 8080:8080 gerritforge/gerrit-centos7[:version]
To run a Ubuntu 15.04 based Gerrit image:
docker run -p 8080:8080 gerritforge/gerrit-ubuntu15.04[:version]
NOTE: release is optional. Last released package of the version is installed if the release number is omitted.