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.66k stars 2.33k forks source link

Renovate removes submodules when platformCommit=true #16142

Closed tobybellwood closed 2 years ago

tobybellwood commented 2 years ago

How are you running Renovate?

Mend Renovate hosted app on github.com

If you're self-hosting Renovate, tell us what version of Renovate you run.

No response

Please select which platform you are using if self-hosting.

No response

If you're self-hosting Renovate, tell us what version of the platform you run.

No response

Was this something which used to work for you, and then stopped?

It used to work, and then stopped

Describe the bug

We use Renovate across a number of our repositories, but pertinent to this issue, we use it to keep a repo of submodules up-to-date.

The most recent updates to Renovate appear to not be able to pull my submodules correctly (they do work locally and in CI) - and this results in the commit coming back to my repo without the submodule folders.

Reference PR - https://github.com/uselagoon/lagoon-examples/pull/222 and accompanying app log below - but nothing stands out

The last good auto-update was 4 days ago (https://github.com/uselagoon/lagoon-examples/commit/0b5237ed8e947beb69c564cb4b44231a3e2ecae8) (but those app logs have rolled off the bottom for me)

Just wondering if you've had anything else reported, or are aware of anything that's changed?

Relevant debug logs

Logs ``` DEBUG: No dangling containers to remove INFO: Repository started { "renovateVersion": "32.89.2" } DEBUG: Using localDir: /mnt/renovate/gh/uselagoon/lagoon-examples DEBUG: PackageFiles.clear() - Package files deleted { "baseBranches": [] } DEBUG: resetMemCache() DEBUG: initRepo("uselagoon/lagoon-examples") DEBUG: uselagoon/lagoon-examples default branch = main DEBUG: Using app token for git init DEBUG: Repository cache is valid DEBUG: Resetting npmrc DEBUG: detectSemanticCommits() DEBUG: checkOnboarding() DEBUG: isOnboarded() DEBUG: Checking cached config file name DEBUG: Existing config file confirmed DEBUG: Repo is onboarded DEBUG: migrateAndValidate() DEBUG: No config migration necessary DEBUG: massaged config { "config": { "extends": [ "github>whitesource/merge-confidence:beta", "github>renovatebot/spring-remediations", "config:base" ], "dependencyDashboard": true, "prHourlyLimit": 0, "git-submodules": { "enabled": true }, "regexManagers": [ { "fileMatch": [ "^.circleci/config.yml$" ], "matchStrings": [ "PYGMY_GO_VERSION_V=(?.*?)" ], "depNameTemplate": "fubarhouse/pygmy-go", "datasourceTemplate": "github-releases" }, { "fileMatch": [ "^.circleci/config.yml$" ], "matchStrings": [ "LANDO_VERSION=(?.*?)" ], "depNameTemplate": "lando/lando-cli", "datasourceTemplate": "github-releases" } ], "packageRules": [ { "groupName": "Submodule updates", "matchManagers": [ "git-submodules" ], "automerge": true, "automergeType": "pr" } ] } } DEBUG: migrated config { "config": { "extends": [ "github>whitesource/merge-confidence:beta", "github>renovatebot/spring-remediations", "config:base" ], "dependencyDashboard": true, "prHourlyLimit": 0, "git-submodules": { "enabled": true }, "regexManagers": [ { "fileMatch": [ "^.circleci/config.yml$" ], "matchStrings": [ "PYGMY_GO_VERSION_V=(?.*?)" ], "depNameTemplate": "fubarhouse/pygmy-go", "datasourceTemplate": "github-releases" }, { "fileMatch": [ "^.circleci/config.yml$" ], "matchStrings": [ "LANDO_VERSION=(?.*?)" ], "depNameTemplate": "lando/lando-cli", "datasourceTemplate": "github-releases" } ], "packageRules": [ { "groupName": "Submodule updates", "matchManagers": [ "git-submodules" ], "automerge": true, "automergeType": "pr" } ] } } DEBUG: Setting hostRules from config DEBUG: Found repo ignorePaths { "ignorePaths": [ "**/node_modules/**", "**/bower_components/**", "**/vendor/**", "**/examples/**", "**/__tests__/**", "**/test/**", "**/tests/**", "**/__fixtures__/**" ] } DEBUG: No vulnerability alerts found DEBUG: No vulnerability alerts found DEBUG: findIssue(Dependency Dashboard) DEBUG: Retrieving issueList DEBUG: Retrieved 2 issues DEBUG: Found issue 20 DEBUG: No baseBranches DEBUG: extract() DEBUG: Setting current branch to main DEBUG: Initializing git repository into /mnt/renovate/gh/uselagoon/lagoon-examples DEBUG: Performing blobless clone DEBUG: git clone completed { "durationMs": 887 } DEBUG: latest repository commit { "latestCommit": { "hash": "f5df19e418c5ac6b77bea14f9521d0df22ee1aca", "date": "2022-06-20T08:41:12+10:00", "message": "fixup renovate", "refs": "HEAD -> main, origin/main, origin/HEAD", "body": "", "author_name": "Toby Bellwood", "author_email": "toby.bellwood@amazee.io" } } DEBUG: latest commit { "branchName": "main", "latestCommitDate": "2022-06-20T08:41:12+10:00" } 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: (^|/)galaxy\.ya?ml$ for manager ansible-galaxy DEBUG: Using file match: azure.*pipelines?.*\.ya?ml$ for manager azure-pipelines DEBUG: Using file match: (^|/)batect(-bundle)?\.yml$ for manager batect DEBUG: Using file match: (^|/)batect$ for manager batect-wrapper DEBUG: Using file match: (^|/)WORKSPACE(|\.bazel)$ for manager bazel DEBUG: Using file match: \.bzl$ for manager bazel DEBUG: Using file match: (^|/)\.?bitbucket-pipelines\.ya?ml$ for manager bitbucket-pipelines 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: \.cake$ for manager cake DEBUG: Using file match: (^|/)Cargo.toml$ for manager cargo DEBUG: Using file match: (^|/).circleci/config.yml$ for manager circleci DEBUG: Using file match: (^|/)cloudbuild.ya?ml for manager cloudbuild DEBUG: Using file match: (^|/)Podfile$ for manager cocoapods DEBUG: Using file match: (^|/)([\w-]*)composer.json$ for manager composer DEBUG: Using file match: (^|/)conanfile\.(txt|py)$ for manager conan 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: (^|/)flux-system/gotk-components\.yaml$ for manager flux DEBUG: Using file match: (^|\/)\.fvm\/fvm_config\.json$ for manager fvm DEBUG: Using file match: (^|/).gitmodules$ for manager git-submodules DEBUG: Using file match: ^(workflow-templates|\.github\/workflows)\/[^/]+\.ya?ml$ for manager github-actions DEBUG: Using file match: (^|\/)action\.ya?ml$ for manager github-actions 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\/.+\.toml$ for manager gradle DEBUG: Using file match: \.versions\.toml$ 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: (^|/)Chart.yaml$ for manager helmv3 DEBUG: Using file match: ^Formula/[^/]+[.]rb$ for manager homebrew DEBUG: Using file match: \.html?$ for manager html DEBUG: Using file match: (^|/)plugins\.(txt|ya?ml)$ for manager jenkins DEBUG: Using file match: (^|/)jsonnetfile.json$ for manager jsonnet-bundler DEBUG: Using file match: (^|/)kustomization\.ya?ml$ 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: ^(((\.mvn)|(\.m2))/)?settings\.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: (^|\/)dotnet-tools\.json$ for manager nuget DEBUG: Using file match: (^|\/)global\.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: (^|/)\.pre-commit-config\.yaml$ for manager pre-commit DEBUG: Using file match: (^|/)pubspec\.ya?ml$ for manager pub DEBUG: Using file match: (^|/).python-version$ for manager pyenv DEBUG: Using file match: ^.circleci/config.yml$ for manager regex DEBUG: Using file match: ^.circleci/config.yml$ for manager regex 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: (^|/)setup\.cfg$ for manager setup-cfg DEBUG: Using file match: (^|/)Package\.swift for manager swift DEBUG: Using file match: \.tf$ for manager terraform DEBUG: Using file match: (^|/)\.terraform-version$ for manager terraform-version DEBUG: Using file match: (^|/)terragrunt\.hcl$ for manager terragrunt DEBUG: Using file match: (^|/)\.terragrunt-version$ for manager terragrunt-version DEBUG: Using file match: ^.travis.yml$ for manager travis DEBUG: Using file match: (^|/).vela.ya?ml$ for manager velaci DEBUG: Matched 1 file(s) for manager git-submodules: .gitmodules DEBUG: Matched 1 file(s) for manager github-actions: .github/workflows/lagoon-examples.yaml DEBUG: Matched 1 file(s) for manager npm: package.json DEBUG: npm file package.json has name undefined DEBUG: Detecting pnpm Workspaces DEBUG: Detecting Lerna and Yarn Workspaces DEBUG: Finding locked versions DEBUG: Found git-submodules package files DEBUG: Found github-actions package files DEBUG: Found npm package files DEBUG: Found 3 package file(s) INFO: Dependency extraction complete { "baseBranch": "main", "stats": { "managers": { "git-submodules": { "fileCount": 1, "depCount": 9 }, "github-actions": { "fileCount": 1, "depCount": 1 }, "npm": { "fileCount": 1, "depCount": 4 } }, "total": { "fileCount": 3, "depCount": 14 } } } DEBUG: Dependency drupal9-advanced has unsupported value 9.x-advanced DEBUG: Dependency wordpress-simple has unsupported value main DEBUG: Dependency silverstripe-simple has unsupported value master DEBUG: Dependency silverstripe-advanced has unsupported value redis_solr DEBUG: Dependency node-example has unsupported value main DEBUG: Dependency drupal9-base has unsupported value main DEBUG: Dependency drupal9-solr has unsupported value main DEBUG: Dependency drupal9-postgres has unsupported value main DEBUG: Dependency drupal9-elastic has unsupported value main DEBUG: PackageFiles.add() - Package file saved for branch { "baseBranch": "main" } DEBUG: Package releases lookups complete { "baseBranch": "main" } DEBUG: branchifyUpgrades DEBUG: Using group branchName template DEBUG: Dependency wordpress-simple is part of group Submodule updates DEBUG: 3 flattened updates found: wordpress-simple, mocha, mocha DEBUG: Returning 3 branch(es) DEBUG: Fetching changelog: https://github.com/mochajs/mocha (9.2.0 -> 9.2.2) DEBUG: Fetching changelog: https://github.com/mochajs/mocha (9.2.0 -> 10.0.0) DEBUG: config.repoIsOnboarded=true DEBUG: packageFiles with updates { "config": { "git-submodules": [ { "packageFile": ".gitmodules", "deps": [ { "depName": "drupal9-advanced", "packageName": "https://github.com/amazeeio/drupal-example-simple.git", "currentValue": "9.x-advanced", "currentDigest": "1aef5aa8d44f7026146611a927fa292c87b39c4d", "depIndex": 0, "updates": [], "warnings": [], "versioning": "git" }, { "depName": "wordpress-simple", "packageName": "https://github.com/amazeeio/wordpress-example.git", "currentValue": "main", "currentDigest": "1ce0faec864e7d5d430736ae22fa4693393491eb", "depIndex": 1, "updates": [ { "updateType": "digest", "newValue": "main", "newDigest": "2550c8f777c01d9df46e16cda0af52c2ff4aa78e", "branchName": "renovate/submodule-updates" } ], "warnings": [], "versioning": "git" }, { "depName": "silverstripe-simple", "packageName": "https://github.com/amazeeio/silverstripe-example.git", "currentValue": "master", "currentDigest": "7269f0c2a62aaba47bf88ea92f86dac41e94db41", "depIndex": 2, "updates": [], "warnings": [], "versioning": "git" }, { "depName": "silverstripe-advanced", "packageName": "https://github.com/amazeeio/silverstripe-example.git", "currentValue": "redis_solr", "currentDigest": "9d0d028451074655327cdf4e631cc8a0821768b4", "depIndex": 3, "updates": [], "warnings": [], "versioning": "git" }, { "depName": "node-example", "packageName": "https://github.com/amazeeio/node-example.git", "currentValue": "main", "currentDigest": "a23e7ff0aa47c558404bb7e8f5dd14bb276bf1a9", "depIndex": 4, "updates": [], "warnings": [], "versioning": "git" }, { "depName": "drupal9-base", "packageName": "https://github.com/lagoon-examples/drupal9-base.git", "currentValue": "main", "currentDigest": "392f4cf011d77c8041094c09d4be5335139b92cc", "depIndex": 5, "updates": [], "warnings": [], "versioning": "git" }, { "depName": "drupal9-solr", "packageName": "https://github.com/lagoon-examples/drupal9-solr.git", "currentValue": "main", "currentDigest": "64b0f26a8a8a6ea54c866a54c04138b9c73049ee", "depIndex": 6, "updates": [], "warnings": [], "versioning": "git" }, { "depName": "drupal9-postgres", "packageName": "https://github.com/lagoon-examples/drupal9-postgres.git", "currentValue": "main", "currentDigest": "071bc4a9d5fc46d065733b5264e8622062aa9add", "depIndex": 7, "updates": [], "warnings": [], "versioning": "git" }, { "depName": "drupal9-elastic", "packageName": "https://github.com/lagoon-examples/drupal9-elastic.git", "currentValue": "main", "currentDigest": "e41492d2da9417514e8952d24b46f5cd424eb359", "depIndex": 8, "updates": [], "warnings": [], "versioning": "git" } ], "datasource": "git-refs" } ], "github-actions": [ { "packageFile": ".github/workflows/lagoon-examples.yaml", "deps": [ { "depName": "actions/checkout", "commitMessageTopic": "{{{depName}}} action", "datasource": "github-tags", "versioning": "docker", "depType": "action", "replaceString": "actions/checkout@v3", "autoReplaceStringTemplate": "{{depName}}@{{#if newDigest}}{{newDigest}}{{#if newValue}} # tag={{newValue}}{{/if}}{{/if}}{{#unless newDigest}}{{newValue}}{{/unless}}", "currentValue": "v3", "depIndex": 0, "updates": [], "warnings": [], "sourceUrl": "https://github.com/actions/checkout", "currentVersion": "v3", "fixedVersion": "v3" } ] } ], "npm": [ { "packageFile": "package.json", "deps": [ { "depType": "dependencies", "depName": "chai", "currentValue": "4.3.6", "datasource": "npm", "prettyDepType": "dependency", "depIndex": 0, "updates": [], "warnings": [], "versioning": "npm", "sourceUrl": "https://github.com/chaijs/chai", "homepage": "http://chaijs.com", "currentVersion": "4.3.6", "fixedVersion": "4.3.6" }, { "depType": "dependencies", "depName": "command-line-test", "currentValue": "1.0.10", "datasource": "npm", "prettyDepType": "dependency", "depIndex": 1, "updates": [], "warnings": [], "versioning": "npm", "sourceUrl": "https://github.com/macacajs/command-line-test", "currentVersion": "1.0.10", "fixedVersion": "1.0.10" }, { "depType": "dependencies", "depName": "leia-parser", "currentValue": "0.4.0", "datasource": "npm", "prettyDepType": "dependency", "depIndex": 2, "updates": [], "warnings": [], "versioning": "npm", "sourceUrl": "https://github.com/lando/leia", "currentVersion": "0.4.0", "fixedVersion": "0.4.0" }, { "depType": "dependencies", "depName": "mocha", "currentValue": "9.2.0", "datasource": "npm", "prettyDepType": "dependency", "depIndex": 3, "updates": [ { "bucket": "non-major", "newVersion": "9.2.2", "newValue": "9.2.2", "releaseTimestamp": "2022-03-11T16:58:49.989Z", "newMajor": 9, "newMinor": 2, "updateType": "patch", "branchName": "renovate/mocha-9.x" }, { "bucket": "major", "newVersion": "10.0.0", "newValue": "10.0.0", "releaseTimestamp": "2022-05-01T05:17:56.134Z", "newMajor": 10, "newMinor": 0, "updateType": "major", "branchName": "renovate/mocha-10.x" } ], "warnings": [], "versioning": "npm", "sourceUrl": "https://github.com/mochajs/mocha", "homepage": "https://mochajs.org/", "currentVersion": "9.2.0", "isSingleVersion": true, "fixedVersion": "9.2.0" } ], "packageJsonType": "app", "managerData": { "yarnZeroInstall": false, "hasPackageManager": false }, "skipInstalls": true, "constraints": {} } ] } } DEBUG: processRepo() DEBUG: Processing 3 branches: renovate/mocha-10.x, renovate/mocha-9.x, renovate/submodule-updates DEBUG: Calculating prConcurrentLimit (10) DEBUG: getBranchPr(renovate/submodule-updates) DEBUG: findPr(renovate/submodule-updates, undefined, open) DEBUG: getPrList success { "pullsTotal": 215, "requestsTotal": 1, "apiQuotaAffected": true } DEBUG: findPr(renovate/submodule-updates, undefined, closed) DEBUG: getBranchPr(renovate/mocha-9.x) DEBUG: findPr(renovate/mocha-9.x, undefined, open) DEBUG: Found PR #218 DEBUG: getBranchPr(renovate/mocha-10.x) DEBUG: findPr(renovate/mocha-10.x, undefined, open) DEBUG: Found PR #221 DEBUG: 2 PRs are currently open DEBUG: PR concurrent limit remaining: 8 DEBUG: Calculated maximum PRs remaining this run { "prsRemaining": 8 } DEBUG: PullRequests limit = 8 DEBUG: Calculating branchConcurrentLimit (10) DEBUG: 2 already existing branches found: renovate/mocha-9.x,renovate/mocha-10.x DEBUG: Branch concurrent limit remaining: 8 DEBUG: Calculated maximum branches remaining this run { "branchesRemaining": 8 } DEBUG: Branches limit = 8 DEBUG: Setting current branch to main(branch="renovate/submodule-updates") DEBUG: latest commit(branch="renovate/submodule-updates") { "branchName": "main", "latestCommitDate": "2022-06-20T08:41:12+10:00" } DEBUG: getBranchPr(renovate/submodule-updates)(branch="renovate/submodule-updates") DEBUG: findPr(renovate/submodule-updates, undefined, open)(branch="renovate/submodule-updates") DEBUG: findPr(renovate/submodule-updates, undefined, closed)(branch="renovate/submodule-updates") DEBUG: branchExists=false(branch="renovate/submodule-updates") DEBUG: dependencyDashboardCheck=undefined(branch="renovate/submodule-updates") DEBUG: recreateClosed is false(branch="renovate/submodule-updates") DEBUG: findPr(renovate/submodule-updates, Update wordpress-simple digest to 2550c8f, !open)(branch="renovate/submodule-updates") DEBUG: prAlreadyExisted=false(branch="renovate/submodule-updates") DEBUG: Checking schedule(at any time, null)(branch="renovate/submodule-updates") DEBUG: No schedule defined(branch="renovate/submodule-updates") DEBUG: Branch needs creating(branch="renovate/submodule-updates") DEBUG: Using reuseExistingBranch: false(branch="renovate/submodule-updates") DEBUG: manager.getUpdatedPackageFiles() reuseExistinbranch=false(branch="renovate/submodule-updates") INFO: Updating submodule wordpress-simple(branch="renovate/submodule-updates") DEBUG: Updated 1 package files(branch="renovate/submodule-updates") DEBUG: Getting updated lock files(branch="renovate/submodule-updates") DEBUG: Writing package.json files(branch="renovate/submodule-updates") { "packageFiles": [ "package.json" ] } DEBUG: Writing any updated package files(branch="renovate/submodule-updates") DEBUG: Updated 1 lock files(branch="renovate/submodule-updates") { "updatedArtifacts": [ "wordpress-simple" ] } DEBUG: 2 file(s) to commit(branch="renovate/submodule-updates") DEBUG: Preparing files for committing to branch renovate/submodule-updates(branch="renovate/submodule-updates") DEBUG: Setting git author name(branch="renovate/submodule-updates") { "gitAuthorName": "Renovate Bot" } DEBUG: Setting git author email(branch="renovate/submodule-updates") { "gitAuthorEmail": "bot@renovateapp.com" } DEBUG: git commit(branch="renovate/submodule-updates") { "deletedFiles": [], "ignoredFiles": [], "result": { "author": null, "branch": "renovate/submodule-updates", "commit": "75a2da86dc619c3fc6cad96d518ac9f612d693c4", "root": false, "summary": { "changes": 1, "insertions": 1, "deletions": 1 } } } DEBUG: Fetching branch renovate/submodule-updates(branch="renovate/submodule-updates") INFO: Branch created(branch="renovate/submodule-updates") { "commitSha": "75a2da86dc619c3fc6cad96d518ac9f612d693c4" } DEBUG: Ensuring PR(branch="renovate/submodule-updates") DEBUG: There are 0 errors and 0 warnings(branch="renovate/submodule-updates") DEBUG: getBranchPr(renovate/submodule-updates)(branch="renovate/submodule-updates") DEBUG: findPr(renovate/submodule-updates, undefined, open)(branch="renovate/submodule-updates") DEBUG: findPr(renovate/submodule-updates, undefined, closed)(branch="renovate/submodule-updates") DEBUG: resolveBranchStatus(branchName=renovate/submodule-updates, ignoreTests=false)(branch="renovate/submodule-updates") DEBUG: getBranchStatus(renovate/submodule-updates)(branch="renovate/submodule-updates") DEBUG: branch status check result(branch="renovate/submodule-updates") { "state": "pending", "statuses": [] } DEBUG: No check runs found(branch="renovate/submodule-updates") { "result": { "total_count": 0, "check_runs": [] } } DEBUG: Branch status yellow(branch="renovate/submodule-updates") DEBUG: Creating PR(branch="renovate/submodule-updates") { "prTitle": "Update wordpress-simple digest to 2550c8f" } DEBUG: Creating PR(branch="renovate/submodule-updates") { "title": "Update wordpress-simple digest to 2550c8f", "head": "uselagoon:renovate/submodule-updates", "base": "main", "draft": false } DEBUG: PR created(branch="renovate/submodule-updates") { "pr": 222, "draft": false } DEBUG: Adding labels '' to #222(branch="renovate/submodule-updates") INFO: PR created(branch="renovate/submodule-updates") { "pr": 222, "prTitle": "Update wordpress-simple digest to 2550c8f" } DEBUG: resolveBranchStatus(branchName=renovate/submodule-updates, ignoreTests=false)(branch="renovate/submodule-updates") DEBUG: getBranchStatus(renovate/submodule-updates)(branch="renovate/submodule-updates") DEBUG: branch status check result(branch="renovate/submodule-updates") { "state": "pending", "statuses": [] } DEBUG: No check runs found(branch="renovate/submodule-updates") { "result": { "total_count": 0, "check_runs": [] } } DEBUG: Branch status yellow(branch="renovate/submodule-updates") DEBUG: Skipping assignees and reviewers as automerge=true(branch="renovate/submodule-updates") DEBUG: Created Pull Request #222(branch="renovate/submodule-updates") DEBUG: PR is configured for automerge(branch="renovate/submodule-updates") DEBUG: Checking schedule(at any time, null)(branch="renovate/submodule-updates") DEBUG: No schedule defined(branch="renovate/submodule-updates") DEBUG: resolveBranchStatus(branchName=renovate/submodule-updates, ignoreTests=false)(branch="renovate/submodule-updates") DEBUG: getBranchStatus(renovate/submodule-updates)(branch="renovate/submodule-updates") DEBUG: branch status check result(branch="renovate/submodule-updates") { "state": "pending", "statuses": [] } DEBUG: No check runs found(branch="renovate/submodule-updates") { "result": { "total_count": 0, "check_runs": [] } } DEBUG: Branch status yellow(branch="renovate/submodule-updates") DEBUG: PR is not ready for merge (branch status is yellow)(branch="renovate/submodule-updates") DEBUG: Setting current branch to main(branch="renovate/mocha-9.x") DEBUG: latest commit(branch="renovate/mocha-9.x") { "branchName": "main", "latestCommitDate": "2022-06-20T08:41:12+10:00" } DEBUG: getBranchPr(renovate/mocha-9.x)(branch="renovate/mocha-9.x") DEBUG: findPr(renovate/mocha-9.x, undefined, open)(branch="renovate/mocha-9.x") DEBUG: Found PR #218(branch="renovate/mocha-9.x") DEBUG: branchExists=true(branch="renovate/mocha-9.x") DEBUG: dependencyDashboardCheck=undefined(branch="renovate/mocha-9.x") DEBUG: PR rebase requested=false(branch="renovate/mocha-9.x") DEBUG: Checking if PR has been edited(branch="renovate/mocha-9.x") DEBUG: Branch has not been modified(branch="renovate/mocha-9.x") { "branchName": "renovate/mocha-9.x" } DEBUG: Found existing branch PR(branch="renovate/mocha-9.x") DEBUG: Checking schedule(at any time, null)(branch="renovate/mocha-9.x") DEBUG: No schedule defined(branch="renovate/mocha-9.x") DEBUG: Branch already exists(branch="renovate/mocha-9.x") DEBUG: getBranchPr(renovate/mocha-9.x)(branch="renovate/mocha-9.x") DEBUG: findPr(renovate/mocha-9.x, undefined, open)(branch="renovate/mocha-9.x") DEBUG: Found PR #218(branch="renovate/mocha-9.x") DEBUG: GitHub 404(branch="renovate/mocha-9.x") { "url": "repos/uselagoon/lagoon-examples/branches/main/protection" } DEBUG: No branch protection found(branch="renovate/mocha-9.x") DEBUG: Skipping stale branch check due to rebaseWhen=auto(branch="renovate/mocha-9.x") DEBUG: isBranchConflicted(main, renovate/mocha-9.x)(branch="renovate/mocha-9.x") DEBUG: Branch does not need rebasing(branch="renovate/mocha-9.x") DEBUG: Using reuseExistingBranch: true(branch="renovate/mocha-9.x") DEBUG: manager.getUpdatedPackageFiles() reuseExistinbranch=true(branch="renovate/mocha-9.x") DEBUG: npm.updateDependency(): dependencies.mocha = 9.2.2(branch="renovate/mocha-9.x") DEBUG: No package files need updating(branch="renovate/mocha-9.x") DEBUG: Getting updated lock files(branch="renovate/mocha-9.x") DEBUG: Writing package.json files(branch="renovate/mocha-9.x") { "packageFiles": [ "package.json" ] } DEBUG: Writing any updated package files(branch="renovate/mocha-9.x") DEBUG: No updated lock files in branch(branch="renovate/mocha-9.x") DEBUG: No files to commit(branch="renovate/mocha-9.x") DEBUG: Checking if we can automerge branch(branch="renovate/mocha-9.x") DEBUG: mergeStatus=no automerge(branch="renovate/mocha-9.x") DEBUG: Ensuring PR(branch="renovate/mocha-9.x") DEBUG: There are 0 errors and 0 warnings(branch="renovate/mocha-9.x") DEBUG: getBranchPr(renovate/mocha-9.x)(branch="renovate/mocha-9.x") DEBUG: findPr(renovate/mocha-9.x, undefined, open)(branch="renovate/mocha-9.x") DEBUG: Found PR #218(branch="renovate/mocha-9.x") DEBUG: Found existing PR(branch="renovate/mocha-9.x") DEBUG: Processing existing PR(branch="renovate/mocha-9.x") DEBUG: Pull Request #218 does not need updating(branch="renovate/mocha-9.x") DEBUG: PR is not configured for automerge(branch="renovate/mocha-9.x") DEBUG: Setting current branch to main(branch="renovate/mocha-10.x") DEBUG: latest commit(branch="renovate/mocha-10.x") { "branchName": "main", "latestCommitDate": "2022-06-20T08:41:12+10:00" } DEBUG: getBranchPr(renovate/mocha-10.x)(branch="renovate/mocha-10.x") DEBUG: findPr(renovate/mocha-10.x, undefined, open)(branch="renovate/mocha-10.x") DEBUG: Found PR #221(branch="renovate/mocha-10.x") DEBUG: branchExists=true(branch="renovate/mocha-10.x") DEBUG: dependencyDashboardCheck=undefined(branch="renovate/mocha-10.x") DEBUG: PR rebase requested=false(branch="renovate/mocha-10.x") DEBUG: Checking if PR has been edited(branch="renovate/mocha-10.x") DEBUG: Branch has not been modified(branch="renovate/mocha-10.x") { "branchName": "renovate/mocha-10.x" } DEBUG: Found existing branch PR(branch="renovate/mocha-10.x") DEBUG: Checking schedule(at any time, null)(branch="renovate/mocha-10.x") DEBUG: No schedule defined(branch="renovate/mocha-10.x") DEBUG: Branch already exists(branch="renovate/mocha-10.x") DEBUG: getBranchPr(renovate/mocha-10.x)(branch="renovate/mocha-10.x") DEBUG: findPr(renovate/mocha-10.x, undefined, open)(branch="renovate/mocha-10.x") DEBUG: Found PR #221(branch="renovate/mocha-10.x") DEBUG: Skipping stale branch check due to rebaseWhen=auto(branch="renovate/mocha-10.x") DEBUG: isBranchConflicted(main, renovate/mocha-10.x)(branch="renovate/mocha-10.x") DEBUG: Branch does not need rebasing(branch="renovate/mocha-10.x") DEBUG: Using reuseExistingBranch: true(branch="renovate/mocha-10.x") DEBUG: manager.getUpdatedPackageFiles() reuseExistinbranch=true(branch="renovate/mocha-10.x") DEBUG: npm.updateDependency(): dependencies.mocha = 10.0.0(branch="renovate/mocha-10.x") DEBUG: No package files need updating(branch="renovate/mocha-10.x") DEBUG: Getting updated lock files(branch="renovate/mocha-10.x") DEBUG: Writing package.json files(branch="renovate/mocha-10.x") { "packageFiles": [ "package.json" ] } DEBUG: Writing any updated package files(branch="renovate/mocha-10.x") DEBUG: No updated lock files in branch(branch="renovate/mocha-10.x") DEBUG: No files to commit(branch="renovate/mocha-10.x") DEBUG: Checking if we can automerge branch(branch="renovate/mocha-10.x") DEBUG: mergeStatus=no automerge(branch="renovate/mocha-10.x") DEBUG: Ensuring PR(branch="renovate/mocha-10.x") DEBUG: There are 0 errors and 0 warnings(branch="renovate/mocha-10.x") DEBUG: getBranchPr(renovate/mocha-10.x)(branch="renovate/mocha-10.x") DEBUG: findPr(renovate/mocha-10.x, undefined, open)(branch="renovate/mocha-10.x") DEBUG: Found PR #221(branch="renovate/mocha-10.x") DEBUG: Found existing PR(branch="renovate/mocha-10.x") DEBUG: Processing existing PR(branch="renovate/mocha-10.x") DEBUG: Pull Request #221 does not need updating(branch="renovate/mocha-10.x") DEBUG: PR is not configured for automerge(branch="renovate/mocha-10.x") DEBUG: getBranchPr(renovate/submodule-updates) DEBUG: findPr(renovate/submodule-updates, undefined, open) DEBUG: Found PR #222 DEBUG: getBranchPr(renovate/mocha-9.x) DEBUG: findPr(renovate/mocha-9.x, undefined, open) DEBUG: Found PR #218 DEBUG: getBranchPr(renovate/mocha-10.x) DEBUG: findPr(renovate/mocha-10.x, undefined, open) DEBUG: Found PR #221 DEBUG: Ensuring Dependency Dashboard DEBUG: ensureIssue(Dependency Dashboard) DEBUG: Patching issue DEBUG: Issue updated DEBUG: Removing any stale branches DEBUG: config.repoIsOnboarded=true DEBUG: Branch lists { "branchList": [ "renovate/mocha-10.x", "renovate/mocha-9.x", "renovate/submodule-updates" ], "renovateBranches": [ "renovate/mocha-10.x", "renovate/mocha-9.x", "renovate/submodule-updates" ] } DEBUG: remainingBranches= DEBUG: No branches to clean up DEBUG: Cleaning up Renovate refs: refs/renovate/* DEBUG: PackageFiles.clear() - Package files deleted { "baseBranches": [ "main" ] } DEBUG: Repo is activated DEBUG: Renovate repository PR statistics { "stats": { "total": 215, "open": 3, "closed": 2, "merged": 210 } } DEBUG: Repository result: done, status: activated, enabled: true, onboarded: true DEBUG: Repository timing splits (milliseconds) { "splits": { "init": 2482, "extract": 4745, "lookup": 1111, "update": 8652 }, "total": 20347 } DEBUG: http statistics { "urls": { "https://api.github.com/graphql (POST,200)": 2, "https://api.github.com/repos/renovatebot/spring-remediations/contents/base.json (GET,200)": 1, "https://api.github.com/repos/renovatebot/spring-remediations/contents/default.json (GET,200)": 1, "https://api.github.com/repos/uselagoon/lagoon-examples/branches/main/protection (GET,404)": 1, "https://api.github.com/repos/uselagoon/lagoon-examples/commits/renovate/submodule-updates/check-runs (GET,200)": 1, "https://api.github.com/repos/uselagoon/lagoon-examples/commits/renovate/submodule-updates/status (GET,200)": 1, "https://api.github.com/repos/uselagoon/lagoon-examples/contents/renovate.json (GET,200)": 1, "https://api.github.com/repos/uselagoon/lagoon-examples/git/commits (POST,201)": 1, "https://api.github.com/repos/uselagoon/lagoon-examples/git/refs (POST,201)": 1, "https://api.github.com/repos/uselagoon/lagoon-examples/git/trees (POST,201)": 1, "https://api.github.com/repos/uselagoon/lagoon-examples/issues/20 (GET,200)": 2, "https://api.github.com/repos/uselagoon/lagoon-examples/issues/20 (PATCH,200)": 1, "https://api.github.com/repos/uselagoon/lagoon-examples/pulls (GET,200)": 1, "https://api.github.com/repos/uselagoon/lagoon-examples/pulls (POST,201)": 1, "https://api.github.com/repos/whitesource/merge-confidence/contents/beta.json (GET,200)": 1 }, "hostStats": { "api.github.com": { "requestCount": 17, "requestAvgMs": 290, "queueAvgMs": 0 } }, "totalRequests": 17 } INFO: Repository finished { "durationMs": 20347 } ```

Have you created a minimal reproduction repository?

No reproduction, but I have linked to a public repo where it occurs

JamieMagee commented 2 years ago

It doesn't look like there's any changes to the git-submodule manager recently, but the bug reliably reproduces your branch rebasing 🤔

I'll need to reproduce this locally and debug it to get some more info, as nothing really sticks out in the logs at first glance.

mowies commented 2 years ago

We have the same issue in keptn/keptn. Here is an example Renovate PR: https://github.com/keptn/keptn/pull/8107

github-actions[bot] commented 2 years ago

Hi there,

Get your issue fixed faster by creating a minimal reproduction. This means a repository dedicated to reproducing this issue with the minimal dependencies and config possible.

Before we start working on your issue we need to know exactly what's causing the current behavior. A minimal reproduction helps us with this.

To get started, please read our guide on creating a minimal reproduction.

We may close the issue if you, or someone else, haven't created a minimal reproduction within two weeks. If you need more time, or are stuck, please ask for help or more time in a comment.

Good luck,

The Renovate team

rarkins commented 2 years ago

We have the same issue in keptn/keptn. Here is an example Renovate PR: https://github.com/keptn/keptn/pull/8107

Without explanation, this looks like a perfectly valid PR

mowies commented 2 years ago

Sorry, you are very right :D

When you check the commit history in https://github.com/keptn/keptn/pull/8107, you will see that I manually re-added the submodule after the initial commit by renovate.

The commit by renovate: keptn/keptn@4de2575 (#8107) My follow-up commit to re-add the submodule: keptn/keptn@5792330 (#8107)

tobybellwood commented 2 years ago

We first saw it happen in the main branch (branch strategy, no required checks) so I reverted there and changed renovate to a PR strategy with required checks to hopefully trap the error. Our CI does the submodule sync and update too, and that worked fine

I can try and get a minimal repro up tomorrow.

rarkins commented 2 years ago

@mowies thanks! I missed that when looking from mobile. When was the last similar PR which you think worked? i.e. updated the same files as this one which removed a submodule.

Searching the logs from that commit, I unfortunately don't see any logs related to "submodule" or "specification" which give us a hint

rarkins commented 2 years ago

The last time we made changes to our git files at all (i.e. for any reason, not just submodules) was 2 months ago: https://github.com/renovatebot/renovate/commits/main/lib/util/git

mowies commented 2 years ago

So the last renovate PR I merged was on June 14th and that one was still fine (link: https://github.com/keptn/keptn/pull/8067). It didn't include the same files but I am not sure whether this issue is actually related to specific files. I have a few PRs that were opened or updated by renovate today (June 20th) with different files that all have the submodule removed. (https://github.com/keptn/keptn/pull/7981, https://github.com/keptn/keptn/pull/7980, https://github.com/keptn/keptn/pull/8085, https://github.com/keptn/keptn/pull/7992)

rarkins commented 2 years ago

I'm pretty sure I know what changed: I set platformCommit=true for all public repos in the app. This is a setting we had been testing ourselves, but I guess we never had or hit a submodule problem.

For now I'll add manual rules to your repos before deciding whether to roll back the setting. Any reproduction is still appreciated!

FYI @zharinov

rarkins commented 2 years ago

@mowies could you try requesting a rebase retry on one of your PRs now?

mowies commented 2 years ago

Requested a rebase here: https://github.com/keptn/keptn/pull/8085

rarkins commented 2 years ago

BTW this can only be reproduced with an app token, i.e. in the app, because the platform commit feature is restricted to apps only

rarkins commented 2 years ago

Requested a rebase here: keptn/keptn#8085

I think the problem has been resolved. Subtle change, but the committer for that is back to renovate-bot instead of renovate[bot]

For anyone else reading this who wishes to fix this themselves, the solution is to configure platformCommit=false in your repo config

tobybellwood commented 2 years ago

nice - that fixed me up too - https://github.com/uselagoon/lagoon-examples/pull/222

Is this something we need to persist - or are you going to fix it in the backend?

rarkins commented 2 years ago

My goal is that we will figure out a way to fix it in the backend. I added a rule for your repo manually in our backend for now so that you don't need the config manually.

rarkins commented 2 years ago

Note to self: keptn has cloneSubmodules=true although lagoon-examples does not (it has git-submodules enabled however).

JustArchi commented 2 years ago

@rarkins Just to let you know, I see exactly the same issue in my ASF repo: https://github.com/JustArchiNET/ArchiSteamFarm/tree/renovate/asf-ui-digest. The issue is happening since approx 6 days from now, so 3 days before opening this issue.

I don't have anything fancy in my config, and it still fails, so I believe reverting whatever that change was until it's fixed is warranted. Thank you in advance for looking into it, and feel free to clone/test on my repo with ASF-ui module if you'd like to.

{
    "$schema": "https://docs.renovatebot.com/renovate-schema.json",
    "extends": [
        "config:base",
        ":assignee(JustArchi)",
        ":automergeBranch",
        ":automergeDigest",
        ":automergeMinor",
        ":disableDependencyDashboard",
        ":disableRateLimiting",
        ":label(🤖 Automatic)"
    ],
    "git-submodules": {
        "enabled": true
    },
    "packageRules": [
        {
            // TODO: <= 3.1 for Mono support, last failed version 6.12, https://steamcommunity.com/groups/archiasf/discussions/1/2997673517556002529
            "allowedVersions": "<= 3.1",
            "matchManagers": [ "nuget" ],
            "matchPackageNames": [ "Microsoft.Extensions.Configuration.Json", "Microsoft.Extensions.Logging.Configuration" ]
        },
        {
            // TODO: https://github.com/AngleSharp/AngleSharp.XPath/issues/36
            "allowedVersions": "< 2.0",
            "matchManagers": [ "nuget" ],
            "matchPackageNames": [ "AngleSharp.XPath" ]
        }
    ]
}
renovate-release commented 2 years ago

:tada: This issue has been resolved in version 32.94.1 :tada:

The release is available on:

Your semantic-release bot :package::rocket: