| --- |
| title: "Gerrit 3.8.x" |
| permalink: 3.8.html |
| hide_sidebar: true |
| hide_navtoggle: true |
| toc: true |
| --- |
| |
| Download: **[3.8.4](https://gerrit-releases.storage.googleapis.com/gerrit-3.8.4.war)** |
| | [3.8.3](https://gerrit-releases.storage.googleapis.com/gerrit-3.8.3.war) |
| | [3.8.2](https://gerrit-releases.storage.googleapis.com/gerrit-3.8.2.war) |
| | [3.8.1](https://gerrit-releases.storage.googleapis.com/gerrit-3.8.1.war) |
| | [3.8.0](https://gerrit-releases.storage.googleapis.com/gerrit-3.8.0.war) |
| |
| Documentation: **[3.8.4](https://gerrit-documentation.storage.googleapis.com/Documentation/3.8.4/index.html)** |
| | [3.8.3](https://gerrit-documentation.storage.googleapis.com/Documentation/3.8.3/index.html) |
| | [3.8.2](https://gerrit-documentation.storage.googleapis.com/Documentation/3.8.2/index.html) |
| | [3.8.1](https://gerrit-documentation.storage.googleapis.com/Documentation/3.8.1/index.html) |
| | [3.8.0](https://gerrit-documentation.storage.googleapis.com/Documentation/3.8.0/index.html) |
| |
| ## Release highlights |
| |
| ### Rebase on behalf of the uploader |
| |
| Rebasing a change from the web UI preserves the uploader for trivial rebases. |
| |
| This has the advantage that the rebaser is not taking over the change, which is |
| important when the project is configured to ignore self-approvals of the |
| uploader, as this allows the reviewer to approve and submit the change, after |
| doing a rebase. |
| |
| ### Rebase a chain of changes |
| |
| Allow to atomically rebase a chain of changes. |
| |
| If the chain is outdated, i.e., there's a change that depends on an old revision |
| of its parent, the result is the same as individually rebasing all outdated |
| changes on top of their parent's latest revision. |
| |
| ### Browser Notifications (experimental) |
| |
| Users can be notified about their attention set in browser. The notifications work |
| only when Gerrit is open in one of the browser tabs. When users open Gerrit, they |
| will be asked by a popup to allow desktop notifications on their browser to see them. |
| If users deny notifications on all sites, there won’t be a popup. But they can change |
| it in browser settings. The latency to get the notification is up to 5 minutes. |
| |
| Automatic notifications are enabled by default, but users can turn them off in the |
| Gerrit user preferences. |
| |
| See the |
| [documentation](https://gerrit-review.googlesource.com/Documentation/user-attention-set.html#_browser_notifications) |
| for more details. |
| |
| This feature can be enabled in `gerrit.config` by adding this configuration: |
| |
| ```sh |
| [experiments] |
| enabled = UiFeature__push_notifications |
| ``` |
| |
| ### Edit URL |
| |
| Users can create a change and open a file for edit in that change using an Edit |
| URL. This enables other tools to provide a URL that directly opens an edit of |
| specific files. |
| |
| See the |
| [documentation](https://gerrit-review.googlesource.com/Documentation/user-inline-edit.html#create_from_url) |
| for more details. |
| |
| ## Important notes |
| |
| ### Schema and index changes |
| |
| This release doesn't contain schema changes. |
| |
| The `changes` index version has been increased to version _82_. |
| |
| ### Online index schema upgrade from 3.7 |
| By default, if you're upgrading from 3.7, 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 version you don't need to run reindex (see |
| `Online index schema upgrade from 3.7` above). If you still want to you will |
| only need to run reindex of `changes`: |
| |
| ```sh |
| java -jar gerrit.war reindex --index changes -d site_path |
| ``` |
| |
| * If you are upgrading from a 3.6 version, 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.8.0/pgm-reindex.html) |
| program for other options. |
| |
| 6. Start Gerrit |
| |
| ### Online upgrade with zero-downtime |
| |
| Gerrit v3.8.x supports zero-downtime upgrade from Gerrit v3.7.2 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.2 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.8.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.x release is possible, but requires the |
| following manual steps: |
| |
| 1. Shutdown all migrated Gerrit v3.8.x servers |
| 2. Update the gerrit.war and plugins to the previous v3.7.x 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 --index changes -d site_path |
| ``` |
| |
| 4. Startup Gerrit server |
| |
| ### Native packaging |
| |
| * GerritForge RPM repository updated for arm64 architecture |
| |
| [GerritForge RPM v1.4](https://gerritforge.com/gerritforge-repo-1-4.noarch.rpm) |
| has been released, including the native packages for arm64 architecture. |
| |
| * [DockerHub images for arm64|amd64 architectures](https://hub.docker.com/r/gerritcodereview/gerrit/tags?page=1&name=3.8.0) |
| * [gerrit:3.8.0-almalinux8](https://hub.docker.com/r/gerritcodereview/gerrit/tags?page=1&name=3.8.0-almalinux8) |
| OS base image upgraded to [AlmaLinux 9.1](https://wiki.almalinux.org/release-notes/9.1.html) |
| |
| * [gerrit:3.8.0-ubuntu22](https://hub.docker.com/r/gerritcodereview/gerrit/tags?page=1&name=3.8.0-ubuntu22) |
| OS base image upgraded to [Ubuntu 22](https://discourse.ubuntu.com/t/jammy-jellyfish-release-notes/24668) |
| |
| ### Update gerrit.reportBugUrl configuration |
| |
| The issues of the Gerrit Code Review project have been migrated from |
| Monorail into the new Gerrit Tracker, see announcement at: |
| https://groups.google.com/g/repo-discuss/c/F4havFh_Bvw/m/D5MsV17yAgAJ |
| |
| If the [gerrit.reportBugUrl](https://gerrit-review.googlesource.com/Documentation/config-gerrit.html#gerrit.reportBugUrl) |
| setting on your Gerrit server is pointing to the Gerrit Monorail project, which |
| is deprecated now, please update the URL to point to the new Gerrit Tracker, |
| e.g. change https://bugs.chromium.org/p/gerrit/issues/entry?template=Bug+Report |
| to https://issues.gerritcodereview.com/issues/new. |
| |
| ### Known issues |
| |
| * [Issue 309098227](https://issues.gerritcodereview.com/issues/309098227) [Change 360646](https://gerrit-review.googlesource.com/360646): |
| The introducion a per request ref cache for better performance may break |
| the repository consistency |
| |
| The addition of a new `core.usePerRequestRefCache` setting, true by |
| default, introduced a per request (currently per request thread) ref |
| cache, helping reduce the overhead of checking if the packed-refs file |
| was outdated. However, in some scenarios, such as multi-site or |
| concurrency between `git-receive-pack` and `git-gc`, it may lead to |
| split-brain inconsistencies and, in the worst-case scenario, to the |
| corruption of the underlying repository. |
| |
| * [Issue 40015537](https://issues.gerritcodereview.com/issues/40015537): |
| Gerrit does not render properly the modal dialogs on Safari 15.3, Chrome 36, Edge 78, and Firefox 97 |
| or earlier. |
| |
| Gerrit frontend uses the [HTMLDialogElement.showModal](https://developer.mozilla.org/en-US/docs/Web/API/HTMLDialogElement/showModal) |
| function, which is not working properly on old browsers. |
| |
| ### Breaking changes |
| |
| * [Change 365595](https://gerrit-review.googlesource.com/365595): |
| WebLinkInfo: Drop deprecated constructor |
| |
| Custom UI plugins that are explicitly using `WebLinkInfo` are affected by this |
| and might need adapting. |
| |
| * [Change 360756](https://gerrit-review.googlesource.com/360756): |
| Disallow uploading new prolog rules files. |
| |
| Clients should use submit-requirements instead. Please note that |
| modifications and deletions of existing rules.pl files are still |
| allowed. |
| |
| * [Change 360054](https://gerrit-review.googlesource.com/360054): |
| Allow callers to format create change response |
| |
| Add `ListChangeOptions` to `ChangeInput` and `ApplyPatchPatchSetInput` such that |
| callers can control what fields should be formatted in the returned ChangeInfo. |
| For ApplyPatch, this commit changes the default formatting options from |
| `CURRENT_COMMIT` to `no-options`. |
| |
| * [Change 360219](https://gerrit-review.googlesource.com/360219): |
| Delete vote now fails for an already deleted vote |
| |
| An e-mail was sent each time when a vote was executed, even if the label had |
| been already set to 0 and thus no actual changes were made. |
| |
| This fix can break some scenarios, where the caller expects that DeleteVoteOp |
| will always succeed after the label was added at least once. This should be |
| fixed on the caller side. |
| |
| * [Change 358975](https://gerrit-review.googlesource.com/358975): |
| Skip account visibility checks when querying changes |
| |
| Skipping the account visibility check when querying changes of users |
| participating in the change (the change owner, reviewers, CCs etc.). This |
| affects several search predicates: `owner` / `uploader` / `label` |
| + `user` / `reviewer` / `attention` |
| / `commentby` |
| |
| * [Change 358954](https://gerrit-review.googlesource.com/358954): |
| Check permissions when resolving accounts by secondary emails |
| |
| fixed an issue that allowed users to resolve secondary emails, although they |
| should not have been able to see them. |
| |
| * [Change 358114](https://gerrit-review.googlesource.com/358114): |
| removed automatic linkification of URLs that do not start with `http://` or |
| `https://`. |
| |
| * [Change 357298](https://gerrit-review.googlesource.com/357298): |
| Removed Assignee functionality in Gerrit. |
| |
| 'Assignee' functionality has been superseded by 'Attention Set'. The |
| functionality has no Web UI support anymore. |
| |
| * [Change 357276](https://gerrit-review.googlesource.com/357276): |
| Removed option to disable Attention Set |
| |
| No longer support the option of disabling the Attention Set. |
| |
| * [Change 356941](https://gerrit-review.googlesource.com/356941): |
| Do not set `real_author` in ChangeMessageInfo if `author` == `real_author` |
| |
| It's not needed to return the author twice if the change message was not |
| impersonated. Documentation already stated this, but clients should double check |
| they don't rely on `real_author` always being returned. |
| |
| * [Change 354916](https://gerrit-review.googlesource.com/354916): |
| Remove registerStyleModule() plugin API |
| |
| Use `plugin.styleApi().insertCSSRule()` instead. |
| |
| * [Change 351814](https://gerrit-review.googlesource.com/351814): |
| Remove `notify()` from AnnotationPluginApi |
| |
| * [Change 351515](https://gerrit-review.googlesource.com/351515): |
| Remove html commentlink functionality. |
| |
| Html commentlinks allow for arbitrary html injection on the page. Replaced |
| them with link commentlinks, using optional `prefix`, `suffix`, `text` |
| parameters to achieve the same functionality. Existing configs can be migrated |
| using scripts in `tools/migration/html_to_link_commentlink.md` |
| |
| ### Other changes |
| |
| ## Plugin changes |
| |
| * download-commands: |
| * [Change 365142](https://gerrit-review.googlesource.com/365142): |
| Only chmod if commit-msg hook was fetched successfully |
| * [Change 362879](https://gerrit-review.googlesource.com/362879): |
| Allow to hide download schemes in the UI |
| * [Change 359976](https://gerrit-review.googlesource.com/359976): |
| Consistently use `git rev-parse` to find hooks-dir |
| * [Change 359823](https://gerrit-review.googlesource.com/359823): |
| Always use HTTP when downloading commit-msg hook |
| * reviewnotes: |
| * [Change 365655](https://gerrit-review.googlesource.com/365655): |
| Add comment count to review notes. |
| * webhooks: |
| * [Change 365175](https://gerrit-review.googlesource.com/365175): |
| Add HTTP response code 'SC_ACCEPTED' (202) as success case in response handler |
| * codemirror-editor: |
| * [Change 361395](https://gerrit-review.googlesource.com/361395): |
| Add support for dark mode |
| * [Change 363002](https://gerrit-review.googlesource.com/363002): |
| Add support for light mode |
| * [Change 360836](https://gerrit-review.googlesource.com/360836): |
| Update CodeMirror to V6 |
| * gitiles: |
| * [Change 356473](https://gerrit-review.googlesource.com/356473): |
| * Update gitiles to 1.1.0. [Changelog](https://gerrit.googlesource.com/gitiles/+log/v1.0.0..v1.1.0?no-merges) |
| * Update commonmark to 0.21.0. [Changelog](https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.10.0...commonmark-parent-0.21.0) |
| * [Change 347214](https://gerrit-review.googlesource.com/347214): |
| Don't depend on update ACL to create a branch |
| |
| * replication: |
| * [Change 353294](https://gerrit-review.googlesource.com/353294): |
| Provide an option to skip replication of NoteDb meta refs |
| |
| Replicating NoteDb meta refs is not needed when the remote does not run a |
| Gerrit instance. This can be now disabled |
| via `remote.<NAME>.replicateNoteDbMetaRefs` |
| |
| ## Performance changes |
| |
| * [Change 360646](https://gerrit-review.googlesource.com/360646): |
| Introduce a per request ref cache for better performance |
| |
| Add a new `core.usePerRequestRefCache` setting. If the setting is true, use a |
| per request (currently per request thread) |
| ref cache. This helps reduce the overhead of checking if the packed-refs file |
| is outdated. This setting is true by default. |
| |
| * [Change 365144](https://gerrit-review.googlesource.com/365144): |
| Destination queries now use the change index |
| |
| `destination` predicate now matches any number of branch names with O(1) |
| efficiency. |
| |
| * [Issue 16072](https://bugs.chromium.org/p/gerrit/issues/detail?id=16072): |
| Fix "showchange" plugin event being triggered twice on patchset change |
| |
| * [Change 363074](https://gerrit-review.googlesource.com/363074): |
| Performance optimization for cold-cache groups |
| |
| ## Gerrit UI changes |
| |
| * [Change 370995](https://gerrit-review.googlesource.com/370995): |
| Add comments chips to patchset select |
| |
| * [Change 361574](https://gerrit-review.googlesource.com/361574): |
| Add darkMode param to gr-editor-view extension point |
| |
| * [Change 358179](https://gerrit-review.googlesource.com/358179): |
| Add a new endpoint for a profile page |
| |
| The goal of this endpoint is to show a new page that's the contributions' page |
| of a user. |
| |
| * [Change 360134](https://gerrit-review.googlesource.com/360134): |
| Fix "Old Patchset" being displayed on current edits |
| |
| * [Change 359814](https://gerrit-review.googlesource.com/c/gerrit/+/359814): |
| User can rebase whole chain from UI. |
| |
| * [Issue 16545](https://bugs.chromium.org/p/gerrit/issues/detail?id=16545): |
| Fix issue where using in-line editor to add new files / edit existing files |
| didn't show the changes in file list |
| |
| * [Change 349422](https://gerrit-review.googlesource.com/349422): |
| Privacy information on settings page |
| |
| * [Change 354154](https://gerrit-review.googlesource.com/354154): |
| Enter key selects emoji after ':' is typed |
| |
| The previous behavior was that enter wouldn't select emojis until more |
| characters were typed after ':'. |
| |
| * [Change 352682](https://gerrit-review.googlesource.com/352682): |
| Matching atoms in copy conditions that are posted as change messages are |
| highlighted in bold now. |
| |
| When a new patch set is created and approvals are copied to the new patch set, |
| Gerrit posts a change message to inform about the copied and outdated votes |
| together with the corresponding copy condition. Passing and failing atoms in |
| the copy condition are now highlighted in bold. |
| |
| * [Change 351934](https://gerrit-review.googlesource.com/351934) |
| Comments tab respects special file sorting cases like .h |
| |
| * [Change 348877](https://gerrit-review.googlesource.com/348877): |
| Show account hovercard preview on settings page |
| |
| Account preview can be displayed in-flow without requiring hovering |
| |
| * [Change 348794](https://gerrit-review.googlesource.com/348794): |
| Account chip preview on settings page |
| |
| This lets the user see how they will appear to others and what data will |
| be public. |
| |
| * [Change 348536](https://gerrit-review.googlesource.com/348536): |
| Removed all hardcoded gr-icons. |
| |
| All core plugins have been migrated to using Material-based gr-icon which no |
| longer need these hardcoded SVGs. |
| |
| * [Change 353058](https://gerrit-review.googlesource.com/c/gerrit/+/353058) |
| Add a route and a dialog for creating a change directly from the URL. |
| |
| ## Documentation changes |
| |
| * [Change 361696](https://gerrit-review.googlesource.com/361696): |
| Remove prolog rules doc page mention from the index page |
| |
| users should use submit-requirements instead of prolog rules |
| |
| * [Change 348538](https://gerrit-review.googlesource.com/348538): |
| Improve Polygerrit README |
| |
| * [Change 340255](https://gerrit-review.googlesource.com/340255): |
| Add a shortcut to Developer Setup |
| |
| ## JGit changes |
| |
| * Upgrade jgit to 5ae8d28. Notable changes are: |
| - Implement a snapshotting RefDirectory for use in request scope |
| - If tryLock fails to get the lock another gc has it |
| - Fix GcConcurrentTest#testInterruptGc |
| - Don't swallow IOException in GC.PidLock#lock |
| - Check if FileLock is valid before using or releasing it |
| - Use Java 11 ProcessHandle to get pid of the current process |
| - UploadPack: use allow-any-sha1-in-want configuration |
| - Acquire file lock "gc.pid" before running gc |
| - Fix getPackedRefs to not throw NoSuchFileException |
| - Add pack options to preserve and prune old pack files |
| - Allow to perform PackedBatchRefUpdate without locking loose refs |
| - Document option "core.sha1Implementation" introduced in 59029aec |
| - Shortcut during git fetch for avoiding looping through all local refs |
| - FetchCommand: fix fetchSubmodules to work on a Ref to a blob |
| - Allow the exclusions of refs prefixes from bitmap |
| - PackWriterBitmapPreparer: do not include annotated tags in bitmap |
| - BatchingProgressMonitor: avoid int overflow when computing percentage |
| - Fetch-CLI: add support for shallow |
| - Speedup GC listing objects referenced from reflogs |
| - Fixes for multi-primary new loose object reads on NFS |
| - GC: disable writing commit-graph for shallow repos |
| - Introduce core.trustPackedRefsStat config |
| - Add TernarySearchTree |
| - CommitGraph: teach ObjectReader to get commit-graph |
| - PatchApplier: fix handling of last newline in text patch |
| - CommitGraph: add commit-graph for FileObjectDatabase |
| - IO#readFully: provide overload that fills the full array |
| - GC: Write commit-graph files when gc |
| - CommitGraph: add core.commitGraph config |
| - CommitGraph: implement commit-graph read |
| - Gc#deleteOrphans: avoid dependence on PackExt alphabetical ordering |
| - WalkPushConnection: Sanitize paths given to transports |
| - Fix documentation for core.trustFolderStat |
| - Update jetty to 10.0.13 d |
| - PackExt: Add a commit graph extension. |
| - UploadPackServlet#doPost use try-with-resource to ensure up is closed |
| - Update Apache Mina SSHD to 2.9.2 |
| - Fix crashes on rare combination of file names |
| - DfsBlockCache: Report IndexEventConsumer metrics for reverse indexes. |
| - DfsStreamKey: Replace ForReverseIndex to separate metrics. |
| - RawText.isBinary(): handle complete buffer correctly |
| - PackExt: Add a reverse index extension. |
| |
| ## Other dependency changes |
| |
| * [Change 345774](https://gerrit-review.googlesource.com/345774): |
| Upgraded bouncycastle to 1.72 |
| |
| * [Change 355597](https://gerrit-review.googlesource.com/355597): |
| Upgraded commons-codec to 1.15 |
| |
| * [Change 355294](https://gerrit-review.googlesource.com/355294): |
| Upgraded jsoup to 1.14.3 |
| |
| * [Change 335738](https://gerrit-review.googlesource.com/335738): |
| Upgrade sshd version to 2.9.2 and mina-core to 2.0.23 |
| |
| * [Change 312716](https://gerrit-review.googlesource.com/312716): |
| Update Jetty to 9.4.49.v20220914 |
| |
| ## Other core changes |
| |
| * [Change 367654](https://gerrit-review.googlesource.com/367654) |
| Fixed rebasing chain when a checks refs exists for one of the changes |
| |
| Fixed a NPE that might have been thrown when rebasing on changes for which |
| a `checks` ref exists. |
| |
| * [Change 366334](https://gerrit-review.googlesource.com/366334) |
| Added 'a' as alias for the 'author' search operator |
| |
| This follows the example of other aliases, e.g. 'o' for 'owner' or 'r' for ' |
| reviewer'. |
| |
| * [Change 365901](https://gerrit-review.googlesource.com/365901) |
| Added global capability that allows to view secondary emails |
| |
| If users have multiple emails only the preferred email is visible to other |
| users. Now, with the new `View Secondary Emails` |
| global capability it's possible to allow viewing all emails. |
| |
| * [Change 361460](https://gerrit-review.googlesource.com/361460) |
| Allow editing commit message from Change-Id: to Link: footer |
| |
| This allows to edit the commit message by replacing a valid 'Change-Id:' |
| footer for a valid 'Link:' footer. |
| |
| * [Change 350455](https://gerrit-review.googlesource.com/350455): |
| Enables transition from LDAP to Google OAuth |
| |
| When transitions to Google OAuth from LDAP, if the account exists with the |
| same e-mail then the account ID is reused. This allows to have the same user |
| history post migration. |
| |
| * [Change 359974](https://gerrit-review.googlesource.com/359974): |
| Fixed calculation of insertions and change buckets for change emails |
| |
| When computing change email, the number of files, insertions and deletions |
| didn't count the commit message for number of files, but for insertions the |
| lines from the commit message were counted, which was inconsistent. |
| |
| * [Change 358115](https://gerrit-review.googlesource.com/358115): |
| Allow for plugin data directory to be symlinked |
| |
| * [Change 357648](https://gerrit-review.googlesource.com/357648): |
| Don't add owner to attention set on merged change if bot re-applies a negative vote |
| |
| Bots can no longer re-apply negative votes on merged change, leading to an |
| unwanted attention set update. |
| |
| * [Change 357477](https://gerrit-review.googlesource.com/357477): |
| Added a new 'uploaderemail:<pattern>' operator for Submit Requirements |
| |
| returns true if the uploader's email matches a specific regular expression |
| pattern. |
| |
| * [Change 357474](https://gerrit-review.googlesource.com/357474): |
| Added a new 'committeremail:<pattern>' operator for Submit Requirements |
| |
| returns true if the change committer's email matches a specific regular |
| expression pattern. |
| |
| * [Change 357460](https://gerrit-review.googlesource.com/357460): |
| Fixed `ownerin/uploaderin` for internal groups that include external groups |
| |
| Fixed an issue where the `ownerin` and `uploaderin` predicates were not matching |
| correctly for internal groups that include external groups. |
| |
| * [Change 350034](https://gerrit-review.googlesource.com/350034): |
| The commit-msg hook respects the scissors marker for the empty message detection. |
| |
| When "git commit --cleanup=scissors" the commit-msg hook couldn't detect if |
| the commit message is empty properly. |
| |
| * [Change 357278](https://gerrit-review.googlesource.com/357278): |
| Fixed parsing of URL parameters that contain a '%' that is not part of an encoded character |
| |
| Without this fix users could trigger 500 internal server errors in Gerrit by |
| providing invalid strings for URL parameters. |
| |
| * [Change 356762](https://gerrit-review.googlesource.com/356762): |
| Added support for rebasing on behalf of the uploader |
| |
| Rebasing a change on behalf of the uploader means that the uploader stays |
| intact when the reviewer rebases the change. |
| |
| * [Change 356354](https://gerrit-review.googlesource.com/356354): |
| Added project permission for removing votes/labels |
| |
| For every configured label `My-Name` in the project, there is a |
| corresponding permission `removeLabel-My-Name` with a range corresponding to |
| the defined values. For these values, the users are permitted to remove |
| other users' votes from a change. |
| |
| * [Change 356260](https://gerrit-review.googlesource.com/356260): |
| Fixed overriding impersonated votes |
| |
| Fix an issue where overriding an impersonated vote for a user A (real user B) |
| only worked if the voting values were different. If the voting value was the |
| same Gerrit wrongly assumed that the voting was a no-op. |
| |
| * [Change 355574](https://gerrit-review.googlesource.com/355574): |
| Added support to remove a non-visible account as a reviewer through the |
| PostReview REST endpoint |
| |
| Fix an issue where, if a visible change had a reviewer whose account was not |
| visible, this account could be seen on the change, but the reviewer could not |
| be removed. |
| |
| * [Change 351075](https://gerrit-review.googlesource.com/351075): |
| Added a REST API to rebase a chain of changes |
| |
| A new API `POST /changes/{change-id}/rebase:chain` now allows to rebase an |
| ancestry chain of changes. |
| |
| * [Change 355116](https://gerrit-review.googlesource.com/355116): |
| Added `prefixsubject` index field (requires index upgrade) |
| |
| Similarly to `prefixhashtag` and `prefixtopic` it is not possible to search |
| changes by subject prefix (e.g. a bug ID in square brackets). |
| |
| * [Change 354294](https://gerrit-review.googlesource.com/354294): |
| Custom git gc-preserve command which can preserve packs for JGit |
| |
| Implemented a custom git command "git-gc-preserve" preserving old packs |
| to prevent races between git gc running on a large repository |
| concurrently to fetch/clone requests. |
| |
| * [Change 354037](https://gerrit-review.googlesource.com/354037): |
| Added `subject` index field (requires index upgrade) |
| |
| Allow to query changes by subject. |
| |
| * [Change 353674](https://gerrit-review.googlesource.com/353674): |
| Invalid label ranges for permissions are rejected when pushing a project.config file |
| |
| Attempting to add permissions with a range where `min` is greater than `max`, |
| where `min` is present but `max` is missing or vice-versa throws |
| an `IllegalArgumentException`. |
| |
| * [Change 353635](https://gerrit-review.googlesource.com/353635): |
| Set Access REST endpoint rejects invalid label ranges |
| |
| * [Change 353655](https://gerrit-review.googlesource.com/353655): |
| Do not add a duplicated project.config entry if a duplicate input is added. |
| |
| When the same request was made to the 'Set Access' project rest endpoint, it |
| resulted in adding a duplicated line in the project.config. |
| |
| * [Change 353287](https://gerrit-review.googlesource.com/353287): |
| Votes that are copied to follow-up patch sets when a vote on an outdated patch |
| set is applied are now posted as a change message. |
| |
| When votes were copied to follow-up patch sets they were applied in NoteDb, but |
| users were not informed about them. Now a change message is posted to inform |
| that the vote was copied forward. |
| |
| * [Change 352055](https://gerrit-review.googlesource.com/352055): |
| Reject invalid base on push with proper error message instead of failing with |
| an internal server error |
| |
| * [Change 352034](https://gerrit-review.googlesource.com/352034): |
| Fix GetRelated if multiple changes for the same commit exist |
| |
| * [Change 351534](https://gerrit-review.googlesource.com/351534): |
| Fix the issue that 404 page is shown after login |
| |
| After logging in using the "Sign in with a Launchpad ID" link Gerrit used to |
| display a "not found" page. |
| |
| * [Change 351614](https://gerrit-review.googlesource.com/351614): |
| Do not require trailing slash for requests on root collections |
| |
| Often users are confused why 'GET /changes/' works, but 'GET /changes' doesn't. |
| Both are now allowed. |
| |
| * [Change 347719](https://gerrit-review.googlesource.com/347719): |
| Suppressing emails on submit is disallowed now if there is a post approval diff |
| |
| Fixes a security issue where a malicious user could submit code changes |
| without anyone ever seeing them. If a change is submitted and a post approval |
| diff exists, no matter which notify setting the caller specified, Notify=ALL |
| is used. |
| |
| * [Change 351114](https://gerrit-review.googlesource.com/351114): |
| Add support for enabling Strict Dynamic CSP on Documentation pages. |
| |
| * [Change 349175](https://gerrit-review.googlesource.com/349175): |
| Disallow 'cansee' account search operator with private changes |
| |
| This operator used to fail for private changes if the change owner requested |
| `cansee:<private_change>`. Now, if the caller of the query is the owner or one |
| of the reviewers/ccs of the change, the query returns account data for it. |
| |
| * [Change 349216](https://gerrit-review.googlesource.com/349216): |
| Add a `has:submodule-updates` operator for submit requirements |
| |
| Returns true if the diff of the latest patchset against the default base has a |
| submodule modified file |
| |
| * [Change 347936](https://gerrit-review.googlesource.com/347936): |
| Reject uploading project config changes if they contain duplicate submit |
| requirement definitions. |
| |
| Prevent project owners and admins from accidentally adding multiple definitions |
| for the same submit requirement name. |
| |
| * [Change 246234](https://gerrit-review.googlesource.com/246234): |
| The WorkQueue now uses new STARTING and STOPPING states while a listener's |
| onStart() and onStop() methods are called. |
| |
| * [Change 346954](https://gerrit-review.googlesource.com/346954): |
| Log progress for online-reindexing of changes |
| |
| When performing online reindexing, from the log file we could only observe |
| when it starts and when it ends. With this change we log the progress once per |
| minute. |
| |
| * [Change 340061](https://gerrit-review.googlesource.com/340061): |
| Add old/new file modes to the 'List Files' diff endpoint |
| |
| if a file is modified with a change to the file mode only, now the file will be |
| listed as modified. |
| |
| * [Change 245614](https://gerrit-review.googlesource.com/245614): |
| Added a WorkQueue.TaskListener extension for plugins |
| |
| This extension point makes it possible for plugins to define and implement |
| WorkQueue QOS policies. |
| |
| ## Bugfix releases |
| |
| ### 3.8.4 |
| |
| * Breaking changes |
| |
| * [Change 404018](https://gerrit-review.googlesource.com/c/gerrit/+/404018): |
| Add option to populate 'starred' field for change queries. |
| |
| A `star` option can now be provided to include the `starred` field in |
| `ChangeInfo`, which indicates if the change is starred by the current user or not. |
| |
| * New Features |
| |
| * [Change 406237](https://gerrit-review.googlesource.com/c/gerrit/+/406237): |
| Add metrics for `git/upload-pack/bitmap_index_misses_count` and a separate one for missing bitmap indexes. |
| |
| JGit packer tracks the number of times that an object was not |
| found in the bitmap index or if the bitmap index was completely |
| missing. |
| Added the `git/upload-pack/bitmap_index_misses_count` for being used |
| in performance graphs, while the `git/upload-pack/no_bitmap_index` |
| should be more suitable for alerts. |
| |
| * [Change 406004](https://gerrit-review.googlesource.com/c/gerrit/+/406004): |
| Add timer for git/upload-pack/phase_searching_for_* phases. |
| |
| Add metrics for the "Finding sources" phase, which is critical for an optimal |
| Git/HTTP performance. |
| |
| * [Change 402497](https://gerrit-review.googlesource.com/c/gerrit/+/402497): |
| Introduce configurable shutdown timeout |
| |
| Added `container.shutdownTimeout` to configure the maximum time (in seconds) |
| to wait before terminating Gerrit. |
| |
| * [Change 404718](https://gerrit-review.googlesource.com/c/gerrit/+/404718): |
| Add timer for `git/upload-pack/phase_negotiating`. |
| |
| Added the `git/upload-pack/phase_negotiating` so that the Gerrit admin |
| can graph how these are performing and spot any potential issues. |
| JGit packer tracks time spent in the negotiation phase. |
| This statistic was only exposed in the sshd_log and is not available |
| when the client uses Git/HTTP. |
| |
| * [Change 393037](https://gerrit-review.googlesource.com/c/gerrit/+/393037): |
| Bazel: Add support for BuildBuddy RBE provider. |
| |
| BuildBuddy provides an open-core suite of enterprise features for Bazel. |
| |
| * Performance Fixes |
| |
| * [Change 392634](https://gerrit-review.googlesource.com/c/gerrit/+/392634): |
| Improved performance for conflicts: operator and other mergeability |
| checks when submit type is `Merge-If-Necessary`. |
| |
| * Bug Fixes |
| |
| * [Change 395016](https://gerrit-review.googlesource.com/c/gerrit/+/395016) |
| Fixed NPE when submitting changes. |
| |
| * [Issue 314113030](https://issues.gerritcodereview.com/issues/314113030): |
| Fail the change reindex operation upon StorageException(s). |
| |
| Allows some of the indexing operations to fail, so that if a change indexing |
| throws a `StorageException`, so that the change does not disappear |
| from the index. |
| |
| * [Change 395741](https://gerrit-review.googlesource.com/c/gerrit/+/395741): |
| Fix event parse exception when changing repository HEAD. |
| |
| Explicitly registered a type and class for `ProjectHeadUpdatedEvent` in `EventType` |
| in order to successfully deserialize events. |
| |
| * [Issue 318745940](https://issues.gerritcodereview.com/issues/318745940): |
| Fix serverId in identity parsing for imported human comments. |
| |
| Remapping of account-ids correctly adapts the comment's author account-ids |
| and `serverId` fixing the inconsistent identity of the comments. |
| |
| * [Change 404937](https://gerrit-review.googlesource.com/c/gerrit/+/404937): |
| Fix copyable change links when base URL has a path. |
| |
| Removed extra base URL prefix in `gr-copy-links`. The links are crafted from |
| createChangeUrl which already returns an URL with the base URL. |
| |
| * [Issue 311925527](https://issues.gerritcodereview.com/issues/311925527): |
| Fix canonical web url binding in Git over HTTP. |
| |
| Fix a problem encountered in the `virtualhost` plugin, where |
| despite proper configuration for tenant canonical web URL, the git push |
| output would use the value of `gerrit.canonicalWebUrl` configuration option. |
| |
| * Dependency Updates |
| |
| * [Change 403721](https://gerrit-review.googlesource.com/c/gerrit/+/403721): |
| Bump SSHD version to 2.12.0 with security fix for [CVE-2023-48795](https://nvd.nist.gov/vuln/detail/CVE-2023-48795) |
| |
| * JGit changes |
| |
| * [Change 391575](https://gerrit-review.googlesource.com/c/gerrit/+/391575): |
| Update JGit to acf21c0bc6a63a3d20fca92757b992a1f2d55f41. |
| |
| You can retrieve the full list of changes with: |
| |
| ```shell |
| git log --no-merges --format=oneline 74fa245b3..acf21c0bc |
| ``` |
| |
| notable changes are: |
| |
| * acf21c0bc RefDirectory: Do not unlock until after deleting loose ref |
| * 29c89d1f0 SnapshottingRefDirectory: Invalidate snapshot after locking ref for update |
| * 747618358 Improve handling of NFS stale handle errors |
| * ca54c5176 Fix handling of missing pack index file |
| * b4c66104f Introduce a PriorityQueue sorting RevCommits by commit timestamp |
| * e712b4716 Make sure ref to prune is in packed refs |
| * 170244d05 Checkout: better directory handling |
| * 244165fc5 Remove unused API problem filters |
| * f103a1d5c Add support for git config repack.packKeptObjects |
| * f5f4bf0ad Do not exclude objects in locked packs from bitmap processing |
| * 3a6eec9bb Express the explicit intention of creating bitmaps in GC |
| * ac8d7838f GC: prune all packfiles after the loosen phase |
| * f6928f573 Revert "RefDirectory: Throw exception if CAS of packed ref list fails" |
| * 6b3b2b33a GraphObjectIndex: fix search in findGraphPosition |
| * 0f7d485bc Remove unused API filters |
| * 43954ea62 [releng] API filter for PackIndex.DEFAULT_WRITE_REVERSE_INDEX |
| * 2c89a3ec7 PackExt: add a #getTmpExtension method |
| * d0564cf8a UploadPack: Record negotiation stats on fetchV2 call |
| * ce88e62ed PackWriter: write the PackReverseIndex file |
| |
| ### 3.8.3 |
| |
| * Breaking Changes |
| |
| * [Change 383334](https://gerrit-review.googlesource.com/c/gerrit/+/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. |
| |
| * New Features |
| |
| * [Change 383334](https://gerrit-review.googlesource.com/c/gerrit/+/383334): |
| Allow to set gerrit.instanceID from java system property |
| |
| In environments where Gerrit is scaled automatically and which use |
| the same static configuration for all instances, e.g. in Kubernetes, |
| setting instance specific configuration in the config file is a |
| cumbersome process. Instance ID can also be set using the `gerrit.instanceId` |
| Java system property, which will override the instance ID in `gerrit.config`. |
| |
| * [Change 377699](https://gerrit-review.googlesource.com/c/gerrit/+/377699): |
| Allow generating safe local-only documentation, without reference to external fonts in CSS |
| |
| * [Change 390658](https://gerrit-review.googlesource.com/c/gerrit/+/390658): |
| Allow disable Prolog rules evaluation on closed changes |
| |
| * [Change 390614](https://gerrit-review.googlesource.com/c/gerrit/+/390614): |
| Allow uploading changes to group refs except changes to group files |
| |
| * [Change 389055](https://gerrit-review.googlesource.com/c/gerrit/+/389055): |
| Allow operator aliases to be used in submit requirement expressions |
| |
| * [Change 386974](https://gerrit-review.googlesource.com/c/gerrit/+/386974): |
| SSH set-reviewers cmd now handles lock failures with retries |
| |
| * Performance Fixes |
| |
| * [Change 376094](https://gerrit-review.googlesource.com/c/gerrit/+/376094): |
| Introduce new cache `changes_by_project` to speedup git ref advertisements on replica and git-receive-pack on primary |
| |
| * [Change 377814](https://gerrit-review.googlesource.com/c/gerrit/+/377814): |
| Skip building bloom filters by default speeding up offline reindex |
| |
| * Security Fixes |
| |
| * [Change 389374](https://gerrit-review.googlesource.com/c/gerrit/+/389374): |
| Update Jetty to 9.4.53.v20231009 with critical security fixes [CVE-2023-36478](https://nvd.nist.gov/vuln/detail/CVE-2023-36478) and [CVE-2023-44487](https://nvd.nist.gov/vuln/detail/CVE-2023-44487) |
| |
| * Bug Fixes |
| |
| * [Change 394435](https://gerrit-review.googlesource.com/c/gerrit/+/394435): |
| Support listing of patch-set files also for imported changes from other Gerrit servers-ids |
| |
| * [Issue 301481564](https://issues.gerritcodereview.com/issues/301481564): |
| Fix the repository configuration screen remainign stale when switching tabs |
| |
| * [Issue 304335624](https://issues.gerritcodereview.com/issues/304335624): |
| Fix the changing preferred email resulting in duplicate emails set in cache |
| |
| * [Change 388054](https://gerrit-review.googlesource.com/c/gerrit/+/388054): |
| Eliminated startup warning for plugins whose SshModule only provides Ssh\*CommandInterceptors |
| |
| * [Change 387217](https://gerrit-review.googlesource.com/c/gerrit/+/387217): |
| Fixed case where an exception in change visibility checking could break visibility of all refs in that repo |
| |
| * [Change 387055](https://gerrit-review.googlesource.com/c/gerrit/+/387055): |
| Fix SSH set-topic cmd to consider 'editTopicName' permission |
| |
| * [Issue 291102119](https://issues.gerritcodereview.com/issues/291102119) |
| Avoid NullPointerException when deleting a single ref |
| |
| * [Change 387216](https://gerrit-review.googlesource.com/c/gerrit/+/387216): |
| Fixed potential OOM due to SubmitRuleEvaluator creating new metrics whenever an instance was created |
| |
| * [Change 387214](https://gerrit-review.googlesource.com/c/gerrit/+/387214): |
| Fixed potential OOM due to DefaultRefFilter creating new metrics whenever an instance was created |
| |
| * [Change 386976](https://gerrit-review.googlesource.com/c/gerrit/+/386976): |
| Fixed potential OOM due to \*QueryProcessor classes creating new metrics whenever an instance was provided |
| |
| * [Issue 300976121](https://issues.gerritcodereview.com/issues/300976121): |
| Fix NPE when `auth.httpDisplaynameHeader` is configured but header is unset |
| |
| * [Change 387054](https://gerrit-review.googlesource.com/c/gerrit/+/387054): |
| Fix `force topic edit` permission to consider change owner rule |
| |
| * [Change 386994](https://gerrit-review.googlesource.com/c/gerrit/+/386994): |
| Fixed InactiveAccountDisconnector NPE due to race condition |
| |
| * [Issue 295457464](https://issues.gerritcodereview.com/issues/295457464): |
| Fixed SSH query not returning copied approvals on per patchset level |
| |
| * Documentation Fixes |
| |
| * [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 388936](https://gerrit-review.googlesource.com/c/gerrit/+/388936): |
| Explain in ls-projects SSH API when the "parent" field is "?-N" |
| |
| * [Change 388530](https://gerrit-review.googlesource.com/c/gerrit/+/388530): |
| Explain in /projects/ REST API when the "parent" field is "?-N" |
| |
| * Replication Plugin Updates |
| |
| * [Change 384754](https://gerrit-review.googlesource.com/c/plugins/replication/+/384754): |
| Avoid opportunity to inadvertently block the distributor |
| |
| * [Change 383694](https://gerrit-review.googlesource.com/c/plugins/replication/+/383694): |
| Reduced log level for Task deletion errors in MP setups |
| |
| * Dependency Updates |
| |
| * Update jgit to 82e277c813398c9f519f16e83d080a94fa29a27c |
| |
| * Native Packaging |
| |
| * [Issue 311414905](https://issues.gerritcodereview.com/issues/311414905): |
| Add trailing slash in default `canonicalWebUrl` in Docker containers |
| |
| |
| ### 3.8.2 |
| |
| * New Features |
| |
| * [Change 385116](https://gerrit-review.googlesource.com/c/gerrit/+/385116): |
| Support Cloud Spanner for AccountPatchReviewStore |
| |
| * Bug Fixes |
| |
| * [Change 380154](https://gerrit-review.googlesource.com/c/gerrit/+/380154): |
| Documentation: NOTE on use of sshkeys, and \*projects cache on clusters |
| |
| When using the sshkeys, and \*projects caches on a cluster, warn |
| the Gerrit admin he should be aware of those caches to be potentially |
| stale. The problem can be minimised by either disabling them |
| altogether or setting a low value of refreshAfterWrite. |
| |
| * [Change 384214](https://gerrit-review.googlesource.com/c/gerrit/+/384214): |
| Align Jetty session timeout with Gerrit web_sessions maxAge |
| |
| Do not leave Jetty having sessions kept forever but expire |
| them with the same timeout of Gerrit sessions. |
| |
| Verified E2E that the Jetty sessions expires with the same |
| timeout of the web_sessions maxAge value. |
| |
| * [Issue 290225204](https://issues.gerritcodereview.com/issues/290225204): |
| loginUrl and loginText are hardcoded in the UI |
| |
| Gerrit UI ignored the settings in the auth section of the |
| configuration [1]. |
| |
| In particular auth.loginUrl [2] should be used if present and |
| auth.type is set to HTTP or HTTP_LDAP. |
| Also auth.loginText [3] should be used if auth.loginUrl is set. |
| |
| This change backports change 381534 to stable-3.6. We didn't cherry-pick because the code changes significantly and had many conflicts. |
| |
| [1]: https://gerrit-review.googlesource.com/Documentation/config-gerrit.html#auth |
| [2]: https://gerrit-review.googlesource.com/Documentation/config-gerrit.html#auth.loginUrl |
| [3]: https://gerrit-review.googlesource.com/Documentation/config-gerrit.html#auth.loginText |
| |
| * [Issue 291102119](https://issues.gerritcodereview.com/issues/291102119): |
| Avoid NullPointerException when deleting multiple tags |
| |
| To avoid NPE make sure that ref is not read again after checking if |
| ref exists. This prevent the issue when other call already removed |
| the tag and we try to read it. Proper behaviour is to try to delete it |
| and return `Cannot delete refs/tags/...: LOCK_FAILURE` if tag is already |
| deleted. |
| |
| * [Issue 289505276](https://issues.gerritcodereview.com/issues/289505276): |
| Fix for: change can't be submitted if another branch contains exactly the same commit. |
| |
| * [Change 380694](https://gerrit-review.googlesource.com/c/gerrit/+/380694): |
| Hide Move Change from UI if change.move is set to false |
| |
| * [Issue 290641654](https://issues.gerritcodereview.com/issues/290641654): |
| Fix bug in API '/projects/*/access:review' ignoring 'message' field |
| |
| Fix API endpoint 'CreateAccessChange' '/projects/*/access:review' |
| not hounouring 'message' field provided via 'ProjectAccessInput' object despite setting it. |
| Add condition to check if message is provided then use it instead of default 'Review access change' |
| |
| * [Issue 298846017](https://issues.gerritcodereview.com/issues/298846017): |
| Fix admin links that contain the base URL twice |
| |
| Fix Gerrit Context paths becoming doubled in Admin View navigation links. |
| |
| * Plugin Updates |
| |
| * [Change 383360](https://gerrit-review.googlesource.com/c/gerrit/+/383360): |
| Update webhooks plugin to 1dc0a71883 |
| |
| This includes the following changes: |
| 1dc0a71 Add HTTP response code 'SC_ACCEPTED' (202) as success case in response handler |
| 16110f3 Annotate methods that return a definitely null value with @Nullable |
| and fixes: |
| [Issue 40015349](https://issues.gerritcodereview.com/issues/40015349) "plugins/webhooks doesn't accept HTTP 202 response code" |
| |
| ### 3.8.1 |
| |
| * Breaking changes |
| |
| * [Issue 40015585](https://issues.gerritcodereview.com/issues/40015585): |
| Enhance metric name sanitize function to remove collision on '_' between metrics. |
| |
| Collision between the sanitized metric names can be easily |
| created e.g. `foo_bar` will collide with `foo+bar`. In order |
| to avoid collisions keep the rules about slashes and replace not |
| supported chars with `_0x[HEX CODE]_` string. The |
| replacement prefix `0x` is prepended with another replacement prefix. |
| |
| * New Features |
| |
| * [Change 377794](https://gerrit-review.googlesource.com/c/gerrit/+/377794): |
| Extend configurability of index pagination type |
| |
| Add NONE option to disable index backend pagination, this option |
| needs to be honoured by the indexing backend and this change introduces |
| the correct implementation for Lucene. |
| |
| * [Change 372974](https://gerrit-review.googlesource.com/c/gerrit/+/372974): |
| Don't allow index searches with size greater than maxPageSize |
| |
| Queries with a 'start' parameter can perform |
| an index search with size greater than the configured maxPageSize, |
| i.e. when start + limit exceeds the maxPageSize. Fix such queries |
| to paginate instead. |
| |
| * Bug Fixes |
| |
| * [Issue 289321387](https://issues.gerritcodereview.com/issues/289321387): |
| Preserve refs order in the GitBatchRefUpdateEvent event |
| |
| [Change 335757](https://gerrit-review.googlesource.com/c/gerrit/+/335757) |
| introduced the concept of the single event representing batch ref update. |
| However this new event did not preserve original order of the updated refs. |
| This impacts event consumers behaviour and can cause failures. For example |
| if meta ref is processed before patchset ref indexing operation will |
| fail because of the missing patchset. |
| |
| The timeline of events is kept in the same order they are generated, |
| to make sure that refs order is preserved and backward compatibility |
| is kept. |
| |
| * [Change 378075](https://gerrit-review.googlesource.com/c/gerrit/+/378075): |
| Fix links to URLs with nonstandard schemes |
| |
| Removed automatic linking of URLs that do not start with `https?://` |
| |
| * [Change 377796](https://gerrit-review.googlesource.com/c/gerrit/+/377796): |
| Fix imported changes appearing as duplicates in index |
| |
| When parsing the change data from ChangeNotes, the in-memory created |
| ChangeData contains useful information like the serverId |
| that the change belongs to. The same information isn't available when |
| reindexing directly from a newly created entity Change which has |
| no relationship with the underlying change notes. |
| |
| * [Change 340014](https://gerrit-review.googlesource.com/c/gerrit/+/340014): |
| Fix identity parsing for imported human comments |
| |
| When an account's serverId does not match the one defined in |
| gerrit.config, then use the 'imported' external ids in the accounts |
| for reverse lookup of the accountId. |
| This allows to correctly understand and associate the imported |
| changes coming from repositories of other Gerrit servers to |
| the correct local accounts. |
| |
| * [Issue 40015148](https://issues.gerritcodereview.com/issues/40015148): |
| Fix ExternalId differential loading when cache is inconsistent |
| |
| Make differential loading idempotent to avoid failures due to retry to |
| insert the same entry again, caused by the JGit |
| [Issue 582044](https://bugs.eclipse.org/bugs/show_bug.cgi?id=582044). |
| |
| * [Issue 40015614](https://issues.gerritcodereview.com/issues/40015614): |
| Show correct cherry-picked list for imported changes |
| |
| The UI ran the following query to determine |
| if a change had been cherry-picked from another branch: |
| `project:<projectName> change:<changeID> -change:<changeNum> -is:abandoned` |
| Modified the query adhering to the cherry-pick change definition: |
| `project:<projectName> change:<changeID> -branch:<currentBranch> -is:abandoned` |
| |
| * [Change 357634](https://gerrit-review.googlesource.com/c/gerrit/+/357634): |
| Fix parsing legacy labels for users with comma |
| |
| This change fixes a bug introduced by [336883](https://gerrit-review.googlesource.com/c/gerrit/+/336883) |
| when parsing labels where a UUID was present together with a user name containing a comma. |
| |
| * [Change 347316](https://gerrit-review.googlesource.com/c/gerrit/+/347316): |
| Fix Bazel build on Apple M2 ARM64 chip |
| |
| Bazel fails to select the correct java-tools binaries for Apple's ARM64 |
| architecture and downloads the generic x86. This fix disables the download |
| of the pre-compiled java_tools, allowing Bazel to build them |
| locally for the correct architecture. |
| |
| * [Change 375634](https://gerrit-review.googlesource.com/c/gerrit/+/375634): |
| Fix listing files for initial commit against the first parent |
| |
| DiffOperations used an empty *tree* as the base *commit* when getting |
| the diff for an initial commit and the user specified comparing against |
| the first parent (which doesn't exist). In this case the request failed |
| with 500 ISE because the empty tree is not a commit and thus we run into |
| an IncorrectObjectTypeException. |
| Instead of failing in this case we are now falling back to comparing |
| against the default root. |
| |
| * Documentation fixes |
| |
| * [40014489](https://gerrit-review.googlesource.com/c/gerrit/+/40014489): |
| Announce / document that building with Java 8 is no longer supported |
| |
| Documents that building with Java 8 is no longer supported. |
| Java 11 is now required and removes the now unused |
| error_prone_warnings_toolchain. |