Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -107,5 +107,5 @@ outputs:
description: "Full benchmark results as JSON string"

runs:
using: "node20"
using: "node24"
main: "packages/action/dist/index.js"
25 changes: 18 additions & 7 deletions docs/plans/2026-06-22-v12-backlog.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down Expand Up @@ -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.
2 changes: 1 addition & 1 deletion packages/action/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -107,5 +107,5 @@ outputs:
description: "Full benchmark results as JSON string"

runs:
using: "node20"
using: "node24"
main: "dist/index.js"
Loading