Download: 3.4.2 | 3.4.1 | 3.4.0
Documentation: 3.4.2 | 3.4.1 | 3.4.0
Deprecated JCraft JSch client library is replaced with MINA SSHD client library per default. There is still option to switch to using JCraft JSch client library. Support for JCraft JSch will be removed in the next gerrit release.
The java language level is now set to Java 11 by default for Gerrit.
Issue 13494; Generate a Java 11 Eclipse project by default
Update dev-{eclipse,intellij} development for Java 11.
Gerrit source code is still compatible with Java 8.
This release doesn't contain schema changes.
The changes index version has been increased to version 61, new change search operators were added: mergedafter
and mergedbefore
.
To run off-line reindexing of the changes (optional):
java -jar gerrit.war reindex --index changes -d site_path
By default the changes index is automatically rebuilt upon the Gerrit startup after the upgrade.
Gerrit supports zero-downtime upgrade from Gerrit v3.3 when configured using a high-availability configuration, when the Git repositories are stored in a shared filesystem such as NFS or similar.
For upgrading with zero-downtime, you should enable the rolling upgrade migration in gerrit.config
on both Gerrit servers by setting the gerrit.experimentalRollingUpgrade
to true
.
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 the Git protocol.
The zero-downtime upgrade consists of the following steps:
gerrit.experimentalRollingUpgrade
to true
in gerrit.config
on both Gerrit servers.gerrit.experimentalRollingUpgrade
from gerrit.config
on both Gerrit servers.Downgrade to any Gerrit v3.3.x release is possible, but requires the following manual steps:
is:mergeable
predicate is disabled per default.Computing is:mergeable
has a O(N^2) runtime computation complexity depending on the number of open changes on a branch and on the size of the changes. Hence skip this computation per default to avoid the associated runtime effort.
Most Gerrit installation already disabled this feature and thus wouldn't need to change anything. Otherwise, to restore the previous behaviour this option: change.mergeabilityComputationBehavior
should be changed to API_REF_UPDATED_AND_CHANGE_REINDEX
.
HTML plugins should be migrated to JavaScript plugins. This also implies Polymer 2 plugins wouldn't work any more. See also this announcement for more details.
These unused JavaScript Plugin API methods were removed:
plugin.annotationApi().setLayer()
, plugin.annotationApi().enableToggleCheckbox()
plugin.changeMetadata().*
plugin.changeReply().send()
plugin.eventHelper().on()
, plugin.eventHelper().captureClick()
, plugin.eventHelper().captureTap()
plugin.project().*
plugin.settings().*
plugin.styles().*
plugin.theme().*
plugin.get()
, plugin.post()
, plugin.put()
, plugin.delete()
: Replaced by their counterparts in plugin.restApi()
.As noted in the v3.3 release notes, ChangeAttributeFactory has been removed.
Gerrit now has a native UI for displaying run/result info from builds, tests, analyzers, etc. The data for this new Checks UI must be provided by JavaScript plugins using the Checks API. Checks information will be summarized by chips below the commit message. Detailed information is shown on a dedicated Checks
tab next to the Files
and Comments
tabs.
Unresolved comments that were left on older patchsets will now also be shown on newer patchsets. The backend provides two new endpoints ported_comments/
and ported_drafts/
for the UI to retrieve the data and for showing the comments in the correct position.
Comment state (resolved, unresolved, draft) is summarized by chips below the commit message. The Comments Tab and the Change Log will not just show the comment thread, but also the snippet of code (where the comment was made) as context.
Limit overview image interactions to primary mouse button
Fix: cannot select names in hovercards in the reply dialog
Fix thick border on votes in reply dialog
Add a simple hovercard for check runs
Add hover states to summary chips
Align relation chain section with the change info section and button
Show ‘show all’ button only when commit message has 17 or more lines
Show hovercard actions in submit requirement account chips
Update UX for selecting and filter checks
Show hovercard actions in change log
Fix condition check of show_file_comment_button
Do not try to open reply dialog when change is not loaded
Fix Show all button on related changes for wide screen
Explicitly refit overlay for cherry pick dialog
Align text and radio button in cherry pick dialog
PolyGerrit: Simplify some regular expressions
Redesign Show all button in related changes
Add View Diff button to comment context
Fix show more button
Comments tab - radio buttons
Issue 14057; Add check for undefined commentThread property in submit dialog
Do not render confirm submit dialog until it is opened
Show unresolved comments in the confirm submit dialog
Show View Diff button for merge change messages
trigger range highlight on long range comment chip hover
Issue 13905; Fix attention icon in reply dialog
Enable prev/next button on first/last file to go to change page
A11y - when dialog opened make rest of page unfocusable
Add feedback button to top bar
Fix the “View Diff” button padding
Disable cherry pick button if branch is not specified
Add tooltip when Send Reply button is disabled
Do not show quick approve button on merged changes
Use RestApiService instead of Polymer element
Move chunks - UX improvements
Show quick-approve button even when change is already approved
A11y - Shortcuts tables in dialog
A11y - return focus when closing dialog
Provide clearer above / below mapping for context expansion buttons
Ensure changes with outdated patchsets have a disabled submit button
Add Publish button to editor
Update Save button to Save & Close file in edit view
A11y - Fix reading whole diff preferences dialog
Replace polymer readonly attribute with ts readonly
Issue 13511; Fix repositioning the reply dialog when the attention section expands
Issue 13506; Change the tooltip of the ‘MODIFY’ button to be fancier
Fix ‘Send’ button being enabled even without the user making any changes
Add more functionalities to hovercard
Change when and how attention can be modified in the reply dialog
Use a selection chip also in the attention summary of the reply dialog
Issue 13427; Do not show attention related hovercard actions to guest users
Documentation: SHA-1 iso. SHA1
Issue 14295; Tidy up cross-repository-changes documentation
Add user privacy documentation
Document how to get pretty-printed JSON for REST calls
Fix image url in documentation page
Documentation: avoid * in ref expressions.
Document a 24h waiting period for features/API extension
Update the documentation of ReviewInput.tag
Document when cherry pick fields in ChangeInfo are set
Fix documentation of config_web_links field in ProjectAccessInfo
Add documentation for change.maxFiles and change.maxPatchSets
Add user documentation for ported comments
DeleteTags: document corner case behavior
CreateTag: document why we don't check for visibility
CommitsCollection: document parseBody() call
Tidy up dev-plugins documentation table of files
Add more details of what a plugin's documentation contains
Fix documentation for MoveAPI keepAllVotes option
Issue 11621; Document that a CVE should be filed for security issues
Document that external-ids paths variably nested
Documentation: clarify how the default branch is set
Document log4j config override
Document how to generate the html documentation
Replace obsolete ACCOUNT_GROUPS table in documentation
Document how vacant non-Google ESC seats get refilled
This update includes this change, which (when configured) will make repacking with Gerrit less racy by ensuring a pruned object is still available for some amount of time after repacking finishes.
Update jgit to 9bfb0f3a4
Update jgit to 4560bdf7e
InitJgitConfig: Git protocol v2 is enabled per default
Add passing the ‘compression-level’ argument to the JGit ArchiveCommand
Update JGit to 59420886e98bfcb574511cea191ccb3953004610
Update JGit to 415788df2
Issue 13544; Upgrade JGit to 5cd485e5
Move elasticsearch back to WORKSPACE
Elasticsearch: Add support for configuring REST client timeouts
Issue 14075; Bazel: Specify exact dependencies for licenses rules
Upgrade Flexmark to 0.50.42
Upgrade jackson-core to 2.12.0
Upgrade protobuf version to 3.14.0
Upgrade jetty version to 9.4.36.v20210114
Upgrade rules_nodejs version to 3.2.3
Upgrade MINA SSHD version to 2.6.0
Trim dependencies in httpd/auth/restapi/BUILD
Issue 13140; Issue 14330; OpenID: Remove support for Yahoo! OpenID provider
ChangeInfo: change _number from int to Integer
PatchScriptFactory: Access Metrics constants in static way
MissingMetaObjectException: Add default serialVersionUID
Flush file diff cache after change Ic1eeccfeb6b18f6
Support panning magnified image by dragging
Add comments on boolean arg for calls of ProjectLevelConfig#getWithInheritance
Re-render diff when useNewImageDiffUi is changed
Include the boy scout rule in Gerrit contribution guide
Add the meta_diff endpoint to the Change API
Indicate soft hyphen in diff
Use MINA sshd library for key generation and export
Issue 12599; Git transport: Switch to using Apache MINA ssh client per default
Issue 12599; Git transport: Add option to switch to using MINA ssh client
Update file status colors
Make rows in change log with same height (36px)
Fix file size for executable files in new diff cache
Ensure image diff data URLs are accepted by goog.html.SafeUrl
Issue 14301; Fix change reload not loading because js error in checks service
Issue 14300; Revert “Revert “Convert gr-app_test to typescript””
Convert SectionSortCache to use get/loader instead of getIfPresent/put
Add comments chips to tab navigation
Issue 14300; Revert “Convert gr-app_test to typescript”
Expose auto-value-gson in plugin API
Improve vote chips in dark theme
Let image diff builder know when to use new UI
Add border outline for +1, -1
Glossary terms regarding Events
Improve alert message for syntax highlighting turned off
Show both ‘Expand All’ and ‘Collapse All’ if some files are expanded
Add the missing green-400 color
Add basic overlay / blink image viewer
Fix regression - enable insensitive search for repo search
Introduce a glossary section
Move all soy templates files to unique namespaces
Add commitSha to the Checks API fetch() interface
Load multiple groups more efficiently
Persist group cache by uuid
Preload comments with context
Add simple attempt support to Checks UI
Update the header of the Checks tab
Specify background color for dark theme for ported comments
Move InternalGroup to the entities package
Add an internalId to check runs and results
Fix expanded result rows to not react on click to expand/collapse
Issue 12639; Bump guice version to 5.0.1
Compute AutoMerge commits synchronously when processing merge commits
Reduce tooltip delay from 500 to 200 ms
Add comment context to draft comments
Add 6 colors for check result tags
Update colors
SubmitRecords: Accept empty records from the change index
ChangeData: Disallow computing submit rules when serving query results
Fix computation of ChangeData#merge
Describe Timing reporting constants
Adapt old path in FileInfoJsonNewImpl to old diff cache representation
Fix NPE in FileInfoJsonComparingImpl when base = null
Add ChangeInfo to the ChangeData that the Checks API send to plugins
Introduce reporting constants - Timing
Navigate to previous unreviewed file when pressing “p”
Add timeout to DiffOperations
Switch GetDiff to use the new diff cache
Add spacing between party poppers and text in the comment tab
Add more spacing between related changes sections
Stop container jump on show all/less in Other Labels
Implement host-level default for ‘HEAD’ when new projects are created.
Add user guide for using topics.
Fix auto-merge detection in new diff cache
Replace tap by click event
Ignore new work-in-progress status if it hasn't changed
Add frontend reporting of “usp” URL parameter
Add tracking to the global Gerrit object
Fix endpoint parameters for check result rows
Fix typing of ‘reply’ event
Add link that mentions bots to the attention set user guide
Introduce reporting constants - Execution
Lowercase C in ‘No Comments’
GrCursorManager: One-way-bind index
Move GrCursorManager element hooks to parents
Issue 14214; Fix alert text color
Replace this.async() with setTimeout()
Dark launch the new diff cache for the list files endpoint
Nothing to be forward-compatible with Lit 2
Replace at-/de-tached with dis-connectedCallback
Introduce reporting constants - Life Cycle
Related changes sections use all space if needed
Autocomplete for adding topic
Update designdoc to current state
Show toast when user stars a change
Issue 14199; Add attention operator for auto-complete
UI improvements for show all bar in commit message
Clean up ported comments experiment
Fix tracking of plugin-api calls
Update logic for clicking checks chips in the summary
Adapt old/new paths of the new diff cache to current Get Diff behaviour
Add tooltips to check links
Do not mark file reviewed when navigating using “n”
Read SubmitRecords back from NoteDb if allowClosed is false
PatchScriptFactory: Add logging statements for dark launch in mismatch
Minor improvements to ported comments message without range
Show arrows that indicate collapsed ancestors/descendents
Add count of results to section headers of check results
Add a ‘usp’ URL parameter that can be used for tracking
Hide comment context if screen width is less than 1200 px
Minor improvements to comment context
Add a request parameter to the Get Diff endpoint to use new diff cache
Issue 12983; Allow users to specify default branch when creating a repo
Add commit message to ChangeData of Checks API interface
Move show file comment to RenderPreferences
Convert ranged comment and move chips into hints
Implement syntax highlighting for comment context
Only show run and results filters in new Checks UI when needed
Modify the GetDiff endpoint to use the redesigned diff cache
Use Python 3 in populate-fixture-data.py
Fix reading empty subsections from plugin config
Add tracking for all frontend API calls
Add regular polling for checks
Implement patchset picker for new Checks UI
ProjectLevelConfig: Cache parsed config and avoid reparsing
Feedback for triggered actions
Fix tiny performance nit in ApprovalInferance
Enforce size limits for post submit diffs
Do not call Diff Cache when not needed
New Change Summary - fixing styling issues
Use StringBuilder instead of String concatenation to avoid O(n^2) performance.
Add separator between date and patchset in change log
Add a loading state to the checks model and use it for the summary
Fix how the change gets updated in the change-model and -service
Issue 14141; Add more data to successful runs in the new Checks UI
Update all rows of a change on the dashboard when one is changed
Handle checks summary chip clicks by filtering the tab accordingly
ReviewJson: Load SubmitRecords from ChangeData to avoid reevaluation in loop
Fix caching for SubmitRecords in ChangeData
Implement expanding and collapsing of run and result sections
Replace all colors with css vars defined in app-theme
Fix chip styles in Checks UI for dark theme
Introduce components for new image diff UI
Fix alignment of runnable chip title
Retry the creation of auto-merge commits more persistently
Use primary background color var to support dark theme
Retry submits more persistently
Add ‘parentof’ operator that matches parent changes for a change
Allow CCs to change the attention set
Avoid using underscores for private properties
Implement filtering and lazy loading of checks
New change summary - align count nonvisible changes
Change the long comment threshold from 5 to 10.
Adding sameTopic, mergeConflicts, cherrypicks to new change summary
Fix rebase action in new change summary
Expose instanceId in GerritInfo
Add readonly to restApiService property
Properly check the required ‘action’ property
Change the Checks fetch API to send a data object
Add a plugin endpoint to the expanded check result
Add support for top-level actions
Do not render more than 5 links in one check result row
Fix the gap between commit message and summaries
Limit total lines of context shown
Highlight the entire line in comment context for line comments
Click on comment chip will select same category in comments tab
Move render only properties to RenderPreferences
Filter out merged changes when submitting a topic
Issue 14102; Return empty context if the comment range is outside file boundaries
GetChange: provide meta=SHA1 option
Change expand diff context shortcut to be a toggle
New Change Summary - small fixes
Disallow creating projects with Gerrit internal refs as branch input
Add context padding to comment context request
Add zero state messages for Checks and Comments
Reduce the gap between commit message and summaries
GetChange: populate ChangeInfo.metaRevId with the NoteDb meta ref SHA1
Change cursor to pointer for run selection chips
Fix ‘Completed without results.’ font-weight
Highlight comment range
Vertically align first run section with first result section
Show the lines of code around a comment as context
Adding Related changes to new change summary
Request comment context along with the comments from server
Exclude unneeded ref prefixes when getting refs
Set commit message min-height to 100px
Add resolved text to comment
Filter robotComments without Human Reply
Change horizontal padding of summary chip from 4px to 8px
Add experiment ID for new image diff UI
Support experiment features in Gerrit backend
Create and move plugin APIs to api/ folder
Issue 14080; Split configs for RevisionDiffIT to different subclasses
Manually revert RefFilterOptions.returnMostRecentRefChanges
Check for old and new file modes in FileDiffCacheImpl
Handle single file diffs for non-existent files
Fix the alignment of the Change Info section
Change SAVE to SEND AS WIP
Set min-width for search
Add handling for run actions in new Checks UI
uploadPackAuditEventLog: Avoid commit timestamp mismatch
Find out why the error-manager initiates page reloads
Fix bug: don't lookup in NoteDb when reading cached changes
InternalServerWithUserMessageException: Add serialVersionUID
Issue 14046; Fix bug: Do not change WIP status when not needed during rebase
Fix long range comment selection on Firefox
Clarify LOST value of LineNumber
Fix the height and background color of comments tab header
Fix the metadata reviewers line height
Small styling fix of successful check summary
Collapsing related changes
Issue 13836; Add a css var for coloring change log entries by service users
Fix account overflow problems in Change Log
Fix bug: also advertise refs/changes/../robot-comments when applicable
Fix bug not loading robot comments notes
Show all bar when editing commit message
Clean up auto reload dashboard experiment
Fix CmdLineParser.MyParser to not throw ClassCastException
Add option to dismiss new messages toast
Issue 13717; Add reviewers to attention set when replying to WIP changes
Some small checks summary UI tweaks
Fix a tiny bug in FileDiffCache for commit messages
Add selection of check run chips
Update comment tooltip if shortcuts are disabled
Drop outdated comments from Change.java
Configure maximum allowed value for the number of context padding lines
Add the context-padding parameter to the comment context
Issue 13571; Suppress keyboard shortcuts if user has disabled them
Revise the summary of the new Checks UI
Inline entity protobufs directly into cache protobufs
Fix FilesInCommitCollection when parent = 0
Add to missing declare
statements
New Change Summary - Submitted together
FileEdits: Simplify instance creation
Retry more often on submit
Show avatars for unresolved comments authors
Extract persistent cache base factory
Move DiffLayer to the API
Move move-link-click event details to API
Move LineNumber to API
Move ContentLoadNeededEventDetail to the API
Make GrDiffGroupRange use LineRange
Fix being able to reload the Checks UI
Comments summary - unresolved comments + styling
Introducing new component for relation chain
Use a new custom exception instead of StorageException on submit
Left align ‘No changes need your attention’ message'
Add a RefFilterOption to always return all most recent ref changes
Send all user's votes instead of only changed votes
Add single file diff to the DiffOperations interface
Issue 14034; Fix bug of removableReviewers without votes
Add extra width to display full names
Resolve TODO about removing SPECIAL_PATCH_SET_NUM
Comments Summary - initial work
Issue 13392; Fix text overflow in account labels
Issue 12536; Auto focus on the first input field
Issue 14000; Fix being able to flip your own attention flag
Fix font-weight in new Checks UI
LocalDiskRepositoryManager: Don't compute base path before it is needed
Handle the comment context for merge list
Fix comment context for commit messages
New change summary - commit message with show all bar
Apply same spacing rules for long range chips as in move detection
Add message that files were not changed on submit
Fix loading of plugin provided coverage layer
Allow user to re-vote their same vote
ReviewerRecommender: Fix an imprecise comment
Add author name to new messages toast
Issue 2335; Add repository browser link to repo detail page
Adapt getRefs + filter to use the more efficient implementation
Use quotes in search query only when neccessary
Use the redesigned diff cache in the list files endpoint
Fix diff cursor side for chunks on first or last line of file
Add undefined check for accessing account id
Change linked URL for topic
Return the commit message and merge list for auto-merge with > 2 parents
Prevent duplicate ranged comment chips on rerender
Update message text in ported comments
Replace the placeholders in checks tab with something more decent
Allow posting the same vote on a new patchset
Do not show fake runs by default, but allow them to be toggled
Introduce material web components for use
Prevent skipping chunks on first or last line of file
A11y - announce that change is in edit mode
Propagate error's text received from backend to a plugin
Add an option for checks to provide HTML results
Issue 12838; Add manual sync of cursor for gr-change-list
Move CommentRange to api/
Move GetOAuthToken out of the core restapi
Return empty comment context if line and range info are not available
Add basic support for expanding a checks row
Fix issue with rounding in calculation of time duration
Reload dashboard when visibility changes
Issue 13970; Increase the memory allocation for acceptance tests to 512m
Move the Side enum to the API
Reload ported comments when patchset picker is changed
Issue 13914; Prioritize ‘ADDED’ entries over ‘DELETED’ for file diffs
Refine the Checks Results UI
A11y - Each page should have only one main
Fix getSelection error
Reland: Use LoadingCache#getAll in AccountCacheImpl
Adapt voting chips to new chip style sizing
Handle clicks on new checks chips
Refine the UI of the checks chips
Add long range comment chip
Add ported drafts to comment count string
Throw one exception for both unresolvable commits and permission denied
Move OAuth and LDAP support out of server target
Add lit elements for Runs and Results
Only allow involved users to change the attention set
Disallow creating branches in Gerrit internal or tag refs namespaces
Create Branch: clarify that BranchInput and URL should match for ref
Add tracking when user navigates to original comment
Propagate the exception cause in CherryPickChange#cherryPick
DeleteRef: clarify ‘prefix’ argument
Make code compile in Eclipse
Rebase: Include conflicting files into the conflict response
Allow rebase with conflicts
Exempt JimFS from Library-Compliance.
tools/coverage.sh: Expand bash aliases and source bash profile
Add handling for Commit message and Rebase change messages
Add handling for ported comments with side=Parent
CheckAccess: print a useful message if no rules apply
restapi/project: move CheckAccessReadView into CheckAccess
restapi/project: add some comments
restapi/accounts: clarify permission related behaviors
Introduce the new DiffsOperations interface
Replace enable_context with enable-context in docs
Set path to null after filling the comment context
Allow users to select which changes to cherry pick
Create enum for the progress status of cherry picked change
Expose the entire commit message instead of only the subject
Disallow creating changes on internal Gerrit refs
Filter disabled experiments from settings view
Add the file diff cache
ExternalUser: Allow specifying a PropertyMap
Expose email addresses for ExternalUsers
Increase visibility of failed retries
Avoid passing @Singleton to args4j
Move ExternalUser from change.query into server package
Add status chip to file dropdown in diff view
Issue 13571; Add preference to disable all keyboard shortcuts
Update _computeMessageContent to use optional properties
Add diff between patchset N vs N - 1 on uploaded messages
Use current timestamp for creating group
CurrentUser: Expose set of ExternalId.Keys
GroupBackend: Accept CurrentUser instead of IdentifiedUser
CreateChange: Allow specifying correct project
Take empty arrays into account to break down chunks
Disallow creating changes on NoteDb refs
Fix compile error because of required new actions
parameter
Fix unquoted properties of HTMLElementEventMap
Verify destination change of cherry-pick before trying to update it
Fix the z-index of the main header
Add top-level actions for Checks API
Allow porting comments to contribute to comment count string
Update comment route to handle comments created with side=PARENT
Only request ported comments when experiment is enabled
Add checks service
Add a model for router and change
Update existing change on cherry-pick with CommitApi
Implement mergedafter and mergedbefore change search operator
Change the default permissions from READ on refs/* to refs/heads/*
Support refs/users/self for the GET branch rest endpoint
Fixes for tools/coverage.sh
Adopt last updated time predicates to reuse for merged time predicates
Add an extension point to extend the change message on post review
Port drafts across patchsets
New change summary - introduce edit pencil
Fix PluginLogFile to not open multiple appenders when run in parallel
Port comments across patchsets
Fix for text selection in comment
Hide quick-approve for your own change or if you have already given max vote
Move __editing property to be part of only UIDraft
Add missing parameter to getThreadsBy* call
Add an option to keep votes when moving the change to another branch.
Clean up error reporting
Issue 13770; Do not add owner to the attention set when added as reviewer
Define a default errFn for REST API calls from plugins
Convert commentSide to diffSide in GrCommentThread
Move chunks: Add links to line numbers
Change all components to use the service for rest-api-interface
Add a service for rest-api
Set AutocompleteSuggestion property value to be string
Expose the mergedOn date of a change in ChangeNotes
Ignore no-unused-vars rule on args pattern ^_
Do not collapse lines of code with less than 4 lines
Get rid of some globals
Avoid throwing IllegalArgumentException when failing to parse an enum
Extend PatchSetWebLink to include subject and branch name
Replace non-standard event.path with event.composedPath
Show Submitted Date in change summary
Issue 13728; Fix dashboard not showing up for not-logged in user
A11y - improve announcing
Add a constant for ‘current’
Issue 13734; Fix the change message for removing cc
Move java_tools javac argument into tools parameter.
Fix A11y regression
Fix DynamicOptions to support a custom bean
Exempt guava from LC review
New change summary ui - flag, metadata
Do not re-initialise toast displayed time when navigating
Add braces to arrow functions returning void
Add simple visual distinction for move control text
A11y - Fix tabbing out of searchbar
Replace comment route in url bar with meaningful url
Clean-up ChangeNotesCache.Weigher
Add basic scaffolding for the checks tab
Add ‘prefer null’ to frontend style guide
Wrap isAtStart/End() in GrDiffCursor
Move some of the old diff cache entities to a new package
Add the git file diff cache
Make isAtStart/End() return true when no stops
Show all comments upon creation if user had hidden them
Show robot id for robot comments in comment card
Pass on CursorMoveResult
Show reviewer on comment tooltip
ChangeInfo: Serve reviewers when LABELS are requested
A11y - Improve diff a11y
Show alert when syntax highlighting is turned off
Improve description of moved chunks
Fix empty filter handling in list-view
Issue 13689; Bazel: Fix eclipse project generation
Fix Shift-A shortcut for hiding the left side of the diff
Update stops when a diff starts or stops loading
Make show_on... fields boolean
ProjectConfig: Write resolved groups to file
ChangeNotes: Don't use ChangeIndex when we can avoid it
Issue 13612; Fix bazel run_shell usage for newer versions
Issue 13669; Remove --line-height-code in favor of calc() rules
Reduce boiler plate for event listening
When added as author, be added as CC and not reviewer
auth-check: Set content length only if authorization is valid
Add new ChecksApi to PluginApi
Treat spaces as ordinary characters in diff view
Issue 13658; Convert comment counts to comment thread counts around the UI
Specify line-height for code in terms of rem
Refuse to expand skip groups with WHOLE_FILE
Fix showing “Add Patchset Description” for users that are not logged in
Support diffing for octopus merges against a specific parent
Fix broken link to release notes of 2.2.2 in prolog cookbook
Update developer list in Maven pom files
Abort cursor movements across a loading diff
Issue 7458; Fix iron-dropdown positioning
Abort cursor moves via a sentinel, not a callback
Don't unset scroll on non-existant stop
ported draft comments: Require authentication
Allow multiple plugins to provide coverage data
Hide patch file download when the commit has multiple parents
Add support to skip chunks
Issue 13336; Support accessing other users' named queries
Only request ported drafts if user is logged in
Catch errors in getPortedComments request
Allow adding and removing invisible users to the attention set
Issue 13336; Support to query for user specific named destinations
Ensure users are active on the change when adding to attention set
Use ChangeData in LabelJson
Add latency tracking for porting comments
Add hasDrafts property to re-compute attention set
Fix headline for user queries for users without name
A11y - headlines for Diff Page
A11y - headlines for Change Page
Flip the defaults of the attention and assignee flags
A11y - headlines for Dashboard Page
Add the GitModifiedFilesCache and ModifiedFilesCache
Add constant for Service Users
Linkify branch name in repo detail list
Do not navigate to Base vs X if X is Base and file is unchanged
Submit emails should always be sent
Issue 13522; Fix topic creation in command line to send a topicEditedEvent
Improve message if submit fails due to non-fulfilled submit requirements
Add fatal to consistency and validation error enums
Add keyboard shortcut ‘f’ to open file list in diff view
Fix DefaultPermissionBackend#absentUser to work outside the request scope
Issue 13543; Fix navigate back to change page with ‘[’ on first diff.
Update mixins to avoid compilation issues
Required fixes to match internal google rules
Ensure that all assignment to window.Gerrit properties are safe
Use overridden ChangeEmail#add instead of OutgoingEmail#add
Show comment in viewport when navigating to Base vs X
Do not skip lines marked as dueToMove
Replace parseInt() with Number
Fix TseTse errors
DefaultPermissionBackend: Reuse current user where possible
Add event detail interfaces for dispatchEventThroughTarget
Replace “Since” by “Waiting”
Fix patchset comparison when adding coverages
Compute known groups lazily when writing groups to the trace
Fix TseTse errors.
Toggle default to show unresolved comments
Do not add reviewer to the attention set when they add themselves
Fix attention set tip not showing up
Add email notification option ATTENTION_SET_ONLY
Add more fine logging to SubmitStrategyOp
Replace dispatchEvent with dispatchEventThroughTarget
Add a header about attention set for all change emails
IdentifiedUser.RequestFactory#runAs allow passing properties
Allow user preference to receive emails only when in attention set
Fix TseTse error
Convert patchNum into integer if possible
Bold the user name, if they are in the attention set
Fix showing the CC section in the attention modify section
Change attention set logic to take unresolved state into account
Do not add the owner to an otherwise empty attention set
Fix “Do not update attention set” message
Do not rely on SortedMap / Set semantics for Flogger tags
Cache the comment context
Add ‘Since’ and ‘Submitted’ columns to dashboard sections
Change the sorting of changes in the ‘Your Turn’ dashboard section
Highlight the dashboard rows with attention as reviewer
Use auto-value-gson
Maintain all attention set updates in ChangeNotesState
ReceivePackRefCache, locate patch-sets instead of refs
Include repo config into CommitReceivedEvent
PostWatchedProjects: Throw BRE in case of empty input
CheckAccess: Return ACL debug logs
download-commands: use unqiue constants for each download command
New features
Change 324095: Display cache statistics after reindex operation.
Help analyzing the cache utilization during reindex command and provide insight into sizing them for optimal performance.
Change 323786: Allow context-dependent group suggestions in gr-permission.
Change 322975: Shows the number of changes that failed reindexing even if less than 10% fail.
Issue 14930: Include Command-Status
in the httpd_log
and the httpd_log.json
Indicates the overall result of the GIT command over HTTP.
Refer to the docs for more details.
Issue 14895: Support author:self and committer:self in change queries
It is possible to use self
for searching own changes (for both author and committer predicates).
Reindexing performance improvements
Change 323215 Change 322296: Disable auto flushing during offline Lucene indexing.
Change 322835: Use thread count specified on offline reindex command line.
Honor the “--threads” command line option when provided instead of batchThreads property from gerrit.config
.
Change 323396: Avoid lucene index deletes during offline reindexing.
Change 323297: Avoid scanning for change refs for each project slices when reindexing all changes.
Avoiding the duplicate work brings down the reindex time from 45 mins to 15 mins for a test-site with 160k changes across 4 repos on NFS.
Change 324115: Avoid double indexing work during project reindexing.
Bug Fixes
Issue 14963: Fix /access REST APIs returning incorrect rule when group is duplicated for same rule.
Issue 14097: Fix GC action not shown in project commands with Gerrit in multi-site configuration.
Issue 15293: Fix fetch of group suggestions for projects with a /
in their name.
Issue 15251: Ensure that user without edit permission can't change plugin configuration.
Change 313561: Handle null account-ids when sending e-mails.
Change 307602: Fix NPE while accessing draft refs.
Change 307482: EqualsLabelPredicate: fix bug that prevents matching owner votes.
Change 321875: Ignore patchset level comments when computing unresolved count.
Change 322935: Fix buggy Index-Interactive Executor.
Fix index.threads when set to a negative value which was not using a direct executor as mentioned in docs.
Issue 9812 Issue 7338: Merge commit cannot be moved
If a merge was targetting branch A, but then it was decided to create a new branch for this merge named B, which starts from A - The merge is still valid for B, and the user has no way to move it without amending and creating a new change.
Issue 15024: Gerrit event json formatter produces inconsistent payload for different projects
AllProjectsName and AllUsersName were serialised as: {“name”:“All-Projects”} and {“name”:“All-Users”} while all other projects were serialised as a JSON string. The different JSON payloads were causing issues with the HA configuration using the high-availability plugin.
Issue 14968: PluginServletContext does not implement javax.servlet.ServletContext.getVirtualServerName()
Remove the noise on error_log of c.g.g.h.p.PluginServletContext does not implement j.s.ServletContext.getVirtualServerName(), when running Gerrit on Tomcat 8.5.69.
Plugin API fixes
Dependency Updates
Security Fixes
Issue 14732: Commits/IncludedIn exposes branch names without respecting the ACLs on branches
When calling the REST endpoint for listing all branches that a commit SHA1 is part of, the commit is properly checked for visibility against the ACLs (it is a REST resource) but the branches are not checked.
The included-in may expose the list of non-visible branches to a user that has visibility of the SHA1.
Issue 7282: Hide repository name and description when user has no access
Gitiles did not respect Gerrit's permission and would show the repo name and description to any user who could guess the name. The repositories list as well as the content APIs were not affected.
New Features
Pop up accounts when typing within assignee or attention on the searchbar
Add attention operator for auto-complete on the searchbar
Bug Fixes
Issue 14726: Make “conflicts” cache reentrant for preventing deadlocks with concurrent cache loads of change conflicts computation.
Issue 14785: Limit returned changes for a triplet without Change-Id
Fix a bug where invoking the REST-API /changes/repobranch without mentioning the change-id resulted in the full scan of all changes on a repository/branch causing a high CPU overload and occupying the request threads for a long time.
Issue 14776: Prevent removing e-mail associated with OpenID external IDs
Gerrit prevents the user from removing the email address associated with their OpenId account.
Issue 14872: Disable setting cancelLeftPadding if avatars are not set in the config
Issue 13745 Issue 14173: Firefox: fix suggested reviewers pop up instantly and not disappearing when out of focus
Issue 13955: Safari 14.1 for Mac OS BigSur 11.3.1: Multi-line code comment broken
Issue 14495: SSH thread leak with authentication exception
A show-queue will show tasks in the Batch (or Interactive) queue hanging forever as a consequence of a Git/HTTP thread ended because of an error.
Issue 14561: Conflicting changes section not visible even when change.mergeabilityComputationBehavior is enabled
Issue 14577: Dedicated mergeable endpoint shouldn't be called if change.mergeabilityComputationBehavior is set to API_REF_UPDATED_AND_CHANGE_REINDEX
Issue 14600: Empty registered field on profile settings screen
Issue 14603: Attention-set operations count towards change.maxUpdates limit.
Issue 14613: Gerrit is killed before the gracefulStopTimeout
Avoids gerrit.sh killing the in-flight Git/HTTP just after 30 seconds regardless of the httpd.gracefulStopTimeout
configuration value.
Issue 14628: Project deletion replication events are failing to be serialized
Issue 14639: Searching repositories by name is case-sensitive
Restore the correct project search that was case-insensitive in 2.16.27, 3.1.3 and 3.3.2.
Issue 14644: Weak security settings accidentally removed in SSH transport
Issue 14645: Username to lowercase conversion fails with duplicates
Duplicated accounts names associated with the same account id was making the conversion to lowercase fail.
Issue 14649: Config setting change.maxUpdates was skipped when the change involved an update to the attention-set without comments
Issue 14676: Legacy host key file with RSA algorithm is overridden with ecdsa key during init.
Change 312602: Fix Mariadb status matching for AccountPatchReview
Mariadb connector uses SQLException.getSQLState() which returns the ANSI SQLSTATE value, not the MariaDB/mysql error code. Fix the removal of duplicate key detection when an already reviewed file opened up again returned 500 because of the incorrect handling of SQLSTATE value.
Change 312382: Fix deleting edits when change is merged
Fix the support of deleting a change edit after it has been merged or abandoned.
Change 313702: Remove contenteditable=“false” from within dragDropArea which caused issues with uploading
Plugins Fixes
Change 314364: codemirror-editor: stop propagation for all keys but exempt the save button
This fixes an issue where if using contenteditable (default on mobile) and you typed “/”, it would get intercepted within the app.
Dependency Updates
Update CodeMirror to 5.62.2.
Fix an issue on mobile where typing causes the keyboard line to go out of sync.
Update JGit to 06ca6cb3b01cdd618cc80f94bf0bf2fb78ab6e82.
JGit bug 573791: Stale file handle raised when loading a collection of notes with a NoteMap over NFS
JGit Bug 574178: Fix garbage collection failing to delete pack file
Noteworthy improvements for gerrit in this jgit update, improving performance from O(nˆ2) to O(n):
Change 180697: BatchRefUpdate: Skip saving conflicting ref names and prefixes in memory
Change 180559: Optimize RefDirectory.isNameConflicting(): this fix reduces number of open file handles jgit needs in all scenarios where lock files are created (e.g. ref updates).
Change 180432: LockFile: create OutputStream only when needed