| --- |
| title: "Gerrit 3.5.x" |
| permalink: 3.5.html |
| hide_sidebar: true |
| hide_navtoggle: true |
| toc: true |
| --- |
| |
| Download: **[3.5.6](https://gerrit-releases.storage.googleapis.com/gerrit-3.5.6.war)** |
| | [3.5.5](https://gerrit-releases.storage.googleapis.com/gerrit-3.5.5.war) |
| | [3.5.4](https://gerrit-releases.storage.googleapis.com/gerrit-3.5.4.war) |
| | [3.5.3](https://gerrit-releases.storage.googleapis.com/gerrit-3.5.3.war) |
| | [3.5.2](https://gerrit-releases.storage.googleapis.com/gerrit-3.5.2.war) |
| | [3.5.1](https://gerrit-releases.storage.googleapis.com/gerrit-3.5.1.war) |
| | [3.5.0.1](https://gerrit-releases.storage.googleapis.com/gerrit-3.5.0.1.war) |
| |
| Documentation: **[3.5.6](https://gerrit-documentation.storage.googleapis.com/Documentation/3.5.6/index.html)** |
| | [3.5.5](https://gerrit-documentation.storage.googleapis.com/Documentation/3.5.5/index.html) |
| | [3.5.4](https://gerrit-documentation.storage.googleapis.com/Documentation/3.5.4/index.html) |
| | [3.5.3](https://gerrit-documentation.storage.googleapis.com/Documentation/3.5.3/index.html) |
| | [3.5.2](https://gerrit-documentation.storage.googleapis.com/Documentation/3.5.2/index.html) |
| | [3.5.1](https://gerrit-documentation.storage.googleapis.com/Documentation/3.5.1/index.html) |
| | [3.5.0.1](https://gerrit-documentation.storage.googleapis.com/Documentation/3.5.0.1/index.html) |
| |
| ## Release highlights |
| |
| ### Case-insensitive usernames |
| |
| Users can login with mixed case usernames without the risk to create |
| duplicate accounts. |
| |
| The change affects the following external ids: |
| * `gerrit` (LDAP) |
| * `username` (login, authenticated REST and git endpoints) |
| |
| For a new Gerrit setup, usernames are case insensitive by default, while for |
| existing installations the Gerrit admin can switch the functionality on/off |
| using the [`auth.userNameCaseInsensitive`](https://gerrit-documentation.storage.googleapis.com/Documentation/3.5.0/config-gerrit.html#auth.userNameCaseInsensitive) |
| setting in `gerrit.config`. |
| |
| > **NOTE**: In the All-Users.git repository, the SHA-1 sum of the account |
| > is computed preserving the case of the external ID. See the full details |
| > in the [Gerrit config accounts documentation](https://gerrit-documentation.storage.googleapis.com/Documentation/3.5.0/config-accounts.html#external-ids). Existing accounts can be migrated to |
| > the new SHA-1 sum using the |
| > [offline](https://gerrit-documentation.storage.googleapis.com/Documentation/3.5.0/pgm-ChangeExternalIdCaseSensitivity.html) |
| > or [online](https://gerrit-documentation.storage.googleapis.com/Documentation/3.5.0/externalid-case-insensitivity.html#online-migration) migration tool. |
| |
| ### Request cancellation and execution deadlines |
| |
| To limit the maximal execution time for requests, administrators can configure |
| server-side deadlines. More details are available in the |
| [Gerrit documentation](https://gerrit-documentation.storage.googleapis.com/Documentation/3.5.0/user-request-cancellation-and-deadlines.html). |
| |
| Any operation in Gerrit can now be subject to a configurable deadline, using |
| the [`deadline`](https://gerrit-documentation.storage.googleapis.com/Documentation/3.5.0/config-gerrit.html#deadline.id) |
| section in `gerrit.config`. |
| |
| > **NOTE**: Deadlines are supported for `REST`, `SSH` and `GIT_RECEIVE` |
| > requests, but not for `GIT_UPLOAD` requests. |
| |
| Gerrit commands can define an execution deadline, so that the processing |
| triggered on the server would be able to end in a definite time, even in case |
| of network interruption of the connection with the client. |
| |
| ### Removal of external ids |
| |
| Gerrit external ids, including the username, can now be removed using the |
| [SSH command](https://gerrit-documentation.storage.googleapis.com/Documentation/3.5.0/cmd-set-account.html) |
| or [REST API](https://gerrit-documentation.storage.googleapis.com/Documentation/3.5.0/rest-api-accounts.html#delete-account-external-ids). |
| |
| > **NOTE**: Users that have the __Modify Account__ permission can delete |
| > external ids that belong to other accounts. External ids in the `username` |
| > scheme can only be deleted by users that have __Administrate Server__ |
| > or both `Maintain Server` and `Modify Account`. See the |
| > [documentation](https://gerrit-documentation.storage.googleapis.com/Documentation/3.5.0/rest-api-accounts.html#delete-account-external-ids) |
| > for further details. |
| |
| ### Copy labels to new patch-sets |
| |
| Gerrit matches patch set approvals against the provided query |
| string and, if the query matches, the approval is copied from one patch set |
| to the next. |
| |
| The copy label feature is controlled by the |
| [`label.Label-Name.copyCondition`](https://gerrit-documentation.storage.googleapis.com/Documentation/3.5.0/config-labels.html#label_copyCondition) |
| in `project.config`. |
| |
| ### New change predicates |
| |
| It is possible to search for changes by uploader, using the new |
| [`uploader` and `uploaderin`](https://gerrit-documentation.storage.googleapis.com/Documentation/3.5.0/user-search.html#uploader) |
| predicates. |
| |
| Hashtags search is improved with the [`inhashtag`](https://gerrit-documentation.storage.googleapis.com/Documentation/3.5.0/user-search.html#inhashtag) |
| predicate which returns all the changes where any hashtag contains a substring, |
| using a full-text search. |
| |
| It is now possible to use the new |
| [`has:attention` and `is:attention` predicates](https://gerrit-documentation.storage.googleapis.com/Documentation/3.5.0/user-search.html#has-attention) |
| to search for changes having the attention of the current user. |
| |
| Cherry-picked changes can now be searched using the |
| [`is:cherrypick`](https://gerrit-documentation.storage.googleapis.com/Documentation/3.5.0/user-search.html#cherrypick) |
| predicate. |
| |
| The special ["non_uploader" parameter](https://gerrit-documentation.storage.googleapis.com/Documentation/3.5.0/user-search.html#labels) |
| is now available as parameter for change predicates and matches any |
| user who's not the uploader of the latest patchset. |
| |
| ### Performance improvements on the change screen |
| |
| The change screen has been improved by enabling extra caching and disabling |
| some expensive computation. |
| |
| A new [`approvals` cache](https://gerrit-documentation.storage.googleapis.com/Documentation/3.5.0/config-gerrit.html#cache_names) |
| contains approvals for a given patch set. |
| |
| The new [`change.conflictsPredicateEnabled`](https://gerrit-documentation.storage.googleapis.com/Documentation/3.5.0/config-gerrit.html#change.conflictsPredicateEnabled) |
| setting in `gerrit.config` disables the computation of the conflicts section |
| avoiding a computation of complexity of O(nˆ2), where n is the number of open |
| changes for the project the change belongs to. |
| When set to false the GUI will leave the conflict changes section on change |
| screen empty. |
| |
| ## Important notes |
| |
| ### Support for Java 8 dropped |
| |
| The Java language level is now set to Java 11 for Gerrit, the support |
| for Java 8 is dropped. |
| |
| Gerrit source code may not be compatible with Java 8 anymore. |
| |
| ### Schema and index changes |
| |
| This release doesn't contain schema changes. |
| |
| The `changes` index version has been increased to version 71. By default the |
| index is automatically rebuilt upon the Gerrit startup after the |
| upgrade. |
| |
| To run offline reindexing of the changes (optional when upgrading from v3.3.x |
| or later): |
| |
| ```sh |
| java -jar gerrit.war reindex --index changes -d site_path |
| ``` |
| |
| ### Zero-downtime upgrade |
| |
| Gerrit v3.5.x supports zero-downtime upgrade from Gerrit v3.2.x 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 using any API. |
| |
| The zero-downtime upgrade consists of the following steps: |
| |
| 1. Have Gerrit servers running v3.2.x or later, in high-availability |
| configuration, healthy and able to handle the incoming traffic properly. |
| 2. Set the Gerrit server unhealthy. |
| 3. Shutdown the Gerrit server, update gerrit.war and plugins to v3.5.x and start |
| Gerrit again. |
| 4. Verify that the Gerrit server is working properly (e.g. run automated smoke |
| tests) and then make it healthy again. |
| 5. Wait for the Gerrit server to start serving traffic normally. |
| 6. Repeat steps 2. to 5. for all the other Gerrit servers. |
| |
| ### Downgrade |
| |
| Downgrade to any Gerrit v3.3.x or v3.4.x release is possible, but requires the |
| following manual steps: |
| |
| 1. Shutdown all migrated Gerrit v3.5.x servers |
| 2. Update the gerrit.war and plugins to the previous v3.3.x or v3.4.x version |
| 3. Run offline reindexing using the previous gerrit.war version |
| 3. Startup Gerrit server |
| |
| > **NOTE**: Downgrading is not always possible in Gerrit and is subject to |
| > specific restrictions on different releases. Always read the release notes |
| > carefully and look for the supported downgrade paths. |
| |
| ### Breaking changes |
| |
| * The support for [ElasticSearch index](https://gerrit-documentation.storage.googleapis.com/Documentation/3.4.1/config-gerrit.html#elasticsearch) |
| is removed from Gerrit core. Existing setups can still use ElasticSearch through |
| external non-core libModules. |
| |
| * The "Reply" button label and tooltip cannot be customized anymore: the |
| `change.replyLabel` and `change.replyTooltip` are ignored. |
| |
| * The `repo_download` [`download.scheme`](https://gerrit-documentation.storage.googleapis.com/Documentation/3.5.0/config-gerrit.html#download.scheme) |
| is renamed to `repo`. |
| |
| * The `bower` Bazel rules are removed: all front-end plugins would have to |
| migrate to `yarn`. |
| |
| * REST APIs with incompatible changes |
| |
| * [`AccountExternalIdInfo`](https://gerrit-documentation.storage.googleapis.com/Documentation/3.5.0/rest-api-accounts.html#account-external-id-info) |
| `email` field is renamed to `email_address`. |
| |
| * The `/accounts/{account-id}/stars.changes` endpoint |
| is removed. Looking for starred changes is still available through the use |
| of `is:starred` or `has:star` predicates. |
| |
| * [Change 323855](https://gerrit-review.googlesource.com/323855) [Change 324115](https://gerrit-review.googlesource.com/324115): |
| ProjectCache#evict no longer triggers a reindex. |
| |
| During offline project reindexing evict() was triggering a duplicate reindex |
| on the project when we only wanted to evict the project cache entry. This same |
| issue occurred with the HA plugin and could be/been present in other plugins. |
| |
| If you have relied on a reindex being done on evict() you need to use |
| evictAndReindex() instead. This behavior is now consistent with other evict() |
| methods in Gerrit. |
| |
| ### Other changes |
| |
| * Request tracing can exclude URI patterns, using the |
| [`tracing.traceid.excludedRequestUriPattern`](https://gerrit-documentation.storage.googleapis.com/Documentation/3.5.0/config-gerrit.html#tracing.traceid.requestUriPattern) |
| setting in `gerrit.config`. |
| |
| * Git receive-pack can have a grace-period configurable as |
| [`receive.cancellationTimeout` setting](https://gerrit-documentation.storage.googleapis.com/Documentation/3.5.0/config-gerrit.html#receive.cancellationTimeout) |
| for terminating after having received the cancellation signal from the client. |
| |
| * Attention-set rules can be disabled upon push, using the |
| [`--ignore-automatic-attention-set-rules` or `%ias` option](https://gerrit-documentation.storage.googleapis.com/Documentation/3.5.0/user-upload.html#ignore-attention-set). |
| |
| ## Plugin changes |
| |
| * codemirror-editor |
| |
| * [Issue 14845](https://crbug.com/gerrit/14845): |
| Improve performance in the editor |
| |
| Stop setting viewportMargin and instead use the default value. |
| Add support for the inbuilt search support within codemirror. |
| |
| * delete-project |
| |
| * Use base url for return url after deleting a repo |
| |
| * gitiles |
| |
| * [Change 305442](https://gerrit-review.googlesource.com/c/gitiles/+/305442): |
| Test that Branch Redirect supports having short ref names in gitiles url. |
| |
| * [Change 298802](https://gerrit-review.googlesource.com/c/gitiles/+/298802): |
| Redirect gitiles url using Repo's branch redirect config when format type is default (not provided in gitiles url). |
| |
| * [Change 296662](https://gerrit-review.googlesource.com/c/gitiles/+/296662): |
| Fix straggling FQN in LogDetails.soy template call. |
| |
| * [Change 292082](https://gerrit-review.googlesource.com/c/gitiles/+/292082): |
| Support branch redirect in Gitiles for helping users keep their old URLs working when migrating branch names. |
| |
| * [Change 282376](https://gerrit-review.googlesource.com/c/gitiles/+/282376): |
| Add support for rendering webp image files, supported for all browsers and Safari 14 or later. |
| |
| * [Change 277999](https://gerrit-review.googlesource.com/c/gitiles/+/277999): |
| Set correct target url for symlinks, which were calculated incorrectly. |
| |
| * [Change 273661](https://gerrit-review.googlesource.com/c/gitiles/+/273661): |
| Drop u-pre's font-weight in CSS. |
| |
| * plugin-manager |
| |
| * [Issue 13521](https://crbug.com/gerrit/13521): |
| Use relative URL to access Gerrit base URL |
| |
| Plugin-manager now works for Gerrit setups |
| with a reverse-proxy and a non-root base path. |
| |
| * replication |
| |
| * [Issue 14819](https://crbug.com/gerrit/14819): |
| Inherit remote replication events from a common parent. |
| |
| * [Issue 14628](https://crbug.com/gerrit/14628): |
| Register ProjectDeletion events for gson serialization. |
| |
| ProjectDeletion events were not registered event types. |
| This caused failures when EventGson tried to serialize/deserialize |
| objects having those events as field, Throwing the JsonParseException: |
| |
| ``` |
| Unknown event type: project-deletion-replication-scheduled |
| ``` |
| |
| * [Issue 13216](https://crbug.com/gerrit/13216): |
| Add possibility to split large pushes to remote into batches. |
| |
| * Add a cluster replication configuration section. |
| |
| Add a section describing how to setup more than one primary to cooperate |
| for replication and how this can impact cluster scaling and service |
| levels. |
| |
| ## Gerrit UI changes |
| |
| * [Issue 12268](https://crbug.com/gerrit/12268): |
| Fix spacing between change status chip and change number when logged out. |
| |
| * [Issue 13471](https://crbug.com/gerrit/13471): |
| Change diff highlighting colors for dark theme. |
| |
| * [Issue 13990](https://crbug.com/gerrit/13990): |
| Fix Uploaded patch set message with votes. |
| |
| * [Issue 14041](https://crbug.com/gerrit/14041): |
| Show all comments in Comments Tab if no resolved comments. |
| |
| * [Issue 14470](https://crbug.com/gerrit/14470): |
| Remove attention set configuration option (frontend). |
| |
| * [Issue 14521](https://crbug.com/gerrit/14521): |
| Fix fully reloading the change view when the new patchset is unknown. |
| |
| * [Issue 14522](https://crbug.com/gerrit/14522): |
| Do not process keyboard shortcuts for invisible views. |
| |
| * [Issue 14769](https://crbug.com/gerrit/14769): |
| Show tooltip below for diff view options. |
| |
| * [Issue 14820](https://crbug.com/gerrit/14820): |
| Fix Normal text mistakenly shown with code block fixed-width formatting. |
| |
| * [Issue 14828](https://crbug.com/gerrit/14828): |
| Saving a comment incorrectly closes/discards other unsaved comments. |
| |
| * [Issue 14854](https://crbug.com/gerrit/14854): |
| Expand drafts in comment threads by default. |
| |
| * [Issue 14872](https://crbug.com/gerrit/14872): |
| Account name misaligned in chip when there is no user avatars enabled. |
| |
| * [Issue 15105](https://crbug.com/gerrit/15105): |
| Don't automatically open suggestions dropdown in "Add reviewer" and "Add CC". |
| |
| ## Documentation changes |
| |
| * PolyGerrit UI screenshots and associated documentation have been updated. |
| |
| * [Issue 11388](https://crbug.com/gerrit/11388): |
| Extend the section associated with NoteDb format documentation. |
| |
| ## JGit changes |
| |
| Update JGit to 60b81c5a9280, which includes the following changes: |
| |
| * [60b81c5a9](https://git.eclipse.org/r/plugins/gitiles/jgit/jgit/+/60b81c5a9): |
| Fix RevWalk.getMergedInto() ignores annotated tags. |
| |
| * [c5b305473](https://git.eclipse.org/r/plugins/gitiles/jgit/jgit/+/c5b305473): |
| Optimize RevWalk.getMergedInto(). |
| |
| * [847077151](https://git.eclipse.org/r/plugins/gitiles/jgit/jgit/+/847077151): |
| GitServlet: allow to override default error handlers. |
| |
| * [35eeab41b](https://git.eclipse.org/r/plugins/gitiles/jgit/jgit/+/35eeab41b): |
| RevWalk: getMergedInto's result is wrong on the second call. |
| |
| * [24d6d6053](https://git.eclipse.org/r/plugins/gitiles/jgit/jgit/+/24d6d6053): |
| Retry loose object read upon "Stale file handle" exception. |
| |
| * [64b0dee98](https://git.eclipse.org/r/plugins/gitiles/jgit/jgit/+/64b0dee98): |
| Fix garbage collection failing to delete pack file. |
| |
| * [64d0aaa2b](https://git.eclipse.org/r/plugins/gitiles/jgit/jgit/+/64d0aaa2b): |
| Teach independent negotiation (no pack file) using an option "wait-for-done". |
| |
| * [1788b72d1](https://git.eclipse.org/r/plugins/gitiles/jgit/jgit/+/1788b72d1): |
| Skip detecting content renames for binary files. |
| |
| * [c59626ad7](https://git.eclipse.org/r/plugins/gitiles/jgit/jgit/+/c59626ad7): |
| RepoCommand: Retry commit on LockFailure. |
| |
| * [0667b8ec4](https://git.eclipse.org/r/plugins/gitiles/jgit/jgit/+/0667b8ec4): |
| RepoCommand: Do not set 'branch' if the revision is a tag. |
| |
| * [8bc166b00](https://git.eclipse.org/r/plugins/gitiles/jgit/jgit/+/8bc166b00): |
| BatchRefUpdate: Skip saving conflicting ref names and prefixes in memory. |
| |
| * [303dd019d](https://git.eclipse.org/r/plugins/gitiles/jgit/jgit/+/303dd019d): |
| Optimize RefDirectory.isNameConflicting(). |
| |
| * [003862722](https://git.eclipse.org/r/plugins/gitiles/jgit/jgit/+/003862722): |
| LockFile: create OutputStream only when needed. |
| |
| * [e58bf0870](https://git.eclipse.org/r/plugins/gitiles/jgit/jgit/+/e58bf0870): |
| Add git config for conflict style merge/diff3. |
| |
| ## Other dependency changes |
| |
| * Update auto-value-gson-\* to 1.3.1 |
| |
| * Update testcontainers to 1.15.3 |
| |
| * Update flogger to 0.6 |
| |
| * Update docker-java-\* to 3.2.8 |
| |
| * Update lucene-\* to 6.6.5 |
| |
| * Update polymer/decorators to 3.0.0 |
| |
| * Update polymer to 3.4.1 |
| |
| * Update typescript-api to 3.4.4 |
| |
| * Update lit to 2.0.2 |
| |
| ## Other core changes |
| |
| * [Issue 13563](https://crbug.com/gerrit/13563): |
| Fallback to a single region for incorrect intra-line diffs. |
| |
| In some rare cases, intra-line diffs produce incorrect results, which |
| confuse users since the light/dark colors of added and removed areas do |
| not accurately represent what was added and deleted. |
| |
| * [Issue 13965](https://crbug.com/gerrit/13965): |
| commit-msg: simplify generation of a unique hash. |
| |
| Refactors the commit-msg hook, changing the random bits of |
| data used to generate the value for the Change-Id trailer. |
| |
| * [Issue 14362](https://crbug.com/gerrit/14362): |
| Export PluginPushOption for use in plugins. |
| |
| * [Issue 14556](https://crbug.com/gerrit/14556): |
| Fix error handling in checks-service. |
| |
| * [Issue 14772](https://crbug.com/gerrit/14772): |
| Fix attention set modifications for users with no permissions. |
| |
| * [Issue 15149](https://crbug.com/gerrit/15149): |
| Add changeInfo to LabelsChangedCallback in ChangeReplyPluginApi. |
| |
| ## Bugfix releases |
| |
| ### 3.5.6 |
| |
| * Security Fixes |
| |
| * [Issue 16890](https://crbug.com/gerrit/16890) |
| [CVE-2019-12402](https://nvd.nist.gov/vuln/detail/CVE-2019-12402): |
| Fix DoS for Gerrit servers exposing Gitiles with the ability to download source archive |
| |
| Bump common:compress version to 1.22 for protecting against an infinite loop |
| triggered by downloading a source archive of files with a Unicode filename. |
| |
| * Bug Fixes |
| |
| * [Change 362914](https://gerrit-review.googlesource.com/c/gerrit/+/362914) |
| Fix internal server error caused by double flush in BaseCommand.TaskThunk |
| |
| Ignore `SshChannelClosedException` when flushing the task's output and error |
| streams. JGit commands like `UploadPack` flush these streams already. When |
| `TaskThunk` tries to flush them again `SshChannelClosedException` is thrown |
| and leads to an internal server error. |
| |
| * [Change 364478](https://gerrit-review.googlesource.com/c/gerrit/+/364478): |
| AndSource: Run `isVisibleToPredicate` based on its cost |
| |
| `isVisible` check can be expensive and always running it ahead of other |
| cheaper predicates can increase the query time. Update `AndSource` to treat |
| `isVisibleToPredicate` like any other predicate so that it runs based on its |
| estimated cost. |
| |
| * [Change 364591](https://gerrit-review.googlesource.com/c/gerrit/+/364591) |
| Allow to hide download schemes from the UI |
| |
| Allow hiding a download scheme in the UI by still allowing to use it. |
| |
| * [Issue 16819](https://crbug.com/gerrit/16819): |
| Enable LDAP "Remember me" in login form per default |
| |
| When users are presented with the LDAP login page, the "Remember me" checkbox |
| is disabled by default. This might be a problem because, if the user doesn't |
| explicitly click the checkbox, the session will be tied to the browser |
| session. |
| |
| * [Issue 16814](https://crbug.com/gerrit/16814): |
| Improve `Rebase-SubmitStrategy` performance in some cases |
| |
| Set uninteresting branches based on project configuration: |
| `create_new_change_for_all_not_in_target`. |
| |
| * [Change 369415](https://gerrit-review.googlesource.com/c/gerrit/+/369415): |
| Fix metric computation with file paths in metric name. |
| |
| Don't fail metric computation due to duplicated metric names. |
| |
| * [Change 370354](https://gerrit-review.googlesource.com/c/gerrit/+/370354): |
| Improved performance of queries when backend index returns more results than needed |
| |
| Matching changes more than the limit is just extra work that is discarded at |
| the end when the results are trimmed to match the limit. This can help improve |
| performance of queries where a small percentage of changes are filtered in the |
| initial page and the remaining results are obtained from the next page. |
| |
| * [Change 357834](https://gerrit-review.googlesource.com/c/gerrit/+/357834): |
| Improved performance for plugin-provided SSH commands that perform multiple |
| permission checks or ref lookups for the same project |
| |
| Move creation of `PerThreadCache` to `SshCommand` so that the cache is available |
| to most commands, including plugins. |
| |
| * Download-commands plugin fixes |
| |
| * [Issue 15944](hhttps://crbug.com/gerrit/15944): |
| Update download-commands to latest master |
| |
| * Dependency Updates |
| |
| * Update jgit to 74fa245b3c3ccf13afcbec7911c7c8459e48527d. |
| |
| * [JGit Bug 565854](https://bugs.eclipse.org/bugs/show_bug.cgi?id=565854) |
| SshdSession: close channel gracefully |
| |
| Close the channel gracefully to give the server a chance to clean up properly on |
| its side. |
| |
| * Update bouncycastle to 1.72. |
| |
| * Update commons-compress to 1.22. |
| |
| * Update tukaani-xz to 1.9. |
| |
| ### 3.5.5 |
| |
| * New features |
| |
| * [Issue 16565](https://crbug.com/gerrit/16565): |
| Introduce cache.threads option to allow custom executors for Caffeine caches. |
| |
| The introduction of `cache.threads` in `gerrit.config` allows to configure |
| a separate thread pool which can be tuned and decoupled from the |
| rest of the JVM common threads. |
| |
| * [Change 353177](https://gerrit-review.googlesource.com/c/gerrit/+/353177): |
| Add tsconfig-plugins-base.json to Gerrit TypeScript Plugin API. |
| |
| Adds `tsconfig-plugins-base.json` to the npm package so downstream plugins |
| can easily use the same set of TypeScript settings. |
| |
| * [Change 351674](https://gerrit-review.googlesource.com/c/gerrit/+/351674): |
| SSH review cmd handles lock failures with retries. |
| |
| Retrying on lock failures helps mitigating lock failures when there is |
| contention to lock the notedb ref. Retries were already implemented |
| in REST API code path at a high enough layer so that it applies for all |
| REST APIs. |
| |
| * [Change 353594](https://gerrit-review.googlesource.com/c/gerrit/+/353594): |
| Inserting new patch-sets is retried on lock failures. |
| |
| Mitigates failures when creating new patch-sets fails if the notedb |
| ref is locked for another update on the change. |
| |
| * [Issue 16445](https://crbug.com/gerrit/16445): |
| Add slice number to the change indexing task description. |
| |
| To indicate to the administrator each task is indeed doing something |
| different, add the slice number if there is more than one slice in |
| total. |
| |
| * [Change 356215](https://gerrit-review.googlesource.com/c/gerrit/+/356215): |
| Support `init --reindex-threads=-1` to skip reindexing after init. |
| |
| Admins may wish to run other commands after `init` and before `reindex`, but |
| previously would have needed to observe and interrupt the `init` command |
| process once it started reindexing in order to do so. Providing an option to |
| `init` that skips the reindexing phase simplifies that workflow and makes it |
| less error prone. |
| |
| * [Change 356234](https://gerrit-review.googlesource.com/c/gerrit/+/356234): |
| Add CUDA syntax highlighting. |
| |
| |
| * [Change 352534](https://gerrit-review.googlesource.com/352534): |
| Introduce `--show-cache-stats`for printing cache stats during `init` and `reindex`, |
| disabled by default. |
| |
| * Bug Fixes |
| |
| * [Issue 14686](https://crbug.com/gerrit/14686), [Issue 14779](https://crbug.com/gerrit/14779), [Issue 16030](https://crbug.com/gerrit/16030): |
| |
| In [Change 293978](https://gerrit-review.googlesource.com/c/gerrit/+/293978), eTag was |
| removed from GetRevisionActions, but not RevisionResource. This resulted |
| in the UI to show a stale 'submit' action on the change in the same |
| submission chain. The UI now uses RevisionResource eTag, that does not include |
| MergeSuperSet (all related changes). |
| |
| * [Issue 16409](https://crbug.com/gerrit/16409): |
| Report pack protocol errors to the client via smart-HTTP. |
| |
| A regression introduced by [JGit Change 1926771](https://git.eclipse.org/r/c/jgit/jgit/+/192677), |
| caused pack protocol errors to be reported as 500 Server errors. |
| Such situations should be reported to the user as a 200 OK containing the |
| details of the failed operation. |
| |
| * [Change 351759](https://gerrit-review.googlesource.com/351759): |
| Fix `contrib/find-duplicate-usernames.sh` output when usernames contain spaces. |
| |
| * [Issue 16449](https://crbug.com/gerrit/16449): |
| Fix project root computation in Gitweb servlet. |
| |
| * [Change 355196](https://gerrit-review.googlesource.com/355196): |
| Fix the ability to configure JSCH as client implementation in `gerrit.config`. |
| |
| The JGit's SSH loading of the default session factory may lead to a |
| non-deterministic instance if more than one factory is available. |
| Make the legacy JSCH implementation explicit to enable configuring |
| it instead of the default Apache Mina SSH. |
| |
| * [Change 356715](https://gerrit-review.googlesource.com/356715): |
| Fixed bug with negated label for queries with external groups. |
| |
| * [Change 359176](https://gerrit-review.googlesource.com/359176): |
| Fix LabelPredicate group matching for included external groups. |
| |
| * [Change 357874](https://gerrit-review.googlesource.com/357874): |
| Fixed ownerin/uploaderin for internal groups that include external groups. |
| |
| * [Change 355054](https://gerrit-review.googlesource.com/355054): |
| Wrap #mobileSearch in a div. |
| |
| Fixes an issue on wikimedia where the search button was hidden |
| even though the rules executed to make it show. |
| |
| * Replication plugin fixes |
| |
| * [Change 352174](https://gerrit-review.googlesource.com/352174): |
| Replication distributor: reduce log level for no-op consolidations. |
| |
| * Dependency Updates |
| |
| * Update jgit to a1901305b26ed5e0116f138bc02837713d2cf5c3. |
| |
| Update from stable-6.1 to stable-6.5: |
| |
| * Notable enhancements and fixes from [6.2.0](https://projects.eclipse.org/projects/technology.jgit/releases/6.2.0) are: |
| |
| * [4dd9a94e](https://git.eclipse.org/r/c/jgit/jgit/+/192433): Better feedback on SSH authentication failure |
| |
| * [7b1c8cf14](https://git.eclipse.org/r/c/jgit/jgit/+/191924): Retry reading a file when there are concurrent writes |
| |
| * [fed1a5493](https://git.eclipse.org/r/c/jgit/jgit/+/197714): Refresh 'objects' dir and retry if a loose object is not found |
| (Fixes cases where a new loose object is not immediately visible on a NFS |
| client if it was created on another client) |
| |
| * [011c26ff3](https://git.eclipse.org/r/c/jgit/jgit/+/193939): Fix connection leak for smart http connections |
| |
| * [ac127a793](https://git.eclipse.org/r/c/jgit/jgit/+/196849): Do not handle internal git errors as an HTTP error |
| |
| * Notable enhancements and fixes from [6.3.0](https://projects.eclipse.org/projects/technology.jgit/releases/6.3.0) are: |
| |
| * [1a364c49e](https://git.eclipse.org/r/c/jgit/jgit/+/194200): JGit blame very slow for large merge commits that rename |
| files |
| * [66ace4b9](https://git.eclipse.org/r/c/jgit/jgit/+/193496): Do not check reachability of visible SHA1s in git-upload-pack |
| |
| * [035e0e23](https://git.eclipse.org/r/c/jgit/jgit/+/194500): Do not prematurely terminate timer in case of error during git-upload-pack |
| |
| * Notable enhancements and fixes from [6.4.0](https://projects.eclipse.org/projects/technology.jgit/releases/6.4.0) are: |
| |
| * [fe9aeb02e6](https://git.eclipse.org/r/c/jgit/jgit/+/196497), [93097f0018](https://git.eclipse.org/r/c/jgit/jgit/+/196323): Receive and parse client [git session-id](https://git-scm.com/docs/gitprotocol-capabilities#_session_idsession_id) |
| |
| * [59029aec3](https://git.eclipse.org/r/c/jgit/jgit/+/196905): Add option to allow using JDK's SHA1 implementation |
| |
| * [3e7281662](https://git.eclipse.org/r/c/jgit/jgit/+/197151): UploadPackServlet#doPost use try-with-resource to ensure |
| UploadPack is closed |
| |
| * [1e04046a6](https://git.eclipse.org/r/c/jgit/jgit/+/194411): Fix crashes on rare combination of file names (This issue |
| has been seen during offline reindex of changes with specific merge |
| commits) |
| |
| * Update sshd to 2.9.2 |
| |
| * [CVE-2022-45047](https://nvd.nist.gov/vuln/detail/CVE-2022-45047): Avoid using Java deserialization to load a serialized java.security.PrivateKey |
| |
| * [SSHD-1302](https://issues.apache.org/jira/browse/SSHD-1302): Reading again from exhausted ChannelExec#getInvertedOut() throws IOException instead of returning -1 |
| |
| * [SSHD-966](https://issues.apache.org/jira/browse/SSHD-966): Deadlock on disconnection at the end of key-exchange |
| |
| * [SSHD-1231](https://issues.apache.org/jira/browse/SSHD-1231): Public key authentication: wrong signature algorithm used (ed25519 key with ssh-rsa signature) |
| |
| * [SSHD-1257](https://issues.apache.org/jira/browse/SSHD-1257): Shell is not getting closed if the command has already closed the OutputStream it is using. |
| |
| * [SSHD-1261](https://issues.apache.org/jira/browse/SSHD-1261): Sometimes async write listener is not called |
| |
| * [SSHD-1290](https://issues.apache.org/jira/browse/SSHD-1290): Race condition is logged in ChannelAsyncOutputStream |
| |
| * Update mina-core to 2.0.23 |
| |
| * Documentation fixes |
| |
| * [Change 353177](https://gerrit-review.googlesource.com/353177): |
| Document Gerrit TypeScript Plugin API @gerritcodereview/typescript-api in pg-plugin-dev. |
| |
| ### 3.5.4 |
| |
| * New features |
| |
| * [Issue 13930](https://crbug.com/gerrit/13930); |
| Support ssh kex server-sig-algs for modern RSA clients. |
| |
| * 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 architecutre. |
| |
| * DockerHub images for arm64 architecture |
| |
| [DockerHub Gerrit images](https://hub.docker.com/r/gerritcodereview/gerrit/tags?page=1&name=3.5.4) |
| include images for arm64 architecture. |
| |
| * Performance Fixes |
| |
| * [Change 350577](https://gerrit-review.googlesource.com/c/gerrit/+/350577) |
| copy-approvals: use multiple threads for copy-approvals, improve performance |
| |
| Split the work into slices of changes and then utilize one thread per slice. |
| Also skip unnecessary reindexing. On a large Gerrit site with 1.3 million |
| changes, this reduced the time for copy-approvals from 5 hours to 15-20 |
| minutes. |
| |
| * [Change 350236](https://gerrit-review.googlesource.com/c/gerrit/+/350236) |
| Optimized change visibilty checking when the project is hidden |
| |
| Looping over every change when the whole project isn't readable is a |
| waste of CPU. It's a bigger waste to fetch all the change data in the |
| first place. |
| |
| * [Issue 16379](https://crbug.com/gerrit/16379): |
| Remove key locking for disabled caches |
| |
| This change also makes the memoryLimit behaviour consistent with the |
| diskLimit set to zero means disabling the implementation of the cache. |
| |
| * [Change 349895](https://gerrit-review.googlesource.com/c/gerrit/+/349895): |
| Add AndCardinalPredicate and OrCardinalPredicate |
| |
| Before this change, IndexSource derived cardinality from predicate |
| which implement `HasCardinality`. Since `AndPredicate` and `OrPredicate` |
| does not return cardinality, IndexSource defaults to 10 when query |
| comprises more than one predicate. Due to this behavior, `AndSource` |
| chooses IndexSource almost always when query contains more than one |
| index predicate. |
| This helps `AndSource` to choose the right source more often. |
| |
| * [Change 347956](https://gerrit-review.googlesource.com/c/gerrit/+/347956): |
| Introduce possibility to define the cardinality so that `AndSource` predicate |
| can work more efficiently |
| |
| Before this change, cardinality of the IndexSource was always set to |
| 10. This makes `AndSource` to choose IndexSource over other sources most of |
| the time. |
| Add a `HasCardinality` interface which can be used by all the predicates |
| which implement IndexPredicate to set a cardinality. This helps |
| AndSource to choose the right datasource. |
| |
| * [Change 347955](https://gerrit-review.googlesource.com/c/gerrit/+/347955): |
| Consider cardinality while choosing the data source for `AndSource` predicate |
| |
| Before this change, `AndSource` considered cost to choose a datasource. |
| Ideally cost should be used to determine which predicate to run |
| `#match()` against first, so that queries are faster. Cardinality should |
| be used to determine which datasource to be picked so that there are |
| fewer changes to process. |
| Consider cardinality of the datasource to choose the source and use |
| cost when cardinality is same. |
| |
| * [Change 349355](https://gerrit-review.googlesource.com/c/gerrit/+/349355): |
| Cache repository locations in LocalDiskRepositoryManager |
| |
| Obtaining the actual location of a repository using base-path |
| and project name can be slow as it involves some guessing to |
| locate the repository. Cache the locations once they are |
| obtained to avoid repeated work, thereby improving performance |
| when opening repositories. |
| |
| * Bug Fixes |
| |
| * [Change 350576](https://gerrit-review.googlesource.com/350576) |
| copy-approvals: continue when there are corrupt meta-refs in a project |
| |
| If there was a corrupt meta-ref in a project, the copy-approvals |
| failed for all changes in that project. Mitigates [Issue 16326]. |
| |
| * [Change 350575](https://gerrit-review.googlesource.com/350575) |
| copy-approvals: don't stop when it fails on one project |
| |
| When copying of approvals failed in one project it skipped copying of |
| approvals for other projects where it would potentially finish |
| successfully. |
| |
| * [Change 350414](https://gerrit-review.googlesource.com/c/gerrit/+/350414) |
| Fix index rewriter to rewrite all Or/AndPredicates. |
| AndSource chooses right source more often |
| |
| * [Change 349314](https://gerrit-review.googlesource.com/349314) |
| Fix reindex with label copyCondition containing group. |
| |
| * [Change 350014](https://gerrit-review.googlesource.com/c/gerrit/+/350014): |
| Do not set cherryPickOf on RevertSubmission |
| |
| The RevertSubmission internally uses CherryPickChange operation. It |
| creates the 'normal' revert for the first change in the relation chain, |
| for each subsequent change it creates a revert commit that is then |
| cherry-picked. This cherry-pick is not a cherry-pick of the reverted |
| change. This is a cherry-pick of the revert commit of the original |
| change. |
| This change fixes the bug in the logic that sets cherryPickOf to the |
| original (reverted) change, using the CherryPickChange operation. |
| |
| * [Change 349894](https://gerrit-review.googlesource.com/c/gerrit/+/349894): |
| Don't always rewrite And/OrPredicate to And/OrSource |
| |
| Before this change OrPredicate was always rewritten to OrSource. This |
| is not the right thing to do as `OrSource#read()` will eventually fail |
| when there is at least one non-datasource child. Since |
| [Change 347955](https://gerrit-review.googlesource.com/c/gerrit/+/347955), |
| `AndSource` picks a source which has the lowest cardinality |
| which makes the `OrSource#read()` failures more visible. |
| Rewrite `OrPredicate` to `OrSource` only when all the children in the |
| predicate are DataSources. |
| |
| * [Change 348715](https://gerrit-review.googlesource.com/c/gerrit/+/348715); |
| Clarify that a restart is needed before changes to email templates take |
| effect |
| |
| * [Issue 16182](https://crbug.com/gerrit/16182): |
| Reintroduce the Change-Id footer in change screen |
| |
| This change reintroduce the Change-Id footer below the commit message on |
| the Gerrit UI. |
| |
| * [Issue 10168](https://crbug.com/gerrit/10168): |
| Fix HTTP 404 when browsing tags on Gitweb |
| |
| The Gitweb links to tags have been broken in v2.14.10 onwards. |
| Gitweb supports the 'a=tags' rendering action for annotated tags |
| only, returning 404 for all lightweight tags. |
| Use the generic 'a=shortlog' for Gitweb links to tags which would |
| work for both annotated and lightweight ones. |
| |
| * [Change 77495](https://gerrit-review.googlesource.com/c/gerrit/+/347495): |
| Fix for IllegalStateException during the Gerrit start when |
| `cache.projects.refreshAfterWrite` is set to true and prolog rules are used |
| |
| * Replication plugin fixes |
| |
| * [Change 350234](https://gerrit-review.googlesource.com/350234) |
| Fix URI double escaping. Stored tasks with (broken) double escaped URIs must be manually removed |
| |
| * [Issue 15804](https://crbug.com/gerrit/15804); |
| Do not retry replication when local repository not found |
| |
| * Dependency Updates |
| |
| * [Issue 14861](https://crbug.com/gerrit/14861); |
| Update jgit to c6b0ee04e49c96e0beec4154196c416abcf2bcc9. |
| This update to current stable-5.9 contains the following changes: |
| |
| * fed0ab9ba Use FileSnapshot without using configs for FileBasedConfig |
| |
| * 5606a5315 FileSnapshot: Lazy load file store attributes cache |
| |
| * 6aa29d116 Better git system config finding |
| |
| * d160e8a93 Fix missing peel-part in lsRefsV2 for loose annotated tags |
| |
| * 5f8c48413 reftable: drop code for truncated reads |
| |
| * b4782d74f reftable: pass on invalid object ID in conversion |
| |
| * Documentation fixes |
| |
| * Other Fixes |
| |
| * [Issue 16322](https://crbug.com/gerrit/16322): |
| Limit the number of changes that can be submitted together |
| |
| When chaining changes together, the sequence of commits to navigate |
| was previously unbound, causing the potential operations explosion. |
| The explosion could have also been accidental and caused by the push |
| of a change with a non-existent branch, which would have resulted |
| in the full scan of the repository for changes. |
| Introduce a new Gerrit configuration `change.maxSubmittableAtOnce` with |
| a safe default of `1024`, which would allow any use case that would have |
| also worked before this change. |
| |
| * [Change 347496](https://gerrit-review.googlesource.com/c/gerrit/+/347496): |
| Enable project_list cache warmer when `cache.project_list.maxAge` is set |
| |
| * [Change 341454](https://gerrit-review.googlesource.com/c/gerrit/+/341454): |
| GitwebServlet: Retrieve git path from FileRepository so that it can be used |
| with multi-site and cached-refdb modules |
| |
| * [Issue 15997](https://crbug.com/gerrit/15997): |
| Make DelegateRepository#delegate() method public to allow plugins/modules to |
| access it |
| |
| ### 3.5.3 |
| |
| * Security Fixes |
| |
| * [Issue 16054](https://crbug.com/gerrit/16054): |
| Fix confidentiality leak by users with create ref permission |
| using the create branch REST-API |
| |
| Any user with create ref permission was able to gain |
| access to any SHA1 or refs, including the ones that they would |
| not have permission to see. |
| |
| * Breaking changes |
| |
| * [Issue 15941](https://crbug.com/gerrit/15941): |
| Fix SSH queries to not show commit-message unless --commit-message is provided |
| |
| This issue has existed for several years and should be considered |
| breaking as users might expect commit message to be included by |
| default in SSH query results. |
| Obtaining the commit message is a costly operation as the commit |
| data has to be loaded. So, showing it even when --commit-message |
| is not provided degrades the performance of SSH queries. |
| |
| * [Change 344300](https://gerrit-review.googlesource.com/344300): |
| Add missing return values in MetricMaker's `newCallbackMetric` and |
| `newConstantMetric` |
| |
| When new callback and constant metrics were created the RegistrationHandle |
| was not returned, making impossible to de-register them. |
| The method signature is now aligned, however, all plugins, including the core ones, |
| that were registering callback or constant metrics would need to be rebuilt from |
| source or downloaded from the latest build on |
| [Gerrit-CI](https://gerrit-ci.gerritforge.com). |
| |
| * New features |
| |
| * [Change 343096](https://gerrit-review.googlesource.com/343096): |
| Introduce `index.paginationType=SEARCH_AFTER` configuration for speeding up |
| query pagination |
| |
| * [Change 343798](https://gerrit-review.googlesource.com/343798): |
| Introduce `index.pageSizeMultiplier` configuration to paginate index |
| queries with increasing size |
| |
| * [Change 344334](https://gerrit-review.googlesource.com/344334): |
| Implement `no-limit` queries with multiple pages, make them usable with |
| Elasticsearch |
| |
| * [Change 345017](https://gerrit-review.googlesource.com/345017): |
| Add public `EventTypes.getRegisteredEvents()` for accessing all stream |
| event types from plugins |
| |
| * [Change 340714](https://gerrit-review.googlesource.com/340714): |
| Introduce metrics configuration for different data reservoirs |
| |
| * Performance Fixes |
| |
| * [Change 338154](https://gerrit-review.googlesource.com/338154): |
| Lazy load change notes when submit by push |
| Improves performance of change submit via push |
| |
| * [Change 338614](https://gerrit-review.googlesource.com/338614) |
| Optimize SSH queries to avoid loading individual accounts |
| This improves performance of SSH queries. |
| |
| * [Change 338474](https://gerrit-review.googlesource.com/338474): |
| Allow async receive-commits to have a thread-local cache |
| Improve caching when merging changes through git push |
| |
| * [Change 338574](https://gerrit-review.googlesource.com/338574): |
| Cache ProjectControl instances in SSH queries |
| A PerThreadCache is used to cache ProjectControl instances to |
| improve SSH query performance. |
| |
| * [Change 338834](https://gerrit-review.googlesource.com/338834): |
| Avoid creating an IdentifiedUser multiple times in a SSH query |
| This improves performance of SSH queries. |
| |
| * Bug Fixes |
| |
| * [Change 347474](https://gerrit-review.googlesource.com/347474): |
| Fix DefaultMemoryCacheFactory to correctly set refreshAfterWrite |
| Setting refreshAfterWrite in gerrit.config now works and does not mistakenly |
| set expireAfterAccess |
| |
| * [Issue 15997](https://crbug.com/gerrit/15997): |
| Make delegate() method public |
| git-repo-metrics plugin now works with multi-site setup |
| |
| * [Issue 16018](https://crbug.com/gerrit/16018) |
| Don't try to mark files as reviewed when not logged in |
| Fix marking of reviewed flag when not logged in. "Log in is required to perform that action" popup is no longer seen |
| when viewing file diffs unauthenticated. |
| |
| * [Issue 16038](https://crbug.com/gerrit/16038): |
| Fix "internal error" when pushing to refs/users/xx/xxxx |
| Push over HTTP to refs/users/* branch now works and doesn't fail with "error: internal error" / Not Signed In |
| |
| * [Issue 16001](https://crbug.com/gerrit/16001): |
| AsciiDoctor: skip attribute when looking for title |
| Fix documentation search showing :linkattrs: instead of the document title |
| |
| * [Issue 15134](https://crbug.com/gerrit/15134): |
| Apply the match operator to filter projects |
| Next-arrow is now not hidden when searching for repositories in the Repository section |
| |
| * [Change 337474](https://gerrit-review.googlesource.com/337474): |
| Use sane value for QueryProcessor's effective limit on "--no-limit" |
| Fix errors seen when --no-limit query option is used with ES index backend |
| |
| * [Change 339754](https://gerrit-review.googlesource.com/339754): |
| Fix gerrit review command with branch option |
| |
| The gerrit review command was not able to find the commit with branch |
| option; ensure "refs/heads/" prefix is present for branch option. |
| |
| * [Issue 16106](https://crbug.com/gerrit/16106): |
| Fix label operator to work with external groups, which never worked before since |
| its addition in v2.10. |
| |
| * [Change 331762](https://gerrit-review.googlesource.com/331762): |
| Cache permission filtering for All-Projects, allowing a faster ACL evaluation |
| to any refs. |
| |
| * [Change 343694](https://gerrit-review.googlesource.com/343694): |
| Improve performance of queries that check the visibility of changes wrt a non-current user |
| |
| * [Change 346254](https://gerrit-review.googlesource.com/346254): |
| Fix change queries evaluation of `AND` terms to run match on predicate whose cost is |
| least |
| |
| Sort the change queries predicates in `AND` based on cost and cardinality, which |
| was broken since [Change 79391](). |
| |
| **WARNING**: queries containing predicates with poorly defined costs or cardinalities |
| could perform worse now. |
| |
| * Dependency Updates |
| |
| * Update JGit to 035e0e23f251fdb766a6630509bcf342efb8b3ad, including the following fixes |
| and improvements: |
| |
| * 011c26ff3 - Fix connection leak for smart http connections |
| * d67ac798f - Remove stray files (probes or lock files) created by background threads |
| * 035e0e23f - UploadPack: don't prematurely terminate timer in case of error |
| * 66ace4b9a - UploadPack: do not check reachability of visible SHA1s |
| * 8984e1f66 HTTP Smart: set correct HTTP status on error |
| |
| * Update SSHD to 2.8.0, including the following fixes and improvements: |
| |
| * [SSHD-1163](https://issues.apache.org/jira/projects/SSHD/issues/SSHD-1163): |
| Wrong server key signature algorithm chosen in DH group key exchange |
| |
| * [SSHD-1197](https://issues.apache.org/jira/projects/SSHD/issues/SSHD-1197): |
| A race condition in key exchange fixed. |
| |
| * [SSHD-1216](https://issues.apache.org/jira/projects/SSHD/issues/SSHD-1216): |
| Server-side implementation of the RFC 8332 server-sig-algs |
| extension: the server announces that it prefers the SHA-2 signatures |
| for RSA keys. |
| |
| Additionally, SSHD 2.8.0 now supports (and prefers) the |
| chacha20-poly1305@openssh.com cipher ([SSHD-1017](https://issues.apache.org/jira/projects/SSHD/issues/SSHD-1017)), |
| and supports the curve25519 and curve448 KEX algorithms |
| ([SSHD-704](https://issues.apache.org/jira/projects/SSHD/issues/SSHD-704)). |
| |
| * Documentation fixes |
| |
| * [Change 340534](https://gerrit-review.googlesource.com/340534) |
| Fix link to change.mergeabilityComputationBehavior in user-search.txt |
| |
| * [Change 339235](https://gerrit-review.googlesource.com/339235) |
| Add copy-approvals SSH command link to the index page |
| |
| * [Change 338949](https://gerrit-review.googlesource.com/338949) |
| Fix auto-generated documentation header for plugins |
| |
| * [Change 337835](https://gerrit-review.googlesource.com/337835) |
| rest-api-projects: Fix documentation for #inherited-boolean-info |
| |
| * Other Fixes |
| |
| * [Change 337835](https://gerrit-review.googlesource.com/337835): |
| rest-api-projects: Fix documentation for #inherited-boolean-info |
| |
| * [Change 340245](https://gerrit-review.googlesource.com/340245) |
| Propagate auto flush value to external index module |
| |
| * [Change 340534](https://gerrit-review.googlesource.com/340534): |
| Fix link to change.mergeabilityComputationBehavior in user-search.txt |
| |
| ### 3.5.2 |
| |
| * Important Notes |
| |
| This version is a mandatory update before migrating further to v3.6.0. |
| The following two improvements are available to support the future upgrades: |
| |
| * [Change 336883](https://gerrit-review.googlesource.com/336883): |
| Make the NoteDb parsing code accept the new label format that is introduced in Gerrit v3.6.0. |
| |
| * [Change 337697](https://gerrit-review.googlesource.com/337697): |
| Introduce [copy-approvals](https://gerrit-documentation.storage.googleapis.com/Documentation/3.5.2/cmd-copy-approvals.html) |
| SSH command for copying votes to the latest patch-sets online |
| |
| * [Change 337308](https://gerrit-review.googlesource.com/337308): |
| Introduce `copy-approvals` site program for copying votes to the latest patch-sets offline |
| |
| > **NOTE**: The execution of the `copy-approvals` SSH command (online) or the `java -jar gerrit.war copy-approvals` |
| > site command (offline) may take a long time to complete due to the full scanning of all projects. |
| |
| * New Features |
| |
| * [Change 337231](https://gerrit-review.googlesource.com/337231): |
| Expose proto package in plugin API, allowing to reuse the runtime libraries included in Gerrit |
| |
| * Bug Fixes |
| |
| * [Change 335705](https://gerrit-review.googlesource.com/335705): |
| Fix bazel build on Mac M1 (aarch64) |
| |
| * [Change 334762](https://gerrit-review.googlesource.com/334762): |
| Use original javax.servlet-api instead of tomcat's copy |
| |
| * [Change 334299](https://gerrit-review.googlesource.com/334299): |
| Reject invalid queries with status code 400 on `POST /accounts/<account-identifier>/watched.projects` |
| |
| * [Issue 14109](https://crbug.com/gerrit/14109): |
| Fix NPE with cherry pick REST-API onto an existing change in a different branch |
| |
| * [Issue 15887](https://crbug.com/gerrit/15887): |
| Fix the auto-complete on the Gerrit search box |
| |
| * [Issue 15889](https://crbug.com/gerrit/15889): |
| Remove spams of "Logging context is not empty" in Gerrit's error_log |
| |
| * [Issue 15531](https://crbug.com/gerrit/15531): |
| Disable tracing.performanceLogging by default because of increase of memory footprint |
| |
| * [Change 335194](https://gerrit-review.googlesource.com/335194): |
| Fix threading issue in diff cache which caused sporadic Zlib exception making it look like |
| the pack file was currupted |
| |
| * Dependency Updates |
| |
| * Update rules_nodejs version to 5.1.0. |
| |
| * Update JGit to 78c9b9260a5287d09c87b407e396021590714513. |
| |
| ### 3.5.1 |
| |
| * Security Fixes |
| |
| * [Change 333304](https://gerrit-review.googlesource.com/333304): |
| Ignore `--no-limit` query changes option for anonymous users |
| |
| Prevent the use of `no-limit` option with query changes REST API. |
| The option can result in excessive resources usage make Gerrit subject |
| to DoS and DDoS by any remote endpoint without the need to have any |
| Gerrit account or signing in. |
| |
| * Breaking changes |
| |
| * [Issue 15589](https://crbug.com/gerrit/15589): |
| Add SHA-1 hash variable to gitweb file links |
| |
| This change necessitates a Gitiles plugin update to |
| [v3.5.1](https://gerrit.googlesource.com/plugins/gitiles/+/refs/tags/v3.5.1). |
| |
| * Docker Images |
| |
| * [Change 329639](https://gerrit-review.googlesource.com/329639): |
| CentOS 8 AppStream has disappeared: use AlmaLinux 8.5 as replacement for Gerrit image |
| |
| * Bug Fixes |
| |
| * [Issue 14945](https://crbug.com/gerrit/14945): |
| Account cache is not caching the access to the account data refs |
| |
| Account cache in Gerrit v3.5 does not cache the access to the All-Users.git |
| repository because of the refactoring of the cache key, which requires lookup |
| of the All-Users.git refs. Gerrit allows now the refs in-memory caching using |
| the [cached-refs](https://gerrit.googlesource.com/modules/cached-refdb) libModule. |
| |
| * [Issue 14912](https://crbug.com/gerrit/14912): |
| Fix lost watch notifications when attention-set-only is configured |
| |
| * [Issue 15407](https://crbug.com/gerrit/15407): |
| MultiBaseLocalDiskRepositoryManager cannot be overloaded by libModules |
| |
| Allow the replacement of multi-base git repositories through libModules, which |
| wasn't possible before. Allow to use multi-base git repositories with the |
| [multi-site](https://gerrit.googlesource.com/plugins/multi-site/) plugin and the |
| [cached-refs](https://gerrit.googlesource.com/modules/cached-refdb) libModule |
| |
| * [Issue 15500](https://crbug.com/gerrit/15500): |
| Fix java.util.IllegalFormatArgumentIndexException on Java 17 in |
| MergeUtil#mergeWithConflicts |
| |
| * [Issue 15531](https://crbug.com/gerrit/15531): |
| Disable performance metrics by default. |
| |
| Performance metrics were introduced in 3.5. |
| This caused, for example when upgrading from 3.4 to 3.5, |
| a 10X increase of metrics, from thousands to tens of thousands. |
| |
| Disabling it by default to avoid an unexpected 10X increase |
| of metrics payload, which could lead to an increase of latency |
| when returning it. |
| |
| * [Issue 15590](https://crbug.com/gerrit/15590): |
| Fix SLF4J binding to Reload4J |
| |
| Use Reload4J-specific binding for SLF4J, fixing the broken MDC |
| since the swap of Log4J with Reload4J done in |
| [Change 328081](https://gerrit-review.googlesource.com/c/gerrit/+/328081). |
| |
| |
| * [Change 330359](https://gerrit-review.googlesource.com/c/gerrit/+/330359): |
| Fix gerrit ls-members --recursive |
| |
| Fix a regression introduced with |
| [Change 134334](https://gerrit-review.googlesource.com/c/gerrit/+/134334) |
| that caused it to ignore the --recursive flag. |
| |
| * [Change 327950](https://gerrit-review.googlesource.com/c/gerrit/+/327950): |
| PrologRuleEvaluator: Fix endless loop on type error |
| |
| * [Change 330579](https://gerrit-review.googlesource.com/c/gerrit/+/330579): |
| Restore transition support for cache-automerge refs which point to a tree |
| |
| Versions of Gerrit older than v2.13 may have cache-automerge refs |
| which point to a tree. These older refs are not considered valid by |
| AutoMerger, but are not removed or invalidated. |
| |
| * [Change 331379](https://gerrit-review.googlesource.com/c/gerrit/+/331379): |
| Improve performance in ACL permissions evaluation by computing project state only when needed |
| |
| * [Change 331639](https://gerrit-review.googlesource.com/c/gerrit/+/331639): |
| Memoize compiled ref pattern in project cache, known to be expensive |
| |
| * [Change 331762](https://gerrit-review.googlesource.com/c/gerrit/+/331762): |
| Cache permission filtering for All-Projects |
| |
| * [Change 331763](https://gerrit-review.googlesource.com/c/gerrit/+/331763): |
| Move ordering of the project access section to the cached value creation for better performance |
| |
| * Documentation Fixes |
| |
| * [Change 331361](https://gerrit-review.googlesource.com/c/gerrit/+/331361): |
| Fixup old references to Database in documentation |
| |
| * [Change 331360](https://gerrit-review.googlesource.com/c/gerrit/+/331360): |
| Remove leftover receive.changeUpdateThreads references |
| |
| * [Change 290603](https://gerrit-review.googlesource.com/c/gerrit/+/290603): |
| Fix gerrit ls-groups flag `-g` in documentation |
| |
| * Other Fixes |
| |
| * [Issue 15667](https://crbug.com/gerrit/15667): |
| Fix Zuul build with obsolete Python 3.5. |
| |
| * Dependency Updates |
| |
| * Update SLF4J version to 1.7.36. |
| |
| * Replace Log4J with reload4j version 1.2.19. |