From c5852e7ea50c00c8b3caf78dae0b38d3de53b2ed Mon Sep 17 00:00:00 2001
From: Martin Herndl <martin.herndl@icis.com>
Date: Sat, 18 Dec 2021 22:06:36 +0100
Subject: [PATCH] feat(composer): support minor version on best-effort composer
 constraint extraction (#13187)

Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
---
 lib/manager/composer/utils.spec.ts | 4 ++--
 lib/manager/composer/utils.ts      | 6 ++++--
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/lib/manager/composer/utils.spec.ts b/lib/manager/composer/utils.spec.ts
index ff972e6a9f..76b3efb091 100644
--- a/lib/manager/composer/utils.spec.ts
+++ b/lib/manager/composer/utils.spec.ts
@@ -42,12 +42,12 @@ describe('manager/composer/utils', () => {
     it('returns from composer-runtime-api', () => {
       expect(
         extractContraints({ require: { 'composer-runtime-api': '^1.1.0' } }, {})
-      ).toEqual({ composer: '1.*' });
+      ).toEqual({ composer: '^1.1' });
     });
 
     it('returns from plugin-api-version', () => {
       expect(extractContraints({}, { 'plugin-api-version': '1.1.0' })).toEqual({
-        composer: '1.*',
+        composer: '^1.1',
       });
     });
 
diff --git a/lib/manager/composer/utils.ts b/lib/manager/composer/utils.ts
index 3841400c03..98f34bf2b4 100644
--- a/lib/manager/composer/utils.ts
+++ b/lib/manager/composer/utils.ts
@@ -80,12 +80,14 @@ export function extractContraints(
   // check last used composer version
   else if (lockParsed?.['plugin-api-version']) {
     const major = api.getMajor(lockParsed?.['plugin-api-version']);
-    res.composer = `${major}.*`;
+    const minor = api.getMinor(lockParsed?.['plugin-api-version']);
+    res.composer = `^${major}.${minor}`;
   }
   // check composer api dependency
   else if (composerJson.require?.['composer-runtime-api']) {
     const major = api.getMajor(composerJson.require?.['composer-runtime-api']);
-    res.composer = `${major}.*`;
+    const minor = api.getMinor(composerJson.require?.['composer-runtime-api']);
+    res.composer = `^${major}.${minor}`;
   }
   return res;
 }
-- 
GitLab