From 3d344c5001e26b8523d28d1e8f4fafbe46fdb28c Mon Sep 17 00:00:00 2001 From: Brian Vaughn Date: Thu, 19 Oct 2017 15:35:16 -0700 Subject: [PATCH 1/2] Release script no longer auto-updates peerDependencies react version --- scripts/release/build-commands/update-package-versions.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/scripts/release/build-commands/update-package-versions.js b/scripts/release/build-commands/update-package-versions.js index 3bc41a5370b..c2f3532e564 100644 --- a/scripts/release/build-commands/update-package-versions.js +++ b/scripts/release/build-commands/update-package-versions.js @@ -41,9 +41,6 @@ const update = async ({cwd, dry, version}) => { json.version = version; } - if (project !== 'react') { - json.peerDependencies.react = `^${version}`; - } await writeJson(path, json, {spaces: 2}); }; await Promise.all(projects.map(updateProjectPackage)); From 0bdaa47c098c723ff48d44a7e9de6e8bd7cdd26e Mon Sep 17 00:00:00 2001 From: Brian Vaughn Date: Fri, 20 Oct 2017 08:47:14 -0700 Subject: [PATCH 2/2] Release script ensures peer dep matches release major verion --- .../build-commands/update-package-versions.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/scripts/release/build-commands/update-package-versions.js b/scripts/release/build-commands/update-package-versions.js index c2f3532e564..84b0212e827 100644 --- a/scripts/release/build-commands/update-package-versions.js +++ b/scripts/release/build-commands/update-package-versions.js @@ -20,7 +20,7 @@ const update = async ({cwd, dry, version}) => { await writeJson(packagePath, rootPackage, {spaces: 2}); // Update ReactVersion source file - const reactVersionPath = join(cwd, 'packages/shared/src/ReactVersion.js'); + const reactVersionPath = join(cwd, 'packages/shared/ReactVersion.js'); const reactVersion = readFileSync(reactVersionPath, 'utf8').replace( /module\.exports = '[^']+';/, `module.exports = '${version}';` @@ -41,6 +41,16 @@ const update = async ({cwd, dry, version}) => { json.version = version; } + if (project !== 'react') { + const peerVersion = json.peerDependencies.react.replace('^', ''); + + // Release engineers can manually update minor and bugfix versions, + // But we should ensure that major versions always match. + if (semver.major(version) !== semver.major(peerVersion)) { + json.peerDependencies.react = `^${semver.major(version)}.0.0`; + } + } + await writeJson(path, json, {spaces: 2}); }; await Promise.all(projects.map(updateProjectPackage));