Skip to content

bootc: extend test-49 bridge to a >=1.16.4 stager (stages V1 directly) #19

Closed as not planned

Description

@cgwalters-bot

Follow-up to bootc#2248 and forge bootc#18. test-49 only pins bootc 1.16.0, which stages the V2 fallback. 1.16.4+ parse composefs.digest= and stage V1 directly (and seal a V1 digest under bare composefs=), which nothing tests.

Plan:

  1. Parametrize test-49 by the stager version and expected staged format: env BOOTC_bridge_stager_version (1.16.0 | 1.16.4) and BOOTC_bridge_expected_format (v2 | v1); assert-old-fixture checks the given version; boot1 asserts the expected format instead of hard-coded v2; boot2/3 follow from it.
  2. Add a second pin next to the 1.16.0 one in the Justfile: bootc-1.16.4-1.fc44 (Koji tags coreos-pool and f44-updates), with RPM and /usr/bin/bootc sha256; generalize just test-composefs-bridge to take the stager (e.g. test-composefs-bridge <seal_state> [stager=1160|1164]).
  3. The stager Dockerfile should mostly work unchanged (1.16.4's ukify also takes --rootfs); check its seal-uki differences and that the current client accepts a 1.16.4-sealed image (the bare composefs= V1/V2 mismatch reported on #2248).
  4. Add CI legs (sealed+unsealed) or fold into the existing bridge job matrix; +2 jobs.

Activity

  1. cgwalters-bot commented on Sep 26, 2026

    @cgwalters-bot
    CollaboratorAuthor

    The Composefs Stable board's copy of this item said:

    Follow-up to bootc-dev/bootc#2248 and cgwalters-forge/bootc#18: test-49 only pins bootc 1.16.0, which stages the V2 fallback. bootc 1.16.4 and later parse composefs.digest= and stage V1 directly (and seal a V1 digest under bare composefs=), which nothing tests. Plan: parametrize test-49 by stager version and expected format, pin bootc-1.16.4-1.fc44 next to 1.16.0, and add sealed and unsealed CI legs.

    Workstream: PVTI_lAHOAQ_SPs4Bj2Gizg8vse8.

  2. cgwalters-bot commented on Oct 17, 2026

    @cgwalters-bot
    CollaboratorAuthor

    Board scheduler: no plan. A triage run is asked whether this is done; it answers here. Delete this comment to ask again.

  3. cgwalters-bot commented on Oct 17, 2026

    @cgwalters-bot
    CollaboratorAuthor

    Not done. None of the 40 PRs merged into bootc-dev/bootc since this issue was opened (2026-09-26) touches test-49. On upstream main, test-49-composefs-1-16-bridge.nu still asserts bootc 1.16.0 and a V2 stage. The Justfile has no test-composefs-bridge target and ci.yml has no bridge job. Its last change is still the #2248 commits (75c779c3, 2026-09-23).

    The fix is written but not merged. It is in cgwalters-forge/bootc#30, a draft that is stacked on draft #18. Neither has been promoted upstream, and neither has reviews or comments. #30 covers every part of the plan:

    1. test-49 takes the stager version, the expected format and the install mode (sealed, unsealed or bls). It reads the booted EROFS format from the composefs header.
    2. It pins bootc-1.16.4-1.fc44 next to 1.16.0, with just test-composefs-bridge MODE [1.16.0|1.16.4].
    3. The stager Dockerfile works with 1.16.4. The PR notes that the 1.16.4-staging-on-a-1.16.0-install case with a UKI fails, tracked as Error during upgrade w/ composefs-backend and UKI since 1.16.4: composefs= parameter mismatch bootc-dev/bootc#2334, and is deliberately not covered.
    4. It adds two CI legs, 1.16.4 sealed UKI and 1.16.4 BLS, for four bridge legs in total. Note this is BLS rather than the unsealed leg the issue suggested.

    The PR reports devspace runs at 1ad219c1 (bls 1.16.4, sealed 1.16.4 and sealed 1.16.0 passed). Fork CI is off, so there is no CI run to link.

    What's left is not agent work:

    Why there is no job plan: an implement run would only redo #30. Also, cgwalters-forge/bootc is not in the repos bounds of dispatch.toml, so a hosted plan for it would be refused. The rebase can be done by the bot that owns #30 or by the operator when promoting. Once #30 lands upstream, this issue can be closed against it.

    {"request":"bb8fbe7e-119e-40dc-b5a5-fa7c86df9593","verdict":"not-done"}
    

    Generated by dispatch · ◷

  4. locked as resolved and limited conversation to collaborators on Oct 18, 2026
  5. cgwalters-bot commented on Oct 18, 2026

    @cgwalters-bot
    CollaboratorAuthor

    ✅ dispatch ended well. Result: #19 (comment)

    (Run status from 2026-10-17T10:58:14Z, re-posted by the bot without the agent's own words. The original job-token comment was removed so this issue counts as collaborator-only input, tracker#738.)

    Generated-by: https://github.com/cgwalters/#llms

  6. cgwalters-bot commented on Oct 22, 2026

    @cgwalters-bot
    CollaboratorAuthor

    ✅ dispatch ended well. Result: #19 (comment)

  7. cgwalters-bot commented on Oct 22, 2026

    @cgwalters-bot
    CollaboratorAuthor

    Still valid, and the fix is already written. It needs the operator to decide how it lands (option 3: no job plan).

    Upstream has not changed since the 17 Oct triage. test-49-composefs-1-16-bridge.nu was last changed by #2248 (75c779c3, 23 Sep). It still pins only 1.16.0 and expects a V2 stage. No upstream PR touches it.

    Where the fix is: draft cgwalters-forge/bootc#30. It covers all four steps of the plan: it parametrizes test-49, pins bootc-1.16.4-1.fc44, adds just test-composefs-bridge MODE [1.16.0|1.16.4] and adds CI legs for sealed 1.16.4 and BLS 1.16.4. It does not cover the UKI case where 1.16.4 stages onto a 1.16.0 install, which is bootc-dev/bootc#2334 (still open). It was rebased on 17 Oct onto upstream 3c5d235a and is mergeable, one docs-only commit behind upstream main. Its comment reports that just validate and the bls 1.16.4, sealed 1.16.4 and sealed 1.16.0 legs passed on a devspace at bd84fec9. Fork CI is off, so there is no run to link.

    What blocks it: #30 contains all three of #18's commits. One of them was rewritten (354c29be) to fix the 1.16 stager install, which upstream 0c2f4879 broke by dropping prepare-root.conf. #18 itself is still at the broken ccc70d3c. Bot runs that tried to refresh #18 and #30 on 17 Oct both stopped because the series edits .github/workflows/ci.yml. cgwalters-forge/bootc is in dispatch's repos bounds but not in [unprotected_files] (dispatch.toml), so no agent run can deliver this series. An implement plan would hit the same wall, or just redo #30.

    Decision for @cgwalters: choose one.
    (a) Review #30 and promote it upstream as one PR that supersedes #18, then close #18.
    (b) Push 354c29be onto #18 by hand, then promote #18 and then #30 as a stack.
    (c) Add cgwalters-forge/bootc to [unprotected_files]. The org ruleset 25084478 already requires an approving review there. A fix run could then refresh both PRs.
    (a) is the least work. Once the change merges upstream, this issue can close against it. #36, stacked on #30 and now conflicting, is an extension and is outside this issue.

    Generated by dispatch · ◷

  8. moved this from Draft to Needs human in Workstreamon Oct 23, 2026
  9. cgwalters-bot commented on Oct 26, 2026

    @cgwalters-bot
    CollaboratorAuthor

    Question for the operator (from the audit of the needs-human queue): Answered by the tracker#7 choice: review forge bootc#30 as one PR superseding #18 (A), hand-push the fix onto #18 (B), or unprotect bootc workflows for bot runs (C)?

    The board's Why for this item was: Follow-up from forge bootc#18: bridge only covered 1.16.0; >=1.16.4 stages V1 directly (#2248). Stacked on #18. Result: bridge 1.16.4 BLS, 1.16.4 sealed UKI, 1.16.0 sealed + validate + unit-tests passed on a 16-core devspace.

    Generated-by: https://github.com/cgwalters/#llms

  10. cgwalters-bot commented on Oct 27, 2026

    @cgwalters-bot
    CollaboratorAuthor

    Duplicate of #7: forge bootc#30 already implements this plan, and it waits on the review question there.

    Generated-by: https://github.com/cgwalters/#llms

  11. moved this from Needs human to Done in Workstreamon Oct 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions