From ebb493ff47921fd2c0580589b60440622f2809ea Mon Sep 17 00:00:00 2001 From: Sergey Petushkov Date: Fri, 12 Sep 2025 16:57:43 +0200 Subject: [PATCH] fix(scripts): consistently use caret version when updating dependencies both in package.json and in npm scripts --- scripts/update-dependencies.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/scripts/update-dependencies.js b/scripts/update-dependencies.js index be460d3c13f..e24e28ef54c 100644 --- a/scripts/update-dependencies.js +++ b/scripts/update-dependencies.js @@ -92,7 +92,7 @@ function updateDependencies(packageJson, newVersions) { if (packageJson[depType]) { for (const packageName of Object.keys(packageJson[depType])) { if (packageJson[depType][packageName] && newVersions[packageName]) { - packageJson[depType][packageName] = `^${newVersions[packageName]}`; + packageJson[depType][packageName] = newVersions[packageName]; } } } @@ -122,9 +122,9 @@ function updateDependencies(packageJson, newVersions) { function updateOverrides(overrides, newVersions, parent) { for (const name of Object.keys(overrides ?? {})) { if (typeof overrides[name] === 'string' && newVersions[name]) { - overrides[name] = `^${newVersions[name]}`; + overrides[name] = newVersions[name]; } else if (name === '.' && parent && newVersions[parent]) { - overrides[name] = `^${newVersions[name]}`; + overrides[name] = newVersions[name]; } else if (typeof overrides[name] === 'object') { updateOverrides(overrides[name], newVersions, name); } @@ -205,7 +205,7 @@ async function main() { return depToUpdate; }); - const newVersions = await withProgress( + let newVersions = await withProgress( `Collecting version information for packages...`, () => { return Promise.all( @@ -227,6 +227,13 @@ async function main() { ); console.log(); + newVersions = newVersions.map(([name, version]) => { + // When updating we always want to use version with a caret, this allows + // some flexibility for third parties that depend on compass deps to have + // some flexibility in transitive dependencies versions + return [name, `^${version}`]; + }); + const newVersionsObj = Object.fromEntries(newVersions); let hasChanged;