4b44bdc702
Draft workflow in Gerrit will be deprecated and slated for removal. This change is the first step in this direction. However, the repo-tool, mainly used by Andorid developers, is still depending on drafts and has no support for private or wip changes. We've added '--private' and '--wip' options to the repo-tool so that users could have alternatives after pushing drafts is rejected. But, unfortunately, it has proved hard for us to create a new repo-tool release containing those two new options. That means we have to find some workarounds instead of rejecting requests for creating drafts directly. The most important feature of drafts is privacy (draft changes and patch sets are only visible to the change owners and reviewers). Luckily, we can achieve this with the help of private changes and change edits: 1- If a user tries to create a draft change, we will create a private change instead. 2- If a user tries to create a draft patch set, we will create a change edit instead. The above behaviors will be a little confusing to our users because the change or the patch set state is inconsistent with the push option. But they get almost the same feature. And they can use similar operations to public their changes/edits. Before this, they click 'Publish drafts', now they click 'Unmark private' or 'Publish edit'. After the repo-tool supports private/wip changes, we will reject those requests with draft option completely. With this change, users can't create new drafts through the git push or the 'Create Change' REST API. After this change is released, draft changes and draft patch sets can still exist in Gerrit sites. The existing draft changes and draft patch sets can still be published and deleted. Some operations like cherry-pick may create a new draft patch set if the current patch set of the target change is draft. But after migrating existing drafts, there is no way to create a new draft any more. Given that Change.Status enum still contains DRAFT value and given that patch set class still has draft flag, the draft state of changes and patch sets can still be toggled programmatically. Thus we can keep most drafts related unit tests until existing draft changes and draft patch sets are migrated to non-draft changes and patch sets. Migration path for draft changes and patch sets (will be done in follow-up changes): * Draft changes will be migrated to private or work-in-progress changes * Draft patch sets will be published During this migration, the DRAFT value will be removed from the Change.Status enum and the draft flag will be removed from the patch set class. Bug: Issue 6881 Change-Id: I8663f0580b90d7ce10a597b42abecf8734d3f9b2 |
||
---|---|---|
.settings | ||
contrib | ||
Documentation | ||
gerrit-acceptance-framework | ||
gerrit-acceptance-tests | ||
gerrit-cache-h2 | ||
gerrit-common | ||
gerrit-elasticsearch | ||
gerrit-extension-api | ||
gerrit-gpg | ||
gerrit-gwtdebug | ||
gerrit-gwtexpui | ||
gerrit-gwtui | ||
gerrit-gwtui-common | ||
gerrit-httpd | ||
gerrit-index | ||
gerrit-launcher | ||
gerrit-lucene | ||
gerrit-main | ||
gerrit-oauth | ||
gerrit-openid | ||
gerrit-patch-commonsnet | ||
gerrit-patch-jgit | ||
gerrit-pgm | ||
gerrit-plugin-api | ||
gerrit-plugin-gwtui | ||
gerrit-prettify | ||
gerrit-reviewdb | ||
gerrit-server | ||
gerrit-sshd | ||
gerrit-test-util | ||
gerrit-util-cli | ||
gerrit-util-http | ||
gerrit-util-ssl | ||
gerrit-war | ||
lib | ||
plugins | ||
polygerrit-ui | ||
ReleaseNotes | ||
tools | ||
website/releases | ||
.bazelproject | ||
.editorconfig | ||
.git-blame-ignore-revs | ||
.gitignore | ||
.gitmodules | ||
.mailmap | ||
.pydevproject | ||
BUILD | ||
COPYING | ||
fake_pom.xml | ||
INSTALL | ||
README.md | ||
SUBMITTING_PATCHES | ||
version.bzl | ||
WORKSPACE |
Gerrit Code Review
Gerrit is a code review and project management tool for Git based projects.
Objective
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.
Documentation
For information about how to install and use Gerrit, refer to the documentation.
Source
Our canonical Git repository is located on googlesource.com. There is a mirror of the repository on Github.
Reporting bugs
Please report bugs on the issue tracker.
Contribute
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.
Getting in contact
The IRC channel on freenode is #gerrit. An archive is available at: echelog.com.
The Developer Mailing list is repo-discuss on Google Groups.
License
Gerrit is provided under the Apache License 2.0.
Build
Install Bazel and run the following:
git clone --recursive https://gerrit.googlesource.com/gerrit
cd gerrit && bazel build release
Install binary packages (Deb/Rpm)
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>]
Use pre-built Gerrit images on Docker
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.