Skip to content

Resolve a no-release labelled merge to its own reason instead of no-label - #183

Open
woksin wants to merge 1 commit into
mainfrom
fix/no-release-reason
Open

Resolve a no-release labelled merge to its own reason instead of no-label#183
woksin wants to merge 1 commit into
mainfrom
fix/no-release-reason

Conversation

@woksin

@woksin woksin commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Problem

A merged pull request labelled no-release - the organization's explicit this merge deliberately publishes nothing decision, accepted by the shared release-intent gate in Cratis/Workflows - fell through to the no-label reason, which is exactly the reason verify-published jobs are told to fail on. Result: every properly labelled documentation/tooling merge that touches a publish-triggering path goes red on main. Seen today (2026-08-28) on Cratis/cli run 33155633590 (PR #119, labelled no-release) and Cratis/Chronicle.Kotlin run 33155615166 (PR #55, labelled no-release).

Change

  • New no-release-labels input (default no-release), consistent with the existing configurable bump labels.
  • A merged pull request carrying one of those labels resolves to a new no-release reason, documented as expected rather than unintended - so existing verify-published conditions (contains(fromJSON('["no-label", "error"]'), ...)) go green for it with no consumer change.
  • Suppression wins when a pull request somehow carries both no-release and a bump label: the gate should reject that combination before merge, but releasing is the irreversible answer to the ambiguity.
  • Specs for the Versions decision (including the both-labels case), the main step end to end, and the input defaults; README and action.yml reason/output docs updated; dist/ rebuilt.

Verification

  • yarn typecheck, yarn lint:ci, yarn test (64 files, 130 specs) all pass; dist rebuilt with yarn clean && yarn build.

…abel

A merged pull request labelled no-release - the organization's explicit
'this merge deliberately publishes nothing' decision, accepted by the
release-intent gate - fell through to the no-label reason, which is the one
reason verify-published jobs are told to fail on. Every properly labelled
documentation or tooling merge that touched a publish-triggering path went
red on main (Cratis/cli run 33155633590 and Cratis/Chronicle.Kotlin run
33155615166 on 2026-08-28).

The action now recognizes a configurable no-release-labels input (default
no-release) and resolves such merges to a new 'no-release' reason, listed
as expected rather than unintended. Suppression wins over a bump label when
both are present, since releasing is the irreversible answer to an
ambiguity the gate should have rejected.
@woksin woksin added the minor New, backwards-compatible capabilities label Aug 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

minor New, backwards-compatible capabilities

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant