@williamthorsen/release-kit 9.1.0 → 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 +10 -8
- 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
|
@@ -5,13 +5,15 @@ Version-bumping and changelog-generation toolkit for release workflows.
|
|
|
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
7
|
<!-- section:release-notes -->
|
|
8
|
-
## Release notes —
|
|
8
|
+
## Release notes — v10.0.0 (2026-08-03)
|
|
9
9
|
|
|
10
10
|
### 🎉 Features
|
|
11
11
|
|
|
12
|
-
-
|
|
12
|
+
- 🚨 **Breaking:** Retire integration label in favor of an isolation-tier test ladder (#552)
|
|
13
13
|
|
|
14
|
-
|
|
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`.
|
|
15
17
|
<!-- /section:release-notes -->
|
|
16
18
|
|
|
17
19
|
## Installation
|
|
@@ -94,7 +96,7 @@ Configuration is optional. The CLI works out of the box by auto-discovering work
|
|
|
94
96
|
### Config file
|
|
95
97
|
|
|
96
98
|
```typescript
|
|
97
|
-
import { defineConfig } from '@williamthorsen/release-kit';
|
|
99
|
+
import { defineConfig } from '@williamthorsen/release-kit/config';
|
|
98
100
|
|
|
99
101
|
export default defineConfig({
|
|
100
102
|
// Exclude a workspace from release processing
|
|
@@ -162,7 +164,7 @@ interface RetiredPackage {
|
|
|
162
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:
|
|
163
165
|
|
|
164
166
|
```typescript
|
|
165
|
-
import { defineConfig } from '@williamthorsen/release-kit';
|
|
167
|
+
import { defineConfig } from '@williamthorsen/release-kit/config';
|
|
166
168
|
|
|
167
169
|
export default defineConfig({
|
|
168
170
|
retiredPackages: [{ name: '@scope/preflight', tagPrefix: 'preflight-v', successor: 'readyup' }],
|
|
@@ -195,7 +197,7 @@ The rule is enforced at config load; the resulting error identifies both collidi
|
|
|
195
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.
|
|
196
198
|
|
|
197
199
|
```typescript
|
|
198
|
-
import type { ReleaseKitConfig } from '@williamthorsen/release-kit';
|
|
200
|
+
import type { ReleaseKitConfig } from '@williamthorsen/release-kit/config';
|
|
199
201
|
|
|
200
202
|
const config: ReleaseKitConfig = {
|
|
201
203
|
// Empty object is enough to opt in. Every non-excluded workspace contributes.
|
|
@@ -732,7 +734,7 @@ Every `sync-labels` subcommand refuses to run while the retired `.config/sync-la
|
|
|
732
734
|
#### Label configuration
|
|
733
735
|
|
|
734
736
|
```typescript
|
|
735
|
-
import { defineConfig } from '@williamthorsen/release-kit';
|
|
737
|
+
import { defineConfig } from '@williamthorsen/release-kit/config';
|
|
736
738
|
|
|
737
739
|
export default defineConfig({
|
|
738
740
|
repoLabels: {
|
|
@@ -879,7 +881,7 @@ Minimal worked example for a repo whose pre-v5 tags were `core-v0.2.7` and whose
|
|
|
879
881
|
|
|
880
882
|
```typescript
|
|
881
883
|
// .config/release-kit.config.ts
|
|
882
|
-
import type { ReleaseKitConfig } from '@williamthorsen/release-kit';
|
|
884
|
+
import type { ReleaseKitConfig } from '@williamthorsen/release-kit/config';
|
|
883
885
|
|
|
884
886
|
const config: ReleaseKitConfig = {
|
|
885
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"
|