bakery: pair Snapper snapshots around package transactions #49

Merged
Breadway merged 1 commit from feature/eco-47-snapper-transactions into main 2026-10-02 12:06:14 +08:00
Owner

System-prefix bakery can opt into snapper_configs in /etc/bakery/config.toml. Install, update, self-update, remove, and rollback commands receive numbered pre/post snapshots for each configured Snapper configuration, including when a package operation fails. Dry-run, read-only commands, and user-prefix installs skip snapshots. Snapshot failures warn and preserve the package result. Capabilities report support and whether this invocation is configured, allowing BOS wrappers to avoid duplicate pairs.

Verified all repository CI commands locally: pin lint, fmt, workspace clippy and tests with default/gtk/extract combinations, and workspace extract build. Snapshot tests cover matching numbers on success/failure, failed pre creation, unwind cleanup, duplicate suppression, opt-in parsing, unsafe names, and dry-run/user/read-only exclusion. No desktop, real config, or installed binary was changed.

BOS-28 enables these settings and uses the capability in its wrapper. Direct/Packages snapshot acceptance requires a shipped bakery build containing this change and installed BOS Snapper verification. Forced kills and failed post creation can still leave a pre snapshot; that limitation is documented.

Closes #47

System-prefix bakery can opt into snapper_configs in /etc/bakery/config.toml. Install, update, self-update, remove, and rollback commands receive numbered pre/post snapshots for each configured Snapper configuration, including when a package operation fails. Dry-run, read-only commands, and user-prefix installs skip snapshots. Snapshot failures warn and preserve the package result. Capabilities report support and whether this invocation is configured, allowing BOS wrappers to avoid duplicate pairs. Verified all repository CI commands locally: pin lint, fmt, workspace clippy and tests with default/gtk/extract combinations, and workspace extract build. Snapshot tests cover matching numbers on success/failure, failed pre creation, unwind cleanup, duplicate suppression, opt-in parsing, unsafe names, and dry-run/user/read-only exclusion. No desktop, real config, or installed binary was changed. BOS-28 enables these settings and uses the capability in its wrapper. Direct/Packages snapshot acceptance requires a shipped bakery build containing this change and installed BOS Snapper verification. Forced kills and failed post creation can still leave a pre snapshot; that limitation is documented. Closes #47
feat(bakery): pair optional Snapper transaction snapshots
All checks were successful
check / check (push) Successful in 2m5s
bf39797cac
Author
Owner

Independent review of the bakery snapshot implementation in PR #49: the command wrapper, optional system configuration, numbered pre/post pairing on both success and failure, warning-only Snapper failures, and capability output for BOS duplicate suppression are covered in the diff and behavioral unit tests. Forgejo CI is green and the PR is mergeable. This is ready for release-maintainer review. Direct bakery and bos-update behavior on an installed BOS still requires the dependency to ship and a deployment acceptance check. No merge attempted.

Independent review of the bakery snapshot implementation in PR #49: the command wrapper, optional system configuration, numbered pre/post pairing on both success and failure, warning-only Snapper failures, and capability output for BOS duplicate suppression are covered in the diff and behavioral unit tests. Forgejo CI is green and the PR is mergeable. This is ready for release-maintainer review. Direct bakery and bos-update behavior on an installed BOS still requires the dependency to ship and a deployment acceptance check. No merge attempted.
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Breadway/bread-ecosystem!49
No description provided.