@williamthorsen/release-kit 9.1.1 → 10.0.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 +20 -0
- package/README.md +16 -6
- package/dist/esm/defineConfig.d.ts +1 -0
- package/dist/esm/index.d.ts +0 -2
- package/dist/esm/index.js +0 -1
- package/dist/esm/init/templates.js +2 -2
- package/dist/esm/sync-labels/templates.js +1 -1
- package/package.json +7 -3
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## 10.0.0 — 2026-08-03
|
|
6
|
+
|
|
7
|
+
### 🎉 Features
|
|
8
|
+
|
|
9
|
+
- 🚨 **Breaking:** Retire integration label in favor of an isolation-tier test ladder (#552)
|
|
10
|
+
|
|
11
|
+
Test groups are now named for what a test reaches rather than for how much of the codebase it covers: `integration` and `app` are replaced by `unit`, `tool`, `localhost`, and `remote`.
|
|
12
|
+
|
|
13
|
+
`nmr test` now runs the `tool` group alongside `unit`, so the first run after upgrading may fail on tests that nothing was running before. Upgrading means renaming `*.int.test.ts` files onto the new groups and replacing `nmr test:integration` with `nmr test:tool`.
|
|
14
|
+
|
|
15
|
+
### ♻️ Refactoring
|
|
16
|
+
|
|
17
|
+
- 🚨 **Breaking:** Move defineConfig to a dedicated config subpath (#566)
|
|
18
|
+
|
|
19
|
+
`defineConfig` now comes from the `@williamthorsen/release-kit/config` subpath rather than from the package root. The subpath also carries the config types.
|
|
20
|
+
|
|
21
|
+
- Share nmr-core's cache primitives with nmr-compile (#570)
|
|
22
|
+
|
|
23
|
+
A package's writes to the build cache are now hidden from other packages until the write is complete. A failing build now reports its error in the same form as every other `nmr` command. `tsx` is no longer required to build a package.
|
|
24
|
+
|
|
5
25
|
## 9.1.0 — 2026-07-31
|
|
6
26
|
|
|
7
27
|
### 🎉 Features
|
package/README.md
CHANGED
|
@@ -4,7 +4,17 @@ Version-bumping and changelog-generation toolkit for release workflows.
|
|
|
4
4
|
|
|
5
5
|
Provides a self-contained CLI that auto-discovers workspaces from `pnpm-workspace.yaml`, parses conventional commits, determines version bumps, updates `package.json` files, and generates changelogs from `git-cliff --context` output rendered in-process (with optional [editorial overrides](#editorial-overrides)).
|
|
6
6
|
|
|
7
|
-
<!-- section:release-notes
|
|
7
|
+
<!-- section:release-notes -->
|
|
8
|
+
## Release notes — v10.0.0 (2026-08-03)
|
|
9
|
+
|
|
10
|
+
### 🎉 Features
|
|
11
|
+
|
|
12
|
+
- 🚨 **Breaking:** Retire integration label in favor of an isolation-tier test ladder (#552)
|
|
13
|
+
|
|
14
|
+
Test groups are now named for what a test reaches rather than for how much of the codebase it covers: `integration` and `app` are replaced by `unit`, `tool`, `localhost`, and `remote`.
|
|
15
|
+
|
|
16
|
+
`nmr test` now runs the `tool` group alongside `unit`, so the first run after upgrading may fail on tests that nothing was running before. Upgrading means renaming `*.int.test.ts` files onto the new groups and replacing `nmr test:integration` with `nmr test:tool`.
|
|
17
|
+
<!-- /section:release-notes -->
|
|
8
18
|
|
|
9
19
|
## Installation
|
|
10
20
|
|
|
@@ -86,7 +96,7 @@ Configuration is optional. The CLI works out of the box by auto-discovering work
|
|
|
86
96
|
### Config file
|
|
87
97
|
|
|
88
98
|
```typescript
|
|
89
|
-
import { defineConfig } from '@williamthorsen/release-kit';
|
|
99
|
+
import { defineConfig } from '@williamthorsen/release-kit/config';
|
|
90
100
|
|
|
91
101
|
export default defineConfig({
|
|
92
102
|
// Exclude a workspace from release processing
|
|
@@ -154,7 +164,7 @@ interface RetiredPackage {
|
|
|
154
164
|
Worked example — `preflight` was extracted from this monorepo and continues as the standalone `readyup` project. Its tags stay in this repo as historical anchors:
|
|
155
165
|
|
|
156
166
|
```typescript
|
|
157
|
-
import { defineConfig } from '@williamthorsen/release-kit';
|
|
167
|
+
import { defineConfig } from '@williamthorsen/release-kit/config';
|
|
158
168
|
|
|
159
169
|
export default defineConfig({
|
|
160
170
|
retiredPackages: [{ name: '@scope/preflight', tagPrefix: 'preflight-v', successor: 'readyup' }],
|
|
@@ -187,7 +197,7 @@ The rule is enforced at config load; the resulting error identifies both collidi
|
|
|
187
197
|
Some monorepos ship a single combined deliverable — a Chrome extension, a CLI binary, a packaged desktop app — for which the per-workspace tags and changelogs alone do not describe what the user actually receives. Declare the optional `project` block to add a project-level release stage that runs alongside the per-workspace pipeline.
|
|
188
198
|
|
|
189
199
|
```typescript
|
|
190
|
-
import type { ReleaseKitConfig } from '@williamthorsen/release-kit';
|
|
200
|
+
import type { ReleaseKitConfig } from '@williamthorsen/release-kit/config';
|
|
191
201
|
|
|
192
202
|
const config: ReleaseKitConfig = {
|
|
193
203
|
// Empty object is enough to opt in. Every non-excluded workspace contributes.
|
|
@@ -724,7 +734,7 @@ Every `sync-labels` subcommand refuses to run while the retired `.config/sync-la
|
|
|
724
734
|
#### Label configuration
|
|
725
735
|
|
|
726
736
|
```typescript
|
|
727
|
-
import { defineConfig } from '@williamthorsen/release-kit';
|
|
737
|
+
import { defineConfig } from '@williamthorsen/release-kit/config';
|
|
728
738
|
|
|
729
739
|
export default defineConfig({
|
|
730
740
|
repoLabels: {
|
|
@@ -871,7 +881,7 @@ Minimal worked example for a repo whose pre-v5 tags were `core-v0.2.7` and whose
|
|
|
871
881
|
|
|
872
882
|
```typescript
|
|
873
883
|
// .config/release-kit.config.ts
|
|
874
|
-
import type { ReleaseKitConfig } from '@williamthorsen/release-kit';
|
|
884
|
+
import type { ReleaseKitConfig } from '@williamthorsen/release-kit/config';
|
|
875
885
|
|
|
876
886
|
const config: ReleaseKitConfig = {
|
|
877
887
|
workspaces: [
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,4 +1,2 @@
|
|
|
1
1
|
export { type ChangelogOverrideScope, validateAllChangelogOverrides, type ValidateAllChangelogOverridesInputs, type ValidateAllChangelogOverridesResult, } from './changelogOverrides.js';
|
|
2
|
-
export { defineConfig } from './defineConfig.js';
|
|
3
|
-
export type { LabelSpec, ReleaseKitConfig, RepoLabelsConfig } from './types.js';
|
|
4
2
|
export { formatValidateOverridesResult, type ValidateOverridesCommandResult } from './validateOverridesCommand.js';
|
package/dist/esm/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export function releaseConfigScript(repoType) {
|
|
2
2
|
if (repoType === 'monorepo') {
|
|
3
|
-
return `import { defineConfig } from '@williamthorsen/release-kit';
|
|
3
|
+
return `import { defineConfig } from '@williamthorsen/release-kit/config';
|
|
4
4
|
|
|
5
5
|
export default defineConfig({
|
|
6
6
|
releaseNotes: {
|
|
@@ -22,7 +22,7 @@ export default defineConfig({
|
|
|
22
22
|
});
|
|
23
23
|
`;
|
|
24
24
|
}
|
|
25
|
-
return `import { defineConfig } from '@williamthorsen/release-kit';
|
|
25
|
+
return `import { defineConfig } from '@williamthorsen/release-kit/config';
|
|
26
26
|
|
|
27
27
|
export default defineConfig({
|
|
28
28
|
releaseNotes: {
|
|
@@ -61,7 +61,7 @@ ${labelsBlock}
|
|
|
61
61
|
},`;
|
|
62
62
|
}
|
|
63
63
|
export function repoLabelsConfigScript(scopeLabels) {
|
|
64
|
-
return `import { defineConfig } from '@williamthorsen/release-kit';
|
|
64
|
+
return `import { defineConfig } from '@williamthorsen/release-kit/config';
|
|
65
65
|
|
|
66
66
|
export default defineConfig({
|
|
67
67
|
${renderRepoLabelsBlock(scopeLabels)}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@williamthorsen/release-kit",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "10.0.0",
|
|
4
4
|
"description": "Version-bumping and changelog-generation toolkit for release workflows",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"homepage": "https://github.com/williamthorsen/node-monorepo-tools/tree/main/packages/release-kit#readme",
|
|
@@ -19,6 +19,10 @@
|
|
|
19
19
|
".": {
|
|
20
20
|
"types": "./dist/esm/index.d.ts",
|
|
21
21
|
"import": "./dist/esm/index.js"
|
|
22
|
+
},
|
|
23
|
+
"./config": {
|
|
24
|
+
"types": "./dist/esm/defineConfig.d.ts",
|
|
25
|
+
"import": "./dist/esm/defineConfig.js"
|
|
22
26
|
}
|
|
23
27
|
},
|
|
24
28
|
"bin": {
|
|
@@ -39,11 +43,11 @@
|
|
|
39
43
|
"semver": "7.8.5",
|
|
40
44
|
"yaml": "2.9.0",
|
|
41
45
|
"zod": "4.4.3",
|
|
42
|
-
"@williamthorsen/nmr-core": "0.
|
|
46
|
+
"@williamthorsen/nmr-core": "0.8.0"
|
|
43
47
|
},
|
|
44
48
|
"devDependencies": {
|
|
45
49
|
"@types/semver": "7.7.1",
|
|
46
|
-
"smol-toml": "1.7.
|
|
50
|
+
"smol-toml": "1.7.1"
|
|
47
51
|
},
|
|
48
52
|
"engines": {
|
|
49
53
|
"node": ">=24"
|