Skip to content

bmad-build: a plan's baseline_revision does not survive a squash merge, so bmad-retrospective cannot order ticket ranges #3063

Description

@tjoignant

Problem

bmad-build records a plan's baseline_revision as the HEAD of the branch the build runs on. When the story's PR is squash-merged, that commit is not an ancestor of main any more, and once the branch is deleted it can leave the clone entirely.

bmad-retrospective reads each ticket's diff range from these baselines and orders them. After squash merges, that ordering cannot run.

Seen

An epic of eleven stories, each merged by squash. In its retrospective:

  • three baselines were no longer in the clone;
  • five more were on no main ancestor.

The retrospective fell back on each story's squash commit on main and recorded the narrowing.

Proposal

Either of these would work:

  1. bmad-build records a baseline that survives the merge: the merge base of the build's branch with the default branch at the start of the build, rather than the branch's HEAD. Or it records both.
  2. bmad-retrospective reads a ticket's range from the squash commit on the default branch that carries the ticket's change, when the baseline is not an ancestor. For example, it can find that commit by the plan path the commit touches.

The first keeps the plan the single source of the range. The second needs no change to past plans.

Activity

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions