Rebrand to Lectern: app id lectern.aps, name, icon (#95 part 5) #147
No reviewers
Labels
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
schaefera/utStudyBIble!147
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/lectern-rebrand"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Part 5 of #95.
What
Rebrands the app to Lectern: app id
lectern.aps, display name (not translated), desktop file, AppArmor profile, binary, click packaging and translation domain (po/lectern.aps.pot). The new icon is the owner's pick "H2", a pedestal lectern. The "C" monogram is kept inassets/icon-monogram.svgand docs/10 but not shipped. Internal names stay as they are:utsb-*crates, theutsb:log tag,UTSB_*, e2e tooling, the QML URI and the repo name. There is no migration code: the owner's data was copied once by adb (owner decision, #95).Blast radius
Tier: trunk
Trunk paths touched:
CMakeLists.txt,manifest.json,clickable.yaml,lectern.apparmor,.forgejo/workflows/ci.yml,tools/ci/,tools/e2e/,qml/Main.qml,qml/pages/ReadingPane.qmlTesting tier: maximum (CI config, packaging, app id moves the data paths); also standard (e2e cases)
Gate / rollback: to roll back, revert the merge and reinstall the previous
.click. The owner's data was copied, not moved, so the copy is the record (the old app was removed after sign-off).Proof
a510cd4(changes, rust, audit, app with mem-check, e2e, click).cargo make,cargo make i18nandapp-dockerpassed. Locally, the slow-profile mem-check went over the baseline, which I read as host noise; CI's mem-check is green. These e2e cases passed: language-switch, install-queue-cancel, menu-page, display-settings.cargo make clickbuiltlectern.aps_0.0.1_arm64.clickand click review passed. Its manifest name islectern.aps, the title is Lectern and the hook islectern. Itsicon.svgis byte-identical toassets/icon.svgata510cd4.paths.rstests (home_defaults_and_relative_xdg_ignored,xdg_variables_win_over_home) fail with the old APP_ID.language-switchfails with the old title code.a510cd4):lectern.aps, and the launcher shows the new icon.restored BSB 244and the owner's text scale of 120. There are no new AppArmor denials.language-switche2e case covers it.Review
Reviewer: claude-review: review 385 (high,
ea5ef2c, no findings) and delta review 386 (medium, ea5ef2c..a510cd4, no findings)Review-Confidence: 100
Confidence by part
lectern.apson the phone.X-Lomiri-Splash-*): owner-checked on the phone. UT documentation for these keys was not checked.🤖 Generated with Claude Code
Fresh-context review (claude-review)
ea5ef2c5caFindings: none (no high, medium or low).
What I checked:
git grepforutstudybible,schaefera(app-id use) andStudy Biblefinds none outside the ones that should stay: the Rust i18n unit-test fixtures, which are arbitrary strings, the obsolete#~entries inpo/de.po, and the unrelatedspikes/.lectern, hook keylectern,Exec=lectern,kill: lectern, the CMake target,build-ci/lecternin the CI artifact andUTSB_APPfor e2e, andtools/ci/{app,e2e}.shall agree.UTSB_APP_ID,paths::APP_ID,i18n::DOMAIN, the CMake.moname,update.shandpo/lectern.aps.potall use the same id. The.mothat CMake builds matches the namei18n.rsloads, andtools/i18n/update.sh --checkpasses locally.include_str!incore/src/tasks/tests.rspointing at the right file.tools/i18n/check-app.sh: theutsb: N translated messagesline is printed inqt/main.cppbefore the engine loads, so the German count above 0 and the C-locale count of 0 are valid probes. The window title being "Lectern" in both locales matches the plain-stringMain.qml.language-switchstill proves the runtime switch through the Sprache heading.lectern.aps, with no migration, is an owner decision recorded in the PR body (copy by adb once after install, rollback by revert). It is not a defect.Files reviewed: .forgejo/workflows/ci.yml, CLAUDE.md, CMakeLists.txt, NOTICES.md, README.md, assets/icon.svg, clickable.yaml, core/Cargo.toml, core/src/i18n.rs, core/src/paths.rs, core/src/tasks/tests.rs, docs/03-architecture.md, docs/09-quality-gates.md, docs/10-design.md, lectern.apparmor, lectern.desktop, manifest.json, po/de.po, po/lectern.aps.pot, qml/Main.qml, qml/pages/BuildInfoPopup.qml, qml/pages/ReadingPane.qml, qt/Cargo.toml, qt/stamp/Cargo.toml, qt/main.cpp (context), tools/ci/app.sh, tools/ci/e2e.sh, tools/e2e/cases/install-queue-cancel.sh, tools/e2e/cases/language-switch.sh, tools/e2e/lib.sh, tools/i18n/check-app.sh, tools/i18n/update.sh
Review level: medium (delta). Commit:
a510cd48e4. Range: ea5ef2c..a510cd4.Files reviewed: NOTICES.md, assets/icon.svg, assets/icon-monogram.svg, docs/10-design.md (plus clickable.yaml, lectern.desktop, CMakeLists.txt, tools/icons/render.sh for consumers).
Findings: none with a concrete failure scenario.
Checked:
Phone check,
a510cd4(dev buildfeat/lectern-rebrand@a510cd48e, installed 17:43)Already checked on the phone (ute2e, journal over adb):
lectern.aps0.0.1 is installed next toutstudybible.schaefera.~/.local/sharehas 45 files (20 MB) and~/.cachehas 104 files (1.3 MB); every file's checksum matches the old app's. The old app had no~/.configfolder.restored BSB 244, Genesis 9–10, and your text scale of 120. The build log line readsfeat/lectern-rebrand@a510cd48e.listcall. The old app, the system apps and others hit the same one, so it isn't new.For you (feel and system items):
language-switchcase already checks this.The old app and its folders stay installed. I'll remove them only when you say so.
All checks out. Skipped the optional step of checking German system language due to needing restart.
WIP: Rebrand to Lectern: app id lectern.aps, name, icon (#95 part 5)to Rebrand to Lectern: app id lectern.aps, name, icon (#95 part 5)Merge gate (claude-review), head
a510cd4: APPROVED.a510cd4, the head.a510cd4are success (changes, rust, audit, app, e2e, click).