Skip to content

Commit 3315bbc

Browse files
docs(npm-to-deno): declare migration substantially complete (closeout #253, #275) (#325)
## Summary Campaign closeout for the npm → Deno estate-wide migration (umbrella #253). All seven STEP issues (#261/#262/#265/#268/#270/#273/#275) are closed. STEP 7 (workspace finalisation) gets its proof-point landed in ssg-collection#25 (8 SSG adapter manifests migrated Class B → deno.json) and closes alongside this PR. ## Changes | File | Change | |---|---| | rhodium-standard-repositories/spec/LANGUAGE-POLICY.adoc | §Banned-Languages Node.js row: nine carve-out classes (six original + three added via hypatia#405). §Migration-Priority item 3: Medium-term → Done 2026-05-31 (parallels V-lang Zig Done 2026-05-28). | | docs/JS-RUNTIME-POLICY.adoc | :issue-253: attribute + front-matter NOTE declaring the migration substantially complete. Bump :revdate: 2026-05-19 → 2026-05-31. | | .claude/CLAUDE.md npm-Exemptions | Reword In-flight migration tracked under #253 → Migration substantially complete 2026-05-31 under umbrella #253, with close-tally summary. | ## What is NOT changed - The carve-out table itself (already authoritative post hypatia#405 + standards#320) - The runtime-hierarchy table - The hard-rules section The closeout is purely a status update. npm remains banned, the hypatia rule cicd_rules/nodejs_detected remains armed with nine carve-out classes, the per-repo recipe at docs/migrations/npm-to-deno-template/MIGRATION.md stays canonical. ## Closeout state at merge time | STEP | Issue | State | |---|---|---| | 1 — Layer-1 policy | #261 | CLOSED 2026-05-30 | | 2 — Template + re-inventory | #262 | CLOSED 2026-05-30 | | 3 — Smallest-first batch | #265 | CLOSED 2026-05-30 (22 PRs + carve-out) | | 4 — Mid-tier batch | #268 | CLOSED 2026-05-30 (SUBSTANTIALLY DONE) | | 5 — Larger batch | #270 | CLOSED 2026-05-30 (SUBSTANTIALLY DONE) | | 6 — developer-ecosystem | #273 | CLOSED 2026-05-30 (SUBSTANTIALLY DONE) | | 7 — workspace finalisation | #275 | CLOSED 2026-05-31 (this PR + ssg-collection#25) | | umbrella | #253 | CLOSED 2026-05-31 (this PR) | ## Residual longtail (per-repo follow-ups, not blocking) - flat-mate (4 manifests, apps/ subtree) - accessibility-everywhere (8 manifests, tools/ subtree) - kaldor-iiot (backend+frontend, 26+26 deps) - excel-economic-numbers-tool (Class C? Office add-in) - ubicity (heavy node src/*.js) - the-nash-equilibrium/mvt (Bun-specific) - svalinn/ui (local cadre-router + rescript-tea deps) - A handful of heavier Vite/Vitest/Jest/Express stacks (anamnesis/visualization, git-scripts/ui, patallm-gallery/claude-integrations/gitlab-bridge) Each tracked as a per-repo PR when shipped; none gate the umbrella close, parallel to how STEPS 3-6 each closed SUBSTANTIALLY DONE. ## Test plan - [ ] CI: governance-reusable verifies hypatia rule armed - [ ] :nodejs_detected scan continues to flag only carve-out-explained paths - [ ] Cross-ref check: this PR Closes #253. Closes #275. fires both closures on merge Refs #252 (ReScript-to-AS, still in-flight) Refs #239 (TS-to-AS, still in-flight) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent eb2c82f commit 3315bbc

3 files changed

Lines changed: 46 additions & 16 deletions

File tree

.claude/CLAUDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ Existing pre-2026-05-25 `.res`/`.resi` outside these carve-outs is grandfathered
167167

168168
The hyperpolymath "npm banned" policy (2026-05-25) has the following approved exemptions on the hypatia rule `cicd_rules/nodejs_detected` (matches `package-lock.json`).
169169

170-
In-flight migration tracked under `hyperpolymath/standards#253` (172 manifests across the estate; see `project_estate_npm_to_deno_2026_05_28.md`).
170+
Migration substantially complete 2026-05-31 under umbrella `hyperpolymath/standards#253` (172 manifests at campaign start; all seven STEP issues #261/#262/#265/#268/#270/#273/#275 closed; ~22 physical-migration PRs landed plus three named-bucket audits closed `SUBSTANTIALLY DONE`; per-repo follow-up trackers cover the residual longtail). See `project_estate_npm_to_deno_2026_05_28.md`. Per-repo recipe: `docs/migrations/npm-to-deno-template/MIGRATION.md`.
171171

172172
| Path / Pattern | Class | Rationale | Unblock condition |
173173
|---|---|---|---|

docs/JS-RUNTIME-POLICY.adoc

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,32 @@
11
// SPDX-License-Identifier: PMPL-1.0-or-later
22
= JS Runtime & Package Management Policy
3-
:revdate: 2026-05-19
3+
:revdate: 2026-05-31
44
:status: ACTIVE
55
:issue-67: hyperpolymath/standards#67
66
:issue-68: hyperpolymath/standards#68
7+
:issue-253: hyperpolymath/standards#253
78

89
This document is the canonical estate-wide policy for JavaScript/TypeScript
910
runtimes and package management. It is referenced by
1011
`governance-reusable.yml` (enforcement) and the canonical template
1112
`.gitignore` files (rsr-template-repo, v3-templater).
1213

13-
See also: `scripts/purge-node-modules.sh` (remediation utility).
14+
See also: `scripts/purge-node-modules.sh` (remediation utility) and
15+
`docs/migrations/npm-to-deno-template/MIGRATION.md` (per-repo recipe).
16+
17+
[NOTE]
18+
====
19+
*npm → Deno migration: substantially complete 2026-05-31.* Umbrella
20+
{issue-253} and the seven STEP issues (#261/#262/#265/#268/#270/#273/#275)
21+
all closed. ~22 physical-migration PRs landed in STEP 3 plus
22+
named-bucket audits closed `SUBSTANTIALLY DONE` for STEPS 4/5/6/7.
23+
Residual longtail repos (`flat-mate`, `accessibility-everywhere`,
24+
`kaldor-iiot`, `excel-economic-numbers-tool`, `ubicity`, a handful of
25+
heavier Vite/Vitest/Jest/Express stacks) are tracked as per-repo
26+
follow-ups rather than blocking the umbrella close. The hypatia rule
27+
`cicd_rules/nodejs_detected` remains armed with nine carve-out classes
28+
(see `.claude/CLAUDE.md §npm Exemptions`).
29+
====
1430

1531
== Runtime Hierarchy
1632

rhodium-standard-repositories/spec/LANGUAGE-POLICY.adoc

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -190,23 +190,30 @@ NOTE: For full rationale and migration guides, see the link:{source-repo}[CCCP r
190190
| Deno
191191
| Insecure by default. Detection via hypatia
192192
`cicd_rules/nodejs_detected` (matches `package-lock.json`) with
193-
`path_allow_prefixes` covering six carve-out classes:
194-
(1) `**/vscode/**` VSCode extension host-required toolchain
195-
(extension toolchain runs under Node; lockfile contractually
196-
required by the host);
193+
`path_allow_prefixes` covering nine carve-out classes (six original
194+
+ three added during the migration via hypatia#405):
195+
(1a) `**/vscode/**` VSCode extension host-required toolchain;
196+
(1b) `vscode-` substring (extension repos/subdirs);
197+
(1c) `tree-sitter-` substring (grammar npm-publish targets, Class C
198+
consumer artefact with native binding);
197199
(2) `affinescript-deno-test/`, `affinescript-cli/` bootstrap shims;
198200
(3) `rescript/`, `servers/`, `repos-monorepo/`, `linguist/` upstream
199201
forks;
200202
(4) `hyperpolymath-archive/**` archived repos;
201-
(5) `**/deps/**`, `**/node_modules/**` vendored package-manager
202-
deps;
203+
(5) `**/deps/**`, `**/node_modules/**`, `**/.lake/**` (Lean4),
204+
`**/office-addin/**`, `**/bindings/{javascript,typescript}/**`
205+
vendored / host-required / consumer-export deps;
203206
(6) `**/example/**`, `**/examples/**`, `**/test-fixtures/**`,
204-
`**/fixtures/**` example/test fixtures (demonstrate npm consumer
205-
without making the repo itself an npm consumer).
206-
In-flight migration tracked under hyperpolymath/standards#253
207-
(172 `package.json` manifests; tracker
208-
`project_estate_npm_to_deno_2026_05_28.md`; STEPS
209-
#261/#262/#265/#268/#270/#273/#275).
207+
`**/fixtures/**` example/test fixtures.
208+
*Migration substantially complete 2026-05-31* under umbrella
209+
hyperpolymath/standards#253: STEPS
210+
#261/#262/#265/#268/#270/#273/#275 all closed; 22+ physical-migration
211+
PRs landed across STEP 3 (smallest-first), the 4/5/6 named-bucket
212+
audits closed `SUBSTANTIALLY DONE` with per-repo follow-up trackers
213+
for the residual longtail (`flat-mate`, `accessibility-everywhere`,
214+
`kaldor-iiot`, `excel-economic-numbers-tool`, `ubicity`, and a
215+
handful of heavier Vite/Vitest/Jest/Express stacks). Tracker:
216+
`project_estate_npm_to_deno_2026_05_28.md`.
210217

211218
| *npm/Bun/pnpm/yarn*
212219
| Deno
@@ -357,7 +364,14 @@ When encountering banned languages:
357364
are blocked by hypatia `cicd_rules/typescript_detected` (with
358365
`path_allow_prefixes` for documented carve-outs) and the
359366
`language-policy.yml` reusable.
360-
3. *Medium-term*: Replace Node/npm with Deno
367+
3. ✅ *Done 2026-05-31*: Replace Node/npm with Deno across the estate
368+
(substantially complete under umbrella hyperpolymath/standards#253;
369+
STEPS #261/#262/#265/#268/#270/#273/#275 closed; ~22 physical-migration
370+
PRs in STEP 3 plus 4/5/6 named-bucket audits each closed
371+
`SUBSTANTIALLY DONE`; longtail repos tracked as per-repo follow-ups
372+
rather than blocking the umbrella close; Layer-1 carve-out classes
373+
extended via hypatia#405 to nine; tracker
374+
`project_estate_npm_to_deno_2026_05_28.md`)
361375
4. ✅ *Done 2026-05-28*: V-lang → Zig migration complete across the estate
362376
(16 admin-merged PRs; hypatia detection rule armed)
363377
5. *Long-term*: Rewrite Go/Python in Rust/SPARK; absorb most Ada work into

0 commit comments

Comments
 (0)