Conversation
Prep for declaring the composefs backend stable. Its single page mixed architecture, image building, bootloader and install material, each of which has a natural home in the production docs, so move each section there verbatim: the storage layout into bootc-sysroot(7), sealed image building into a new bootc-sealed-images(7) under Building images, the bootloader and install notes into bootc-bootloaders(7) and bootc-installation(7), and the rest into a new bootc-composefs(7) under Architecture. Only headings and intra-page links change here, plus dropping a sentence in the bootloader section that pointed at bootc-bootloaders(7) itself (`git diff --color-moved` shows the rest as moves). The wording, including the "experimental" status text, is updated in the next commit. Redirects keep the old experimental-composefs.html URL, and its main anchors, working, as well as the short-lived bootc-experimental-composefs.7.html. Generated-by: AI Signed-off-by: Colin Walters <walters@verbum.org>
This is an internal entry point run by bootc-finalize-staged.service and bootc-finalize-staged-hold.service, not something users should invoke, so it shouldn't be listed in `bootc --help` or bootc(8) once the composefs backend is declared stable. Its man page stays, since it documents what the services do. Hidden commands are left out of the CLI JSON that the man page generator reads, so the page's OPTIONS section is now maintained by hand rather than between the generated markers. This takes just the CLI change from bootc-dev#2168 by cgwalters, which also documents the service; that part can still land from there. Generated-by: AI Signed-off-by: Colin Walters <walters@verbum.org>
Super excited to finally do this! In practice we've been aiming to support upgrades from existing systems that were installed when the backend was experimental, but it's time to just declare the on-disk setup stable. Assisted-by: AI Signed-off-by: Colin Walters <walters@verbum.org>
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Deep-link redirects are incomplete, and the documented sealed-image recipe retains the extracted kernel files.
Review effort: Balanced
Findings: 2
Open (2)
What changed in this PR
Declares the composefs backend stable and reorganizes its documentation around supported configurations, sealed images, and storage architecture.
Changes:
- Replaces experimental composefs documentation with stable backend guidance.
- Publishes composefs digest tooling and marks remaining experimental features.
- Adds compatibility redirects and updates cross-references.
| File | Description |
|---|---|
CONTRIBUTING.md |
Removes experimental labeling and updates guidance. |
crates/lib/src/cli.rs |
Exposes digest tooling and hides an internal command. |
crates/lib/src/lib.rs |
Marks composefs implementation stable. |
crates/lib/src/spec.rs |
Marks grub-cc experimental. |
docs/book.toml |
Adds composefs documentation redirects. |
docs/src/SUMMARY.md |
Reorganizes composefs documentation navigation. |
docs/src/bootc-bootloaders.7.md |
Documents composefs bootloader support. |
docs/src/bootc-compatible-images.7.md |
Links sealed-image guidance. |
docs/src/bootc-composefs.7.md |
Adds stable backend documentation. |
docs/src/bootc-experimental-composefs.7.md |
Removes superseded experimental documentation. |
docs/src/bootc-experimental-unified-storage.7.md |
Updates the composefs link. |
docs/src/bootc-installation.7.md |
Documents composefs selection and requirements. |
docs/src/bootc-internals.7.md |
Removes the experimental designation. |
docs/src/bootc-overview.7.md |
Introduces composefs as a supported backend. |
docs/src/bootc-sysroot.7.md |
Documents composefs on-disk storage. |
docs/src/bootc-upgrades.7.md |
Updates the composefs upgrade reference. |
docs/src/building/bootc-sealed-images.7.md |
Adds sealed-image build guidance. |
docs/src/host-v1.schema.json |
Marks grub-cc experimental. |
docs/src/man/bootc-container-compute-composefs-digest.8.md |
Adds the digest command manual. |
docs/src/man/bootc-composefs-finalize-staged.8.md |
Converts generated option text to static documentation. |
docs/src/man/bootc-container.8.md |
Lists the digest command. |
docs/src/man/bootc-setup-root-conf.5.md |
Removes the experimental warning. |
docs/src/man/bootc.8.md |
Removes the hidden internal command listing. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| # Preserve published URLs when canonical chapters adopt manual filenames. | ||
| [output.html.redirect] | ||
| "boot-failure-detection.html" = "bootc-boot-failure-detection.7.html" | ||
| "bootc-experimental-composefs.7.html" = "bootc-composefs.7.html" |
There was a problem hiding this comment.
Valid: bootc-experimental-composefs.7.html is the most recent published URL (since 09-28, unreleased), so its section links should follow the moved sections too. Fix in dfb63b6 on bot/composefs-stabilize-review, on top of 4831ab5; the built book's redirect page maps the fragments.
git fetch https://github.com/cgwalters-forge/bootc bot/composefs-stabilize-review && git cherry-pick dfb63b6c
Generated-by: https://github.com/cgwalters/#llms
| EORUN | ||
|
|
||
| # Final image: the split rootfs (kernel/initramfs already removed) plus the signed UKI | ||
| FROM split |
There was a problem hiding this comment.
Valid (and pre-existing, moved from the experimental chapter): the final image ships /kernel/<kver>/{vmlinuz,initramfs.img}. The recipe is still self-consistent, since the digest also covers /kernel, so it boots; it just carries the duplicate. Fix in 0e1abed on bot/composefs-stabilize-review: a sealed-rootfs stage removes /kernel and is both ukify's /target and the final base.
Tested by building the doc's Dockerfile block verbatim on fedora-bootc:44 (bootc 1.16.13, test Secure Boot key): before, /kernel is present; after, it is absent, and in both the UKI's composefs= digest equals bootc container compute-composefs-digest of the final image.
git fetch https://github.com/cgwalters-forge/bootc bot/composefs-stabilize-review && git cherry-pick 0e1abed7
Generated-by: https://github.com/cgwalters/#llms
There was a problem hiding this comment.
Yeah but in order to not re-do CI again let's queue a fixup PR post-merge
In practice we're committed to doing that, came up in the context of bootc-dev/bootc#2530 Signed-off-by: Colin Walters <walters@verbum.org>
In practice we're committed to doing that, came up in the context of bootc-dev/bootc#2530 Signed-off-by: Colin Walters <walters@verbum.org>
|
CI at 4831ab5: everything passed except two ostree integration jobs, neither related to this PR. Both need a rerun of the failed jobs, which I can't trigger:
Generated-by: https://github.com/cgwalters/#llms |

Super excited to finally do this! In practice we've been aiming
to support upgrades from existing systems that were installed
when the backend was experimental, but it's time to just declare
the on-disk setup stable.