diff --git a/action.yml b/action.yml index 5ac7b68fb..e7fb2b29a 100644 --- a/action.yml +++ b/action.yml @@ -107,5 +107,5 @@ outputs: description: "Full benchmark results as JSON string" runs: - using: "node20" + using: "node24" main: "packages/action/dist/index.js" diff --git a/docs/plans/2026-06-22-v12-backlog.md b/docs/plans/2026-06-22-v12-backlog.md index 71dfc6319..c73fa1442 100644 --- a/docs/plans/2026-06-22-v12-backlog.md +++ b/docs/plans/2026-06-22-v12-backlog.md @@ -2,20 +2,21 @@ Items deliberately deferred out of the v11 cleanup release (`docs/plans/2026-03-14-v11-plan.md`). None of these block v11. Captured here so the deferrals don't rot into "later means never". -Status as of 2026-06-22 (v11 branch `v11-cleanup`, ready to merge). +Status as of 2026-09-02: v11.0.0 is published to npm and tagged. Items below are the remaining deferrals, re-checked against the shipped code. --- -## 1. Finish `node-minify doctor` scanners (v11 spec gap) +## 1. Add GCC runtime guidance to `node-minify doctor` -**What**: The v11 plan (`docs/plans/2026-03-14-v11-plan.md` lines 70–71) specced two `doctor` detections that were not implemented: +**Shipped in v11, no longer deferred**: deprecated type-alias detection. `doctor` flags `CompressorReturnType` (→ `CompressorResult`) and `MinifyOptions` (→ `Settings`) in TypeScript imports and re-exports, ignoring comments and template literals. It also gained detection for the removed `@node-minify/run` package and for `engines.node` ranges that still allow Node below 22. + +**Still outstanding**: -- **Deprecated type-alias usage** — flag source importing/using `CompressorReturnType` (→ `CompressorResult`) or `MinifyOptions` (→ `Settings`). - **Java/GCC runtime guidance** — surface a note when a project uses `google-closure-compiler`, pointing at the runtime caveat (Java may still be invoked upstream) and recommended JS-native alternatives. -**Why deferred**: `doctor` already detects the real migration blockers (removed packages in `package.json`, source imports, workflow YAML) plus legacy-tier warnings. The two missing scanners are migration *nice-to-haves*, not blockers. +**Why deferred**: `doctor` already detects every v11 breaking change. This is migration polish, not a blocker. -**Where**: `packages/cli/src/doctor.ts` (add two scanners + reporter cases), `packages/cli/__tests__/doctor.test.ts` (clean/dirty cases for each). Registry already carries the GCC `runtime caveat` note via `notes` in `packages/utils/src/compressor-registry.ts`. +**Where**: `packages/cli/src/doctor.ts` (add one scanner + reporter case), `packages/cli/__tests__/doctor.test.ts` (clean/dirty cases). Note: `CompressorEntry` in `packages/utils/src/compressor-registry.ts` has only `name`, `status`, `packageName` and optional `replacement` — there is **no** `notes` field, so the caveat text needs adding along with the scanner. **Effort**: Small. Mirrors the existing removed-package scanner pattern. @@ -87,4 +88,14 @@ Status as of 2026-06-22 (v11 branch `v11-cleanup`, ready to merge). ## Post-release ops (not code — track separately) -- **npm-deprecate the 5 removed packages** on the registry after v11 publishes: `@node-minify/babel-minify`, `@node-minify/uglify-es`, `@node-minify/yui`, `@node-minify/sqwish`, `@node-minify/crass`. Point each deprecation message at its replacement (see registry `replacement` field). v11 assumption deferred this as a post-release concern. +Status checked against the registry on 2026-09-02, after v11.0.0 published. + +- **Done**: the 5 removed compressors are already deprecated on npm — `@node-minify/babel-minify`, `@node-minify/uglify-es`, `@node-minify/yui`, `@node-minify/sqwish`, `@node-minify/crass`. Each message names its replacement. +- **Outstanding**: `@node-minify/run` is removed in v11 but **not** deprecated on npm, so it still installs silently at `10.5.0`. Deprecate it with: + + ```bash + npm deprecate @node-minify/run "@node-minify/run was removed in v11. It was an internal Java/process-spawn helper with no public replacement; remove it from your dependencies." + ``` + +- **Release tagging**: `GITHUB_TOKEN` cannot create a tag whose tree adds `.github/workflows/*`, so the major tag (`v11`) had to be pushed manually. Every future major hits this. Fix with a fine-grained PAT (contents + workflows write) stored as a secret, or by excluding workflow files from the tagged tree. +- **Publish failures are non-fatal**: `scripts/publish.ts` logs `npm publish` and `changeset tag` errors as "may already exist" but still exits 0, so CI cannot distinguish a real failure from a no-op. Until that is fixed, verify published versions against the registry rather than trusting a green Publish run. diff --git a/packages/action/action.yml b/packages/action/action.yml index 35a752487..47d0b192c 100644 --- a/packages/action/action.yml +++ b/packages/action/action.yml @@ -107,5 +107,5 @@ outputs: description: "Full benchmark results as JSON string" runs: - using: "node20" + using: "node24" main: "dist/index.js"