From ec104ac19e350c4df7cf94849aa412b2e126642c Mon Sep 17 00:00:00 2001
From: Sergei Zharinov <zharinov@users.noreply.github.com>
Date: Tue, 12 Jan 2021 17:42:02 +0400
Subject: [PATCH] fix(gradle-lite): Upgrade deps in reverse order for grouped
 dependencies (#8263)

---
 lib/manager/gradle-lite/extract.ts | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/lib/manager/gradle-lite/extract.ts b/lib/manager/gradle-lite/extract.ts
index cab54c04aa..de21836341 100644
--- a/lib/manager/gradle-lite/extract.ts
+++ b/lib/manager/gradle-lite/extract.ts
@@ -13,6 +13,21 @@ import {
   toAbsolutePath,
 } from './utils';
 
+// Enables reverse sorting in generateBranchConfig()
+//
+// Required for grouped dependencies to be upgraded
+// correctly in single branch.
+//
+// https://github.com/renovatebot/renovate/issues/8224
+function elevateFileReplacePositionField(
+  deps: PackageDependency<ManagerData>[]
+): PackageDependency<ManagerData>[] {
+  return deps.map((dep) => ({
+    ...dep,
+    fileReplacePosition: dep?.managerData?.fileReplacePosition,
+  }));
+}
+
 export async function extractAllPackageFiles(
   config: ExtractConfig,
   packageFiles: string[]
@@ -57,7 +72,7 @@ export async function extractAllPackageFiles(
     return null;
   }
 
-  extractedDeps.forEach((dep) => {
+  elevateFileReplacePositionField(extractedDeps).forEach((dep) => {
     const key = dep.managerData.packageFile;
     const pkgFile: PackageFile = packageFilesByName[key];
     const { deps } = pkgFile;
-- 
GitLab