fix(release): tag and pack the resolved release commit, never the dispatch head#8527
Merged
Merged
Conversation
…patch head Advances #8525. The reconcile self-heal dispatches publish-*.yml bare (against main head), and the bare-dispatch path tagged-and-packed HEAD -- during today's runner backlog that placed ui-kit-v1.1.2 two commits late, sweeping the would-be 1.1.3 fix into the 1.1.2 tag and published artifact and zombifying the open v1.1.3 release PR (release-please saw 'No commits for path' behind the misplaced tag and could neither regenerate nor prune it; closed by hand as #8506). All four publish workflows now resolve the RELEASE COMMIT -- the newest main commit that introduced the current version string into the package's own package.json (the release PR's merge commit) -- then: - verify it is reachable from main, - verify any pre-existing tag points AT it (not at HEAD), - detach onto it so typecheck/pack build the exact tree the version number describes, - create the annotated tag at it explicitly. Unresolvable ⇒ hard abort, never a head fallback. The release-please dispatch path (dispatched against the tag itself) is byte-identical in effect: there HEAD already IS the release commit. Regression pins in test/unit/publish-release-tag-pins.test.ts cover the resolver, the fail-loud arm, the detach, and the death of every head-tagging form across all four workflows.
Contributor
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #8527 +/- ##
=======================================
Coverage 92.53% 92.53%
=======================================
Files 793 793
Lines 79561 79561
Branches 24043 24043
=======================================
Hits 73625 73625
Misses 4799 4799
Partials 1137 1137
Flags with carried forward coverage won't be shown. Click here to find out more. |
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.
Summary
Advances #8525 (root cause of the #8506 zombie). The reconcile self-heal dispatches
publish-*.ymlbare — against main head — and the bare-dispatch path tagged and packed HEAD. During today's runner backlog that placedui-kit-v1.1.2two commits late, silently absorbing the would-be 1.1.3 fix into the 1.1.2 tag/artifact and permanently zombifying the open v1.1.3 release PR.All four publish workflows now resolve the release commit (newest main commit that introduced the current version string into the package's own
package.json— the release PR's merge commit), verify it's reachable from main, verify any pre-existing tag points at it, detach onto it so the tarball is built from the exact tree the version describes, and create the annotated tag there explicitly. Unresolvable ⇒ hard abort, never a head fallback. The normal release-please dispatch path (dispatched against the tag ref) is unchanged in effect: HEAD already is the release commit there.Validation
actionlintclean (incl. shellcheck); newtest/unit/publish-release-tag-pins.test.tspins the resolver, the fail-loud arm, the ancestor check, the detach, the cross-jobrelease_shahandoff, and the absence of every head-tagging form across all four workflows (12 pins, green). Workflow-only + test-only change — nosrc/**coverage surface.