fix(ci): pin semantic-release tooling and restore v0.95.0 and v0.95.1 notes#989
Conversation
ee42798 to
b319460
Compare
|
This also ports the fix for stripping git trailers from substrait-io/substrait#1099 to substrait-java |
b319460 to
cbe6e12
Compare
cbe6e12 to
a44e1d2
Compare
bestbeforetoday
left a comment
There was a problem hiding this comment.
Do we really need the RELEASE_DRY_RUN environment variable and programmatic manipulation of the semantic release configuration in addition to the standard --dry-run command-line argument? This already skips publishing, and it looks like the programmatic configuration manipulates (removes) publishing setting that (I guess) should not be used with --dry-run anyway. Without manually testing it is hard for me to tell for sure.
| -p "semantic-release@25.0.5" \ | ||
| -p "@semantic-release/commit-analyzer@13.0.1" \ | ||
| -p "@semantic-release/release-notes-generator@14.1.1" \ | ||
| -p "@semantic-release/changelog@7.0.0-beta.1" \ |
There was a problem hiding this comment.
Using a prerelease beta version does not seem ideal unless there is some reason that release versions are not compatible or do not include some essential functionality. The latest recommended release is currently 6.0.3.
There was a problem hiding this comment.
Good catch — there's no reason to be on the beta here. @semantic-release/changelog@6.0.3 is the current latest dist-tag and declares semantic-release >=18.0.0 as its peer dependency, so it's compatible with the pinned semantic-release@25.0.5. I've pinned 6.0.3 in both run.sh and dry_run.sh and validated it with a dry run: the preset resolves cleanly and the notes render correctly (0.95.0 → 0.95.1).
…nfig Address review feedback on the semantic-release config: - pin @semantic-release/changelog to the stable 6.0.3 (latest, peer semantic-release >=18.0.0) instead of 7.0.0-beta.1; there is no functional reason for the prerelease. Validated with a dry run. - restore the explanatory comments that were dropped when the config was ported from the spec repo: why the preset import needs the npx temp-node_modules fallback, and why the publishing plugins are omitted via RELEASE_DRY_RUN rather than guarded by --dry-run (semantic-release still runs verifyConditions in dry-run mode, so @semantic-release/github would fail without a token). Corrected the dry-run description, which wrongly claimed dry-run skips only tag and push.
Yes — this is a deliberate safety mechanism copied from the spec repo (substrait-io/substrait#1099), and My dry run confirms this end to end — it completes token-free precisely because those plugins are dropped: I've restored the comment explaining this (dropped in the port) and corrected it — the original claimed dry-run "only skips tag and push," which isn't accurate. |
|
Rebased on latest
|
Add the Mentored-by git trailer to the strip list so it does not leak into changelog or release notes. It is one of the standard trailers documented in git's SubmittingPatches and was the only canonical one missing from the list.
Summary
Fixes semantic-release changelog generation and backfills the missing
v0.95.0andv0.95.1changelog entries. Both releases were published with empty notes — theCHANGELOG.mdentry and the GitHub release contained only the header.Changes
ci/release/run.shandci/release/dry_run.sh, including@semantic-release/changelog@6.0.3.releaserc.jsonto.releaserc.mjswriterOpts.transformhook in.releaserc.mjsto strip git trailers likeSigned-off-by:from breaking-change notesRELEASE_DRY_RUN=false;ci/release/run.shopts into a real release.releaserc.mjswhy the preset import needs thenpxfallback and why the publishing plugins are omitted viaRELEASE_DRY_RUNrather than--dry-runv0.95.0entry inCHANGELOG.md(and de-duplicate it — the restored block had been repeated)v0.95.1entry inCHANGELOG.md, generated with the pinned toolchainRoot cause
The empty release notes were caused by floating release-tool dependencies. In particular,
conventional-changelog-conventionalcommits@10.xregressed changelog generation in this setup, while9.3.1still generated the expected sections.Validation
conventional-changelog-conventionalcommits@9.3.1restores proper release notes generationv0.95.0release rangev0.95.1notes with the pinned toolchain over thev0.95.0..v0.95.1rangemainto confirm the config still loads and produces valid notes