From f931d9b148b18197df18bd4c0c6f744a35d56f37 Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Mon, 23 May 2022 06:27:49 +0200
Subject: [PATCH] fix(grouping): group update with same major version should be
 ignorable (#15586)

---
 .../repository/updates/generate.spec.ts       | 34 +++++++++++++++++++
 lib/workers/repository/updates/generate.ts    |  7 +++-
 2 files changed, 40 insertions(+), 1 deletion(-)

diff --git a/lib/workers/repository/updates/generate.spec.ts b/lib/workers/repository/updates/generate.spec.ts
index b3e48d68e0..5e3417ac5f 100644
--- a/lib/workers/repository/updates/generate.spec.ts
+++ b/lib/workers/repository/updates/generate.spec.ts
@@ -190,6 +190,40 @@ describe('workers/repository/updates/generate', () => {
       });
     });
 
+    it('groups major updates with different versions but same newValue, no recreateClosed', () => {
+      const branch = [
+        {
+          depName: 'some-dep',
+          groupName: 'some-group',
+          branchName: 'some-branch',
+          prTitle: 'some-title',
+          commitMessageExtra:
+            'to {{#if isMajor}}v{{newMajor}}{{else}}{{#unless isRange}}v{{/unless}}{{newValue}}{{/if}}',
+          foo: 1,
+          newValue: '5.1.2',
+          newVersion: '5.1.2',
+          isMajor: true,
+          newMajor: 5,
+        },
+        {
+          depName: 'some-other-dep',
+          groupName: 'some-group',
+          branchName: 'some-branch',
+          prTitle: 'some-title',
+          commitMessageExtra:
+            'to {{#if isMajor}}v{{newMajor}}{{else}}{{#unless isRange}}v{{/unless}}{{newValue}}{{/if}}',
+          foo: 1,
+          newValue: '5.2.0',
+          newVersion: '5.2.0',
+          isMajor: true,
+          newMajor: 5,
+        },
+      ];
+      const res = generateBranchConfig(branch);
+      expect(res.groupName).toBeDefined();
+      expect(res.recreateClosed).toBeFalsy();
+    });
+
     it('groups multiple upgrades different version', () => {
       const branch = [
         {
diff --git a/lib/workers/repository/updates/generate.ts b/lib/workers/repository/updates/generate.ts
index 0d197c8ea0..f3df4f7312 100644
--- a/lib/workers/repository/updates/generate.ts
+++ b/lib/workers/repository/updates/generate.ts
@@ -149,7 +149,12 @@ export function generateBranchConfig(
     delete upgrade.group;
 
     // istanbul ignore else
-    if (toVersions.length > 1 && toValues.size > 1 && !typesGroup) {
+    if (
+      toVersions.length > 1 &&
+      toValues.size > 1 &&
+      newValue.length > 1 &&
+      !typesGroup
+    ) {
       logger.trace({ toVersions });
       logger.trace({ toValues });
       delete upgrade.commitMessageExtra;
-- 
GitLab