Repository navigation
ci(tag): list breaking commits and document recovery from accidental majors - #26
Merged
Merged
Conversation
…majors - When ccv computes a major bump, list the commits that likely triggered it (subject plus matching body lines) in the job summary. Best effort only. - The blocked-run summary prints two copy-paste runbooks pinned to the run SHA: one for an intended major and one for an accidental bump (next patch). Both create a lightweight, unsigned tag, which ccv requires. - CONTRIBUTING.md explains which commit text ccv treats as breaking (it is matched anywhere in the message, including the squash PR description) and how to recover. - The PR template tells authors to use feat!/fix! in the PR title.
Owner
Author
|
Dry run of this branch on this repo: https://github.com/clappingmonkey/rules_odin/actions/runs/39852781810 — computed |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Follow-up to #25. A dry run on
mainafter #25 merged computedv1.0.0. The squash commit body (the PR description) quoted ccv's breaking-change footer text, and ccv v0.10.0 matches that text anywhere in a commit message. The guard from #25 worked and nothing was tagged. Still, the failure gave no hint about which commit caused the bump or how to recover.This PR changes:
tag.yaml: when the computed bump is major, a new List breaking commits step (best effort,continue-on-error) writes the likely trigger commits since the last tag to the job summary, with the matching body lines. Commit text is sanitized so it cannot break out of the code fence.tag.yaml: the blocked-run summary prints two runbooks, both pinned to the run SHA:vX.0.0.Both use
git -c tag.gpgSign=false tag, because ccv ignores annotated and signed tags.CONTRIBUTING.md: the "Major releases" section explains which forms ccv treats as breaking, warns that the footer text is matched anywhere (including the PR description), and documents both recovery paths.PULL_REQUEST_TEMPLATE.md: tells authors to mark breaking changes with!in the PR title, and not to write the footer text in the description of a non-breaking PR.The
ci:title does not bump the version.How was it tested?
actionlintis clean.zizmor --persona=pedanticonly reports the existingself-repositorylow finding.pre-commit run --all-filespasses.feat!:succeeds and lists the commit.fix:commit whose body contains the footer text is blocked, and the list shows it.v3.1.2. The push triggers the release exactly once.fix:is auto-taggedv3.1.3, released once, and the list step is skipped.main. It listsd52682fwith the matching body line and suggestsv0.4.2as the recovery tag.Checklist
check.yaml— lint + test matrix)