|
| 1 | +# URGENT: ReScript Migration Required |
| 2 | + |
| 3 | +**Generated:** 2026-03-02 |
| 4 | +**Current stable ReScript:** 12.2.0 |
| 5 | +**Pre-release:** 13.0.0-alpha.2 (2025-02-27) |
| 6 | + |
| 7 | +This repo has ReScript code that needs migration. Address in priority order. |
| 8 | + |
| 9 | +## HIGH: ReScript 11.x → 12.2.0 Upgrade Required |
| 10 | + |
| 11 | +ReScript 11 is outdated. v12 has breaking changes that need migration. |
| 12 | + |
| 13 | +- `verisimdb/playground (^11.0.0)` |
| 14 | + |
| 15 | +**Key v11 → v12 migration steps:** |
| 16 | +1. Update `package.json`: `"rescript": "^12.2.0"` |
| 17 | +2. Add `@rescript/core` and `@rescript/react` (if applicable) to dependencies |
| 18 | +3. Config: `bs-dependencies` → `dependencies`, `bs-dev-dependencies` → `dev-dependencies` |
| 19 | +4. Remove `bsc-flags` from config |
| 20 | +5. JSX: v3 is removed in v12 — must use JSX v4 |
| 21 | +6. Module format: `es6`/`es6-global` → `esmodule` (now default) |
| 22 | +7. Migrate deprecated `Js.*` APIs → `@rescript/core` equivalents: |
| 23 | + - `Js.Dict` → `Dict`, `Js.Console.log` → `Console.log` |
| 24 | + - `Js.String2` → `String`, `Js.Array2` → `Array` |
| 25 | + - `Js.Math` → `Math`, `Js.Float` → `Float`, `Js.Int` → `Int` |
| 26 | + - `Js.Promise` → `Promise`, `Js.Nullable` → `Nullable` |
| 27 | +8. Functions ending in `Exn` → `OrThrow` (e.g. `getExn` → `getOrThrow`) |
| 28 | +9. Run `npx rescript-tools migrate` for automated codemods |
| 29 | + |
| 30 | +## LOW: ReScript 12.0.x/12.1.x → 12.2.0 |
| 31 | + |
| 32 | +Already on v12 but not latest patch. Minor bump. |
| 33 | + |
| 34 | +- `lithoglyph/studio (^12.0.0)` |
| 35 | +- `lithoglyph/glyphbase/ui (^12.0.2)` |
| 36 | + |
| 37 | +**Action:** Update `package.json` to `"rescript": "^12.2.0"` |
| 38 | + |
| 39 | +## CHECK: Version Unknown or Unpinned |
| 40 | + |
| 41 | +- `verisimdb (no version pinned)` |
| 42 | +- `quandledb/frontend (no version pinned)` |
| 43 | +- `lithoglyph/tools/sdk-gen (no version pinned)` |
| 44 | +- `lithoglyph/normalizer (no version pinned)` |
| 45 | +- `lithoglyph/clients/rescript (no version pinned)` |
| 46 | +- `lithoglyph/integrations/strapi (no version pinned)` |
| 47 | +- `lithoglyph/integrations/directus (no version pinned)` |
| 48 | +- `lithoglyph/integrations/ghost (no version pinned)` |
| 49 | +- `lithoglyph/integrations/payload (no version pinned)` |
| 50 | +- `lithoglyph/tests/property (no version pinned)` |
| 51 | +- `lithoglyph/tests/fuzz (no version pinned)` |
| 52 | +- `lithoglyph/tests/integration (no version pinned)` |
| 53 | +- `lithoglyph/tests/e2e (no version pinned)` |
| 54 | +- `lithoglyph/perf (no version pinned)` |
| 55 | +- `lithoglyph/stability (no version pinned)` |
| 56 | +- `lithoglyph/distributed (no version pinned)` |
| 57 | +- `lithoglyph/analytics (no version pinned)` |
| 58 | +- `nqc/web (no version pinned)` |
| 59 | +- `typeql-experimental (no version pinned)` |
| 60 | + |
| 61 | +**Action:** Pin to `"rescript": "^12.2.0"` explicitly. |
| 62 | + |
| 63 | +--- |
| 64 | + |
| 65 | +## ReScript 13 Preparation (v13.0.0-alpha.2 available) |
| 66 | + |
| 67 | +v13 is in alpha. These breaking changes are CONFIRMED — prepare now: |
| 68 | + |
| 69 | +1. **`bsconfig.json` support removed** — must use `rescript.json` only |
| 70 | +2. **`rescript-legacy` command removed** — only modern build system |
| 71 | +3. **`bs-dependencies`/`bs-dev-dependencies`/`bsc-flags` config keys removed** |
| 72 | +4. **Uncurried `(. args) => ...` syntax removed** — use standard `(args) => ...` |
| 73 | +5. **`es6`/`es6-global` module format names removed** — use `esmodule` |
| 74 | +6. **`external-stdlib` config option removed** |
| 75 | +7. **`--dev`, `--create-sourcedirs`, `build -w` CLI flags removed** |
| 76 | +8. **`Int.fromString`/`Float.fromString` API changes** — no explicit radix arg |
| 77 | +9. **`js-post-build` behaviour changed** — now passes correct output paths |
| 78 | + |
| 79 | +**Migration path:** Complete all v12 migration FIRST, then test against v13-alpha. |
0 commit comments