From 6ae9a9159a6f0d17f9a0e655d6d6d54b237c5b4c Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Sat, 20 Oct 2018 06:16:15 +0200
Subject: [PATCH] fix(composer): lazy evaluate fromVersion major

---
 lib/versioning/semver-composer/index.js | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/lib/versioning/semver-composer/index.js b/lib/versioning/semver-composer/index.js
index c1d5b6564c..064caee420 100644
--- a/lib/versioning/semver-composer/index.js
+++ b/lib/versioning/semver-composer/index.js
@@ -55,7 +55,6 @@ const minSatisfyingVersion = (versions, range) =>
   semver.minSatisfyingVersion(versions.map(composer2npm), composer2npm(range));
 
 function getNewValue(currentValue, rangeStrategy, fromVersion, toVersion) {
-  const fromMajor = getMajor(fromVersion);
   const toMajor = getMajor(toVersion);
   const toMinor = getMinor(toVersion);
   let newValue;
@@ -84,7 +83,7 @@ function getNewValue(currentValue, rangeStrategy, fromVersion, toVersion) {
     newValue = `~${toMajor}`;
   } else if (currentValue.match(/^~([0-9]*(?:\.[0-9]*)?)$/)) {
     // handle ~4.1 case
-    if (toMajor > fromMajor) {
+    if (fromVersion && toMajor > getMajor(fromVersion)) {
       newValue = `~${toMajor}.0`;
     } else {
       newValue = `~${toMajor}.${toMinor}`;
-- 
GitLab