From 4fc91d408c316cff7851770c7200876e63650a60 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 24 Jul 2023 18:24:39 -0700 Subject: [PATCH 1/3] [Dev Deps] update `markdown-link-check`, `semver` --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 3904af6..6b8985d 100644 --- a/package.json +++ b/package.json @@ -43,9 +43,9 @@ "dockerfile_lint": "^0.3.4", "doctoc": "^2.2.1", "eclint": "^2.8.1", - "markdown-link-check": "^3.11.0", + "markdown-link-check": "^3.11.2", "replace": "^1.2.2", - "semver": "^7.3.8", + "semver": "^7.5.4", "urchin": "^0.0.5" } } From 8fbf8ab6943d0bcb402773c3c2b30c2f103d7fa2 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 24 Jul 2023 18:29:54 -0700 Subject: [PATCH 2/3] v0.39.4 --- README.md | 22 +++++++++++----------- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index c43720c..f6b5de0 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ -# Node Version Manager [![Build Status](https://app.travis-ci.com/nvm-sh/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.39.3-yellow.svg)][4] [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/684/badge)](https://bestpractices.coreinfrastructure.org/projects/684) +# Node Version Manager [![Build Status](https://app.travis-ci.com/nvm-sh/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.39.4-yellow.svg)][4] [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/684/badge)](https://bestpractices.coreinfrastructure.org/projects/684) @@ -101,10 +101,10 @@ nvm is a version manager for [node.js](https://nodejs.org/en/), designed to be i To **install** or **update** nvm, you should run the [install script][2]. To do that, you may either download and run the script manually, or use the following cURL or Wget command: ```sh -curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash ``` ```sh -wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash +wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash ``` Running either of the above commands downloads a script and runs it. The script clones the nvm repository to `~/.nvm`, and attempts to add the source lines from the snippet below to the correct profile file (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). @@ -126,7 +126,7 @@ Eg: `curl ... | NVM_DIR="path/to/nvm"`. Ensure that the `NVM_DIR` does not conta - The installer can use `git`, `curl`, or `wget` to download `nvm`, whichever is available. -- You can instruct the installer to not edit your shell config (for example if you already get completions via a [zsh nvm plugin](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/nvm)) by setting `PROFILE=/dev/null` before running the `install.sh` script. Here's an example one-line command to do that: `PROFILE=/dev/null bash -c 'curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash'` +- You can instruct the installer to not edit your shell config (for example if you already get completions via a [zsh nvm plugin](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/nvm)) by setting `PROFILE=/dev/null` before running the `install.sh` script. Here's an example one-line command to do that: `PROFILE=/dev/null bash -c 'curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash'` #### Troubleshooting on Linux @@ -174,7 +174,7 @@ You can use a task: ```yaml - name: Install nvm ansible.builtin.shell: > - curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash + curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash args: creates: "{{ ansible_env.HOME }}/.nvm/nvm.sh" ``` @@ -236,7 +236,7 @@ If you have `git` installed (requires git v1.7.10+): 1. clone this repo in the root of your user profile - `cd ~/` from anywhere then `git clone https://github.com/nvm-sh/nvm.git .nvm` -1. `cd ~/.nvm` and check out the latest version with `git checkout v0.39.3` +1. `cd ~/.nvm` and check out the latest version with `git checkout v0.39.4` 1. activate `nvm` by sourcing it from your shell: `. ./nvm.sh` Now add these lines to your `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it automatically sourced upon login: @@ -809,13 +809,13 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh ### Alpine Linux 3.13+ ```sh apk add -U curl bash ca-certificates openssl ncurses coreutils python3 make gcc g++ libgcc linux-headers grep util-linux binutils findutils -curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash ``` ### Alpine Linux 3.5 - 3.12 ```sh apk add -U curl bash ca-certificates openssl ncurses coreutils python2 make gcc g++ libgcc linux-headers grep util-linux binutils findutils -curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash ``` _Note: Alpine 3.5 can only install NodeJS versions up to v6.9.5, Alpine 3.6 can only install versions up to v6.10.3, Alpine 3.7 installs versions up to v8.9.3, Alpine 3.8 installs versions up to v8.14.0, Alpine 3.9 installs versions up to v10.19.0, Alpine 3.10 installs versions up to v10.24.1, Alpine 3.11 installs versions up to v12.22.6, Alpine 3.12 installs versions up to v12.22.12, Alpine 3.13 & 3.14 install versions up to v14.20.0, Alpine 3.15 & 3.16 install versions up to v16.16.0 (**These are all versions on the main branch**). Alpine 3.5 - 3.12 required the package `python2` to build NodeJS, as they are older versions to build. Alpine 3.13+ requires `python3` to successfully build newer NodeJS versions, but you can use `python2` with Alpine 3.13+ if you need to build versions of node supported in Alpine 3.5 - 3.15, you just need to specify what version of NodeJS you need to install in the package install script._ @@ -914,9 +914,9 @@ You have to make sure that the user directory name in `$HOME` and the user direc To change the user directory and/or account name follow the instructions [here](https://support.apple.com/en-us/HT201548) [1]: https://github.com/nvm-sh/nvm.git -[2]: https://github.com/nvm-sh/nvm/blob/v0.39.3/install.sh +[2]: https://github.com/nvm-sh/nvm/blob/v0.39.4/install.sh [3]: https://app.travis-ci.com/nvm-sh/nvm -[4]: https://github.com/nvm-sh/nvm/releases/tag/v0.39.3 +[4]: https://github.com/nvm-sh/nvm/releases/tag/v0.39.4 [Urchin]: https://git.sdf.org/tlevine/urchin [Fish]: https://fishshell.com @@ -1001,7 +1001,7 @@ Now you should be able to use node as usual. If you've encountered this error on WSL-2: ```sh - curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash + curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- 0:00:09 --:--:-- 0curl: (6) Could not resolve host: raw.githubusercontent.com diff --git a/install.sh b/install.sh index e8a3764..49c3df3 100755 --- a/install.sh +++ b/install.sh @@ -33,7 +33,7 @@ nvm_install_dir() { } nvm_latest_version() { - nvm_echo "v0.39.3" + nvm_echo "v0.39.4" } nvm_profile_is_bash_or_zsh() { diff --git a/nvm.sh b/nvm.sh index d869406..5a0931e 100644 --- a/nvm.sh +++ b/nvm.sh @@ -4173,7 +4173,7 @@ nvm() { NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; "--version" | "-v") - nvm_echo '0.39.3' + nvm_echo '0.39.4' ;; "unload") nvm deactivate >/dev/null 2>&1 diff --git a/package.json b/package.json index 6b8985d..9767d9f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.39.3", + "version": "0.39.4", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 3afdce0a2c4346cc625792b7bc94ca867c73777c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 26 Jul 2023 13:15:01 -0700 Subject: [PATCH 3/3] [Fix] `nvm install-latest-npm`: ensure npm 10 does not install on unsupported nodes See https://github.com/npm/cli/pull/6674 --- nvm.sh | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/nvm.sh b/nvm.sh index 5a0931e..daa8207 100644 --- a/nvm.sh +++ b/nvm.sh @@ -317,6 +317,21 @@ nvm_install_latest_npm() { if [ $NVM_IS_17_OR_ABOVE -eq 1 ] && nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 18.0.0; then NVM_IS_18_OR_ABOVE=1 fi + local NVM_IS_18_17_OR_ABOVE + NVM_IS_18_17_OR_ABOVE=0 + if [ $NVM_IS_18_OR_ABOVE -eq 1 ] && nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 18.17.0; then + NVM_IS_18_17_OR_ABOVE=1 + fi + local NVM_IS_19_OR_ABOVE + NVM_IS_19_OR_ABOVE=0 + if [ $NVM_IS_18_17_OR_ABOVE -eq 1 ] && nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 19.0.0; then + NVM_IS_19_OR_ABOVE=1 + fi + local NVM_IS_20_5_OR_ABOVE + NVM_IS_20_5_OR_ABOVE=0 + if [ $NVM_IS_19_OR_ABOVE -eq 1 ] && nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 20.5.0; then + NVM_IS_20_5_OR_ABOVE=1 + fi if [ $NVM_IS_4_4_OR_BELOW -eq 1 ] || { [ $NVM_IS_5_OR_ABOVE -eq 1 ] && nvm_version_greater 5.10.0 "${NODE_VERSION}"; \ @@ -357,6 +372,12 @@ nvm_install_latest_npm() { ; then nvm_echo '* `npm` `v8.x` is the last version that works on `node` `v12`, `v14.13` - `v14.16`, or `v16.0` - `v16.12`' $NVM_NPM_CMD install -g npm@8 + elif \ + [ $NVM_IS_18_17_OR_ABOVE -eq 0 ] \ + || { [ $NVM_IS_19_OR_ABOVE -eq 1 ] && [ $NVM_IS_20_5_OR_ABOVE -eq 0 ]; } \ + ; then + nvm_echo '* `npm` `v9.x` is the last version that works on `node` `< v18.17`, `v19`, or `v20.0` - `v20.4`' + $NVM_NPM_CMD install -g npm@9 else nvm_echo '* Installing latest `npm`; if this does not work on your node version, please report a bug!' $NVM_NPM_CMD install -g npm