Files
tutti/tools/scripts/apply-ci-package-release-version.mjs
agent-radar 2ed3415fb7
Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
2026-09-01 20:17:27 +08:00

65 lines
1.7 KiB
JavaScript

import { readFile, writeFile } from "node:fs/promises";
import { join } from "node:path";
import {
getNpmReleasePackages,
workspaceRoot
} from "./npm-release-packages.mjs";
import { parseStablePackageReleaseVersion } from "./package-release-version.mjs";
const releaseVersion = process.argv[2];
if (!releaseVersion) {
process.stderr.write(
"Usage: node tools/scripts/apply-ci-package-release-version.mjs <version>\n"
);
process.exit(1);
}
if (!parseStablePackageReleaseVersion(releaseVersion)) {
process.stderr.write(
`Unsupported package release version: ${releaseVersion}\n`
);
process.exit(1);
}
const packages = await getNpmReleasePackages();
const packageNames = new Set(
packages.map((packageConfig) => packageConfig.name)
);
for (const packageConfig of packages) {
const manifestPath = join(workspaceRoot, packageConfig.manifestPath);
const manifest = JSON.parse(await readFile(manifestPath, "utf8"));
manifest.version = releaseVersion;
updateInternalRanges(manifest, packageNames, releaseVersion);
await writeFile(manifestPath, `${JSON.stringify(manifest, null, 2)}\n`);
}
process.stdout.write(
`Applied CI package release version ${releaseVersion} to ${packages.length} packages\n`
);
function updateInternalRanges(manifest, packageNames, version) {
for (const field of [
"dependencies",
"devDependencies",
"optionalDependencies",
"peerDependencies"
]) {
const dependencies = manifest[field];
if (!dependencies || typeof dependencies !== "object") {
continue;
}
for (const dependencyName of Object.keys(dependencies)) {
if (packageNames.has(dependencyName)) {
dependencies[dependencyName] = version;
}
}
}
}