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

Artifact update problem when engine.node is set to <13.0.0 #966

Closed dmt0 closed 4 years ago

dmt0 commented 4 years ago

Artifact update problem with the following message:

error my-app-name@1.0.0: The engine "node" is incompatible with this module. Expected version ">=6.9.2 <13.0.0". Got "14.15.0"
error Found incompatible module.

This is happening in a private Github repo. The CI build works fine, as all the docker images are pinned to the versions with Node v12. This started happening a few days ago when circleci/python:3.6-stretch docker image switched to Node v14 by default.

rarkins commented 4 years ago

Please reproduce in a public repo so that we can take a look. This is not enough detail for us to troubleshoot

dmt0 commented 4 years ago

In general, how does RenovateBot determine which node version does it use? I didn't add any node config to renovate.json. From the docs I see that the default is lts which is 12.

rarkins commented 4 years ago

It uses the latest renovate/node image if no constraint is specified in package json engines or .nvmrc

rarkins commented 4 years ago

That answer assumes you're talking about the hosted WhiteSource renovate app

viceice commented 4 years ago

renovate/node:latest is now node v14 lts

dmt0 commented 4 years ago

There you go, so everyone's node has been bumped.

Can we please update the docs here: https://docs.renovatebot.com/node/? Also, what should I do to force it to v12? Thanks guys!

viceice commented 4 years ago

Can you please give some more details how you are running renovate ?

dmt0 commented 4 years ago

Installed in a private Github repo. Here's a sample renovate.json from one of my repos:

{
  "extends": [
    "config:base"
  ],
  "enabledManagers": [
    "npm",
    "yarn"
  ],
  "packageRules": [
    {
      "updateTypes": "minor",
      "depTypeList": [
        "dependencies"
      ],
      "groupName": "minor deps"
    },
    {
      "updateTypes": "minor",
      "depTypeList": [
        "devDependencies"
      ],
      "groupName": "minor devDeps"
    }
  ],
  "schedule": [
    "before 2am on monday"
  ]
}

Anything else I could provide?

viceice commented 4 years ago

whats the command to launch renovate and how looks the bot config?

viceice commented 4 years ago

can you post your package.json too (redacted, minized)

dmt0 commented 4 years ago

Renovate was installed to our Github org by someone else, so I don't know the details, but I'll check. Wouldn't know where to locate bot config. package.json doesn't have much interesting stuff, except for the engines field:

{
  "name": "...",
  "version": "1.0.0",
  "description": "...",
  "main": "index.js",
  "scripts": {
    "test": "jest",
    "start": "node server",
    "watch": "NODE_ENV=development webpack --mode development --progress --watch",
    "build": "rimraf dist/* && NODE_ENV=production webpack --mode production --progress --profile",
    "test:lint": "eslint \"app/**/*.js\" \"app/*.js\" && echo -e '\\033[0;32m'PASS'\\033[0m'",
    "test:pretty": "prettier -l \"app/**/*.js\" \"app/*.js\" \"test/**/*.js\" && echo -e '\\033[0;32m'PASS'\\033[0m'",
    "lint": "prettier --write \"app/**/*.js\" \"app/*.js\" \"test/**/*.js\""
  },
  "keywords": [
    "es6",
    "react"
  ],
  "browserslist": [
    "defaults",
    "ie 11"
  ],
  "author": "Plotly, Inc.",
  "dependencies": {
    ...
  },
  "devDependencies": {
    ...
  },
  "engines": {
    "node": ">=6.9.2 <13.0.0",
    "yarn": ">=0.23.3 <2.0.0"
  },
  "jest": {
    ...
  }
}
viceice commented 4 years ago

Ok, looks like you are using the official github app, so in pr bode is a link to the renovate app dashboard, there you can see the logs.

@rarkins looks like we misinterpret the engines constraints?

dmt0 commented 4 years ago

Some warnings in the logs, but nothing new:

WARN: Failed to find a tag satisfying constraint, using "latest" tag instead(branch="renovate/minor-devdeps")
{
  "depName": "docker.io/renovate/node",
  "constraint": "6.9.2",
  "scheme": "npm"
}
...
WARN: artifactErrors(branch="renovate/minor-devdeps")
{
  "artifactErrors": [
    {
      "lockFile": "manager/frontend/yarn.lock",
      "stderr": "error my-app@1.0.0: The engine \"node\" is incompatible with this module. Expected version \">=6.9.2 <13.0.0\". Got \"14.15.0\"\nerror Found incompatible module.\n"
    }
  ]
}
viceice commented 4 years ago

I'm not sure what's going on there, but my test repo works https://github.com/viceice-tests/renovate-yarn-update-lockfile/pull/1

DEBUG: Found compatible npm version (repository=viceice-tests/renovate-yarn-update-lockfile, branch=renovate-test/major-react-monorepo)
       "constraint": ">=6.9.2 <13.0.0",
       "version": "12.19.0"
DEBUG: Resolved tag constraint (repository=viceice-tests/renovate-yarn-update-lockfile, branch=renovate-test/major-react-monorepo)
       "image": "docker.io/renovate/node",
       "tagConstraint": ">=6.9.2 <13.0.0",
       "tagVersioning": "npm",
       "tag": "12.19.0"
DEBUG: Fetching Docker image: docker.io/renovate/node:12.19.0 (repository=viceice-tests/renovate-yarn-update-lockfile, branch=renovate-test/major-react-monorepo)
DEBUG: Finished fetching Docker image (repository=viceice-tests/renovate-yarn-update-lockfile, branch=renovate-test/major-react-monorepo)
DEBUG: Executing command (repository=viceice-tests/renovate-yarn-update-lockfile, branch=renovate-test/major-react-monorepo)
       "command": "docker run --rm --name=renovate_node --label=renovate_child -v \"/tmp/renovate/repos/github/viceice-tests/renovate-yarn-update-lockfile\":\"/tmp/renovate/repos/github/viceice-tests/renovate-yarn-update-lockfile\" -v \"/tmp/renovate/cache\":\"/tmp/renovate/cache\" -e NPM_CONFIG_CACHE -e npm_config_store -e CI -e YARN_HTTP_TIMEOUT -e YARN_ENABLE_SCRIPTS -w \"/tmp/renovate/repos/github/viceice-tests/renovate-yarn-update-lockfile\" docker.io/renovate/node:12.19.0 bash -l -c \"npm i -g yarn && yarn install\""
DEBUG: exec completed (repository=viceice-tests/renovate-yarn-update-lockfile, branch=renovate-test/major-react-monorepo)
       "cmd": "docker run --rm --name=renovate_node --label=renovate_child -v \"/tmp/renovate/repos/github/viceice-tests/renovate-yarn-update-lockfile\":\"/tmp/renovate/repos/github/viceice-tests/renovate-yarn-update-lockfile\" -v \"/tmp/renovate/cache\":\"/tmp/renovate/cache\" -e NPM_CONFIG_CACHE -e npm_config_store -e CI -e YARN_HTTP_TIMEOUT -e YARN_ENABLE_SCRIPTS -w \"/tmp/renovate/repos/github/viceice-tests/renovate-yarn-update-lockfile\" docker.io/renovate/node:12.19.0 bash -l -c \"npm i -g yarn && yarn install\"",
       "durationMs": 2282,
       "stdout": "\n> yarn@1.22.10 preinstall /home/ubuntu/.npm-global/lib/node_modules/yarn\n> :; (node ./preinstall.js > /dev/null 2>&1 || true)\n\n/home/ubuntu/.npm-global/bin/yarn -> /home/ubuntu/.npm-global/lib/node_modules/yarn/bin/yarn.js\n/home/ubuntu/.npm-global/bin/yarnpkg -> /home/ubuntu/.npm-global/lib/node_modules/yarn/bin/yarn.js\n+ yarn@1.22.10\nadded 1 package in 0.398s\nyarn install v1.22.10\n[1/5] Validating package.json...\n[2/5] Resolving packages...\n[3/5] Fetching packages...\n[4/5] Linking dependencies...\n[5/5] Building fresh packages...\nsuccess Saved lockfile.\nDone in 0.34s.\n",
       "stderr": "warning package.json: No license field\nwarning No license field\nwarning No license field\n"
DEBUG: yarn.lock needs updating (repository=viceice-tests/renovate-yarn-update-lockfile, branch=renovate-test/major-react-monorepo)
DEBUG: updateYarnOffline resolvedPaths (repository=viceice-tests/renovate-yarn-update-lockfile, branch=renovate-test/major-react-monorepo)
       "resolvedPaths": []
DEBUG: Updated 1 lock files (repository=viceice-tests/renovate-yarn-update-lockfile, branch=renovate-test/major-react-monorepo)
       "updatedArtifacts": ["yarn.lock"]
DEBUG: 2 file(s) to commit (repository=viceice-tests/renovate-yarn-update-lockfile, branch=renovate-test/major-react-monorepo)
DEBUG: Committing files to branch renovate-test/major-react-monorepo (repository=viceice-tests/renovate-yarn-update-lockfile, branch=renovate-test/major-react-monorepo)
 INFO: Branch updated (repository=viceice-tests/renovate-yarn-update-lockfile, branch=renovate-test/major-react-monorepo)
       "commitSha": "09469eb"

please provide a minimal repo to reproduce

rarkins commented 4 years ago

Is there a .nvmrc or .node-version?

dmt0 commented 4 years ago

There was .node-version set to 6.9.2. Removing it didn't fix it.

I still have one question, can I force renovate to use node 12? Is it through supportPolicy option? What's the default? lts? What is lts set to? What should I set it to in order to pin v12?

rarkins commented 4 years ago

You need to rebase the existing PR, it won't fix automatically after it's already created. Share the new logs.

rarkins commented 4 years ago

@viceice this is an example of why we need to be more strict about waiting for reproductions. Too often there's information left out

viceice commented 4 years ago

We don't need to be so strict, but most of the time we find the issue while trying to reproduce the issue.

Yes most of the time the important information is missing in those issues too. 😉

So it's often very difficult to guess what's going on.

Maybe we should at least be more strict for filling out the issue template, so we hopefully get more information to be able to help. 🙃

rarkins commented 4 years ago

Well, I think there's a good chance this problem is solved. If not then we need a reproduction repo.

stale[bot] commented 4 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed soon if no further activity occurs. If this question is not done (either you plan to update it or are waiting on someone to respond) then please add a comment here to bump it and/or get the other person's attention. We aim to do our best to solve every problem. This bot is here to help us clean up issues which are no longer of use to the original poster, and not to close anything prematurely, so bump as you need!

dmt0 commented 4 years ago

So fixed in both of my repos - in one of them it was fixed when I simply removed .node-version. So that was the culprit. (In the other one I bumped Node to V14 too)