From d650427319e0568fba68ea9edea8cd93e4a97a13 Mon Sep 17 00:00:00 2001
From: Sergio Zharinov <zharinov@users.noreply.github.com>
Date: Thu, 6 Feb 2020 19:29:50 +0400
Subject: [PATCH] fix(composer): Remove leading `v` in comparison (#5396)

---
 lib/versioning/composer/index.ts | 8 ++++++--
 test/versioning/composer.spec.ts | 9 +++++++++
 2 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/lib/versioning/composer/index.ts b/lib/versioning/composer/index.ts
index 721c58515f..d1f7b686d3 100644
--- a/lib/versioning/composer/index.ts
+++ b/lib/versioning/composer/index.ts
@@ -11,8 +11,12 @@ function padZeroes(input: string): string {
   return sections.join('.');
 }
 
+function removeLeadingV(input: string): string {
+  return input.replace(/^v/i, '');
+}
+
 function composer2npm(input: string): string {
-  const cleanInput = input.replace(/^v/, '');
+  const cleanInput = removeLeadingV(input);
   if (npm.isVersion(cleanInput)) {
     return cleanInput;
   }
@@ -83,7 +87,7 @@ function getNewValue({
   } else if (
     npm.isVersion(padZeroes(toVersion)) &&
     npm.isValid(currentValue) &&
-    composer2npm(currentValue) === currentValue
+    composer2npm(currentValue) === removeLeadingV(currentValue)
   ) {
     newValue = npm.getNewValue({
       currentValue,
diff --git a/test/versioning/composer.spec.ts b/test/versioning/composer.spec.ts
index 4496b70b6f..6097d526b4 100644
--- a/test/versioning/composer.spec.ts
+++ b/test/versioning/composer.spec.ts
@@ -257,5 +257,14 @@ describe('semver.getNewValue()', () => {
         toVersion: '3.7',
       })
     ).toEqual('3.7.*');
+
+    expect(
+      semver.getNewValue({
+        currentValue: 'v3.1.*',
+        rangeStrategy: 'replace',
+        fromVersion: '3.1.10',
+        toVersion: '3.2.0',
+      })
+    ).toEqual('v3.2.*'); // #5388
   });
 });
-- 
GitLab