Skip to content

Commit b3c3e9d

Browse files
Create mise.toml for WordPress toolchain (#56)
Add mise.toml for toolchain configuration in sinople-theme. <!-- SPDX-License-Identifier: CC-BY-SA-4.0 Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk> --> ## Summary <!-- What does this PR do, and why? --> Closes # ## Type of change - [ ] 🐛 Bug fix (non-breaking change that fixes an issue) - [ ] ✨ New feature (non-breaking change that adds functionality) - [ ] 💥 Breaking change (would change existing behaviour) - [ ] 🕳️ Soundness fix (fixes a checker/proof false-negative) - [ ] 📖 Documentation - [ ] 🧹 Refactor / tech debt (behaviour-preserving) - [ ] ⚡ Performance - [ ] 🔧 Build / CI / tooling ## How has this been verified? <!-- Establish ground truth: which tool did you RUN, and what did it report? Don't cite a status doc — cite the command and its output. --> ## Checklist - [ ] My commits are **signed** (`git commit -S`). - [ ] I ran the project's own checks/tests locally and they pass. - [ ] New files carry the correct `SPDX-License-Identifier` (code/config `MPL-2.0`, prose `CC-BY-SA-4.0`); I did not relicense existing files. - [ ] Docs are updated, and no public claim now overstates what the code does. - [ ] I have not introduced a soundness hole (or I have flagged where I might have). ## Notes for reviewers <!-- Anything that needs special attention, follow-up, or context. --> Signed-off-by: Jonathan D.A. Jewell <6759885+hyperpolymath@users.noreply.github.com>
1 parent 9e77564 commit b3c3e9d

1 file changed

Lines changed: 71 additions & 0 deletions

File tree

‎sinople-theme/mise.toml‎

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# mise.toml — toolchain for wordpress-tools / sinople-theme
2+
# Replaces .tool-versions (asdf). mise reads both, so delete the old file.
3+
4+
# Require a recent mise so backend behaviour matches this file.
5+
min_version = "2025.1.0"
6+
7+
[settings]
8+
# Needed for cargo:/npm:/ubi: backends on older mise releases; harmless on current ones.
9+
experimental = true
10+
11+
[tools]
12+
# ── Runtimes ─────────────────────────────────────────────────
13+
bun = "1.2" # replaces deno
14+
node = "22" # LTS — keep for toolchain compat; drop if nothing ends up needing it
15+
rust = "stable" # WASM semantic processor
16+
php = "8.4" # theme target; 8.3 is the floor, CI also tests 8.5
17+
# NOTE: mise builds PHP from source — needs libxml2/openssl/sqlite
18+
# dev headers. If that's painful, use system PHP or ddev locally
19+
# and keep this pin for CI only.
20+
21+
# ── Repo tooling ─────────────────────────────────────────────
22+
just = "latest" # repo has a Justfile
23+
trufflehog = "latest" # standardised secret scanning (already in your CI)
24+
actionlint = "latest" # GitHub Actions linting
25+
shellcheck = "latest" # build.sh / dev.sh
26+
taplo = "latest" # TOML formatting, including this file
27+
28+
# ── WASM toolchain ───────────────────────────────────────────
29+
# wasm-pack is unmaintained; wasm-bindgen-cli + wasm-opt is the current path.
30+
# Verify names against your mise version with: mise registry <name>
31+
"cargo:wasm-bindgen-cli" = "0.2"
32+
"cargo:cargo-audit" = "latest"
33+
"cargo:cargo-deny" = "latest"
34+
# wasm-opt: install binaryen via your OS package manager, or try:
35+
# "npm:binaryen" = "latest" # confirm it exposes the wasm-opt bin on your platform
36+
37+
# ── affinescript ─────────────────────────────────────────────
38+
# TODO: pick the one line matching how affinescript is actually distributed,
39+
# then delete the rest:
40+
# "npm:affinescript" = "latest" # if published to npm
41+
# "ubi:hyperpolymath/affinescript" = "latest" # if GitHub release binaries
42+
# "aqua:hyperpolymath/affinescript" = "latest" # if added to the aqua registry
43+
# If it's built from this repo (e.g. cli/), leave it out of [tools] entirely
44+
# and let the setup task + [env] path below handle it.
45+
46+
[env]
47+
WASM_TARGET = "wasm32-unknown-unknown"
48+
# Prepend in-repo tooling (e.g. a locally built affinescript) to PATH:
49+
_.path = ["./cli/bin"]
50+
51+
[tasks.setup]
52+
description = "One-time: rust WASM target + JS deps"
53+
run = """
54+
rustup target add $WASM_TARGET 2>/dev/null || echo 'rustup not found — add the wasm32 target via your rust install'
55+
bun install
56+
"""
57+
58+
[tasks.build]
59+
description = "Build everything"
60+
run = "./build.sh"
61+
62+
[tasks.dev]
63+
description = "Watch mode"
64+
run = "./dev.sh"
65+
66+
[tasks.test]
67+
description = "All suites (deno test → bun test migration)"
68+
run = """
69+
cargo test --manifest-path wasm/semantic_processor/Cargo.toml
70+
bun test
71+
"""

0 commit comments

Comments
 (0)