🚀 nvm-sh/nvm - Release Notes
v0.40.2 (2025-03-11)
## 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 (2024-08-27)
## 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 (2024-07-30)
## 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 (2023-12-06)
## Fixes
- use `\hash` instead of `command hash` for `zsh` (#3239, #3247, #3246)
v0.39.6 (2023-12-05)
## 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 (2023-08-22)
## 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 (2023-07-25)
## 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 (2022-12-23)
## 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 (2022-10-13)
## 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 (2021-12-17)
## 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 (2021-10-07)
## 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
* @Botspot made their first contribution in https://github.com/nvm-sh/nvm/pull/2469
* @leafac made their first contribution in https://github.com/nvm-sh/nvm/pull/2479
* @akefirad made their first contribution in https://github.com/nvm-sh/nvm/pull/2490
* @tg90nor made their first contribution in https://github.com/nvm-sh/nvm/pull/2556
* @IYaksha made their first contribution in https://github.com/nvm-sh/nvm/pull/2573
* @kstolp made their first contribution in https://github.com/nvm-sh/nvm/pull/2581
* @varunsh-coder made their first contribution in https://github.com/nvm-sh/nvm/pull/2584
* @giladbarnea made their first contribution in https://github.com/nvm-sh/nvm/pull/2585
* @donnikitos made their first contribution in https://github.com/nvm-sh/nvm/pull/2604
* @GeorgiChochov made their first contribution in https://github.com/nvm-sh/nvm/pull/2609
* @svenssonaxel made their first contribution in https://github.com/nvm-sh/nvm/pull/2606
* @tim-connolly made their first contribution in https://github.com/nvm-sh/nvm/pull/2605
* @strouja made their first contribution in https://github.com/nvm-sh/nvm/pull/2517
* @asab-se made their first contribution in https://github.com/nvm-sh/nvm/pull/1749
* @alisternorris made their first contribution in https://github.com/nvm-sh/nvm/pull/1343
* @umireon made their first contribution in https://github.com/nvm-sh/nvm/pull/1360
* @Igot953 made their first contribution in https://github.com/nvm-sh/nvm/pull/2624
* @rickbutton made their first contribution in https://github.com/nvm-sh/nvm/pull/2623
* @felipear89 made their first contribution in https://github.com/nvm-sh/nvm/pull/2620
* @SimonEast made their first contribution in https://github.com/nvm-sh/nvm/pull/2502
v0.38.0 (2021-03-29)
## 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 (2020-11-28)
## Fixes
- Revert "[Fix] `nvm_die_on_prefix`: only grep lines starting with env var name" (#2347, #2360, #2364, #2366)
v0.37.1 (2020-11-25)
## New Stuff
- Added `set-colors` command (#2291, #2232)
## Fixes
- `nvm_die_on_prefix`: only grep lines starting with env var name (#2347)
## Tests
- Run fast test suite in clean environment (#2336)
- partially migrate to Github Actions
- Add shellcheck workflow (#2351)
- Add release test workflow (#2355)
- add "Allow Edits" workflow
- switch Automatic Rebase workflow to `pull_request_target` event
v0.37.0 (2020-11-06)
## Major Performance Enhancement
- `use`/`nvm_die_on_prefix`: replicate npm config algorithm and remove `npm config` call (#2317)
## Fixes
- `nvm ls-remote`: accept versions that end with a dot (#2310)
- `nvm_ls`: zsh: unset `markdirs` and `local_options` (#2316)
- `nvm_die_on_prefix`: use directory comparison rather than string (#2316)
## Docs
- improve `nvm --help` output (#2301)
- [readme] bash shell integration: amend example (#2313)
## Tests
- Fix `nvm_ls_current` fast test (#2322)
- Fix nvm unload fast test cleanup (#2332)
- Drop deprecated `sudo:` option in TravisCI config (#2307)
v0.36.0 (2020-09-25)
v0.36.0
## New Stuff
- add `nvm -v` as an alias for `nvm --version` (#2270)
- `nvm deactivate`/`nvm which`: add `--silent`
- adding default and alias option to `nvm install` (#2274, #1929)
- `nvm_supports_xz`: Add Mac/FreeBSD xz platform support checks (#2156)
- add `nvm_find_project_dir` helper
## Fixes
- `latest-npm`: ensure npm 7 is not installed on node < 10
- `nvm_die_on_prefix`: check that the prefix is inside the version dir, not just the nvm dir
- `nvm use`: fix `--silent` when version is omitted
- ensure `--help` is intercepted on any command (#2277)
- `--help`: Add more examples (#2272)
- `install`: improved arg parsing around `--reinstall-packages-from` (#1762)
- `reinstall-packages`: do not include unmet peer deps (#1948)
- `--help`: explain more clearly that parameter is optional and can be provided by .nvmrc on `nvm install`, `nvm use`, `nvm exec`, and `nvm run` (#2242)
- [Robustness] add `command` to `xargs`/`rm` in `nvm_get_default_packages` (#2281)
- [debug] add `whoami` output
- [performance] `nvm_auto`: only call `nvm_ls_current` in `use` mode (#2286)
## Refactors
- [Refactor] add `nvm_get_checksum_binary`; use it in `nvm debug`
- [Refactor] remove unused `nvm_checksum` function
- [Refactor] Rename solaris and iojs helper functions to be nvm_ prefixed (#2213)
- [Refactor] `nvm run`/`nvm exec`: use `NVM_SILENT` consistently internally (#2279)
## Dockerfile
- [dockerfile] Add missing apt package `locales` (#2306)
- [dockerfile] Remove ShellCheck Segmentation fault workaround (#2305)
- [dockerfile] Update ShellCheck download URL in Dockerfile (#2304, #2232)
- [dockerfile] Update Dockerfile base image to Ubuntu 16.04, cc #2008 (#2187)
## Docs
- [readme] fix LTS upgrade command (#2294)
- [readme] update autocompletion output examples
- [readme] Mention problem with windows cmd echo (#2282)
- [readme] Add documentation for LTS updates which reinstall existing packages (#2271)
- [readme] Fix fish load_nvm function (#2252)
- [readme] Update macOS troubleshooting w/ 10.15 zsh default (#2248)
- [readme] Update install instructions troubleshooting (#2225)
- [readme] Syntax highlight for Ansible task example in README.md (#2228)
- [readme] Update README for environment variables (#2159)
- [readme] Stop removing spaces from nvm_path (#2235)
- [readme] include deeper integration instructions for fish (#2208)
- [patch] Update docs and add warning for 'nvm is not compatible with the npm config "prefix" option' edgecase error on Mac OS (#2263)
## Tests
- pin postcss to v7
- Source nvm.sh before defining FILE (#2182)
## Meta Stuff
- fix TOC action
- add actions: Automatic Rebase for PRs, auto-update-TOC for push
v0.35.3 (2020-03-06)
v0.35.3
## New
- add `lts/-1` etc, to point to an LTS line relative to "latest"
- `use`: set `NVM_INC` to expose the node include path
- `uninstall`: add `NVM_DEBUG` to print out a filename as its permissions are checked
## Fixes
- `nvm ls-remote`: properly label latest LTS versions instead of just the latest one in the filter
## Docs
- [readme] restore broken anchor
- [readme] add nvm intro
- Improve readme clarity and troubleshooting (#2125)
- Fix small typo in README (#2130)
## Tests
- update mocks
- fix update mocks script
- update test mocks
- try to make `nvm unload` test more robust
- ensure `nvm unload` unsets env vars too
v0.35.2 (2019-12-18)
## Fixes
- if a prefix env var is set (as in npm run), but is correct, do not fail (#2106)
- allow `nvm unalias x` when `x` is a default alias, but shadowed (#2122)
## Tests
- pin `david` to v11
## Docs
- [readme] Fix a typo (#2121)
## Meta
- create FUNDING.yml
v0.35.1 (2019-11-03)
## Fixes
- `install-latest-npm`: `npm` `v6.10` breaks on `node` `v6.0`, `v6.1`, and `v9.0`-`v9.2`
- `nvm use`: improve help output with bare `nvm use` and no `.nvmrc`
## Docs
- Add description if instructions don't work; make install instructions more readable (#2112)
v0.35.0 (2019-10-02)
## New Stuff
- `nvm ls`: add `--no-alias` to suppress alias output
## Fixes
- `set -u`: Add default empty value for `$NVM_NO_ALIAS` (#2054, #2047)
- Determine correct sub directory if XDG_CONFIG_HOME is set (#2035)
- Set $NVM_DIR to ".nvm" instead of "nvm" (#2069, #2033)
- `default_packages`: work when the file lacks a trailing newline
- `install`: Add missing io.js installation message (#1989)
- Make installation less restrictive when NVM_DIR is set (#1986)
- Enhance nvm debug for different environments (#1654)
- `nvm_supports_source_options`: work around a bug in bash 3.2
- `install`: error out when an argument has `---`
- attempt to fix a bug in bash 3.2, fixed in 4.4, that improperly exits on `-e` in a test.
- `nvm ls`: `--no-colors`: `system`: print an asterisk
## Refactors
- add `nvm_stdout_is_terminal` helper (#2012, #2007)
- extract “get default packages” logic to `nvm_get_default_packages`
- `nvm.sh`: make coding style more consistent (#1819)
## Docs
- Fix bash auto-use nvm command (#2086)
- Updated note about Windows (#2037)
- sync node release schedule url (#2001)
- clarify how to specify default packages (#1981)
- clean up formatting in readme (#2038)
- clean up a bit (#1627)
- Add `--latest-npm` info to Migrating global packages section (#1970)
- Set $NVM_DIR to ".nvm" instead of "nvm" (#2069, #2033)
- update `bash` `cdnvm` script to properly handle aliases (#2017)
- Add note about what version of node new shells run with (#2003)
- `--help`: consolidate some help output
- README.md: mention --no-colors option (#2004)
- `nvm --help`: add `--no-colors` and `--no-alias`
- add version number to `nvm —help` output (#1993)
- add “update” terminology to installation section
- `unalias`: add more specific error message for builtin aliases (#1992)
## Tests
- `jspm` v2 beta started breaking tests; pin to < v2
- use rimraf over `rmdir` in teardowns (#2010)
- update dist from trusty to xenial (#2008)
- `nvm_command_info`: make error output more helpful
- `nvm ls`: ensure `nvm alias` is called
- add more checks to make_fake_* helpers
- fix fake node versions
- Improve syntax in "test/installation_iojs/nvm install v1 works" (#1990)
- [shellcheck] remove unnecessary overrides
- [shellcheck] add overrides
## Dockerfile
- install shellcheck v0.6.0 in Dockerfile (#1836)
- add libssl-dev to Docker image (#1835)
## Meta
- add copyright line to license file
- update repo links to point to org
v0.34.0 (2019-01-08)
## New Stuff
- Support `--no-progress` for `nvm install` (#1422)
- `install.sh`: allow user to explicitly opt out of nvm adding the source string (#1804)
- Respect previously nvm-loaded node version when sourcing (#1315)
- add support for `$XDG_CONFIG_HOME` (#1888)
- `bash_completion`: Add support for `ZSH_DISABLE_COMPFIX` flag (#1911)
## Fixes
- Improve .nvmrc reading process (#1740)
- `nvm debug`: Fix sed syntax error in nvm_command_info (#1528)
- Remove $NVM_DIR trailing slash automatically (#1734)
- `install -s`: `zsh`: ensure `shwordsplit` opt is set (#1719)
- `ls-remote`: fix issues in zsh when using a mirror with a ton of entries (#1818)
- Improve `nvm_is_version_installed` to check for a node executable instead of root dir (#1824)
- `use`: Prepend instead of changing if shadowed by system dirs (#1830)
- Improve and update Dockerfile (#1861, #1863)
- `install.sh`: Print an error and exit the script if $METHOD is set to something unexpected (#1917)
- Allow zsh users to have the nomatch option set (#1938)
- avoid unbound variable (#1949)
## Refactors
- Speedup nvm_list_aliases (#1517)
- `bash_completion`: Improve coding style (#1816)
- [shellcheck] use `{ …; }` instead of `(…)` to group test commands (#1825)
- [shellcheck] quote variables in for loops to avoid unintentional expansion
- [shellcheck] ignore SC2230 errors
- [shellcheck] Use `-n/-z` instead of `! -z/! -n` condition (#1955)
## Tests
- add `nvm install-latest-npm` tests for all node versions
- fix failing tests on master due to npm registry SSL changes
- Enable ccache on Travis CI to speed up compilation (#1947)
- print out shellcheck version
- avoid using shopt in zsh
## Docs
- add --tags to git fetch in manual upgrade (#1793)
- fix failing if check in autoload script (#1821)
- Grammar update (#1822)
- fix for .nvmrc script (#1823)
- add --no-use option to installation (#1839, #1840, #1862)
- add instructions for installing a specific version (#1901)
- Added fish nvm (#1926)
- Add section on automatic `nvm use` in Bash (#1865)
- improve instructions for manual install (#1930)
- update README to fix docker run command flag order (#1925)
- Improve md file syntax (#1864)
- Add Ansible task example (#1964)
- Improve indent of output block in GitHub Issue template (#1967)
- fixing cdnvm on .bashrc (#1971)
- Improve phrasing of 'nvm current' (#1974)
v0.33.11 (2018-04-25)
## Fix
- `install-latest-npm`: node v4.5 and v4.6 work on npm v5.4.1, but not v5.4.2
v0.33.10 (2018-04-25)
## Fix
- `install-latest-npm`: npm 6 is out, and requires node 6 or higher
v0.33.9 (2018-04-15)
## New Stuff
- `nvm debug`: Print $SHLVL, add $PATH (#1655, #1745)
## Fixes
- `install.sh`: detect a defined but nonexistent $NVM_DIR (#1700)
- `install.sh`: Don't give detached HEAD advice when installing (#1704)
- Add missing "command" prefixes for few commands (#1735, #1725, #1736)
- Use `nvm_echo` instead of `echo` directly (#1751)
- `reinstall-packages`: Prevent install/link when no packages found (#1750)
- ensure --reinstall-packages-from has a version number (#1760)
- `bash_completion`: Reduce startup time (#1759)
- installing with an LTS name should lowercase the name before ensuring a default (#1781)
- Add autocompletion support to zsh (#1707)
- `install.sh`: Detect profile with $BASH_VERSION and $ZSH_VERSION (#1780)
- Turn off wget's output in nvm_get_latest (#1785)
- `nvm debug`: Improve OS version detection (#1746)
## Refactors
- Various style and shellcheck fixes (#1684, #1724, #1747, #1748)
- Optimize ShellCheck installation in Docker image (#1729)
- Remove duplicate code in nvm_npm_global_modules() (#1742)
- Use grep `-q` parameter instead of redirect to /dev/null (#1741)
- `install.sh`: Improve install.sh prompt output, add a newline (#1783)
## Docs
- Explain `.nvmrc` better (#1673)
- Update minimum git version to v1.17.10
- Add escape sequences (#1701)
- add `nvm which current` to `nvm --help` output
- avoid need for future copyright year updates (#1713)
- Add reminder that NVM_DIR should not contain trailing slash (#1726, #1708)
- Display FreeBSD and SunOS with correct caps (#1728)
- Update Docker image build info in README.md (#1733)
- Various typo fixes (#1756, #1753)
- removed global install on README.md (#1775, #1773)
- Add removal instructions to README.md (#1777, #1767)
- Fix manual install & upgrade guide (#1786, #1772)
- Add macOS install script note about git (#1787, #1782)
## Tests
- add test for aliased `.` (#1701)
- fix mirrors in mocks update script, update mocks
- Add EditorConfig to help maintain part of coding style (#1739)
v0.33.8 (2017-12-12)
## Fix
- `nvm install-latest-npm`: fix for node 4.5/4.6
v0.33.7 (2017-12-09)
## Fixes
- fix unassigned variable (#1665, #1664)
- Fix for $path used by zsh (#1669)
- `set -u`: ensure `NVM_USE_OUTPUT` is always set (#1671)
- `install.sh`: Fix a bug that block that installation of node in install.sh (#1676)
- `nvm install-latest-npm`: fix node 4-4.6
## Documentation
- Make `nvm cache clear` message less ambiguous (#1644)
- Added missing piece (#1658)
v0.33.6 (2017-10-24)
## Fixes
- `install.sh` do not use nonexistent variable (#1605)
- `install-latest-npm`: `npm` `v5.4`+ breaks on `node` `v4.5` and `v4.6`
## Documentation
- Improve git installation instructions (#1636)
- Fix typos (#1640)
## Tests
- [Cleanup] Remove ghc related things in .travis.yml (#1639, #1619)
v0.33.5 (2017-10-24)
## New Stuff
- `debug`: Enhance nvm debug with more tools info (#1613)
## Fixes
- `install-latest-npm`: `io.js` `v1.0.x` has weird behavior with npm v4.6.x.
- unset `NVM_RC_VERSION` when unloading (#1607)
- Preserve PATH locations order when changing versions (#1316)
- ensure all `grep` calls go through `nvm_grep` (#1615)
## Documentation
- Update README.md for Alpine linux reference (#1606)
## Tests
- retry io.js test runs, since iojs.org is flaky
- Remove the manual ShellCheck install proecss on Travis CI (#1619)
v0.33.4 (2017-09-05)
## Fixes
- [Fix] `install-latest-npm`: `io.js` `v1.0.0` has weird behavior with npm v4.6.x
v0.33.3 (2017-09-04)
## New Stuff
- `nvm install`: add `--latest-npm` option to automatically try to upgrade to the latest working version of `npm`
- add support for `$NVM_DIR/default-packages` file (#1463)
- Introduce Docker environment for nvm (#1472, #1575)
- Print $TERM_PROGRAM in nvm debug if it exists (#1578)
- `install.sh`: Speedup process to install nvm from git by dropping commit history (#1476)
- `install.sh`: Add `--auto` to git gc to speed up install & upgrade (#1576)
- `install.sh`: Clean up git reflog history before git gc (#1579)
- `install.sh`: install bash_completion via script method (#1588)
## Fixes
- `set -u`: ensure that potentially unbound variables aren’t called unchecked (#1363, #1516)
- ensure if `npm link` fails, that `$IFS` is not improperly set (#1519)
- set IFS to default for all nvm commands (#1227, #1244, #1514, #1518)
- `set -u`: when `ALIAS` is unset, don’t reference an unbound variable (#1526)
- Fix `--version` help text (#1538)
- enable curl compression only on curl >=7.21.0 (#1550)
- `nvm install -s`: properly precompute clang version (#1554)
- curl should fail if something wrong (#1556, #1557)
- Adjust $CURL_COMPRESSED_FLAG usage for curl (#1562, #1567)
- `set -u`: `nvm install`/`nvm use`: fix unbound vars (#1587)
- [bash completion] add missing `install-latest-npm`; remove undocumented `clear-cache` (#1564)
## Documentation
- move the install script to the top; put the notes in a separate section
- Install script - Improve installation guide (#1544)
- bump sample version numbers (#1539)
- add note about Linux troubleshooting (#1566)
- updated to reflect current script output (#1574)
## Testing
- Fix cache for WITHOUT_CURL tests in Travis (#1529)