What changed in each release, as a user notices it. GitHub's release pages list the pull requests.
- 32-bit ARM Linux installs the
linux-armv7lpackage, which Node.js published up to 23.11.1:vfox install nodejs@20works there. vfox'sarmv7build reportsarm, and release 0.5.2 asks forlinux-arm, which does not exist, so every install on 32-bit ARM ends withNode.js package node-v20.19.5-linux-arm.tar.gz is not listed in .... From 24 on there is no package, and the ARMv6 one is never chosen. See platforms.md (#41). - On musl the install stops when the unpacked
nodecannot run for lack of a library. After the unpack the plugin runsnode --versiononce, and the dynamic loader names what is missing. The musl packages of 26.8.0 and later needlibatomic, which a stock Alpine does not have: the install ends withNode.js (musl build) requires the libatomic system package, which was not found on this system. Install it with `apk add libatomic` and reinstall.and nothing is registered. Release 0.5.2 checks forlibstdc++only, so the install succeeds andnodefails withError loading shared library libatomic.so.1. The message aboutlibstdc++names its command too, where release 0.5.2 saysIt is normally installed automatically. See musl.md (#41). .nvmrcand.node-versionname a release by its numbers underlegacyVersionFile.strategylatest_installedandlatest_available. With 22.9.0 and 22.23.3 installed,22selects 22.23.3, where release 0.5.2 selects 22.9.0, because vfox lists the installed releases as text.22.2no longer matches 22.23.3.22.x,22.x.xand22.*mean 22, and release 0.5.2 selects nothing for22.x. Only a leadingvis dropped, solts/<codename>works for a codename with avin it. Text that is no release number (node,(,22[) is left alone, where release 0.5.2 fails withunfinished capture at EOSand vfox hides the error. See nvmrc.md (#41).- A failed request for
SHASUMS256.txtsays why:get checksum failed: HTTP 404 from https://nodejs.org/dist/v24.99.0/SHASUMS256.txt, or the network error, such asx509: certificate signed by unknown authority. Release 0.5.2 printsget checksum failedand nothing else. See troubleshooting.md (#41). VFOX_NODEJS_MIRRORmay end in several slashes. Release 0.5.2 strips one (#41).- The documentation has a page for versions and names, platforms,
.nvmrcand.node-version, npm, troubleshooting, development and the changes, and a Chinese version, see README_CN.md (#41). - The Windows e2e suite runs from the host through
tests/e2e/windows/run.ps1, which replaces the Docker Compose runner. The script fetches PowerShell, PortableGit and Go into a cache that every combo container mounts read-only atC:\tools, so no image runs the PowerShell MSI and the Git installer any more, and CI starts all the Windows combos at once. See e2e.md (#40).
vfox useprints a note when anothernode, such as the one thatpnpm runtime set node -ginstalls, comes before vfox inPATH, so thatnodedoes not run the release that was just selected. Before,vfox usereportedNow usingandnode -vprinted another version. See pnpm.md (#38).- The Windows e2e jobs run against a home directory with a space in it, which needs vfox 1.0.13 (#39).
- Alpine, OpenWrt and other musl systems get the musl packages. Before, the glibc
package was installed and
nodefailed withnot found. Where nodejs.org has no musl package, the plugin takes it from unofficial-builds.nodejs.org, which is all of arm64 and most of x64.VFOX_NODEJS_LIBCoverrides the detection. An install withoutlibstdc++fails with a message that names it. See musl.md (#31, #29). .nvmrcand.node-versionwork withlegacyVersionFile.strategyset tolatest_installedunder vfox 1.x. Releases 0.3.0 to 0.5.0 callctx:getInstalledVersions(), which vfox 1.x rejects withexpected 0 arguments for func() []string, got 1, and vfox hides the error: the file selects nothing, even22.23.3. The default strategy,specified, was not affected (#30).- Under
latest_available,ltsandlts/<codename>are looked up in the version index, so a codename newer than the plugin keeps working. Krypton (24) is in the table that the other strategies use. See lts.md (#31). - The repository has a container e2e suite for Linux, Alpine, Windows and WSL, and a dev container, see e2e.md (#30, #33, #34, #37).
vfox search nodejsfails withFailed to fetch Node.js versions: ...when the index cannot be fetched. Before, it listed nothing and vfox cached the empty list (#28, #16).- 32-bit x86 asks for the
x86package. Before it asked for386, which does not exist. An empty architecture from vfox stops the install withCannot determine Node.js package architecture from RUNTIME.archType(#28, #23). - A package that
SHASUMS256.txtdoes not list stops the install withNode.js package ... is not listed in .... Before, vfox went on to a download without a checksum, which answered 404 (#28). VFOX_NODEJS_MIRRORmay end in a slash. Before, the URLs had//in them (#25).
- Node.js 16.0.0 installs the arm64 package on Apple silicon. Before, 16 took the
amd64 one, and only releases before 16 should. Those say
Note: Node.js versions below 16 do not support Apple Silicon (arm64), using x64 architecture with Rosetta 2(#21).
.nvmrcand.node-versionfollowlegacyVersionFile.strategy. Before, they always usedlatest_installed. See nvmrc.md (#17).ltsandlts/*select the newest LTS line of the table, andlts/jodis known (#17).- An unknown version says
version not found for provided version <what you typed>. Before, the hook failed withcannot perform concat operation between string and nil(#14).
- 0.2.2 (2024-04-09):
vfox use nodejs@20andnodejs@20.11find the installed releases (#6). - 0.2.1 (2024-04-08):
vfox install nodejs@20andnodejs@20.11install the newest release of the line. They failed before (#5). - 0.2.0 (2024-04-07):
VFOX_NODEJS_MIRROR, see mirror.md (#3). Apple silicon installs the amd64 package of Node.js 16 and earlier (#4).
- 0.0.1 (2024-03-26) is the first release.
vfox search nodejsfailed in it, and works from 0.0.5. Installing a full release number, with the check of its SHA-256 sum, works from the start. - 0.1.1 (2024-04-01) adds the lookup of a line for
vfox use, which finds nothing until 0.2.2.