bakery: pair Snapper snapshots around package transactions #49
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/eco-47-snapper-transactions"
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?
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
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.