renovatebot / renovate

Home of the Renovate CLI: Cross-platform Dependency Automation by Mend.io
https://mend.io/renovate
GNU Affero General Public License v3.0
17.41k stars 2.28k forks source link

Gradle in Subdirectory not Updated if there is Gradle on the Top Level #5377

Closed jGleitz closed 2 years ago

jGleitz commented 4 years ago

What Renovate type are you using?

GitHub app

Describe the bug

If a project has a gradle build at the top level, but also independent gradle builds in subdirectories, the ones in the subdirectories are not updated.

You can see this bug in this test repository: jGleitz/renovate-multiple-gradle-projects-test. There should be a Pull Request to update kbox in independent-sub/build.gradle.kts, however, renovate doesn’t create one.

Note that renovate does updated the gradle wrapper in independent-sub! See https://github.com/jGleitz/renovate-multiple-gradle-projects-test/pull/2.

https://github.com/renovatebot/renovate/issues/3537 suggests that gradle in subdirectories is supposed to be supported.

Did you see anything helpful in debug logs?

Renovate finds all relevant gradle files:

Matched 5 file(s) for manager gradle: build.gradle.kts, independent-sub/build.gradle.kts, independent-sub/settings.gradle.kts, settings.gradle.kts, sub1/build.gradle.kts

however, it only starts gradle for the top-level.

Full Log (Job #138286356) ``` INFO: Renovating repository { "renovateVersion": "19.118.0" } DEBUG: Using localDir: /mnt/renovate/gh/jGleitz/renovate-multiple-gradle-projects-test DEBUG: initRepo("jGleitz/renovate-multiple-gradle-projects-test") DEBUG: jGleitz/renovate-multiple-gradle-projects-test owner = jGleitz DEBUG: jGleitz/renovate-multiple-gradle-projects-test default branch = master DEBUG: Using app token for git init INFO: Initialising git repository into /mnt/renovate/gh/jGleitz/renovate-multiple-gradle-projects-test INFO: git clone completed { "cloneSeconds": 0.8 } DEBUG: latest commit { "latestCommitDate": "2020-02-05 00:12:06 +0200" } DEBUG: Git private key configured, but not being set INFO: Setting git author { "gitAuthor": { "name": "Renovate Bot", "email": "bot@renovateapp.com" } } DEBUG: resetMemCache() DEBUG: detectSemanticCommits() DEBUG: getCommitMessages DEBUG: Semantic commits detection: unknown DEBUG: No semantic commits detected DEBUG: checkOnboarding() DEBUG: isOnboarded() DEBUG: findFile(renovate.json) DEBUG: config file exists DEBUG: ensureIssueClosing(Action required: Add a Renovate config) DEBUG: Retrieving issueList DEBUG: Retrieved 0 issues DEBUG: Repo is onboarded DEBUG: Found renovate.json config file INFO: Repository config { "configFile": "renovate.json", "config": { "extends": [ "config:base" ], "assignees": [ "jGleitz" ] } } DEBUG: migrateAndValidate() DEBUG: No config migration necessary DEBUG: massaged config { "config": { "extends": [ "config:base" ], "assignees": [ "jGleitz" ] } } DEBUG: migrated config { "config": { "extends": [ "config:base" ], "assignees": [ "jGleitz" ] } } DEBUG: Found repo ignorePaths { "ignorePaths": [ "**/node_modules/**", "**/bower_components/**", "**/vendor/**", "**/examples/**", "**/__tests__/**", "**/test/**", "**/tests/**" ] } DEBUG: checkBaseBranch() DEBUG: config.repoIsOnboarded=true DEBUG: Setting baseBranch to master DEBUG: latest commit { "branchName": "master", "latestCommitDate": "2020-02-05 00:12:06 +0200" } DEBUG: Setting branchPrefix: renovate/ DEBUG: No vulnerability alerts found DEBUG: processRepo() DEBUG: No baseBranches DEBUG: extractAndUpdate() DEBUG: Using file match: (^|/)tasks/[^/]+\.ya?ml$ for manager ansible DEBUG: Using file match: (^|/)WORKSPACE$ for manager bazel DEBUG: Using file match: \.bzl$ for manager bazel DEBUG: Using file match: buildkite\.ya?ml for manager buildkite DEBUG: Using file match: \.buildkite/.+\.ya?ml$ for manager buildkite DEBUG: Using file match: (^|/)Gemfile$ for manager bundler DEBUG: cargo is disabled DEBUG: Using file match: (^|/).circleci/config.yml$ for manager circleci DEBUG: Using file match: (^|/)([\w-]*)composer.json$ for manager composer DEBUG: Using file match: (^|/)deps\.edn$ for manager deps-edn DEBUG: Using file match: (^|/)docker-compose[^/]*\.ya?ml$ for manager docker-compose DEBUG: Using file match: (^|/)Dockerfile$ for manager dockerfile DEBUG: Using file match: (^|/)Dockerfile\.[^/]*$ for manager dockerfile DEBUG: Using file match: (^|/).drone.yml$ for manager droneci DEBUG: git-submodules is disabled DEBUG: github-actions is disabled DEBUG: Using file match: ^\.gitlab-ci\.yml$ for manager gitlabci DEBUG: Using file match: ^\.gitlab-ci\.yml$ for manager gitlabci-include DEBUG: Using file match: (^|/)go.mod$ for manager gomod DEBUG: Using file match: \.gradle(\.kts)?$ for manager gradle DEBUG: Using file match: (^|/)gradle.properties$ for manager gradle DEBUG: Matched 5 file(s) for manager gradle: build.gradle.kts, independent-sub/build.gradle.kts, independent-sub/settings.gradle.kts, settings.gradle.kts, sub1/build.gradle.kts INFO: Extracting dependencies from all gradle files DEBUG: Creating renovate-plugin.gradle file with renovate gradle plugin DEBUG: Start gradle command { "cmd": "docker run --rm -v \"/mnt/renovate/gh/jGleitz/renovate-multiple-gradle-projects-test\":\"/mnt/renovate/gh/jGleitz/renovate-multiple-gradle-projects-test\" -w \"/mnt/renovate/gh/jGleitz/renovate-multiple-gradle-projects-test\" renovate/gradle gradle --init-script renovate-plugin.gradle renovate" } DEBUG: exec completed { "cmd": "docker run --rm -v \"/mnt/renovate/gh/jGleitz/renovate-multiple-gradle-projects-test\":\"/mnt/renovate/gh/jGleitz/renovate-multiple-gradle-projects-test\" -w \"/mnt/renovate/gh/jGleitz/renovate-multiple-gradle-projects-test\" renovate/gradle gradle --init-script renovate-plugin.gradle renovate", "seconds": 208, "stdout": "To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: https://docs.gradle.org/5.6.4/userguide/gradle_daemon.html.\nDaemon will be stopped at the end of the build stopping after processing\nConfiguration on demand is an incubating feature.\n> Task :renovate\n> Task :sub1:renovate\n\nBUILD SUCCESSFUL in 3m 24s\n2 actionable tasks: 2 executed\n", "stderr": "" } DEBUG: To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: https://docs.gradle.org/5.6.4/userguide/gradle_daemon.html. Daemon will be stopped at the end of the build stopping after processing Configuration on demand is an incubating feature. > Task :renovate > Task :sub1:renovate BUILD SUCCESSFUL in 3m 24s 2 actionable tasks: 2 executed INFO: Gradle report complete INFO: Found gradle package files DEBUG: Using file match: (^|/)gradle/wrapper/gradle-wrapper.properties$ for manager gradle-wrapper DEBUG: Matched 2 file(s) for manager gradle-wrapper: gradle/wrapper/gradle-wrapper.properties, independent-sub/gradle/wrapper/gradle-wrapper.properties DEBUG: gradle-wrapper.extractPackageFile() INFO: Gradle Wrapper(depType="gradle-wrapper") { "datasource": "gradleVersion", "depName": "gradle", "currentValue": "6.1.1", "managerData": { "lineNumber": 2, "gradleWrapperType": "bin" }, "versionScheme": "semver" } DEBUG: gradle-wrapper.extractPackageFile() INFO: Gradle Wrapper(depType="gradle-wrapper") { "datasource": "gradleVersion", "depName": "gradle", "currentValue": "6.1.1", "managerData": { "lineNumber": 2, "gradleWrapperType": "bin" }, "versionScheme": "semver" } INFO: Found gradle-wrapper package files DEBUG: Using file match: (^|/)requirements.yaml$ for manager helm-requirements DEBUG: Using file match: (^|/)helmfile.yaml$ for manager helmfile DEBUG: Using file match: ^Formula/[^/]+[.]rb$ for manager homebrew DEBUG: Using file match: (^|/)project\.clj$ for manager leiningen DEBUG: Using file match: \.pom\.xml$ for manager maven DEBUG: Using file match: (^|/)pom\.xml$ for manager maven DEBUG: Using file match: (^|/)package.js$ for manager meteor DEBUG: Using file match: (^|/)mix\.exs$ for manager mix DEBUG: Using file match: (^|/)package.json$ for manager npm DEBUG: Using file match: \.(?:cs|fs|vb)proj$ for manager nuget DEBUG: Using file match: ^.nvmrc$ for manager nvm DEBUG: Using file match: (^|/)([\w-]*)requirements.(txt|pip)$ for manager pip_requirements DEBUG: Using file match: (^|/)setup.py$ for manager pip_setup DEBUG: pipenv is disabled DEBUG: Using file match: (^|/)pyproject\.toml$ for manager poetry DEBUG: Using file match: (^|/)pubspec\.ya?ml$ for manager pub DEBUG: Using file match: \.sbt$ for manager sbt DEBUG: Using file match: project/[^/]*.scala$ for manager sbt DEBUG: Using file match: (^|/)Package\.swift for manager swift DEBUG: Using file match: \.tf$ for manager terraform DEBUG: Using file match: ^.travis.yml$ for manager travis DEBUG: Using file match: (^|/)\.ruby-version$ for manager ruby-version DEBUG: Found 7 package file(s) DEBUG: manager.fetchUpdates() DEBUG: Found 2 repositories for org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin DEBUG: Looking up org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin in repository #0 - https://jcenter.bintray.com/ DEBUG: Found 2 repositories for org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable DEBUG: Looking up org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable in repository #0 - https://jcenter.bintray.com/ DEBUG: Found 2 repositories for ch.tutteli.atrium:atrium-fluent-en_GB DEBUG: Looking up ch.tutteli.atrium:atrium-fluent-en_GB in repository #0 - https://jcenter.bintray.com/ DEBUG: Url not found { "failedUrl": "https://jcenter.bintray.com/org/jetbrains/kotlin/jvm/org.jetbrains.kotlin.jvm.gradle.plugin/maven-metadata.xml" } DEBUG: org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin not found in repository https://jcenter.bintray.com/ DEBUG: Looking up org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin in repository #1 - https://plugins.gradle.org/m2/ DEBUG: Found 18 new versions for org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable in repository https://jcenter.bintray.com/ DEBUG: Looking up org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable in repository #1 - https://plugins.gradle.org/m2/ DEBUG: Found 4 new versions for ch.tutteli.atrium:atrium-fluent-en_GB in repository https://jcenter.bintray.com/ DEBUG: Looking up ch.tutteli.atrium:atrium-fluent-en_GB in repository #1 - https://plugins.gradle.org/m2/ DEBUG: Found 0 new versions for org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable in repository https://plugins.gradle.org/m2/ DEBUG: Found 18 versions for org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable DEBUG: Found 46 new versions for org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin in repository https://plugins.gradle.org/m2/ DEBUG: Found 46 versions for org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin DEBUG: Found 0 new versions for ch.tutteli.atrium:atrium-fluent-en_GB in repository https://plugins.gradle.org/m2/ DEBUG: Found 4 versions for ch.tutteli.atrium:atrium-fluent-en_GB DEBUG: packageFiles with updates { "config": { "gradle": [ { "packageFile": "build.gradle.kts", "datasource": "maven", "deps": [ { "name": "org.jetbrains.kotlin.jvm.gradle.plugin", "depGroup": "org.jetbrains.kotlin.jvm", "depName": "org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin", "currentValue": "1.3.61", "registryUrls": [ "https://jcenter.bintray.com/", "https://plugins.gradle.org/m2" ], "updates": [], "warnings": [], "sourceUrl": null }, { "name": "kotlin-scripting-compiler-embeddable", "depGroup": "org.jetbrains.kotlin", "depName": "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable", "currentValue": "1.3.61", "registryUrls": [ "https://jcenter.bintray.com/", "https://plugins.gradle.org/m2" ], "updates": [], "warnings": [], "sourceUrl": "https://github.com/JetBrains/kotlin", "homepage": "https://kotlinlang.org/" }, { "name": "atrium-fluent-en_GB", "depGroup": "ch.tutteli.atrium", "depName": "ch.tutteli.atrium:atrium-fluent-en_GB", "currentValue": "0.9.0", "registryUrls": [ "https://jcenter.bintray.com/", "https://plugins.gradle.org/m2" ], "updates": [ { "fromVersion": "0.9.0", "toVersion": "0.9.1", "newValue": "0.9.1", "newMajor": 0, "newMinor": 9, "updateType": "minor", "isSingleVersion": true } ], "warnings": [], "sourceUrl": "https://github.com/robstoll/atrium" } ] }, { "packageFile": "independent-sub/build.gradle.kts", "datasource": "maven", "deps": [ { "name": "org.jetbrains.kotlin.jvm.gradle.plugin", "depGroup": "org.jetbrains.kotlin.jvm", "depName": "org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin", "currentValue": "1.3.61", "registryUrls": [ "https://jcenter.bintray.com/", "https://plugins.gradle.org/m2" ], "updates": [], "warnings": [], "sourceUrl": null }, { "name": "kotlin-scripting-compiler-embeddable", "depGroup": "org.jetbrains.kotlin", "depName": "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable", "currentValue": "1.3.61", "registryUrls": [ "https://jcenter.bintray.com/", "https://plugins.gradle.org/m2" ], "updates": [], "warnings": [], "sourceUrl": "https://github.com/JetBrains/kotlin", "homepage": "https://kotlinlang.org/" }, { "name": "atrium-fluent-en_GB", "depGroup": "ch.tutteli.atrium", "depName": "ch.tutteli.atrium:atrium-fluent-en_GB", "currentValue": "0.9.0", "registryUrls": [ "https://jcenter.bintray.com/", "https://plugins.gradle.org/m2" ], "updates": [ { "fromVersion": "0.9.0", "toVersion": "0.9.1", "newValue": "0.9.1", "newMajor": 0, "newMinor": 9, "updateType": "minor", "isSingleVersion": true } ], "warnings": [], "sourceUrl": "https://github.com/robstoll/atrium" } ] }, { "packageFile": "independent-sub/settings.gradle.kts", "datasource": "maven", "deps": [ { "name": "org.jetbrains.kotlin.jvm.gradle.plugin", "depGroup": "org.jetbrains.kotlin.jvm", "depName": "org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin", "currentValue": "1.3.61", "registryUrls": [ "https://jcenter.bintray.com/", "https://plugins.gradle.org/m2" ], "updates": [], "warnings": [], "sourceUrl": null }, { "name": "kotlin-scripting-compiler-embeddable", "depGroup": "org.jetbrains.kotlin", "depName": "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable", "currentValue": "1.3.61", "registryUrls": [ "https://jcenter.bintray.com/", "https://plugins.gradle.org/m2" ], "updates": [], "warnings": [], "sourceUrl": "https://github.com/JetBrains/kotlin", "homepage": "https://kotlinlang.org/" }, { "name": "atrium-fluent-en_GB", "depGroup": "ch.tutteli.atrium", "depName": "ch.tutteli.atrium:atrium-fluent-en_GB", "currentValue": "0.9.0", "registryUrls": [ "https://jcenter.bintray.com/", "https://plugins.gradle.org/m2" ], "updates": [ { "fromVersion": "0.9.0", "toVersion": "0.9.1", "newValue": "0.9.1", "newMajor": 0, "newMinor": 9, "updateType": "minor", "isSingleVersion": true } ], "warnings": [], "sourceUrl": "https://github.com/robstoll/atrium" } ] }, { "packageFile": "settings.gradle.kts", "datasource": "maven", "deps": [ { "name": "org.jetbrains.kotlin.jvm.gradle.plugin", "depGroup": "org.jetbrains.kotlin.jvm", "depName": "org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin", "currentValue": "1.3.61", "registryUrls": [ "https://jcenter.bintray.com/", "https://plugins.gradle.org/m2" ], "updates": [], "warnings": [], "sourceUrl": null }, { "name": "kotlin-scripting-compiler-embeddable", "depGroup": "org.jetbrains.kotlin", "depName": "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable", "currentValue": "1.3.61", "registryUrls": [ "https://jcenter.bintray.com/", "https://plugins.gradle.org/m2" ], "updates": [], "warnings": [], "sourceUrl": "https://github.com/JetBrains/kotlin", "homepage": "https://kotlinlang.org/" }, { "name": "atrium-fluent-en_GB", "depGroup": "ch.tutteli.atrium", "depName": "ch.tutteli.atrium:atrium-fluent-en_GB", "currentValue": "0.9.0", "registryUrls": [ "https://jcenter.bintray.com/", "https://plugins.gradle.org/m2" ], "updates": [ { "fromVersion": "0.9.0", "toVersion": "0.9.1", "newValue": "0.9.1", "newMajor": 0, "newMinor": 9, "updateType": "minor", "isSingleVersion": true } ], "warnings": [], "sourceUrl": "https://github.com/robstoll/atrium" } ] }, { "packageFile": "sub1/build.gradle.kts", "datasource": "maven", "deps": [ { "name": "org.jetbrains.kotlin.jvm.gradle.plugin", "depGroup": "org.jetbrains.kotlin.jvm", "depName": "org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin", "currentValue": "1.3.61", "registryUrls": [ "https://jcenter.bintray.com/", "https://plugins.gradle.org/m2" ], "updates": [], "warnings": [], "sourceUrl": null }, { "name": "kotlin-scripting-compiler-embeddable", "depGroup": "org.jetbrains.kotlin", "depName": "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable", "currentValue": "1.3.61", "registryUrls": [ "https://jcenter.bintray.com/", "https://plugins.gradle.org/m2" ], "updates": [], "warnings": [], "sourceUrl": "https://github.com/JetBrains/kotlin", "homepage": "https://kotlinlang.org/" }, { "name": "atrium-fluent-en_GB", "depGroup": "ch.tutteli.atrium", "depName": "ch.tutteli.atrium:atrium-fluent-en_GB", "currentValue": "0.9.0", "registryUrls": [ "https://jcenter.bintray.com/", "https://plugins.gradle.org/m2" ], "updates": [ { "fromVersion": "0.9.0", "toVersion": "0.9.1", "newValue": "0.9.1", "newMajor": 0, "newMinor": 9, "updateType": "minor", "isSingleVersion": true } ], "warnings": [], "sourceUrl": "https://github.com/robstoll/atrium" } ] } ], "gradle-wrapper": [ { "packageFile": "gradle/wrapper/gradle-wrapper.properties", "manager": "gradle-wrapper", "deps": [ { "datasource": "gradleVersion", "depType": "gradle-wrapper", "depName": "gradle", "currentValue": "6.1.1", "managerData": { "lineNumber": 2, "gradleWrapperType": "bin" }, "versionScheme": "semver", "updates": [], "warnings": [], "sourceUrl": "https://github.com/gradle/gradle", "homepage": "https://gradle.org" } ] }, { "packageFile": "independent-sub/gradle/wrapper/gradle-wrapper.properties", "manager": "gradle-wrapper", "deps": [ { "datasource": "gradleVersion", "depType": "gradle-wrapper", "depName": "gradle", "currentValue": "6.1.1", "managerData": { "lineNumber": 2, "gradleWrapperType": "bin" }, "versionScheme": "semver", "updates": [], "warnings": [], "sourceUrl": "https://github.com/gradle/gradle", "homepage": "https://gradle.org" } ] } ] } } DEBUG: branchifyUpgrades DEBUG: 5 flattened updates found: ch.tutteli.atrium:atrium-fluent-en_GB, ch.tutteli.atrium:atrium-fluent-en_GB, ch.tutteli.atrium:atrium-fluent-en_GB, ch.tutteli.atrium:atrium-fluent-en_GB, ch.tutteli.atrium:atrium-fluent-en_GB DEBUG: Returning 1 branch(es) DEBUG: generateBranchConfig(5)(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: hasGroupName: false(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: groupEligible: false(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: useGroupSettings: false(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: config.repoIsOnboarded=true INFO: Processing 1 branch: renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x DEBUG: Calculating hourly PRs remaining DEBUG: Retrieving PR list DEBUG: Retrieved 2 Pull Requests DEBUG: currentHourStart=1580900400000 DEBUG: PR hourly limit remaining: 2 DEBUG: Enforcing prConcurrentLimit (20) DEBUG: 1 PRs are currently open DEBUG: PR concurrent limit remaining: 19 DEBUG: processBranch with 5 upgrades(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: Setting baseBranch to master(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: latest commit(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") { "branchName": "master", "latestCommitDate": "2020-02-05 00:12:06 +0200" } DEBUG: getBranchPr(renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x)(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: findPr(renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x, undefined, open)(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: Found PR #1(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: Returning from graphql open PR list(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: branchExists=true(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: Branch pr rebase requested: false(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: Branch has 1 upgrade(s)(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: Checking if PR has been edited(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: Found existing branch PR(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: Checking schedule(at any time, null)(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: No schedule defined(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: Branch already exists(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: getBranchPr(renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x)(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: findPr(renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x, undefined, open)(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: Found PR #1(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: Returning from graphql open PR list(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: No branch protection found(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: Branch does not need rebasing(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: Using parentBranch: renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: manager.getUpdatedPackageFiles()(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: gradle.updateDependency(): packageFile:sub1/build.gradle.kts depName:ch.tutteli.atrium:atrium-fluent-en_GB, version:0.9.0 ==> 0.9.1(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: gradle.updateDependency(): packageFile:settings.gradle.kts depName:ch.tutteli.atrium:atrium-fluent-en_GB, version:0.9.0 ==> 0.9.1(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: gradle.updateDependency(): packageFile:independent-sub/settings.gradle.kts depName:ch.tutteli.atrium:atrium-fluent-en_GB, version:0.9.0 ==> 0.9.1(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: gradle.updateDependency(): packageFile:independent-sub/build.gradle.kts depName:ch.tutteli.atrium:atrium-fluent-en_GB, version:0.9.0 ==> 0.9.1(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: gradle.updateDependency(): packageFile:build.gradle.kts depName:ch.tutteli.atrium:atrium-fluent-en_GB, version:0.9.0 ==> 0.9.1(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: No package files need updating(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: No updated lock files in branch(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: No files to commit(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: Checking if we can automerge branch(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: mergeStatus=no automerge(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: Ensuring PR(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: There are 0 errors and 0 warnings(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: getBranchPr(renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x)(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: findPr(renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x, undefined, open)(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: Found PR #1(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: Returning from graphql open PR list(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: Found existing PR(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: Processing existing PR(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: Pull Request #1 does not need updating(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: Checking #1 for automerge(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") { "automerge": false, "automergeType": "pr", "automergeComment": "automergeComment" } DEBUG: No automerge(branch="renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x") DEBUG: branchPrefix: renovate/ DEBUG: Found 0 Renovate PRs { "renovatePrs": [] } DEBUG: Removing any stale branches DEBUG: config.repoIsOnboarded=true DEBUG: Branch lists { "branchList": [ "renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x" ], "renovateBranches": [ "renovate/ch.tutteli.atrium-atrium-fluent-en_gb-0.x" ] } DEBUG: remainingBranches= DEBUG: No branches to clean up DEBUG: ensureIssueClosing(Action Required: Fix Renovate Configuration) INFO: Finished repository ```

To Reproduce

See https://github.com/jGleitz/renovate-multiple-gradle-projects-test

Additional context

I think renovate should apply the following logic:

rarkins commented 4 years ago

@ikesyo do you have any thoughts on this?

ikesyo commented 4 years ago

We only support (at least for now) extracting/updating dependencies through only one root build.gradle: https://github.com/renovatebot/renovate/blob/2ffad1363e42fdf0583cc98aa9fba5bfebf4b6f0/lib/manager/gradle/index.ts#L100-L131

Note that renovate does updated the gradle wrapper in independent-sub!

gradle-wrapper is different manager from gradle.

rarkins commented 4 years ago

@ikesyo do you think that our current approach could "easily" be extended to call gradle more than once as @jGleitz suggested, or would you consider it to be an architectural limitation right now?

jGleitz commented 4 years ago

I am under the impression that the logic I suggest could be implemented without significant architectural changes (albeit probably needing significant code changes). I would give it a shot if you agree that it should be implemented.

rarkins commented 4 years ago

@jGleitz yes, I think it would be great to have and I don't see any reason not to. If there's a lot of code changes, perhaps you can first submit a refactor-only PR that restructures the code as you need but keeps things otherwise the same? Then a second PR after that can be for adding the capability you need.

ikesyo commented 4 years ago

@jGleitz @rarkins I agree with you 👍

rarkins commented 4 years ago

As a workaround it might be possible to add a custom rule using our new regex-based manager: https://docs.renovatebot.com/modules/manager/regex/

Depends how complex your dependency definitions are of course

MorrisonCole commented 4 years ago

As a workaround it might be possible to add a custom rule using our new regex-based manager: https://docs.renovatebot.com/modules/manager/regex/

Depends how complex your dependency definitions are of course

Just in case it helps anyone, I looked into doing this but even approximating the existing functionality is a bit tricky (see: existing regexes). Probably easier just to submit a PR here. If I get time I'll try to do that!

For now I've worked around it by simply defining / applying all dependencies from the root of the build.

Edit: what's weird is that this works for one of our submodules, but not another 🤔

Edit 2: here are my logs for an example dependency that failed to upgrade - it found the new version, but couldn't apply it to the submodule it existed in for some reason:

DEBUG: processBranch with 10 upgrades(branch="renovate/com.auth0-auth0-1.x")
DEBUG: Setting baseBranch to dev(branch="renovate/com.auth0-auth0-1.x")
DEBUG: latest commit(branch="renovate/com.auth0-auth0-1.x")
{
  "branchName": "myBranch",
  "latestCommitDate": "2020-05-08 11:33:39 +0900"
}
DEBUG: getBranchPr(renovate/com.auth0-auth0-1.x)(branch="renovate/com.auth0-auth0-1.x")
DEBUG: findPr(renovate/com.auth0-auth0-1.x, undefined, open)(branch="renovate/com.auth0-auth0-1.x")
DEBUG: branchExists=false(branch="renovate/com.auth0-auth0-1.x")
DEBUG: Branch has 1 upgrade(s)(branch="renovate/com.auth0-auth0-1.x")
DEBUG: recreateClosed is false(branch="renovate/com.auth0-auth0-1.x")
DEBUG: findPr(renovate/com.auth0-auth0-1.x, Update dependency com.auth0:auth0 to v1.16.0, !open)(branch="renovate/com.auth0-auth0-1.x")
DEBUG: prAlreadyExisted=false(branch="renovate/com.auth0-auth0-1.x")
DEBUG: Checking schedule(at any time, Asia/Tokyo)(branch="renovate/com.auth0-auth0-1.x")
DEBUG: No schedule defined(branch="renovate/com.auth0-auth0-1.x")
DEBUG: Branch needs creating(branch="renovate/com.auth0-auth0-1.x")
DEBUG: Using parentBranch: undefined(branch="renovate/com.auth0-auth0-1.x")
DEBUG: manager.getUpdatedPackageFiles()(branch="renovate/com.auth0-auth0-1.x")
DEBUG: gradle.updateDependency(): packageFile:gradle.properties depName:com.auth0:auth0, version:1.15.0 ==> 1.16.0(branch="renovate/com.auth0-auth0-1.x")
DEBUG: gradle.updateDependency(): packageFile:settings.gradle.kts depName:com.auth0:auth0, version:1.15.0 ==> 1.16.0(branch="renovate/com.auth0-auth0-1.x")
DEBUG: gradle.updateDependency(): packageFile:subModuleA/build.gradle.kts depName:com.auth0:auth0, version:1.15.0 ==> 1.16.0(branch="renovate/com.auth0-auth0-1.x")
DEBUG: gradle.updateDependency(): packageFile:subModuleB/build.gradle.kts depName:com.auth0:auth0, version:1.15.0 ==> 1.16.0(branch="renovate/com.auth0-auth0-1.x")
DEBUG: gradle.updateDependency(): packageFile:subModuleC/build.gradle.kts depName:com.auth0:auth0, version:1.15.0 ==> 1.16.0(branch="renovate/com.auth0-auth0-1.x")
DEBUG: gradle.updateDependency(): packageFile:subModuleD/build.gradle.kts depName:com.auth0:auth0, version:1.15.0 ==> 1.16.0(branch="renovate/com.auth0-auth0-1.x")
DEBUG: gradle.updateDependency(): packageFile:subModuleE/build.gradle.kts depName:com.auth0:auth0, version:1.15.0 ==> 1.16.0(branch="renovate/com.auth0-auth0-1.x")
DEBUG: gradle.updateDependency(): packageFile:subModuleF/build.gradle.kts depName:com.auth0:auth0, version:1.15.0 ==> 1.16.0(branch="renovate/com.auth0-auth0-1.x")
DEBUG: gradle.updateDependency(): packageFile:subModuleG/build.gradle.kts depName:com.auth0:auth0, version:1.15.0 ==> 1.16.0(branch="renovate/com.auth0-auth0-1.x")
DEBUG: gradle.updateDependency(): packageFile:build.gradle.kts depName:com.auth0:auth0, version:1.15.0 ==> 1.16.0(branch="renovate/com.auth0-auth0-1.x")
DEBUG: No package files need updating(branch="renovate/com.auth0-auth0-1.x")
DEBUG: No updated lock files in branch(branch="renovate/com.auth0-auth0-1.x")
DEBUG: No files to commit(branch="renovate/com.auth0-auth0-1.x")
rarkins commented 2 years ago

This has been forked to https://github.com/renovate-reproductions/5377 but needs validation against the new JS-based gradle manager

elie321 commented 2 years ago

Has this issue been resolved?

Churro commented 2 years ago

Yes, this is resolved with the new gradle manager.

elie321 commented 2 years ago

@Churro I may be missing something, I don't see what PR fixed this problem on the standard renovatebot/renovate repo.

Also it looks like gradle renovate docs at the moment lists this specific problem under open feature requests Per the docs, the list was created recently.

The above list of features and bugs were current when this page was generated on June 16, 2022.

I guess, if this is fixed in the stnadard renovatebot/renovate repo can you please link me to the specific release? and/or perhaps PR on that repo. Thanks in advance!

rarkins commented 2 years ago

@Churro I may be missing something, I don't see what PR fixed this problem on the standard renovatebot/renovate repo.

You have missed the complete rewrite of the gradle manager we did after this issue was created. There is not a single line of code in the lib/modules/manager/gradle directory which was present at the time of this issue creation.

Also it looks like gradle renovate docs at the moment list this specific problem under open feature requests Per the docs, the list was created recently.

The above list of features and bugs were current when this page was generated on June 16, 2022.

That list is simply autogenerated from the list of issues in this repo and has no relevance to this discussion.

I guess, if this is fixed in the stnadard renovatebot/renovate repo can you please link me to the specific release? and/or perhaps PR on that repo. Thanks in advance!

No, that's not possible. The entire manager was rewritten - many changes and many PRs over time.

If you have any remaining problems, you should create a minimal public reproduction repo and start a new issue - or better yet discussion.

elie321 commented 2 years ago

Sounds good, I totally missed there was a full rewrite. Can you please link me to the rewrite repo / release.

Also is this rewrite supported by the same renovate team? or some other team?

rarkins commented 2 years ago

You can read through https://github.com/renovatebot/renovate/search?q=gradle+lite+is%3Apr&type=issues

There is only one Renovate project. It's open source, so nobody pays for support and nobody is obligated to give support.

I am locking this issue as it is resolved, and you are being quite demanding.