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

Pull Requests created and closed in an infinite loop #9042

Closed onigoetz closed 3 years ago

onigoetz commented 3 years ago

What Renovate type, platform and version are you using?

Describe the bug

A pull Request for minor dependencies updates is created, then closed then on the next run a new one is created. And goes in a forever loop. I'm 100% sure that it's renovate that closes the issue

Screenshot_2021-03-09 sq sq-web-platform

Screenshot_2021-03-09 Update all non-major dependencies by renovate · Pull Request #468 · sq sq-web-platform

Relevant debug logs

I can't publish the logs as they are from an internal repository, Is it possible for me to send them by email somehow ?

Have you created a minimal reproduction repository?

Please read the minimal reproductions documentation to learn how to make a good minimal reproduction repository.

I would have time, but can't share a private repository :/

Additional context

I've had this error a few times already, including in public repositories but can't find which ones (when this happens I try to merge as fast as possible as to not create hundreds of PRs.)

rarkins commented 3 years ago

Exactly how are you running Renovate? Your screenshot shows renovate[bot] but that's an app setup, which is not natively supported by the renovate/renovate image. Have you written some type of custom wrapper?

rarkins commented 3 years ago

As a general guide: if logs are too long for you to be able to sanitize and post, then they're probably also too long for anyone else to review. Focus on a minimal reproduction, sanitize, and share. But tell us more about your exact config first.

onigoetz commented 3 years ago

Yes, I wrote a wrapper that basically runs the Renovate docker image every hour and passes an app token to it.

That's the thing, it only happens on some repositories, it's not reproducible easily on smaller repositories, it seems to happen in cases there are a lot of dependencies updates at the same time.

I understand your point about the logs and I completely agree, but I've never seen this happen on smaller repositories.

It seems I was only able to catch the logs when the PR is re-created, I will try to catch the logs when the PR is closed and extract the lines of useful information from it and come back to you.

rarkins commented 3 years ago

You really need to be capturing debug logs at all times, and make sure they're timestamped. Then look at the commit that caused the branch to close, and correlate it to the logs.

It's helpful if you can generalize on the observations, e.g. does it only happen for "all" repositories, does it only happen for certain package managers, does it only happen on big repositories, etc. That type of information may help.

I assume that Renovate is the only bot you have using that identity too? i.e. you don't have any other scripts which also run with the same app token?

Finally, the full config is relevant, including bot config, repository config, and any presets they extend.

onigoetz commented 3 years ago

yes It's configured to keep only the latest logs, indeed it seems now to be a good idea to also keep older logs :D

yes, renovate is the only app with this specific token, and the scheduler doesn't do any work on the repositories themselves.

We use only two package managers : npm/yarn and maven

My hunch is that happens mainly because of yarn but have nothing to prove it. I will attach the full configuration with the logs as soon as I can get a proper one

onigoetz commented 3 years ago
Shorter Summary `grep -E "472|31307ee|e2a3bdc" -B 5 -A 5` ``` DEBUG: currentHourStart=2021-03-09T12:00:00.000+00:00 (repository=sq/sq-web-platform) DEBUG: PR hourly limit remaining: 2 (repository=sq/sq-web-platform) DEBUG: Calculating prConcurrentLimit (10) (repository=sq/sq-web-platform) DEBUG: getBranchPr(renovate/all-minor-patch) (repository=sq/sq-web-platform) DEBUG: findPr(renovate/all-minor-patch, undefined, open) (repository=sq/sq-web-platform) DEBUG: Found PR #472 (repository=sq/sq-web-platform) DEBUG: Returning from graphql open PR list (repository=sq/sq-web-platform) DEBUG: getBranchPr(renovate/react-17.x) (repository=sq/sq-web-platform) DEBUG: findPr(renovate/react-17.x, undefined, open) (repository=sq/sq-web-platform) DEBUG: getBranchPr(renovate/react-dom-17.x) (repository=sq/sq-web-platform) DEBUG: findPr(renovate/react-dom-17.x, undefined, open) (repository=sq/sq-web-platform) -- DEBUG: latest commit (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "branchName": "master", "latestCommitDate": "2021-01-26T09:42:14+01:00" DEBUG: getBranchPr(renovate/all-minor-patch) (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: findPr(renovate/all-minor-patch, undefined, open) (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Found PR #472 (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Returning from graphql open PR list (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: branchExists=true (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Branch pr rebase requested: false (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Branch has 33 upgrade(s) (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Checking if PR has been edited (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) -- DEBUG: Checking schedule(at any time, null) (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: No schedule defined (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Branch already exists (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: getBranchPr(renovate/all-minor-patch) (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: findPr(renovate/all-minor-patch, undefined, open) (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Found PR #472 (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Returning from graphql open PR list (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Branch is up-to-date (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Branch does not need rebasing (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Using reuseExistingBranch: true (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: manager.getUpdatedPackageFiles() reuseExistinbranch=true (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) -- DEBUG: mergeStatus=no automerge (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Ensuring PR (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: There are 0 errors and 0 warnings (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: getBranchPr(renovate/all-minor-patch) (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: findPr(renovate/all-minor-patch, undefined, open) (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Found PR #472 (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Returning from graphql open PR list (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Found existing PR (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Removing duplicate release notes (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "depName": "@swissquote/crafty-preset-babel" DEBUG: Removing duplicate release notes (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) -- DEBUG: getBranchStatus(renovate/all-minor-patch) (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: branch status check result (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "state": "pending", "statuses": [ { "url": "https://github.bank.swissquote.ch/api/v3/repos/sq/sq-web-platform/statuses/31307ee31877ffd87ebaa6cbe9a1342d27ffd4c8", "avatar_url": "https://github.bank.swissquote.ch/avatars/u/10?", "id": 4089498, "node_id": "MDEzOlN0YXR1c0NvbnRleHQ0MDg5NDk4", "state": "pending", "description": "This commit is being built", -- DEBUG: getBranchStatus(renovate/all-minor-patch) (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: branch status check result (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "state": "pending", "statuses": [ { "url": "https://github.bank.swissquote.ch/api/v3/repos/sq/sq-web-platform/statuses/31307ee31877ffd87ebaa6cbe9a1342d27ffd4c8", "avatar_url": "https://github.bank.swissquote.ch/avatars/u/10?", "id": 4089498, "node_id": "MDEzOlN0YXR1c0NvbnRleHQ0MDg5NDk4", "state": "pending", "description": "This commit is being built", -- DEBUG: getBranchStatus() result (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "branchStatus": "yellow", "branchName": "renovate/all-minor-patch" DEBUG: PR body changed (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "prTitle": "Update all non-major dependencies" DEBUG: updatePr(472, Update all non-major dependencies, body) (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: PR updated (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "pr": 472 INFO: PR updated (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "pr": 472, "prTitle": "Update all non-major dependencies" DEBUG: Retrieved closed PR list with graphql (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "prNumbers": [ 1, 10, -- 468, 469, 47, 470, 471, 472, 48, 49, 5, 50, 51, -- 97, 98, 99 ] DEBUG: Returning closed PR list comments (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Checking #472 for automerge (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "automerge": true, "automergeType": "pr", "automergeComment": "automergeComment" DEBUG: PR is configured for automerge (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: getBranchStatus(renovate/all-minor-patch) (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: branch status check result (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "state": "pending", "statuses": [ { "url": "https://github.bank.swissquote.ch/api/v3/repos/sq/sq-web-platform/statuses/31307ee31877ffd87ebaa6cbe9a1342d27ffd4c8", "avatar_url": "https://github.bank.swissquote.ch/avatars/u/10?", "id": 4089498, "node_id": "MDEzOlN0YXR1c0NvbnRleHQ0MDg5NDk4", "state": "pending", "description": "This commit is being built", -- "prTitle": "Update react monorepo to v17 (major)" DEBUG: Merged PR is blocking this branch (repository=sq/sq-web-platform, branch=renovate/major-react-monorepo) "pr": 240 DEBUG: getBranchPr(renovate/all-minor-patch) (repository=sq/sq-web-platform) DEBUG: findPr(renovate/all-minor-patch, undefined, open) (repository=sq/sq-web-platform) DEBUG: Found PR #472 (repository=sq/sq-web-platform) DEBUG: Returning from graphql open PR list (repository=sq/sq-web-platform) DEBUG: Removing any stale branches (repository=sq/sq-web-platform) DEBUG: config.repoIsOnboarded=true (repository=sq/sq-web-platform) DEBUG: Branch lists (repository=sq/sq-web-platform) "branchList": [ ```
Longer Summary `grep -E "472|31307ee|e2a3bdc|all-minor-patch" -B 5 -A 5` ``` DEBUG: processRepo() (repository=sq/sq-web-platform) DEBUG: Processing 4 branches: renovate/all-minor-patch, renovate/major-react-monorepo, renovate/react-17.x, renovate/react-dom-17.x (repository=sq/sq-web-platform) DEBUG: Calculating hourly PRs remaining (repository=sq/sq-web-platform) DEBUG: Retrieving PR list (repository=sq/sq-web-platform) DEBUG: Retrieved 453 Pull Requests (repository=sq/sq-web-platform) DEBUG: currentHourStart=2021-03-09T12:00:00.000+00:00 (repository=sq/sq-web-platform) DEBUG: PR hourly limit remaining: 2 (repository=sq/sq-web-platform) DEBUG: Calculating prConcurrentLimit (10) (repository=sq/sq-web-platform) DEBUG: getBranchPr(renovate/all-minor-patch) (repository=sq/sq-web-platform) DEBUG: findPr(renovate/all-minor-patch, undefined, open) (repository=sq/sq-web-platform) DEBUG: Found PR #472 (repository=sq/sq-web-platform) DEBUG: Returning from graphql open PR list (repository=sq/sq-web-platform) DEBUG: getBranchPr(renovate/react-17.x) (repository=sq/sq-web-platform) DEBUG: findPr(renovate/react-17.x, undefined, open) (repository=sq/sq-web-platform) DEBUG: getBranchPr(renovate/react-dom-17.x) (repository=sq/sq-web-platform) DEBUG: findPr(renovate/react-dom-17.x, undefined, open) (repository=sq/sq-web-platform) -- DEBUG: PR concurrent limit remaining: 9 (repository=sq/sq-web-platform) DEBUG: Calculated maximum PRs remaining this run (repository=sq/sq-web-platform) "prsRemaining": 2 DEBUG: PullRequests limit = 2 (repository=sq/sq-web-platform) DEBUG: Calculating branchConcurrentLimit (10) (repository=sq/sq-web-platform) DEBUG: 1 already existing branches found: renovate/all-minor-patch (repository=sq/sq-web-platform) DEBUG: Branch concurrent limit remaining: 9 (repository=sq/sq-web-platform) DEBUG: Calculated maximum branches remaining this run (repository=sq/sq-web-platform) "branchesRemaining": 9 DEBUG: Branches limit = 9 (repository=sq/sq-web-platform) DEBUG: processBranch with 40 upgrades (repository=sq/sq-web-platform, dependencies=@swissquote/crafty,@swissquote/crafty-preset-babel,@swissquote/crafty-preset-jest,@swissquote/crafty-preset-typescript,@swissquote/crafty-runner-gulp,@swissquote/crafty-runner-webpack,@types/jest,@types/jquery,@types/react,@types/react-dom,core-js,oao,com.github.eirslett:frontend-maven-plugin,org.apache.maven.plugins:maven-pmd-plugin,com.swissquote:sq-modular-sandbox-maven-plugin,com.swissquote.test:testng-kubernetes-sandbox-listener,com.swissquote.test:testng-frontend-test,com.swissquote.test:test-authentication,com.swissquote.test:testng-retry-listener,com.swissquote.test:testng-test-order-randomizer-listener,com.swissquote.test:testng-allure-story-reporter-listener,com.swissquote.test:testng-failfast-listener,com.swissquote.test:testng-failsafe-listener,com.swissquote.foundation:carnotzet-orchestrator-kubernetes,com.swissquote.foundation:sq-modular-sandbox-junit4,com.swissquote.foundation:sq-web-assets-lib,com.fasterxml.jackson:jackson-bom,com.swissquote.foundation:sq-i18n-js,org.projectlombok:lombok,org.assertj:assertj-core,io.qameta.allure:allure-testng,org.testng:testng,com.swissquote:sq-parent-pom, branch=renovate/all-minor-patch) DEBUG: Setting current branch to master (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: latest commit (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "branchName": "master", "latestCommitDate": "2021-01-26T09:42:14+01:00" DEBUG: getBranchPr(renovate/all-minor-patch) (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: findPr(renovate/all-minor-patch, undefined, open) (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Found PR #472 (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Returning from graphql open PR list (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: branchExists=true (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Branch pr rebase requested: false (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Branch has 33 upgrade(s) (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Checking if PR has been edited (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Found existing branch PR (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Checking schedule(at any time, null) (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: No schedule defined (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Branch already exists (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: getBranchPr(renovate/all-minor-patch) (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: findPr(renovate/all-minor-patch, undefined, open) (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Found PR #472 (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Returning from graphql open PR list (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Branch is up-to-date (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Branch does not need rebasing (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Using reuseExistingBranch: true (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: manager.getUpdatedPackageFiles() reuseExistinbranch=true (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: npm.updateDependency(): devDependencies.@swissquote/crafty = 1.14.0 (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: npm.updateDependency(): devDependencies.@swissquote/crafty = 1.14.0 (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: npm.updateDependency(): devDependencies.@swissquote/crafty-preset-babel = 1.14.0 (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: npm.updateDependency(): devDependencies.@swissquote/crafty-preset-jest = 1.14.0 (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: npm.updateDependency(): devDependencies.@swissquote/crafty-preset-typescript = 1.14.0 (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: npm.updateDependency(): devDependencies.@swissquote/crafty-preset-typescript = 1.14.0 (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: npm.updateDependency(): devDependencies.@swissquote/crafty-runner-gulp = 1.14.0 (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: npm.updateDependency(): devDependencies.@swissquote/crafty-runner-gulp = 1.14.0 (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: npm.updateDependency(): devDependencies.@swissquote/crafty-runner-webpack = 1.14.0 (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: npm.updateDependency(): devDependencies.@swissquote/crafty-runner-webpack = 1.14.0 (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: npm.updateDependency(): devDependencies.@types/jest = ^26.0.15 (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: npm.updateDependency(): devDependencies.@types/jest = ^26.0.15 (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: npm.updateDependency(): dependencies.@types/jquery = ^3.5.4 (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: npm.updateDependency(): devDependencies.@types/react = ^16.14.2 (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: npm.updateDependency(): devDependencies.@types/react-dom = ^16.9.10 (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: npm.updateDependency(): devDependencies.core-js = 3.9.1 (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: npm.updateDependency(): dependencies.oao = 2.0.1 (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: No package files need updating (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Getting updated lock files (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Writing package.json files (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "packageFiles": [ "server/package.json", "server/packages/squp-react/package.json", "server/packages/squp/package.json" ] DEBUG: Writing any updated package files (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: No npmrc file found in repository (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Writing updated .npmrc file to /tmp/renovate/repos/github/sq/sq-web-platform/server/.npmrc (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Generating yarn.lock for server (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Spawning yarn install to create /tmp/renovate/repos/github/sq/sq-web-platform/server/yarn.lock (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Updating yarn.lock only - skipping node_modules (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: No node constraint found - using latest (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Performing lockfileUpdate (yarn) (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Performing yarn dedupe fewer (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Executing command (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "command": "yarn install --ignore-engines --ignore-platform --network-timeout 100000" DEBUG: exec completed (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "cmd": "yarn install --ignore-engines --ignore-platform --network-timeout 100000", "durationMs": 104692, "stdout": "yarn install v1.22.10\n[1/4] Resolving packages...\n[2/4] Fetching packages...\n[3/4] Linking dependencies...\n[4/4] Building fresh packages...\nDone in 104.03s.\n", "stderr": "warning \" > squp-react@2.0.0-SNAPSHOT\" has unmet peer dependency \"react@^15.0.0 || ^16.0.0 || ^17.0.0\".\nwarning \" > squp-react@2.0.0-SNAPSHOT\" has unmet peer dependency \"react-dom@^15.0.0 || ^16.0.0 || ^17.0.0\".\nwarning \"workspace-aggregator-1074c245-6b9a-4deb-be3e-d331a14e60ec > squp-react > @swissquote/crafty-preset-typescript > @rollup/plugin-babel@5.2.1\" has unmet peer dependency \"rollup@^1.20.0||^2.0.0\".\nwarning \"workspace-aggregator-1074c245-6b9a-4deb-be3e-d331a14e60ec > squp-react > @swissquote/crafty-preset-typescript > babel-loader@8.1.0\" has unmet peer dependency \"webpack@>=2\".\nwarning \"workspace-aggregator-1074c245-6b9a-4deb-be3e-d331a14e60ec > squp-react > @swissquote/crafty-preset-typescript > rollup-plugin-typescript2@0.28.0\" has unmet peer dependency \"rollup@>=1.26.3\".\nwarning \"workspace-aggregator-1074c245-6b9a-4deb-be3e-d331a14e60ec > squp-react > @swissquote/crafty-preset-typescript > ts-jest@26.4.2\" has unmet peer dependency \"jest@>=26 <27\".\nwarning \"workspace-aggregator-1074c245-6b9a-4deb-be3e-d331a14e60ec > squp-react > @swissquote/crafty-preset-typescript > @rollup/plugin-babel > @rollup/pluginutils@3.1.0\" has unmet peer dependency \"rollup@^1.20.0||^2.0.0\".\nwarning \"workspace-aggregator-1074c245-6b9a-4deb-be3e-d331a14e60ec > squp-react > @swissquote/crafty-preset-typescript > @swissquote/crafty-preset-eslint > eslint-loader@4.0.2\" has unmet peer dependency \"webpack@^4.0.0 || ^5.0.0\".\nwarning \"workspace-aggregator-1074c245-6b9a-4deb-be3e-d331a14e60ec > squp-react > @swissquote/crafty-preset-typescript > @swissquote/crafty-preset-eslint > @swissquote/eslint-plugin-swissquote > eslint-plugin-sonarjs@0.5.0\" has incorrect peer dependency \"eslint@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0\".\nwarning \"workspace-aggregator-1074c245-6b9a-4deb-be3e-d331a14e60ec > squp-react > @swissquote/crafty-preset-typescript > @swissquote/crafty-preset-eslint > @swissquote/rollup-plugin-eslint > @rollup/pluginutils@4.0.0\" has unmet peer dependency \"rollup@^1.20.0||^2.0.0\".\n" DEBUG: Executing command (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "command": "yarn upgrade @types/jest @types/jest @types/jquery @types/react @types/react-dom --ignore-engines --ignore-platform --network-timeout 100000" DEBUG: exec completed (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "cmd": "yarn upgrade @types/jest @types/jest @types/jquery @types/react @types/react-dom --ignore-engines --ignore-platform --network-timeout 100000", "durationMs": 14356, "stdout": "yarn upgrade v1.22.10\n[1/4] Resolving packages...\n[2/4] Fetching packages...\n[3/4] Linking dependencies...\n[4/4] Rebuilding all packages...\nsuccess Saved lockfile.\nsuccess Saved 0 new dependencies.\nDone in 14.03s.\n", "stderr": "warning \" > squp-react@2.0.0-SNAPSHOT\" has unmet peer dependency \"react@^15.0.0 || ^16.0.0 || ^17.0.0\".\nwarning \" > squp-react@2.0.0-SNAPSHOT\" has unmet peer dependency \"react-dom@^15.0.0 || ^16.0.0 || ^17.0.0\".\nwarning \"workspace-aggregator-edc4874b-2e9b-4480-8809-84e7d3b64df9 > squp-react > @swissquote/crafty-preset-typescript > @rollup/plugin-babel@5.2.1\" has unmet peer dependency \"rollup@^1.20.0||^2.0.0\".\nwarning \"workspace-aggregator-edc4874b-2e9b-4480-8809-84e7d3b64df9 > squp-react > @swissquote/crafty-preset-typescript > babel-loader@8.1.0\" has unmet peer dependency \"webpack@>=2\".\nwarning \"workspace-aggregator-edc4874b-2e9b-4480-8809-84e7d3b64df9 > squp-react > @swissquote/crafty-preset-typescript > rollup-plugin-typescript2@0.28.0\" has unmet peer dependency \"rollup@>=1.26.3\".\nwarning \"workspace-aggregator-edc4874b-2e9b-4480-8809-84e7d3b64df9 > squp-react > @swissquote/crafty-preset-typescript > ts-jest@26.4.2\" has unmet peer dependency \"jest@>=26 <27\".\nwarning \"workspace-aggregator-edc4874b-2e9b-4480-8809-84e7d3b64df9 > squp-react > @swissquote/crafty-preset-typescript > @rollup/plugin-babel > @rollup/pluginutils@3.1.0\" has unmet peer dependency \"rollup@^1.20.0||^2.0.0\".\nwarning \"workspace-aggregator-edc4874b-2e9b-4480-8809-84e7d3b64df9 > squp-react > @swissquote/crafty-preset-typescript > @swissquote/crafty-preset-eslint > eslint-loader@4.0.2\" has unmet peer dependency \"webpack@^4.0.0 || ^5.0.0\".\nwarning \"workspace-aggregator-edc4874b-2e9b-4480-8809-84e7d3b64df9 > squp-react > @swissquote/crafty-preset-typescript > @swissquote/crafty-preset-eslint > @swissquote/eslint-plugin-swissquote > eslint-plugin-sonarjs@0.5.0\" has incorrect peer dependency \"eslint@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0\".\nwarning \"workspace-aggregator-edc4874b-2e9b-4480-8809-84e7d3b64df9 > squp-react > @swissquote/crafty-preset-typescript > @swissquote/crafty-preset-eslint > @swissquote/rollup-plugin-eslint > @rollup/pluginutils@4.0.0\" has unmet peer dependency \"rollup@^1.20.0||^2.0.0\".\n" DEBUG: Executing command (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "command": "npx yarn-deduplicate --strategy fewer" DEBUG: exec completed (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "cmd": "npx yarn-deduplicate --strategy fewer", "durationMs": 3237, "stdout": "", "stderr": "npx: installed 6 in 2.389s\n" DEBUG: Executing command (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "command": "yarn install --ignore-engines --ignore-platform --network-timeout 100000" DEBUG: exec completed (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "cmd": "yarn install --ignore-engines --ignore-platform --network-timeout 100000", "durationMs": 1970, "stdout": "yarn install v1.22.10\n[1/4] Resolving packages...\nsuccess Already up-to-date.\nDone in 1.66s.\n", "stderr": "" DEBUG: yarn.lock needs updating (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: updateYarnOffline resolvedPaths (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "resolvedPaths": [] DEBUG: Updated 1 lock files (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "updatedArtifacts": ["server/yarn.lock"] DEBUG: 1 file(s) to commit (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Committing files to branch renovate/all-minor-patch (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: git commit (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "result": { "author": null, "branch": "", "commit": "", "root": false, "summary": {"changes": 0, "insertions": 0, "deletions": 0} } DEBUG: git push (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "result": { "pushed": [], "branch": { "local": "renovate/all-minor-patch", "remote": "renovate/all-minor-patch", "remoteName": "origin" }, "remoteMessages": { "all": [ "executing hook for DGL-10", -- "DGL-3 is disabled, and was not validated", "DGL-5 is disabled, and was not validated" ] } } INFO: Branch updated (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "commitSha": "unknown" DEBUG: Checking if we can automerge branch (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: mergeStatus=no automerge (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Ensuring PR (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: There are 0 errors and 0 warnings (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: getBranchPr(renovate/all-minor-patch) (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: findPr(renovate/all-minor-patch, undefined, open) (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Found PR #472 (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Returning from graphql open PR list (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Found existing PR (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Removing duplicate release notes (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "depName": "@swissquote/crafty-preset-babel" DEBUG: Removing duplicate release notes (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "depName": "@swissquote/crafty-preset-jest" DEBUG: Removing duplicate release notes (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "depName": "@swissquote/crafty-preset-typescript" DEBUG: Removing duplicate release notes (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "depName": "@swissquote/crafty-runner-gulp" DEBUG: Removing duplicate release notes (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "depName": "@swissquote/crafty-runner-webpack" DEBUG: getBranchStatus(renovate/all-minor-patch) (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: branch status check result (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "state": "pending", "statuses": [ { "url": "https://github.bank.swissquote.ch/api/v3/repos/sq/sq-web-platform/statuses/31307ee31877ffd87ebaa6cbe9a1342d27ffd4c8", "avatar_url": "https://github.bank.swissquote.ch/avatars/u/10?", "id": 4089498, "node_id": "MDEzOlN0YXR1c0NvbnRleHQ0MDg5NDk4", "state": "pending", "description": "This commit is being built", "target_url": "https://jenkins.bank.swissquote.ch/swe-dtg/job/sq-web-platform/job/renovate%252Fall-minor-patch/17/display/redirect", "context": "continuous-integration/jenkins/branch", "created_at": "2021-03-09T11:21:15Z", "updated_at": "2021-03-09T11:21:15Z" } ] DEBUG: No check runs found (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "result": {"total_count": 0, "check_runs": []} DEBUG: Processing existing PR (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: getBranchStatus(renovate/all-minor-patch) (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: branch status check result (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "state": "pending", "statuses": [ { "url": "https://github.bank.swissquote.ch/api/v3/repos/sq/sq-web-platform/statuses/31307ee31877ffd87ebaa6cbe9a1342d27ffd4c8", "avatar_url": "https://github.bank.swissquote.ch/avatars/u/10?", "id": 4089498, "node_id": "MDEzOlN0YXR1c0NvbnRleHQ0MDg5NDk4", "state": "pending", "description": "This commit is being built", "target_url": "https://jenkins.bank.swissquote.ch/swe-dtg/job/sq-web-platform/job/renovate%252Fall-minor-patch/17/display/redirect", "context": "continuous-integration/jenkins/branch", "created_at": "2021-03-09T11:21:15Z", "updated_at": "2021-03-09T11:21:15Z" } ] DEBUG: No check runs found (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "result": {"total_count": 0, "check_runs": []} DEBUG: getBranchStatus() result (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "branchStatus": "yellow", "branchName": "renovate/all-minor-patch" DEBUG: PR body changed (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "prTitle": "Update all non-major dependencies" DEBUG: updatePr(472, Update all non-major dependencies, body) (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: PR updated (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "pr": 472 INFO: PR updated (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "pr": 472, "prTitle": "Update all non-major dependencies" DEBUG: Retrieved closed PR list with graphql (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "prNumbers": [ 1, 10, 100, 101, -- 468, 469, 47, 470, 471, 472, 48, 49, 5, 50, 51, -- 96, 97, 98, 99 ] DEBUG: Returning closed PR list comments (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: Checking #472 for automerge (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "automerge": true, "automergeType": "pr", "automergeComment": "automergeComment" DEBUG: PR is configured for automerge (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: getBranchStatus(renovate/all-minor-patch) (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: branch status check result (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "state": "pending", "statuses": [ { "url": "https://github.bank.swissquote.ch/api/v3/repos/sq/sq-web-platform/statuses/31307ee31877ffd87ebaa6cbe9a1342d27ffd4c8", "avatar_url": "https://github.bank.swissquote.ch/avatars/u/10?", "id": 4089498, "node_id": "MDEzOlN0YXR1c0NvbnRleHQ0MDg5NDk4", "state": "pending", "description": "This commit is being built", "target_url": "https://jenkins.bank.swissquote.ch/swe-dtg/job/sq-web-platform/job/renovate%252Fall-minor-patch/17/display/redirect", "context": "continuous-integration/jenkins/branch", "created_at": "2021-03-09T11:21:15Z", "updated_at": "2021-03-09T11:21:15Z" } ] DEBUG: No check runs found (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) "result": {"total_count": 0, "check_runs": []} DEBUG: PR is not ready for merge (branch status is yellow) (repository=sq/sq-web-platform, branch=renovate/all-minor-patch) DEBUG: processBranch with 1 upgrades (repository=sq/sq-web-platform, dependencies=@types/react, branch=renovate/react-17.x) DEBUG: Setting current branch to master (repository=sq/sq-web-platform, branch=renovate/react-17.x) DEBUG: latest commit (repository=sq/sq-web-platform, branch=renovate/react-17.x) "branchName": "master", "latestCommitDate": "2021-01-26T09:42:14+01:00" -- DEBUG: Returning from graphql closed PR list (repository=sq/sq-web-platform, branch=renovate/major-react-monorepo) DEBUG: Closed PR already exists. Skipping branch. (repository=sq/sq-web-platform, branch=renovate/major-react-monorepo) "prTitle": "Update react monorepo to v17 (major)" DEBUG: Merged PR is blocking this branch (repository=sq/sq-web-platform, branch=renovate/major-react-monorepo) "pr": 240 DEBUG: getBranchPr(renovate/all-minor-patch) (repository=sq/sq-web-platform) DEBUG: findPr(renovate/all-minor-patch, undefined, open) (repository=sq/sq-web-platform) DEBUG: Found PR #472 (repository=sq/sq-web-platform) DEBUG: Returning from graphql open PR list (repository=sq/sq-web-platform) DEBUG: Removing any stale branches (repository=sq/sq-web-platform) DEBUG: config.repoIsOnboarded=true (repository=sq/sq-web-platform) DEBUG: Branch lists (repository=sq/sq-web-platform) "branchList": [ "renovate/all-minor-patch", "renovate/major-react-monorepo", "renovate/react-17.x", "renovate/react-dom-17.x" ], "renovateBranches": ["renovate/all-minor-patch"] DEBUG: remainingBranches= (repository=sq/sq-web-platform) DEBUG: No branches to clean up (repository=sq/sq-web-platform) DEBUG: Repository timing splits (milliseconds) (repository=sq/sq-web-platform) "splits": {"init": 2532, "extract": 1883, "lookup": 8664, "update": 137258}, "total": 152778 ```
Configuration ``` DEBUG: Combined config "config": { "gitAuthor": "Renovate ", "username": "renovate[bot]", "platform": "github", "endpoint": "https://github.bank.swissquote.ch/api/v3/", "trustLevel": "high", "redisUrl": "redis://172.17.0.1", "cacheDir": "/tmp/renovate/cache", "persistRepoData": false, "logLevel": "debug", "hostRules": [ // Internal registries ], "onboardingConfig": {"extends": ["swissquote", "group:allNonMajor"]}, "repositories": ["sq/sq-web-platform"], "token": "***********" } ```

Side note: I updated this morning to Renovate 24.76.0 the problem persists

So I made a bit more investigation and I extracted this from the logs, I made a short version of the log where I extracted everything that mentions the latest commit and the PR in question (472) I also added a longer version to list everywhere the branch is mentioned

So that would make a small glossary

What seems to happen in this log:

rarkins commented 3 years ago

It thinks yarn.lock has changed:

DEBUG: yarn.lock needs updating (repository=sq/sq-web-platform, branch=renovate/all-minor-patch)

But our own commit logging shows no files have changed:

DEBUG: git commit (repository=sq/sq-web-platform, branch=renovate/all-minor-patch)
       "result": {
         "author": null,
         "branch": "",
         "commit": "",
         "root": false,
         "summary": {"changes": 0, "insertions": 0, "deletions": 0}
       }

Pushing this is what would cause the PR to be subsequently closed by GitHub.

@viceice can you think of any problem if we were to add a check after git.commit and if changes/deletions/insertions are all 0 then log a warning and abort the git.push?

viceice commented 3 years ago

no, abort should be fine

viceice commented 3 years ago

maybe line ending changes are the cause for renovate to think the lockfile has changed

onigoetz commented 3 years ago

maybe line ending changes are the cause for renovate to think the lockfile has changed

I'm not sure to follow this possibility. I thought that Renovate creates a clean single commit per branch and force-pushes it to update a PR. How does a line ending change make it so that the commit has no content ?

Just trying to understand how it can go from "the lockfile changed" to an empty commit.

You obviously know the tool and codebase way better than I do, just trying to understand :)

viceice commented 3 years ago

A line change cuses a chaneg if we compare the two files as string in javascript, but git is ignoring the last newline change by default. that can be the cause, why renovate sees a lockfile change but git did not.

onigoetz commented 3 years ago

oh okay, but does it start from the latest commit on the PR branch or from the latest commit on the HEAD ?

rarkins commented 3 years ago

It starts with the PR branch and if it detects any changes are necessary then it restarts that branch using the latest base branch commit.

renovate-release commented 3 years ago

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

The release is available on:

Your semantic-release bot :package::rocket: