From d43ea268b01e80166ca9325bf174a9796105715f Mon Sep 17 00:00:00 2001 From: matt korwel Date: Thu, 3 Jul 2025 22:57:01 -0500 Subject: Releasing: Utilizing Github Actions and Tagging for release. (#2852) Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Co-authored-by: N. Taylor Mullen --- scripts/check-versions.js | 65 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 scripts/check-versions.js (limited to 'scripts/check-versions.js') diff --git a/scripts/check-versions.js b/scripts/check-versions.js new file mode 100644 index 00000000..230743a0 --- /dev/null +++ b/scripts/check-versions.js @@ -0,0 +1,65 @@ +/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */ + +import { readFileSync } from 'fs'; +import path from 'path'; + +function readPackageJson(dir) { + const p = path.join(dir, 'package.json'); + return JSON.parse(readFileSync(p, 'utf-8')); +} + +const root = readPackageJson('.'); +const cli = readPackageJson('packages/cli'); +const core = readPackageJson('packages/core'); + +const errors = []; + +console.log('Checking version consistency...'); + +// 1. Check that all package versions are the same. +if (root.version !== cli.version || root.version !== core.version) { + errors.push( + `Version mismatch: root (${root.version}), cli (${cli.version}), core (${core.version})`, + ); +} else { + console.log(`- All packages are at version ${root.version}.`); +} + +// 2. Check that the cli's dependency on core matches the core version. +const coreDepVersion = cli.dependencies['@google/gemini-cli-core']; +const expectedCoreVersion = `^${core.version}`; +if ( + coreDepVersion !== expectedCoreVersion && + coreDepVersion !== 'file:../core' +) { + errors.push( + `CLI dependency on core is wrong: expected ${expectedCoreVersion} or "file:../core", got ${coreDepVersion}`, + ); +} else { + console.log(`- CLI dependency on core (${coreDepVersion}) is correct.`); +} + +// 3. Check that the sandbox image tag matches the root version. +const imageUri = root.config.sandboxImageUri; +const imageTag = imageUri.split(':').pop(); +if (imageTag !== root.version) { + errors.push( + `Sandbox image tag mismatch: expected ${root.version}, got ${imageTag}`, + ); +} else { + console.log(`- Sandbox image tag (${imageTag}) is correct.`); +} + +if (errors.length > 0) { + console.error('\nVersion consistency checks failed:'); + for (const error of errors) { + console.error(`- ${error}`); + } + process.exit(1); +} + +console.log('\nAll version checks passed!'); -- cgit v1.2.3