Node Version Manager Versions Save

Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions

v0.39.7

4 months ago

Fixes

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

v0.39.6

5 months ago

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)

v0.39.5

8 months ago

Fixes

  • nvm_strip_path: Preserve leading/trailing colons (#3145)
  • allow checksums to pass with a leading backslash
  • nvm install-latest-npm: ensure npm 10 does not install on unsupported nodes

Docs

  • [readme] add examples of setting specific versions as default (#3151)

Tests

  • add some nvm_do_install tests
  • a cleaner name for the windows tests

v0.39.4

9 months ago

Fixes

  • fix node download link for armv8l (#3102)
  • nvm exec: no longer error with '-q: invalid option' for zsh users (#2800)
  • nvm_print_npm_version: if npm exists but its node crashes, do not print the npm version
  • nvm_ls_current: when node is present but crashes immediately, echo "none"
  • fix directory traversal when workdir path is not readable (#3080)
  • recognize 32Bit docker container and use x86 arch (#3051)
  • Remove unneeded call to ls in nvm_arch (#3012)

Perf

  • Improve performance of listing aliases (#3060)

Docker

  • Update base image from Ubuntu 20.04 to 22.04, cc #2877 (#3078)

Docs

  • [readme] add nvshim tool alongside avn (#2193)
  • [readme] fix typo in resolv.conf filename (#3135)
  • [readme] Update logo header (#3123)
  • [readme] Add instructions on how to install without editing shell config (#3100)
  • [readme] cdnvm function: fix shellcheck errors (#3082)
  • [readme] Update Travis CI badge and link url (#3077)

Miscellaneous

  • [meta] Remove unavailable testing script (#3105)
  • [Dev Deps] update markdown-link-check, semver
  • [actions] allow nvm to be installed

Tests

  • add unit tests for nvm_download_artifact
  • npm bin has been removed
  • downgrade python to v2 on travis (#3067)
  • move install script tests to github actions
  • improve debug output on failure
  • force the NVM_DIR to the expected location, for tests
  • Update urchin repository link (#2989)

v0.39.3

1 year ago

Fixes

  • nvm install-latest-npm: npm v6.14.18 can not be installed from npm < v4.4.4
  • ensure this variable is bound
  • debug: correct mistaken -V to --version from #2922
  • debug: awk: not an option: --version (#2922)
  • grep: warning: stray \ before / (#2919)
  • improve backward compatibility for non-gnu awk (#2917)
  • fix nvm install error unknown condition: -ne (#2915)

Tests

  • update test mocks (#2933)
  • move installation_node tests back to xenial
  • move tests that fail on focal to a separate suite that runs on xenial
  • update travis to use focal
  • [actions] fix latest-npm tests so they use this repo’s nvm instead of the last published one
  • fix nvm_list_aliases test to use mocks for LTS aliases

Docs

  • [meta] Improve contributors documentation (#2791)
  • [Docs] added WSL troubleshooting with solution to (6) Could not resolve host: raw.githubusercontent.com (#2961)

Refactors

  • add nvm_wrap_with_color_code; allow no color code

v0.39.2

1 year ago

Fixes

  • --help: proper default NVM_COLORS info
  • nvm install-latest-npm: ensure npm 9 does not install on unsupported nodes
  • install.sh: support ~/.zprofile (#2892, #2868, #2232)
  • Don't override Mac M1 architecture for node ^14.17 (#2777)
  • nvm install: show proper version in .nvmrc install instructions (#2770)
  • install.sh: error out if the install instructions are not followed (#2742)
  • install: better error message when xcode command line tools are needed
  • avoid OpenBSD nvm install error when /sbin/init doesn't exist (#2698)
  • set -E: Add test for node install on Bash with an ERR trap and set -E
  • add missing local (handle nonexisting /sbin/init a bit more cleanly) (#2678)
  • Update nvm_extract_tarball to support OpenBSD (#2693)

Performance

  • nvm_print_versions: re-implement using awk

Robustness

  • avoid a clobbered ls (#2727)

Refactors

  • nvm install/nvm_install_default_packages: move "get" logic inside helper
  • add nvm_extract_tarball to consolidate extraction logic

Docs / Read Me

  • Update Alpine Linux Section (#2896)
  • optimize calling of nvm version in zsh (#2874)
  • Fix Ansible Linting Errors (#2861)
  • cdnvm(): handle failed dir change (#2840)
  • Fix Git Install instruction list structure (#2823)
  • add logo
  • minor cleanup
  • Add note about creating .bashrc file as well as .bash_profile (#2729)
  • fish: send output from load_nvm to /dev/stderr (#2783)
  • fix fish load_nvm variable interpolations (#2776)
  • Correct typos in "Macs with M1 chip" section (#2760)
  • HTTP => HTTPS (#2735, #2713)
  • clarify instructions for running Node on M1 Mac (#2675)

Dockerfile

  • Update base image from Ubuntu 18.04 to 20.04, cc #2877 (#2882)

Misc

  • [meta] Update CODE_OF_CONDUCT to current version (#2790)

Tests

  • update test mocks
  • github actions removed homebrew and broke shellcheck (#2907)
  • node 18 no longer builds in travis-ci (#2907)

v0.39.1

2 years ago

New Stuff

  • Add OpenBSD support (#1062)

Fixes

  • ls-remote/install: support lts/-X patterns in installs
  • ls-remote/install: properly handle lts/x patterns
  • nvm alias/nvm_list_aliases: support lts/ aliases
  • nvm_get_download_slug: better architecture selection for M1 Macs
  • install: fix method=script install condition (#2668)
  • install: properly check for curl/wget
  • install script: Add --no-pager option to git branch (#2637)

Refactors

  • create nvm_normalize_lts helper
  • [shellcheck] apply v0.8.0 updates

Docs

  • [readme] Balance the if statement in bash example (#2658)
  • [readme] Describe another failure case for installing node versions from source on mac arm64 machines (#2653)

Tests

  • [actions] add step security runner (#2659)
  • [Tests] update test mocks
  • [Tests] nvm_get_download_slug: add unit tests (#2657, #2232)
  • [Tests] fix windows WSL tests
  • [Dev Deps] update doctoc, markdown-link-check

v0.39.0

2 years ago

New Stuff

  • maybe support Windows with WSL, MSYS, Cygwin (#2391)

Fixes

  • nvm install-latest-npm: ensure npm 8 does not install on unsupported nodes
  • nvm_die_on_prefix: filter prefixed env vars on name only, ignoring values (#2368)
  • set -a: when this option is set, some sh shells break
  • bash_completion: be robust when cd is overridden (#2585)
  • nvm_die_on_prefix: avoid grepping env functions in bash (2dad0455ec61e2842f8d0820bae40114a343ae3b, #2606)
  • reinstall-packages: handle global symlink locations properly
  • nvm_ls_remote_index_tab: handle long version lists (#2581)
  • nvm ls/nvm alias/nvm_list_aliases: zsh: when no LTS aliases, no error
  • install: Detect correct profile based on $SHELL var (#2556)
  • nvm_get_arch: suppress error output if /sbin does not exist
  • bash_completion: check if compinit is called before calling it (#2490)
  • nvm_get_arch: Rasbperry Pi: armv7l with arm64 kernel, get correct arch (#2469)
  • install script: check the proper version; fetch tags also (#9)

Robustness

  • avoid IFS shenanigans: quote arg count/return codes

Refactors

  • Use awk for path stripping (#1360)
  • [shellcheck] disable additional -x warning from v0.7.2
  • [shellcheck] update for new warnings in v0.7.2

Dockerfile

  • Update dated base image from Ubuntu 16.04 to 18.04 (#2571)

Docs

  • [readme] link "Windows WSL" down to the "important notes" section (#2502)
  • [readme] Add bash_completion in "manual install" section (#2620)
  • [readme] Use absolute URL for #606 in README.md (#1656)
  • [readme] Add quick intro to nvm (#1343)
  • [readme] Add info to restart bash if verification not working in verification section (#1749)
  • [readme] Avoid infinite loop in cdnvm() (#2605)
  • [readme] remove duplicate word 'run' (#2609)
  • [readme] updated automatic call script for bash (#2604)
  • [readme] fixed small typo afew to a few (#2517)
  • [readme] fix typo regarding docker image base in Dockerfile (#2573)
  • [readme] move License and Copyright notice sections to the bottom
  • [readme] remove redundant "license" section text in favor of LICENSE.md
  • [readme] Improve README about Macs with M1 chips (#2479)

Meta Stuff

  • add project charter and governance
  • add OpenJS Foundation copyright notices/links
  • add SECURITY.md

Tests

  • use a matrix on the nvm install-latest-npm tests
  • blacklist expired LetsEncrypt CA (#2623)
  • Add markdown-link-check script
  • nvm install-latest-npm: node < 0.10 breaks with npm with dropped support for TLS < 1.2
  • Print shell version in Travis CI (#1471)
  • [actions] restrict permissions for GITHUB_TOKEN (#2584)
  • postcss v7.0.36 stopped working on node 0.10; downgrade to v4
  • update mocks
  • disable fail-fast
  • [actions] fix typo in dockerfile_lint job
  • [actions] use node/install instead of node/run
  • [actions] adjust shellcheck/windows tests to9 have a final "done" job
  • Add unit tests for nvm_is_version_installed
  • node-gyp v8 breaks a test

New Contributors

v0.38.0

3 years ago

New Stuff

  • install: add parallel build support for openbsd (#2390)
  • install: add -b flag to skip building from source (#2439)
  • install script: Allow installation from other repository also for git method (#2401)
  • install script: Allow installation from other repository (#2394)

Fixes

  • exec: -- should stop argument parsing (#2354)
  • nvm_alias: ensure lts/-1 returns the one before lts/* (#2462)
  • install script: define nvm_echo
  • Fix potential unbound var error on nvm install (#2421)
  • avoid parse error with common omz global aliases, in nvm_print_color_code (#2365)
  • install script: sync nvm_download implementation from nvm.sh (#2406)
  • remove nvm_supports_source_options (#2402)
  • bash_completion: move compinit before bashcompinit (#2393)
  • relax $PREFIX checking, to accomodate npm exec
  • Use local variable when looping over args (#2377)
  • install: Ignore npm command under $NVM_DIR when checking for global modules (#2348)

Refactors

  • add nvm_install_binary_extract
  • add nvm_get_artifact_compression
  • fix silly shellcheck complaint

Docs

  • Add macOS troubleshooting instructions for M1 chip (#2416, #2436, #2232)
  • Update source command to include s in zsh (#2466)
  • Add nvs as one of the Windows alternatives (#2454)
  • add headings to certain sections (#2457)
  • add commands to help troubleshoot without closing the current shell (#2202)
  • update cdnvm implementation (#2442)
  • add install error tips (#2400)
  • quote asterisk in shell command on --latest-npm example (#2431)
  • Updated README.md to include homebrew unsecure dirs warning (#2388)
  • source ./nvm.sh instead of nvm.sh, for zsh (#2205)
  • add CODE_OF_CONDUCT.md

Tests

  • Rename some files to be more cross platform (#2397)
  • [actions] update workflows (#2427)
  • [Dev Deps] update dockerfile_lint, doctoc, eclint, replace, semver
  • ensure doctoc action fails when it should
  • update mocks
  • Add unit test for nvm_download
  • add nvm_grep to install script, fix tests (#2403
  • .npm is now cached by default (#2104)
  • release: clobber local tags

v0.37.2

3 years ago

Fixes

  • Revert "[Fix] nvm_die_on_prefix: only grep lines starting with env var name" (#2347, #2360, #2364, #2366)