Skip to content

docs(breaking-change-approval): state the v2 label and output contracts - #933

Merged
bedatty merged 1 commit into
developfrom
docs/breaking-change-output-contract
Oct 19, 2026
Merged

bedatty merged 1 commit into
developfrom
docs/breaking-change-output-contract

Conversation

@bedatty

@bedatty bedatty commented Oct 19, 2026

Copy link
Copy Markdown
Contributor

Description

Radagast's last open thread on #926: the breaking-change gate changed two published contracts and the documentation still promised the old behaviour. The owner has authorised both as breaking for v2 rather than restoring the old semantics, so this PR makes the documentation accurate and pins the contract with a test.

has_breaking_changes out of scope. The output description read Always false when out of scope — nothing was scanned. while the workflow has been emitting the caller's real detection since #918. Documenting false while emitting true is worse than either value on its own: a caller reading the description writes a condition that silently never fires. The description now says what the output does and names the pre-v2 reading — gate on in_scope alongside it.

label surviving the decision. Already documented on the input itself; the migration now sits in docs/breaking-change-approval.md too, with the before/after for a caller that used label as a waiting marker (waiting-for-review → move it to pending_label).

Also adds the executable half. run_detect_normalization runs the gate's own normalization step, and a new test pins both values out of scope — detection passed through, nothing supplied still false — and refuses a description that promises the old value back.

No behaviour changes. Documentation, plus the test that keeps it honest.

Type of Change

  • feat: New workflow or new input/output/step in an existing workflow
  • fix: Bug fix in a workflow (incorrect behavior, broken step, wrong condition)
  • perf: Performance improvement (e.g. caching, parallelism, reduced steps)
  • refactor: Internal restructuring with no behavior change
  • docs: Documentation only (README, docs/, inline comments)
  • ci: Changes to self-CI (workflows under .github/workflows/ that run on this repo)
  • chore: Dependency bumps, config updates, maintenance
  • test: Adding or updating tests
  • BREAKING CHANGE: Callers must update their configuration after this PR

Breaking Changes

None in this PR. It documents breaks that already landed on develop — the release carrying them to main (#926) is where they are declared.

Testing

  • YAML syntax validated locally
  • Triggered a real workflow run on a caller repository using @this-branch or the beta tag
  • Verified all existing inputs still work with default values
  • Confirmed no secrets or tokens are printed in logs
  • Checked that unrelated workflows are not affected

actionlint clean; 98 workflow tests pass. The new test was verified against the old description — it fails when Always false when out of scope is restored.

Related Issues

Addresses #926 (comment)

Radagast on #926: the published contract changed twice and the
documentation still promised the old behaviour. The owner has authorised
both as breaking for v2 rather than restoring the old semantics.

`has_breaking_changes` reported `Always false when out of scope — nothing
was scanned` while emitting the caller's real detection since #918.
Documenting false while emitting true is worse than either value: a
caller reading the description builds a condition that silently never
fires. The description now says what it does and names the pre-v2
reading (gate on `in_scope`).

`label` surviving the decision was already documented on the input; the
migration now sits in the guide too, with the before/after for a caller
using it as a waiting marker.

Adds the executable half: `run_detect_normalization` runs the gate's own
normalization step, and a test pins both values out of scope and refuses
a description that promises the old one back.
@bedatty
bedatty requested a review from a team as a code owner October 19, 2026 17:01
@lerian-studio lerian-studio added size/S PR changes 50–199 lines documentation Improvements or additions to documentation workflow Changes to one or more reusable workflow files validate Changes to PR validation composite actions (src/validate/) labels Oct 19, 2026
@lerian-studio

Copy link
Copy Markdown
Contributor

🔍 PR Validation Summary

✅ PR Mergeable — no blocking failures

Check Status Blocking
Source Branch ✅ success yes
PR Title ✅ success yes
PR Description ✅ success yes
Breaking Change Guard ✅ success yes
Commit Signatures ✅ success yes
PR Size ✅ success no
Auto Labels ✅ success no
PR Metadata ✅ success no

🔍 View workflow run

@lerian-studio

Copy link
Copy Markdown
Contributor

🛡️ CodeQL Analysis Results

Languages analyzed: actions

✅ No security issues found.


🔍 View full scan logs | 🛡️ Security tab

@lerian-studio

Copy link
Copy Markdown
Contributor

@coderabbitai review

@lerian-studio lerian-studio added the review-ready Required checks passed — CodeRabbit is cleared to review label Oct 19, 2026
@lerian-studio

Copy link
Copy Markdown
Contributor

🔍 Lint Analysis

Check Files Scanned Status
YAML Lint 1 file(s) ✅ success
Action Lint 1 file(s) ✅ success
Pinned Actions 1 file(s) ✅ success
Markdown Link Check 1 file(s) ✅ success
Spelling Check 3 file(s) ✅ success
Shell Check 1 file(s) ✅ success
README Check 1 file(s) ✅ success
Composite Schema no changes ⏭️ skipped
Deployment Matrix no changes ⏭️ skipped

🔍 View full scan logs

@bedatty
bedatty merged commit dbaf2c4 into develop Oct 19, 2026
42 checks passed
@coderabbitai

coderabbitai Bot commented Oct 19, 2026 •

Copy link
Copy Markdown
⚠️ Action not completed

Pull request is closed.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@fredcamaral
fredcamaral deleted the docs/breaking-change-output-contract branch October 21, 2026 04:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation review-ready Required checks passed — CodeRabbit is cleared to review size/S PR changes 50–199 lines validate Changes to PR validation composite actions (src/validate/) workflow Changes to one or more reusable workflow files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants