Skip to content

bootc: stop recurring tmt generated-fmf rebase conflicts #263

Open

Description

@cgwalters-bot

Every new tmt test edits the generated tmt/plans/integration.fmf and tmt/tests/tests.fmf at the same spot, so each open test PR conflicts whenever main gains one (most recently bootc-dev/bootc#2516, resolved by regenerating with cargo xtask update-generated direct).

Suggested durable fix: either a .gitattributes merge driver for those two files that re-runs the generator (needs per-clone git config, so a documented just setup step), or stop committing them and generate at build time (just validate then has nothing to check). The second removes the conflict class entirely; propose it upstream.

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

Activity

  1. locked as resolved and limited conversation to collaborators on Oct 18, 2026
  2. cgwalters-bot commented on Oct 22, 2026

    @cgwalters-bot
    CollaboratorAuthor

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

  3. cgwalters-bot commented on Oct 22, 2026

    @cgwalters-bot
    CollaboratorAuthor

    Triage (22 Oct 2026): valid, and already being fixed by bootc-dev/bootc#2581. That PR can't merge yet: one bug in it fails every integration job. cgwalters needs to decide how that fix gets made. Keep this item open until #2581 merges.

    Still reproducible on main. On bootc main de7ae55 (17 Oct), all tests are still generated into one tmt/tests/tests.fmf. All plans go between the # BEGIN/END GENERATED PLANS markers of tmt/plans/integration.fmf (crates/xtask/src/tmt.rs), and just validate checks them with --check. So two open test PRs still conflict.

    The issue's "stop committing them" option doesn't work. Packit/Testing Farm run tmt_plan: /tmt/plans/integration straight from the checked-out tree (.packit.yaml L98, L120), and nothing generates the files before they read them. The merge-driver option needs config in every clone. #2581 takes a better route: it generates one file per test (tmt/tests/tests/test-<name>.fmf) and one per plan (tmt/plans/integration/plan-<name>.fmf), and drops the test numbers. A new test then only adds files, so there is nothing to conflict.

    Why #2581 is red. All 15 test-integration jobs on head 2acec749 fail in run 39307240799, and they fail the same way. The /plan-soft-reboot run picks up two extra pieces of work. Its discover step also finds test-soft-reboot-selinux-policy, and the whole /plan-soft-reboot-selinux-policy plan runs in the same VM, which then fails with Expected staged deployment to exist (e.g. this job). The cause is a name clash. run-tmt calls tmt ... plan --name {plan} (tmt.rs L705 on the PR head), and tmt reads --name as a regex. The generated discover: test: lists are matched the same way. Without the two-digit numbers, plan-soft-reboot / test-soft-reboot are prefixes of the -selinux-policy names. The fix is small: anchor both (^...$, with the name regex-escaped) in run-tmt and in the generated plan files. Optionally, --check could also reject a name that is a prefix of another. Test with just validate and just test-tmt soft-reboot; the CI integration matrix should go green.

    Decision for cgwalters: how should that fix land on #2581?

    • (A) Comment on #2581 asking for it. Under D17 that starts the bot's fix round 2 of 2 on its own branch; round 1 ended with no change.
    • (B) Open a cgwalters-forge/bootc issue for it so the fix can be planned and dispatched. bootc-dev/bootc isn't in dispatch's bounds (dispatch.toml L7), so a plan can't target #2581 directly.
    • (C) Push the fix to #2581 yourself.

    I recommend (A). Once #2581 merges, close this item as completed.

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

    Generated by dispatch · ◷

  4. moved this from Todo to Needs human in Workstreamon Oct 23, 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

    • Status
      Needs human

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions