chore(release): compose from the shared semantic-release config - #144
Merged
Conversation
Move release.config.mjs onto @dodi-smart/semantic-release-config instead of hand-rolling every plugin. Composed, not extended, because this repo needs semantic-release-scope-filter, a cargo set-version exec step, and github options the shared helper does not take. Behaviour is unchanged: branches, tagFormat, plugin order and every option match the old .releaserc.js exactly, modulo the commit-analyzer rules and release-notes types being reordered (same rules, same set) and the conventional-changelog-conventionalcommits v10 hidden -> effect rename. Verified with a resolved-config diff against the old config on both develop and main, and a dry run on develop. package.json drops the plugin devDependencies the shared package now carries: commit-analyzer, release-notes-generator, changelog, exec, git, github, conventional-changelog-conventionalcommits. semantic-release and semantic-release-scope-filter stay. The release workflow gains one step, linking the shared config into node_modules, right after bun install and before semantic-release. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Contributor
|
Knowledge layer
Spec currency is reported in the job summary and never fails a build, the same severity the local pre-commit hook uses. |
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 changed
release.config.mjsnow composes from@dodi-smart/semantic-release-config(v1.2.0) instead of hand-rolling every plugin. Composed, not extended, because this repo needssemantic-release-scope-filter, acargo set-versionexec step, and github options the sharedgithub()helper does not take.semantic-release-scope-filterstays first, unchanged, as this repo's own devDependency (the shared package does not carry it).commitAnalyzer()andreleaseNotes()run with no overrides: the repo's rules and types are literally the same set as the shared ones (just reordered), modulo theconventional-changelog-conventionalcommitsv10hidden->effectrename.changelogstays gated to non-develop branches, unchanged.execstill runscargo set-version --workspace ${nextRelease.version}.gitandgithubgo through the package'splugin()escape hatch rather than their helpers:git's message keeps the repo'svprefix (this repo tagsv${version}, the shared helper's default message does not have the prefix), andgithubkeepssuccessComment: false, releasedLabels: false, assets: [].branchesandtagFormatare unchanged.Behaviour is unchanged. Verified by:
.releaserc.js, evaluated the same way, on bothdevelopandmain: identical except for the two mechanical differences above.developafter linking the shared config withactions/semantic-release-config/install.sh: every shared plugin loaded from the linked prefix,semantic-release-scope-filterloaded from this repo's ownnode_modules, allverifyConditionspassed, and the run correctly concluded "no relevant changes, so no new version is released" (0 commits since the last tag).Workflow
.github/workflows/release.ymlgains one step, linking the shared config intonode_modules, right afterbun installand before semantic-release:Everything else in the workflow, including the separate
backmergejob, is unchanged.--extendsnow points atrelease.config.mjs(the old.releaserc.jsis removed; a.mjsfile is always ESM regardless of thetypefield inpackage.json, and this package.json has none).package.json
Removed the devDependencies the shared package now carries:
@semantic-release/commit-analyzer,@semantic-release/release-notes-generator,@semantic-release/changelog,@semantic-release/exec,@semantic-release/git,@semantic-release/github,conventional-changelog-conventionalcommits. Keptsemantic-releaseandsemantic-release-scope-filter.This makes Renovate PR #5 (bumping
conventional-changelog-conventionalcommitsto v10) obsolete, since that dependency no longer lives in this repo's ownpackage.json.Obsoletes
The dependency these Renovate PRs bump is gone from this repo, so they are superseded by this change.
Closes #5
🤖 Generated with Claude Code