Files
scriptc/scripts/sync-versions.mjs
Chris Tate ee9f0d64eb feat: ship the self-hosted native scriptc CLI (#585)
* feat: ship the self-hosted native scriptc CLI

- Run the shared compiler and CLI natively, including library builds and compile-time evaluation.
- Install native platform packages and ship relocatable standalone distributions.
- Preserve program semantics and reuse validated build artifacts for fast rebuilds.

* fix: complete native CLI integration and validation

- Preserve library diagnostics and run recursive compiler work on the main stack.
- Restore packaged helper permissions and exercise native npm and Wasm library builds.
- Recover interrupted Sandbox status probes within the original command deadline.
2026-09-30 02:17:56 -05:00

44 lines
1.7 KiB
JavaScript

#!/usr/bin/env node
// Stamps the version from packages/cli/package.json into packages/runtime
// packages/compiler, runtime, and platform helper packages so every component
// participating in the helper protocol moves in lockstep.
// Usage: node scripts/sync-versions.mjs
import { readFileSync, writeFileSync } from "node:fs";
import { fileURLToPath } from "node:url";
const root = fileURLToPath(new URL("..", import.meta.url));
const manifest = (pkg) => `${root}packages/${pkg}/package.json`;
const read = (path) => JSON.parse(readFileSync(path, "utf8"));
const version = read(manifest("cli")).version;
if (typeof version !== "string" || version.length === 0) {
console.error("packages/cli/package.json has no version");
process.exit(1);
}
for (const pkg of [
"runtime",
"runtime-darwin-arm64", "runtime-darwin-x64",
"runtime-linux-x64-gnu", "runtime-linux-arm64-gnu",
"runtime-linux-x64-musl", "runtime-linux-arm64-musl",
"runtime-win32-x64-msvc", "runtime-wasm32-wasi",
"runtime-ios-arm64", "runtime-ios-simulator-arm64", "runtime-android-arm64",
"compiler",
"cli-darwin-arm64", "cli-darwin-x64",
"cli-linux-x64-gnu", "cli-linux-arm64-gnu",
"cli-linux-x64-musl", "cli-linux-arm64-musl", "cli-win32-x64-msvc",
"llvm-darwin-arm64", "llvm-darwin-x64",
"llvm-linux-x64-gnu", "llvm-linux-arm64-gnu",
"llvm-linux-x64-musl", "llvm-linux-arm64-musl", "llvm-win32-x64-msvc",
]) {
const path = manifest(pkg);
const json = read(path);
if (json.version === version) {
console.log(`packages/${pkg}: already ${version}`);
continue;
}
console.log(`packages/${pkg}: ${json.version} -> ${version}`);
json.version = version;
writeFileSync(path, JSON.stringify(json, null, 2) + "\n");
}