It's now possible to rebase merge commits directly from the UI.
It's now possible to have plugin generated suggested fixes directly in the UI. This opens the door for AI integration in the review process with Gerrit Code Review.
Please see more details here
Imported projects from other servers is now fully supported, including also queries by change number on Lucene.
It's now possible to list all experiments currently enabled on a Gerrit server by hitting the config/server/experiments endpoint. Please see more details here
A number of rest endpoints have been added to simplify management and observability of Gerrit indexes. It's now possible to:
Attention has been put on reducing the number of email notifications that Gerrit users receive even when no actions need to be taken.
Gerrit no longer send emails to everyone when additional reviewers or CCs are added. Please note, this is also a breaking change, see more details on the change, Change 400822
Only add owner and uploader to the attention set if the label is copied over to the latest patchset, avoiding emails for votes on older patchsets that don't affect the latest one. The reason for the user being in the attention set is also automatically updated.
Stop always cc'ing all “reviewers by email”, as otherwise they receive more emails than intended.
So far querying changes using the change: predicate did not allow to use the project~changeNumber format. However, since Change 387794 this is the default ID format returned in the ChangeInfo. Being able to use it directly for further queries would be advantageous.
i.e. https://gerrit-review.googlesource.com/q/change:gerrit~399319
This reinforces the concept that project~changeNumber should be the Id to use when trying to unique identify changes. This should be preferred to project~branch~changeId as this can theoretically contain duplicates, as specified in Issue 313935024
Schedule of cache pruning of H2 caches is now configurable. This means that it doesn't necessarily need to run on startup, therefore improving Gerrit startup times. Find more information in the docs.
Indexes have been added to the H2 cache databases, greatly improving performance of persistent caches, especially pruning and building bloom filters.
Robot Comments have been officially deprecated for some time and the checks API framework is recommended since Gerrit 3.6. This is great as it provides a way of greatly reducing the size of the repository. However, unlike fixes suggested in Robot-Comments, Human Suggested fixes could not be applied programmatically, until now.
Gerrit 3.10 introduces a way of suggesting fixes that could then be programmatically applied with the the Apply Stored Fixes endpoint. This is done by adding an extra field fix_suggestions in CommentInfo that will be stored separately on NoteDB.
We don't consider this a breaking change as the comment info payload is serialized as JSON and unknown fields should be ignore when parsing such data format. To be extra cautious, this field is only written if the experiment is enabled.
The experiment can be enabled in gerrit.config like so
[experiments]
enabled = GerritBackendFeature__allow_fix_suggestions_in_comments
So far Gerrit admins have always needed to rely on external tools to delete old logs files, now this feature is brought within Gerrit itself and made easily configurable. See more details under log.timeToKeep
It's now possible to update the commit message with a secondary email, both in the UI and via Rest API.
It's now possible to update the author and the committer identities directly in the UI.
The accounts index version has been increased to version 14. The changes index version has been increased to version 86. The groups index version has been increased to version 11. The projects index version has been increased to version 9.
The schema version hasn't been updated, however, because Lucen was bumped 2 versions from 7.x to 9.8 the upgrade is supported only from Gerrit v3.9, as Lucene libraries do not support more than one version upgrade at a time.
By default, if you’re upgrading from 3.9, the index is automatically rebuilt upon Gerrit startup after the upgrade.
If you’re upgrading from 3.8 or an earlier version, you must use the Offline upgrade steps below, because of the Lucene upgrade mentioned above.
Download the new gerrit.war
Stop Gerrit
Ensure all installed plugins are compatible with the new API
Run init java -jar gerrit.war init -d site_path --batch
Reindex if you are upgrading from a 3.9 versions you don’t need to run reindex (see Online index schema upgrade from 3.9 above). If you still want to you will need to run reindex:
java -jar gerrit.war reindex -d site_path If you are upgrading from a 3.8 or an earlier version, you must run a reindex of all indexes:
java -jar gerrit.war reindex -d site_path See the reindex command for other options.
Downgrade to any Gerrit v3.9 release is possible, but requires the following manual steps:
java -jar gerrit.war init -d site_path --batch java -jar gerrit.war reindex -d site_path
Updated almalinux to 9.3.
Change 409738 Added validation for label copy conditions
Change 407417 Branch links in change metadata now ignore status
This means that clicking the branch link in the change detail section returns all changes associated with that branch, rather than the ones matching the change's status. This will return a much greater number of changes than before, potentially impacting plugin/workflow performance.
Change 404717Deprecate review command without project argument
Issue 325070428 Added new current_revision_number field to ChangeInfo that contains the current patch set number
If the consumer is “well designed” adding one extra field in the JSON response should not break any existing behaviour. However, as it‘s a change in the response payload, we’re highlighting this as potentially breaking change.
Change 400821 AutoMerger#lookupFromGitOrMergeInMemory: Remove mergeStrategy parameter
This only impacts plugins.
Change 401198 DiffOperations: Remove unused diffOptions parameter from load methods
Potentially breaking change as it impacts plugins that use the DiffOperations interface.
Change 401977 Use RetryScheduler with backoff when server returns 429
Gerrit UI will now automatically retry the Rest API calls to the backend when the HTTP status code is 429. This could lead to duplicated requests sent to the backend and consequently higher load on the system.
Change 396859 Disable dropdown items for downlading files >50 MB
The 50MB limit is hardcoded and cannot be changed via configuration.
Bump JGit version to c0b415f. You can retrieve the full list of changes with:
git log --no-merges --abbrev-commit --format=oneline bf70c9f4c2e35548bc6d7853284b2c4d5e1d29ef...c0b415fb028b4c1f29b6df749323bbb11599495d
Notable changes are:
ref-prefix scanningreplysent plugin event