You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Node version resolution doesn't match the behavior of vp env by default #128
One of the things I like most about vp is that I don't have to think about node versions at all. It just looks at .node-version, then devEngines.runtime, then engines.node, then .nvmrc, and picks the right one automatically. No commands required, no extra config.
I was surprised to find that setup-vp doesn't work the same way. According to the README, if you don't pass node-version or node-version-file, it just defaults to latest LTS instead of doing that same lookup.
So if my project only declares its node version through devEngines.runtime, the action silently ignores that and grabs the latest LTS, unless I explicitly tell it node-version-file: package.json. And if I switch from devEngines.runtime to .node-version someday, vp will just work automatically, but setup-vp will not work unless I remember to update node-version-file.
This caught me off guard because I expected the action to behave like vp itself does. Having to manually point it at a file feels like extra config for something that should just work out of the box, and it's an easy way to end up with CI silently running a different node version than local dev.
Most of all, it feels inconsistent with how vp already behaves.
Would it be possible to make setup-vp just use vp's normal node version resolution when no explicit input is given, instead of defaulting to LTS?
- await exec("vp", ["env", "use", nodeVersion]);+ await exec("vp", ["env", "use"]); // Rely on `vp` to resolve
If it doesn't, then my request might be irrelevant because vp would use the normal node resolution after all. If that's the case, then I simply ask for the documentation to be updated.
To clarify, this is something I noticed when reading the docs in the README, not something I noticed at runtime. I took the docs at face value and opened this issue because of the implications.
If the actual behavior of setup-vp does not match what the README implies, then the README should be updated.
Path to file containing Node.js version (.nvmrc, .node-version, .tool-versions, package.json)
No
If you don't provide a value for node-version, does it actually default to Latest LTS? Or does it let vp auto-recognize the project default (even without providing node-version-file)?
The README implies the former, but the code (and your test) imply the latter. Could you clarify?
Activity
fengmk2 commentedon Aug 18, 2026
That should be the logic as you understand it. Let me first add a test to see if I can reproduce this issue.
fengmk2 commentedon Aug 18, 2026
@JstnMcBrd #130 My test did not reproduce the issue you mention.
Which version of
setup-vpare you using?JstnMcBrd commentedon Aug 18, 2026
Thanks for your quick response.
I am not using
setup-vp(yet).To clarify, this is something I noticed when reading the docs in the README, not something I noticed at runtime. I took the docs at face value and opened this issue because of the implications.
If the actual behavior of
setup-vpdoes not match what the README implies, then the README should be updated.For context:
https://github.com/voidzero-dev/setup-vp#inputs
If you don't provide a value for
node-version, does it actually default to Latest LTS? Or does it letvpauto-recognize the project default (even without providingnode-version-file)?The README implies the former, but the code (and your test) imply the latter. Could you clarify?
fengmk2 commentedon Aug 19, 2026
@JstnMcBrd Thanks for the feedback. The documentation isn’t clear enough about this. I’ll improve it.
docs: clarify automatic Node.js resolution (voidzero-dev#130)