diff --git a/.changeset/lucky-cases-invite.md b/.changeset/lucky-cases-invite.md deleted file mode 100644 index 9d414562..00000000 --- a/.changeset/lucky-cases-invite.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -'@gtbuchanan/cli': minor ---- - -Verify that published packages declare no private workspace dependencies - -`gtb verify` (scope `manifest`) now asserts that every install-time -`workspace:` dependency of a published package is itself published. pnpm -rewrites the specifier to the linked package's concrete version at pack -time without checking that the version ever reached the registry, so a -private workspace package ships in the tarball as a dependency no -consumer can resolve. - -Covers `dependencies`, `peerDependencies`, and `optionalDependencies`. -`devDependencies` are exempt (publishing strips them) as is anything -`bundleDependencies` actually bundles — an explicit name list covers any -field, while `true` covers `dependencies` alone, so a workspace peer or -optional dependency stays checked. diff --git a/.changeset/olive-donkeys-repeat.md b/.changeset/olive-donkeys-repeat.md deleted file mode 100644 index 5a9afd07..00000000 --- a/.changeset/olive-donkeys-repeat.md +++ /dev/null @@ -1,4 +0,0 @@ ---- ---- - -Preset MISE_GITHUB_TOKEN in the mise-setup action diff --git a/.changeset/publish-release-resilience.md b/.changeset/publish-release-resilience.md deleted file mode 100644 index f04c1abf..00000000 --- a/.changeset/publish-release-resilience.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -'@gtbuchanan/cli': patch ---- - -Make `gtb publish` resilient to partial release failures - -A release run no longer aborts on the first problem it meets. Failures are -collected and re-thrown together, so one package or channel can't strand the -rest, and the run reports everything that went wrong instead of only the first -thing. - -The skip-if-exists check now reads a single `gh release list` rather than a -`gh release view` per package, and a failed listing raises instead of being -read as "nothing is released" — which previously sent every package on to a -create that could only fail. A create GitHub rejects because the tag is -already taken now counts as released, covering both a race with the listing -and a tag reserved by a deleted immutable release. diff --git a/.changeset/vitest-config-test-timeout.md b/.changeset/vitest-config-test-timeout.md deleted file mode 100644 index bd547527..00000000 --- a/.changeset/vitest-config-test-timeout.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -'@gtbuchanan/vitest-config': minor ---- - -Add a `testTimeout` option to `configure`, `configurePackage`, and -`configureGlobal` - -Raise it for a package whose tests do seconds of real work — building an -ESLint config, starting a TypeScript project service, spawning a child -process. On a machine running the rest of the build in parallel, that -work exceeds vitest's 5s default and the suite fails under load while -passing in isolation. - -The trade is real: this is a duration bound, so a higher one catches a -performance regression later. It buys reliability, because a wall-clock -limit can't distinguish a slower test from a busier machine. Size it to -the worst contention the suite runs under, not to the test's own cost. - -`testTimeout` was already accepted by the e2e entry points; this makes -it consistent for source tests. - -Fixes `testTimeout: 0` on the e2e entry points, where vitest's -documented way to disable the limit was dropped by a truthiness check -and silently fell back to the default. `hookTimeout` derives from it -there, so both were affected. diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 208d7c9e..a4e1b3b3 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,40 @@ # @gtbuchanan/cli +## 0.7.0 + +### Minor Changes + +- 6b1453b: Verify that published packages declare no private workspace dependencies + + `gtb verify` (scope `manifest`) now asserts that every install-time + `workspace:` dependency of a published package is itself published. pnpm + rewrites the specifier to the linked package's concrete version at pack + time without checking that the version ever reached the registry, so a + private workspace package ships in the tarball as a dependency no + consumer can resolve. + + Covers `dependencies`, `peerDependencies`, and `optionalDependencies`. + `devDependencies` are exempt (publishing strips them) as is anything + `bundleDependencies` actually bundles — an explicit name list covers any + field, while `true` covers `dependencies` alone, so a workspace peer or + optional dependency stays checked. + +### Patch Changes + +- c897a61: Make `gtb publish` resilient to partial release failures + + A release run no longer aborts on the first problem it meets. Failures are + collected and re-thrown together, so one package or channel can't strand the + rest, and the run reports everything that went wrong instead of only the first + thing. + + The skip-if-exists check now reads a single `gh release list` rather than a + `gh release view` per package, and a failed listing raises instead of being + read as "nothing is released" — which previously sent every package on to a + create that could only fail. A create GitHub rejects because the tag is + already taken now counts as released, covering both a race with the listing + and a tag reserved by a deleted immutable release. + ## 0.6.0 ### Minor Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index 010d018c..e870836b 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@gtbuchanan/cli", - "version": "0.6.0", + "version": "0.7.0", "description": "Shared build CLI", "type": "module", "imports": { diff --git a/packages/vitest-config/CHANGELOG.md b/packages/vitest-config/CHANGELOG.md index 486d273d..8641175b 100644 --- a/packages/vitest-config/CHANGELOG.md +++ b/packages/vitest-config/CHANGELOG.md @@ -1,5 +1,31 @@ # @gtbuchanan/vitest-config +## 0.2.0 + +### Minor Changes + +- 59b6616: Add a `testTimeout` option to `configure`, `configurePackage`, and + `configureGlobal` + + Raise it for a package whose tests do seconds of real work — building an + ESLint config, starting a TypeScript project service, spawning a child + process. On a machine running the rest of the build in parallel, that + work exceeds vitest's 5s default and the suite fails under load while + passing in isolation. + + The trade is real: this is a duration bound, so a higher one catches a + performance regression later. It buys reliability, because a wall-clock + limit can't distinguish a slower test from a busier machine. Size it to + the worst contention the suite runs under, not to the test's own cost. + + `testTimeout` was already accepted by the e2e entry points; this makes + it consistent for source tests. + + Fixes `testTimeout: 0` on the e2e entry points, where vitest's + documented way to disable the limit was dropped by a truthiness check + and silently fell back to the default. `hookTimeout` derives from it + there, so both were affected. + ## 0.1.3 ### Patch Changes diff --git a/packages/vitest-config/package.json b/packages/vitest-config/package.json index 161b8ab0..b9cb81d2 100644 --- a/packages/vitest-config/package.json +++ b/packages/vitest-config/package.json @@ -1,6 +1,6 @@ { "name": "@gtbuchanan/vitest-config", - "version": "0.1.3", + "version": "0.2.0", "description": "Shared Vitest configuration", "type": "module", "imports": {