Gerrit Code Review¶
Gerrit is a code review tool that TrueCloudLab developers are transitioning to.
Our Gerrit instance is available at https://review.frostfs.info
(use TrueCloudLab SSO to log in).
About Gerrit¶
Gerrit workflow is entirely different from the review model used by GitHub (and Forgejo, GitLab, BitBucket) so new users must expect some learning curve.
- Unit of work in Gerrit is a single commit (called change in UI). There is no separate PR message so commit messages are actually being looked at by reviewers.
- Multiple related commits may be merged together or separately - at the author's discretion. Commit grouping is arbitrary and may cross repository boundaries - you may submit multiple commits to multiple repositories and request them to be merged only as a group.
- Each commit may be modified prior to merge, as is expected based on review feedback. Commit versions are called patchsets - and Gerrit provides a good UI to review diffs between patchsets within a single change. Gerrit uses Change-Id footer to track different revisions of the same commit: do not modify or remove this footer after sending a change for review.
- Voting labels and submit requirements may be configured with any granularity required by the team.
You may find more information in Gerrit documentation and in third-party. If you're new to Gerrit, please read at least one of these links.
We also have some how-to guides in this repository (PRs with more docs are very welcome!):
- Sending your first change for review in Gerrit
- Small tweaks for improved user experience
- CI setup in our Gerrit instance
- Repository sync setup
- Known bugs and missing features
Migration status¶
- Repositories tagged gerrit in Forgejo (core team, SDK team)
- New contributions should be submitted to Gerrit
- Forgejo pull requests are still supported and may be safely merged in Forgejo
- Source of truth for git repository is Forgejo
- Git repository sync is bidirectional for specified branches
- Release tags are pushed to Forgejo only
Migration goal¶
For each TrueCloudLab repository:
- New contributions must be submitted to Gerrit. Pull requests from other locations are automatically translated into Gerrit change sets.
- Source for truth for git repository is Gerrit. Other locations are automatically mirrored from Gerrit. Any changes submitted to mirrors without going through Gerrit will be lost after the next sync.
- Git repository sync is unidirectional. All secondary locations are mirrored from Gerrit
- Forgejo is used as an issue tracker, release artifact destination and as a primary public facing code mirror.