test: add avatar-audit to catch #353-class dinosaur-avatar regressions - #1308
Open
Danathar wants to merge 2 commits into
Open
test: add avatar-audit to catch #353-class dinosaur-avatar regressions#1308Danathar wants to merge 2 commits into
Danathar wants to merge 2 commits into
Conversation
…rojectbluefin#1241) gnome-control-center's avatar chooser (cc-avatar-chooser.c) and gnome-initial-setup's account page only enumerate files directly inside <datadir>/pixmaps/faces/ - they never recurse into subdirectories. bluefin-common ships its dinosaur-themed avatars in a bluefin/ category subdirectory (/usr/share/pixmaps/faces/bluefin/*.jpg), so both UIs silently fall back to Fedora/GNOME's near-empty stock faces dir and Bluefin's avatars never appear on Dakota. Set org.gnome.desktop.interface avatar-directories via a distro dconf override to point both UIs at the bluefin/ subdirectory, matching the existing dconf-override pattern used elsewhere in this repo. Closes projectbluefin#353 Assisted-by: Claude Sonnet 5 via GitHub Copilot Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…tar regressions Cherry-picks the already-reviewed avatar fix from projectbluefin#1241 (which merged into main, the release bookmark, instead of testing, so it never shipped) onto testing where content PRs actually belong. Adds `just avatar-audit`, wired into publish.yml next to swap-audit, to verify the fix actually holds in the built image: the Bluefin avatar art is present, the avatar-directories dconf override reaches the compiled distro db, and every directory it lists exists and has faces. avatar-directories replaces GNOME's default faces dirs rather than falling back to them, so a stale or dropped override silently empties the picker instead of degrading to stock icons — this catches that class of regression before it ships. Closes projectbluefin#353
Contributor
|
Thanks for the PR! A maintainer will review it. While you wait, make sure these pass locally: just validate # element graph check
just build default # build the image
just boot-test # confirm the desktop boots (exits 0 = pass)
just lint # bootc container lintIf this PR fixes a bug, add verify steps to the linked issue so users can confirm the fix on their hardware after the next nightly ships: ```verify
ujust <something> # what users should run to confirm the fix
``` |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes #353 — Bluefin's dinosaur-themed avatars never appear in the GNOME
Users account-picture picker on Dakota.
Why #353 is still open
The fix was already written and merged in #1241, but it landed on
main(the release bookmark, fast-forwarded from
testingand never a valid PRbase per
docs/workflow.md) instead oftesting, so it never shipped in abuilt image.
elements/bluefin/user-avatars.bstexists onupstream/mainbut not on
upstream/testing.This PR cherry-picks that exact, already-reviewed 3-file change
(
c5828e0, byte-identical to #1241) ontotesting, and adds a CI check sothis class of "shipped but unreachable" bug gets caught before merge instead
of silently regressing again.
Note: #1302 independently re-applies the same cherry-pick onto
testing.This PR is equivalent for that part; the addition here is the
avatar-auditJustfile recipe below. Maintainers should pick whichever PR they prefer for
the base fix — happy to close this in favor of #1302 if the audit recipe is
cherry-picked over there instead, or vice versa.
What's new:
just avatar-auditAdded a
swap-audit-style Justfile recipe, wired intopublish.ymlrightafter
swap-audit, that inspects the built image rather than just thesource tree:
/usr/share/pixmaps/faces/bluefin/*.jpg./etc/dconf/profile/userreadssystem-db:distroat all.07-dakota-avatar-directorieskeyfile is present.avatar-directoriesexists in the image, has.jpgfaces, and is actually present in the compiled/etc/dconf/db/distro(catchesdconf updateordering regressions, notjust keyfile-not-installed).
This matters because
org.gnome.desktop.interface avatar-directoriesreplaces GNOME's default faces dirs rather than falling back to them
(
cc-avatar-chooser.cin gnome-control-center,um-photo-dialog.cingnome-initial-setup both try configured dirs first and only fall back to
<datadir>/pixmaps/facesif that yields zero faces) — so a stale, typo'd,or dropped override doesn't degrade to stock icons, it silently empties the
picker entirely. That failure mode is invisible from
just bst artifact list-contentsalone, which is exactly what let #353 go unnoticed eventhough the art was correctly ingested the whole time.
Also documented this pattern in
docs/skills/oci-layers.mdunder LessonsLearned per the repo's self-improvement mandate — "files present in the
built image" and "files GNOME will actually discover" are different claims,
and this is the second time that gap has bitten this repo (see the FDSDK
GL-merge-symlink lesson just above it).
Testing
just check-publish-workflowandpython3 -m unittest scripts.test_check_publish_workflowpass.just --summary/just --dry-run avatar-auditconfirm the Justfileparses and the recipe body is well-formed.
synthetic image-root fixtures (happy path + 6 failure modes: missing
keyfile, stale compiled db, dangling directory reference, empty target
directory, dconf profile not reading the distro db, empty
avatar-directoriesvalue) — all pass/fail as expected.just validate/just build/just boot-test/just lintin this environment (no BuildStream/podman available, sameconstraint noted in fix: restore Bluefin dinosaur avatars in GNOME user-account picker #1241, fix(common): flatten Bluefin face icons into /usr/share/pixmaps/faces #1296, fix: restore Bluefin dinosaur avatars in GNOME user-account picker #1302); requesting CI
validate+e2eon
testingas the gate, and a maintainer build to confirmavatar-auditpasses against the real image.