@williamthorsen/release-kit 5.0.0 โ 5.2.0
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 +149 -49
- package/README.md +275 -78
- package/cliff.toml.template +26 -17
- package/dist/esm/.cache +1 -1
- package/dist/esm/assertCleanWorkingTree.js +1 -1
- package/dist/esm/bin/release-kit.js +97 -4
- package/dist/esm/buildChangelogEntries.d.ts +4 -0
- package/dist/esm/buildChangelogEntries.js +173 -0
- package/dist/esm/buildDependencyGraph.d.ts +1 -0
- package/dist/esm/buildDependencyGraph.js +8 -1
- package/dist/esm/buildReleaseSummary.js +9 -1
- package/dist/esm/buildSyntheticChangelogEntry.d.ts +5 -0
- package/dist/esm/buildSyntheticChangelogEntry.js +13 -0
- package/dist/esm/changelogJsonFile.d.ts +4 -0
- package/dist/esm/changelogJsonFile.js +68 -0
- 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 +10 -6
- package/dist/esm/decideRelease.d.ts +28 -0
- package/dist/esm/decideRelease.js +44 -0
- package/dist/esm/defaults.d.ts +8 -0
- package/dist/esm/defaults.js +43 -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/index.d.ts +2 -43
- package/dist/esm/index.js +0 -82
- package/dist/esm/init/templates.js +2 -2
- package/dist/esm/loadConfig.d.ts +10 -1
- package/dist/esm/loadConfig.js +110 -24
- package/dist/esm/parseCommitMessage.d.ts +8 -2
- package/dist/esm/parseCommitMessage.js +32 -3
- package/dist/esm/prepareCommand.js +51 -9
- package/dist/esm/publish.d.ts +0 -1
- package/dist/esm/publish.js +3 -3
- package/dist/esm/publishCommand.js +31 -3
- package/dist/esm/releasePrepare.js +109 -41
- package/dist/esm/releasePrepareMono.js +156 -87
- package/dist/esm/releasePrepareProject.d.ts +9 -0
- package/dist/esm/releasePrepareProject.js +121 -0
- package/dist/esm/renderReleaseNotes.js +2 -1
- package/dist/esm/reportPrepare.js +88 -24
- 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 +72 -14
- package/dist/esm/validateConfig.js +26 -0
- package/dist/esm/validateOnlyExcludesStrandedDependents.d.ts +14 -0
- package/dist/esm/validateOnlyExcludesStrandedDependents.js +109 -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 +9 -3
- package/presets/labels/common.yaml +9 -6
- package/schemas/label-map.json +24 -0
- package/dist/esm/generateChangelogJson.d.ts +0 -7
- package/dist/esm/generateChangelogJson.js +0 -232
- package/dist/esm/version.d.ts +0 -1
- package/dist/esm/version.js +0 -4
package/CHANGELOG.md
CHANGED
|
@@ -2,15 +2,109 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
-
## [release-kit-v5.
|
|
5
|
+
## [release-kit-v5.2.0] - 2026-05-04
|
|
6
6
|
|
|
7
|
-
###
|
|
7
|
+
### ๐ Features
|
|
8
8
|
|
|
9
|
-
-
|
|
9
|
+
- Add emojis to changelog and release-note headings (#352)
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
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.
|
|
12
|
+
|
|
13
|
+
- Surface bang violations in release prepare reports (#359)
|
|
14
|
+
|
|
15
|
+
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.
|
|
16
|
+
|
|
17
|
+
### ๐ Bug fixes
|
|
18
|
+
|
|
19
|
+
- Restrict publish to publishable workspaces (#345)
|
|
20
|
+
|
|
21
|
+
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.
|
|
22
|
+
|
|
23
|
+
- Skip tooling-only releases instead of failing (#347)
|
|
24
|
+
|
|
25
|
+
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.
|
|
26
|
+
|
|
27
|
+
- Establish canonical work-types SSOT and restore changelog section ordering (#358)
|
|
28
|
+
|
|
29
|
+
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.
|
|
30
|
+
|
|
31
|
+
Closes #355.
|
|
32
|
+
|
|
33
|
+
### โก Performance
|
|
34
|
+
|
|
35
|
+
- Skip npx registry revalidation when running git-cliff (#361)
|
|
36
|
+
|
|
37
|
+
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.
|
|
38
|
+
|
|
39
|
+
### โป๏ธ Refactoring
|
|
40
|
+
|
|
41
|
+
- Read package version at runtime via shared helper (#338)
|
|
42
|
+
|
|
43
|
+
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.
|
|
44
|
+
|
|
45
|
+
## [release-kit-v5.1.0] - 2026-04-30
|
|
46
|
+
|
|
47
|
+
### ๐ Features
|
|
48
|
+
|
|
49
|
+
- Add `project` block for project-level release stage (#317)
|
|
50
|
+
|
|
51
|
+
Adds support for monorepos that ship a single combined deliverable to version, changelog, and release-note the project itself rather than only its constituent workspaces.
|
|
52
|
+
|
|
53
|
+
- Publish JSON Schema for `.meta/label-map.json` (#325)
|
|
54
|
+
|
|
55
|
+
Adds a JSON Schema for `.meta/label-map.json` to release-kit, packaged at `packages/release-kit/schemas/label-map.json` and shipped to npm. Consumers reference it via the stable raw URL pattern `https://github.com/williamthorsen/node-monorepo-tools/raw/release-kit-v<version>/packages/release-kit/schemas/label-map.json` โ the same shape audit-deps already uses.
|
|
56
|
+
|
|
57
|
+
- Label prepare errors with the failing stage (#326)
|
|
58
|
+
|
|
59
|
+
Adds stage attribution to errors thrown during `release-kit prepare`. Errors from per-workspace bumps and changelog generation, the project release stage, and the post-release format command now begin with a stage label that identifies the failing stage and (where relevant) the affected workspace.
|
|
60
|
+
|
|
61
|
+
- Make `--force` and `--bump` orthogonal (#328)
|
|
62
|
+
|
|
63
|
+
Decouples `--force` and `--bump` so each flag has a single responsibility, and unifies skip semantics across the per-workspace and project pipelines.
|
|
64
|
+
|
|
65
|
+
### ๐ Bug fixes
|
|
66
|
+
|
|
67
|
+
- Make publish's clean-tree safety gate reachable (#311)
|
|
68
|
+
|
|
69
|
+
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.
|
|
70
|
+
|
|
71
|
+
- Make `--set-version` + `project` rejection explicit (#319)
|
|
72
|
+
|
|
73
|
+
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`).
|
|
74
|
+
|
|
75
|
+
- Reject `--only` that would strand excluded dependents (#321)
|
|
76
|
+
|
|
77
|
+
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.
|
|
78
|
+
|
|
79
|
+
- Order prerelease versions correctly in changelog sort (#334)
|
|
80
|
+
|
|
81
|
+
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.
|
|
82
|
+
|
|
83
|
+
### โป๏ธ Refactoring
|
|
84
|
+
|
|
85
|
+
- Convert prepare results to discriminated unions (#330)
|
|
86
|
+
|
|
87
|
+
Tightens `ProjectPrepareResult` and `WorkspacePrepareResult` from flat-with-optionals types into status-discriminated unions, so consumers that have already narrowed on `status === 'released'` no longer need to re-guard each release-only field with `!== undefined`. The four new sub-types (`ReleasedProjectResult`, `ReleasedWorkspaceResult`, `SkippedProjectResult`, `SkippedWorkspaceResult`) are exported from the package so callers can name the variants directly. Renderer output is byte-identical to before.
|
|
88
|
+
|
|
89
|
+
- Split changelog.json generation into layered helpers (#333)
|
|
90
|
+
|
|
91
|
+
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.
|
|
92
|
+
|
|
93
|
+
### ๐งช Tests
|
|
94
|
+
|
|
95
|
+
- Cover untested project-release and config branches (#329)
|
|
96
|
+
|
|
97
|
+
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.
|
|
98
|
+
|
|
99
|
+
### ๐ Documentation
|
|
100
|
+
|
|
101
|
+
- Document tag prefix collisions as general rule (#320)
|
|
12
102
|
|
|
13
|
-
|
|
103
|
+
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.
|
|
104
|
+
|
|
105
|
+
## [release-kit-v5.0.0] - 2026-04-23
|
|
106
|
+
|
|
107
|
+
### ๐ Features
|
|
14
108
|
|
|
15
109
|
- Improve release-notes rendering quality (#261)
|
|
16
110
|
|
|
@@ -58,7 +152,13 @@ All notable changes to this project will be documented in this file.
|
|
|
58
152
|
|
|
59
153
|
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.
|
|
60
154
|
|
|
61
|
-
###
|
|
155
|
+
### ๐ Bug fixes
|
|
156
|
+
|
|
157
|
+
- Derive monorepo tag prefix from unscoped `package.json` name (#278)
|
|
158
|
+
|
|
159
|
+
Fixes a long-standing mismatch between a monorepo workspace's directory basename and its publishable package identity.
|
|
160
|
+
|
|
161
|
+
### โป๏ธ Refactoring
|
|
62
162
|
|
|
63
163
|
- Rename `component` to `workspace` in config API and internals (#296)
|
|
64
164
|
|
|
@@ -70,21 +170,21 @@ All notable changes to this project will be documented in this file.
|
|
|
70
170
|
|
|
71
171
|
## [release-kit-v4.8.0] - 2026-04-17
|
|
72
172
|
|
|
73
|
-
###
|
|
173
|
+
### ๐ Features
|
|
74
174
|
|
|
75
|
-
-
|
|
175
|
+
- Add `push` command for safe tag pushing (#243)
|
|
76
176
|
|
|
77
|
-
|
|
177
|
+
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).
|
|
78
178
|
|
|
79
|
-
###
|
|
179
|
+
### ๐ Bug fixes
|
|
80
180
|
|
|
81
|
-
-
|
|
181
|
+
- Replace broad catch with `existsSync` guard in `detectRepoType` (#229)
|
|
82
182
|
|
|
83
|
-
|
|
183
|
+
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.
|
|
84
184
|
|
|
85
185
|
## [release-kit-v4.7.0] - 2026-04-16
|
|
86
186
|
|
|
87
|
-
### Features
|
|
187
|
+
### ๐ Features
|
|
88
188
|
|
|
89
189
|
- Support ## as synthetic ticket prefix in changelogs
|
|
90
190
|
|
|
@@ -92,7 +192,7 @@ All notable changes to this project will be documented in this file.
|
|
|
92
192
|
|
|
93
193
|
## [release-kit-v4.6.0] - 2026-04-15
|
|
94
194
|
|
|
95
|
-
### Features
|
|
195
|
+
### ๐ Features
|
|
96
196
|
|
|
97
197
|
- Guard `prepare` against dirty working tree (#188)
|
|
98
198
|
|
|
@@ -112,13 +212,13 @@ All notable changes to this project will be documented in this file.
|
|
|
112
212
|
|
|
113
213
|
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.
|
|
114
214
|
|
|
115
|
-
### Refactoring
|
|
215
|
+
### โป๏ธ Refactoring
|
|
116
216
|
|
|
117
217
|
- Decouple GitHub Release creation and README injection from npm publish (#203)
|
|
118
218
|
|
|
119
219
|
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.
|
|
120
220
|
|
|
121
|
-
### Tooling
|
|
221
|
+
### โ๏ธ Tooling
|
|
122
222
|
|
|
123
223
|
- Enable automated publication to npm (#187)
|
|
124
224
|
|
|
@@ -126,7 +226,7 @@ All notable changes to this project will be documented in this file.
|
|
|
126
226
|
|
|
127
227
|
## [release-kit-v4.5.1] - 2026-04-10
|
|
128
228
|
|
|
129
|
-
### Bug fixes
|
|
229
|
+
### ๐ Bug fixes
|
|
130
230
|
|
|
131
231
|
- Fix sync-labels init scaffolding output (#179)
|
|
132
232
|
|
|
@@ -134,13 +234,7 @@ All notable changes to this project will be documented in this file.
|
|
|
134
234
|
|
|
135
235
|
## [release-kit-v4.4.0] - 2026-04-04
|
|
136
236
|
|
|
137
|
-
###
|
|
138
|
-
|
|
139
|
-
- Refine README to match preflight documentation standard (#138)
|
|
140
|
-
|
|
141
|
-
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.
|
|
142
|
-
|
|
143
|
-
### Features
|
|
237
|
+
### ๐ Features
|
|
144
238
|
|
|
145
239
|
- Add --version flag to nmr and release-kit (#143)
|
|
146
240
|
|
|
@@ -150,7 +244,7 @@ All notable changes to this project will be documented in this file.
|
|
|
150
244
|
|
|
151
245
|
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.
|
|
152
246
|
|
|
153
|
-
### Refactoring
|
|
247
|
+
### โป๏ธ Refactoring
|
|
154
248
|
|
|
155
249
|
- Extract deleteFileIfExists helper (#136)
|
|
156
250
|
|
|
@@ -160,9 +254,15 @@ All notable changes to this project will be documented in this file.
|
|
|
160
254
|
|
|
161
255
|
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.
|
|
162
256
|
|
|
257
|
+
### ๐ Documentation
|
|
258
|
+
|
|
259
|
+
- Refine README to match preflight documentation standard (#138)
|
|
260
|
+
|
|
261
|
+
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.
|
|
262
|
+
|
|
163
263
|
## [release-kit-v4.0.0] - 2026-04-02
|
|
164
264
|
|
|
165
|
-
### Features
|
|
265
|
+
### ๐ Features
|
|
166
266
|
|
|
167
267
|
- Rename reusable workflows to .reusable.yaml convention (#129)
|
|
168
268
|
|
|
@@ -170,19 +270,7 @@ All notable changes to this project will be documented in this file.
|
|
|
170
270
|
|
|
171
271
|
## [release-kit-v3.0.0] - 2026-03-29
|
|
172
272
|
|
|
173
|
-
###
|
|
174
|
-
|
|
175
|
-
- Pass tag pattern to git-cliff based on tagPrefix (#77)
|
|
176
|
-
|
|
177
|
-
Fixes the issue that git-cliff was processing the entire commit history on every run instead of only commits since the last release.
|
|
178
|
-
|
|
179
|
-
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.
|
|
180
|
-
|
|
181
|
-
- Propagate version bumps to workspace dependents (#80)
|
|
182
|
-
|
|
183
|
-
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.
|
|
184
|
-
|
|
185
|
-
### Features
|
|
273
|
+
### ๐ Features
|
|
186
274
|
|
|
187
275
|
- Support conventional-commit format in commit parsing (#85)
|
|
188
276
|
|
|
@@ -202,9 +290,21 @@ All notable changes to this project will be documented in this file.
|
|
|
202
290
|
|
|
203
291
|
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.
|
|
204
292
|
|
|
293
|
+
### ๐ Bug fixes
|
|
294
|
+
|
|
295
|
+
- Pass tag pattern to git-cliff based on tagPrefix (#77)
|
|
296
|
+
|
|
297
|
+
Fixes the issue that git-cliff was processing the entire commit history on every run instead of only commits since the last release.
|
|
298
|
+
|
|
299
|
+
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.
|
|
300
|
+
|
|
301
|
+
- Propagate version bumps to workspace dependents (#80)
|
|
302
|
+
|
|
303
|
+
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.
|
|
304
|
+
|
|
205
305
|
## [release-kit-v2.3.2] - 2026-03-28
|
|
206
306
|
|
|
207
|
-
### Bug fixes
|
|
307
|
+
### ๐ Bug fixes
|
|
208
308
|
|
|
209
309
|
- Prevent unparseable commits from being silently dropped (#76)
|
|
210
310
|
|
|
@@ -212,7 +312,7 @@ All notable changes to this project will be documented in this file.
|
|
|
212
312
|
|
|
213
313
|
## [release-kit-v2.3.0] - 2026-03-28
|
|
214
314
|
|
|
215
|
-
### Features
|
|
315
|
+
### ๐ Features
|
|
216
316
|
|
|
217
317
|
- Add shared writeFileWithCheck utility and overwrite reporting (#66)
|
|
218
318
|
|
|
@@ -224,7 +324,7 @@ All notable changes to this project will be documented in this file.
|
|
|
224
324
|
|
|
225
325
|
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`.
|
|
226
326
|
|
|
227
|
-
### Tests
|
|
327
|
+
### ๐งช Tests
|
|
228
328
|
|
|
229
329
|
- Add eligibility check failure and short-circuit tests (#63)
|
|
230
330
|
|
|
@@ -240,7 +340,7 @@ All notable changes to this project will be documented in this file.
|
|
|
240
340
|
|
|
241
341
|
## [release-kit-v2.2.0] - 2026-03-27
|
|
242
342
|
|
|
243
|
-
### Features
|
|
343
|
+
### ๐ Features
|
|
244
344
|
|
|
245
345
|
- Add sync-labels command (#33)
|
|
246
346
|
|
|
@@ -276,7 +376,7 @@ All notable changes to this project will be documented in this file.
|
|
|
276
376
|
|
|
277
377
|
Scopes: core, nmr
|
|
278
378
|
|
|
279
|
-
### Refactoring
|
|
379
|
+
### โป๏ธ Refactoring
|
|
280
380
|
|
|
281
381
|
- Replace dist bin targets with thin wrapper scripts (#48)
|
|
282
382
|
|
|
@@ -286,7 +386,7 @@ All notable changes to this project will be documented in this file.
|
|
|
286
386
|
|
|
287
387
|
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`.
|
|
288
388
|
|
|
289
|
-
### Tests
|
|
389
|
+
### ๐งช Tests
|
|
290
390
|
|
|
291
391
|
- Cover multi-changelogPaths and error paths (#44)
|
|
292
392
|
|
|
@@ -297,7 +397,7 @@ All notable changes to this project will be documented in this file.
|
|
|
297
397
|
|
|
298
398
|
Also adds a `findAllCliffOutputPaths()` test helper that collects the `--output` arg from every `git-cliff` mock call.
|
|
299
399
|
|
|
300
|
-
### Tooling
|
|
400
|
+
### โ๏ธ Tooling
|
|
301
401
|
|
|
302
402
|
- Adopt nmr to run monorepo and workspace scripts (#38)
|
|
303
403
|
|
|
@@ -305,7 +405,7 @@ All notable changes to this project will be documented in this file.
|
|
|
305
405
|
|
|
306
406
|
## [release-kit-v2.1.0] - 2026-03-17
|
|
307
407
|
|
|
308
|
-
### Features
|
|
408
|
+
### ๐ Features
|
|
309
409
|
|
|
310
410
|
- Slim down release workflow by removing unnecessary pnpm install (#21)
|
|
311
411
|
|
|
@@ -323,7 +423,7 @@ All notable changes to this project will be documented in this file.
|
|
|
323
423
|
|
|
324
424
|
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.
|
|
325
425
|
|
|
326
|
-
### Refactoring
|
|
426
|
+
### โป๏ธ Refactoring
|
|
327
427
|
|
|
328
428
|
- Clean up release-kit post-migration issues (#19)
|
|
329
429
|
|
|
@@ -331,7 +431,7 @@ All notable changes to this project will be documented in this file.
|
|
|
331
431
|
|
|
332
432
|
## [release-kit-v1.0.1] - 2026-03-14
|
|
333
433
|
|
|
334
|
-
### Features
|
|
434
|
+
### ๐ Features
|
|
335
435
|
|
|
336
436
|
- Migrate release-kit from toolbelt (#18)
|
|
337
437
|
|