diff --git a/lib/manager/gradle-lite/extract.ts b/lib/manager/gradle-lite/extract.ts index cab54c04aa7d806defe9c5210b81518b7f5f5553..de218363413cdf7bc793c0345af92ce635f85bb3 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;