mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-10-21 05:50:55 +08:00
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.
59 lines
1.7 KiB
JavaScript
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");
|
|
}
|