renovatebot / config-help

Please use the Discussions feature of https://github.com/renovatebot/renovate instead

Home Page:https://github.com/renovatebot/renovate/discussions

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

dmt0 opened this issue · comments

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.

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

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.

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

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

renovate/node:latest is now node v14 lts

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!

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

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?

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

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

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": {
    ...
  }
}

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?

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"
    }
  ]
}

I'm not sure what's going on there, but my test repo works viceice-tests/renovate-yarn-update-lockfile#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

Is there a .nvmrc or .node-version?

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?

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

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

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. 🙃

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

commented

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!

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)