Skip to content

Commit 8461acd

Browse files
committed
chore(toolchain): #251 — provision the component-model toolchain (ADR-015 S2)
INT-03 ADR-015 S2 / issue #251: the WASM Component-Model toolchain was absent, hard-gating ADR-015 S3+ (componentize on-ramp). Owner authorised provisioning (2026-05-19). - Installed + verified (rustc 1.95.0): wasm-tools 1.249.0, wasm-component-ld 0.5.22, wac-cli 0.10.0 (binary `wac`). - `tools/provision-component-toolchain.sh` — the reproducible, committed deliverable: exact pinned versions + `cargo install --locked` (deterministic per pinned version via each crate's committed Cargo.lock), idempotent re-run. A guix.scm/flake.nix devShell entry is a tracked follow-up (the repo has neither yet; introducing one is out of #251's bounded scope — noted in the script header). - ECOSYSTEM/TECH-DEBT INT-03 truthed: S2 done, **S3 unblocked**. Gate: `dune test --force` 295/295 (no compiler/source change; zero regression — script + docs only). Closes #251. Refs #180 (unblocks ADR-015 S3).
1 parent 9d312f9 commit 8461acd

3 files changed

Lines changed: 42 additions & 6 deletions

File tree

docs/ECOSYSTEM.adoc

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -206,9 +206,10 @@ satellite shell is downstream.
206206
|INT-03 |WASI preview2 / host I/O beyond stdout |#180 |S1, ADR-015
207207
ACCEPTED (owner-chosen full WASM Component-Model re-target). Staged
208208
S1..S6; legacy preview1 stdout path is the default until S6
209-
(reversible-in-progress). S3+ HARD-GATED on S2 toolchain provisioning
210-
(`wasm-tools`/`wasm-component-ld`, absent). WIT world of record:
211-
`wit/affinescript.wit`
209+
(reversible-in-progress). **S2 toolchain provisioned (#251 closed):
210+
`tools/provision-component-toolchain.sh` — pinned wasm-tools 1.249.0 /
211+
wasm-component-ld 0.5.22 / wac-cli 0.10.0. S3 (componentize on-ramp)
212+
now UNBLOCKED.** WIT world of record: `wit/affinescript.wit`
212213
|INT-04 |Publish compiler + runtime to JSR (then npm) |#181 |runtime
213214
packaging READY (affine-js + affinescript-tea JSR dry-run green;
214215
manual-only `publish-jsr.yml`; docs/PACKAGING.adoc). INT-01 dep

docs/TECH-DEBT.adoc

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -185,9 +185,10 @@ follow-up
185185
multi-ns import object, ownership accessor); 14 unit tests via pinned
186186
`deno task test` + `tests/modules/loader-bridge/` e2e on real
187187
compiler-emitted xmod wasm (closes INT-01↔INT-02). Unblocks INT-05/08/11
188-
|INT-03 |WASI preview2 / host I/O |S1 |#180 ADR-015 accepted (full
189-
Component-Model re-target, staged S1..S6); S3+ hard-gated on S2
190-
toolchain (`wasm-tools`/`wasm-component-ld`)
188+
|INT-03 |WASI preview2 / host I/O |S1→S2 |#180 ADR-015 (full
189+
Component-Model re-target, S1..S6); **S2 toolchain provisioned —
190+
#251 closed (`tools/provision-component-toolchain.sh`, pinned
191+
wasm-tools/wasm-component-ld/wac); S3 componentize on-ramp unblocked**
191192
|INT-04 |Publish to JSR/npm |S2 |#181 packaging READY (dry-run green,
192193
manual workflow); JSR publish authorised + dispatched (owner go
193194
2026-05-19); compiler-binary distribution decided = **ADR-019**
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#!/usr/bin/env bash
2+
# SPDX-License-Identifier: PMPL-1.0-or-later
3+
#
4+
# INT-03 S2 / issue #251 (ADR-019 unblocker for ADR-015 S3+): provision
5+
# the WASM Component-Model toolchain the WASI-preview2 migration needs.
6+
#
7+
# Reproducible by construction: exact pinned versions + `cargo install
8+
# --locked` (uses each crate's committed Cargo.lock, so the built
9+
# binary is deterministic for the pinned version). Re-running is
10+
# idempotent (cargo skips an already-installed matching version).
11+
#
12+
# Canonical provisioning is this script for now; a guix.scm / flake.nix
13+
# devShell entry is a tracked follow-up (the repo has neither yet —
14+
# introducing one is out of #251's bounded scope). CI and contributors
15+
# run this to obtain a byte-stable toolchain.
16+
#
17+
# Pinned 2026-05-19 (resolved + verified on rustc 1.95.0):
18+
set -euo pipefail
19+
20+
WASM_TOOLS_VERSION="1.249.0"
21+
WASM_COMPONENT_LD_VERSION="0.5.22"
22+
WAC_CLI_VERSION="0.10.0"
23+
24+
echo "Provisioning component-model toolchain (pinned, --locked)…"
25+
cargo install --locked --version "${WASM_TOOLS_VERSION}" wasm-tools
26+
cargo install --locked --version "${WASM_COMPONENT_LD_VERSION}" wasm-component-ld
27+
cargo install --locked --version "${WAC_CLI_VERSION}" wac-cli
28+
29+
echo
30+
echo "Installed:"
31+
wasm-tools --version
32+
wasm-component-ld --version
33+
wac --version
34+
echo "OK — ADR-015 S3 (componentize on-ramp) is now unblocked."

0 commit comments

Comments
 (0)