Files
scriptc/scripts/sync-versions.mjs
T
Malte Ubl 272aef3247 Release @scriptc/threads with the other packages
sync-versions stamps packages/threads with the CLI version (0.2.7 now),
the release workflow checks that version and publishes the package
before scriptc, and RELEASING.md lists it with the packages that always
release together. npm trusted publishing must be configured for
@scriptc/threads before the next release: a package without it fails
before upload.
2026-10-10 01:00:36 -05:00

59 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",
"threads",
"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");
}