You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Replace the old Go/native package release notes with the current single-package TypeScript CLI flow and remove the obsolete CLI v2 PRD from tracked docs.
Copy file name to clipboardExpand all lines: docs/adr/0005-bun-biome-typescript-6-toolchain.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,4 +28,4 @@ The repo has one Bun lockfile and no pnpm workspace or lockfile metadata.
28
28
29
29
Biome lint failures are treated as errors, and Biome write mode is the supported formatting path.
30
30
31
-
Node.js remains the runtime boundary for package consumers and Node-based scripts. Vitest remains the TypeScript package test runner, Node's built-in test runner remains where already used, and Go tooling remains responsible for CLI build, lint, type-check, test, and packaging behavior.
31
+
Node.js remains the runtime boundary for package consumers and Node-based scripts. Vitest remains the TypeScript package test runner, Node's built-in test runner remains where already used, and the CLI build, lint, type-check, test, and packaging behavior now runs through the TypeScript/Bun toolchain.
Copy file name to clipboardExpand all lines: docs/how-tos/release-sdks-and-cli.md
+19-32Lines changed: 19 additions & 32 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -109,14 +109,13 @@ Check every package included in the release, not only these examples.
109
109
110
110
## Release the CLI
111
111
112
-
Use this flow for `@better-webhook/cli` and its native platform packages. The CLI is not released by Changesets.
112
+
Use this flow for `@better-webhook/cli`. The CLI is not released by Changesets.
113
113
114
114
### 1. Choose the Version
115
115
116
-
Edit both version locations so they match:
116
+
Edit the CLI package version:
117
117
118
118
-`packages/cli/package.json`
119
-
-`packages/cli/internal/cli/version.go`
120
119
121
120
Use beta prereleases for beta tags:
122
121
@@ -137,17 +136,17 @@ CLI prereleases must use the `beta` channel. Other prerelease identifiers are re
137
136
Run the CLI check set:
138
137
139
138
```bash
140
-
devbox run -- bun --filter @better-webhook/cli run format:check
141
-
devbox run -- bun --filter @better-webhook/cli run lint
142
-
devbox run -- bun --filter @better-webhook/cli run check-types
143
-
devbox run -- bun --filter @better-webhook/cli runtest
139
+
devbox run -- bun run --filter @better-webhook/cli format:check
140
+
devbox run -- bun run --filter @better-webhook/cli lint
141
+
devbox run -- bun run --filter @better-webhook/cli check-types
142
+
devbox run -- bun run --filter @better-webhook/cli test
144
143
```
145
144
146
145
Build and smoke-test the local binary:
147
146
148
147
```bash
149
-
devbox run -- bun --filter @better-webhook/cli run build
150
-
devbox run -- bun --filter @better-webhook/cli run cli:built -- version --verbose
148
+
devbox run -- bun run --filter @better-webhook/cli build
149
+
devbox run -- bun run --filter @better-webhook/cli cli:built -- version --verbose
151
150
```
152
151
153
152
Run full repo verification before merging:
@@ -168,7 +167,7 @@ Before publishing, run the manual GitHub workflow:
168
167
CLI Release Dry Run
169
168
```
170
169
171
-
It validates formatting, linting, type checks, tests, GoReleaser snapshot packaging, generated npm package directories, and `npm pack --dry-run` for every CLI npm package.
170
+
It validates formatting, linting, type checks, tests, generated npm package directories, and `npm pack --dry-run` for the CLI npm package.
172
171
173
172
### 4. Merge to Main
174
173
@@ -212,11 +211,10 @@ The workflow will:
212
211
213
212
- Validate the tag and npm availability.
214
213
- Run CLI format, lint, type check, and tests.
215
-
- Run GoReleaser, which runs `go mod tidy` and builds release artifacts.
214
+
- Build the TypeScript CLI.
215
+
- Generate the npm package directory.
216
216
- Create or update the GitHub Release for the tag.
217
-
- Generate npm package directories.
218
-
- Publish native platform packages.
219
-
- Publish the wrapper package last.
217
+
- Publish `@better-webhook/cli` to npm.
220
218
221
219
If `release:check` says a package version already exists on npm, do not rerun the same version as a new release. Bump the CLI version and create a new annotated tag.
222
220
@@ -226,26 +224,15 @@ For a beta release:
226
224
227
225
```bash
228
226
devbox run -- npm view @better-webhook/cli@beta version dist-tags --json
229
-
devbox run -- npm view @better-webhook/cli-darwin-arm64@beta version dist-tags --json
230
-
devbox run -- npm view @better-webhook/cli-linux-x64@beta version dist-tags --json
231
227
```
232
228
233
229
For a stable release:
234
230
235
231
```bash
236
232
devbox run -- npm view @better-webhook/cli version dist-tags --json
237
-
devbox run -- npm view @better-webhook/cli-darwin-arm64 version dist-tags --json
238
-
devbox run -- npm view @better-webhook/cli-linux-x64 version dist-tags --json
239
233
```
240
234
241
-
Also verify the GitHub Release exists for the pushed tag and contains:
242
-
243
-
- macOS arm64 tarball
244
-
- macOS x64 tarball
245
-
- Linux arm64 tarball
246
-
- Linux x64 tarball
247
-
- Windows x64 zip
248
-
- checksum file
235
+
Also verify the GitHub Release exists for the pushed tag and contains the packed `@better-webhook/cli` npm tarball.
249
236
250
237
### 8. Verify Current CLI npm State
251
238
@@ -259,11 +246,11 @@ devbox run -- npm view @better-webhook/cli@latest version
259
246
260
247
Durable CLI package facts:
261
248
262
-
- The new Go CLI wrapper exposes the `bw` bin.
263
-
- Older `@better-webhook/cli@latest` versions may use the legacy `better-webhook` bin until a stable Go CLI release moves `latest`.
264
-
-`@better-webhook/cli@dev` is not part of the current Go CLI release flow.
249
+
- The TypeScript CLI package exposes the `bw` bin.
250
+
- Older `@better-webhook/cli@latest` versions may use older package contents until a stable CLI release moves `latest`.
251
+
-`@better-webhook/cli@dev` is not part of the current CLI release flow.
265
252
266
-
Until a stable Go CLI version is published, use:
253
+
Until a stable CLI version is published, use:
267
254
268
255
```bash
269
256
npm install @better-webhook/cli@beta
@@ -275,14 +262,14 @@ or:
275
262
npx @better-webhook/cli@beta
276
263
```
277
264
278
-
After the first stable Go CLI release, verify that `@better-webhook/cli@latest` points to the stable Go CLI version.
265
+
After the first stable CLI release, verify that `@better-webhook/cli@latest` points to the stable CLI version.
279
266
280
267
## Failure Recovery
281
268
282
269
If an SDK publish fails before any package is published, fix the issue and rerun the workflow.
283
270
284
271
If an SDK publish partially succeeds, inspect npm for every package in the release. Changesets will skip already-published versions on rerun, but verify the workflow logs before assuming rerun safety.
285
272
286
-
If a CLI release fails after some native platform packages publish but before the wrapper publishes, keep the same version only if `release:check` is adjusted or bypassed intentionally by a maintainer. The normal validator rejects any already-published package version, so the safer path is usually a new patch or beta version.
273
+
If a CLI release fails after the npm package publishes, do not rerun the same version as a new release. The normal validator rejects already-published package versions, so the safer path is usually a new patch or beta version.
287
274
288
275
If the CLI GitHub Release exists but npm publish failed, compare the release artifacts with the npm package version before deciding whether to delete/recreate anything. Avoid moving or deleting published npm versions; npm package versions are effectively immutable.
0 commit comments