|
| 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 | +## CRITICAL: Pure BuckleScript (bsconfig.json only) |
| 10 | + |
| 11 | +These locations use the legacy BuckleScript config format with NO rescript.json. |
| 12 | +**ReScript 13 removes bsconfig.json support entirely.** |
| 13 | + |
| 14 | +- `satellites/repo-management/grim-repo` |
| 15 | + |
| 16 | +**Action required:** |
| 17 | +1. Rename `bsconfig.json` → `rescript.json` |
| 18 | +2. Replace `bs-dependencies` → `dependencies`, `bs-dev-dependencies` → `dev-dependencies` |
| 19 | +3. Remove `bsc-flags` (deprecated) |
| 20 | +4. Check for `.re` (Reason) files → convert to `.res` syntax |
| 21 | +5. Replace any `bs-platform` dependency with `rescript` ^12.2.0 |
| 22 | +6. Migrate all `@bs.` attributes to `@` equivalents |
| 23 | +7. Migrate `Js.*` APIs to `@rescript/core` equivalents |
| 24 | + |
| 25 | +## HIGH: Partial Migration (both bsconfig.json and rescript.json) |
| 26 | + |
| 27 | +These have both config files — migration was started but not completed. |
| 28 | + |
| 29 | +- `satellites/developer-ux/recon-silly-ation` |
| 30 | + |
| 31 | +**Action required:** |
| 32 | +1. Delete the leftover `bsconfig.json` files |
| 33 | +2. Ensure `rescript.json` has all needed config migrated |
| 34 | +3. Verify build still works with `rescript.json` only |
| 35 | + |
| 36 | +## HIGH: ReScript 11.x → 12.2.0 Upgrade Required |
| 37 | + |
| 38 | +ReScript 11 is outdated. v12 has breaking changes that need migration. |
| 39 | + |
| 40 | +- `rescript-ecosystem/cadre-router/tea-router (^11.0.0 |
| 41 | +^11.1.0)` |
| 42 | + |
| 43 | +**Key v11 → v12 migration steps:** |
| 44 | +1. Update `package.json`: `"rescript": "^12.2.0"` |
| 45 | +2. Add `@rescript/core` and `@rescript/react` (if applicable) to dependencies |
| 46 | +3. Config: `bs-dependencies` → `dependencies`, `bs-dev-dependencies` → `dev-dependencies` |
| 47 | +4. Remove `bsc-flags` from config |
| 48 | +5. JSX: v3 is removed in v12 — must use JSX v4 |
| 49 | +6. Module format: `es6`/`es6-global` → `esmodule` (now default) |
| 50 | +7. Migrate deprecated `Js.*` APIs → `@rescript/core` equivalents: |
| 51 | + - `Js.Dict` → `Dict`, `Js.Console.log` → `Console.log` |
| 52 | + - `Js.String2` → `String`, `Js.Array2` → `Array` |
| 53 | + - `Js.Math` → `Math`, `Js.Float` → `Float`, `Js.Int` → `Int` |
| 54 | + - `Js.Promise` → `Promise`, `Js.Nullable` → `Nullable` |
| 55 | +8. Functions ending in `Exn` → `OrThrow` (e.g. `getExn` → `getOrThrow`) |
| 56 | +9. Run `npx rescript-tools migrate` for automated codemods |
| 57 | + |
| 58 | +## CHECK: Version Unknown or Unpinned |
| 59 | + |
| 60 | +- `satellites/developer-ux/rescript-evangeliser (no version pinned)` |
| 61 | +- `satellites/developer-ux/recon-silly-ation (no version pinned)` |
| 62 | +- `deno-ecosystem/projects/beamdeno (no version pinned)` |
| 63 | +- `deno-ecosystem/projects/bundeno (no version pinned)` |
| 64 | +- `deno-ecosystem/projects/deno-bunbridge (no version pinned)` |
| 65 | +- `v-ecosystem/v-deno (no version pinned)` |
| 66 | +- `rescript-ecosystem/cadre-router (no version pinned)` |
| 67 | +- `rescript-ecosystem/cadre-router/tea-router-pkg (no version pinned)` |
| 68 | + |
| 69 | +**Action:** Pin to `"rescript": "^12.2.0"` explicitly. |
| 70 | + |
| 71 | +--- |
| 72 | + |
| 73 | +## ReScript 13 Preparation (v13.0.0-alpha.2 available) |
| 74 | + |
| 75 | +v13 is in alpha. These breaking changes are CONFIRMED — prepare now: |
| 76 | + |
| 77 | +1. **`bsconfig.json` support removed** — must use `rescript.json` only |
| 78 | +2. **`rescript-legacy` command removed** — only modern build system |
| 79 | +3. **`bs-dependencies`/`bs-dev-dependencies`/`bsc-flags` config keys removed** |
| 80 | +4. **Uncurried `(. args) => ...` syntax removed** — use standard `(args) => ...` |
| 81 | +5. **`es6`/`es6-global` module format names removed** — use `esmodule` |
| 82 | +6. **`external-stdlib` config option removed** |
| 83 | +7. **`--dev`, `--create-sourcedirs`, `build -w` CLI flags removed** |
| 84 | +8. **`Int.fromString`/`Float.fromString` API changes** — no explicit radix arg |
| 85 | +9. **`js-post-build` behaviour changed** — now passes correct output paths |
| 86 | + |
| 87 | +**Migration path:** Complete all v12 migration FIRST, then test against v13-alpha. |
0 commit comments