New major release 2.55
What's Changed
- release: 2.54 by @mvo5 in #11185
- build-aux: detect/fix dirty git revisions while snapcraft building by @mvo5 in #11188
- tests: tidy up the top-level of ubuntu-seed during tests by @pedronis in #11186
- release: 2.54.1 by @mvo5 in #11191
- tests: fixed an issue with retrieval of the squashfuse repo by @are-scenic in #11183
- cmd/snap-device-helper: fix variable name typo in the unit tests by @bboozzoo in #11193
- packaging: Update openSUSE spec file with apparmor-parser and datadir for fish by @skriesch in #11192
- i/b/mount-control: support creating tmpfs mounts by @mardy in #11190
- gadget: do not crash if gadget.yaml has an empty Volumes section by @mvo5 in #11182
- data/selinux: allow poking /proc/xen by @bboozzoo in #11194
- tests: fix remodel-kernel test when running on external devices by @mvo5 in #11195
- tests/core/failover: replace boot-state with snap debug boot-vars by @bboozzoo in #11196
- tests/lib/tools/tests.invariant: add invariant for detecting broken snaps by @anonymouse64 in #11163
- build-aux/snap/snapcraft.yaml: use build-packages, don't fail dirty builds by @anonymouse64 in #11197
- tests/nested/manual/core20-to-core22: wait for device to be initialized before starting a remodel by @bboozzoo in #11203
- tests/lib/tools/tests.invariant: simplify check by @anonymouse64 in #11204
- packaging, bloader, github: restore cleanliness of snapd info file; check in GA workflow by @anonymouse64 in #11211
- tests: do not test microk8s-smoke on arm by @mvo5 in #11213
- tests: ensure that test-snapd-kernel-module-load is removed by @mvo5 in #11215
- tests: exclude interfaces-kernel-module load on arm by @mvo5 in #11214
- gadget/install/partition.go: wait for udev settle when creating partitions too by @anonymouse64 in #11127
- interfaces: add a polkit interface by @jhenstridge in #10219
- overlord: fix issue with concurrent execution of two snapd processes by @mardy in #11146
- packaging: merge 2.54.2 changelog back to master by @anonymouse64 in #11217
- tests: fix testing in trusty qemu by @mvo5 in #11212
- tests: do not run k8s smoke test on 32 bit systems by @mvo5 in #11222
- tests: fix fwupd interface test in debian sid by @mardy in #11225
- cmd/snap, cmd/snap-confine: extend manpage, update links by @bboozzoo in #11224
- data/env: treat XDG_DATA_DIRS like PATH for fish by @jduchateau in #11221
- usersession: implement method to close notifications via usersession REST API by @stolowski in #11066
- cmd: support installing multiple local snaps by @miguelpires in #11201
- tests/lib/uc20-create-partitions/main.go: setup a logger for messages by @anonymouse64 in #11219
- tests: re-enable kernel-module-load tests on arm by @mardy in #11223
- gadget: allow gadget struct with unspecified filesystem to match part with fs by @anonymouse64 in #11207
- cmd/snap/quota: fix typo in the help message by @anonymouse64 in #11238
- spread.yaml: add debian-{10,11}, drop debian-9 by @mvo5 in #11227
- HACKING.md: add dbus-x11 to packages needed to run unit tests by @anonymouse64 in #11237
- tests: workaround missing bluez snap by @mardy in #11226
- gadget: resolve index ambiguity between OnDiskStructure and LaidOutStructure by @anonymouse64 in #11234
- cmd/snap, daemon: add debug command for getting OnDiskVolume dump by @anonymouse64 in #11229
- tests/lib/prepare-restore: use go install rather than go get by @bboozzoo in #11239
- tests: ubuntu-image 2.0 compatibility fixes by @bboozzoo in #11073
- tests: fix parallel-install-basic on external UC16 devices by @mvo5 in #11240
- tests: fix
tests/core/create-user
on testflinger pi3 by @mvo5 in #11246 - cmd/snap: rm unnecessary validation by @miguelpires in #11249
- tests/main/snap-info: use yaml.safe_load rather than yaml.load by @bboozzoo in #11243
- cmd/snap: setup tracking cgroup when invoking a service directly as a user by @bboozzoo in #11231
- interfaces: allow access to new at-spi socket location in desktop-legacy by @jhenstridge in #11208
- spread-shellcheck: use safe_load rather than load with a loder by @bboozzoo in #11254
- tests: fix uses of fakestore new-snap-declaration by @bboozzoo in #11199
- gadget: misc helper fixes for implicit system-data role handling by @anonymouse64 in #11230
- gadget: fix typo with filesystem message by @anonymouse64 in #11257
- tests/nested/manual/minimal-smoke: bump mem to 512 for unencrypted case too by @anonymouse64 in #11259
- mount-control: step 3 by @mardy in #10864
- systemd: add NeedDaemonReload to the unit state by @kubiko in #11241
- overlord/h/c/umount: remove handling of required parameter by @mardy in #11266
- go.mod: tidy up by @bboozzoo in #11265
- i/builtin/xilinx-dma: add interface for Xilinx DMA driver by @alexclewontin in #10924
- store: fix flaky test by @miguelpires in #11267
- o/snapstate: migrate to hidden dir on refresh/install by @miguelpires in #11169
- o/ifacestate: add convenience Active() method to ConnectionState struct by @stolowski in #11233
- systemd: enable batched calls for systemd calls operation on units by @kubiko in #11242
- cmd/snap: adjust /cmd to migration changes by @miguelpires in #11262
- tests: setup snapd remodel testing bits by @bboozzoo in #11122
- run-checks, check-commit-email.py: check commit email addresses for validity by @anonymouse64 in #11269
- configcore: implement netplan write support via dbus by @mvo5 in #10752
- check-commit-email: do not fail when current dir is not under git by @bboozzoo in #11281
- tests/lib/prepare.sh: add debug kernel command line params via gadget on UC20 by @anonymouse64 in #10716
- gadget/update.go: add DiskTraitsFromDeviceAndValidate by @anonymouse64 in #11084
- packaging/ubuntu-16.04/control: adjust libfuse3 dependency as suggested by @anonymouse64 in #11276
- osutils: deal with ENOENT in UserMaybeSudoUser() by @mvo5 in #11275
- tests: add jammy to spread executions by @sergiocazzolato in #11274
- spread-shellcheck: add a caching layer by @bboozzoo in #11279
- packaging,tests: fix running autopkgtest by @mvo5 in #11253
- tests: cross store remodel by @bboozzoo in #11277
- interfaces/shared-memory: support single wild-cards in the read/write paths by @anonymouse64 in #11268
- tests: spread test snap dir migration by @miguelpires in #11280
- tests: fix running tests.invariant on testflinger systems by @mvo5 in #11250
- packaging, systemd: fix socket (re-)start race by @xnox in #11287
- cmd/snapd-apparmor: fix bad variable initialization by @bboozzoo in #11285
- osutil/mkfs: Expose option for --lib flag in fakeroot call by @jawn-smith in #11284
- tests: drop 21.04 tests (it's EOL) by @mvo5 in #11283
- overlord: small refactoring of group quota implementation in preparation of multiple quota values by @Meulengracht in #11247
- mkversion: check that snapd is a git source tree before guessing the version by @bboozzoo in #11270
- osutil: refactoring the code exporting mocking APIs to other packages by @are-scenic in #11187
- gadget/install/partition.go: use device rescan trick only when gadget says to by @anonymouse64 in #11235
- many: unit test fix when SNAPD_DEBUG=1 is set by @mansre in #11256
- many: add conversion for interface attribute values by @mardy in #11248
- tests: add back systemd-timesyncd to newer debian distros by @mardy in #11295
- tests: skip migration test on centOS by @miguelpires in #11289
- tests/main/cgroup-tracking-failure: Make it pass when run alone by @valentindavid in #11168
- tests: Handle PPAs being served from ppa.launchpadcontent.net by @cjwatson in #11300
- gadget: rename DiskVolume...Opts to DiskVolume...Options by @anonymouse64 in #11297
- many: add Transactional to snapstate.Flags by @alfonsosanchezbeato in #11271
- tests: fix snaps-state test for sru validation by @sergiocazzolato in #11299
- systemd: actually test the function passed as a parameter by @bboozzoo in #11305
- asserts: start splitting out attrMatcher for reuse to constraint.go by @pedronis in #11308
- snap/quota: add positive tests for the quota.Resources logic by @Meulengracht in #11304
- tests: skip version check on lp-1871652 for sru validation by @sergiocazzolato in #11310
- tests: use system ubuntu-21.10-64 in nested tests by @sergiocazzolato in #11294
- cmd/snap-update-ns: convert some unexpected decimal file mode constants to octal. by @jhenstridge in #11312
- many: add altlinux support by @shaba in #11177
- devicestate: ensure permissions of /var/lib/snapd/void are correct by @mvo5 in #11251
- tests: ensure the ca-certificates package is installed by @mvo5 in #11301
- asserts: start generalizing attrMatcher by @pedronis in #11309
- tests: new Jammy image for testing by @sergiocazzolato in #11292
- many: add transactional flag to snapd API by @alfonsosanchezbeato in #11306
- tests: skip bind mount in snapd-snap test when the core snap in not repacked by @sergiocazzolato in #11298
- tests: skip snap-userd-reexec test when reexec is not enabled by @sergiocazzolato in #11307
- tests: enable snap-userd-reexec on ubuntu and debian by @sergiocazzolato in #11324
- interfaces/opengl: add support for ARM Mali by @EthanHsieh in #11291
- o/snapstate: re-write state after undo migration by @miguelpires in #11313
- tests: fix repair test failure when run in a loop by @stolowski in #11319
- tests: ensure that interface hook works with hotplug plug by @stolowski in #11318
- i/builtin: allow modem-manager interface to access some files in sysfs by @alfonsosanchezbeato in #11323
- o/servicestate: quota group error should be more explanative when memory cgroup is disabled by @atesburak in #11003
- overlord: skip manager tests on riscv for now by @mvo5 in #11325
- asserts: start implementing authority-delegation by @pedronis in #11311
- gadget, gadgettest: reimplement tests to use new gadgettest examples.go file by @anonymouse64 in #11296
- usersession/userd: query xdg-mime to check for fallback handlers of a given scheme by @bboozzoo in #11200
- o/devicestate: verify that the new model is self contained before remodeling by @bboozzoo in #11273
- cmd/snap: remove use of zenity, use notifications for snap run inhibition by @stolowski in #11065
- gadget: mv modelCharateristics to gadgettest.ModelCharacteristics by @anonymouse64 in #11331
- cmd/snap: add --debug to snap run by @bboozzoo in #11336
- overlord/servicestate: disallow mixing snaps and subgroups. by @Meulengracht in #11303
- spread: switch to CentOS 8 Stream image by @bboozzoo in #11330
- cmd/snap-confine: mount bpffs under /sys/fs/bpf if needed by @bboozzoo in #11290
- snap-confine: allow numbers in hook security tag by @stolowski in #11327
- tests/core/failover: verify failover handling with the kernel snap by @bboozzoo in #11176
- o/servicestate: revert #11003 checking for memory cgroup being disabled by @anonymouse64 in #11339
- cmd/snap: close refresh notifications after trying to run a snap while inhibited by @stolowski in #11086
- gadget/install: rm unused support for writing non-filesystem structures by @anonymouse64 in #11333
- gadget/install/partition.go: include DiskIndex in synthesized OnDiskStructure by @anonymouse64 in #11332
- systemd: batched operations by @bboozzoo in #11314
- gadget/install: add unit tests for makeFilesystem, allow mocking mkfs.Make() by @anonymouse64 in #11334
- cmd/snap/auto-import: use osutil.LoadMountInfo impl instead by @anonymouse64 in #11344
- vscode: added integrated support for MS VSCODE by @are-scenic in #11245
- tests/nested/manual/remodel-cross-store,remodel-simple: wait for serial by @bboozzoo in #11351
- gadget/install: add unit tests for install.Run() by @anonymouse64 in #11335
- tests/main/snap-system-key: reset-failed snapd and snapd.socket by @anonymouse64 in #11345
- interfaces/cups: add cups-socket-directory attr, use to specify mount rules in backend by @anonymouse64 in #10427
- osutil/mkfs: Expose more fakeroot flags by @jawn-smith in #11320
- tests: updated the documentation to run spread tests using external backend by @sergiocazzolato in #11341
- packaging/fedora: sync with downstream, packaging improvements by @bboozzoo in #11352
- o/snapstate: revert migration on refresh if flag is disabled by @miguelpires in #11316
- cmd/snap-confine: update ambiguous comment by @mardy in #11360
- spread: non-functional cleanup of go1.6 legacy by @are-scenic in #11356
- gadget/gadget.go: add AllDiskVolumeDeviceTraits by @anonymouse64 in #11220
- gadget/gadget_test.go: fix variable type by @anonymouse64 in #11363
- cmd/snap-confine: remove mention of "legacy mode" from comment by @mardy in #11361
- interfaces/seccomp: Add rseq to base seccomp template by @alexmurray in #11357
- snap-bootstrap: Cleanup dependencies in systemd mounts by @valentindavid in #11263
- o/snapstate: reduce maxInhibition for raa by 1s to avoid confusing notification by @stolowski in #11359
- cmd/snap-confine: build const data structures at compile-time by @mardy in #11358
- docs: cosmetic cleanups by @are-scenic in #11322
- cmd/snap: rename the verbose logging flag in snap run by @bboozzoo in #11346
- docs: fix incorrect link by @miguelpires in #11368
- many: fix issues flagged by golangci and configure it to fail build by @miguelpires in #11364
- tests: add regression tests for disabled memory cgroup operation by @anonymouse64 in #11342
- tests: increase nested disk size on classic images by @sergiocazzolato in #11348
- tests: reboot test running remodel by @sergiocazzolato in #11343
- data/env: fix fish env for all versions of fish, unexport local vars, export XDG_DATA_DIRS by @bboozzoo in #11371
- tests/core/mem-cgroup-disabled: minor fixups by @anonymouse64 in #11369
- interfaces/u2f-devices: add U2F-TOKEN (https://launchpad.net/bugs/1956865) by @oSoMoN in #11366
- tests/nested/manual/core20-cloud-init-maas-signed-seed-data: add gadget variant by @anonymouse64 in #10807
- libsnap-confine-private: string functions simplification by @mardy in #11362
- many: fix leftover empty snap dirs by @miguelpires in #11337
- asserts,cmd/snap-repair: support delegation when validating signatures by @pedronis in #11338
- gadget: identify/match encryption parts, include in traits info by @anonymouse64 in #11354
- asserts: remove unused function, fix for linter by @pedronis in #11382
- asserts: first-class support for formatting/encoding signatory-id by @pedronis in #11380
- tests: prepare and restore nested tests by @sergiocazzolato in #11373
- asserts: fetching code should fetch authority-delegation assertions with signing keys as needed by @pedronis in #11381
- asserts,interfaces/policy: move and prepare DeviceScopeConstraint for reuse by @pedronis in #11387
- tests: skip ~/.snap migration test on openSUSE by @miguelpires in #11376
- o/snapstate: implement transactional flag by @alfonsosanchezbeato in #11326
- o/snapstate: rename "corecore" -> "core" by @anonymouse64 in #11397
- o/devicestate/handlers_install.go: use --all to get binary data too for logs by @anonymouse64 in #11396
- tests: fix security-udev-input-subsystem test by @sergiocazzolato in #11390
- tests: add created_at timestamp to mongo issues by @sergiocazzolato in #11388
- gadget: refactor StructureEncryption to have a concrete type instead of map by @anonymouse64 in #11384
- o/devicestate: preseeding test cleanup by @stolowski in #11398
- o/devicestate/firstboot_preseed_test.go: remove deadcode by @anonymouse64 in #11403
- snapstate: make "remove vulnerable version" message more friendly by @mvo5 in #11401
- tests/nested/snapd-removes-vulnerable-snap-confine-revs: use newer snaps by @anonymouse64 in #11400
- tests: smoke test support for core22 by @Meulengracht in #11379
- many: move boot.Device to snap.Device by @anonymouse64 in #11412
- overlord, o/snapstate: fix mocking on systems without /snap by @bboozzoo in #11418
- spread.yaml: add core22 version of rsync to skip by @Meulengracht in #11417
- many: move call to shutdown to the boot package by @alfonsosanchezbeato in #11317
- tests: fix "undo purging" step in snap-run-devmode-classic by @mvo5 in #11411
- gadget/install: measure and save disk volume traits during install.Run() by @anonymouse64 in #11374
- gadget: add searchForVolumeWithTraits + tests by @anonymouse64 in #11414
- interfaces/{cpu,power}-control: add more accesses for commercial device tuning by @anonymouse64 in #11404
- tests: allow run spread tests using a private ppa by @sergiocazzolato in #11389
- gadget/update.go: add buildNewVolumeToDeviceMapping for existing devices by @anonymouse64 in #11415
- tests/main/snap-run-devmode-classic: reinstall snapcraft to clean up by @anonymouse64 in #11425
- data/env: more workarounds for even older fish shells, provide reasonable defaults by @bboozzoo in #11416
- asserts: add preseed assertion type by @stolowski in #11377
- o/devicestate: pick system from seed systems/ for preseeding (1/N) by @stolowski in #11205
- t/m/interfaces-network-manager: use different channel depending on system by @alfonsosanchezbeato in #11422
- tests: skip boot loader check during testing preparation on s390x by @sergiocazzolato in #11423
- tests: fix smoke/install test for other architectures than pc by @sergiocazzolato in #11424
- wrappers: do not reload the deamon or restart snapd services when preseeding on core by @stolowski in #11365
- tests: include new testing tools and utils by @sergiocazzolato in #11399
- data/env: cosmetic tweak for fish by @bboozzoo in #11428
- o/snapstate: add ~/Snap init related to backend by @miguelpires in #11413
- tests: add debugging to snap-confine-tmp-mount by @mardy in #11435
- seed,image: changes necessary for ubuntu-image to support preseeding extra snaps in classic images by @jawn-smith in #11355
- o/snapstate: deal with potentially invalid type of refresh.retain value due to lax validation by @stolowski in #11442
- tests: add test to ensure consecutive refreshes do garbage colleciton of old revs by @stolowski in #11438
- cmd/snap-mgmt, packaging: trigger daemon reload after purging unit files by @bboozzoo in #11430
- bootloader: allow different names for the grub binary in different archs by @alfonsosanchezbeato in #11282
- tests: get lxd snap from candidate channel by @sergiocazzolato in #11447
- overlord, boot: fix unit tests on arches other than amd64 by @bboozzoo in #11454
- tests: fix snap-run-gdbserver test by retrying the check by @sergiocazzolato in #11443
- interfaces: custom-device by @mardy in #11272
- asserts: return an explicit error when key cannot be found by @bboozzoo in #11455
- tests/nested/core/core20-reinstall-partitions: update test summary by @bboozzoo in #11462
- testutil: add generic mocking helpers by @are-scenic in #11386
- boot: mock amd64 arch for mabootable 20 suite by @bboozzoo in #11464
- data/selinux: allow the snap command to run systemctl by @bboozzoo in #11427
- packaging/ubuntu-16.04/rules: don't run unit tests on riscv64 by @anonymouse64 in #11405
- interfaces/cpu-control: add extra idleruntime data/reset files to cpu-control by @anonymouse64 in #11452
- interfaces/network-control: add D-Bus rules for resolved too by @anonymouse64 in #11459
- osutil/disks: trigger udev on the partition device node by @anonymouse64 in #11433
- tests: small adjustments to fix vuln spread tests by @anonymouse64 in #11407
- interfaces/systemd: use batch systemd operations by @bboozzoo in #11372
- cmd/snap-confine: coverity fixes by @alexmurray in #11426
- interfaces/apparmor: add missing unit tests for special devmode rules/behavior by @anonymouse64 in #11409
- gadget: add buildVolumeStructureToLocation, volumeStructureToLocationMap by @anonymouse64 in #11420
- release: 2.54.4 changelog to master by @mvo5 in #11466
- tests/main/mount-ns: unmount /run/qemu by @mardy in #11469
- o/snapstate: add core22 migration logic by @miguelpires in #11431
- o/snapstate: implement transactional lanes for prereqs by @alfonsosanchezbeato in #11395
- tests/main/user-session-env: special case bash profile on Tumbleweed by @bboozzoo in #11478
- interfaces/builtin/account-control: allow to execute pam_tally2 by @bboozzoo in #11465
- cmd: misc analyzer fixes by @bboozzoo in #11444
- interfaces/browser-support: allow RealtimeKit's MakeThreadRealtimeWithPID by @oSoMoN in #11440
- tests: increase the times in snapd-sigterm for arm devices by @sergiocazzolato in #11479
- tests: skip interfaces-cups-control from debian-sid by @sergiocazzolato in #11472
- tests: update the snapd testing tools by @sergiocazzolato in #11451
- tests: validate tests tools just on google and qemu backends by @sergiocazzolato in #11473
- o/state: fix undo with independent tasks in same change and lane by @stolowski in #11463
- o/devicestate, daemon: introduce factory-reset mode, allow switching by @bboozzoo in #11436
- i/a/template.go: add ld path for jammy by @alfonsosanchezbeato in #11481
- interfaces/apparmor: Update base template for systemd-machined by @alexmurray in #11485
- cmd/snap: add support for rebooting to factory-reset by @bboozzoo in #11486
- snap: Add missing zlib by @valentindavid in #11487
- o/devicestate: split mocks to separate calls for creating a model and a gadget by @bboozzoo in #11489
- tests: Include the source github url as part of the mongo db issues by @sergiocazzolato in #11482
- tests/lib/tools/report-mongodb: fix typo in help text by @mardy in #11495
- interface/opengl: allow read on /proc/sys/dev/i915/perf_stream_paranoid by @jdstrand in #11491
- cmd: set core22 migration related env vars and update spread test by @miguelpires in #11449
- cmd/snap-preseed: support for core20 preseeding by @stolowski in #11461
- many: replace use of "sanity" for interface implementation checks by @mvo5 in #11500
- tests: updating the test-snapd-cups-control-consumer snap to core20 based by @sergiocazzolato in #11493
- asserts: minimal changes to disable authority-delegation before full revert by @pedronis in #11502
- many: replace use of "sanity" with more inclusive naming in comments by @mvo5 in #11501
- fde: add new DeviceUnlock() call by @mvo5 in #10816
- github: replace "sanity check" with "quick check" in workflow by @mvo5 in #11498
- overlord: extend single reboot test to include a non-base, non-kernel snap by @bboozzoo in #11507
- dirs: remove unused SnapMetaDir variable by @mardy in #11510
- tests: fix test to avoid editing the test-snapd-tools snap.yaml file by @sergiocazzolato in #11506
- boot: support factory-reset when sealing and resealing by @bboozzoo in #11470
- snap: add new cpu quotas by @Meulengracht in #11410
- i/seccomp/template.go: add close_range to the allowed syscalls by @alfonsosanchezbeato in #11488
- tests: use lxd from edge to avoid issues not fixed on candidate yet by @sergiocazzolato in #11528
- bootloader: add support for piboot by @alfonsosanchezbeato in #11068
- o/snapstate: make sure that snapd is a prerequisite for updating base snaps by @bboozzoo in #11525
- snap/quota: fix bug in quota group tree validation code by @Meulengracht in #11523
- o/snapstate: allow installing the snapd-desktop-integration snap even if the user-daemons feature is otherwise disabled by @jhenstridge in #11504
- cmd/snap: make 1.18 vet happy by @bboozzoo in #11532
- overlord/state: drop unused lanes field by @bboozzoo in #11537
- i/b/network_{control,manager}.go: add more access to resolved by @alfonsosanchezbeato in #11474
- i/b/modem-manager: provide access to ObjectManager by @alfonsosanchezbeato in #11518
- interfaces/docker-support: make generic rules not conflict with snap-confine by @anonymouse64 in #11503
- cmd/snap-preseed, image: move preseeding code to image/preseed by @stolowski in #11505
- cmd/snap-update-ns/change.go: sort needed, desired and not reused mount entries by @anonymouse64 in #10676
- snap-bootstrap: Partially revert simplifications of mount dependencies by @valentindavid in #11515
- overlord/state: add helper for aborting unready lanes by @bboozzoo in #11536
- o/snapstate: avoid setting up single reboot when update includes base, kernel and gadget by @bboozzoo in #11520
- snap/quota: additional validation in resources.go by @Meulengracht in #11519
- osutil/disks: calculate the last usable LBA instead of reading it by @valentindavid in #11394
- kernel/fde: add PartitionName to various structs by @anonymouse64 in #11541
- release: 2.55 by @anonymouse64 in #11550
New Contributors
- @are-scenic made their first contribution in #11183
- @skriesch made their first contribution in #11192
- @jduchateau made their first contribution in #11221
- @alexclewontin made their first contribution in #10924
- @Meulengracht made their first contribution in #11247
- @mansre made their first contribution in #11256
- @shaba made their first contribution in #11177
Full Changelog: 2.54.4...2.55