mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-10-22 05:59:31 +08:00
* feat(runtime): ship precompiled macOS artifacts - Add a versioned macOS arm64 runtime pack with deterministic feature selection and artifact verification. - Link LLVM helper objects against release-built runtime and vendor inputs without compiling user-machine C. - Wire package publishing, cache validation, documentation, and full-gate coverage for the new path. * fix(runtime): harden precompiled artifact handling * fix(runtime): make precompiled artifacts reproducible * fix(runtime): reject opaque linkers from executable cache * fix(runtime): normalize precompiled archive metadata * fix(runtime): harden precompiled artifact caching * fix(runtime): close executable cache link race * fix(runtime): stage verified pack artifacts * fix(runtime): bracket helper cache inputs * fix(runtime): preserve executable link identity * fix(runtime): trace selected linker dependencies
30 lines
1.1 KiB
JavaScript
30 lines
1.1 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", "compiler", "llvm-darwin-arm64"]) {
|
|
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");
|
|
}
|