@williamthorsen/release-kit 5.1.0 β 5.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +113 -65
- package/README.md +147 -70
- package/cliff.toml.template +26 -17
- package/dist/esm/.cache +1 -1
- package/dist/esm/bin/release-kit.js +96 -3
- package/dist/esm/buildChangelogEntries.d.ts +1 -0
- package/dist/esm/buildChangelogEntries.js +39 -25
- package/dist/esm/checkWorkTypesDrift.d.ts +11 -0
- package/dist/esm/checkWorkTypesDrift.js +110 -0
- package/dist/esm/collectPolicyViolations.d.ts +6 -0
- package/dist/esm/collectPolicyViolations.js +15 -0
- package/dist/esm/createGithubRelease.d.ts +12 -2
- package/dist/esm/createGithubRelease.js +12 -8
- package/dist/esm/createGithubReleaseCommand.js +2 -7
- package/dist/esm/decideRelease.d.ts +3 -0
- package/dist/esm/decideRelease.js +19 -3
- package/dist/esm/defaults.d.ts +7 -0
- package/dist/esm/defaults.js +41 -20
- package/dist/esm/deriveWorkspaceConfig.js +3 -0
- package/dist/esm/determineBumpFromCommits.d.ts +6 -1
- package/dist/esm/determineBumpFromCommits.js +9 -3
- package/dist/esm/generateChangelogs.js +14 -29
- package/dist/esm/loadConfig.js +14 -22
- package/dist/esm/parseCommitMessage.d.ts +8 -2
- package/dist/esm/parseCommitMessage.js +32 -3
- package/dist/esm/publishCommand.js +21 -2
- package/dist/esm/releasePrepare.js +39 -15
- package/dist/esm/releasePrepareMono.js +26 -3
- package/dist/esm/releasePrepareProject.js +13 -1
- package/dist/esm/renderReleaseNotes.js +2 -1
- package/dist/esm/reportPrepare.js +18 -0
- package/dist/esm/resolveCommandTags.js +16 -6
- package/dist/esm/resolveReleaseTags.d.ts +8 -1
- package/dist/esm/resolveReleaseTags.js +11 -7
- package/dist/esm/runGitCliff.d.ts +2 -0
- package/dist/esm/runGitCliff.js +27 -0
- package/dist/esm/stripEmojiPrefix.d.ts +1 -0
- package/dist/esm/stripEmojiPrefix.js +7 -0
- package/dist/esm/syncWorkTypes.d.ts +10 -0
- package/dist/esm/syncWorkTypes.js +90 -0
- package/dist/esm/types.d.ts +15 -0
- package/dist/esm/work-types.json +127 -0
- package/dist/esm/work-types.schema.json +73 -0
- package/dist/esm/workTypesData.d.ts +14 -0
- package/dist/esm/workTypesData.js +59 -0
- package/dist/esm/workTypesUtils.d.ts +5 -0
- package/dist/esm/workTypesUtils.js +16 -0
- package/package.json +6 -3
- package/dist/esm/version.d.ts +0 -1
- package/dist/esm/version.js +0 -4
package/CHANGELOG.md
CHANGED
|
@@ -2,33 +2,57 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
-
## [release-kit-v5.1
|
|
5
|
+
## [release-kit-v5.2.1] - 2026-05-05
|
|
6
6
|
|
|
7
|
-
### Bug fixes
|
|
7
|
+
### π Bug fixes
|
|
8
8
|
|
|
9
|
-
-
|
|
9
|
+
- Soft-skip tags with no changelog entry under --tags (#366)
|
|
10
10
|
|
|
11
|
-
Fixes an issue where `release-kit
|
|
11
|
+
Fixes an issue where `release-kit create-github-release --tags <tag>` exited 1 β failing the calling CI workflow β when the requested tag had no changelog entry. Tooling-only releases (those whose changelog generator legitimately omits an entry) are now soft-skipped with an info-level summary, the same as releases skipped because their entry has no audience-relevant content. Typo protection is preserved: passing an unknown tag to `--tags` still exits 1.
|
|
12
12
|
|
|
13
|
-
-
|
|
13
|
+
## [release-kit-v5.2.0] - 2026-05-04
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
### π Features
|
|
16
16
|
|
|
17
|
-
-
|
|
17
|
+
- Add emojis to changelog and release-note headings (#352)
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
Adds emoji prefixes to the section headings rendered in `CHANGELOG.md` and release notes generated by `@williamthorsen/release-kit`. Each of the 13 default work types gets a single decorative emoji so its section is easier to spot when skimming a release: π Bug fixes, π Features, π Documentation, β»οΈ Refactoring, β‘ Performance, π Security, π§ͺ Tests, βοΈ Tooling, π· CI, π¦ Dependencies, ποΈ Internal, ποΈ Deprecated, and π€ Agentic support. Matching of `changelogJson.devOnlySections` is emoji-tolerant: existing consumer overrides written as bare names continue to work without modification.
|
|
20
20
|
|
|
21
|
-
-
|
|
21
|
+
- Surface bang violations in release prepare reports (#359)
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
Release-prepare flows now surface `!`-policy violations as warnings in the prepare report. Each workspace's and project's commit window is parsed against the default policy table β `internal!` is rejected as contradictory, bare `drop:` is rejected for missing the required `!`, and so on β and any violations appear under the workspace's section in the report alongside short hash, truncated subject, type, and surface (prefix or body). A new `breakingPolicies` config field lets consumers override individual entries or pass `{}` to disable enforcement entirely. Release-time enforcement remains tolerant: violations are warnings, never failures, so a single legacy commit cannot block a release.
|
|
24
24
|
|
|
25
|
-
###
|
|
25
|
+
### π Bug fixes
|
|
26
26
|
|
|
27
|
-
-
|
|
27
|
+
- Restrict publish to publishable workspaces (#345)
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
Fixes an issue where `release-kit publish` failed for workspaces marked `package.json#private: true`. The command now operates only on publishable workspaces β those where `private` is absent or `false` β and the rest of the release pipeline (`tag`, `create-github-release`, `prepare`, changelog) continues to handle private workspaces unchanged. This preserves the "versioned but not published" workflow: a private workspace can still be versioned, tagged, and published as a GitHub Release; only the registry-publish step is skipped. Without `--tags`, unpublishable tags are silently filtered (an empty result prints `Nothing to publish.` and exits 0). With `--tags` naming an unpublishable workspace, `release-kit publish` exits 1 with one error per offending tag, citing `package.json#private` and the workspace path.
|
|
30
|
+
|
|
31
|
+
- Skip tooling-only releases instead of failing (#347)
|
|
32
|
+
|
|
33
|
+
Fixes an issue where `release-kit create-github-release --tags <tag>` exited 1 whenever the tag's changelog had no all-audience content. The reusable `create-github-release.reusable.yaml` workflow forwards `github.ref_name` into `--tags`, so tooling-only releases consistently produced failed workflow runs even though no failure occurred. The command now exits 1 only when a requested tag has no changelog entry; intentional skip reasons (`no-audience-content`, `empty-body`) are informational. A typoed tag still surfaces an error even when batched alongside successful tags, and the info summary reports the per-tag skip reason for diagnostic visibility.
|
|
34
|
+
|
|
35
|
+
- Establish canonical work-types SSOT and restore changelog section ordering (#358)
|
|
36
|
+
|
|
37
|
+
Restores canonical section ordering in changelogs and release notes β sections were appearing in unpredictable order after the previous release added emoji prefixes to section headers. Sections now follow a stable priority: public-facing types (Features, Fixes, Security, β¦) first, then internal types, then process types. Release-note bullets for breaking changes carry a `π¨ **Breaking:**` prefix so they stand out at a glance. Documentation entries move out of public release notes β they continue to appear in dev changelogs.
|
|
38
|
+
|
|
39
|
+
Closes #355.
|
|
40
|
+
|
|
41
|
+
### β‘ Performance
|
|
42
|
+
|
|
43
|
+
- Skip npx registry revalidation when running git-cliff (#361)
|
|
44
|
+
|
|
45
|
+
Speeds up `release-kit prepare` by skipping the npm registry cache-revalidation HTTP request that ran on every `git-cliff` invocation. Per-invocation overhead drops from ~4.6 s to ~2.0 s; in a four-workspace monorepo this saves about 10 seconds per run. Also suppresses a transient stderr spinner that briefly appeared during package resolution and looked like a half-complete log message. Network fallback is preserved β runs on machines with an empty npx cache still resolve `git-cliff` over the network.
|
|
46
|
+
|
|
47
|
+
### β»οΈ Refactoring
|
|
48
|
+
|
|
49
|
+
- Read package version at runtime via shared helper (#338)
|
|
50
|
+
|
|
51
|
+
Fixes an issue where running `audit-deps`, `nmr`, or `release-kit` from the locally built `dist/esm/` after a `git pull` could report a stale version. Each CLI now reads its version directly from its `package.json` at startup, so version reads stay in sync with the installed source without requiring a fresh `pnpm install` or rebuild.
|
|
52
|
+
|
|
53
|
+
## [release-kit-v5.1.0] - 2026-04-30
|
|
30
54
|
|
|
31
|
-
### Features
|
|
55
|
+
### π Features
|
|
32
56
|
|
|
33
57
|
- Add `project` block for project-level release stage (#317)
|
|
34
58
|
|
|
@@ -46,7 +70,25 @@ All notable changes to this project will be documented in this file.
|
|
|
46
70
|
|
|
47
71
|
Decouples `--force` and `--bump` so each flag has a single responsibility, and unifies skip semantics across the per-workspace and project pipelines.
|
|
48
72
|
|
|
49
|
-
###
|
|
73
|
+
### π Bug fixes
|
|
74
|
+
|
|
75
|
+
- Make publish's clean-tree safety gate reachable (#311)
|
|
76
|
+
|
|
77
|
+
Fixes an issue where `release-kit publish` failed with pnpm's "working tree is dirty" error on a clean tree whenever `releaseNotes.shouldInjectIntoReadme: true` was configured. release-kit injects the release notes into the package README before invoking `pnpm publish`, so pnpm's own working-tree check fired on a tree release-kit had just dirtied β even though the user's tree was clean at command start.
|
|
78
|
+
|
|
79
|
+
- Make `--set-version` + `project` rejection explicit (#319)
|
|
80
|
+
|
|
81
|
+
Improves the error users see when invoking `release-kit prepare --set-version` with a `project` block configured. The combination is still rejected β as before β but now produces a single, project-aware message ("--set-version cannot be combined with a project releaseβ¦") rather than the previous two-step chain (`--set-version requires --only`, then `--only cannot be combined with a project release` after the user added `--only`).
|
|
82
|
+
|
|
83
|
+
- Reject `--only` that would strand excluded dependents (#321)
|
|
84
|
+
|
|
85
|
+
Fixes a silent footgun in `release-kit prepare --only=...`: an excluded internal dependent with its own changes would be left unreleased with no runtime signal, even though the targeted workspace it depends on was being released. The command now rejects such invocations up front, naming every excluded dependent whose changes would be stranded.
|
|
86
|
+
|
|
87
|
+
- Order prerelease versions correctly in changelog sort (#334)
|
|
88
|
+
|
|
89
|
+
Fixes a latent issue in `@williamthorsen/release-kit` where prerelease version tags (e.g., `1.2.3-alpha`, `1.2.3-rc.1`) were sorted as if their prerelease component were absent, causing them to appear in the wrong position relative to releases sharing the same base version. Changelog entries are now ordered per SemVer Β§11: prerelease versions precede the corresponding release (`1.2.3-alpha < 1.2.3`), build metadata is ignored for ordering, and entries that fail SemVer validation sort deterministically to the bottom of the list rather than collapsing into mid-list positions.
|
|
90
|
+
|
|
91
|
+
### β»οΈ Refactoring
|
|
50
92
|
|
|
51
93
|
- Convert prepare results to discriminated unions (#330)
|
|
52
94
|
|
|
@@ -56,21 +98,21 @@ All notable changes to this project will be documented in this file.
|
|
|
56
98
|
|
|
57
99
|
Reorganises `changelog.json` generation in `@williamthorsen/release-kit` so that producing entries (running git-cliff and shaping the output) is fully separated from persisting them (reading, merging, and writing the file). Removes the silent-discard parse-failure path at the project release stage by no longer reading the root `changelog.json` before overwriting it. Sharpens dry-run mode: `git-cliff` now runs even on dry-run so configuration mistakes surface in preview rather than only on a real release. Trims the public `index.ts` barrel from ~50 re-exports to the two type names actually consumed by external configs.
|
|
58
100
|
|
|
59
|
-
### Tests
|
|
101
|
+
### π§ͺ Tests
|
|
60
102
|
|
|
61
103
|
- Cover untested project-release and config branches (#329)
|
|
62
104
|
|
|
63
105
|
Closes four mechanical test-coverage gaps in the project-level release surfaces flagged in the test review of #308. New cases exercise the `(no previous release found)` rendering for released projects, the unparseable-commit warning block on the released-project rendering path, the `readFileSync` I/O failure path in `readRootPackageVersion`, and the contributing-paths invariant in `releasePrepareProject`. No production code changes β these are pure-render and pure-derivation branches that previously had no test exercising them.
|
|
64
106
|
|
|
65
|
-
|
|
107
|
+
### π Documentation
|
|
66
108
|
|
|
67
|
-
|
|
109
|
+
- Document tag prefix collisions as general rule (#320)
|
|
68
110
|
|
|
69
|
-
-
|
|
111
|
+
Documents the strict-prefix tag-prefix collision rule as a general validation rule that applies to every release-kit consumer declaring more than one tag prefix: across active workspaces, declared legacy identities, retired packages, and the optional `project` block. Previously, the rule appeared only inside the `Project releases` validation list.
|
|
70
112
|
|
|
71
|
-
|
|
113
|
+
## [release-kit-v5.0.0] - 2026-04-23
|
|
72
114
|
|
|
73
|
-
### Features
|
|
115
|
+
### π Features
|
|
74
116
|
|
|
75
117
|
- Improve release-notes rendering quality (#261)
|
|
76
118
|
|
|
@@ -118,7 +160,13 @@ All notable changes to this project will be documented in this file.
|
|
|
118
160
|
|
|
119
161
|
Adds the ability to generate release notes when running `release-kit prepare`. The `--with-release-notes` option enables the generation of per-workspace preview files so authors can verify release-note injection before publishing. Injected release notes are also now prefixed with a `## Release notes β v{version} ({date})` heading to add missing context to the README.
|
|
120
162
|
|
|
121
|
-
###
|
|
163
|
+
### π Bug fixes
|
|
164
|
+
|
|
165
|
+
- Derive monorepo tag prefix from unscoped `package.json` name (#278)
|
|
166
|
+
|
|
167
|
+
Fixes a long-standing mismatch between a monorepo workspace's directory basename and its publishable package identity.
|
|
168
|
+
|
|
169
|
+
### β»οΈ Refactoring
|
|
122
170
|
|
|
123
171
|
- Rename `component` to `workspace` in config API and internals (#296)
|
|
124
172
|
|
|
@@ -130,21 +178,21 @@ All notable changes to this project will be documented in this file.
|
|
|
130
178
|
|
|
131
179
|
## [release-kit-v4.8.0] - 2026-04-17
|
|
132
180
|
|
|
133
|
-
###
|
|
181
|
+
### π Features
|
|
134
182
|
|
|
135
|
-
-
|
|
183
|
+
- Add `push` command for safe tag pushing (#243)
|
|
136
184
|
|
|
137
|
-
|
|
185
|
+
Adds a `release-kit push` command that safely pushes the release commit and each tag individually, ensuring GitHub Actions fires a separate workflow run per tag. The command performs a `1 + N` push sequence: one branch push followed by one `git push --no-follow-tags origin <tag>` per resolved tag. Supports `--dry-run` (preview without pushing), `--only` (filter tags by package name), and `--tags-only` (skip the branch push).
|
|
138
186
|
|
|
139
|
-
###
|
|
187
|
+
### π Bug fixes
|
|
140
188
|
|
|
141
|
-
-
|
|
189
|
+
- Replace broad catch with `existsSync` guard in `detectRepoType` (#229)
|
|
142
190
|
|
|
143
|
-
|
|
191
|
+
Fixes silent swallowing of unexpected filesystem errors in `detectRepoType`. Previously, errors like `EACCES` (permission denied) or `EMFILE` (too many open files) when reading `package.json` were caught and discarded, causing the function to silently return `'single-package'` instead of surfacing the problem.
|
|
144
192
|
|
|
145
193
|
## [release-kit-v4.7.0] - 2026-04-16
|
|
146
194
|
|
|
147
|
-
### Features
|
|
195
|
+
### π Features
|
|
148
196
|
|
|
149
197
|
- Support ## as synthetic ticket prefix in changelogs
|
|
150
198
|
|
|
@@ -152,7 +200,7 @@ All notable changes to this project will be documented in this file.
|
|
|
152
200
|
|
|
153
201
|
## [release-kit-v4.6.0] - 2026-04-15
|
|
154
202
|
|
|
155
|
-
### Features
|
|
203
|
+
### π Features
|
|
156
204
|
|
|
157
205
|
- Guard `prepare` against dirty working tree (#188)
|
|
158
206
|
|
|
@@ -172,13 +220,13 @@ All notable changes to this project will be documented in this file.
|
|
|
172
220
|
|
|
173
221
|
Adds structured changelog generation with audience tagging to the `release-kit` package, enabling GitHub Release creation and npm README injection with user-facing release notes filtered from developer-only sections. The existing CHANGELOG.md pipeline is unchanged; a new `.meta/changelog.json` artifact is generated in parallel during `release-kit prepare`, and consumed during `release-kit publish` to create GitHub Releases and inject release notes into the published package's README.
|
|
174
222
|
|
|
175
|
-
### Refactoring
|
|
223
|
+
### β»οΈ Refactoring
|
|
176
224
|
|
|
177
225
|
- Decouple GitHub Release creation and README injection from npm publish (#203)
|
|
178
226
|
|
|
179
227
|
Makes GitHub Release creation available as a standalone CLI command (`release-kit github-release`) and removes README injection logic from the publish function. Non-published projects (applications, websites, internal tools) can now create GitHub Releases independently after `release-kit prepare`, and the inject/restore lifecycle is managed by the command layer rather than buried inside business logic.
|
|
180
228
|
|
|
181
|
-
### Tooling
|
|
229
|
+
### βοΈ Tooling
|
|
182
230
|
|
|
183
231
|
- Enable automated publication to npm (#187)
|
|
184
232
|
|
|
@@ -186,7 +234,7 @@ All notable changes to this project will be documented in this file.
|
|
|
186
234
|
|
|
187
235
|
## [release-kit-v4.5.1] - 2026-04-10
|
|
188
236
|
|
|
189
|
-
### Bug fixes
|
|
237
|
+
### π Bug fixes
|
|
190
238
|
|
|
191
239
|
- Fix sync-labels init scaffolding output (#179)
|
|
192
240
|
|
|
@@ -194,13 +242,7 @@ All notable changes to this project will be documented in this file.
|
|
|
194
242
|
|
|
195
243
|
## [release-kit-v4.4.0] - 2026-04-04
|
|
196
244
|
|
|
197
|
-
###
|
|
198
|
-
|
|
199
|
-
- Refine README to match preflight documentation standard (#138)
|
|
200
|
-
|
|
201
|
-
Restructures the release-kit README to match the documentation standard established by the preflight README (#114). Reorders sections to follow the cross-package convention, converts CLI flag listings from code blocks to tables, adds representative `prepare --dry-run` output to the quick start, and condenses ~90 lines of inline workflow YAML into a summary with an inputs table and trigger examples. Fixes several accuracy gaps found by verifying documentation against source.
|
|
202
|
-
|
|
203
|
-
### Features
|
|
245
|
+
### π Features
|
|
204
246
|
|
|
205
247
|
- Add --version flag to nmr and release-kit (#143)
|
|
206
248
|
|
|
@@ -210,7 +252,7 @@ All notable changes to this project will be documented in this file.
|
|
|
210
252
|
|
|
211
253
|
Adds try/catch with `ERR_MODULE_NOT_FOUND` detection to all six bin wrappers across `nmr`, `preflight`, and `release-kit`. Previously, five of the six wrappers used bare `import()` calls that produced cryptic unhandled rejections when `dist/` was missing, and `preflight`'s existing try/catch gave no actionable guidance.
|
|
212
254
|
|
|
213
|
-
### Refactoring
|
|
255
|
+
### β»οΈ Refactoring
|
|
214
256
|
|
|
215
257
|
- Extract deleteFileIfExists helper (#136)
|
|
216
258
|
|
|
@@ -220,9 +262,15 @@ All notable changes to this project will be documented in this file.
|
|
|
220
262
|
|
|
221
263
|
Add a schema-driven `parseArgs` function to `@williamthorsen/node-monorepo-core` that handles boolean flags, string flags (both `--flag=value` and `--flag value`), short aliases, positional collection, the `--` delimiter, and unknown-flag errors. Migrate all CLI argument-parsing sites in preflight (3 sites) and release-kit (5 sites) to use it. A companion `translateParseError` helper normalizes internal error messages for consistent user-facing output.
|
|
222
264
|
|
|
265
|
+
### π Documentation
|
|
266
|
+
|
|
267
|
+
- Refine README to match preflight documentation standard (#138)
|
|
268
|
+
|
|
269
|
+
Restructures the release-kit README to match the documentation standard established by the preflight README (#114). Reorders sections to follow the cross-package convention, converts CLI flag listings from code blocks to tables, adds representative `prepare --dry-run` output to the quick start, and condenses ~90 lines of inline workflow YAML into a summary with an inputs table and trigger examples. Fixes several accuracy gaps found by verifying documentation against source.
|
|
270
|
+
|
|
223
271
|
## [release-kit-v4.0.0] - 2026-04-02
|
|
224
272
|
|
|
225
|
-
### Features
|
|
273
|
+
### π Features
|
|
226
274
|
|
|
227
275
|
- Rename reusable workflows to .reusable.yaml convention (#129)
|
|
228
276
|
|
|
@@ -230,19 +278,7 @@ All notable changes to this project will be documented in this file.
|
|
|
230
278
|
|
|
231
279
|
## [release-kit-v3.0.0] - 2026-03-29
|
|
232
280
|
|
|
233
|
-
###
|
|
234
|
-
|
|
235
|
-
- Pass tag pattern to git-cliff based on tagPrefix (#77)
|
|
236
|
-
|
|
237
|
-
Fixes the issue that git-cliff was processing the entire commit history on every run instead of only commits since the last release.
|
|
238
|
-
|
|
239
|
-
Constructs the pattern from `tagPrefix` at invocation time (e.g., `release-kit-v` β `release-kit-v[0-9].*`) and pass it via `--tag-pattern`, which overrides the config file default.
|
|
240
|
-
|
|
241
|
-
- Propagate version bumps to workspace dependents (#80)
|
|
242
|
-
|
|
243
|
-
Restructures `releasePrepareMono` from a single-pass loop into a phased pipeline that automatically patch-bumps workspace dependents when a component is released. A reverse dependency graph is built from `workspace:` references in `dependencies` and `peerDependencies`, then BFS propagation walks upward from bumped components to their dependents. Propagated-only components receive synthetic changelog entries instead of git-cliff invocations.
|
|
244
|
-
|
|
245
|
-
### Features
|
|
281
|
+
### π Features
|
|
246
282
|
|
|
247
283
|
- Support conventional-commit format in commit parsing (#85)
|
|
248
284
|
|
|
@@ -262,9 +298,21 @@ All notable changes to this project will be documented in this file.
|
|
|
262
298
|
|
|
263
299
|
Updates the scaffolded `publish.yaml` template to include `provenance: false` with an inline comment guiding public repos to opt in. Expand the `release-kit init` next-steps output with hints about the provenance setting and trusted publisher registration. Set `provenance: true` in this repo's own `publish.yaml` since it is public.
|
|
264
300
|
|
|
301
|
+
### π Bug fixes
|
|
302
|
+
|
|
303
|
+
- Pass tag pattern to git-cliff based on tagPrefix (#77)
|
|
304
|
+
|
|
305
|
+
Fixes the issue that git-cliff was processing the entire commit history on every run instead of only commits since the last release.
|
|
306
|
+
|
|
307
|
+
Constructs the pattern from `tagPrefix` at invocation time (e.g., `release-kit-v` β `release-kit-v[0-9].*`) and pass it via `--tag-pattern`, which overrides the config file default.
|
|
308
|
+
|
|
309
|
+
- Propagate version bumps to workspace dependents (#80)
|
|
310
|
+
|
|
311
|
+
Restructures `releasePrepareMono` from a single-pass loop into a phased pipeline that automatically patch-bumps workspace dependents when a component is released. A reverse dependency graph is built from `workspace:` references in `dependencies` and `peerDependencies`, then BFS propagation walks upward from bumped components to their dependents. Propagated-only components receive synthetic changelog entries instead of git-cliff invocations.
|
|
312
|
+
|
|
265
313
|
## [release-kit-v2.3.2] - 2026-03-28
|
|
266
314
|
|
|
267
|
-
### Bug fixes
|
|
315
|
+
### π Bug fixes
|
|
268
316
|
|
|
269
317
|
- Prevent unparseable commits from being silently dropped (#76)
|
|
270
318
|
|
|
@@ -272,7 +320,7 @@ All notable changes to this project will be documented in this file.
|
|
|
272
320
|
|
|
273
321
|
## [release-kit-v2.3.0] - 2026-03-28
|
|
274
322
|
|
|
275
|
-
### Features
|
|
323
|
+
### π Features
|
|
276
324
|
|
|
277
325
|
- Add shared writeFileWithCheck utility and overwrite reporting (#66)
|
|
278
326
|
|
|
@@ -284,7 +332,7 @@ All notable changes to this project will be documented in this file.
|
|
|
284
332
|
|
|
285
333
|
Refactors `writeReleaseTags` to use the shared `writeFileWithCheck` utility from `@node-monorepo-tools/core` instead of raw `mkdirSync`/`writeFileSync`. The function now returns a structured `WriteResult` instead of throwing, and contains no `console` calls β all presentation moves to `runAndReport`.
|
|
286
334
|
|
|
287
|
-
### Tests
|
|
335
|
+
### π§ͺ Tests
|
|
288
336
|
|
|
289
337
|
- Add eligibility check failure and short-circuit tests (#63)
|
|
290
338
|
|
|
@@ -300,7 +348,7 @@ All notable changes to this project will be documented in this file.
|
|
|
300
348
|
|
|
301
349
|
## [release-kit-v2.2.0] - 2026-03-27
|
|
302
350
|
|
|
303
|
-
### Features
|
|
351
|
+
### π Features
|
|
304
352
|
|
|
305
353
|
- Add sync-labels command (#33)
|
|
306
354
|
|
|
@@ -336,7 +384,7 @@ All notable changes to this project will be documented in this file.
|
|
|
336
384
|
|
|
337
385
|
Scopes: core, nmr
|
|
338
386
|
|
|
339
|
-
### Refactoring
|
|
387
|
+
### β»οΈ Refactoring
|
|
340
388
|
|
|
341
389
|
- Replace dist bin targets with thin wrapper scripts (#48)
|
|
342
390
|
|
|
@@ -346,7 +394,7 @@ All notable changes to this project will be documented in this file.
|
|
|
346
394
|
|
|
347
395
|
Extracts all `console.info` calls from the prepare workflow's logic functions (`bumpAllVersions`, `generateChangelogs`, `releasePrepare`, `releasePrepareMono`) into a dedicated `reportPrepare` formatter. Logic functions now return structured result types (`BumpResult`, `ComponentPrepareResult`, `PrepareResult`). The legacy `runReleasePrepare` entry point is retired, with its utilities absorbed into `prepareCommand`.
|
|
348
396
|
|
|
349
|
-
### Tests
|
|
397
|
+
### π§ͺ Tests
|
|
350
398
|
|
|
351
399
|
- Cover multi-changelogPaths and error paths (#44)
|
|
352
400
|
|
|
@@ -357,7 +405,7 @@ All notable changes to this project will be documented in this file.
|
|
|
357
405
|
|
|
358
406
|
Also adds a `findAllCliffOutputPaths()` test helper that collects the `--output` arg from every `git-cliff` mock call.
|
|
359
407
|
|
|
360
|
-
### Tooling
|
|
408
|
+
### βοΈ Tooling
|
|
361
409
|
|
|
362
410
|
- Adopt nmr to run monorepo and workspace scripts (#38)
|
|
363
411
|
|
|
@@ -365,7 +413,7 @@ All notable changes to this project will be documented in this file.
|
|
|
365
413
|
|
|
366
414
|
## [release-kit-v2.1.0] - 2026-03-17
|
|
367
415
|
|
|
368
|
-
### Features
|
|
416
|
+
### π Features
|
|
369
417
|
|
|
370
418
|
- Slim down release workflow by removing unnecessary pnpm install (#21)
|
|
371
419
|
|
|
@@ -383,7 +431,7 @@ All notable changes to this project will be documented in this file.
|
|
|
383
431
|
|
|
384
432
|
Adds a `resolveCliffConfigPath()` function that searches for a git-cliff config in a 4-step cascade (explicit path β `.config/git-cliff.toml` β `cliff.toml` β bundled `cliff.toml.template`), eliminating the requirement for consuming repos to maintain a cliff config copy. Restructures the `init` command to scaffold only the workflow file by default, with new `--with-config` and `--force` flags. Moves `.release-tags` from `/tmp/release-kit/` to project-local `tmp/` for predictable behavior in local runs.
|
|
385
433
|
|
|
386
|
-
### Refactoring
|
|
434
|
+
### β»οΈ Refactoring
|
|
387
435
|
|
|
388
436
|
- Clean up release-kit post-migration issues (#19)
|
|
389
437
|
|
|
@@ -391,7 +439,7 @@ All notable changes to this project will be documented in this file.
|
|
|
391
439
|
|
|
392
440
|
## [release-kit-v1.0.1] - 2026-03-14
|
|
393
441
|
|
|
394
|
-
### Features
|
|
442
|
+
### π Features
|
|
395
443
|
|
|
396
444
|
- Migrate release-kit from toolbelt (#18)
|
|
397
445
|
|