Skip to content

A label for the gap between merged and released - #822

Closed
lmoresi wants to merge 1 commit into
developmentfrom
tooling/fixed-in-development
Closed

lmoresi wants to merge 1 commit into
developmentfrom
tooling/fixed-in-development

Conversation

@lmoresi

@lmoresi lmoresi commented Oct 6, 2026

Copy link
Copy Markdown
Member

Merges to main are infrequent, so GitHub's issue-closing — which fires only on a
default-branch merge — lags reality by a release. Between a merge and a release an
issue is fixed and still open and nothing says so.

Worth establishing first: the mechanism is not broken. Across the project's life
139 declared closes produced 5 that slipped, so it works — it works at release
time. The backlog was not caused by it, and I had briefly concluded otherwise.

What this adds

fixed-in-development (label created), applied at merge; the release then closes
everything carrying it in one pass. Closing at merge stays a reasonable choice for a
defect nobody outside is waiting on — it is only misleading for one somebody is.

scripts/triage.py gains a section listing every issue a merged PR declared that is
neither closed nor labelled:

FIXED BUT STILL OPEN  (a merged PR declared it; `fixed-in-development` not applied)
  #611   declared by #656           test_global_evaluate_after_migration hangs at np=4, and it

Three outcomes, not two

The hint names a third, and #611 is why:

    fixed and you want it off the board   -> gh issue close <N>
    fixed, waiting on a release           -> gh issue edit <N> --add-label fixed-in-development
    NOT fixed -- the PR addressed a neighbour, or papered over it
                                          -> leave open, say which part is live

#611 is the standing example. #656 was credited with closing it. The hang is handled
by scripts/test.sh:289:

--deselect "parallel/test_0760_swarm_cache_migration.py::test_global_evaluate_after_migration"

That deselect sits in the np=4 pass — the rank count the issue reports hanging at.
CI is green because the test does not run there. A tool that offered only close-or-label
would have labelled it and the hang would have gone quiet for good.

Underworld development team with AI support from Claude Code

GitHub closes a linked issue when its PR reaches the DEFAULT branch. Here that
is `main`, while the work merges to `development`, and merges to `main` are
infrequent. So between a merge and a release an issue is fixed and still open,
and nothing in the repository says so.

The mechanism itself is sound: across the project's life 139 declared closes
produced 5 that slipped. It is release-gated, not broken, and it was worth
establishing that before adding anything -- the backlog was not caused by it.

`fixed-in-development` is applied at merge and the release closes everything
carrying it in one pass. Closing at merge stays a reasonable choice for a
defect nobody outside is waiting on; it is only misleading for one somebody is.

scripts/triage.py now lists every issue a merged PR declared that is neither
closed nor labelled, and names three outcomes rather than two. The third is
the reason the list is candidates and not fixes: #611 was credited to #656 and
its hang is handled by a `--deselect` in scripts/test.sh at the very rank
count the issue reports. The tool finds exactly that one today.

Underworld development team with AI support from Claude Code
Copilot AI balanced review requested due to automatic review settings October 6, 2026 21:48

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟢 Approval recommended

The focused workflow and documentation changes are consistent and syntactically valid.

Review effort: Balanced
Findings: None

What changed in this PR

Adds workflow visibility for issues fixed on development but not yet released.

Changes:

  • Reports merged PRs whose declared issues remain open and unlabelled.
  • Documents the fixed-in-development lifecycle and three triage outcomes.
File Description
scripts/​triage.py Adds label-aware issue triage.
docs/​developer/​guides/​adversarial-review.md Documents merge-to-release issue handling.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@lmoresi

lmoresi commented Oct 7, 2026

Copy link
Copy Markdown
Member Author

Superseded by #825. The label is fixed-in-PR, not fixed-in-development: the latter framed the problem as the merge-to-release gap, which made the tool scan merged PRs only and find one issue. Four of the five issues the label applies to are in an unmerged PR — #785 carries #783 and #784 and cannot merge at all, its base branch having no PR. The branch name moved with it.

@lmoresi lmoresi closed this Oct 7, 2026
@lmoresi
lmoresi deleted the tooling/fixed-in-development branch October 7, 2026 08:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants