| --- |
| title: "Gerrit 3.9.0" |
| permalink: 3.9.html |
| hide_sidebar: true |
| hide_navtoggle: true |
| toc: true |
| --- |
| |
| Download: **[3.9.0-rc6](https://gerrit-releases.storage.googleapis.com/gerrit-3.9.0-rc6.war)** |
| |
| Documentation: **[3.9.0-rc6](http://gerrit-documentation.storage.googleapis.com/Documentation/3.9.0-rc6/index.html)** |
| |
| ## Release highlights |
| |
| ### Java 17 |
| |
| The language level used for Gerrit source code stays on Java 11, however, Gerrit |
| is built and distributed for Java 17, which is the recommended JVM version for |
| running it in production. |
| |
| ### New stream events |
| |
| **batch-refupdate** |
| |
| Gerrit notifies all the refs of a single batch-refupdate as a single stream |
| event JSON payload [Issue 40015567](https://crbug.com/gerrit/40015567). The new |
| `batch-ref-updated` event is controlled by configuration and can be switched off |
| for backward compatibility with legacy CI/CD systems. |
| |
| **ref-update** for draft-comments |
| |
| Gerrit generates the ref-update event for all the additions and removals of |
| draft comments in the `All-Users` |
| project ([Change 382819](https://gerrit-review.googlesource.com/382819)). This |
| is needed for replicating the |
| `All-Users` project across sites, thanks to the replication plugins being |
| notified of the updates. |
| |
| Due to the nature of drafts, on busy installations the amount of `ref-updated` |
| events created on draft operations could be high, possibly having an impact on |
| performance. |
| |
| For this reason this is disabled by default, you can enable it by |
| configuring `event.stream-events.enableDraftCommentEvents=true` |
| in `gerrit.config` [Change 385714](https://gerrit-review.googlesource.com/385714) |
| |
| ### New limits |
| |
| There are new limit definitions which can be used to protect Gerrit from |
| improper client activity. |
| |
| - `change.topicLimit`: defines the maximum number of changes in the same |
| topic ([Change 381055](https://gerrit-review.googlesource.com/381055). |
| |
| - `change.maxFileSizeDownload`: prevents memory overload caused by clients |
| downloading large files from |
| REST-API ([Change 381595](https://gerrit-review.googlesource.com/381595)). |
| |
| - `change.maxFileSizeDiff`: prevents memory overload caused by rendering large |
| files diffs in a browser. |
| |
| ### New diff3 view |
| |
| A new `change.diff3ConflictView` option allows to enable a richer diff3 |
| rendering of changes with conflict |
| markers ([Change 382894](https://gerrit-review.googlesource.com/382894)). |
| |
| ### Attention-set improvements |
| |
| Gerrit can return changes to the original attention set assignment if any of the |
| new assignees do not provide feedback within a specific |
| time ([Issue 40015204](https://crbug.com/gerrit/40015204)). The behaviour is |
| controlled by two new settings, `attentionSet.readdAfter` |
| and `attentionSet.readdMessage`. |
| |
| ### Indexing improvements |
| |
| Allow to limit the queries that do not specify a default limit and also can now |
| reindex changes with an asynchronous process when a change is updated from the |
| UI, controlled by the `index.indexChangesAsync`. |
| |
| The new option yields a much more responsive user-experience by releasing UI |
| elements without waiting for the backend reindex execution to complete. |
| |
| ### Account deletion |
| |
| Users can now delete their own account, making it possible to be forgotten by |
| the Gerrit Code Review platform. Please note that existing commits in the |
| projects will stay and the account's e-mail stored in Git commits will be |
| preserved beyond account deletion. |
| |
| ### User Suggest Edits |
| |
| `User suggest Edits` was introduced in `3.7.2` as an experimental feature, |
| disabled by default. With Gerrit `3.9`, this feature is no longer experimental |
| and `User Suggest Edits` is enabled by default. |
| |
| ### Plugin development |
| |
| #### Custom key/value pairs stored in NoteDb |
| |
| Plugins may store additional string key/value pairs to change notes in NoteDb. |
| |
| [Change 372694](https://gerrit-review.googlesource.com/372694) Added APIs to |
| set/get custom keyed-value change metadata |
| |
| #### Cross-plugin communication and dependency |
| |
| Plugins can communicate and declare dependencies to other plugins thanks to the |
| introduction of |
| [`Gerrit-ApiModule`](https://gerrit-documentation.storage.googleapis.com/Documentation/3.9.0/dev-plugins.html#_cross_plugin_communication) |
| Guice modules in plugin |
| manifest ([Issue 292114807](https://crbug.com/gerrit/292114807)). |
| |
| #### Lookup changes by change number |
| |
| [Change 394440](https://gerrit-review.googlesource.com/394440) flagged the API Changes.id(int) as deprecated |
| to prevent using it from plugins and fail to locate changes imported from Gerrit servers with a different server-id. |
| |
| ## Important notes |
| |
| ### Upgrade from Gerrit v3.9.0 (defective release) |
| |
| The release of Gerrit v3.9.0 has been impacted by the bad merge of |
| [Change 394445](https://gerrit-review.googlesource.com/c/gerrit/+/394445) |
| due to the ["implicit merge on moved changes issue"](https://issues.gerritcodereview.com/issues/40009784) |
| that has pulled 64 unwanted commits from the master branch. |
| As a consequence, the version has been declared defective and withdrawn. |
| |
| The upgrade from 3.9.0 to the following 3.9.\* patch-releases needs to |
| follow the instructions of the _"Offline upgrade"_ because it contains an |
| incompatible Lucene Engine that won't be able to read the legacy index data. |
| |
| ### Schema and index changes |
| |
| This release doesn't contain schema changes. |
| |
| The `accounts` index version has been increased to version _13_. |
| The `changes` index version has been increased to version _84_. |
| The `groups` index version has been increased to version _10_. |
| The `projects` index version has been increased to version _8_. |
| |
| ### Online index schema upgrade from 3.7/3.8 |
| |
| By default, if you're upgrading from 3.7/3.8, the index is automatically rebuilt |
| upon Gerrit startup after the upgrade. |
| |
| If you're upgrading from 3.6 or an earlier version, you must use the Offline |
| upgrade steps below. |
| |
| ### Offline upgrade |
| |
| 1. Download the new gerrit.war |
| 2. Stop Gerrit |
| 3. Ensure all installed plugins are compatible with the new API |
| 4. Run init |
| |
| ```sh |
| java -jar gerrit.war init -d site_path --batch |
| ``` |
| |
| 5. Reindex |
| |
| * If you are upgrading from a 3.7/3.8 versions you don't need to run reindex (see |
| `Online index schema upgrade from 3.7/3.8` above). If you still want to you will |
| need to run reindex: |
| |
| ```sh |
| java -jar gerrit.war reindex -d site_path |
| ``` |
| |
| * If you are upgrading from a 3.6 or an earlier version, you must run a |
| reindex of all indexes: |
| |
| ```sh |
| java -jar gerrit.war reindex -d site_path |
| ``` |
| |
| See |
| the [reindex](https://gerrit-documentation.storage.googleapis.com/Documentation/3.9.0/pgm-reindex.html) |
| program for other options. |
| |
| 6. Start Gerrit |
| |
| ### Online upgrade with zero-downtime |
| |
| Gerrit v3.9.x supports zero-downtime upgrade from Gerrit v3.7 or later when |
| configured using |
| a [high-availability configuration](https://gerrit.googlesource.com/plugins/high-availability/+/refs/heads/master/README.md) |
| , and the Git repositories are stored in a shared filesystem such as NFS or |
| similar. |
| |
| During the zero-downtime upgrade, Gerrit end-users would not notice any outage |
| or service disruption. They will be able to perform any read/write Gerrit |
| operation on the GUI or using any API. |
| |
| The zero-downtime upgrade consists of the following steps: |
| |
| 1. Have Gerrit servers running v3.7 or later, in high-availability |
| configuration, healthy and able to handle the incoming traffic properly. |
| 2. Set `gerrit.experimentalRollingUpgrade` to `true` in `gerrit.config` on both |
| Gerrit primaries. |
| 3. Set one of the Gerrit servers to unhealthy. |
| 4. Shutdown the Gerrit server, update gerrit.war and plugins to v3.9.x and start |
| Gerrit again. |
| 5. Verify that the Gerrit server is working properly (e.g. run automated smoke |
| tests) and then make it healthy again. |
| 6. Wait for the Gerrit server to start serving traffic normally. |
| 7. Repeat steps 3. to 6. for all the other Gerrit servers. |
| 8. Remove `gerrit.experimentalRollingUpgrade` from `gerrit.config` on both |
| Gerrit primaries. |
| |
| ### Downgrade |
| |
| Downgrade to any Gerrit v3.7/v3.8 release is possible, but requires the following |
| manual steps: |
| |
| 1. Shutdown all migrated Gerrit servers |
| 2. Update the gerrit.war and plugins to the previous v3.7/v3.8 version |
| 3. Run offline change reindexing using the previous gerrit.war version |
| |
| ```sh |
| java -jar gerrit.war init -d site_path --batch |
| java -jar gerrit.war reindex -d site_path |
| ``` |
| |
| 4. Startup Gerrit server |
| |
| ### Native packaging |
| |
| ### Breaking changes |
| |
| * [Change 369234](https://gerrit-review.googlesource.com/369234) |
| Return 400 BAD_REQUEST when a reviewer cannot be added by email |
| |
| When trying to add a user that cannot be added as a reviewer on a change, the |
| API was returning a 200 Status Code with an error message. |
| |
| * [Change 379475](https://gerrit-review.googlesource.com/379475) |
| Don't call Java gc explicitly, remove --gc option from show-caches ssh command |
| and REST API /config/server/summary |
| |
| * [Change 378638](https://gerrit-review.googlesource.com/378638) |
| Remove `change.stars` field from `ChangeInfo` |
| |
| Remove the `stars` field from the `ChangeInfo` response. You should check |
| whether you were relying on this field when using any REST endpoint returning |
| `ChangeInfo`. |
| |
| * [Change 373780](https://gerrit-review.googlesource.com/373780) |
| removed all `performance/operations/*` metrics because of the performance |
| issues introduced ([details](https://crbug.com/gerrit/40014513)) |
| |
| * [Change 371198](https://gerrit-review.googlesource.com/371198) |
| Add option to populate 'starred' field for change queries |
| |
| `star` option can must now be provided to include the `starred` field in |
| `ChangeInfo`, which indicates if the change is starred by the current user or |
| not. |
| |
| * [Change 387435](https://gerrit-review.googlesource.com/387435) |
| `refreshAfterWrite` and `maxAge` settings in gerrit config are now honored for |
| both persistent and in-memory caches. |
| |
| Previously these settings were erroneously ignored for persistent caches. If |
| you rely on them for persistent caches you should be aware they will be |
| honoured now. |
| |
| * [Change 379154](https://gerrit-review.googlesource.com/379154) |
| New patch sets will prefer the previous patch set's committer email |
| |
| If one of the user's secondary emails was used as the committer email in |
| previous patchset, continue using it instead of preferred email. |
| |
| * [Change 390986](https://gerrit-review.googlesource.com/390986) |
| Update `mockito` to `5.6.0` and `bytebuddy` to `1.14.9` |
| |
| Mockito framework was upgraded from `3.3.3` to `5.6.0`, hence if you have some |
| custom plugins your test code might require some minor refactoring. Please |
| refer to the mockito [documentation](https://javadoc.io/doc/org.mockito/mockito-core/5.6.0/org/mockito/Mockito.html) |
| and the [release notes](https://github.com/mockito/mockito/compare/v3.3.3...v5.6.0) |
| |
| ### Other changes |
| |
| * [Change 394435](https://gerrit-review.googlesource.com/c/gerrit/+/394435): |
| Support listing of patch-set files also for imported changes from other Gerrit server-ids |
| |
| * [Change 377699](https://gerrit-review.googlesource.com/c/gerrit/+/377699): |
| Allow generating safe local-only documentation, without reference to external fonts in CSS |
| |
| * [Change 394654](https://gerrit-review.googlesource.com/394654): |
| Fix documentation attributes bug |
| |
| * [Change 392517](https://gerrit-review.googlesource.com/392517): |
| Added 'm' alias for the 'message' operator |
| |
| * [Change 392515](https://gerrit-review.googlesource.com/392515) |
| Groups Audit Log API - Gerrit now parses all commits in refs/groups/... branch |
| |
| * [Change 392514](https://gerrit-review.googlesource.com/392514) |
| Support tracing requests that match a header |
| |
| Gerrit supports tracing requests that match a configured trace configuration. |
| With this change we add a new parameter to the tracing configuration that |
| allows matching requests by a header. E.g. this allows matching requests that |
| are sent with a certain user agent (e.g. headerPattern = User-Agent=foo-.\*). |
| |
| * [Change 392518](https://gerrit-review.googlesource.com/392518) |
| Change `.scl` files to be highlighted as python |
| |
| * [Change 392175](https://gerrit-review.googlesource.com/392175) |
| Reviewer's votes are not restored back after the reviewer is deleted and added |
| back |
| |
| When a reviewer votes for the patchset and then the reviewer is removed, |
| Gerrit removes votes from this reviewer too. However if the reviewer is added |
| back (to the same patchset) previous votes are restored back. |
| |
| This change ensures that after a reviewer is deleted, all votes from this |
| reviewer are permanently removed. |
| |
| * [Change 390897](https://gerrit-review.googlesource.com/390897) |
| Option to skip projects during change reindexing |
| |
| Introduce `index.excludeProjectFromChangeReindex`: A list of projects that |
| will be excluded from reindexing. This can be used to exclude projects which |
| are expensive to reindex to prioritize the other projects. |
| |
| * [Change 390895](https://gerrit-review.googlesource.com/390895) |
| The revert UI now defaults to Revert^2 instead of "Revert "Revert "..." |
| |
| * [Change 390614](https://gerrit-review.googlesource.com/390614) |
| Users can now upload changes to group refs except changes to group files |
| |
| * [Change 389115](https://gerrit-review.googlesource.com/389115) |
| Improved error message when change cannot be submitted due to a missing |
| dependency |
| |
| * [Change 388914](https://gerrit-review.googlesource.com/388914) |
| Changing preferred email does not result in duplicate email |
| |
| * [Change 368335](https://gerrit-review.googlesource.com/368335) |
| Rebase can be performed with a secondary email using REST API |
| |
| * [Change 388336](https://gerrit-review.googlesource.com/388336) |
| Added 'description', 'd' aliases for the 'message' operator |
| |
| * [Change 388554](https://gerrit-review.googlesource.com/388554) |
| `committer_email` field is removed from topic cherry-pick payload |
| |
| * [Change 392534](https://gerrit-review.googlesource.com/392534) |
| Return approver/rejector for a label if DETAILED_LABELS is passed |
| |
| * [Change 388054](https://gerrit-review.googlesource.com/388054) |
| Eliminated startup warning for plugins whose SshModule only provides Ssh* |
| CommandInterceptors |
| |
| * [Change 387217](https://gerrit-review.googlesource.com/387217) |
| Fixed case where an exception in change visibility checking could break |
| visibility of all refs in that repo |
| |
| * [Change 377154](https://gerrit-review.googlesource.com/377154) |
| REST API supports cherry-pick using a registered secondary email |
| |
| * [Change 387055](https://gerrit-review.googlesource.com/387055) |
| SSH set-topic cmd is fixed to consider edit topic permission |
| |
| * [Change 387103](https://gerrit-review.googlesource.com/387103) |
| Avoid NullPointerException when deleting a single ref |
| |
| * [Change 387216](https://gerrit-review.googlesource.com/387216) |
| Fixed potential OOM due to SubmitRuleEvaluator creating new metrics whenever |
| an instance was created |
| |
| * [Change 387017](https://gerrit-review.googlesource.com/387017) |
| Fix NPE when `auth.httpDisplaynameHeader` is configured but header is unset |
| |
| * [Change 387054](https://gerrit-review.googlesource.com/387054) |
| `force topic edit`'` permission is fixed to work with change owner rule |
| |
| * [Change 386976](https://gerrit-review.googlesource.com/386976) |
| Fixed potential OOM due to \*QueryProcessor classes creating new metrics |
| whenever an instance was provided |
| |
| * [Change 386974](https://gerrit-review.googlesource.com/386974) |
| SSH command `set-reviewers` now handles lock failures with retries |
| |
| * [Change 386994](https://gerrit-review.googlesource.com/386994) |
| Fixed InactiveAccountDisconnector NPE due to race condition |
| |
| * [Change 386777](https://gerrit-review.googlesource.com/386777) |
| Allow modules to provide different logic for the HTTP canonicalWebUrl |
| |
| This is useful to allow adding some logic to the way the canonical Web URL is |
| computed. A use-case for this need is the `virtualhost` module, where the |
| canonical Web URL is replaced by a virtual host name instead [Change 386616](https://gerrit-review.googlesource.com/c/modules/virtualhost/+/386616) |
| |
| * [Change 383334](https://gerrit-review.googlesource.com/383334) |
| Allow to set instance ID from java system property |
| |
| * [Change 385556](https://gerrit-review.googlesource.com/385556) |
| Allow pagination using continuation token for 'list branches' |
| |
| * [Issue 295457464](https://crbug.com/gerrit/295457464) |
| SSH queries now show copied approvals on respective patch-sets |
| |
| * [Change 383955](https://gerrit-review.googlesource.com/383955) |
| Allow SubmitRequirement errors to be HTTP 500 errors |
| |
| * [Change 384096](https://gerrit-review.googlesource.com/384096) |
| Exposed default branch in GerritInfo |
| |
| * [Issue 296889346](https://crbug.com/gerrit/296889346) |
| Added placeholder text for "Default Branch" field in the create repo wizard |
| |
| * [Change 383034](https://gerrit-review.googlesource.com/383034) |
| List/Query projects: Set flag in last returned project when result is limited |
| |
| If the number of projects matching a query exceeds either the internal limit |
| or a supplied `limit` query parameter, the last project object has a |
| `_more_projects: true` JSON field set now. |
| |
| * [Change 382557](https://gerrit-review.googlesource.com/382557) |
| Added support for searching projects by substring |
| |
| The new `substring:SUBSTRING` predicate matches projects that have a name that |
| contains `SUBSTRING` (case-insensitive). |
| |
| * [Change 382295](https://gerrit-review.googlesource.com/382295) |
| Added support for querying projects by prefix. |
| |
| the new `prefix:PREFIX` predicate matches projects that have a name that |
| starts with `PREFIX`. |
| |
| * [Change 381915](https://gerrit-review.googlesource.com/381915) |
| Added support for matching all project by an empty project query |
| |
| * [Change 382258](https://gerrit-review.googlesource.com/382258) |
| Fixed setting parent field in project index for direct children of |
| All-Projects |
| |
| * [Change 381594](https://gerrit-review.googlesource.com/381594) |
| Added `response_format_options` param to `/review` API |
| |
| Allow specifying a list of formatting options to the |
| the `/changes/{change-id}/revisions/{revision-id}/review` endpoint. |
| |
| If `response_format_options` was provided, the response payload will contain a |
| new `change_info` field showing post-update change information formatted |
| by `response_format_options`. |
| |
| * [Change 380914](https://gerrit-review.googlesource.com/380914) |
| Fixed NPE when submitting changes |
| |
| * [Change 380916](https://gerrit-review.googlesource.com/380916) |
| Fixed ThreadMXBeanSun to only report allocated bytes when supported by the JVM |
| |
| * [Change 379054](https://gerrit-review.googlesource.com/379054) |
| Fixed create merge patch-set API to use identity of caller as committer |
| |
| * [Change 380314](https://gerrit-review.googlesource.com/380314) |
| Named queries are now supported on group refs |
| |
| You can now use `group` with the `query` predicate: `query:group="GROUP"` |
| |
| * [Change 379714](https://gerrit-review.googlesource.com/379714) |
| Named destinations are now supported on group refs |
| |
| You can now use `group` with the `destination` |
| predicate: `destination:group="GROUP"` |
| |
| * [Change 379513](https://gerrit-review.googlesource.com/379513) |
| Add `CustomKeyedValues` field to change index, requires schema upgrade |
| |
| * [Change 378999](https://gerrit-review.googlesource.com/37899) |
| Fail 'Get Diff' requests for file sizes that exceed 50Mb |
| |
| * [Change 378899](https://gerrit-review.googlesource.com/378899) |
| ApplyPatch: Do not fail with 500 ISE if no patch is provided |
| |
| * [Change 378535](https://gerrit-review.googlesource.com/378535) |
| Added config option that allows to disable change ID link footers |
| |
| Introduce the `receive.enableChangeIdLinkFooters` configuration to enables a |
| `Link` footer to be used as an alternative `Change-Id` footer. |
| |
| * [Change 376877](https://gerrit-review.googlesource.com/376877) |
| Add a new `parents_data` field in `RevisionInfo` |
| |
| The new field is a list of ParentInfo entities and provides more information |
| about the parent commit of the patch-set. |
| |
| * [Change 377174](https://gerrit-review.googlesource.com/377174) |
| Add `branch` as a new field in `RevisionInfo` |
| |
| The name of the target branch that this revision is set to be merged into. |
| |
| * [Change 375155](https://gerrit-review.googlesource.com/375155) |
| Fix GetRelated if multiple changes for the same commit exist |
| |
| * [Change 356465](https://gerrit-review.googlesource.com/356465) |
| Add API method for deleting self account |
| |
| * [Change 374995](https://gerrit-review.googlesource.com/374995) |
| Adding GET and POST requests for custom_keyed_values |
| |
| * [Change 374695](https://gerrit-review.googlesource.com/374695) |
| Add verbose version output |
| |
| provide noteDb and index versions, in addition to the Gerrit version |
| |
| * [Change 373997](https://gerrit-review.googlesource.com/373997) |
| Return 500 when a request is canceled due to an exceeded server deadline |
| |
| * [Change 373854](https://gerrit-review.googlesource.com/373854) |
| The commit-msg hook now detects existing `Link` trailers. |
| |
| An additional `$` was making detection of Link trailers to fail, causing Link |
| trailers to repeatedly be added when amending a commit. |
| |
| * [Change 370194](https://gerrit-review.googlesource.com/370194) |
| Add merge strategy to rebase REST API |
| |
| The strategy of the merge, can be `recursive`, `resolve`, |
| `simple-two-way-in-core`, `ours` or `theirs`, default will use project |
| settings. |
| |
| * [Change 362774](https://gerrit-review.googlesource.com/362774) |
| Adds a new footer for changes for key-value storage. |
| |
| These can be used to store metadata on a change. The format on the |
| change-message is for a given `<key>` `<value>` |
| is: `Custom-Values: <key>=<value>` |
| |
| * [Change 366776](https://gerrit-review.googlesource.com/366776) |
| Provide change number to patch set link plugins |
| |
| ## Test framework changes |
| |
| * [Change 392474](https://gerrit-review.googlesource.com/392474) |
| Add session support in FakeHttpServletRequest for tests |
| |
| * [Change 392454](https://gerrit-review.googlesource.com/392454) |
| Include HTTP testutil package in the Gerrit acceptance framework |
| |
| * [Change 392455](https://gerrit-review.googlesource.com/392455) |
| Fix FakeHttpServletRequest getRequestURI() returning query string |
| |
| * [Change 385115](https://gerrit-review.googlesource.com/385115) |
| Fixed updating and publishing draft comment on old patch set |
| |
| ## Plugin changes |
| |
| ## Performance changes |
| |
| * [Issue 309849905](https://crbug.com/gerrit/309849905): |
| Account external IDs are updated in a single commit |
| |
| * [Change 390919](https://gerrit-review.googlesource.com/390919) |
| Skip already reindexed changes during reindexing |
| |
| During online reindexing after an upgrade, all changes were reindexed, even if |
| they were already present in the new index. If the Gerrit instance was |
| restarted before the index was ready, this caused a lot of repeated indexing. |
| |
| Now, changes that are already present in the newest index version won't be |
| reindexed anymore. However, they will still be checked for staleness and |
| reindexed if necessary. |
| |
| * [Change 376094](https://gerrit-review.googlesource.com/376094) |
| Add cache to speedup ref advertisements (particularly on replicas) and |
| receive-pack |
| |
| * [Change 224772](https://gerrit-review.googlesource.com/224772) |
| Reduced memory and storage needs for TagSet |
| |
| * [Change 377814](https://gerrit-review.googlesource.com/377814) |
| Bloom filters are no longer built during offline reindex |
| |
| * [Change 380594](https://gerrit-review.googlesource.com/380594) |
| Reduced memory and storage needs for TagSet by using RoaringBitmaps |
| |
| ## Gerrit UI changes |
| |
| * [Change 389894](https://gerrit-review.googlesource.com/389894) |
| Track diff page sidebar state as a user preference |
| |
| * [Change 389700](https://gerrit-review.googlesource.com/389700) |
| Add a user preference for sidebar on the diff page |
| |
| * [Change 376934](https://gerrit-review.googlesource.com/376934) |
| Rebase can be performed using a secondary email via UI |
| |
| updates the UI to show a list of relevant emails to choose from when rebasing |
| a change. |
| |
| * [Issue 303075739](https://crbug.com/gerrit/303075739) |
| New frontend extension point: auth-link |
| |
| * [Change 387695](https://gerrit-review.googlesource.com/387695) |
| Show diff as User Suggested Edit Preview instead of code block |
| |
| * [Issue 301481564](https://crbug.com/gerrit/301481564) |
| Fix the repository configuration loading and rendering when switching tabs |
| |
| * [Change 382555](https://gerrit-review.googlesource.com/382555) |
| Introduce "showdiff" plugin event |
| |
| Any listeners are notified any time a diff is shown on the screen. |
| |
| * [Change 379095](https://gerrit-review.googlesource.com/379095) |
| Add diff page sidebar for plugins |
| |
| * [Change 378634](https://gerrit-review.googlesource.com/378634) |
| Experimental plugin endpoint for diff hover events |
| |
| * [Change 378436](https://gerrit-review.googlesource.com/378436) |
| Fix copying Change-Id in dropdown |
| |
| * [Change 373477](https://gerrit-review.googlesource.com/373477) |
| Fire `SHOW_CHANGE` event to plugins from diff page |
| |
| * [Change 394834](https://gerrit-review.googlesource.com/394834) |
| Fix auto-completion of suggested accounts for imported changes |
| |
| ## Documentation changes |
| |
| * [Change 391858](https://gerrit-review.googlesource.com/c/gerrit/+/391858): |
| Document `ChecksApi.updateResult()` in PolyGerrit plugins checks API |
| |
| * [Change 391696](https://gerrit-review.googlesource.com/c/gerrit/+/391696): |
| Document `check-result-expanded` plugin endpoint in PolyGerrit plugins checks API |
| |
| * [Change 390454](https://gerrit-review.googlesource.com/390454) |
| Document gerrit `set-head` SSH command and fix old UI references |
| |
| * [Change 388936](https://gerrit-review.googlesource.com/388936) |
| Explain in `ls-projects` SSH API when the "parent" field is "?-N" |
| |
| * [Change 388936](https://gerrit-review.googlesource.com/388530) |
| Explain in `/projects/` REST API when the "parent" field is "?-N" |
| |
| * [Change 387736](https://gerrit-review.googlesource.com/387736) |
| Be more explicit about using Bazelisk in dev docs |
| |
| * [Change 382794](https://gerrit-review.googlesource.com/382794) |
| Update blurb for `ldap.accountFullName` |
| |
| * [Change 378094](https://gerrit-review.googlesource.com/378094) |
| Add example for `GerritSiteHeader.html` |
| |
| * [Change 372854](https://gerrit-review.googlesource.com/372854) |
| Add example to blurb for `ldap.mandatoryGroup` |
| |
| ## JGit changes |
| |
| * [Change 387495](https://gerrit-review.googlesource.com/387495) |
| Bump JGit version to b6b1e0a0a. You can retrieve the full list of changes |
| with: |
| |
| ```shell |
| git log --no-merges --format=oneline 74fa245b3c3ccf13afcbec7911c7c8459e48527d..b6b1e0a0adda605f7a62c915d1aef606b961e36f |
| ``` |
| |
| notable changes are: |
| |
| * a2bce029a WorkingTreeIterator: directly filter input stream |
| * 642f16023 Use ShutdownHook to gracefully handle JVM shutdown |
| * d4d6c2b5a Add ShutdownHook to cleanup FileLocks on graceful JVM shutdown |
| * f94be665f Unregister ShutdownHook when GC#PidLock is closed |
| * 82c6638c7 RevertCommand: support for inserting a Gerrit change ID |
| * 7baa5a157 DfsPackFile: Record index loads only in one place |
| * 30427485d DfsPackfile: Emit the index load with the index object |
| * ba1653162 Ensure home directory not null before using in |
| Sshdsessionfactory |
| * 4f5afe9d7 CommitGraphWriter: Make the list of chunks immutable |
| * f90f0717a CommitGraphWriter: Assert written bytes |
| * c024cb23d Remove unused API problem filters |
| * 13c8dacae CommitGraphWriter: throw exception on unknown chunk |
| * fb51a2234 Document commit-graph options supported by JGit |
| * a2f326b76 Handle global git config $XDG_CONFIG_HOME/git/config |
| * e7a09e316 Introduce core.packedIndexGitUseStrongRefs config key |
| * 551ca93cc DfsGarbageCollector: provide commit graph stats |
| * 6f7333693 DfsGarbageCollector: put only GC commits into the commit graph |
| * b4b8f05ee DfsReader: Expose when indices are loaded |
| * 3a6eec9bb Express the explicit intention of creating bitmaps in GC |
| * ac8d7838f GC: prune all packfiles after the loosen phase |
| * c353645a0 Move footer-line parsing methods from RevCommit to FooterLine |
| * c8f5a3f99 RevCommitCG: Read changed-path-filters directly from commit |
| graph |
| * ec3d919aa Identify a commit that generates a diffEntry on a rename Event. |
| * f196c7a0e Pack: open reverse index from file if present |
| * 000e7caf5 PackReverseIndexV1: reverse index parsed from version 1 file |
| * 2eba4e5b4 PackReverseIndex: open file if present otherwise compute |
| * 8123dcd69 PackReverseIndex: verify checksums |
| * 7d2669587 ComputedPackReverseIndex: Clarify custom bucket sort algorithm |
| * 3b77e33ad CommitGraphWriter: add option for writing/using bloom filters |
| * 77aec6214 CommitGraphWriter: reuse changed path filters |
| * d3b40e72a RevWalk: use changed path filters |
| * ff0f7c174 CommitGraphLoader: read changed-path filters |
| * 49beb5ae5 CommitGraphWriter: write changed-path filters |
| * 23758d7a6 ssh: PKCS#11 support |
| * db08835c6 GC: Remove handling of extra pack for RefTree |
| * 760bdd09b DfsPackParser: Create object indices if config says so |
| * cb99ff5bb DfsInserter: generate object size index if config says so |
| * 4d2a003b9 DfsInserter: populate full size on object insertion |
| * 12a4a4cca DFSGarbargeCollector: Write object size indices |
| * 9dace2e6d DfsReader/PackFile: Implement isNotLargerThan using the obj size |
| idx |
| * 79b46a0ef Fix S3Repository getSize to handle larger object sizes |
| * 8e6197162 PackReverseIndex: separate out the computed implementation |
| * 74547f4a6 PackReverseIndex: use static builder instead of constructor |
| * 181b629f7 Gc#writePack: write the reverse index file to disk |
| * 6b3b2b33a GraphObjectIndex: fix search in findGraphPosition |
| * 2cbf0c177 Also add suppressed exception if unchecked exception occurs in |
| finally |
| * d0564cf8a UploadPack: Record negotiation stats on fetchV2 call |
| * ce88e62ed PackWriter: write the PackReverseIndex file |
| |
| ## Other dependency changes |
| |
| * [Change 388177](https://gerrit-review.googlesource.com/388177) |
| Update error_prone_annotations to 2.22.0 |
| |
| * [Change 372276](https://gerrit-review.googlesource.com/372276) |
| Update guice version to 6.0.0 |
| |
| * [Change 388038](https://gerrit-review.googlesource.com/388038) |
| Add java-prettify as git submodule |
| |
| * [Change 387998](https://gerrit-review.googlesource.com/387998) |
| Update gitiles version to 1.3.0 |
| |
| * [Change 387999](https://gerrit-review.googlesource.com/387999) |
| Update SSHD version to 2.10.0 |
| |
| * [Issue 302090044](https://crbug.com/gerrit/302090044): |
| Update plugins/download-commands |
| - 4eb9ae135 Add `--recurse-submodules` flag to supporting commands |
| |
| * [Change 336947](https://gerrit-review.googlesource.com/336947) |
| Upgrade guava to 32.1-jre |
| |
| * [Change 384754](https://gerrit-review.googlesource.com/384754) |
| Update plugins/replication |
| - f447543ba5 Avoid opportunity to inadvertently block the distributor |
| - 082c710e28 Reduced log level for Task deletion errors in MP setups |
| |
| * [Change 378434](https://gerrit-review.googlesource.com/378434) |
| Update Resemble to 5.0 |
| |
| * [Change 219455](https://gerrit-review.googlesource.com/219455) |
| Update Lucene version to 8.11.2 |
| |
| ## Other core changes |
| |
| * [Change 327739](https://gerrit-review.googlesource.com/327739) |
| Update Java language level to Java 17 per default |
| |
| ## Bugfix releases |