mirror of
https://github.com/QwenLM/qwen-code.git
synced 2025-12-19 09:33:53 +00:00
75 lines
2.5 KiB
JavaScript
75 lines
2.5 KiB
JavaScript
/**
|
|
* @license
|
|
* Copyright 2025 Google LLC
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
import { execSync } from 'child_process';
|
|
import { readFileSync, writeFileSync } from 'fs';
|
|
import { resolve } from 'path';
|
|
|
|
// A script to handle versioning and ensure all related changes are in a single, atomic commit.
|
|
|
|
function run(command) {
|
|
console.log(`> ${command}`);
|
|
execSync(command, { stdio: 'inherit' });
|
|
}
|
|
|
|
function readJson(filePath) {
|
|
return JSON.parse(readFileSync(filePath, 'utf-8'));
|
|
}
|
|
|
|
function writeJson(filePath, data) {
|
|
writeFileSync(filePath, JSON.stringify(data, null, 2) + '\n');
|
|
}
|
|
|
|
// 1. Get the version from the command line arguments.
|
|
const versionArg = process.argv[2];
|
|
if (!versionArg) {
|
|
console.error('Error: No version specified.');
|
|
console.error(
|
|
'Usage: npm run version <version> (e.g., 1.2.3 or patch|minor|major|prerelease)',
|
|
);
|
|
process.exit(1);
|
|
}
|
|
|
|
// 2. Determine if we have a specific version or a version type
|
|
const isSpecificVersion = /^\d+\.\d+\.\d+/.test(versionArg);
|
|
const npmVersionArg = isSpecificVersion ? versionArg : versionArg;
|
|
|
|
// 3. Bump the version in the root and all workspace package.json files.
|
|
run(`npm version ${npmVersionArg} --no-git-tag-version --allow-same-version`);
|
|
run(
|
|
`npm version ${npmVersionArg} --workspaces --no-git-tag-version --allow-same-version`,
|
|
);
|
|
|
|
// 3. Get the new version number from the root package.json
|
|
const rootPackageJsonPath = resolve(process.cwd(), 'package.json');
|
|
const newVersion = readJson(rootPackageJsonPath).version;
|
|
|
|
// 4. Update the sandboxImageUri in the root package.json
|
|
const rootPackageJson = readJson(rootPackageJsonPath);
|
|
if (rootPackageJson.config?.sandboxImageUri) {
|
|
rootPackageJson.config.sandboxImageUri =
|
|
rootPackageJson.config.sandboxImageUri.replace(/:.*$/, `:${newVersion}`);
|
|
console.log(`Updated sandboxImageUri in root to use version ${newVersion}`);
|
|
writeJson(rootPackageJsonPath, rootPackageJson);
|
|
}
|
|
|
|
// 5. Update the sandboxImageUri in the cli package.json
|
|
const cliPackageJsonPath = resolve(process.cwd(), 'packages/cli/package.json');
|
|
const cliPackageJson = readJson(cliPackageJsonPath);
|
|
if (cliPackageJson.config?.sandboxImageUri) {
|
|
cliPackageJson.config.sandboxImageUri =
|
|
cliPackageJson.config.sandboxImageUri.replace(/:.*$/, `:${newVersion}`);
|
|
console.log(
|
|
`Updated sandboxImageUri in cli package to use version ${newVersion}`,
|
|
);
|
|
writeJson(cliPackageJsonPath, cliPackageJson);
|
|
}
|
|
|
|
// 6. Run `npm install` to update package-lock.json.
|
|
run('npm install');
|
|
|
|
console.log(`Successfully bumped versions to v${newVersion}.`);
|