redhat-developer / redhat-developer/rhdh-plugins

Clarify changeset bump guidance for TypeScript-level breaking type changes

Open
#4,652 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

documentation fullsend ready-for-triage ready-to-code Review effort 1/5
Dominant language
TypeScript
Stars
48
Forks
120
Avg merge
2d 6h
Merged PRs (30d)
337

Description

What happened

PR #4582 added a required field to ScalarAggregationResult and widened aggregationChartDisplayColor from string to string | null on WeightedStatusScoreAggregationResult — both @public exports. The review agent flagged these as breaking changes requiring a major bump per the repo's .fullsend/AGENTS.md guidance ("major for breaking API changes — removed exports, changed interfaces, dropped support"). The PR author updated the changeset to describe the changes as "BREAKING" but kept the bump at minor. The review agent's own style conventions sub-agent then found project precedent (the metric-collectors-endpoint changeset) for using minor for this class of change. Two human reviewers approved without addressing the semver concern. The PR was merged with a minor bump on Sep 9.

What could go better

The .fullsend/AGENTS.md changeset guidance says major for "changed interfaces" but the repo's actual practice allows minor for TypeScript-level type additions and widenings that maintain runtime/JSON compatibility. This ambiguity caused the review agent to raise the same missing-version-bump finding across 5+ review passes — a finding that was technically correct per the documented policy but incorrect per established practice. The repeated false-positive wasted review budget (~$32+ across 8 runs, with the semver concern contributing to noise in each pass) and trained reviewers to ignore agent findings. Confidence: high — the evidence is clear from both the documented policy, the established precedent found by the style sub-agent, and the human reviewers' decision to merge with minor.

Proposed change

Update the changeset bump guidance in .fullsend/AGENTS.md to distinguish between different categories of interface changes. Specifically, after the existing major bullet, add clarification such as:

  • major for breaking API changes that affect runtime behavior or remove existing capabilities (removed exports, narrowed types, removed required fields, dropped support).
  • minor is acceptable for additive or widening type changes on @public interfaces that maintain runtime/JSON compatibility (new optional or required fields on response types, type widening from string to string | null) — these are TypeScript compile-time breaking but runtime-compatible.

Alternatively, if the maintainers intend strict semver for TypeScript consumers, reinforce the current major guidance and update the metric-collectors-endpoint precedent to match. Either resolution eliminates the ambiguity.

Validation criteria

On the next 3 PRs that widen types or add required fields to @public interfaces in this repo, the review agent should not flag the bump level as incorrect when the changeset follows the updated guidance. The missing-version-bump finding should only appear when the bump genuinely violates the clarified policy.


Generated by retro agent from https://github.com/redhat-developer/rhdh-plugins/pull/4582

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with .fullsend/AGENTS.md and compare its changeset guidance with the metric-collectors-endpoint precedent and PR #4582. Confirm with maintainers whether TypeScript-only additive or widening changes should receive minor or major bumps, then update the guidance accordingly. Done means the policy is explicit and the next three relevant PRs follow it without incorrect missing-version-bump findings.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
developer-experience, documentation
Issue type
Documentation
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.