Tags · nvm-sh/nvm · GitHub
Skip to content

Tags: nvm-sh/nvm

Tags

v0.40.7

Toggle v0.40.7's commit message

Verified

This tag was signed with the committer’s verified signature.
ljharb Jordan Harband
v0.40.7

New Stuff

 - `nvm install`: serialize concurrent installs of the same version
 - `nvm install`: add `NVM_NO_SOURCE_FALLBACK` to disable the source fallback

Robustness

 - `nvm install`: reject a structurally broken installed version
 - `nvm_install_binary_extract`: replace a broken version dir atomically
 - `install.sh`: `nvm_download`: avoid `eval` so arguments aren't re-parsed by the shell

Docs

 - [readme] link every referenced person and project to its canonical page

Misc

 - [Dev Deps] update `markdown-link-check`

Tests

 - install_nvm_from_git: don't fail when master is at the latest release tag

v0.40.6

Toggle v0.40.6's commit message

Verified

This tag was signed with the committer’s verified signature.
ljharb Jordan Harband
v0.40.6

New Stuff

 - `install`: add support for loongarch64 architecture (#3693)

Bug Fixes

 - support arm64-musl on Alpine Linux (#3845)
 - `nvm_ls_cached`: include source-cached and io.js artifacts
 - auth header: Add all valid base64 chars to sanitize function (#3846)
 - Parse commented nvmrc content in nvm_ls
 - bypass aliased curl (#2932)
 - `nvm_download`, `nvm_get_latest`, `install`: only select a downloader that exists as an executable
 - use `command` to bypass `curl`/`wget` shell functions and aliases
 - `install`: use darwin-x64 for all binary on mac for node < v16 (#3709)
 - `nvm install`: migrate packages/set alias when target is already installed
 - focused error on missing/invalid args for several subcommands
 - `nvm_rc_version`: clarify error when no version and no .nvmrc
 - `nvm exec`/`nvm run`: warn when no version and no .nvmrc

Refactors

 - `nvm_alias`: one-pass trailing whitespace strip
 - `nvm_alias`: use [[:space:]] instead of literal tab
 - `nvm_alias`, `nvm_resolve_alias`: use builtins

Robustness

 - reject unsafe LTS alias names from a mirror's index.tab
 - avoid a `set -u` error when `$_` is unset (#3845)
 - `nvm_get_arch`: only apply the Alpine musl suffix when the OS is linux (#3845)
 - `nvm_alias`: explicitly succeed when the alias file is unreadable

Docs

 - [readme] Docker: build time is "several" minutes, not 8 (#3875)
 - [readme] Docker: Just say "Ubuntu" (no version) for base image (#3873)
 - document `nvm reinstall-packages` as a standalone command
 - document `current` and clarify .nvmrc fallback in help/README
 - threat model: document the mirror payload/metadata trust boundary

Tests

 - [actions] nodejs.org PR: sync the fork before branching, and surface create-ref errors
 - [actions] nodejs.org PR: fix `force` boolean and grab the latest tag on dispatch
 - [actions] fall back to the canonical nvmrc submodule when a fork lacks its own
 - [actions] update workflows
 - [actions] `nvm-install-test`: turn the expected v0.40.0 failures green
 - [actions] add `tests-alpine`: a green fast suite and a musl-binary regression matrix (#3845)
 - make the fast suite pass on Alpine (#3845)
 - `nvm_ls handles hash in pattern`: fix cleanup, isolate NVM_DIR, cover the sed path (#3854)
 - `installation_node`: only match top-level global packages
 - `installation_node`: use a published `is-nan` version
 - run every remaining test file: exec bits, fixes; add `check-exec` to CI (#2232)
 - `nvm_offline_version`: make it executable; pin `nvm_ls_cached` cache visibility
 - `aliases`: cover the regex-metachar cycle fix; clean up fixtures in teardown (#3787)

v0.40.5

Toggle v0.40.5's commit message

Verified

This tag was signed with the committer’s verified signature.
ljharb Jordan Harband
v0.40.5

New Stuff

 - `nvm install --offline`: install from cache without network access

Bug Fixes

 - `nvm_download_artifact`: reject version strings with disallowed characters
 - `nvm_get_checksum`: pass the tarball name to awk as data, not program text
 - `nvm_download`: avoid `eval` so mirror-supplied version strings can't inject commands
 - `nvm_download`: send a well-formed Authorization header on the wget path
 - avoid an unbound variable
 - Add local for sanitized_header (#3837)
 - fix same owner for root when install from binary (#3834)
 - `nvm_normalize_lts`: only reject uppercase for LTS names, not regular aliases
 - `install.sh`: check `mkdir` return codes
 - `install.sh`: fix POSIX compliance, printf format strings, and profile detection
 - `nvm which`: show alias name in infinite loop error message
 - `nvm uninstall`: fix alias cleanup glob expansion
 - `nvm debug`: use default empty values for potentially unset variables
 - `nvm_iojs_version_has_solaris_binary`: fix comparison to detect non-iojs versions
 - `nvm_download_artifact`: fix error propagation from subshells
 - `nvm_install_binary`: return failure when binary download fails with `-b`
 - `nvm_get_arch`: only apply musl suffix on x64 Alpine
 - `nvm_get_arch`: add `command` prefix to `uname` call
 - `nvm_resolve_local_alias`: avoid using variable as printf format string
 - `nvm_get_mirror`: fix awk URL validation to actually reject invalid URLs
 - `nvm_ls_remote_combined`: propagate iojs remote listing failures
 - `nvm install`: fix `nvm err` typo to `nvm_err` for `-s`/`-b` conflict
 - `nvm alias`: fix colors not showing by default

Refactors
 - `nvm_rc_version`: use fd 3 instead of exported env var for multiple return

Docs
 - fix `--offline` help line alignment
 - Clean up wording in docs and shell comments (#3806)
 - fix CONTRIBUTING grammar (#3804)
 - do not use tilde expansion in ENV of Dockerfile (#3821)
 - [readme] use tilde expansion instead of "$HOME" for consistency (#3799)
 - [readme] use "$HOME" instead of hardcoded "/home/user"
 - [readme] Revise Node.js version usage examples (#3802)

Misc

 - [meta] Update .gitmodules with relative submodule path (#3839)
 - [meta] Submodule nvmrc update protocol from git to https (#3839)
 - [meta] Align and enhance AGENTS.md instructions (#3774)

Tests

 - `install_nvm_from_git`: stop git background gc/maintenance racing with cleanup
 - `install_nvm_from_git`: fix malformed test command (missing space before `]`)
 - reduce CI flakiness from transient Docker registry failures
 - remove double-substitution in assert_ok and assert_not_ok (#3826)
 - fix 4 test failures
 - add `try`/`try_err` helpers; convert tests to use them
 - [actions] add workflow to update nodejs.org nvm version
 - [actions] set per-job permissions in the `nvm install` workflow
 - [actions] allow DockerHub's CloudFront CDN so image pulls aren't blocked
 - [actions] upgrade vampire/setup-wsl (#3775)

v0.40.4

Toggle v0.40.4's commit message

Verified

This tag was signed with the committer’s verified signature.
ljharb Jordan Harband
v0.40.4

Bug Fixes

 - sanitize `NVM_AUTH_HEADER` in `wget` path
 - `nvm_has_colors`: also check if stdout is a terminal
 - `nvm_strip_path`: avoid gawk-specific `RT` variable for mawk compatibility
 - `nvm_get_default_packages`: use portable awk patterns
 - `nvm_install_source`: explicitly set SHELL=/bin/sh for make
 - `install.sh`: do not log when user has requested no profile modifications (#2131)
 - `nvm exec`: Do a version check on `nvm-exec` (#3308)
 - Reject bare LTS codenames in nvm install (#3718)
 - prevent sed errors when pattern contains `#`
 - install.sh: Force remote name of cloned repo to be 'origin' (#3654)
 - `sh` lacks `-O`; thanks shellcheck
 - show system Node.js version in nvm ls (#1287)

Docs

 - [readme] add missing colon (#3516)
 - [readme] add background on io.js (#3641)
 - [readme] fix typo (#3687)
 - [readme] update installation by docker to v0.40.3 (#3590)

Tests

 - [actions] add permissions to GHA workflow
 - Improve uninstall error message for missing versions (#3768)
 - [Tests] add retry logic (#2232)
 - [Tests] add a timeout
 - [actions] add a finisher to lint
 - [actions] migrate Travis CI tests to GitHub Actions
 - [Tests] mock `node` in `nvm_die_on_prefix` test
 - [Tests] clean up .nvmrc after nvm-exec test
 - [Tests] set `$_` before sourcing `nvm.sh` in fast tests
 - [actions] update outdated GitHub Actions versions (#3762)
 - [actions] fix WSL tests: properly handle Debian apt sources issue
 - [actions] fix workflow permissions; add codeQL
 - [actions] temporary fix for WSL issue
 - [actions] add new github asset domain to harden-runner
 - [actions] Fix Cygwin workflow HOME variable and add debug output (#3611)

Misc
 - Migrate GitHub Copilot instructions to AGENTS.md and CLAUDE.md (#3655)
 - [security] add security escalation policy (#3658)
 - [meta] Add comprehensive .github/copilot-instructions.md for better AI code assistance (#3609)
 - [meta] update security policy; add IRP
 - [Dev Deps] update `markdown-link-check`, `semver`

v0.40.3

Toggle v0.40.3's commit message

Verified

This tag was signed with the committer’s verified signature.
ljharb Jordan Harband
v0.40.3

Fixes
 - `nvm_install_latest_npm`: fix node version detection (#3564)

v0.40.2

Toggle v0.40.2's commit message

Verified

This tag was signed with the committer’s verified signature.
ljharb Jordan Harband
v0.40.2

New Stuff
 - `install.sh`: add `$ZDOTDIR` to zsh search (#3458)

Fixes
 - `reinstall-packages`: do not reinstall corepack (#3544)
 - avoid bash-specific syntax (#3499)
 - `install-latest-npm`: npm v11 is out
 - `nvm_install_latest_npm`: avoid unbound variable (#3447)
 - give a more helpful message when `lts` alias is mistakenly used (#3441)
 - `nvm ls`, `nvm alias`, `nvm install`: error when an LTS name is invalid
 - `nvm_normalize_lts`: error when an LTS name is not lowercase (#3417)

Documentation
 - [readme] update link
 - [readme] fix `--no-use` example (#3479)
 - [readme] update copyright notice (#3507)
 - [readme] note zsh-nvm's AUTO_USE option (#2670)
 - [readme] add note about reloading zshrc after editing (#3052)
 - [readme] Update shell profile file install notes (#2241)
 - [readme] add docker tips (#2318)
 - [readme] remove `avn` from readme (#3469)
 - [readme] fnm -> nvm.fish (#2541)

Refactors
 - prefer `case` over if/else chains
 - combine `sed -e` invocations/arguments

Tests
 - `nvm exec`/`nvm run`: add `--silent` tests (#1259)
 - [actions] release test needs git tags
 - migrate `installation_iojs` test suite to GitHub Actions (#3476)
 - Migrate slow test suite from Travis CI (#3470)
 - temporarily skip this failing travis test to unblock progress
 - [actions] TOC: use latest LTS node
 - `install.sh`: clean up `nvm_detect_profile` tests
 - `nvm_detect_profile`: refactor (#3467)
 - run urchin tests on pull requests (#3466)
 - update mocks
 - ensure that unit tests use only mocked LTS names
 - [actions] use `node/install` instead of `node/run`

Meta
 - disable blank issues
 - update issue template
 - add DCO (#3456)
 - Rename .github/ISSUE_TEMPLATE.md to .github/ISSUE_TEMPLATE/ISSUE_TEMPLATE.md (#3454)

v0.40.1

Toggle v0.40.1's commit message

Verified

This tag was signed with the committer’s verified signature.
ljharb Jordan Harband
v0.40.1

Fixes
 - `nvm_download`: ensure all args are quoted
 - `--save`: avoid a conflict with `set -e`
 - `nvm_has_colors`: avoid an aliased `tput`
 - declare an unbound variable
 - `nvm install -b`: do not attempt to download source on a failed binary download with `-b`
 - `nvm install -b`: when no binary is available, fail and output a clear message

Refactors
 - `--save`: clean up some usage
 - `install.sh`: fix node capitalization

Tests
 - set proper permissions on test files
 - move sourcing suite to GHA
 - fix `nvm ls-remote` unit test

v0.40.0

Toggle v0.40.0's commit message

Verified

This tag was signed with the committer’s verified signature.
ljharb Jordan Harband
v0.40.0

New Stuff
 - `nvm use`/`nvm install`: add `--save` option (#2869)
 - Add support for `NVM_AUTH_HEADER` env var (#3380)
 - allow `.nvmrc` files to support comments

Fixes
 - `nvm_get_default_packages`: use `awk` for more reliable file processing
 - Fix issue where zsh global aliases would break nvm help (#3394)
 - `install-latest-npm`: npm ^8.7 breaks `npm ls` with file: deps

Refactors
 - `nvm_has_colors`: also check the env var

Docs
 - [readme] add OpenJS Ecosystem Sustainability Program partner (#2232)
 - [readme] update CII badge URLs
 - [readme] Fix uninstall instructions (#3286)
 - [readme] Fix typo in WSL section of README (#3295)
 - [Docs] add `nvm unload` to uninstall nvm instructions (#3267)
 - [security] fix typo in threat model

Tests
 - ignore travis-ci env vars; improve debug output
 - [debug] adding logging to makefile
 - only install python 2.7 if not already installed
 - use a better JSON parsing implementation
 - ensure travis can access public repo submodules
 - [actions] improve default action permissions
 - [actions] update vampire/setup-wsl action
 - [actions] finisher tweaks
 - [actions] update action versions to use node 20 (#3299)
 - [Dev Deps] update `markdown-link-check`, `semver`

v0.39.7

Toggle v0.39.7's commit message

Verified

This tag was signed with the committer’s verified signature.
ljharb Jordan Harband
v0.39.7

Fixes

 - use `\hash` instead of `command hash` for `zsh` (#3239, #3247, #3246)

v0.39.6

Toggle v0.39.6's commit message

Verified

This tag was signed with the committer’s verified signature.
ljharb Jordan Harband
v0.39.6

New Stuff
 - `nvm_resolve_alias`: only resolve one line of a multiline alias file
 - aliases: skip leading blank lines in alias file

Fixes
 - `nvm_get_mirror`: ensure only a valid URL is allowed
 - avoid overridden `hash`
 - `install.sh`: when `NVM_INSTALL_GITHUB_REPO` is set, issue a warning (#2868)
 - `nvm_get_mirror`: disallow some non-URL characters
 - `nvm_get_arch`: proper value for alpine linux (#3212)
 - `nvm_normalize_lts`: switch from expr to case

Robustness
 - `nvm_list_aliases`: avoid overwritten sort

Performance
 - `nvm_check_file_permissions`: do not traverse into symlinks

Dockerfile
 - Remove apt src disabling, no longer needed (#3199)
 - [Fix] add missing leading slash in path (#3195)

Documentation
 - [readme] fix level of headings (#3230)
 - [readme] add section on bare `nvm install` (#3221)
 - [readme] missing parenthesis (#3215)
 - [readme] update M1 to “Apple Silicon” because of M2 and M3; fix typos (#3242)
 - [readme] rearrange install args (#3222)
 - [readme] reorganize “deeper shell integration” instructions (#1569)
 - [security] add prose explaining OpenSSF CII Best Practices badge results
 - [security] add threat model

Tests
 - temporarily allow  cygwin tests to fail
 - temporarily allow WSL tests to fail
 - ensure windows tests install a node that actually works
 - update test mocks (new LTS, iron)
 - switch cygwin mirror
 - fix filename typo (#3217)