renovatebot / config-help

Please use the Discussions feature of https://github.com/renovatebot/renovate instead
https://github.com/renovatebot/renovate/discussions
MIT License
27 stars 16 forks source link

`fileMatch` does not prevent dependency look ups #798

Closed hisener closed 4 years ago

hisener commented 4 years ago

Which Renovate are you using?

WhiteSource Renovate App

Which platform are you using?

GitHub.com

Have you checked the logs? Don't forget to include them if relevant

Logs ``` INFO: Repository started { "renovateVersion": "21.33.15" } DEBUG: Using localDir: /mnt/renovate/gh/hisener/renovate-tests DEBUG: Repository cache is valid DEBUG: initRepo("hisener/renovate-tests") DEBUG: No dangling containers to remove DEBUG: hisener/renovate-tests default branch = master DEBUG: Using app token for git init DEBUG: Initializing git repository into /mnt/renovate/gh/hisener/renovate-tests DEBUG: git clone completed { "durationMs": 661 } DEBUG: latest commit { "latestCommitDate": "2020-08-06T17:00:31+02:00" } DEBUG: Setting git author name { "gitAuthorName": "Renovate Bot" } DEBUG: Setting git author email { "gitAuthorEmail": "bot@renovateapp.com" } DEBUG: resetMemCache() DEBUG: detectSemanticCommits() DEBUG: getCommitMessages DEBUG: Semantic commits detection: unknown DEBUG: No semantic commits detected DEBUG: Setting current branch to master DEBUG: latest commit { "branchName": "master", "latestCommitDate": "2020-08-06T17:00:31+02:00" } 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 DEBUG: Repository config { "configFile": "renovate.json", "config": { "extends": [ "config:base" ], "maven": { "fileMatch": [ "^(?:submodule-test/)?pom\\.xml$" ] }, "commitMessageAction": "Upgrade", "commitMessageTopic": "{{depName}}", "commitMessageExtra": "{{fromVersion}} -> {{toVersion}}" } } DEBUG: migrateAndValidate() DEBUG: No config migration necessary DEBUG: massaged config { "config": { "extends": [ "config:base" ], "maven": { "fileMatch": [ "^(?:submodule-test/)?pom\\.xml$" ] }, "commitMessageAction": "Upgrade", "commitMessageTopic": "{{depName}}", "commitMessageExtra": "{{fromVersion}} -> {{toVersion}}" } } DEBUG: migrated config { "config": { "extends": [ "config:base" ], "maven": { "fileMatch": [ "^(?:submodule-test/)?pom\\.xml$" ] }, "commitMessageAction": "Upgrade", "commitMessageTopic": "{{depName}}", "commitMessageExtra": "{{fromVersion}} -> {{toVersion}}" } } DEBUG: Found repo ignorePaths { "ignorePaths": [ "**/node_modules/**", "**/bower_components/**", "**/vendor/**", "**/examples/**", "**/__tests__/**", "**/test/**", "**/tests/**", "**/__fixtures__/**" ] } DEBUG: checkBaseBranch() DEBUG: config.repoIsOnboarded=true DEBUG: Setting current branch to master DEBUG: latest commit { "branchName": "master", "latestCommitDate": "2020-08-06T17:00:31+02:00" } DEBUG: Setting branchPrefix: renovate/ DEBUG: Cannot read vulnerability alerts DEBUG: No vulnerability alerts found DEBUG: processRepo() DEBUG: No baseBranches DEBUG: extract() DEBUG: Using file match: (^|/)tasks/[^/]+\.ya?ml$ for manager ansible DEBUG: Using file match: (^|/)requirements\.ya?ml$ for manager ansible-galaxy DEBUG: Using file match: (^|/)WORKSPACE(|\.bazel)$ 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: Using file match: (^|/)Cargo.toml$ for manager cargo DEBUG: Using file match: (^|/).circleci/config.yml$ for manager circleci DEBUG: Using file match: (^|/)Podfile$ for manager cocoapods 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: Using file match: (^|/).gitmodules$ for manager git-submodules 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: Using file match: (^|/)gradle/wrapper/gradle-wrapper.properties$ for manager gradle-wrapper DEBUG: Using file match: (^|/)requirements.yaml$ for manager helm-requirements DEBUG: Using file match: (^|/)values.yaml$ for manager helm-values DEBUG: Using file match: (^|/)helmfile.yaml$ for manager helmfile DEBUG: Using file match: ^Formula/[^/]+[.]rb$ for manager homebrew DEBUG: Using file match: \.html?$ for manager html DEBUG: Using file match: (^|/)kustomization\.yaml for manager kustomize 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: ^(?:submodule-test/)?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: ^.node-version$ for manager nodenv DEBUG: Using file match: (^|/)package.json$ for manager npm DEBUG: Using file match: \.(?:cs|fs|vb)proj$ for manager nuget DEBUG: Using file match: \.(?:props|targets)$ for manager nuget DEBUG: Using file match: \.config\/dotnet-tools\.json$ 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: Using file match: (^|/)Pipfile$ for manager pipenv DEBUG: Using file match: (^|/)pyproject\.toml$ for manager poetry DEBUG: Using file match: (^|/)pubspec\.ya?ml$ for manager pub DEBUG: Using file match: (^|/)\.ruby-version$ for manager ruby-version 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: Matched 3 file(s) for manager maven: pom.xml, submodule-test-2/pom.xml, submodule-test/pom.xml DEBUG: Found maven package files DEBUG: Found 3 package file(s) INFO: Dependency extraction complete { "baseBranch": "master", "stats": { "managers": { "maven": { "fileCount": 3, "depCount": 8 } }, "total": { "fileCount": 3, "depCount": 8 } } } DEBUG: Looking up tech.picnic:oss-parent in repository https://repo.maven.apache.org/maven2/ DEBUG: Looking up de.undercouch:bson4jackson in repository https://repo.maven.apache.org/maven2/ DEBUG: Looking up com.github.ekryd.sortpom:sortpom-maven-plugin in repository https://repo.maven.apache.org/maven2/ DEBUG: Looking up com.github.hisener:renovate-tests in repository https://repo.maven.apache.org/maven2/ DEBUG: Looking up org.postgresql:postgresql in repository https://repo.maven.apache.org/maven2/ DEBUG: Looking up com.google.guava:guava in repository https://repo.maven.apache.org/maven2/ DEBUG: Looking up org.mockito:mockito-core in repository https://repo.maven.apache.org/maven2/ DEBUG: Found 3 new versions for tech.picnic:oss-parent in repository https://repo.maven.apache.org/maven2/ DEBUG: Found 20 new versions for de.undercouch:bson4jackson in repository https://repo.maven.apache.org/maven2/ DEBUG: Found 9 new versions for com.github.ekryd.sortpom:sortpom-maven-plugin in repository https://repo.maven.apache.org/maven2/ DEBUG: Found 119 new versions for org.postgresql:postgresql in repository https://repo.maven.apache.org/maven2/ DEBUG: Found 96 new versions for com.google.guava:guava in repository https://repo.maven.apache.org/maven2/ DEBUG: Found 272 new versions for org.mockito:mockito-core in repository https://repo.maven.apache.org/maven2/ DEBUG: Content is not found for Maven url: https://repo.maven.apache.org/maven2/com/github/hisener/renovate-tests/maven-metadata.xml DEBUG: Failed to look up dependency com.github.hisener:renovate-tests (com.github.hisener:renovate-tests)(packageFile="submodule-test-2/pom.xml", dependency="com.github.hisener:renovate-tests") DEBUG: Failed to look up dependency com.github.hisener:renovate-tests (com.github.hisener:renovate-tests)(packageFile="submodule-test/pom.xml", dependency="com.github.hisener:renovate-tests") DEBUG: Package releases lookups complete { "baseBranch": "master" } DEBUG: packageFiles with updates { "config": { "maven": [ { "datasource": "maven", "packageFile": "pom.xml", "deps": [ { "datasource": "maven", "depName": "tech.picnic:oss-parent", "currentValue": "0.0.3", "fileReplacePosition": 381, "registryUrls": [ "https://repo.maven.apache.org/maven2" ], "depIndex": 0, "updates": [], "warnings": [], "sourceUrl": "https://github.com/PicnicSupermarket/oss-parent" }, { "datasource": "maven", "depName": "de.undercouch:bson4jackson", "currentValue": "2.9.2", "fileReplacePosition": 855, "registryUrls": [ "https://repo.maven.apache.org/maven2" ], "depIndex": 1, "updates": [ { "fromVersion": "2.9.2", "toVersion": "2.11.0", "newValue": "2.11.0", "newMajor": 2, "newMinor": 11, "updateType": "minor", "isSingleVersion": true } ], "warnings": [], "sourceUrl": null, "homepage": "https://michelkraemer.com" }, { "datasource": "maven", "depName": "com.github.ekryd.sortpom:sortpom-maven-plugin", "currentValue": "2.11.0", "fileReplacePosition": 1172, "registryUrls": [ "https://repo.maven.apache.org/maven2" ], "depIndex": 2, "updates": [ { "fromVersion": "2.11.0", "toVersion": "2.12.0", "newValue": "2.12.0", "newMajor": 2, "newMinor": 12, "updateType": "minor", "isSingleVersion": true } ], "warnings": [], "sourceUrl": null } ], "parent": "../pom.xml" }, { "datasource": "maven", "packageFile": "submodule-test-2/pom.xml", "deps": [ { "datasource": "maven", "depName": "com.github.hisener:renovate-tests", "currentValue": "0.0.1-SNAPSHOT", "fileReplacePosition": 409, "registryUrls": [ "https://repo.maven.apache.org/maven2" ], "depIndex": 0, "updates": [], "warnings": [ { "depName": "com.github.hisener:renovate-tests", "message": "Failed to look up dependency com.github.hisener:renovate-tests" } ] }, { "datasource": "maven", "depName": "org.postgresql:postgresql", "currentValue": "42.2.12", "fileReplacePosition": 651, "registryUrls": [ "https://repo.maven.apache.org/maven2" ], "depIndex": 1, "updates": [ { "fromVersion": "42.2.12", "toVersion": "42.2.14", "newValue": "42.2.14", "newMajor": 42, "newMinor": 2, "updateType": "minor", "isSingleVersion": true } ], "warnings": [], "sourceUrl": "https://github.com/pgjdbc/pgjdbc", "homepage": "https://jdbc.postgresql.org" } ], "parent": "pom.xml" }, { "datasource": "maven", "packageFile": "submodule-test/pom.xml", "deps": [ { "datasource": "maven", "depName": "com.github.hisener:renovate-tests", "currentValue": "0.0.1-SNAPSHOT", "fileReplacePosition": 409, "registryUrls": [ "https://repo.maven.apache.org/maven2" ], "depIndex": 0, "updates": [], "warnings": [ { "depName": "com.github.hisener:renovate-tests", "message": "Failed to look up dependency com.github.hisener:renovate-tests" } ] }, { "datasource": "maven", "depName": "com.google.guava:guava", "currentValue": "28.0-jre", "fileReplacePosition": 646, "registryUrls": [ "https://repo.maven.apache.org/maven2" ], "depIndex": 1, "updates": [ { "fromVersion": "28.0-jre", "toVersion": "28.2-jre", "newValue": "28.2-jre", "newMajor": 28, "newMinor": 2, "updateType": "minor", "isSingleVersion": true }, { "fromVersion": "28.0-jre", "toVersion": "29.0-jre", "newValue": "29.0-jre", "newMajor": 29, "newMinor": 0, "updateType": "major", "isSingleVersion": true } ], "warnings": [], "sourceUrl": null }, { "datasource": "maven", "depName": "org.mockito:mockito-core", "currentValue": "3.4.0", "fileReplacePosition": 854, "registryUrls": [ "https://repo.maven.apache.org/maven2" ], "depIndex": 2, "updates": [ { "fromVersion": "3.4.0", "toVersion": "3.4.6", "newValue": "3.4.6", "newMajor": 3, "newMinor": 4, "updateType": "minor", "isSingleVersion": true } ], "warnings": [], "sourceUrl": "https://github.com/mockito/mockito" } ], "parent": "pom.xml" } ] } } DEBUG: branchifyUpgrades DEBUG: 6 flattened updates found: de.undercouch:bson4jackson, com.github.ekryd.sortpom:sortpom-maven-plugin, org.postgresql:postgresql, com.google.guava:guava, com.google.guava:guava, org.mockito:mockito-core DEBUG: Returning 6 branch(es) DEBUG: Multiple candidates for changelog file, using CHANGELOG.md DEBUG: config.repoIsOnboarded=true DEBUG: processRepo() DEBUG: Processing 6 branches: renovate/com.github.ekryd.sortpom-sortpom-maven-plugin-2.x, renovate/com.google.guava-guava-28.x, renovate/com.google.guava-guava-29.x, renovate/de.undercouch-bson4jackson-2.x, renovate/org.mockito-mockito-core-3.x, renovate/org.postgresql-postgresql-42.x DEBUG: Calculating hourly PRs remaining DEBUG: Retrieving PR list DEBUG: Retrieved 10 Pull Requests DEBUG: currentHourStart=1596726000000 DEBUG: PR hourly limit remaining: 0 DEBUG: Creation of new PRs is blocked by existing PRs { "prs": 0 } DEBUG: Enforcing prConcurrentLimit (20) DEBUG: 4 PRs are currently open DEBUG: PR concurrent limit remaining: 16 DEBUG: Calculated maximum PRs remaining this run { "prsRemaining": 0 } DEBUG: processBranch with 1 upgrades(branch="renovate/com.github.ekryd.sortpom-sortpom-maven-plugin-2.x") DEBUG: Setting current branch to master(branch="renovate/com.github.ekryd.sortpom-sortpom-maven-plugin-2.x") DEBUG: latest commit(branch="renovate/com.github.ekryd.sortpom-sortpom-maven-plugin-2.x") { "branchName": "master", "latestCommitDate": "2020-08-06T17:00:31+02:00" } DEBUG: getBranchPr(renovate/com.github.ekryd.sortpom-sortpom-maven-plugin-2.x)(branch="renovate/com.github.ekryd.sortpom-sortpom-maven-plugin-2.x") DEBUG: findPr(renovate/com.github.ekryd.sortpom-sortpom-maven-plugin-2.x, undefined, open)(branch="renovate/com.github.ekryd.sortpom-sortpom-maven-plugin-2.x") DEBUG: Found PR #2(branch="renovate/com.github.ekryd.sortpom-sortpom-maven-plugin-2.x") DEBUG: Returning from graphql open PR list(branch="renovate/com.github.ekryd.sortpom-sortpom-maven-plugin-2.x") DEBUG: branchExists=true(branch="renovate/com.github.ekryd.sortpom-sortpom-maven-plugin-2.x") DEBUG: Branch pr rebase requested: false(branch="renovate/com.github.ekryd.sortpom-sortpom-maven-plugin-2.x") DEBUG: Branch has 1 upgrade(s)(branch="renovate/com.github.ekryd.sortpom-sortpom-maven-plugin-2.x") DEBUG: Checking if PR has been edited(branch="renovate/com.github.ekryd.sortpom-sortpom-maven-plugin-2.x") DEBUG: Found existing branch PR(branch="renovate/com.github.ekryd.sortpom-sortpom-maven-plugin-2.x") DEBUG: PR has been edited(branch="renovate/com.github.ekryd.sortpom-sortpom-maven-plugin-2.x") { "prNo": 2 } DEBUG: Updating existing PR to indicate that rebasing is not possible(branch="renovate/com.github.ekryd.sortpom-sortpom-maven-plugin-2.x") DEBUG: updatePr(2, Upgrade com.github.ekryd.sortpom:sortpom-maven-plugin 2.11.0 -> 2.12.0, body)(branch="renovate/com.github.ekryd.sortpom-sortpom-maven-plugin-2.x") DEBUG: PR updated(branch="renovate/com.github.ekryd.sortpom-sortpom-maven-plugin-2.x") { "pr": 2 } DEBUG: processBranch with 1 upgrades(branch="renovate/com.google.guava-guava-28.x") DEBUG: Setting current branch to master(branch="renovate/com.google.guava-guava-28.x") DEBUG: latest commit(branch="renovate/com.google.guava-guava-28.x") { "branchName": "master", "latestCommitDate": "2020-08-06T17:00:31+02:00" } DEBUG: getBranchPr(renovate/com.google.guava-guava-28.x)(branch="renovate/com.google.guava-guava-28.x") DEBUG: findPr(renovate/com.google.guava-guava-28.x, undefined, open)(branch="renovate/com.google.guava-guava-28.x") DEBUG: Found PR #9(branch="renovate/com.google.guava-guava-28.x") DEBUG: Returning from graphql open PR list(branch="renovate/com.google.guava-guava-28.x") DEBUG: branchExists=true(branch="renovate/com.google.guava-guava-28.x") DEBUG: Branch pr rebase requested: false(branch="renovate/com.google.guava-guava-28.x") DEBUG: Branch has 1 upgrade(s)(branch="renovate/com.google.guava-guava-28.x") DEBUG: Checking if PR has been edited(branch="renovate/com.google.guava-guava-28.x") DEBUG: Found existing branch PR(branch="renovate/com.google.guava-guava-28.x") DEBUG: PR has been edited(branch="renovate/com.google.guava-guava-28.x") { "prNo": 9 } DEBUG: Updating existing PR to indicate that rebasing is not possible(branch="renovate/com.google.guava-guava-28.x") DEBUG: updatePr(9, Upgrade com.google.guava:guava 28.0-jre -> 28.2-jre, body)(branch="renovate/com.google.guava-guava-28.x") DEBUG: PR updated(branch="renovate/com.google.guava-guava-28.x") { "pr": 9 } DEBUG: processBranch with 1 upgrades(branch="renovate/de.undercouch-bson4jackson-2.x") DEBUG: Setting current branch to master(branch="renovate/de.undercouch-bson4jackson-2.x") DEBUG: latest commit(branch="renovate/de.undercouch-bson4jackson-2.x") { "branchName": "master", "latestCommitDate": "2020-08-06T17:00:31+02:00" } DEBUG: getBranchPr(renovate/de.undercouch-bson4jackson-2.x)(branch="renovate/de.undercouch-bson4jackson-2.x") DEBUG: findPr(renovate/de.undercouch-bson4jackson-2.x, undefined, open)(branch="renovate/de.undercouch-bson4jackson-2.x") DEBUG: Found PR #4(branch="renovate/de.undercouch-bson4jackson-2.x") DEBUG: Returning from graphql open PR list(branch="renovate/de.undercouch-bson4jackson-2.x") DEBUG: branchExists=true(branch="renovate/de.undercouch-bson4jackson-2.x") DEBUG: Branch pr rebase requested: false(branch="renovate/de.undercouch-bson4jackson-2.x") DEBUG: Branch has 1 upgrade(s)(branch="renovate/de.undercouch-bson4jackson-2.x") DEBUG: Checking if PR has been edited(branch="renovate/de.undercouch-bson4jackson-2.x") DEBUG: Found existing branch PR(branch="renovate/de.undercouch-bson4jackson-2.x") DEBUG: PR has been edited(branch="renovate/de.undercouch-bson4jackson-2.x") { "prNo": 4 } DEBUG: Updating existing PR to indicate that rebasing is not possible(branch="renovate/de.undercouch-bson4jackson-2.x") DEBUG: updatePr(4, Upgrade de.undercouch:bson4jackson 2.9.2 -> 2.11.0, body)(branch="renovate/de.undercouch-bson4jackson-2.x") DEBUG: PR updated(branch="renovate/de.undercouch-bson4jackson-2.x") { "pr": 4 } DEBUG: processBranch with 1 upgrades(branch="renovate/org.mockito-mockito-core-3.x") DEBUG: Setting current branch to master(branch="renovate/org.mockito-mockito-core-3.x") DEBUG: latest commit(branch="renovate/org.mockito-mockito-core-3.x") { "branchName": "master", "latestCommitDate": "2020-08-06T17:00:31+02:00" } DEBUG: getBranchPr(renovate/org.mockito-mockito-core-3.x)(branch="renovate/org.mockito-mockito-core-3.x") DEBUG: findPr(renovate/org.mockito-mockito-core-3.x, undefined, open)(branch="renovate/org.mockito-mockito-core-3.x") DEBUG: Found PR #10(branch="renovate/org.mockito-mockito-core-3.x") DEBUG: Returning from graphql open PR list(branch="renovate/org.mockito-mockito-core-3.x") DEBUG: branchExists=true(branch="renovate/org.mockito-mockito-core-3.x") DEBUG: Branch pr rebase requested: false(branch="renovate/org.mockito-mockito-core-3.x") DEBUG: Branch has 1 upgrade(s)(branch="renovate/org.mockito-mockito-core-3.x") DEBUG: Checking if PR has been edited(branch="renovate/org.mockito-mockito-core-3.x") DEBUG: Found existing branch PR(branch="renovate/org.mockito-mockito-core-3.x") DEBUG: PR has been edited(branch="renovate/org.mockito-mockito-core-3.x") { "prNo": 10 } DEBUG: Updating existing PR to indicate that rebasing is not possible(branch="renovate/org.mockito-mockito-core-3.x") DEBUG: updatePr(10, Upgrade org.mockito:mockito-core 3.4.0 -> 3.4.6, body)(branch="renovate/org.mockito-mockito-core-3.x") DEBUG: PR updated(branch="renovate/org.mockito-mockito-core-3.x") { "pr": 10 } DEBUG: processBranch with 1 upgrades(branch="renovate/org.postgresql-postgresql-42.x") DEBUG: Setting current branch to master(branch="renovate/org.postgresql-postgresql-42.x") DEBUG: latest commit(branch="renovate/org.postgresql-postgresql-42.x") { "branchName": "master", "latestCommitDate": "2020-08-06T17:00:31+02:00" } DEBUG: getBranchPr(renovate/org.postgresql-postgresql-42.x)(branch="renovate/org.postgresql-postgresql-42.x") DEBUG: findPr(renovate/org.postgresql-postgresql-42.x, undefined, open)(branch="renovate/org.postgresql-postgresql-42.x") DEBUG: branchExists=false(branch="renovate/org.postgresql-postgresql-42.x") DEBUG: Branch has 1 upgrade(s)(branch="renovate/org.postgresql-postgresql-42.x") DEBUG: recreateClosed is false(branch="renovate/org.postgresql-postgresql-42.x") DEBUG: findPr(renovate/org.postgresql-postgresql-42.x, Upgrade org.postgresql:postgresql 42.2.12 -> 42.2.14, !open)(branch="renovate/org.postgresql-postgresql-42.x") DEBUG: prAlreadyExisted=false(branch="renovate/org.postgresql-postgresql-42.x") DEBUG: Reached PR creation limit or per run commits limit - skipping branch creation(branch="renovate/org.postgresql-postgresql-42.x") DEBUG: processBranch with 1 upgrades(branch="renovate/com.google.guava-guava-29.x") DEBUG: Setting current branch to master(branch="renovate/com.google.guava-guava-29.x") DEBUG: latest commit(branch="renovate/com.google.guava-guava-29.x") { "branchName": "master", "latestCommitDate": "2020-08-06T17:00:31+02:00" } DEBUG: getBranchPr(renovate/com.google.guava-guava-29.x)(branch="renovate/com.google.guava-guava-29.x") DEBUG: findPr(renovate/com.google.guava-guava-29.x, undefined, open)(branch="renovate/com.google.guava-guava-29.x") DEBUG: branchExists=false(branch="renovate/com.google.guava-guava-29.x") DEBUG: Branch has 1 upgrade(s)(branch="renovate/com.google.guava-guava-29.x") DEBUG: recreateClosed is false(branch="renovate/com.google.guava-guava-29.x") DEBUG: findPr(renovate/com.google.guava-guava-29.x, Upgrade com.google.guava:guava 28.0-jre -> 29.0-jre, !open)(branch="renovate/com.google.guava-guava-29.x") DEBUG: prAlreadyExisted=false(branch="renovate/com.google.guava-guava-29.x") DEBUG: Reached PR creation limit or per run commits limit - skipping branch creation(branch="renovate/com.google.guava-guava-29.x") DEBUG: Removing any stale branches DEBUG: config.repoIsOnboarded=true DEBUG: Branch lists { "branchList": [ "renovate/de.undercouch-bson4jackson-2.x", "renovate/com.github.ekryd.sortpom-sortpom-maven-plugin-2.x", "renovate/org.postgresql-postgresql-42.x", "renovate/com.google.guava-guava-28.x", "renovate/com.google.guava-guava-29.x", "renovate/org.mockito-mockito-core-3.x" ], "renovateBranches": [ "renovate/com.github.ekryd.sortpom-sortpom-maven-plugin-2.x", "renovate/com.google.guava-guava-28.x", "renovate/de.undercouch-bson4jackson-2.x", "renovate/org.mockito-mockito-core-3.x" ] } DEBUG: remainingBranches= DEBUG: No branches to clean up DEBUG: ensureIssueClosing(Action Required: Fix Renovate Configuration) DEBUG: Repository timing splits (milliseconds) { "splits": { "init": 4633, "extract": 8423, "lookup": 1301, "update": 6651 }, "total": 21091 } DEBUG: http statistics { "hostStats": [ "api.github.com, 13 requests, 397ms average", "repo.maven.apache.org, 6 requests, 129ms average" ], "totalRequests": 19 } INFO: Repository finished { "durationMs": 21091 } ```

What would you like to do?

I am not sure if it's a bug or expected behavior so decided to ask here first. Renovate scans and looks up Maven central for dependencies in files do not match maven.fileMatch. It does not create a PR though. I think it would be better if it skips way before so we could save some HTTP calls. See https://github.com/hisener/renovate-tests/pulls.

DEBUG: Looking up org.postgresql:postgresql in repository https://repo.maven.apache.org/maven2/
...
DEBUG: Found 119 new versions for org.postgresql:postgresql in repository https://repo.maven.apache.org/maven2/

My config

{
  "extends": [
    "config:base"
  ],
  "maven": {
    "fileMatch": [
      "^(?:submodule-test/)?pom\\.xml$"
    ]
  }
}
rarkins commented 4 years ago

fileMatch should prevent non matching files from being parsed. What do the debug logs say earlier, Eg during extraction phase? It should confirm the pattern being used as well as how many files matched.

hisener commented 4 years ago

I posted logs in the issue. See Have you checked the logs? Don't forget to include them if relevant section.

I think it merges with the default config.

DEBUG: Using file match: .pom.xml$ for manager maven DEBUG: Using file match: (^|/)pom.xml$ for manager maven DEBUG: Using file match: ^(?:submodule-test/)?pom.xml$ for manager maven

DEBUG: Matched 3 file(s) for manager maven: pom.xml, submodule-test-2/pom.xml, submodule-test/pom.xml

Actually, it created a PR for PostgreSQL, too, after I opened this issue. 🤔

viceice commented 4 years ago

@hisener You need to use a packageRule to override fileMatch because the default manager config would otherwise override your config.

https://github.com/renovatebot/renovate/blob/297a3a9e588beecf04cee92fa1177dcdcdb9f714/lib/manager/maven/index.ts#L9-L12

rarkins commented 4 years ago

@viceice should we try refactoring / fixing that?

hisener commented 4 years ago

I've just tried packageRule but it also doesn't help, it keeps creating PostgreSQL upgrade https://github.com/hisener/renovate-tests/pull/14 which is in none matching folder. https://github.com/hisener/renovate-tests/blob/5e290f37125a9c0fb9f1094aedcb4de7307da3ea/renovate.json#L8-L13

viceice commented 4 years ago

Ok, looks like the array gets merged. So the workaround would be to use a package rule to disable some paths.

Or disable global and use a package rule with paths to enable only needed paths.

rarkins commented 4 years ago

I forgot, but I guess we made fileMatch merge instead of replace, so people don't need to reinclude all existing patterns just to add one.

Perhaps ignorePaths is easier in this case than a packageRule?

hisener commented 4 years ago

I am not sure I can achieve with ignorePaths. I want to allow only pom.xml and submodule-test/pom.xml. */pom.xml would also ignore the latter. 🤔

rarkins commented 4 years ago

So you want to allow specific files rather than ignore certain ones?

Package rules with paths can at least help you bypass the lookups if ignorePaths can't work for your case.

hisener commented 4 years ago

Yes, I want to allow only these two.

But I've already tried that https://github.com/hisener/renovate-tests/blob/5e290f37125a9c0fb9f1094aedcb4de7307da3ea/renovate.json#L8-L13. As you said before it merges with default config and becomes a no-op.

rarkins commented 4 years ago

I meant paths + enabled=false. It will be evaluated post-extract but pre-lookup

hisener commented 4 years ago

I tried a negative match to disable other pom.xmls but I got Invalid regExp error (https://github.com/hisener/renovate-tests/issues/15). It's valid though. Can I also use !/regex/ here?

    {
      "datasources": [ "maven" ],
      "managers": [ "maven" ],
      "fileMatch": [ "^(?!(?:submodule-test\/)?pom\\.xml$).+" ],
      "enabled": false
    }

I also tried adding submodule-test to fileMatch and ignoring the rest but it also ignored submodule-test/pom.xml.

  "maven": {
    "fileMatch": [ "^submodule-test\/pom\\.xml" ]
  },
  "ignorePaths": [
    "*/**/pom.xml"
  ]

DEBUG: Matched 1 file(s) for manager maven: pom.xml

rarkins commented 4 years ago

We use the re2 regex implementation to prevent catastrophic backtracking etc. It's possible that's why it's rejected.

rarkins commented 4 years ago

The result you see for ignorePaths is expected to me, because submodule-test/pom.xml matches "*/**/pom.xml". ignorePaths and fileMatch are independent features.

BTW confirming that fileMatch is mergeable: https://github.com/renovatebot/renovate/blob/63d54efbd8c0157102473b8b57c2f6712f5868e7/lib/config/definitions.ts#L1441

This means that if a file matches any of the patterns (default, or custom) then it will be extracted.

Was this a bad choice? I still think it's probably the best for most users.

Should we add the ability to negative match? Maybe, if there's a simple pattern or prefix we could designate for it.

hisener commented 4 years ago

The result you see for ignorePaths is expected to me, because submodule-test/pom.xml matches "*/**/pom.xml". ignorePaths and fileMatch are independent features.

Yes, it makes sense.

Was this a bad choice? I still think it's probably the best for most users.

Then maybe we should have an boolean flag to configure that behavior, something like merge/override (default: merge).

My motivation to change fileMatch was we don't manage any dependency in submodules (with one exception). It's always parent pom (^pom.xml$) or the exception case so there is no point scanning those. It was an attempt to speed up the process a little bit.

rarkins commented 4 years ago

Thinking about it more, anti-matching is definitely not the purpose of fileMatch, and for now I'm not convinced that making it more complex is justified, considering there are two other ways to ignore package files - using packageRules, or ignorePaths if you want the ignoring done earlier. I don't think the extra parsing really causes much problem though.

It previously slipped my mind that we also have includePaths too. How about that?

hisener commented 4 years ago

This is actually what I was looking for.

DEBUG: Using file match: \.pom\.xml$ for manager maven
DEBUG: Using file match: (^|/)pom\.xml$ for manager maven
DEBUG: Matched 2 file(s) for manager maven: pom.xml, submodule-test/pom.xml
  "includePaths": [
    "pom.xml",
    "submodule-test/pom.xml"
  ]

Thank you. 🙏