From 744507b83e690b3349fa3072dead8d76baa66b8e Mon Sep 17 00:00:00 2001 From: Koen Punt Date: Sun, 16 Mar 2014 18:09:54 +0100 Subject: [PATCH 0001/1426] added nvm unload method to remove nvm from shell --- nvm.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/nvm.sh b/nvm.sh index 92a3fca..4b8bc78 100644 --- a/nvm.sh +++ b/nvm.sh @@ -218,6 +218,7 @@ nvm() { echo " nvm alias Set an alias named pointing to " echo " nvm unalias Deletes the alias named " echo " nvm copy-packages Install global NPM packages contained in to current version" + echo " nvm unload Unload NVM from shell" echo echo "Example:" echo " nvm install v0.10.24 Install a specific version number" @@ -556,6 +557,10 @@ nvm() { "--version" ) echo "nvm v0.3.0" ;; + "unload" ) + unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version > /dev/null 2>&1 + unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_DIR NVM_CD_FLAGS > /dev/null 2>&1 + ;; * ) nvm help ;; From 703acb0514ae67fd914673018c5c594e155ad65f Mon Sep 17 00:00:00 2001 From: Koen Punt Date: Sun, 16 Mar 2014 18:16:46 +0100 Subject: [PATCH 0002/1426] Added test for nvm unload --- ...unload\" should unset all function and variables." | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100755 "test/fast/Running \"nvm unload\" should unset all function and variables." diff --git "a/test/fast/Running \"nvm unload\" should unset all function and variables." "b/test/fast/Running \"nvm unload\" should unset all function and variables." new file mode 100755 index 0000000..bbb4343 --- /dev/null +++ "b/test/fast/Running \"nvm unload\" should unset all function and variables." @@ -0,0 +1,11 @@ +#!/bin/sh + +fail () { echo $@ ; exit 1; } + +. ../../nvm.sh + +type nvm > /dev/null 2>&1 || fail "NVM not loaded" + +nvm unload + +type nvm > /dev/null 2>&1 && fail "NVM not unloaded" || exit 0 \ No newline at end of file From f00d688c87873a9e3cffc1dbf54f63e0edd6e69b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 4 May 2014 00:59:08 -0700 Subject: [PATCH 0003/1426] Nicer failure message when trying to install an invalid version. Fixes #285. --- nvm.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/nvm.sh b/nvm.sh index 4ed0926..38d1f17 100644 --- a/nvm.sh +++ b/nvm.sh @@ -308,6 +308,11 @@ nvm() { [ -d "$NVM_DIR/$VERSION" ] && echo "$VERSION is already installed." && return + if [ "$VERSION" = "N/A" ]; then + echo "Version '$VERSION' not found - try \`nvm ls-remote\` to browse available versions." + return 3 + fi + # skip binary install if no binary option specified. if [ $nobinary -ne 1 ]; then # shortcut - try the binary if possible. From c0c5e8d7efa2d59205ab28b4b95fe64d3361b9a5 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 4 May 2014 02:20:24 -0700 Subject: [PATCH 0004/1426] Editing README to note improved .nvmrc behavior. --- README.markdown | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/README.markdown b/README.markdown index babed92..c2602df 100644 --- a/README.markdown +++ b/README.markdown @@ -37,6 +37,9 @@ Often I also put in a line to use a specific version of node. ## Usage +You can create an `.nvmrc` file containing version number in the project root directory (or any parent directory). +`nvm use`, `nvm install`, and `nvm run` will all respect an `.nvmrc` file. + To download, compile, and install the latest v0.10.x release of node, do this: nvm install 0.10 @@ -45,13 +48,9 @@ And then in any new shell just use the installed version: nvm use 0.10 -You can create an `.nvmrc` file containing version number in the project root folder; run the following command to switch versions: - - nvm use - Or you can just run it: - nvm run 0.10 + nvm run 0.10 --version If you want to see what versions are installed: From e562a5645b14ee1c2fc5884d09f3a1d3e1a4559e Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 4 May 2014 02:20:31 -0700 Subject: [PATCH 0005/1426] v0.6.0 --- README.markdown | 6 +++--- nvm.sh | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.markdown b/README.markdown index c2602df..e82d79b 100644 --- a/README.markdown +++ b/README.markdown @@ -8,11 +8,11 @@ First you'll need to make sure your system has a c++ compiler. For OSX, XCode w To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.5.1/install.sh | sh + curl https://raw.githubusercontent.com/creationix/nvm/v0.6.0/install.sh | sh or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.5.1/install.sh | sh + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.6.0/install.sh | sh The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -163,7 +163,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.5.1/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.6.0/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin diff --git a/nvm.sh b/nvm.sh index 38d1f17..88cd471 100644 --- a/nvm.sh +++ b/nvm.sh @@ -616,7 +616,7 @@ nvm() { nvm_version $2 ;; "--version" ) - echo "nvm v0.5.1" + echo "nvm v0.6.0" ;; * ) nvm help diff --git a/package.json b/package.json index deff57e..f5ded75 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.5.1", + "version": "0.6.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 673cda56c4ab4fdf6804091a496accaa0abc0624 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 4 May 2014 12:03:26 -0700 Subject: [PATCH 0006/1426] Adding a test for `nvm install invalid` behavior, and correcting the message. From https://github.com/creationix/nvm/commit/f00d688c87873a9e3cffc1dbf54f63e0edd6e69b#commitcomment-6205164 --- nvm.sh | 2 +- ...g \"nvm install\" with an invalid version fails nicely" | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100755 "test/fast/Running \"nvm install\" with an invalid version fails nicely" diff --git a/nvm.sh b/nvm.sh index 88cd471..5ac6cb7 100644 --- a/nvm.sh +++ b/nvm.sh @@ -309,7 +309,7 @@ nvm() { [ -d "$NVM_DIR/$VERSION" ] && echo "$VERSION is already installed." && return if [ "$VERSION" = "N/A" ]; then - echo "Version '$VERSION' not found - try \`nvm ls-remote\` to browse available versions." + echo "Version '$provided_version' not found - try \`nvm ls-remote\` to browse available versions." return 3 fi diff --git "a/test/fast/Running \"nvm install\" with an invalid version fails nicely" "b/test/fast/Running \"nvm install\" with an invalid version fails nicely" new file mode 100755 index 0000000..2f556e9 --- /dev/null +++ "b/test/fast/Running \"nvm install\" with an invalid version fails nicely" @@ -0,0 +1,7 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../nvm.sh +[ "$(nvm install invalid.invalid)" = "Version 'invalid.invalid' not found - try \`nvm ls-remote\` to browse available versions." ] || die "nvm installing an invalid version did not print a nice error message" + From 29f582611b3a3f966ca46e8b9bcd30c1c4aac856 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 4 May 2014 12:40:02 -0700 Subject: [PATCH 0007/1426] v0.6.1 --- README.markdown | 6 +++--- nvm.sh | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.markdown b/README.markdown index e82d79b..7891dbd 100644 --- a/README.markdown +++ b/README.markdown @@ -8,11 +8,11 @@ First you'll need to make sure your system has a c++ compiler. For OSX, XCode w To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.6.0/install.sh | sh + curl https://raw.githubusercontent.com/creationix/nvm/v0.6.1/install.sh | sh or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.6.0/install.sh | sh + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.6.1/install.sh | sh The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -163,7 +163,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.6.0/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.6.1/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin diff --git a/nvm.sh b/nvm.sh index 5ac6cb7..ec5c6e4 100644 --- a/nvm.sh +++ b/nvm.sh @@ -616,7 +616,7 @@ nvm() { nvm_version $2 ;; "--version" ) - echo "nvm v0.6.0" + echo "nvm v0.6.1" ;; * ) nvm help diff --git a/package.json b/package.json index f5ded75..deb9be7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.6.0", + "version": "0.6.1", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 3d9c1d7852d8db7241ff4f68f6c0f4f9b5cb4d8c Mon Sep 17 00:00:00 2001 From: Koen Punt Date: Mon, 5 May 2014 21:43:22 +0200 Subject: [PATCH 0008/1426] use sed for *PATH stripping --- nvm.sh | 30 +++++++++---------- ...ould unset the nvm environment variables." | 4 +-- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/nvm.sh b/nvm.sh index ec5c6e4..bc4aede 100644 --- a/nvm.sh +++ b/nvm.sh @@ -424,20 +424,20 @@ nvm() { ;; "deactivate" ) if [ `expr "$PATH" : ".*$NVM_DIR/.*/bin.*"` != 0 ] ; then - export PATH=${PATH%$NVM_DIR/*/bin*}${PATH#*$NVM_DIR/*/bin:} + export PATH=`echo $PATH | sed -E "s#$NVM_DIR/[^/]*/bin[^:]*(:)?##g"` hash -r echo "$NVM_DIR/*/bin removed from \$PATH" else echo "Could not find $NVM_DIR/*/bin in \$PATH" fi if [ `expr "$MANPATH" : ".*$NVM_DIR/.*/share/man.*"` != 0 ] ; then - export MANPATH=${MANPATH%$NVM_DIR/*/share/man*}${MANPATH#*$NVM_DIR/*/share/man:} + export MANPATH=`echo $MANPATH | sed -E "s#$NVM_DIR/[^/]*/share/man[^:]*(:)?##g"` echo "$NVM_DIR/*/share/man removed from \$MANPATH" else echo "Could not find $NVM_DIR/*/share/man in \$MANPATH" fi if [ `expr "$NODE_PATH" : ".*$NVM_DIR/.*/lib/node_modules.*"` != 0 ] ; then - export NODE_PATH=${NODE_PATH%$NVM_DIR/*/lib/node_modules*}${NODE_PATH#*$NVM_DIR/*/lib/node_modules:} + export NODE_PATH=`echo $NODE_PATH | sed -E "s#$NVM_DIR/[^/]*/lib/node_modules[^:]*(:)?##g"` echo "$NVM_DIR/*/lib/node_modules removed from \$NODE_PATH" else echo "Could not find $NVM_DIR/*/lib/node_modules in \$NODE_PATH" @@ -468,24 +468,23 @@ nvm() { return 1 fi if [ `expr "$PATH" : ".*$NVM_DIR/.*/bin"` != 0 ]; then - PATH=${PATH%$NVM_DIR/*/bin*}$NVM_DIR/$VERSION/bin${PATH#*$NVM_DIR/*/bin} - else - PATH="$NVM_DIR/$VERSION/bin:$PATH" + # Strip other version from PATH + PATH=`echo $PATH | sed -E "s#$NVM_DIR/[^/]*/bin[^:]*(:)?##g"` fi + PATH="$NVM_DIR/$VERSION/bin:$PATH" if [ -z "$MANPATH" ]; then MANPATH=$(manpath) fi - MANPATH=${MANPATH#*$NVM_DIR/*/man:} if [ `expr "$MANPATH" : ".*$NVM_DIR/.*/share/man"` != 0 ]; then - MANPATH=${MANPATH%$NVM_DIR/*/share/man*}$NVM_DIR/$VERSION/share/man${MANPATH#*$NVM_DIR/*/share/man} - else - MANPATH="$NVM_DIR/$VERSION/share/man:$MANPATH" + # Strip other version from MANPATH + MANPATH=`echo $MANPATH | sed -E "s#$NVM_DIR/[^/]*/share/man[^:]*(:)?##g"` fi + MANPATH="$NVM_DIR/$VERSION/share/man:$MANPATH" if [ `expr "$NODE_PATH" : ".*$NVM_DIR/.*/lib/node_modules.*"` != 0 ]; then - NODE_PATH=${NODE_PATH%$NVM_DIR/*/lib/node_modules*}$NVM_DIR/$VERSION/lib/node_modules${NODE_PATH#*$NVM_DIR/*/lib/node_modules} - else - NODE_PATH="$NVM_DIR/$VERSION/lib/node_modules:$NODE_PATH" + # Strip other version from NODE_PATH + NODE_PATH=`echo $NODE_PATH | sed -E "s#$NVM_DIR/[^/]*/lib/node_modules[^:]*(:)?##g"` fi + NODE_PATH="$NVM_DIR/$VERSION/lib/node_modules:$NODE_PATH" export PATH hash -r export MANPATH @@ -531,10 +530,9 @@ nvm() { return; fi if [ `expr "$NODE_PATH" : ".*$NVM_DIR/.*/lib/node_modules.*"` != 0 ]; then - RUN_NODE_PATH=${NODE_PATH%$NVM_DIR/*/lib/node_modules*}$NVM_DIR/$VERSION/lib/node_modules${NODE_PATH#*$NVM_DIR/*/lib/node_modules} - else - RUN_NODE_PATH="$NVM_DIR/$VERSION/lib/node_modules:$NODE_PATH" + RUN_NODE_PATH=`echo $NODE_PATH | sed -E "s#$NVM_DIR/[^/]*/lib/node_modules[^:]*(:)?##g"` fi + RUN_NODE_PATH="$NVM_DIR/$VERSION/lib/node_modules:$NODE_PATH" echo "Running node $VERSION" NODE_PATH=$RUN_NODE_PATH $NVM_DIR/$VERSION/bin/node "$@" ;; diff --git "a/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." "b/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." index 2526bdb..2149273 100755 --- "a/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." +++ "b/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." @@ -8,7 +8,7 @@ die () { echo $@ ; exit 1; } . ../../nvm.sh nvm use v0.2.3 && -[ `expr $PATH : ".*v0.2.3/.*/bin"` != 0 ] || die "Failed to activate v0.2.3" +[ `expr $PATH : ".*v0.2.3/.*/bin"` != 0 ] && [ `expr $NODE_PATH : ".*v0.2.3/.*/lib/node_modules"` != 0 ] || die "Failed to activate v0.2.3" nvm deactivate && -[ `expr $PATH : ".*v0.2.3/.*/bin"` = 0 ] || die "Failed to deactivate v0.2.3" +[ `expr $PATH : ".*v0.2.3/.*/bin"` = 0 ] && [ `expr $NODE_PATH : ".*v0.2.3/.*/lib/node_modules"` = 0 ] || die "Failed to deactivate v0.2.3" From 6668dc5c472b698a3fdb8c587f7a3db3324e6bba Mon Sep 17 00:00:00 2001 From: Koen Punt Date: Mon, 5 May 2014 21:50:59 +0200 Subject: [PATCH 0009/1426] remove parentheses --- nvm.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/nvm.sh b/nvm.sh index bc4aede..0310078 100644 --- a/nvm.sh +++ b/nvm.sh @@ -424,20 +424,20 @@ nvm() { ;; "deactivate" ) if [ `expr "$PATH" : ".*$NVM_DIR/.*/bin.*"` != 0 ] ; then - export PATH=`echo $PATH | sed -E "s#$NVM_DIR/[^/]*/bin[^:]*(:)?##g"` + export PATH=`echo $PATH | sed -E "s#$NVM_DIR/[^/]*/bin[^:]*:?##g"` hash -r echo "$NVM_DIR/*/bin removed from \$PATH" else echo "Could not find $NVM_DIR/*/bin in \$PATH" fi if [ `expr "$MANPATH" : ".*$NVM_DIR/.*/share/man.*"` != 0 ] ; then - export MANPATH=`echo $MANPATH | sed -E "s#$NVM_DIR/[^/]*/share/man[^:]*(:)?##g"` + export MANPATH=`echo $MANPATH | sed -E "s#$NVM_DIR/[^/]*/share/man[^:]*:?##g"` echo "$NVM_DIR/*/share/man removed from \$MANPATH" else echo "Could not find $NVM_DIR/*/share/man in \$MANPATH" fi if [ `expr "$NODE_PATH" : ".*$NVM_DIR/.*/lib/node_modules.*"` != 0 ] ; then - export NODE_PATH=`echo $NODE_PATH | sed -E "s#$NVM_DIR/[^/]*/lib/node_modules[^:]*(:)?##g"` + export NODE_PATH=`echo $NODE_PATH | sed -E "s#$NVM_DIR/[^/]*/lib/node_modules[^:]*:?##g"` echo "$NVM_DIR/*/lib/node_modules removed from \$NODE_PATH" else echo "Could not find $NVM_DIR/*/lib/node_modules in \$NODE_PATH" @@ -469,7 +469,7 @@ nvm() { fi if [ `expr "$PATH" : ".*$NVM_DIR/.*/bin"` != 0 ]; then # Strip other version from PATH - PATH=`echo $PATH | sed -E "s#$NVM_DIR/[^/]*/bin[^:]*(:)?##g"` + PATH=`echo $PATH | sed -E "s#$NVM_DIR/[^/]*/bin[^:]*:?##g"` fi PATH="$NVM_DIR/$VERSION/bin:$PATH" if [ -z "$MANPATH" ]; then @@ -477,12 +477,12 @@ nvm() { fi if [ `expr "$MANPATH" : ".*$NVM_DIR/.*/share/man"` != 0 ]; then # Strip other version from MANPATH - MANPATH=`echo $MANPATH | sed -E "s#$NVM_DIR/[^/]*/share/man[^:]*(:)?##g"` + MANPATH=`echo $MANPATH | sed -E "s#$NVM_DIR/[^/]*/share/man[^:]*:?##g"` fi MANPATH="$NVM_DIR/$VERSION/share/man:$MANPATH" if [ `expr "$NODE_PATH" : ".*$NVM_DIR/.*/lib/node_modules.*"` != 0 ]; then # Strip other version from NODE_PATH - NODE_PATH=`echo $NODE_PATH | sed -E "s#$NVM_DIR/[^/]*/lib/node_modules[^:]*(:)?##g"` + NODE_PATH=`echo $NODE_PATH | sed -E "s#$NVM_DIR/[^/]*/lib/node_modules[^:]*:?##g"` fi NODE_PATH="$NVM_DIR/$VERSION/lib/node_modules:$NODE_PATH" export PATH @@ -530,7 +530,7 @@ nvm() { return; fi if [ `expr "$NODE_PATH" : ".*$NVM_DIR/.*/lib/node_modules.*"` != 0 ]; then - RUN_NODE_PATH=`echo $NODE_PATH | sed -E "s#$NVM_DIR/[^/]*/lib/node_modules[^:]*(:)?##g"` + RUN_NODE_PATH=`echo $NODE_PATH | sed -E "s#$NVM_DIR/[^/]*/lib/node_modules[^:]*:?##g"` fi RUN_NODE_PATH="$NVM_DIR/$VERSION/lib/node_modules:$NODE_PATH" echo "Running node $VERSION" From d6e457354f7d908ecaabc6f80349b494971df72a Mon Sep 17 00:00:00 2001 From: Koen Punt Date: Mon, 5 May 2014 22:03:11 +0200 Subject: [PATCH 0010/1426] use nvm_strip_path utility method for path stripping --- nvm.sh | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/nvm.sh b/nvm.sh index 0310078..30eb9eb 100644 --- a/nvm.sh +++ b/nvm.sh @@ -97,6 +97,10 @@ nvm_format_version() { echo "$1" | sed -e 's/^\([0-9]\)/v\1/g' } +nvm_strip_path() { + echo $1 | sed -E "s#$NVM_DIR/[^/]*$2[^:]*:?##g" +} + nvm_binary_available() { # binaries started with node 0.8.6 local MINIMAL="0.8.6" @@ -424,20 +428,20 @@ nvm() { ;; "deactivate" ) if [ `expr "$PATH" : ".*$NVM_DIR/.*/bin.*"` != 0 ] ; then - export PATH=`echo $PATH | sed -E "s#$NVM_DIR/[^/]*/bin[^:]*:?##g"` + export PATH=`nvm_strip_path "$PATH" "/bin"` hash -r echo "$NVM_DIR/*/bin removed from \$PATH" else echo "Could not find $NVM_DIR/*/bin in \$PATH" fi if [ `expr "$MANPATH" : ".*$NVM_DIR/.*/share/man.*"` != 0 ] ; then - export MANPATH=`echo $MANPATH | sed -E "s#$NVM_DIR/[^/]*/share/man[^:]*:?##g"` + export MANPATH=`nvm_strip_path "$MANPATH" "/share/man"` echo "$NVM_DIR/*/share/man removed from \$MANPATH" else echo "Could not find $NVM_DIR/*/share/man in \$MANPATH" fi if [ `expr "$NODE_PATH" : ".*$NVM_DIR/.*/lib/node_modules.*"` != 0 ] ; then - export NODE_PATH=`echo $NODE_PATH | sed -E "s#$NVM_DIR/[^/]*/lib/node_modules[^:]*:?##g"` + export NODE_PATH=`nvm_strip_path "$NODE_PATH" "/lib/node_modules"` echo "$NVM_DIR/*/lib/node_modules removed from \$NODE_PATH" else echo "Could not find $NVM_DIR/*/lib/node_modules in \$NODE_PATH" @@ -469,7 +473,7 @@ nvm() { fi if [ `expr "$PATH" : ".*$NVM_DIR/.*/bin"` != 0 ]; then # Strip other version from PATH - PATH=`echo $PATH | sed -E "s#$NVM_DIR/[^/]*/bin[^:]*:?##g"` + PATH=`nvm_strip_path "$PATH" "/bin"` fi PATH="$NVM_DIR/$VERSION/bin:$PATH" if [ -z "$MANPATH" ]; then @@ -477,12 +481,12 @@ nvm() { fi if [ `expr "$MANPATH" : ".*$NVM_DIR/.*/share/man"` != 0 ]; then # Strip other version from MANPATH - MANPATH=`echo $MANPATH | sed -E "s#$NVM_DIR/[^/]*/share/man[^:]*:?##g"` + MANPATH=`nvm_strip_path "$MANPATH" "/share/man"` fi MANPATH="$NVM_DIR/$VERSION/share/man:$MANPATH" if [ `expr "$NODE_PATH" : ".*$NVM_DIR/.*/lib/node_modules.*"` != 0 ]; then # Strip other version from NODE_PATH - NODE_PATH=`echo $NODE_PATH | sed -E "s#$NVM_DIR/[^/]*/lib/node_modules[^:]*:?##g"` + NODE_PATH=`nvm_strip_path "$NODE_PATH" "/lib/node_modules"` fi NODE_PATH="$NVM_DIR/$VERSION/lib/node_modules:$NODE_PATH" export PATH @@ -530,7 +534,7 @@ nvm() { return; fi if [ `expr "$NODE_PATH" : ".*$NVM_DIR/.*/lib/node_modules.*"` != 0 ]; then - RUN_NODE_PATH=`echo $NODE_PATH | sed -E "s#$NVM_DIR/[^/]*/lib/node_modules[^:]*:?##g"` + RUN_NODE_PATH=`nvm_strip_path "$NODE_PATH" "/lib/node_modules"` fi RUN_NODE_PATH="$NVM_DIR/$VERSION/lib/node_modules:$NODE_PATH" echo "Running node $VERSION" From 0d81a219ae77d029f6c5e463cd8c9426651e0969 Mon Sep 17 00:00:00 2001 From: Koen Punt Date: Mon, 5 May 2014 22:05:02 +0200 Subject: [PATCH 0011/1426] add quotes --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 30eb9eb..825d68b 100644 --- a/nvm.sh +++ b/nvm.sh @@ -98,7 +98,7 @@ nvm_format_version() { } nvm_strip_path() { - echo $1 | sed -E "s#$NVM_DIR/[^/]*$2[^:]*:?##g" + echo "$1" | sed -E "s#$NVM_DIR/[^/]*$2[^:]*:?##g" } nvm_binary_available() { From 652a9ef9b52f29888fdfdb3d581c8661a3615941 Mon Sep 17 00:00:00 2001 From: Koen Punt Date: Tue, 6 May 2014 00:00:25 +0200 Subject: [PATCH 0012/1426] always apply path stripping --- nvm.sh | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/nvm.sh b/nvm.sh index 825d68b..5837602 100644 --- a/nvm.sh +++ b/nvm.sh @@ -471,23 +471,20 @@ nvm() { echo "$VERSION version is not installed yet" return 1 fi - if [ `expr "$PATH" : ".*$NVM_DIR/.*/bin"` != 0 ]; then - # Strip other version from PATH - PATH=`nvm_strip_path "$PATH" "/bin"` - fi + # Strip other version from PATH + PATH=`nvm_strip_path "$PATH" "/bin"` + # Prepend current version PATH="$NVM_DIR/$VERSION/bin:$PATH" if [ -z "$MANPATH" ]; then MANPATH=$(manpath) fi - if [ `expr "$MANPATH" : ".*$NVM_DIR/.*/share/man"` != 0 ]; then - # Strip other version from MANPATH - MANPATH=`nvm_strip_path "$MANPATH" "/share/man"` - fi + # Strip other version from MANPATH + MANPATH=`nvm_strip_path "$MANPATH" "/share/man"` + # Prepend current version MANPATH="$NVM_DIR/$VERSION/share/man:$MANPATH" - if [ `expr "$NODE_PATH" : ".*$NVM_DIR/.*/lib/node_modules.*"` != 0 ]; then - # Strip other version from NODE_PATH - NODE_PATH=`nvm_strip_path "$NODE_PATH" "/lib/node_modules"` - fi + # Strip other version from NODE_PATH + NODE_PATH=`nvm_strip_path "$NODE_PATH" "/lib/node_modules"` + # Prepend current version NODE_PATH="$NVM_DIR/$VERSION/lib/node_modules:$NODE_PATH" export PATH hash -r @@ -533,9 +530,7 @@ nvm() { echo "$VERSION version is not installed yet" return; fi - if [ `expr "$NODE_PATH" : ".*$NVM_DIR/.*/lib/node_modules.*"` != 0 ]; then - RUN_NODE_PATH=`nvm_strip_path "$NODE_PATH" "/lib/node_modules"` - fi + RUN_NODE_PATH=`nvm_strip_path "$NODE_PATH" "/lib/node_modules"` RUN_NODE_PATH="$NVM_DIR/$VERSION/lib/node_modules:$NODE_PATH" echo "Running node $VERSION" NODE_PATH=$RUN_NODE_PATH $NVM_DIR/$VERSION/bin/node "$@" From ba1be9b4eaa1429ef61735283398ad8ff2e6002b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 5 May 2014 22:46:46 -0700 Subject: [PATCH 0013/1426] Making `nvm install` use the version, even if it's already installed. Fixes #410 --- nvm.sh | 6 ++++- .../install already installed uses it | 24 +++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100755 test/slow/nvm install/install already installed uses it diff --git a/nvm.sh b/nvm.sh index ec5c6e4..645de86 100644 --- a/nvm.sh +++ b/nvm.sh @@ -306,7 +306,11 @@ nvm() { shift done - [ -d "$NVM_DIR/$VERSION" ] && echo "$VERSION is already installed." && return + if [ -d "$NVM_DIR/$VERSION" ]; then + echo "$VERSION is already installed." + nvm use "$VERSION" + return $? + fi if [ "$VERSION" = "N/A" ]; then echo "Version '$provided_version' not found - try \`nvm ls-remote\` to browse available versions." diff --git a/test/slow/nvm install/install already installed uses it b/test/slow/nvm install/install already installed uses it new file mode 100755 index 0000000..7e42c07 --- /dev/null +++ b/test/slow/nvm install/install already installed uses it @@ -0,0 +1,24 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +[ "$(nvm install invalid.invalid)" = "Version 'invalid.invalid' not found - try \`nvm ls-remote\` to browse available versions." ] || die "nvm installing an invalid version did not print a nice error message" + +# Remove the stuff we're clobbering. +[ -e ../../../v0.9.7 ] && rm -R ../../../v0.9.7 +[ -e ../../../v0.9.12 ] && rm -R ../../../v0.9.12 + +# Install from binary +nvm install 0.9.7 +nvm install 0.9.12 + +nvm use 0.9.7 + +node --version | grep v0.9.7 || die "precondition failed: node doesn't start at 0.9.7" + +nvm install 0.9.12 + +node --version | grep v0.9.12 || die "nvm install on already installed version doesn't use it" + From b313f62749a68ed138952dcee8888a68829c3cd7 Mon Sep 17 00:00:00 2001 From: Koen Punt Date: Wed, 7 May 2014 01:15:52 +0200 Subject: [PATCH 0014/1426] Use sed -e instead of -E --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 696cf35..22d826a 100644 --- a/nvm.sh +++ b/nvm.sh @@ -98,7 +98,7 @@ nvm_format_version() { } nvm_strip_path() { - echo "$1" | sed -E "s#$NVM_DIR/[^/]*$2[^:]*:?##g" + echo "$1" | sed -e "s#$NVM_DIR/[^/]*$2[^:]*##g" | sed -e "s/::/:/g" | sed -e "s/:$//g" } nvm_binary_available() { From e3b84499c26564635d928e83668464e2515e3d30 Mon Sep 17 00:00:00 2001 From: Koen Punt Date: Wed, 7 May 2014 10:47:24 +0200 Subject: [PATCH 0015/1426] use regex triplet, add unit test --- nvm.sh | 2 +- test/fast/Unit tests/nvm_strip_path | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100755 test/fast/Unit tests/nvm_strip_path diff --git a/nvm.sh b/nvm.sh index 22d826a..5724da7 100644 --- a/nvm.sh +++ b/nvm.sh @@ -98,7 +98,7 @@ nvm_format_version() { } nvm_strip_path() { - echo "$1" | sed -e "s#$NVM_DIR/[^/]*$2[^:]*##g" | sed -e "s/::/:/g" | sed -e "s/:$//g" + echo "$1" | sed -e "s#$NVM_DIR/[^/]*$2[^:]*:##g" -e "s#:$NVM_DIR/[^/]*$2[^:]*##g" -e "s#$NVM_DIR/[^/]*$2[^:]*##g" } nvm_binary_available() { diff --git a/test/fast/Unit tests/nvm_strip_path b/test/fast/Unit tests/nvm_strip_path new file mode 100755 index 0000000..0d119aa --- /dev/null +++ b/test/fast/Unit tests/nvm_strip_path @@ -0,0 +1,11 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +TEST_PATH=$NVM_DIR/v0.10.5/bin:/usr/bin:$NVM_DIR/v0.11.5/bin:$NVM_DIR/v0.9.5/bin:/usr/local/bin:$NVM_DIR/v0.2.5/bin + +STRIPPED_PATH=`nvm_strip_path "$TEST_PATH" "/bin"` + +[ "$STRIPPED_PATH" = "/usr/bin:/usr/local/bin" ] || die "Not correctly stripped: $STRIPPED_PATH " From f6ba08253b1cac724c21350e35ecc9ec8dbfcd43 Mon Sep 17 00:00:00 2001 From: Koen Punt Date: Thu, 8 May 2014 10:20:11 +0200 Subject: [PATCH 0016/1426] utility method for append path, fixes #414 --- nvm.sh | 16 ++++++++++++---- test/fast/Unit tests/nvm_prepend_path | 18 ++++++++++++++++++ 2 files changed, 30 insertions(+), 4 deletions(-) create mode 100755 test/fast/Unit tests/nvm_prepend_path diff --git a/nvm.sh b/nvm.sh index 5724da7..fa4ec6b 100644 --- a/nvm.sh +++ b/nvm.sh @@ -101,6 +101,14 @@ nvm_strip_path() { echo "$1" | sed -e "s#$NVM_DIR/[^/]*$2[^:]*:##g" -e "s#:$NVM_DIR/[^/]*$2[^:]*##g" -e "s#$NVM_DIR/[^/]*$2[^:]*##g" } +nvm_prepend_path() { + if [ -z "$1" ]; then + echo "$2" + else + echo "$2:$1" + fi +} + nvm_binary_available() { # binaries started with node 0.8.6 local MINIMAL="0.8.6" @@ -478,18 +486,18 @@ nvm() { # Strip other version from PATH PATH=`nvm_strip_path "$PATH" "/bin"` # Prepend current version - PATH="$NVM_DIR/$VERSION/bin:$PATH" + PATH=`nvm_prepend_path "$PATH" "$NVM_DIR/$VERSION/bin"` if [ -z "$MANPATH" ]; then MANPATH=$(manpath) fi # Strip other version from MANPATH MANPATH=`nvm_strip_path "$MANPATH" "/share/man"` # Prepend current version - MANPATH="$NVM_DIR/$VERSION/share/man:$MANPATH" + MANPATH=`nvm_prepend_path "$MANPATH" "$NVM_DIR/$VERSION/share/man"` # Strip other version from NODE_PATH NODE_PATH=`nvm_strip_path "$NODE_PATH" "/lib/node_modules"` # Prepend current version - NODE_PATH="$NVM_DIR/$VERSION/lib/node_modules:$NODE_PATH" + NODE_PATH=`nvm_prepend_path "$NODE_PATH" "$NVM_DIR/$VERSION/lib/node_modules"` export PATH hash -r export MANPATH @@ -535,7 +543,7 @@ nvm() { return; fi RUN_NODE_PATH=`nvm_strip_path "$NODE_PATH" "/lib/node_modules"` - RUN_NODE_PATH="$NVM_DIR/$VERSION/lib/node_modules:$NODE_PATH" + RUN_NODE_PATH=`nvm_prepend_path "$NODE_PATH" "$NVM_DIR/$VERSION/lib/node_modules"` echo "Running node $VERSION" NODE_PATH=$RUN_NODE_PATH $NVM_DIR/$VERSION/bin/node "$@" ;; diff --git a/test/fast/Unit tests/nvm_prepend_path b/test/fast/Unit tests/nvm_prepend_path new file mode 100755 index 0000000..7bc6637 --- /dev/null +++ b/test/fast/Unit tests/nvm_prepend_path @@ -0,0 +1,18 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +TEST_PATH=/usr/bin:/usr/local/bin + +NEW_PATH=`nvm_prepend_path "$TEST_PATH" "$NVM_DIR/v0.2.5/bin"` + +[ "$NEW_PATH" = "$NVM_DIR/v0.2.5/bin:/usr/bin:/usr/local/bin" ] || die "Not correctly prepended: $STRIPPED_PATH " + + +EMPTY_PATH= + +NEW_PATH=`nvm_prepend_path "$EMPTY_PATH" "$NVM_DIR/v0.2.5/bin"` + +[ "$NEW_PATH" = "$NVM_DIR/v0.2.5/bin" ] || die "Not correctly prepended: $STRIPPED_PATH " From e2c4c881360789d4a6d795fbdd6881d2629a12ac Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 8 May 2014 10:30:18 -0700 Subject: [PATCH 0017/1426] Updating example node versions. --- README.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.markdown b/README.markdown index 7891dbd..715f780 100644 --- a/README.markdown +++ b/README.markdown @@ -132,17 +132,17 @@ nvm alias default $ nvm alias my_alias [tab][tab] - v0.4.11 v0.4.12 v0.6.14 + v0.6.21 v0.8.26 v0.10.28 nvm use $ nvm use [tab][tab] - my_alias default v0.4.11 v0.4.12 v0.6.14 + my_alias default v0.6.21 v0.8.26 v0.10.28 nvm uninstall $ nvm uninstall [tab][tab] - my_alias default v0.4.11 v0.4.12 v0.6.14 + my_alias default v0.6.21 v0.8.26 v0.10.28 ## Problems From a6be718387f9b6ad77a2f363a228b7cc5d454f7d Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 8 May 2014 10:30:34 -0700 Subject: [PATCH 0018/1426] Fixing --version output format. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index fa4ec6b..eecc187 100644 --- a/nvm.sh +++ b/nvm.sh @@ -625,7 +625,7 @@ nvm() { nvm_version $2 ;; "--version" ) - echo "nvm v0.6.1" + echo "0.6.1" ;; * ) nvm help From db8acf11fd6e01a78fdb5b8a9fa34de09fce79ba Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 8 May 2014 10:30:52 -0700 Subject: [PATCH 0019/1426] v0.7.0 --- README.markdown | 6 +++--- nvm.sh | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.markdown b/README.markdown index 715f780..eb82591 100644 --- a/README.markdown +++ b/README.markdown @@ -8,11 +8,11 @@ First you'll need to make sure your system has a c++ compiler. For OSX, XCode w To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.6.1/install.sh | sh + curl https://raw.githubusercontent.com/creationix/nvm/v0.7.0/install.sh | sh or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.6.1/install.sh | sh + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.7.0/install.sh | sh The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -163,7 +163,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.6.1/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.7.0/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin diff --git a/nvm.sh b/nvm.sh index eecc187..22b5ed0 100644 --- a/nvm.sh +++ b/nvm.sh @@ -625,7 +625,7 @@ nvm() { nvm_version $2 ;; "--version" ) - echo "0.6.1" + echo "0.7.0" ;; * ) nvm help diff --git a/package.json b/package.json index deb9be7..b1750d4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.6.1", + "version": "0.7.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 2e3e48cc06ddb47b62e03406ba7769bea5d788d4 Mon Sep 17 00:00:00 2001 From: Koen Punt Date: Fri, 9 May 2014 15:36:44 +0200 Subject: [PATCH 0020/1426] Use correct variables --- test/fast/Unit tests/nvm_prepend_path | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/fast/Unit tests/nvm_prepend_path b/test/fast/Unit tests/nvm_prepend_path index 7bc6637..ef0af81 100755 --- a/test/fast/Unit tests/nvm_prepend_path +++ b/test/fast/Unit tests/nvm_prepend_path @@ -8,11 +8,11 @@ TEST_PATH=/usr/bin:/usr/local/bin NEW_PATH=`nvm_prepend_path "$TEST_PATH" "$NVM_DIR/v0.2.5/bin"` -[ "$NEW_PATH" = "$NVM_DIR/v0.2.5/bin:/usr/bin:/usr/local/bin" ] || die "Not correctly prepended: $STRIPPED_PATH " +[ "$NEW_PATH" = "$NVM_DIR/v0.2.5/bin:/usr/bin:/usr/local/bin" ] || die "Not correctly prepended: $NEW_PATH " EMPTY_PATH= NEW_PATH=`nvm_prepend_path "$EMPTY_PATH" "$NVM_DIR/v0.2.5/bin"` -[ "$NEW_PATH" = "$NVM_DIR/v0.2.5/bin" ] || die "Not correctly prepended: $STRIPPED_PATH " +[ "$NEW_PATH" = "$NVM_DIR/v0.2.5/bin" ] || die "Not correctly prepended: $NEW_PATH " From 79203ba5d02c894af08256c51960d4668629e4e2 Mon Sep 17 00:00:00 2001 From: Koen Punt Date: Fri, 9 May 2014 16:23:14 +0200 Subject: [PATCH 0021/1426] split tests by shell --- .travis.yml | 10 ++++++++-- Makefile | 5 ++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 1620f2c..f9be6f4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,5 +4,11 @@ install: before_script: - curl -o /tmp/urchin https://raw.githubusercontent.com/scraperwiki/urchin/master/urchin && chmod +x /tmp/urchin script: - - NVM_DIR=$TRAVIS_BUILD_DIR make URCHIN=/tmp/urchin test - + - NVM_DIR=$TRAVIS_BUILD_DIR make URCHIN=/tmp/urchin test_shell +env: + - SHELL=sh TEST_SUITE=fast + - SHELL=dash TEST_SUITE=fast + - SHELL=bash TEST_SUITE=fast + - SHELL=zsh TEST_SUITE=fast + - SHELL=ksh TEST_SUITE=fast +# - SHELL=bash TEST_SUITE=slow diff --git a/Makefile b/Makefile index cb14573..090ebf6 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ URCHIN=`which urchin` SHELLS=sh bash dash ksh zsh -.PHONY: $(SHELLS) test +.PHONY: $(SHELLS) test test_shell fast: $(SHELLS) @@ -12,5 +12,8 @@ $(SHELLS): test: fast @$(URCHIN) -f test/slow +test_shell: + @$(SHELL) $(URCHIN) -f test/$(TEST_SUITE) + default: test From 8fbbeb8fc51fd59de455caa6708399f054742c08 Mon Sep 17 00:00:00 2001 From: Koen Punt Date: Fri, 9 May 2014 16:30:04 +0200 Subject: [PATCH 0022/1426] ensure correct shell usage --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index 090ebf6..323628c 100644 --- a/Makefile +++ b/Makefile @@ -13,6 +13,7 @@ test: fast @$(URCHIN) -f test/slow test_shell: + @printf '\n\033[0;34m%s\033[0m\n' "Running tests in $(SHELL)" @$(SHELL) $(URCHIN) -f test/$(TEST_SUITE) default: test From 7e20a77c89fb0ffe0d502462e4067001b22e3dbf Mon Sep 17 00:00:00 2001 From: Koen Punt Date: Fri, 9 May 2014 16:34:45 +0200 Subject: [PATCH 0023/1426] pass env vars to makefile --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f9be6f4..ae98843 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,7 @@ install: before_script: - curl -o /tmp/urchin https://raw.githubusercontent.com/scraperwiki/urchin/master/urchin && chmod +x /tmp/urchin script: - - NVM_DIR=$TRAVIS_BUILD_DIR make URCHIN=/tmp/urchin test_shell + - NVM_DIR=$TRAVIS_BUILD_DIR make SHELL=$SHELL TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin test_shell env: - SHELL=sh TEST_SUITE=fast - SHELL=dash TEST_SUITE=fast From 61de5f9ca3c27b54e9271370efcb9c347b5a4fd6 Mon Sep 17 00:00:00 2001 From: Koen Punt Date: Sat, 10 May 2014 12:15:19 +0200 Subject: [PATCH 0024/1426] enable slow test suite for sh --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index ae98843..78b7ad3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,4 +11,4 @@ env: - SHELL=bash TEST_SUITE=fast - SHELL=zsh TEST_SUITE=fast - SHELL=ksh TEST_SUITE=fast -# - SHELL=bash TEST_SUITE=slow + - SHELL=sh TEST_SUITE=slow From 24e22dd8bc8b4ffea3335e54e23726f3ff704458 Mon Sep 17 00:00:00 2001 From: Koen Punt Date: Sat, 10 May 2014 12:27:11 +0200 Subject: [PATCH 0025/1426] no need for the extra task, every shell name is already a task --- .travis.yml | 2 +- Makefile | 6 +----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 78b7ad3..36fbc86 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,7 @@ install: before_script: - curl -o /tmp/urchin https://raw.githubusercontent.com/scraperwiki/urchin/master/urchin && chmod +x /tmp/urchin script: - - NVM_DIR=$TRAVIS_BUILD_DIR make SHELL=$SHELL TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin test_shell + - NVM_DIR=$TRAVIS_BUILD_DIR make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin $SHELL env: - SHELL=sh TEST_SUITE=fast - SHELL=dash TEST_SUITE=fast diff --git a/Makefile b/Makefile index 323628c..cb14573 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ URCHIN=`which urchin` SHELLS=sh bash dash ksh zsh -.PHONY: $(SHELLS) test test_shell +.PHONY: $(SHELLS) test fast: $(SHELLS) @@ -12,9 +12,5 @@ $(SHELLS): test: fast @$(URCHIN) -f test/slow -test_shell: - @printf '\n\033[0;34m%s\033[0m\n' "Running tests in $(SHELL)" - @$(SHELL) $(URCHIN) -f test/$(TEST_SUITE) - default: test From 5925bd5e37497e7f899086502e9b8d05cd2ee457 Mon Sep 17 00:00:00 2001 From: Koen Punt Date: Sat, 10 May 2014 18:59:34 +0200 Subject: [PATCH 0026/1426] make suite for shell task configurable --- Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index cb14573..551824b 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,6 @@ URCHIN=`which urchin` SHELLS=sh bash dash ksh zsh +TEST_SUITE=fast .PHONY: $(SHELLS) test @@ -7,7 +8,7 @@ fast: $(SHELLS) $(SHELLS): @printf '\n\033[0;34m%s\033[0m\n' "Running tests in $@" - @$@ $(URCHIN) -f test/fast + @$@ $(URCHIN) -f test/$(TEST_SUITE) test: fast @$(URCHIN) -f test/slow From 88595f09aa3ed7eb5929959618e0bcf16b60a7d3 Mon Sep 17 00:00:00 2001 From: Koen Punt Date: Sat, 10 May 2014 19:03:50 +0200 Subject: [PATCH 0027/1426] remove fast task --- Makefile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 551824b..67d860b 100644 --- a/Makefile +++ b/Makefile @@ -4,13 +4,11 @@ TEST_SUITE=fast .PHONY: $(SHELLS) test -fast: $(SHELLS) - $(SHELLS): @printf '\n\033[0;34m%s\033[0m\n' "Running tests in $@" @$@ $(URCHIN) -f test/$(TEST_SUITE) -test: fast +test: $(SHELLS) @$(URCHIN) -f test/slow default: test From 896aa7c43693c8ac94c5a79ddd56ead3384c776f Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 19 May 2014 22:03:40 -0700 Subject: [PATCH 0028/1426] Updating CONTRIBUTING guidelines Fixes #425 --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f1f07a9..5948d7d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -5,7 +5,7 @@ We love pull requests, they're our favorite. However, before submitting, please review the following: - Please include tests. Changes with tests will be merged very quickly. - - Please manually confirm that your changes, and all tests, pass in `bash`, `sh`, and `zsh`. We hope to soon automatically run all these tests, but in the meantime, we have to rely on each contributor doing so. + - Please manually confirm that your changes work in `bash`, `sh`/`dash`, `ksh`, and `zsh`. Fast tests do run in these shells, but it's nice to manually verify also. - Please maintain consistent whitespace - 2-space indentation, trailing newlines in all files, etc. - Any time you make a change to your PR, please rebase freshly on top of master. Nobody likes merge commits. From 578a601b2702bd1cae43f0cbc68a42849809a85c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 20 May 2014 10:36:12 -0700 Subject: [PATCH 0029/1426] Filter out of `nvm ls` things that start with a dot. Fixes #421, closes #422. --- nvm.sh | 2 +- .../Running \"nvm ls\" should filter out \".nvm\"" | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100755 "test/fast/Listing versions/Running \"nvm ls\" should filter out \".nvm\"" diff --git a/nvm.sh b/nvm.sh index 22b5ed0..2a50766 100644 --- a/nvm.sh +++ b/nvm.sh @@ -133,7 +133,7 @@ nvm_ls() { VERSIONS="$PATTERN" else VERSIONS=`find "$NVM_DIR/" -maxdepth 1 -type d -name "$(nvm_format_version $PATTERN)*" -exec basename '{}' ';' \ - | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n` + | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n | grep -v '^ *\.'` fi if [ -z "$VERSIONS" ]; then echo "N/A" diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should filter out \".nvm\"" "b/test/fast/Listing versions/Running \"nvm ls\" should filter out \".nvm\"" new file mode 100755 index 0000000..d01aa7a --- /dev/null +++ "b/test/fast/Listing versions/Running \"nvm ls\" should filter out \".nvm\"" @@ -0,0 +1,9 @@ +#!/bin/sh + +mkdir ../../../v0.1.3 +mkdir ../../../v0.2.3 + +. ../../../nvm.sh + +[ -z `nvm ls | grep '^ *\.'` ] +# The result should contain only the appropriate version numbers. From 16c0be8314ab62e14e6c3c8a883bac86a6d11b94 Mon Sep 17 00:00:00 2001 From: Koen Punt Date: Wed, 28 May 2014 14:32:01 +0200 Subject: [PATCH 0030/1426] export NVM_DIR before sourcing nvm.sh --- install.sh | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/install.sh b/install.sh index 10bf9ca..4e266ab 100755 --- a/install.sh +++ b/install.sh @@ -101,7 +101,7 @@ if [ -z "$PROFILE" ]; then fi fi -SOURCE_STR="[ -s \"$NVM_DIR/nvm.sh\" ] && . \"$NVM_DIR/nvm.sh\" # This loads nvm" +SOURCE_STR="\nexport NVM_DIR=\"$NVM_DIR\"\n[ -s \"\$NVM_DIR/nvm.sh\" ] && . \"\$NVM_DIR/nvm.sh\" # This loads nvm" if [ -z "$PROFILE" ] || [ ! -f "$PROFILE" ] ; then if [ -z $PROFILE ]; then @@ -112,15 +112,13 @@ if [ -z "$PROFILE" ] || [ ! -f "$PROFILE" ] ; then echo "=> Create it (touch $PROFILE) and run this script again" fi echo " OR" - echo "=> Append the following line to the correct file yourself:" - echo - echo " $SOURCE_STR" + echo "=> Append the following lines to the correct file yourself:" + echo -e "$SOURCE_STR" echo else if ! grep -qc 'nvm.sh' $PROFILE; then echo "=> Appending source string to $PROFILE" - echo "" >> "$PROFILE" - echo $SOURCE_STR >> "$PROFILE" + echo -e "$SOURCE_STR" >> "$PROFILE" else echo "=> Source string already in $PROFILE" fi From 085e314a3fff30730816540952f748b5aa81ca39 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 28 May 2014 20:54:25 -0700 Subject: [PATCH 0031/1426] Adding a trailing newline --- ...ng \"nvm unload\" should unset all function and variables." | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git "a/test/fast/Running \"nvm unload\" should unset all function and variables." "b/test/fast/Running \"nvm unload\" should unset all function and variables." index bbb4343..0f4c50e 100755 --- "a/test/fast/Running \"nvm unload\" should unset all function and variables." +++ "b/test/fast/Running \"nvm unload\" should unset all function and variables." @@ -8,4 +8,5 @@ type nvm > /dev/null 2>&1 || fail "NVM not loaded" nvm unload -type nvm > /dev/null 2>&1 && fail "NVM not unloaded" || exit 0 \ No newline at end of file +type nvm > /dev/null 2>&1 && fail "NVM not unloaded" || exit 0 + From 0e1f2408c9e90c6d24eb8253f5e74f111d62fa99 Mon Sep 17 00:00:00 2001 From: Andrew Crites Date: Thu, 12 Jun 2014 10:56:20 -0400 Subject: [PATCH 0032/1426] Only list extant explicit version --- nvm.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 8ac13ea..88bf290 100644 --- a/nvm.sh +++ b/nvm.sh @@ -130,7 +130,9 @@ nvm_ls() { fi # If it looks like an explicit version, don't do anything funny if [ `expr "$PATTERN" : "v[[:digit:]]*\.[[:digit:]]*\.[[:digit:]]*$"` != 0 ]; then - VERSIONS="$PATTERN" + if [ -d "$NVM_DIR/$PATTERN" ]; then + VERSIONS="$PATTERN" + fi else VERSIONS=`find "$NVM_DIR/" -maxdepth 1 -type d -name "$(nvm_format_version $PATTERN)*" -exec basename '{}' ';' \ | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n | grep -v '^ *\.'` From 1b22c2e2b19b98559ef4f15306e8f58c187582e6 Mon Sep 17 00:00:00 2001 From: Andrew Crites Date: Thu, 12 Jun 2014 14:01:26 -0400 Subject: [PATCH 0033/1426] Including test for specific version listing This fixes the issue of nvm ls v[:digit:].[:digit:].[:digit:] listing the version even if it isn't available --- ...rsioning vx.x.x should only list a matched version" | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100755 "test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" diff --git "a/test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" "b/test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" new file mode 100755 index 0000000..7cd94ce --- /dev/null +++ "b/test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" @@ -0,0 +1,10 @@ +#!/bin/sh + +mkdir ../../../v0.1.2 + +. ../../../nvm.sh + +nvm ls v0.1 | grep v0.1.2 && +nvm ls v0.1.2 | grep v0.1.2 && +nvm ls v0.1. | grep N/A && +nvm ls v0.1.1 | grep N/A From 8dbbc3290528f1b5342d2f1b672dbeb3329ece5c Mon Sep 17 00:00:00 2001 From: Koen Punt Date: Tue, 17 Jun 2014 00:40:07 +0200 Subject: [PATCH 0034/1426] redirect errors to stderr --- nvm.sh | 82 +++++++++++++++++++++++++++++----------------------------- 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/nvm.sh b/nvm.sh index 88bf290..abf16f3 100644 --- a/nvm.sh +++ b/nvm.sh @@ -138,8 +138,8 @@ nvm_ls() { | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n | grep -v '^ *\.'` fi if [ -z "$VERSIONS" ]; then - echo "N/A" - return + echo "N/A" + return fi echo "$VERSIONS" return @@ -181,7 +181,7 @@ nvm_checksum() { echo 'Checksums empty' #missing in raspberry pi binary return else - echo 'Checksums do not match.' + echo 'Checksums do not match.' >&2 return 1 fi } @@ -308,7 +308,7 @@ nvm() { fi provided_version="$NVM_RC_VERSION" fi - [ -d "$NVM_DIR/$provided_version" ] && echo "$provided_version is already installed." && return + [ -d "$NVM_DIR/$provided_version" ] && echo "$provided_version is already installed." >&2 && return VERSION=`nvm_remote_version $provided_version` ADDITIONAL_PARAMETERS='' @@ -322,13 +322,13 @@ nvm() { done if [ -d "$NVM_DIR/$VERSION" ]; then - echo "$VERSION is already installed." + echo "$VERSION is already installed." >&2 nvm use "$VERSION" return $? fi if [ "$VERSION" = "N/A" ]; then - echo "Version '$provided_version' not found - try \`nvm ls-remote\` to browse available versions." + echo "Version '$provided_version' not found - try \`nvm ls-remote\` to browse available versions." >&2 return 3 fi @@ -395,10 +395,10 @@ nvm() { if ! nvm_has "npm" ; then echo "Installing npm..." if [ "`expr "$VERSION" : '\(^v0\.1\.\)'`" != '' ]; then - echo "npm requires node v0.2.3 or higher" + echo "npm requires node v0.2.3 or higher" >&2 elif [ "`expr "$VERSION" : '\(^v0\.2\.\)'`" != '' ]; then if [ "`expr "$VERSION" : '\(^v0\.2\.[0-2]$\)'`" != '' ]; then - echo "npm requires node v0.2.3 or higher" + echo "npm requires node v0.2.3 or higher" >&2 else curl https://npmjs.org/install.sh | clean=yes npm_install=0.2.19 sh fi @@ -407,7 +407,7 @@ nvm() { fi fi else - echo "nvm: install $VERSION failed!" + echo "nvm: install $VERSION failed!" >&2 return 1 fi ;; @@ -415,12 +415,12 @@ nvm() { [ $# -ne 2 ] && nvm help && return PATTERN=`nvm_format_version $2` if [ "$PATTERN" = `nvm_version` ]; then - echo "nvm: Cannot uninstall currently-active node version, $PATTERN." + echo "nvm: Cannot uninstall currently-active node version, $PATTERN." >&2 return 1 fi VERSION=`nvm_version $PATTERN` if [ ! -d $NVM_DIR/$VERSION ]; then - echo "$VERSION version is not installed..." + echo "$VERSION version is not installed..." >&2 return; fi @@ -447,19 +447,19 @@ nvm() { hash -r echo "$NVM_DIR/*/bin removed from \$PATH" else - echo "Could not find $NVM_DIR/*/bin in \$PATH" + echo "Could not find $NVM_DIR/*/bin in \$PATH" >&2 fi if [ `expr "$MANPATH" : ".*$NVM_DIR/.*/share/man.*"` != 0 ] ; then export MANPATH=`nvm_strip_path "$MANPATH" "/share/man"` echo "$NVM_DIR/*/share/man removed from \$MANPATH" else - echo "Could not find $NVM_DIR/*/share/man in \$MANPATH" + echo "Could not find $NVM_DIR/*/share/man in \$MANPATH" >&2 fi if [ `expr "$NODE_PATH" : ".*$NVM_DIR/.*/lib/node_modules.*"` != 0 ] ; then export NODE_PATH=`nvm_strip_path "$NODE_PATH" "/lib/node_modules"` echo "$NVM_DIR/*/lib/node_modules removed from \$NODE_PATH" else - echo "Could not find $NVM_DIR/*/lib/node_modules in \$NODE_PATH" + echo "Could not find $NVM_DIR/*/lib/node_modules in \$NODE_PATH" >&2 fi ;; "use" ) @@ -470,7 +470,7 @@ nvm() { if [ $# -eq 1 ]; then nvm_rc_version if [ -n "$NVM_RC_VERSION" ]; then - VERSION=`nvm_version $NVM_RC_VERSION` + VERSION=`nvm_version $NVM_RC_VERSION` fi else VERSION=`nvm_version $2` @@ -483,7 +483,7 @@ nvm() { VERSION=`nvm_version $2` fi if [ ! -d "$NVM_DIR/$VERSION" ]; then - echo "$VERSION version is not installed yet" + echo "$VERSION version is not installed yet" >&2 return 1 fi # Strip other version from PATH @@ -542,7 +542,7 @@ nvm() { fi if [ ! -d "$NVM_DIR/$VERSION" ]; then - echo "$VERSION version is not installed yet" + echo "$VERSION version is not installed yet" >&2 return; fi RUN_NODE_PATH=`nvm_strip_path "$NODE_PATH" "/lib/node_modules"` @@ -558,8 +558,8 @@ nvm() { return ;; "ls-remote" | "list-remote" ) - nvm_print_versions "`nvm_ls_remote $2`" - return + nvm_print_versions "`nvm_ls_remote $2`" + return ;; "current" ) nvm_version current @@ -573,18 +573,18 @@ nvm() { DEST=`cat $ALIAS` VERSION=`nvm_version $DEST` if [ "$DEST" = "$VERSION" ]; then - echo "$(basename $ALIAS) -> $DEST" + echo "$(basename $ALIAS) -> $DEST" else - echo "$(basename $ALIAS) -> $DEST (-> $VERSION)" + echo "$(basename $ALIAS) -> $DEST (-> $VERSION)" fi fi done return fi if [ -z "$3" ]; then - rm -f $NVM_DIR/alias/$2 - echo "$2 -> *poof*" - return + rm -f $NVM_DIR/alias/$2 + echo "$2 -> *poof*" + return fi mkdir -p $NVM_DIR/alias VERSION=`nvm_version $3` @@ -593,7 +593,7 @@ nvm() { fi echo $3 > "$NVM_DIR/alias/$2" if [ ! "$3" = "$VERSION" ]; then - echo "$2 -> $3 (-> $VERSION)" + echo "$2 -> $3 (-> $VERSION)" else echo "$2 -> $3" fi @@ -601,34 +601,34 @@ nvm() { "unalias" ) mkdir -p $NVM_DIR/alias [ $# -ne 2 ] && nvm help && return 127 - [ ! -f "$NVM_DIR/alias/$2" ] && echo "Alias $2 doesn't exist!" && return + [ ! -f "$NVM_DIR/alias/$2" ] && echo "Alias $2 doesn't exist!" >&2 && return rm -f $NVM_DIR/alias/$2 echo "Deleted alias $2" ;; "copy-packages" ) - if [ $# -ne 2 ]; then - nvm help - return 127 - fi - VERSION=`nvm_version $2` - local ROOT=`(nvm use $VERSION && npm -g root)` - local ROOTDEPTH=$((`echo $ROOT | sed 's/[^\/]//g'|wc -m` -1)) + if [ $# -ne 2 ]; then + nvm help + return 127 + fi + VERSION=`nvm_version $2` + local ROOT=`(nvm use $VERSION && npm -g root)` + local ROOTDEPTH=$((`echo $ROOT | sed 's/[^\/]//g'|wc -m` -1)) - # declare local INSTALLS first, otherwise it doesn't work in zsh - local INSTALLS - INSTALLS=`nvm use $VERSION > /dev/null && npm -g -p ll | \grep "$ROOT\/[^/]\+$" | cut -d '/' -f $(($ROOTDEPTH + 2)) | cut -d ":" -f 2 | \grep -v npm | tr "\n" " "` + # declare local INSTALLS first, otherwise it doesn't work in zsh + local INSTALLS + INSTALLS=`nvm use $VERSION > /dev/null && npm -g -p ll | \grep "$ROOT\/[^/]\+$" | cut -d '/' -f $(($ROOTDEPTH + 2)) | cut -d ":" -f 2 | \grep -v npm | tr "\n" " "` - npm install -g ${INSTALLS[@]} + npm install -g ${INSTALLS[@]} ;; "clear-cache" ) - rm -f $NVM_DIR/v* 2>/dev/null - echo "Cache cleared." + rm -f $NVM_DIR/v* 2>/dev/null + echo "Cache cleared." ;; "version" ) - nvm_version $2 + nvm_version $2 ;; "--version" ) - echo "0.7.0" + echo "0.7.0" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version > /dev/null 2>&1 From a318ddf9b3deec6b37d4b8f6fd4d22f5c29dd439 Mon Sep 17 00:00:00 2001 From: Koen Punt Date: Tue, 17 Jun 2014 00:48:57 +0200 Subject: [PATCH 0035/1426] redirect stderr to stdout in test --- ...unning \"nvm install\" with an invalid version fails nicely" | 2 +- test/slow/nvm install/install already installed uses it | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git "a/test/fast/Running \"nvm install\" with an invalid version fails nicely" "b/test/fast/Running \"nvm install\" with an invalid version fails nicely" index 2f556e9..d113890 100755 --- "a/test/fast/Running \"nvm install\" with an invalid version fails nicely" +++ "b/test/fast/Running \"nvm install\" with an invalid version fails nicely" @@ -3,5 +3,5 @@ die () { echo $@ ; exit 1; } . ../../nvm.sh -[ "$(nvm install invalid.invalid)" = "Version 'invalid.invalid' not found - try \`nvm ls-remote\` to browse available versions." ] || die "nvm installing an invalid version did not print a nice error message" +[ "$(nvm install invalid.invalid 2>&1)" = "Version 'invalid.invalid' not found - try \`nvm ls-remote\` to browse available versions." ] || die "nvm installing an invalid version did not print a nice error message" diff --git a/test/slow/nvm install/install already installed uses it b/test/slow/nvm install/install already installed uses it index 7e42c07..ffcbb02 100755 --- a/test/slow/nvm install/install already installed uses it +++ b/test/slow/nvm install/install already installed uses it @@ -4,7 +4,7 @@ die () { echo $@ ; exit 1; } . ../../../nvm.sh -[ "$(nvm install invalid.invalid)" = "Version 'invalid.invalid' not found - try \`nvm ls-remote\` to browse available versions." ] || die "nvm installing an invalid version did not print a nice error message" +[ "$(nvm install invalid.invalid 2>&1)" = "Version 'invalid.invalid' not found - try \`nvm ls-remote\` to browse available versions." ] || die "nvm installing an invalid version did not print a nice error message" # Remove the stuff we're clobbering. [ -e ../../../v0.9.7 ] && rm -R ../../../v0.9.7 From b16bf303ca8b079478cb98fa6f6b8105838137f5 Mon Sep 17 00:00:00 2001 From: Koen Punt Date: Wed, 18 Jun 2014 08:54:14 +0200 Subject: [PATCH 0036/1426] Suppress output of `nvm use` +redirect errors to stdout --- nvm-exec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm-exec b/nvm-exec index b78c967..f40dd3a 100755 --- a/nvm-exec +++ b/nvm-exec @@ -5,9 +5,9 @@ DIR="$(command cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$DIR/nvm.sh" if [ -n "$NODE_VERSION" ]; then - nvm use $NODE_VERSION || (echo "NODE_VERSION not set" && exit 127) + nvm use $NODE_VERSION > /dev/null || (echo "NODE_VERSION not set" >&2 && exit 127) else - nvm use || (echo "No .nvmrc file found" && exit 127) + nvm use > /dev/null || (echo "No .nvmrc file found" >&2 && exit 127) fi exec $@ From 1da31aa4259cd2dd446a6d3cd6d1dbb5b3d6e676 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 20 Jun 2014 11:35:18 -0700 Subject: [PATCH 0037/1426] v0.8.0 --- README.markdown | 6 +++--- nvm.sh | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.markdown b/README.markdown index eb82591..94dda0b 100644 --- a/README.markdown +++ b/README.markdown @@ -8,11 +8,11 @@ First you'll need to make sure your system has a c++ compiler. For OSX, XCode w To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.7.0/install.sh | sh + curl https://raw.githubusercontent.com/creationix/nvm/v0.8.0/install.sh | sh or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.7.0/install.sh | sh + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.8.0/install.sh | sh The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -163,7 +163,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.7.0/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.8.0/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin diff --git a/nvm.sh b/nvm.sh index abf16f3..395c7de 100644 --- a/nvm.sh +++ b/nvm.sh @@ -628,7 +628,7 @@ nvm() { nvm_version $2 ;; "--version" ) - echo "0.7.0" + echo "0.8.0" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version > /dev/null 2>&1 diff --git a/package.json b/package.json index b1750d4..3da7af8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.7.0", + "version": "0.8.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From f213167ef003fe10e7cdcc1d0cb39a63900af070 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 20 Jun 2014 11:45:14 -0700 Subject: [PATCH 0038/1426] Returning exit code 3 when no version is found. --- nvm.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nvm.sh b/nvm.sh index 395c7de..2d3f0b0 100644 --- a/nvm.sh +++ b/nvm.sh @@ -74,7 +74,7 @@ nvm_version() { echo "$VERSION" if [ "$VERSION" = 'N/A' ]; then - return + return 3 fi } @@ -85,7 +85,7 @@ nvm_remote_version() { echo "$VERSION" if [ "$VERSION" = 'N/A' ]; then - return + return 3 fi } @@ -139,7 +139,7 @@ nvm_ls() { fi if [ -z "$VERSIONS" ]; then echo "N/A" - return + return 3 fi echo "$VERSIONS" return @@ -160,7 +160,7 @@ nvm_ls_remote() { | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n` if [ -z "$VERSIONS" ]; then echo "N/A" - return + return 3 fi echo "$VERSIONS" return From 4c38f507f55488d1174f82b629d913334c87b84f Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 20 Jun 2014 11:45:25 -0700 Subject: [PATCH 0039/1426] Consistently returning exit code 1 when version is not installed yet. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 2d3f0b0..6610aea 100644 --- a/nvm.sh +++ b/nvm.sh @@ -543,7 +543,7 @@ nvm() { if [ ! -d "$NVM_DIR/$VERSION" ]; then echo "$VERSION version is not installed yet" >&2 - return; + return 1 fi RUN_NODE_PATH=`nvm_strip_path "$NODE_PATH" "/lib/node_modules"` RUN_NODE_PATH=`nvm_prepend_path "$NODE_PATH" "$NVM_DIR/$VERSION/lib/node_modules"` From d8b55652a580648f3ac70e37d8ac471443e9f868 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 20 Jun 2014 11:49:06 -0700 Subject: [PATCH 0040/1426] Return the exit code of `nvm use` when `nvm install`-ing. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 6610aea..09b7489 100644 --- a/nvm.sh +++ b/nvm.sh @@ -352,7 +352,7 @@ nvm() { ) then nvm use $VERSION - return; + return $? else echo "Binary download failed, trying source." >&2 rm -rf "$tmptarball" "$tmpdir" From 79ec957ee713b7aad63eb1687276a33e3b13543a Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 21 Jun 2014 17:47:02 -0700 Subject: [PATCH 0041/1426] Removing reference to NVM_PROFILE in README. Fixes #442 --- README.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index 94dda0b..d87f3c5 100644 --- a/README.markdown +++ b/README.markdown @@ -16,7 +16,7 @@ or Wget: The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). -You can customize the install source, directory and profile using the `NVM_SOURCE`, `NVM_DIR` and `NVM_PROFILE` variables. Eg: `curl ... | NVM_DIR=/usr/local/nvm sh` for a global install. +You can customize the install source, directory and profile using the `NVM_SOURCE`, `NVM_DIR` and `PROFILE` variables. Eg: `curl ... | NVM_DIR=/usr/local/nvm sh` for a global install. *NB. The installer can use Git, cURL or Wget to download NVM, whatever is available.* From ba7f27dead01aedb1a8b3a6feda637b3f3345ec6 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 22 Jun 2014 09:16:30 -0700 Subject: [PATCH 0042/1426] Silently support `nvm i x.x.x`. Fixes #443. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 09b7489..eac2e09 100644 --- a/nvm.sh +++ b/nvm.sh @@ -264,7 +264,7 @@ nvm() { echo ;; - "install" ) + "install" | "i" ) # initialize local variables local binavail local t From bb01513eba1fe3f44c5623bf64555c0ca835b4ab Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 22 Jun 2014 09:18:41 -0700 Subject: [PATCH 0043/1426] Making sure there's test coverage for `nvm i` --- .../nvm install/install two versions and use the latest one | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/slow/nvm install/install two versions and use the latest one b/test/slow/nvm install/install two versions and use the latest one index 951eabb..df6670d 100755 --- a/test/slow/nvm install/install two versions and use the latest one +++ b/test/slow/nvm install/install two versions and use the latest one @@ -9,7 +9,7 @@ set -e # Install from binary nvm install 0.9.7 -nvm install 0.9.12 +nvm i 0.9.12 # Check [ -d ../../../v0.9.7 ] From 4c9a36e9adbb4b43e414a3754fb3e2030ed03d97 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 22 Jun 2014 15:42:17 -0700 Subject: [PATCH 0044/1426] Separating variable declaration from first assignment, which should fix some ksh problems. --- nvm.sh | 70 ++++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 46 insertions(+), 24 deletions(-) diff --git a/nvm.sh b/nvm.sh index eac2e09..b54ce38 100644 --- a/nvm.sh +++ b/nvm.sh @@ -46,7 +46,8 @@ nvm_find_up() { nvm_find_nvmrc() { - local dir="$(nvm_find_up '.nvmrc')" + local dir + dir="$(nvm_find_up '.nvmrc')" if [ -e "$dir/.nvmrc" ]; then echo "$dir/.nvmrc" fi @@ -54,7 +55,8 @@ nvm_find_nvmrc() { # Obtain nvm version from rc file nvm_rc_version() { - local NVMRC_PATH="$(nvm_find_nvmrc)" + local NVMRC_PATH + NVMRC_PATH="$(nvm_find_nvmrc)" if [ -e "$NVMRC_PATH" ]; then NVM_RC_VERSION=`cat "$NVMRC_PATH" | head -n 1` echo "Found '$NVMRC_PATH' with version <$NVM_RC_VERSION>" @@ -63,7 +65,8 @@ nvm_rc_version() { # Expand a version using the version cache nvm_version() { - local PATTERN=$1 + local PATTERN + PATTERN=$1 local VERSION # The default version is the current one if [ -z "$PATTERN" ]; then @@ -79,7 +82,8 @@ nvm_version() { } nvm_remote_version() { - local PATTERN=$1 + local PATTERN + PATTERN=$1 local VERSION VERSION=`nvm_ls_remote $PATTERN | tail -n1` echo "$VERSION" @@ -111,14 +115,18 @@ nvm_prepend_path() { nvm_binary_available() { # binaries started with node 0.8.6 - local MINIMAL="0.8.6" - local VERSION=$1 + local MINIMAL + MINIMAL="0.8.6" + local VERSION + VERSION=$1 [ $(nvm_normalize_version $VERSION) -ge $(nvm_normalize_version $MINIMAL) ] } nvm_ls() { - local PATTERN=$1 - local VERSIONS='' + local PATTERN + PATTERN=$1 + local VERSIONS + VERSIONS='' if [ "$PATTERN" = 'current' ]; then echo `node -v 2>/dev/null` return @@ -146,9 +154,11 @@ nvm_ls() { } nvm_ls_remote() { - local PATTERN=$1 + local PATTERN + PATTERN=$1 local VERSIONS - local GREP_OPTIONS='' + local GREP_OPTIONS + GREP_OPTIONS='' if [ -n "$PATTERN" ]; then PATTERN=`nvm_format_version "$PATTERN"` else @@ -189,9 +199,10 @@ nvm_checksum() { nvm_print_versions() { local VERSION local FORMAT - local CURRENT=`nvm_version current` + local NVM_CURRENT + NVM_CURRENT=`nvm_version current` echo "$1" | while read VERSION; do - if [ "$VERSION" = "$CURRENT" ]; then + if [ "$VERSION" = "$NVM_CURRENT" ]; then FORMAT='\033[0;32m-> %9s\033[0m' elif [ -d "$NVM_DIR/$VERSION" ]; then FORMAT='\033[0;34m%12s\033[0m' @@ -209,10 +220,13 @@ nvm() { fi # Try to figure out the os and arch for binary fetching - local uname="$(uname -a)" - local os= - local arch="$(uname -m)" - local GREP_OPTIONS='' + local uname + uname="$(uname -a)" + local os + local arch + arch="$(uname -m)" + local GREP_OPTIONS + GREP_OPTIONS='' case "$uname" in Linux\ *) os=linux ;; Darwin\ *) os=darwin ;; @@ -272,7 +286,8 @@ nvm() { local sum local tarball local nobinary - local version_not_provided=0 + local version_not_provided + version_not_provided=0 local provided_version if ! nvm_has "curl"; then @@ -340,8 +355,10 @@ nvm() { t="$VERSION-$os-$arch" url="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-${t}.tar.gz" sum=`curl -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt | \grep node-${t}.tar.gz | awk '{print $1}'` - local tmpdir="$NVM_DIR/bin/node-${t}" - local tmptarball="$tmpdir/node-${t}.tar.gz" + local tmpdir + tmpdir="$NVM_DIR/bin/node-${t}" + local tmptarball + tmptarball="$tmpdir/node-${t}.tar.gz" if ( mkdir -p "$tmpdir" && \ curl -L -C - --progress-bar $url -o "$tmptarball" && \ @@ -370,8 +387,10 @@ nvm() { make='gmake' MAKE_CXX="CXX=c++" fi - local tmpdir="$NVM_DIR/src" - local tmptarball="$tmpdir/node-$VERSION.tar.gz" + local tmpdir + tmpdir="$NVM_DIR/src" + local tmptarball + tmptarball="$tmpdir/node-$VERSION.tar.gz" if [ "`curl -Is "$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" | \grep '200 OK'`" != '' ]; then tarball="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" sum=`curl -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt | \grep node-$VERSION.tar.gz | awk '{print $1}'` @@ -511,7 +530,8 @@ nvm() { ;; "run" ) local provided_version - local has_checked_nvmrc=0 + local has_checked_nvmrc + has_checked_nvmrc=0 # run given version of node shift if [ $# -lt 1 ]; then @@ -611,8 +631,10 @@ nvm() { return 127 fi VERSION=`nvm_version $2` - local ROOT=`(nvm use $VERSION && npm -g root)` - local ROOTDEPTH=$((`echo $ROOT | sed 's/[^\/]//g'|wc -m` -1)) + local ROOT + ROOT=`(nvm use $VERSION && npm -g root)` + local ROOTDEPTH + ROOTDEPTH=$((`echo $ROOT | sed 's/[^\/]//g'|wc -m` -1)) # declare local INSTALLS first, otherwise it doesn't work in zsh local INSTALLS From b6f1c156da0a998442c1c0b638082390118085ce Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 26 Jun 2014 10:26:57 -0700 Subject: [PATCH 0045/1426] Use printf instead of `echo -e` Fixes #446 --- install.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/install.sh b/install.sh index 4e266ab..17e1599 100755 --- a/install.sh +++ b/install.sh @@ -30,14 +30,14 @@ install_from_git() { if [ -d "$NVM_DIR/.git" ]; then echo "=> nvm is already installed in $NVM_DIR, trying to update" - echo -e "\r=> \c" + printf "\r=> " cd "$NVM_DIR" && git pull 2> /dev/null || { echo >&2 "Failed to update nvm, run 'git pull' in $NVM_DIR yourself.." } else # Cloning to $NVM_DIR echo "=> Downloading nvm from git to '$NVM_DIR'" - echo -e "\r=> \c" + printf "\r=> " mkdir -p "$NVM_DIR" git clone "$NVM_SOURCE" "$NVM_DIR" fi @@ -113,12 +113,12 @@ if [ -z "$PROFILE" ] || [ ! -f "$PROFILE" ] ; then fi echo " OR" echo "=> Append the following lines to the correct file yourself:" - echo -e "$SOURCE_STR" + printf "$SOURCE_STR" echo else if ! grep -qc 'nvm.sh' $PROFILE; then echo "=> Appending source string to $PROFILE" - echo -e "$SOURCE_STR" >> "$PROFILE" + printf "$SOURCE_STR" >> "$PROFILE" else echo "=> Source string already in $PROFILE" fi From bb250b573083b39b0b8bdc1ccb9f0280db0050f3 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 26 Jun 2014 10:28:14 -0700 Subject: [PATCH 0046/1426] v0.9.0 --- README.markdown | 6 +++--- nvm.sh | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.markdown b/README.markdown index d87f3c5..8f7afc0 100644 --- a/README.markdown +++ b/README.markdown @@ -8,11 +8,11 @@ First you'll need to make sure your system has a c++ compiler. For OSX, XCode w To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.8.0/install.sh | sh + curl https://raw.githubusercontent.com/creationix/nvm/v0.9.0/install.sh | sh or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.8.0/install.sh | sh + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.9.0/install.sh | sh The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -163,7 +163,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.8.0/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.9.0/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin diff --git a/nvm.sh b/nvm.sh index b54ce38..54a25f6 100644 --- a/nvm.sh +++ b/nvm.sh @@ -650,7 +650,7 @@ nvm() { nvm_version $2 ;; "--version" ) - echo "0.8.0" + echo "0.9.0" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version > /dev/null 2>&1 diff --git a/package.json b/package.json index 3da7af8..7c5d847 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.8.0", + "version": "0.9.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 8349f0ff4872d71b52bc52c8a8b32596ee23202b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 22 Jun 2014 11:33:26 -0700 Subject: [PATCH 0047/1426] Make sure `nvm ls foo` returns a nonzero exit code when a version is not found. Fixes #440. --- nvm.sh | 6 ++++-- ...foo\" should return a nonzero exit code when not found" | 7 +++++++ 2 files changed, 11 insertions(+), 2 deletions(-) create mode 100755 "test/fast/Running \"nvm ls foo\" should return a nonzero exit code when not found" diff --git a/nvm.sh b/nvm.sh index 54a25f6..6354034 100644 --- a/nvm.sh +++ b/nvm.sh @@ -571,11 +571,13 @@ nvm() { NODE_PATH=$RUN_NODE_PATH $NVM_DIR/$VERSION/bin/node "$@" ;; "ls" | "list" ) - nvm_print_versions "`nvm_ls $2`" + NVM_LS_OUTPUT=$(nvm_ls "$2") + NVM_LS_EXIT_CODE=$? + nvm_print_versions "$NVM_LS_OUTPUT" if [ $# -eq 1 ]; then nvm alias fi - return + return $NVM_LS_EXIT_CODE && $? ;; "ls-remote" | "list-remote" ) nvm_print_versions "`nvm_ls_remote $2`" diff --git "a/test/fast/Running \"nvm ls foo\" should return a nonzero exit code when not found" "b/test/fast/Running \"nvm ls foo\" should return a nonzero exit code when not found" new file mode 100755 index 0000000..b29a947 --- /dev/null +++ "b/test/fast/Running \"nvm ls foo\" should return a nonzero exit code when not found" @@ -0,0 +1,7 @@ + #!/bin/sh + +. ../../nvm.sh + +nvm ls nonexistent_version +[ "$?" = "3" ] + From 4b593bcda23314260880a1793e21c40b93908b5c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 22 Jun 2014 17:20:31 -0700 Subject: [PATCH 0048/1426] Make sure these vars are local, where supported --- nvm.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nvm.sh b/nvm.sh index 6354034..20c781a 100644 --- a/nvm.sh +++ b/nvm.sh @@ -571,6 +571,8 @@ nvm() { NODE_PATH=$RUN_NODE_PATH $NVM_DIR/$VERSION/bin/node "$@" ;; "ls" | "list" ) + local NVM_LS_OUTPUT + local NVM_LS_EXIT_CODE NVM_LS_OUTPUT=$(nvm_ls "$2") NVM_LS_EXIT_CODE=$? nvm_print_versions "$NVM_LS_OUTPUT" From fb215546ee5041b4146c1d0806a0390a759845c5 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 26 Jun 2014 16:52:48 -0700 Subject: [PATCH 0049/1426] Don't bother trying to return the exit code of `nvm alias` or `nvm_print_versions` --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 20c781a..782a432 100644 --- a/nvm.sh +++ b/nvm.sh @@ -579,7 +579,7 @@ nvm() { if [ $# -eq 1 ]; then nvm alias fi - return $NVM_LS_EXIT_CODE && $? + return $NVM_LS_EXIT_CODE ;; "ls-remote" | "list-remote" ) nvm_print_versions "`nvm_ls_remote $2`" From 3e5037a1bed2056ba633e1198a07d70c2f5fc038 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 26 Jun 2014 17:06:45 -0700 Subject: [PATCH 0050/1426] v0.10.0 --- README.markdown | 6 +++--- nvm.sh | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.markdown b/README.markdown index 8f7afc0..1bf93a8 100644 --- a/README.markdown +++ b/README.markdown @@ -8,11 +8,11 @@ First you'll need to make sure your system has a c++ compiler. For OSX, XCode w To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.9.0/install.sh | sh + curl https://raw.githubusercontent.com/creationix/nvm/v0.10.0/install.sh | sh or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.9.0/install.sh | sh + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.10.0/install.sh | sh The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -163,7 +163,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.9.0/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.10.0/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin diff --git a/nvm.sh b/nvm.sh index 782a432..cb4e180 100644 --- a/nvm.sh +++ b/nvm.sh @@ -654,7 +654,7 @@ nvm() { nvm_version $2 ;; "--version" ) - echo "0.9.0" + echo "0.10.0" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version > /dev/null 2>&1 diff --git a/package.json b/package.json index 7c5d847..0c95864 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.9.0", + "version": "0.10.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From fb5a51b1b7f953971d5a0cc5e610587f34a9b1d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Go=C5=82e=CC=A8biowski?= Date: Wed, 2 Jul 2014 14:58:56 +0200 Subject: [PATCH 0051/1426] Use bash, not sh for install scritps Install scripts don't work in pure sh; they may work on some systems where the /bin/sh binary actually implements more than the pure Bourne Shell but fail on other ones (e.g. Ubuntu). Just using bash works. --- README.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.markdown b/README.markdown index 1bf93a8..d4b40ef 100644 --- a/README.markdown +++ b/README.markdown @@ -8,11 +8,11 @@ First you'll need to make sure your system has a c++ compiler. For OSX, XCode w To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.10.0/install.sh | sh + curl https://raw.githubusercontent.com/creationix/nvm/v0.10.0/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.10.0/install.sh | sh + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.10.0/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). From f214ffaf1fbd18604db1dda7f024359e30e6d93b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 5 Jul 2014 11:05:15 -0700 Subject: [PATCH 0052/1426] Oxford comma --- README.markdown | 2 +- install.sh | 4 ++-- nvm.sh | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.markdown b/README.markdown index d4b40ef..11cb9e9 100644 --- a/README.markdown +++ b/README.markdown @@ -18,7 +18,7 @@ or Wget: You can customize the install source, directory and profile using the `NVM_SOURCE`, `NVM_DIR` and `PROFILE` variables. Eg: `curl ... | NVM_DIR=/usr/local/nvm sh` for a global install. -*NB. The installer can use Git, cURL or Wget to download NVM, whatever is available.* +*NB. The installer can use Git, curl, or wget to download NVM, whatever is available.* ### Manual install diff --git a/install.sh b/install.sh index 17e1599..b67c5e7 100755 --- a/install.sh +++ b/install.sh @@ -68,7 +68,7 @@ if [ -z "$METHOD" ]; then elif has "curl"; then install_as_script else - echo >&2 "You need git, curl or wget to install nvm" + echo >&2 "You need git, curl, or wget to install nvm" exit 1 fi else @@ -105,7 +105,7 @@ SOURCE_STR="\nexport NVM_DIR=\"$NVM_DIR\"\n[ -s \"\$NVM_DIR/nvm.sh\" ] && . \"\$ if [ -z "$PROFILE" ] || [ ! -f "$PROFILE" ] ; then if [ -z $PROFILE ]; then - echo "=> Profile not found. Tried ~/.bash_profile ~/.zshrc and ~/.profile." + echo "=> Profile not found. Tried ~/.bash_profile, ~/.zshrc, and ~/.profile." echo "=> Create one of them and run this script again" else echo "=> Profile $PROFILE not found" diff --git a/nvm.sh b/nvm.sh index cb4e180..6b94dda 100644 --- a/nvm.sh +++ b/nvm.sh @@ -274,7 +274,7 @@ nvm() { echo " nvm alias default 0.10.24 Set default node version on a shell" echo echo "Note:" - echo " to remove, delete or uninstall nvm - just remove ~/.nvm, ~/.npm and ~/.bower folders" + echo " to remove, delete, or uninstall nvm - just remove ~/.nvm, ~/.npm, and ~/.bower folders" echo ;; From 7e269961c3fdfa9b0c592efccd80a4476e4c0f88 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 5 Jul 2014 13:42:44 -0700 Subject: [PATCH 0053/1426] In `install.sh`, rename `has` to `nvm_has` for consistency with `nvm.sh`. --- install.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/install.sh b/install.sh index b67c5e7..519d7d6 100755 --- a/install.sh +++ b/install.sh @@ -2,7 +2,7 @@ set -e -has() { +nvm_has() { type "$1" > /dev/null 2>&1 return $? } @@ -11,8 +11,8 @@ if [ -z "$NVM_DIR" ]; then NVM_DIR="$HOME/.nvm" fi -if ! has "curl"; then - if has "wget"; then +if ! nvm_has "curl"; then + if nvm_has "wget"; then # Emulate curl with wget curl() { ARGS="$* " @@ -63,9 +63,9 @@ install_as_script() { if [ -z "$METHOD" ]; then # Autodetect install method - if has "git"; then + if nvm_has "git"; then install_from_git - elif has "curl"; then + elif nvm_has "curl"; then install_as_script else echo >&2 "You need git, curl, or wget to install nvm" @@ -73,14 +73,14 @@ if [ -z "$METHOD" ]; then fi else if [ "$METHOD" = "git" ]; then - if ! has "git"; then + if ! nvm_has "git"; then echo >&2 "You need git to install nvm" exit 1 fi install_from_git fi if [ "$METHOD" = "script" ]; then - if ! has "curl"; then + if ! nvm_has "curl"; then echo >&2 "You need curl or wget to install nvm" exit 1 fi From cce5df35bad1aef91ff92465e847cce04dbc4dc0 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 5 Jul 2014 13:44:00 -0700 Subject: [PATCH 0054/1426] Naming `install.sh` functions more explicitly as being for `nvm`. --- install.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/install.sh b/install.sh index 519d7d6..94ce2ee 100755 --- a/install.sh +++ b/install.sh @@ -23,7 +23,7 @@ if ! nvm_has "curl"; then fi fi -install_from_git() { +install_nvm_from_git() { if [ -z "$NVM_SOURCE" ]; then NVM_SOURCE="https://github.com/creationix/nvm.git" fi @@ -43,7 +43,7 @@ install_from_git() { fi } -install_as_script() { +install_nvm_as_script() { if [ -z "$NVM_SOURCE" ]; then NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/master/nvm.sh" fi @@ -64,9 +64,9 @@ install_as_script() { if [ -z "$METHOD" ]; then # Autodetect install method if nvm_has "git"; then - install_from_git + install_nvm_from_git elif nvm_has "curl"; then - install_as_script + install_nvm_as_script else echo >&2 "You need git, curl, or wget to install nvm" exit 1 @@ -77,14 +77,14 @@ else echo >&2 "You need git to install nvm" exit 1 fi - install_from_git + install_nvm_from_git fi if [ "$METHOD" = "script" ]; then if ! nvm_has "curl"; then echo >&2 "You need curl or wget to install nvm" exit 1 fi - install_as_script + install_nvm_as_script fi fi From e0537ce3dfba5c5bcfc78f5ba29c759de9e397ad Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 5 Jul 2014 13:47:22 -0700 Subject: [PATCH 0055/1426] Shellcheck recommendations. --- install.sh | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/install.sh b/install.sh index 94ce2ee..cb3d99d 100755 --- a/install.sh +++ b/install.sh @@ -18,7 +18,7 @@ if ! nvm_has "curl"; then ARGS="$* " ARGS=${ARGS/-s /-q } ARGS=${ARGS/-o /-O } - wget $ARGS + wget "$ARGS" } fi fi @@ -31,9 +31,9 @@ install_nvm_from_git() { if [ -d "$NVM_DIR/.git" ]; then echo "=> nvm is already installed in $NVM_DIR, trying to update" printf "\r=> " - cd "$NVM_DIR" && git pull 2> /dev/null || { + cd "$NVM_DIR" && (git pull 2> /dev/null || { echo >&2 "Failed to update nvm, run 'git pull' in $NVM_DIR yourself.." - } + }) else # Cloning to $NVM_DIR echo "=> Downloading nvm from git to '$NVM_DIR'" @@ -104,7 +104,7 @@ fi SOURCE_STR="\nexport NVM_DIR=\"$NVM_DIR\"\n[ -s \"\$NVM_DIR/nvm.sh\" ] && . \"\$NVM_DIR/nvm.sh\" # This loads nvm" if [ -z "$PROFILE" ] || [ ! -f "$PROFILE" ] ; then - if [ -z $PROFILE ]; then + if [ -z "$PROFILE" ]; then echo "=> Profile not found. Tried ~/.bash_profile, ~/.zshrc, and ~/.profile." echo "=> Create one of them and run this script again" else @@ -113,16 +113,15 @@ if [ -z "$PROFILE" ] || [ ! -f "$PROFILE" ] ; then fi echo " OR" echo "=> Append the following lines to the correct file yourself:" - printf "$SOURCE_STR" + printf "%s" "$SOURCE_STR" echo else - if ! grep -qc 'nvm.sh' $PROFILE; then + if ! grep -qc 'nvm.sh' "$PROFILE"; then echo "=> Appending source string to $PROFILE" - printf "$SOURCE_STR" >> "$PROFILE" + printf "%s" "$SOURCE_STR" >> "$PROFILE" else echo "=> Source string already in $PROFILE" fi fi echo "=> Close and reopen your terminal to start using nvm" - From ea198c9a195b396ee65c7ac36398c832b85d6b46 Mon Sep 17 00:00:00 2001 From: Koen Punt Date: Mon, 7 Jul 2014 14:42:27 +0200 Subject: [PATCH 0056/1426] add newline to printf --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index cb3d99d..3879245 100755 --- a/install.sh +++ b/install.sh @@ -118,7 +118,7 @@ if [ -z "$PROFILE" ] || [ ! -f "$PROFILE" ] ; then else if ! grep -qc 'nvm.sh' "$PROFILE"; then echo "=> Appending source string to $PROFILE" - printf "%s" "$SOURCE_STR" >> "$PROFILE" + printf "%s\n" "$SOURCE_STR" >> "$PROFILE" else echo "=> Source string already in $PROFILE" fi From 25c0be1e20968b9b68dc221fb2de168b19bc80b3 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 5 Jul 2014 13:51:13 -0700 Subject: [PATCH 0057/1426] Using an `nvm_curl` function instead of `curl`/`wget` directly. --- install.sh | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/install.sh b/install.sh index 3879245..3cf4a0a 100755 --- a/install.sh +++ b/install.sh @@ -11,16 +11,18 @@ if [ -z "$NVM_DIR" ]; then NVM_DIR="$HOME/.nvm" fi -if ! nvm_has "curl"; then - if nvm_has "wget"; then - # Emulate curl with wget - curl() { - ARGS="$* " - ARGS=${ARGS/-s /-q } - ARGS=${ARGS/-o /-O } - wget "$ARGS" - } - fi +if nvm_has "curl"; then + nvm_curl() { + curl $* + } +elif nvm_has "wget"; then + # Emulate curl with wget + nvm_curl() { + ARGS="$* " + ARGS=${ARGS/-s /-q } + ARGS=${ARGS/-o /-O } + wget "$ARGS" + } fi install_nvm_from_git() { @@ -55,7 +57,7 @@ install_nvm_as_script() { else echo "=> Downloading nvm as script to '$NVM_DIR'" fi - curl -s "$NVM_SOURCE" -o "$NVM_DIR/nvm.sh" || { + nvm_curl -s "$NVM_SOURCE" -o "$NVM_DIR/nvm.sh" || { echo >&2 "Failed to download '$NVM_SOURCE'.." return 1 } @@ -65,7 +67,7 @@ if [ -z "$METHOD" ]; then # Autodetect install method if nvm_has "git"; then install_nvm_from_git - elif nvm_has "curl"; then + elif nvm_has "nvm_curl"; then install_nvm_as_script else echo >&2 "You need git, curl, or wget to install nvm" @@ -80,7 +82,7 @@ else install_nvm_from_git fi if [ "$METHOD" = "script" ]; then - if ! nvm_has "curl"; then + if ! nvm_has "nvm_curl"; then echo >&2 "You need curl or wget to install nvm" exit 1 fi From b9383c9016efbcd4c23b5efa9ebaac4793d7a1f1 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 5 Jul 2014 13:52:49 -0700 Subject: [PATCH 0058/1426] Use `nvm_curl` instead of `curl` directly, which has a `wget` fallback. --- nvm.sh | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/nvm.sh b/nvm.sh index 6b94dda..9cd4e29 100644 --- a/nvm.sh +++ b/nvm.sh @@ -12,6 +12,20 @@ nvm_has() { return $? } +if nvm_has "curl"; then + nvm_curl() { + curl $* + } +elif nvm_has "wget"; then + # Emulate curl with wget + nvm_curl() { + ARGS="$* " + ARGS=${ARGS/-s /-q } + ARGS=${ARGS/-o /-O } + wget "$ARGS" + } +fi + # Make zsh glob matching behave same as bash # This fixes the "zsh: no matches found" errors if nvm_has "unsetopt"; then @@ -164,7 +178,7 @@ nvm_ls_remote() { else PATTERN=".*" fi - VERSIONS=`curl -s $NVM_NODEJS_ORG_MIRROR/ \ + VERSIONS=`nvm_curl -s $NVM_NODEJS_ORG_MIRROR/ \ | \egrep -o 'v[0-9]+\.[0-9]+\.[0-9]+' \ | \grep -w "${PATTERN}" \ | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n` @@ -290,8 +304,8 @@ nvm() { version_not_provided=0 local provided_version - if ! nvm_has "curl"; then - echo 'NVM Needs curl to proceed.' >&2; + if ! nvm_has "nvm_curl"; then + echo 'nvm needs curl or wget to proceed.' >&2; return 1 fi @@ -354,14 +368,14 @@ nvm() { if nvm_binary_available "$VERSION"; then t="$VERSION-$os-$arch" url="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-${t}.tar.gz" - sum=`curl -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt | \grep node-${t}.tar.gz | awk '{print $1}'` + sum=`nvm_curl -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt | \grep node-${t}.tar.gz | awk '{print $1}'` local tmpdir tmpdir="$NVM_DIR/bin/node-${t}" local tmptarball tmptarball="$tmpdir/node-${t}.tar.gz" if ( mkdir -p "$tmpdir" && \ - curl -L -C - --progress-bar $url -o "$tmptarball" && \ + nvm_curl -L -C - --progress-bar $url -o "$tmptarball" && \ nvm_checksum "$tmptarball" $sum && \ tar -xzf "$tmptarball" -C "$tmpdir" --strip-components 1 && \ rm -f "$tmptarball" && \ @@ -391,16 +405,16 @@ nvm() { tmpdir="$NVM_DIR/src" local tmptarball tmptarball="$tmpdir/node-$VERSION.tar.gz" - if [ "`curl -Is "$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" | \grep '200 OK'`" != '' ]; then + if [ "`nvm_curl -Is "$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" | \grep '200 OK'`" != '' ]; then tarball="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" - sum=`curl -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt | \grep node-$VERSION.tar.gz | awk '{print $1}'` - elif [ "`curl -Is "$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" | \grep '200 OK'`" != '' ]; then + sum=`nvm_curl -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt | \grep node-$VERSION.tar.gz | awk '{print $1}'` + elif [ "`nvm_curl -Is "$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" | \grep '200 OK'`" != '' ]; then tarball="$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" fi if ( [ -n "$tarball" ] && \ mkdir -p "$tmpdir" && \ - curl -L --progress-bar $tarball -o "$tmptarball" && \ + nvm_curl -L --progress-bar $tarball -o "$tmptarball" && \ nvm_checksum "$tmptarball" $sum && \ tar -xzf "$tmptarball" -C "$tmpdir" && \ cd "$tmpdir/node-$VERSION" && \ @@ -419,10 +433,10 @@ nvm() { if [ "`expr "$VERSION" : '\(^v0\.2\.[0-2]$\)'`" != '' ]; then echo "npm requires node v0.2.3 or higher" >&2 else - curl https://npmjs.org/install.sh | clean=yes npm_install=0.2.19 sh + nvm_curl https://npmjs.org/install.sh | clean=yes npm_install=0.2.19 sh fi else - curl https://npmjs.org/install.sh | clean=yes sh + nvm_curl https://npmjs.org/install.sh | clean=yes sh fi fi else From eda8ffbcc4dd27bb5acdbdbb9f77cf943649831a Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 7 Jul 2014 09:55:03 -0700 Subject: [PATCH 0059/1426] =?UTF-8?q?Add=20some=20more=20curl=20=E2=86=92?= =?UTF-8?q?=20wget=20argument=20munging?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- install.sh | 3 +++ nvm.sh | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/install.sh b/install.sh index 3cf4a0a..a9f88ed 100755 --- a/install.sh +++ b/install.sh @@ -19,8 +19,11 @@ elif nvm_has "wget"; then # Emulate curl with wget nvm_curl() { ARGS="$* " + ARGS=${ARGS/--progress-bar /} + ARGS=${ARGS/-L /} ARGS=${ARGS/-s /-q } ARGS=${ARGS/-o /-O } + ARGS=${ARGS/-C /-c } wget "$ARGS" } fi diff --git a/nvm.sh b/nvm.sh index 9cd4e29..b6a12dd 100644 --- a/nvm.sh +++ b/nvm.sh @@ -20,8 +20,12 @@ elif nvm_has "wget"; then # Emulate curl with wget nvm_curl() { ARGS="$* " + ARGS=${ARGS/--progress-bar /} + ARGS=${ARGS/-L /} + ARGS=${ARGS/-I /} ARGS=${ARGS/-s /-q } ARGS=${ARGS/-o /-O } + ARGS=${ARGS/-C /-c } wget "$ARGS" } fi From 74cc1eb022837de493cfee649a18fcdc2a1e55c5 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 7 Jul 2014 10:04:20 -0700 Subject: [PATCH 0060/1426] Make `nvm_curl` do a runtime check if `curl` is available. --- install.sh | 19 +++++++++---------- nvm.sh | 16 +++++++--------- 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/install.sh b/install.sh index a9f88ed..e86cd4a 100755 --- a/install.sh +++ b/install.sh @@ -11,22 +11,21 @@ if [ -z "$NVM_DIR" ]; then NVM_DIR="$HOME/.nvm" fi -if nvm_has "curl"; then - nvm_curl() { +nvm_curl() { + if nvm_has "curl"; then curl $* - } -elif nvm_has "wget"; then - # Emulate curl with wget - nvm_curl() { - ARGS="$* " + elif nvm_has "wget"; then + # Emulate curl with wget + ARGS="$*" ARGS=${ARGS/--progress-bar /} ARGS=${ARGS/-L /} + ARGS=${ARGS/-I /} ARGS=${ARGS/-s /-q } ARGS=${ARGS/-o /-O } ARGS=${ARGS/-C /-c } - wget "$ARGS" - } -fi + wget $ARGS + fi +} install_nvm_from_git() { if [ -z "$NVM_SOURCE" ]; then diff --git a/nvm.sh b/nvm.sh index b6a12dd..e0a30aa 100644 --- a/nvm.sh +++ b/nvm.sh @@ -12,14 +12,12 @@ nvm_has() { return $? } -if nvm_has "curl"; then - nvm_curl() { +nvm_curl() { + if nvm_has "curl"; then curl $* - } -elif nvm_has "wget"; then - # Emulate curl with wget - nvm_curl() { - ARGS="$* " + elif nvm_has "wget"; then + # Emulate curl with wget + ARGS="$*" ARGS=${ARGS/--progress-bar /} ARGS=${ARGS/-L /} ARGS=${ARGS/-I /} @@ -27,8 +25,8 @@ elif nvm_has "wget"; then ARGS=${ARGS/-o /-O } ARGS=${ARGS/-C /-c } wget "$ARGS" - } -fi + fi +} # Make zsh glob matching behave same as bash # This fixes the "zsh: no matches found" errors From 018e47bec0573fc9576e7a9d1e6fd59530a722af Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 7 Jul 2014 13:32:08 -0700 Subject: [PATCH 0061/1426] Make sure both wget and curl work. --- install.sh | 6 ++++-- nvm.sh | 12 +++++++----- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/install.sh b/install.sh index e86cd4a..49a850b 100755 --- a/install.sh +++ b/install.sh @@ -17,12 +17,14 @@ nvm_curl() { elif nvm_has "wget"; then # Emulate curl with wget ARGS="$*" - ARGS=${ARGS/--progress-bar /} + echo "original: $ARGS" + ARGS=${ARGS/--progress-bar /--progress=bar } ARGS=${ARGS/-L /} ARGS=${ARGS/-I /} - ARGS=${ARGS/-s /-q } + ARGS=${ARGS/-s /-qO- } ARGS=${ARGS/-o /-O } ARGS=${ARGS/-C /-c } + ARGS=${ARGS/ - / } wget $ARGS fi } diff --git a/nvm.sh b/nvm.sh index e0a30aa..ee2c9d2 100644 --- a/nvm.sh +++ b/nvm.sh @@ -18,13 +18,15 @@ nvm_curl() { elif nvm_has "wget"; then # Emulate curl with wget ARGS="$*" - ARGS=${ARGS/--progress-bar /} + echo "original: $ARGS" + ARGS=${ARGS/--progress-bar /--progress=bar } ARGS=${ARGS/-L /} ARGS=${ARGS/-I /} - ARGS=${ARGS/-s /-q } + ARGS=${ARGS/-s /-qO- } ARGS=${ARGS/-o /-O } ARGS=${ARGS/-C /-c } - wget "$ARGS" + ARGS=${ARGS/ - / } + wget $ARGS fi } @@ -407,10 +409,10 @@ nvm() { tmpdir="$NVM_DIR/src" local tmptarball tmptarball="$tmpdir/node-$VERSION.tar.gz" - if [ "`nvm_curl -Is "$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" | \grep '200 OK'`" != '' ]; then + if [ "`nvm_curl -s -I "$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" | \grep '200 OK'`" != '' ]; then tarball="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" sum=`nvm_curl -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt | \grep node-$VERSION.tar.gz | awk '{print $1}'` - elif [ "`nvm_curl -Is "$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" | \grep '200 OK'`" != '' ]; then + elif [ "`nvm_curl -s -I "$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" | \grep '200 OK'`" != '' ]; then tarball="$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" fi if ( From df4689fbd281a1cc68c6a8707d35f9d25ccf5f39 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 7 Jul 2014 13:59:58 -0700 Subject: [PATCH 0062/1426] Removing an extra "echo" --- install.sh | 1 - nvm.sh | 1 - 2 files changed, 2 deletions(-) diff --git a/install.sh b/install.sh index 49a850b..00ec1fa 100755 --- a/install.sh +++ b/install.sh @@ -17,7 +17,6 @@ nvm_curl() { elif nvm_has "wget"; then # Emulate curl with wget ARGS="$*" - echo "original: $ARGS" ARGS=${ARGS/--progress-bar /--progress=bar } ARGS=${ARGS/-L /} ARGS=${ARGS/-I /} diff --git a/nvm.sh b/nvm.sh index ee2c9d2..a762363 100644 --- a/nvm.sh +++ b/nvm.sh @@ -18,7 +18,6 @@ nvm_curl() { elif nvm_has "wget"; then # Emulate curl with wget ARGS="$*" - echo "original: $ARGS" ARGS=${ARGS/--progress-bar /--progress=bar } ARGS=${ARGS/-L /} ARGS=${ARGS/-I /} From a0de15d0f7b3fa240aaa6b4a2bb0a53fd3b28df8 Mon Sep 17 00:00:00 2001 From: Koen Punt Date: Mon, 7 Jul 2014 23:16:20 +0200 Subject: [PATCH 0063/1426] fix nvm_curl arguments for stdout --- install.sh | 3 +-- nvm.sh | 17 ++++++++--------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/install.sh b/install.sh index 00ec1fa..8f2f630 100755 --- a/install.sh +++ b/install.sh @@ -20,10 +20,9 @@ nvm_curl() { ARGS=${ARGS/--progress-bar /--progress=bar } ARGS=${ARGS/-L /} ARGS=${ARGS/-I /} - ARGS=${ARGS/-s /-qO- } + ARGS=${ARGS/-s /-q } ARGS=${ARGS/-o /-O } ARGS=${ARGS/-C /-c } - ARGS=${ARGS/ - / } wget $ARGS fi } diff --git a/nvm.sh b/nvm.sh index a762363..a483aa7 100644 --- a/nvm.sh +++ b/nvm.sh @@ -21,10 +21,9 @@ nvm_curl() { ARGS=${ARGS/--progress-bar /--progress=bar } ARGS=${ARGS/-L /} ARGS=${ARGS/-I /} - ARGS=${ARGS/-s /-qO- } + ARGS=${ARGS/-s /-q } ARGS=${ARGS/-o /-O } ARGS=${ARGS/-C /-c } - ARGS=${ARGS/ - / } wget $ARGS fi } @@ -181,7 +180,7 @@ nvm_ls_remote() { else PATTERN=".*" fi - VERSIONS=`nvm_curl -s $NVM_NODEJS_ORG_MIRROR/ \ + VERSIONS=`nvm_curl -s $NVM_NODEJS_ORG_MIRROR/ -o - \ | \egrep -o 'v[0-9]+\.[0-9]+\.[0-9]+' \ | \grep -w "${PATTERN}" \ | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n` @@ -371,7 +370,7 @@ nvm() { if nvm_binary_available "$VERSION"; then t="$VERSION-$os-$arch" url="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-${t}.tar.gz" - sum=`nvm_curl -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt | \grep node-${t}.tar.gz | awk '{print $1}'` + sum=`nvm_curl -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt -o - | \grep node-${t}.tar.gz | awk '{print $1}'` local tmpdir tmpdir="$NVM_DIR/bin/node-${t}" local tmptarball @@ -408,10 +407,10 @@ nvm() { tmpdir="$NVM_DIR/src" local tmptarball tmptarball="$tmpdir/node-$VERSION.tar.gz" - if [ "`nvm_curl -s -I "$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" | \grep '200 OK'`" != '' ]; then + if [ "`nvm_curl -s -I "$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" -o - | \grep '200 OK'`" != '' ]; then tarball="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" - sum=`nvm_curl -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt | \grep node-$VERSION.tar.gz | awk '{print $1}'` - elif [ "`nvm_curl -s -I "$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" | \grep '200 OK'`" != '' ]; then + sum=`nvm_curl -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt -o - | \grep node-$VERSION.tar.gz | awk '{print $1}'` + elif [ "`nvm_curl -s -I "$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" -o - | \grep '200 OK'`" != '' ]; then tarball="$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" fi if ( @@ -436,10 +435,10 @@ nvm() { if [ "`expr "$VERSION" : '\(^v0\.2\.[0-2]$\)'`" != '' ]; then echo "npm requires node v0.2.3 or higher" >&2 else - nvm_curl https://npmjs.org/install.sh | clean=yes npm_install=0.2.19 sh + nvm_curl https://npmjs.org/install.sh -o - | clean=yes npm_install=0.2.19 sh fi else - nvm_curl https://npmjs.org/install.sh | clean=yes sh + nvm_curl https://npmjs.org/install.sh -o - | clean=yes sh fi fi else From e4ada9fa431b4105012917480b4f19d37078a037 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 7 Jul 2014 14:22:49 -0700 Subject: [PATCH 0064/1426] Revert part of the change from e0537ce3dfba5c5bcfc78f5ba29c759de9e397ad, fixes #458 --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 3879245..977e224 100755 --- a/install.sh +++ b/install.sh @@ -113,7 +113,7 @@ if [ -z "$PROFILE" ] || [ ! -f "$PROFILE" ] ; then fi echo " OR" echo "=> Append the following lines to the correct file yourself:" - printf "%s" "$SOURCE_STR" + printf "$SOURCE_STR" echo else if ! grep -qc 'nvm.sh' "$PROFILE"; then From 63f72b37dfc1c5a689c9af88a46ad7c8030907fd Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 7 Jul 2014 15:40:59 -0700 Subject: [PATCH 0065/1426] Followup per https://github.com/creationix/nvm/pull/452#issuecomment-48151847 --- install.sh | 8 ++++---- nvm.sh | 22 +++++++++++----------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/install.sh b/install.sh index fa8443e..1600a7d 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ if [ -z "$NVM_DIR" ]; then NVM_DIR="$HOME/.nvm" fi -nvm_curl() { +nvm_download() { if nvm_has "curl"; then curl $* elif nvm_has "wget"; then @@ -59,7 +59,7 @@ install_nvm_as_script() { else echo "=> Downloading nvm as script to '$NVM_DIR'" fi - nvm_curl -s "$NVM_SOURCE" -o "$NVM_DIR/nvm.sh" || { + nvm_download -s "$NVM_SOURCE" -o "$NVM_DIR/nvm.sh" || { echo >&2 "Failed to download '$NVM_SOURCE'.." return 1 } @@ -69,7 +69,7 @@ if [ -z "$METHOD" ]; then # Autodetect install method if nvm_has "git"; then install_nvm_from_git - elif nvm_has "nvm_curl"; then + elif nvm_has "nvm_download"; then install_nvm_as_script else echo >&2 "You need git, curl, or wget to install nvm" @@ -84,7 +84,7 @@ else install_nvm_from_git fi if [ "$METHOD" = "script" ]; then - if ! nvm_has "nvm_curl"; then + if ! nvm_has "nvm_download"; then echo >&2 "You need curl or wget to install nvm" exit 1 fi diff --git a/nvm.sh b/nvm.sh index a483aa7..4d8aac4 100644 --- a/nvm.sh +++ b/nvm.sh @@ -12,7 +12,7 @@ nvm_has() { return $? } -nvm_curl() { +nvm_download() { if nvm_has "curl"; then curl $* elif nvm_has "wget"; then @@ -180,7 +180,7 @@ nvm_ls_remote() { else PATTERN=".*" fi - VERSIONS=`nvm_curl -s $NVM_NODEJS_ORG_MIRROR/ -o - \ + VERSIONS=`nvm_download -s $NVM_NODEJS_ORG_MIRROR/ -o - \ | \egrep -o 'v[0-9]+\.[0-9]+\.[0-9]+' \ | \grep -w "${PATTERN}" \ | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n` @@ -306,7 +306,7 @@ nvm() { version_not_provided=0 local provided_version - if ! nvm_has "nvm_curl"; then + if ! nvm_has "nvm_download"; then echo 'nvm needs curl or wget to proceed.' >&2; return 1 fi @@ -370,14 +370,14 @@ nvm() { if nvm_binary_available "$VERSION"; then t="$VERSION-$os-$arch" url="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-${t}.tar.gz" - sum=`nvm_curl -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt -o - | \grep node-${t}.tar.gz | awk '{print $1}'` + sum=`nvm_download -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt -o - | \grep node-${t}.tar.gz | awk '{print $1}'` local tmpdir tmpdir="$NVM_DIR/bin/node-${t}" local tmptarball tmptarball="$tmpdir/node-${t}.tar.gz" if ( mkdir -p "$tmpdir" && \ - nvm_curl -L -C - --progress-bar $url -o "$tmptarball" && \ + nvm_download -L -C - --progress-bar $url -o "$tmptarball" && \ nvm_checksum "$tmptarball" $sum && \ tar -xzf "$tmptarball" -C "$tmpdir" --strip-components 1 && \ rm -f "$tmptarball" && \ @@ -407,16 +407,16 @@ nvm() { tmpdir="$NVM_DIR/src" local tmptarball tmptarball="$tmpdir/node-$VERSION.tar.gz" - if [ "`nvm_curl -s -I "$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" -o - | \grep '200 OK'`" != '' ]; then + if [ "`nvm_download -s -I "$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" -o - | \grep '200 OK'`" != '' ]; then tarball="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" - sum=`nvm_curl -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt -o - | \grep node-$VERSION.tar.gz | awk '{print $1}'` - elif [ "`nvm_curl -s -I "$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" -o - | \grep '200 OK'`" != '' ]; then + sum=`nvm_download -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt -o - | \grep node-$VERSION.tar.gz | awk '{print $1}'` + elif [ "`nvm_download -s -I "$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" -o - | \grep '200 OK'`" != '' ]; then tarball="$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" fi if ( [ -n "$tarball" ] && \ mkdir -p "$tmpdir" && \ - nvm_curl -L --progress-bar $tarball -o "$tmptarball" && \ + nvm_download -L --progress-bar $tarball -o "$tmptarball" && \ nvm_checksum "$tmptarball" $sum && \ tar -xzf "$tmptarball" -C "$tmpdir" && \ cd "$tmpdir/node-$VERSION" && \ @@ -435,10 +435,10 @@ nvm() { if [ "`expr "$VERSION" : '\(^v0\.2\.[0-2]$\)'`" != '' ]; then echo "npm requires node v0.2.3 or higher" >&2 else - nvm_curl https://npmjs.org/install.sh -o - | clean=yes npm_install=0.2.19 sh + nvm_download https://npmjs.org/install.sh -o - | clean=yes npm_install=0.2.19 sh fi else - nvm_curl https://npmjs.org/install.sh -o - | clean=yes sh + nvm_download https://npmjs.org/install.sh -o - | clean=yes sh fi fi else From 276c031c60fe21806ce5363f6e5c9ec9afbda0d1 Mon Sep 17 00:00:00 2001 From: Koen Punt Date: Tue, 8 Jul 2014 14:49:24 +0200 Subject: [PATCH 0066/1426] Finalize fix for #458 --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 1600a7d..36e6dc7 100755 --- a/install.sh +++ b/install.sh @@ -122,7 +122,7 @@ if [ -z "$PROFILE" ] || [ ! -f "$PROFILE" ] ; then else if ! grep -qc 'nvm.sh' "$PROFILE"; then echo "=> Appending source string to $PROFILE" - printf "%s\n" "$SOURCE_STR" >> "$PROFILE" + printf "$SOURCE_STR\n" >> "$PROFILE" else echo "=> Source string already in $PROFILE" fi From 2ee4b6f414543259082f0473baaa4f113a330527 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 9 Jul 2014 18:30:52 -0700 Subject: [PATCH 0067/1426] Correcting nvm.sh comment wrt bash --- nvm.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 4d8aac4..5dd9d81 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1,5 +1,6 @@ # Node Version Manager -# Implemented as a bash function +# Implemented as a POSIX-compliant function +# Should work on sh, dash, bash, ksh, zsh # To use source this file from your bash profile # # Implemented by Tim Caswell From 03636878d149ecb348c35e12c91d47a4b1c73487 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Go=C5=82e=CC=A8biowski?= Date: Thu, 10 Jul 2014 10:21:03 +0200 Subject: [PATCH 0068/1426] Use bash, not sh for install scritps - followup to #450 --- README.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index 11cb9e9..25888d3 100644 --- a/README.markdown +++ b/README.markdown @@ -16,7 +16,7 @@ or Wget: The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). -You can customize the install source, directory and profile using the `NVM_SOURCE`, `NVM_DIR` and `PROFILE` variables. Eg: `curl ... | NVM_DIR=/usr/local/nvm sh` for a global install. +You can customize the install source, directory and profile using the `NVM_SOURCE`, `NVM_DIR` and `PROFILE` variables. Eg: `curl ... | NVM_DIR=/usr/local/nvm bash` for a global install. *NB. The installer can use Git, curl, or wget to download NVM, whatever is available.* From a7b64951729665d3c0dc8de6fa619b62d3c883bb Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 10 Jul 2014 01:20:47 -0700 Subject: [PATCH 0069/1426] Removing unnecessary line, per #461 --- nvm.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 5dd9d81..f2aaa4a 100644 --- a/nvm.sh +++ b/nvm.sh @@ -10,7 +10,6 @@ NVM_SCRIPT_SOURCE="$_" nvm_has() { type "$1" > /dev/null 2>&1 - return $? } nvm_download() { From 638ae5c6fa00bd64caeaf44e529da4e069c516b7 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 10 Jul 2014 01:23:44 -0700 Subject: [PATCH 0070/1426] Hardcode latest version number into the install script. Fixes #462. --- install.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 36e6dc7..61435ba 100755 --- a/install.sh +++ b/install.sh @@ -36,7 +36,7 @@ install_nvm_from_git() { echo "=> nvm is already installed in $NVM_DIR, trying to update" printf "\r=> " cd "$NVM_DIR" && (git pull 2> /dev/null || { - echo >&2 "Failed to update nvm, run 'git pull' in $NVM_DIR yourself.." + echo >&2 "Failed to update nvm, run 'git pull' in $NVM_DIR yourself.." && exit 1 }) else # Cloning to $NVM_DIR @@ -45,11 +45,12 @@ install_nvm_from_git() { mkdir -p "$NVM_DIR" git clone "$NVM_SOURCE" "$NVM_DIR" fi + git checkout v0.10.0 } install_nvm_as_script() { if [ -z "$NVM_SOURCE" ]; then - NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/master/nvm.sh" + NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.10.0/nvm.sh" fi # Downloading to $NVM_DIR From b952be6f563c057f319b97d5cc38f5e90af27727 Mon Sep 17 00:00:00 2001 From: Koen Punt Date: Thu, 10 Jul 2014 10:51:36 +0200 Subject: [PATCH 0071/1426] add makefile release task --- Makefile | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 67d860b..22191d1 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ URCHIN=`which urchin` SHELLS=sh bash dash ksh zsh TEST_SUITE=fast -.PHONY: $(SHELLS) test +.PHONY: $(SHELLS) test verify-tag release $(SHELLS): @printf '\n\033[0;34m%s\033[0m\n' "Running tests in $@" @@ -13,3 +13,13 @@ test: $(SHELLS) default: test +verify-tag: +ifndef TAG + $(error TAG is undefined) +endif + +release: verify-tag + @ OLD_TAG=`git describe --abbrev=0 --tags` && \ + npm version "$(TAG)" && \ + replace "$${OLD_TAG/v/}" "$(TAG)" -- nvm.sh install.sh README.markdown && \ + git commit --amend nvm.sh install.sh README.markdown package.json From f1b8cf8fd6ab53c71ca54d517639fad1476f1443 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olivier=20Mengu=C3=A9?= Date: Mon, 13 Jan 2014 09:16:28 +0100 Subject: [PATCH 0072/1426] Use 'read' built-in instead of $(cat ... | head -n1) --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index f2aaa4a..4d8b049 100644 --- a/nvm.sh +++ b/nvm.sh @@ -74,7 +74,7 @@ nvm_rc_version() { local NVMRC_PATH NVMRC_PATH="$(nvm_find_nvmrc)" if [ -e "$NVMRC_PATH" ]; then - NVM_RC_VERSION=`cat "$NVMRC_PATH" | head -n 1` + read NVM_RC_VERSION < "$NVMRC_PATH" echo "Found '$NVMRC_PATH' with version <$NVM_RC_VERSION>" fi } From 0534872e0f5f3451f7aca45fc0c957fc49424a6b Mon Sep 17 00:00:00 2001 From: egilkh Date: Sat, 12 Jul 2014 19:33:28 +0200 Subject: [PATCH 0073/1426] Should escape grep in nvm_ls --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 4d8b049..a782441 100644 --- a/nvm.sh +++ b/nvm.sh @@ -159,7 +159,7 @@ nvm_ls() { fi else VERSIONS=`find "$NVM_DIR/" -maxdepth 1 -type d -name "$(nvm_format_version $PATTERN)*" -exec basename '{}' ';' \ - | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n | grep -v '^ *\.'` + | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n | \grep -v '^ *\.'` fi if [ -z "$VERSIONS" ]; then echo "N/A" From 802f064178236b9da3a81400b0188620234073d2 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 16 Jun 2014 22:59:56 -0700 Subject: [PATCH 0074/1426] Adding a failing test. --- ...0.2\" should display only 0.2.x versions." | 37 +++++++++++++++++-- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git "a/test/fast/Listing versions/Running \"nvm ls 0.2\" should display only 0.2.x versions." "b/test/fast/Listing versions/Running \"nvm ls 0.2\" should display only 0.2.x versions." index dda41ba..8889f09 100755 --- "a/test/fast/Listing versions/Running \"nvm ls 0.2\" should display only 0.2.x versions." +++ "b/test/fast/Listing versions/Running \"nvm ls 0.2\" should display only 0.2.x versions." @@ -2,11 +2,40 @@ mkdir ../../../v0.1.3 mkdir ../../../v0.2.3 +mkdir ../../../v0.20.3 . ../../../nvm.sh +die () { echo $@ ; exit 1; } + # The result should contain only the appropriate version numbers. -nvm ls 0.2 | grep v0.2.3 && -nvm ls 0.1 | grep -v v0.2.3 && -nvm ls 0.1 | grep v0.1.3 && -nvm ls v0.2 | grep v0.2.3 + +nvm ls 0.1 | grep 'v0.2.3' > /dev/null +if [ $? -eq 0 ]; then + echo '"nvm ls 0.1" contained v0.2.3' +fi + +nvm ls 0.1 | grep 'v0.20.3' > /dev/null +if [ $? -eq 0 ]; then + die '"nvm ls 0.1" contained v0.20.3' +fi + +nvm ls 0.1 | grep 'v0.1.3' > /dev/null +if [ $? -ne 0 ]; then + die '"nvm ls 0.1" did not contain v0.1.3' +fi + +nvm ls 0.2 | grep 'v0.2.3' > /dev/null +if [ $? -ne 0 ]; then + die '"nvm ls 0.2" did not contain v0.2.3' +fi + +nvm ls 0.2 | grep 'v0.20.3' > /dev/null +if [ $? -eq 0 ]; then + die '"nvm ls 0.2" contained v0.20.3' +fi + +nvm ls 0.2 | grep 'v0.2.3' > /dev/null +if [ $? -ne 0 ]; then + die '"nvm ls 0.2" did not contain v0.2.3' +fi From 4cfe62d3d1ded585598c246d2df45567c96037c9 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 9 Jul 2014 01:19:48 -0700 Subject: [PATCH 0075/1426] Fixing `nvm ls 0.x` to only include `0.x.*` instead of `0.x*.*` --- nvm.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index a782441..78a37cf 100644 --- a/nvm.sh +++ b/nvm.sh @@ -158,7 +158,11 @@ nvm_ls() { VERSIONS="$PATTERN" fi else - VERSIONS=`find "$NVM_DIR/" -maxdepth 1 -type d -name "$(nvm_format_version $PATTERN)*" -exec basename '{}' ';' \ + PATTERN=$(nvm_format_version $PATTERN) + if [ `expr "$PATTERN" : "v[[:digit:]]*\.[[:digit:]]*$"` != 0 ]; then + PATTERN="$PATTERN." + fi + VERSIONS=`find "$NVM_DIR/" -maxdepth 1 -type d -name "$PATTERN*" -exec basename '{}' ';' \ | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n | \grep -v '^ *\.'` fi if [ -z "$VERSIONS" ]; then From 83efa2288de111167ae92fe12a96bd912617a320 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 12 Jul 2014 08:58:20 -0700 Subject: [PATCH 0076/1426] Use [0-9] instead of [[:digit:]] per https://github.com/creationix/nvm/pull/466#discussion_r14853668 - it's simpler (and probably more portable). --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 78a37cf..4509dc7 100644 --- a/nvm.sh +++ b/nvm.sh @@ -153,13 +153,13 @@ nvm_ls() { return fi # If it looks like an explicit version, don't do anything funny - if [ `expr "$PATTERN" : "v[[:digit:]]*\.[[:digit:]]*\.[[:digit:]]*$"` != 0 ]; then + if [ `expr "$PATTERN" : "v[0-9]*\.[0-9]*\.[0-9]*$"` != 0 ]; then if [ -d "$NVM_DIR/$PATTERN" ]; then VERSIONS="$PATTERN" fi else PATTERN=$(nvm_format_version $PATTERN) - if [ `expr "$PATTERN" : "v[[:digit:]]*\.[[:digit:]]*$"` != 0 ]; then + if [ `expr "$PATTERN" : "v[0-9]*\.[0-9]*$"` != 0 ]; then PATTERN="$PATTERN." fi VERSIONS=`find "$NVM_DIR/" -maxdepth 1 -type d -name "$PATTERN*" -exec basename '{}' ';' \ From 3fa004293c6815509039354e3a10026f4fc36ef5 Mon Sep 17 00:00:00 2001 From: jsdevel Date: Sat, 12 Jul 2014 02:28:20 -0700 Subject: [PATCH 0077/1426] Adding a symlink in .nvm to the current version. --- .gitignore | 2 +- nvm.sh | 1 + ...create and change the \"current\" symlink" | 30 +++++++++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100755 "test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" diff --git a/.gitignore b/.gitignore index 56fd724..bddea4f 100644 --- a/.gitignore +++ b/.gitignore @@ -11,4 +11,4 @@ test/bak node_modules/ .DS_Store - +current diff --git a/nvm.sh b/nvm.sh index 4d8b049..b0ff361 100644 --- a/nvm.sh +++ b/nvm.sh @@ -542,6 +542,7 @@ nvm() { export NODE_PATH export NVM_PATH="$NVM_DIR/$VERSION/lib/node" export NVM_BIN="$NVM_DIR/$VERSION/bin" + rm -f "$NVM_DIR/current" && ln -s "$NVM_DIR/$VERSION" "$NVM_DIR/current" echo "Now using node $VERSION" ;; "run" ) diff --git "a/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" "b/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" new file mode 100755 index 0000000..b2b979d --- /dev/null +++ "b/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" @@ -0,0 +1,30 @@ +#!/bin/bash + +. ../../nvm.sh + +rm -rf ../../v0.10.29 +mkdir ../../v0.10.29 +nvm use 0.10.29 + +if [ ! -L ../../current ];then + echo "Expected 'current' symlink to be created!" + exit 1 +fi + +oldLink="$(readlink ../../current)" + +if [ "$(basename $oldLink)" != 'v0.10.29' ];then + echo "Expected 'current' to point to v0.10.29 but was $oldLink" + exit 1 +fi + +rm -rf ../../v0.11.13 +mkdir ../../v0.11.13 +nvm use 0.11.13 + +newLink="$(readlink ../../current)" + +if [ "$(basename $newLink)" != 'v0.11.13' ];then + echo "Expected 'current' to point to v0.11.13 but was $newLink" + exit 1 +fi From 7171cbed6f837b802948aec9fe18342c6e5690e6 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 14 Jul 2014 11:29:24 -0700 Subject: [PATCH 0078/1426] Add an `nvm_ls_current` function. --- nvm.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 0d1adb7..7d44d83 100644 --- a/nvm.sh +++ b/nvm.sh @@ -138,13 +138,17 @@ nvm_binary_available() { [ $(nvm_normalize_version $VERSION) -ge $(nvm_normalize_version $MINIMAL) ] } +nvm_ls_current() { + echo `node -v 2>/dev/null` +} + nvm_ls() { local PATTERN PATTERN=$1 local VERSIONS VERSIONS='' if [ "$PATTERN" = 'current' ]; then - echo `node -v 2>/dev/null` + nvm_ls_current return fi @@ -220,7 +224,7 @@ nvm_print_versions() { local VERSION local FORMAT local NVM_CURRENT - NVM_CURRENT=`nvm_version current` + NVM_CURRENT=$(nvm_ls_current) echo "$1" | while read VERSION; do if [ "$VERSION" = "$NVM_CURRENT" ]; then FORMAT='\033[0;32m-> %9s\033[0m' From f6974744cd84ab8d4c840f2a900ed9c7da206a80 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 14 Jul 2014 12:35:57 -0700 Subject: [PATCH 0079/1426] Moving this nvm ls test inside the "listing versions" test subdir. --- ...m ls foo\" should return a nonzero exit code when not found" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename "test/fast/Running \"nvm ls foo\" should return a nonzero exit code when not found" => "test/fast/Listing versions/Running \"nvm ls foo\" should return a nonzero exit code when not found" (75%) diff --git "a/test/fast/Running \"nvm ls foo\" should return a nonzero exit code when not found" "b/test/fast/Listing versions/Running \"nvm ls foo\" should return a nonzero exit code when not found" similarity index 75% rename from "test/fast/Running \"nvm ls foo\" should return a nonzero exit code when not found" rename to "test/fast/Listing versions/Running \"nvm ls foo\" should return a nonzero exit code when not found" index b29a947..d3f6974 100755 --- "a/test/fast/Running \"nvm ls foo\" should return a nonzero exit code when not found" +++ "b/test/fast/Listing versions/Running \"nvm ls foo\" should return a nonzero exit code when not found" @@ -1,6 +1,6 @@ #!/bin/sh -. ../../nvm.sh +. ../../../nvm.sh nvm ls nonexistent_version [ "$?" = "3" ] From 1d6158440259dd88bf076d4d75de9043538d707b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 14 Jul 2014 20:32:20 -0700 Subject: [PATCH 0080/1426] Making sure this test cleans up after itself. --- ...vm use x\" should create and change the \"current\" symlink" | 2 ++ 1 file changed, 2 insertions(+) diff --git "a/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" "b/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" index b2b979d..781eb94 100755 --- "a/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" +++ "b/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" @@ -5,6 +5,7 @@ rm -rf ../../v0.10.29 mkdir ../../v0.10.29 nvm use 0.10.29 +rmdir ../../v0.10.29 if [ ! -L ../../current ];then echo "Expected 'current' symlink to be created!" @@ -21,6 +22,7 @@ fi rm -rf ../../v0.11.13 mkdir ../../v0.11.13 nvm use 0.11.13 +rmdir ../../v0.11.13 newLink="$(readlink ../../current)" From 6d2912a2ab29bb69b988b4ed513a87c3962f0a88 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 14 Jul 2014 11:46:34 -0700 Subject: [PATCH 0081/1426] Adding nvm_has_system_node --- nvm.sh | 4 ++++ test/fast/Unit tests/nvm_has_system_node | 29 ++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100755 test/fast/Unit tests/nvm_has_system_node diff --git a/nvm.sh b/nvm.sh index 7d44d83..52c3751 100644 --- a/nvm.sh +++ b/nvm.sh @@ -28,6 +28,10 @@ nvm_download() { fi } +nvm_has_system_node() { + [ $(nvm deactivate 2> /dev/null && command -v node) != '' ] +} + # Make zsh glob matching behave same as bash # This fixes the "zsh: no matches found" errors if nvm_has "unsetopt"; then diff --git a/test/fast/Unit tests/nvm_has_system_node b/test/fast/Unit tests/nvm_has_system_node new file mode 100755 index 0000000..6265d00 --- /dev/null +++ b/test/fast/Unit tests/nvm_has_system_node @@ -0,0 +1,29 @@ +#!/bin/sh + +cleanup () { + rm ../../../v0.1.2/node + rmdir ../../../v0.1.2 +} +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +mkdir ../../../v0.1.2 +touch ../../../v0.1.2/node + +nvm use 0.1.2 + +if command -v node; then + nvm_has_system_node +else + ! nvm_has_system_node +fi + +nvm deactivate /dev/null 2>&1 + +if command -v node; then + nvm_has_system_node +else + ! nvm_has_system_node +fi + From 26ed7a003aacd0efb03a879349d60261ff4a03c7 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 15 Jul 2014 02:00:48 -0700 Subject: [PATCH 0082/1426] Making sure to quote this output, so that paths with spaces don't break the method. Although tests were passing in Travis for #470, they were failing locally - now they pass in both. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 52c3751..4763aef 100644 --- a/nvm.sh +++ b/nvm.sh @@ -29,7 +29,7 @@ nvm_download() { } nvm_has_system_node() { - [ $(nvm deactivate 2> /dev/null && command -v node) != '' ] + [ "$(nvm deactivate 2> /dev/null && command -v node)" != '' ] } # Make zsh glob matching behave same as bash From 8a29122d0af42d604e041a9f54ff4a13cf40ca89 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 15 Jul 2014 01:22:49 -0700 Subject: [PATCH 0083/1426] Adding `teardown` to `test/fast/Listing versions/` --- ...sioning vx.x.x should only list a matched version" | 1 + test/fast/Listing versions/teardown | 11 +++++++++++ 2 files changed, 12 insertions(+) create mode 100644 test/fast/Listing versions/teardown diff --git "a/test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" "b/test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" index 7cd94ce..443b305 100755 --- "a/test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" +++ "b/test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" @@ -8,3 +8,4 @@ nvm ls v0.1 | grep v0.1.2 && nvm ls v0.1.2 | grep v0.1.2 && nvm ls v0.1. | grep N/A && nvm ls v0.1.1 | grep N/A + diff --git a/test/fast/Listing versions/teardown b/test/fast/Listing versions/teardown new file mode 100644 index 0000000..191d12b --- /dev/null +++ b/test/fast/Listing versions/teardown @@ -0,0 +1,11 @@ +rmdir ../../../v0.0.1 +rmdir ../../../v0.0.3 +rmdir ../../../v0.0.9 +rmdir ../../../v0.1.2 +rmdir ../../../v0.1.3 +rmdir ../../../v0.2.3 +rmdir ../../../v0.3.1 +rmdir ../../../v0.3.3 +rmdir ../../../v0.3.9 +unalias nvm_has_system_node + From 4895aebf0aa2149dbdfd76991cdd8bec417a04c4 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 15 Jul 2014 10:51:40 -0700 Subject: [PATCH 0084/1426] v0.11.0 --- README.markdown | 6 +++--- install.sh | 4 ++-- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.markdown b/README.markdown index 25888d3..dfc9aab 100644 --- a/README.markdown +++ b/README.markdown @@ -8,11 +8,11 @@ First you'll need to make sure your system has a c++ compiler. For OSX, XCode w To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.10.0/install.sh | bash + curl https://raw.githubusercontent.com/creationix/nvm/v0.11.0/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.10.0/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.11.0/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -163,7 +163,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.10.0/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.11.0/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin diff --git a/install.sh b/install.sh index 61435ba..3caeb2f 100755 --- a/install.sh +++ b/install.sh @@ -45,12 +45,12 @@ install_nvm_from_git() { mkdir -p "$NVM_DIR" git clone "$NVM_SOURCE" "$NVM_DIR" fi - git checkout v0.10.0 + git checkout v0.11.0 } install_nvm_as_script() { if [ -z "$NVM_SOURCE" ]; then - NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.10.0/nvm.sh" + NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.11.0/nvm.sh" fi # Downloading to $NVM_DIR diff --git a/nvm.sh b/nvm.sh index 4763aef..95e8710 100644 --- a/nvm.sh +++ b/nvm.sh @@ -683,7 +683,7 @@ nvm() { nvm_version $2 ;; "--version" ) - echo "0.10.0" + echo "0.11.0" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version > /dev/null 2>&1 diff --git a/package.json b/package.json index 0c95864..aea39b9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.10.0", + "version": "0.11.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 21fa84225c543de41e1d11c68d62edd925c1034b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Go=C5=82e=CC=A8biowski?= Date: Wed, 16 Jul 2014 10:56:19 +0200 Subject: [PATCH 0085/1426] Hotfix: correctly map curl's `-C -` to wget wget doesn't need or accept the `-` parameter to `-c`. This incorrect mapping causes `nvm install` to fail on a curlless OS. --- install.sh | 2 +- nvm.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 3caeb2f..ef3cf16 100755 --- a/install.sh +++ b/install.sh @@ -22,7 +22,7 @@ nvm_download() { ARGS=${ARGS/-I /} ARGS=${ARGS/-s /-q } ARGS=${ARGS/-o /-O } - ARGS=${ARGS/-C /-c } + ARGS=${ARGS/-C - /-c } wget $ARGS fi } diff --git a/nvm.sh b/nvm.sh index 95e8710..04565dd 100644 --- a/nvm.sh +++ b/nvm.sh @@ -23,7 +23,7 @@ nvm_download() { ARGS=${ARGS/-I /} ARGS=${ARGS/-s /-q } ARGS=${ARGS/-o /-O } - ARGS=${ARGS/-C /-c } + ARGS=${ARGS/-C - /-c } wget $ARGS fi } From 55d892adc8dddb0e5f4fe62f3001bd90b470bfef Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 17 Jul 2014 00:19:01 -0700 Subject: [PATCH 0086/1426] Fix #476 by making sure to cd into `$NVM_DIR` before checking out the tag. Also delete the master branch, because we won't be needing that. --- install.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index ef3cf16..e45023f 100755 --- a/install.sh +++ b/install.sh @@ -35,8 +35,8 @@ install_nvm_from_git() { if [ -d "$NVM_DIR/.git" ]; then echo "=> nvm is already installed in $NVM_DIR, trying to update" printf "\r=> " - cd "$NVM_DIR" && (git pull 2> /dev/null || { - echo >&2 "Failed to update nvm, run 'git pull' in $NVM_DIR yourself.." && exit 1 + cd "$NVM_DIR" && (git fetch 2> /dev/null || { + echo >&2 "Failed to update nvm, run 'git fetch' in $NVM_DIR yourself." && exit 1 }) else # Cloning to $NVM_DIR @@ -45,7 +45,7 @@ install_nvm_from_git() { mkdir -p "$NVM_DIR" git clone "$NVM_SOURCE" "$NVM_DIR" fi - git checkout v0.11.0 + cd $NVM_DIR && git checkout v0.11.0 && git branch -D master } install_nvm_as_script() { From a3de7f322233ab2b17ad6a69ea56877e417057cd Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 17 Jul 2014 00:25:14 -0700 Subject: [PATCH 0087/1426] Fixing `make release` - amending a tagged commit makes the commit not match the tag. --- Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 22191d1..f44fb68 100644 --- a/Makefile +++ b/Makefile @@ -20,6 +20,7 @@ endif release: verify-tag @ OLD_TAG=`git describe --abbrev=0 --tags` && \ - npm version "$(TAG)" && \ replace "$${OLD_TAG/v/}" "$(TAG)" -- nvm.sh install.sh README.markdown && \ - git commit --amend nvm.sh install.sh README.markdown package.json + git commit -m "v$(TAG)" nvm.sh install.sh README.markdown package.json && \ + git tag "v$(TAG)" + From 7a423b7bb4314cb9000faecf7f60b04d632b2cb7 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 17 Jul 2014 00:30:50 -0700 Subject: [PATCH 0088/1426] v0.11.1 --- README.markdown | 6 +++--- install.sh | 4 ++-- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.markdown b/README.markdown index dfc9aab..f0a2610 100644 --- a/README.markdown +++ b/README.markdown @@ -8,11 +8,11 @@ First you'll need to make sure your system has a c++ compiler. For OSX, XCode w To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.11.0/install.sh | bash + curl https://raw.githubusercontent.com/creationix/nvm/v0.11.1/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.11.0/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.11.1/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -163,7 +163,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.11.0/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.11.1/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin diff --git a/install.sh b/install.sh index e45023f..eb45d73 100755 --- a/install.sh +++ b/install.sh @@ -45,12 +45,12 @@ install_nvm_from_git() { mkdir -p "$NVM_DIR" git clone "$NVM_SOURCE" "$NVM_DIR" fi - cd $NVM_DIR && git checkout v0.11.0 && git branch -D master + cd $NVM_DIR && git checkout v0.11.1 && git branch -D master } install_nvm_as_script() { if [ -z "$NVM_SOURCE" ]; then - NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.11.0/nvm.sh" + NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.11.1/nvm.sh" fi # Downloading to $NVM_DIR diff --git a/nvm.sh b/nvm.sh index 04565dd..6952224 100644 --- a/nvm.sh +++ b/nvm.sh @@ -683,7 +683,7 @@ nvm() { nvm_version $2 ;; "--version" ) - echo "0.11.0" + echo "0.11.1" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version > /dev/null 2>&1 diff --git a/package.json b/package.json index aea39b9..262c952 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.11.0", + "version": "0.11.1", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 5ec0ccec1bfacde9c04b96b1a305078750ea9dbf Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 18 Jul 2014 01:49:57 -0700 Subject: [PATCH 0089/1426] Fixing `make release` to also cover package.json. Per https://github.com/creationix/nvm/commit/a3de7f322233ab2b17ad6a69ea56877e417057cd#commitcomment-7057689 --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index f44fb68..8930e72 100644 --- a/Makefile +++ b/Makefile @@ -20,7 +20,7 @@ endif release: verify-tag @ OLD_TAG=`git describe --abbrev=0 --tags` && \ - replace "$${OLD_TAG/v/}" "$(TAG)" -- nvm.sh install.sh README.markdown && \ + replace "$${OLD_TAG/v/}" "$(TAG)" -- nvm.sh install.sh README.markdown package.json && \ git commit -m "v$(TAG)" nvm.sh install.sh README.markdown package.json && \ git tag "v$(TAG)" From 423629c38b6e20df490727ab4020c1655836379d Mon Sep 17 00:00:00 2001 From: Koen Punt Date: Fri, 18 Jul 2014 14:13:47 +0200 Subject: [PATCH 0090/1426] add test without curl --- .travis.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 36fbc86..1709004 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,11 @@ language: c # defaults to ruby install: - sudo apt-get install ksh zsh -y + - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' before_script: - - curl -o /tmp/urchin https://raw.githubusercontent.com/scraperwiki/urchin/master/urchin && chmod +x /tmp/urchin + - '[ -n "$WITHOUT_CURL" ] || curl -o /tmp/urchin https://raw.githubusercontent.com/scraperwiki/urchin/master/urchin' + - '[ -z "$WITHOUT_CURL" ] || wget -O /tmp/urchin https://raw.githubusercontent.com/scraperwiki/urchin/master/urchin' + - chmod +x /tmp/urchin script: - NVM_DIR=$TRAVIS_BUILD_DIR make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin $SHELL env: @@ -12,3 +15,4 @@ env: - SHELL=zsh TEST_SUITE=fast - SHELL=ksh TEST_SUITE=fast - SHELL=sh TEST_SUITE=slow + - SHELL=sh TEST_SUITE=fast WITHOUT_CURL=1 From 9c2127ce3347240c39c30c79d5c234ff294555a1 Mon Sep 17 00:00:00 2001 From: Koen Punt Date: Fri, 18 Jul 2014 16:18:17 +0200 Subject: [PATCH 0091/1426] string replacement turns out not POSIX compliant --- install.sh | 13 ++++++------- nvm.sh | 13 ++++++------- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/install.sh b/install.sh index eb45d73..d87137f 100755 --- a/install.sh +++ b/install.sh @@ -16,13 +16,12 @@ nvm_download() { curl $* elif nvm_has "wget"; then # Emulate curl with wget - ARGS="$*" - ARGS=${ARGS/--progress-bar /--progress=bar } - ARGS=${ARGS/-L /} - ARGS=${ARGS/-I /} - ARGS=${ARGS/-s /-q } - ARGS=${ARGS/-o /-O } - ARGS=${ARGS/-C - /-c } + ARGS=$(echo "$*" | sed -e 's/--progress-bar /--progress=bar /' \ + -e 's/-L //' \ + -e 's/-I //' \ + -e 's/-s /-q /' \ + -e 's/-o /-O /' \ + -e 's/-C - /-c /') wget $ARGS fi } diff --git a/nvm.sh b/nvm.sh index 6952224..1197059 100644 --- a/nvm.sh +++ b/nvm.sh @@ -17,13 +17,12 @@ nvm_download() { curl $* elif nvm_has "wget"; then # Emulate curl with wget - ARGS="$*" - ARGS=${ARGS/--progress-bar /--progress=bar } - ARGS=${ARGS/-L /} - ARGS=${ARGS/-I /} - ARGS=${ARGS/-s /-q } - ARGS=${ARGS/-o /-O } - ARGS=${ARGS/-C - /-c } + ARGS=$(echo "$*" | sed -e 's/--progress-bar /--progress=bar /' \ + -e 's/-L //' \ + -e 's/-I //' \ + -e 's/-s /-q /' \ + -e 's/-o /-O /' \ + -e 's/-C - /-c /') wget $ARGS fi } From d67f2b110d39e2ec50b9cb69cbb5e90adab3ec70 Mon Sep 17 00:00:00 2001 From: Koen Punt Date: Fri, 18 Jul 2014 16:18:17 +0200 Subject: [PATCH 0092/1426] string replacement turns out not POSIX compliant --- install.sh | 13 ++++++------- nvm.sh | 13 ++++++------- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/install.sh b/install.sh index eb45d73..d87137f 100755 --- a/install.sh +++ b/install.sh @@ -16,13 +16,12 @@ nvm_download() { curl $* elif nvm_has "wget"; then # Emulate curl with wget - ARGS="$*" - ARGS=${ARGS/--progress-bar /--progress=bar } - ARGS=${ARGS/-L /} - ARGS=${ARGS/-I /} - ARGS=${ARGS/-s /-q } - ARGS=${ARGS/-o /-O } - ARGS=${ARGS/-C - /-c } + ARGS=$(echo "$*" | sed -e 's/--progress-bar /--progress=bar /' \ + -e 's/-L //' \ + -e 's/-I //' \ + -e 's/-s /-q /' \ + -e 's/-o /-O /' \ + -e 's/-C - /-c /') wget $ARGS fi } diff --git a/nvm.sh b/nvm.sh index 6952224..1197059 100644 --- a/nvm.sh +++ b/nvm.sh @@ -17,13 +17,12 @@ nvm_download() { curl $* elif nvm_has "wget"; then # Emulate curl with wget - ARGS="$*" - ARGS=${ARGS/--progress-bar /--progress=bar } - ARGS=${ARGS/-L /} - ARGS=${ARGS/-I /} - ARGS=${ARGS/-s /-q } - ARGS=${ARGS/-o /-O } - ARGS=${ARGS/-C - /-c } + ARGS=$(echo "$*" | sed -e 's/--progress-bar /--progress=bar /' \ + -e 's/-L //' \ + -e 's/-I //' \ + -e 's/-s /-q /' \ + -e 's/-o /-O /' \ + -e 's/-C - /-c /') wget $ARGS fi } From ca43ca21f576fead7018f749b42bab31b3b1a743 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 18 Jul 2014 13:18:09 -0700 Subject: [PATCH 0093/1426] Fix curl/wget detection. Fixes #478 --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 1197059..538922b 100644 --- a/nvm.sh +++ b/nvm.sh @@ -317,7 +317,7 @@ nvm() { version_not_provided=0 local provided_version - if ! nvm_has "nvm_download"; then + if ! nvm_has "curl" && ! nvm_has "wget"; then echo 'nvm needs curl or wget to proceed.' >&2; return 1 fi From 55677dba4af06f898c328ddce126744feff305a5 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 18 Jul 2014 18:16:21 -0700 Subject: [PATCH 0094/1426] Avoid calling "nvm_ls current" and call "nvm_ls_current" directly --- nvm.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/nvm.sh b/nvm.sh index 538922b..5ecf6f2 100644 --- a/nvm.sh +++ b/nvm.sh @@ -92,6 +92,11 @@ nvm_version() { PATTERN='current' fi + if [ "$PATTERN" = "current" ]; then + nvm_ls_current + return $? + fi + VERSION=`nvm_ls $PATTERN | tail -n1` echo "$VERSION" From 4512337c11dc870e5fc909d11b7c17df00343151 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 20 Jul 2014 23:41:11 -0700 Subject: [PATCH 0095/1426] Adding a slow `nvm current` test, since it needs an installed version of node. --- ... current\" should display current nvm environment." | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100755 "test/slow/Running \"nvm current\" should display current nvm environment." diff --git "a/test/slow/Running \"nvm current\" should display current nvm environment." "b/test/slow/Running \"nvm current\" should display current nvm environment." new file mode 100755 index 0000000..de82ceb --- /dev/null +++ "b/test/slow/Running \"nvm current\" should display current nvm environment." @@ -0,0 +1,10 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../nvm.sh + +nvm install 0.10 + +[ "$(nvm current)" = "$(node -v)" ] || die "Failed to find current version: got \"$(nvm current)\", expected \"$(node -v)\"" + From 200a9aa97e740f0b3a63964b0538b28a3d43ca14 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 20 Jul 2014 23:58:19 -0700 Subject: [PATCH 0096/1426] v0.11.2 --- README.markdown | 6 +++--- install.sh | 4 ++-- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.markdown b/README.markdown index f0a2610..ca1c954 100644 --- a/README.markdown +++ b/README.markdown @@ -8,11 +8,11 @@ First you'll need to make sure your system has a c++ compiler. For OSX, XCode w To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.11.1/install.sh | bash + curl https://raw.githubusercontent.com/creationix/nvm/v0.11.2/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.11.1/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.11.2/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -163,7 +163,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.11.1/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.11.2/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin diff --git a/install.sh b/install.sh index d87137f..b06a1a7 100755 --- a/install.sh +++ b/install.sh @@ -44,12 +44,12 @@ install_nvm_from_git() { mkdir -p "$NVM_DIR" git clone "$NVM_SOURCE" "$NVM_DIR" fi - cd $NVM_DIR && git checkout v0.11.1 && git branch -D master + cd $NVM_DIR && git checkout v0.11.2 && git branch -D master } install_nvm_as_script() { if [ -z "$NVM_SOURCE" ]; then - NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.11.1/nvm.sh" + NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.11.2/nvm.sh" fi # Downloading to $NVM_DIR diff --git a/nvm.sh b/nvm.sh index 5ecf6f2..1991ddc 100644 --- a/nvm.sh +++ b/nvm.sh @@ -687,7 +687,7 @@ nvm() { nvm_version $2 ;; "--version" ) - echo "0.11.1" + echo "0.11.2" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version > /dev/null 2>&1 diff --git a/package.json b/package.json index 262c952..3954281 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.11.1", + "version": "0.11.2", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 1c50c5c7aaa3facef50bf8d2e57e4cb4cccca75f Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 14 Jul 2014 11:12:58 -0700 Subject: [PATCH 0097/1426] Add nvm_tree_contains_path function --- nvm.sh | 13 ++++++++++ test/fast/Unit tests/nvm_tree_contains_path | 27 +++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100755 test/fast/Unit tests/nvm_tree_contains_path diff --git a/nvm.sh b/nvm.sh index 1991ddc..609474d 100644 --- a/nvm.sh +++ b/nvm.sh @@ -53,6 +53,19 @@ if [ -z "$NVM_NODEJS_ORG_MIRROR" ]; then export NVM_NODEJS_ORG_MIRROR="http://nodejs.org/dist" fi +nvm_tree_contains_path() { + local tree + tree="$1" + local path + path="$2" + local pathdir + pathdir=$(dirname "$path") + while [ "$pathdir" != "" ] && [ "$pathdir" != "." ] && [ "$pathdir" != "/" ] && [ "$pathdir" != "$tree" ]; do + pathdir=$(dirname "$pathdir") + done + [ "$pathdir" = "$tree" ] +} + # Traverse up in directory tree to find containing folder nvm_find_up() { local path diff --git a/test/fast/Unit tests/nvm_tree_contains_path b/test/fast/Unit tests/nvm_tree_contains_path new file mode 100755 index 0000000..0ddfb86 --- /dev/null +++ b/test/fast/Unit tests/nvm_tree_contains_path @@ -0,0 +1,27 @@ +#!/bin/sh + +cleanup () { + rm tmp/node + rmdir tmp + rm tmp2/node + rmdir tmp2 +} +die () { echo $@ ; cleanup; exit 1; } + +. ../../../nvm.sh + +mkdir -p tmp +touch -p tmp/node +mkdir -p tmp2 +touch -p tmp2/node + +nvm_tree_contains_path tmp tmp/node || die '"tmp" should contain "tmp/node"' + +nvm_tree_contains_path tmp tmp2/node && die '"tmp" should not contain "tmp2/node"' + +nvm_tree_contains_path tmp2 tmp2/node || die '"tmp2" should contain "tmp2/node"' + +nvm_tree_contains_path tmp2 tmp/node && die '"tmp2" should not contain "tmp/node"' + +cleanup + From 42b010775b95455c8ff1f3b17c29f1a2af4644ed Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 14 Jul 2014 11:42:10 -0700 Subject: [PATCH 0098/1426] Add `system` support to `nvm_print_versions` --- nvm.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nvm.sh b/nvm.sh index 609474d..cc3f4d2 100644 --- a/nvm.sh +++ b/nvm.sh @@ -251,6 +251,8 @@ nvm_print_versions() { FORMAT='\033[0;32m-> %9s\033[0m' elif [ -d "$NVM_DIR/$VERSION" ]; then FORMAT='\033[0;34m%12s\033[0m' + elif [ "$VERSION" = "system" ]; then + FORMAT='\033[0;33m%12s\033[0m' else FORMAT='%12s' fi From 6e02e5a54ce2314cb770de629e02a3c554bd89d2 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 14 Jul 2014 11:38:26 -0700 Subject: [PATCH 0099/1426] If `nvm_ls` is called without a pattern, and node exists, tack on "system". --- nvm.sh | 3 +++ ...hould include \"system\" when appropriate" | 21 +++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100755 "test/fast/Listing versions/Running \"nvm ls\" should include \"system\" when appropriate" diff --git a/nvm.sh b/nvm.sh index cc3f4d2..cdafa78 100644 --- a/nvm.sh +++ b/nvm.sh @@ -194,6 +194,9 @@ nvm_ls() { echo "N/A" return 3 fi + if [ -z "$PATTERN" ] && nvm_has_system_node; then + VERSIONS="$VERSIONS$(printf '\n%s' 'system')" + fi echo "$VERSIONS" return } diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should include \"system\" when appropriate" "b/test/fast/Listing versions/Running \"nvm ls\" should include \"system\" when appropriate" new file mode 100755 index 0000000..9afd40a --- /dev/null +++ "b/test/fast/Listing versions/Running \"nvm ls\" should include \"system\" when appropriate" @@ -0,0 +1,21 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +mkdir -p ../../../v0.0.1 +mkdir -p ../../../v0.0.3 +mkdir -p ../../../v0.0.9 +mkdir -p ../../../v0.3.1 +mkdir -p ../../../v0.3.3 +mkdir -p ../../../v0.3.9 + +nvm_has_system_node() { return 0; } +nvm ls | grep system 2>&1 > /dev/null +[ $? -eq 0 ] || die '"nvm ls" did not contain "system" when system node is present' + +nvm_has_system_node() { return 1; } +nvm ls | grep system 2>&1 > /dev/null +[ $? -ne 0 ] || die '"nvm ls" contained "system" when system node is not present' + From 9912f7cc460dcdf0fad568f5bdb6092f2a671177 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 14 Jul 2014 11:17:26 -0700 Subject: [PATCH 0100/1426] If nvm is deactivated, display "none" or "system" instead of the system node version --- nvm.sh | 10 +++++++++- ... current\" should display current nvm environment." | 6 +++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index cdafa78..a0dc370 100644 --- a/nvm.sh +++ b/nvm.sh @@ -160,7 +160,15 @@ nvm_binary_available() { } nvm_ls_current() { - echo `node -v 2>/dev/null` + local NODE_PATH + NODE_PATH="$(which node)" + if [ $? -ne 0 ]; then + echo 'none' + elif nvm_tree_contains_path "$NVM_DIR" "$NODE_PATH"; then + echo `node -v 2>/dev/null` + else + echo 'system' + fi } nvm_ls() { diff --git "a/test/fast/Running \"nvm current\" should display current nvm environment." "b/test/fast/Running \"nvm current\" should display current nvm environment." index d9293ed..5748fd6 100755 --- "a/test/fast/Running \"nvm current\" should display current nvm environment." +++ "b/test/fast/Running \"nvm current\" should display current nvm environment." @@ -3,4 +3,8 @@ die () { echo $@ ; exit 1; } . ../../nvm.sh -[ "$(nvm current)" = "$(node -v)" ] || die "Failed to find current version" + +nvm deactivate 2>&1 + +[ "$(nvm current)" = "system" ] || [ "$(nvm current)" = "none" ] || die '"nvm current" did not report "system" or "none" when deactivated' + From e7ada80d084d8a58168996462da6972509bc3b09 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 14 Jul 2014 11:49:49 -0700 Subject: [PATCH 0101/1426] `nvm use system` should work as expected. --- nvm.sh | 12 +++++++++++- ...ning \"nvm use system\" should work as expected" | 13 +++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100755 "test/fast/Running \"nvm use system\" should work as expected" diff --git a/nvm.sh b/nvm.sh index a0dc370..d0335e1 100644 --- a/nvm.sh +++ b/nvm.sh @@ -550,7 +550,17 @@ nvm() { VERSION=`nvm_version $NVM_RC_VERSION` fi else - VERSION=`nvm_version $2` + if [ $2 = 'system' ]; then + if nvm_has_system_node && nvm deactivate; then + echo "Now using system version of node: $(node -v 2>/dev/null)." + return + else + echo "System version of node not found." >&2 + return 127 + fi + else + VERSION=`nvm_version $2` + fi fi if [ -z "$VERSION" ]; then nvm help diff --git "a/test/fast/Running \"nvm use system\" should work as expected" "b/test/fast/Running \"nvm use system\" should work as expected" new file mode 100755 index 0000000..9b4e850 --- /dev/null +++ "b/test/fast/Running \"nvm use system\" should work as expected" @@ -0,0 +1,13 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../nvm.sh + +nvm_has_system_node() { return 0; } +[ "$(nvm use system 2>&1 | tail -n1)" = "Now using system version of node: $(node -v)." ] || die "Could not use system version of node" + +nvm_has_system_node() { return 1; } +[ "$(nvm use system 2>&1 | tail -n1)" = "System version of node not found." ] || die "Did not report error, system node not found" +nvm use system 2>&1 > /dev/null || [ $? -eq 127 ] || die "Did not return error code, system node not found" + From ad71389dccc8a5a2417fb898af17ae2d96de51c0 Mon Sep 17 00:00:00 2001 From: Fabian Jakobs Date: Wed, 23 Jul 2014 10:08:58 +0200 Subject: [PATCH 0102/1426] master branch might not exist After a fresh install I was unable to run the installer again. It was breaking with the error error: branch 'master' not found. my fix makes sure that the installer continues after that. --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index b06a1a7..610f409 100755 --- a/install.sh +++ b/install.sh @@ -44,7 +44,7 @@ install_nvm_from_git() { mkdir -p "$NVM_DIR" git clone "$NVM_SOURCE" "$NVM_DIR" fi - cd $NVM_DIR && git checkout v0.11.2 && git branch -D master + cd $NVM_DIR && git checkout v0.11.2 && git branch -D master || true } install_nvm_as_script() { From f5643dc7ea43442842178703c8056605b8e5673b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 23 Jul 2014 01:15:14 -0700 Subject: [PATCH 0103/1426] v0.12.0 --- README.markdown | 6 +++--- install.sh | 4 ++-- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.markdown b/README.markdown index ca1c954..0a0d0cb 100644 --- a/README.markdown +++ b/README.markdown @@ -8,11 +8,11 @@ First you'll need to make sure your system has a c++ compiler. For OSX, XCode w To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.11.2/install.sh | bash + curl https://raw.githubusercontent.com/creationix/nvm/v0.12.0/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.11.2/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.12.0/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -163,7 +163,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.11.2/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.12.0/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin diff --git a/install.sh b/install.sh index 610f409..6dc5aae 100755 --- a/install.sh +++ b/install.sh @@ -44,12 +44,12 @@ install_nvm_from_git() { mkdir -p "$NVM_DIR" git clone "$NVM_SOURCE" "$NVM_DIR" fi - cd $NVM_DIR && git checkout v0.11.2 && git branch -D master || true + cd $NVM_DIR && git checkout v0.12.0 && git branch -D master || true } install_nvm_as_script() { if [ -z "$NVM_SOURCE" ]; then - NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.11.2/nvm.sh" + NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.12.0/nvm.sh" fi # Downloading to $NVM_DIR diff --git a/nvm.sh b/nvm.sh index d0335e1..beb5153 100644 --- a/nvm.sh +++ b/nvm.sh @@ -723,7 +723,7 @@ nvm() { nvm_version $2 ;; "--version" ) - echo "0.11.2" + echo "0.12.0" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version > /dev/null 2>&1 diff --git a/package.json b/package.json index 3954281..ff26518 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.11.2", + "version": "0.12.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From d181abb62868a5aca6f5fcda36b84af0563a6b9d Mon Sep 17 00:00:00 2001 From: John Loy Date: Thu, 24 Jul 2014 15:28:33 -0400 Subject: [PATCH 0104/1426] Changes $path var to $node_path Avoids obliteration of $path set earlier by Prezto/zsh. Stomping on $path causes dirname to not be in the PATH resulting in an error. --- nvm.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index beb5153..8d89151 100644 --- a/nvm.sh +++ b/nvm.sh @@ -56,10 +56,10 @@ fi nvm_tree_contains_path() { local tree tree="$1" - local path - path="$2" + local node_path + node_path="$2" local pathdir - pathdir=$(dirname "$path") + pathdir=$(dirname "$node_path") while [ "$pathdir" != "" ] && [ "$pathdir" != "." ] && [ "$pathdir" != "/" ] && [ "$pathdir" != "$tree" ]; do pathdir=$(dirname "$pathdir") done From 68574cc7e857bbc379489f911a2914f405edb616 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 24 Jul 2014 14:07:26 -0700 Subject: [PATCH 0105/1426] v0.12.1 --- README.markdown | 6 +++--- install.sh | 4 ++-- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.markdown b/README.markdown index 0a0d0cb..e9b7a3b 100644 --- a/README.markdown +++ b/README.markdown @@ -8,11 +8,11 @@ First you'll need to make sure your system has a c++ compiler. For OSX, XCode w To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.12.0/install.sh | bash + curl https://raw.githubusercontent.com/creationix/nvm/v0.12.1/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.12.0/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.12.1/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -163,7 +163,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.12.0/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.12.1/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin diff --git a/install.sh b/install.sh index 6dc5aae..e6a3edb 100755 --- a/install.sh +++ b/install.sh @@ -44,12 +44,12 @@ install_nvm_from_git() { mkdir -p "$NVM_DIR" git clone "$NVM_SOURCE" "$NVM_DIR" fi - cd $NVM_DIR && git checkout v0.12.0 && git branch -D master || true + cd $NVM_DIR && git checkout v0.12.1 && git branch -D master || true } install_nvm_as_script() { if [ -z "$NVM_SOURCE" ]; then - NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.12.0/nvm.sh" + NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.12.1/nvm.sh" fi # Downloading to $NVM_DIR diff --git a/nvm.sh b/nvm.sh index 8d89151..f7d3f32 100644 --- a/nvm.sh +++ b/nvm.sh @@ -723,7 +723,7 @@ nvm() { nvm_version $2 ;; "--version" ) - echo "0.12.0" + echo "0.12.1" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version > /dev/null 2>&1 diff --git a/package.json b/package.json index ff26518..ebc7431 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.12.0", + "version": "0.12.1", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 781373f7ceb0a0f6c696350e3c1d79311b47dbd7 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 27 Jul 2014 23:02:22 -0700 Subject: [PATCH 0106/1426] Make sure awk is referenced unaliased, per https://github.com/creationix/nvm/issues/162#issuecomment-50284503 --- nvm.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/nvm.sh b/nvm.sh index f7d3f32..272c995 100644 --- a/nvm.sh +++ b/nvm.sh @@ -131,7 +131,7 @@ nvm_remote_version() { } nvm_normalize_version() { - echo "$1" | sed -e 's/^v//' | awk -F. '{ printf("%d%03d%03d\n", $1,$2,$3); }' + echo "$1" | sed -e 's/^v//' | \awk -F. '{ printf("%d%03d%03d\n", $1,$2,$3); }' } nvm_format_version() { @@ -234,11 +234,11 @@ nvm_ls_remote() { nvm_checksum() { if nvm_has "shasum"; then - checksum=$(shasum $1 | awk '{print $1}') + checksum=$(shasum $1 | \awk '{print $1}') elif nvm_has "sha1"; then checksum=$(sha1 -q $1) else - checksum=$(sha1sum $1 | awk '{print $1}') + checksum=$(sha1sum $1 | \awk '{print $1}') fi if [ "$checksum" = "$2" ]; then @@ -412,7 +412,7 @@ nvm() { if nvm_binary_available "$VERSION"; then t="$VERSION-$os-$arch" url="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-${t}.tar.gz" - sum=`nvm_download -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt -o - | \grep node-${t}.tar.gz | awk '{print $1}'` + sum=`nvm_download -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt -o - | \grep node-${t}.tar.gz | \awk '{print $1}'` local tmpdir tmpdir="$NVM_DIR/bin/node-${t}" local tmptarball @@ -451,7 +451,7 @@ nvm() { tmptarball="$tmpdir/node-$VERSION.tar.gz" if [ "`nvm_download -s -I "$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" -o - | \grep '200 OK'`" != '' ]; then tarball="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" - sum=`nvm_download -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt -o - | \grep node-$VERSION.tar.gz | awk '{print $1}'` + sum=`nvm_download -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt -o - | \grep node-$VERSION.tar.gz | \awk '{print $1}'` elif [ "`nvm_download -s -I "$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" -o - | \grep '200 OK'`" != '' ]; then tarball="$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" fi From 1d37af162aab615bee15467a7cacbfbcf8f60f5e Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 29 Jul 2014 00:35:27 -0700 Subject: [PATCH 0107/1426] v0.12.2 --- README.markdown | 6 +++--- install.sh | 4 ++-- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.markdown b/README.markdown index e9b7a3b..4c2995d 100644 --- a/README.markdown +++ b/README.markdown @@ -8,11 +8,11 @@ First you'll need to make sure your system has a c++ compiler. For OSX, XCode w To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.12.1/install.sh | bash + curl https://raw.githubusercontent.com/creationix/nvm/v0.12.2/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.12.1/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.12.2/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -163,7 +163,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.12.1/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.12.2/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin diff --git a/install.sh b/install.sh index e6a3edb..e9bb4a9 100755 --- a/install.sh +++ b/install.sh @@ -44,12 +44,12 @@ install_nvm_from_git() { mkdir -p "$NVM_DIR" git clone "$NVM_SOURCE" "$NVM_DIR" fi - cd $NVM_DIR && git checkout v0.12.1 && git branch -D master || true + cd $NVM_DIR && git checkout v0.12.2 && git branch -D master || true } install_nvm_as_script() { if [ -z "$NVM_SOURCE" ]; then - NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.12.1/nvm.sh" + NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.12.2/nvm.sh" fi # Downloading to $NVM_DIR diff --git a/nvm.sh b/nvm.sh index 272c995..6de38c1 100644 --- a/nvm.sh +++ b/nvm.sh @@ -723,7 +723,7 @@ nvm() { nvm_version $2 ;; "--version" ) - echo "0.12.1" + echo "0.12.2" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version > /dev/null 2>&1 diff --git a/package.json b/package.json index ebc7431..f74b1c4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.12.1", + "version": "0.12.2", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 6dc602b52117833a552a4688c954a74b663e65f8 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 1 Aug 2014 01:24:28 -0700 Subject: [PATCH 0108/1426] Ensure that `nvm ls node` doesn't return "node_modules", for example. --- nvm.sh | 2 +- ...ode\" should return a nonzero exit code when not found" | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100755 "test/fast/Listing versions/Running \"nvm ls node\" should return a nonzero exit code when not found" diff --git a/nvm.sh b/nvm.sh index 6de38c1..2ef65bd 100644 --- a/nvm.sh +++ b/nvm.sh @@ -196,7 +196,7 @@ nvm_ls() { PATTERN="$PATTERN." fi VERSIONS=`find "$NVM_DIR/" -maxdepth 1 -type d -name "$PATTERN*" -exec basename '{}' ';' \ - | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n | \grep -v '^ *\.'` + | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n | \grep -v '^ *\.' | \grep -e '^v'` fi if [ -z "$VERSIONS" ]; then echo "N/A" diff --git "a/test/fast/Listing versions/Running \"nvm ls node\" should return a nonzero exit code when not found" "b/test/fast/Listing versions/Running \"nvm ls node\" should return a nonzero exit code when not found" new file mode 100755 index 0000000..f7d68f7 --- /dev/null +++ "b/test/fast/Listing versions/Running \"nvm ls node\" should return a nonzero exit code when not found" @@ -0,0 +1,7 @@ + #!/bin/sh + +. ../../../nvm.sh + +nvm ls node +[ "$?" = "3" ] + From d5c0e941660e47eb0cf989831d11bb4cbe9068bf Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 1 Aug 2014 01:26:33 -0700 Subject: [PATCH 0109/1426] Adding `nvm exec` command. --- README.markdown | 6 +++++- nvm.sh | 23 +++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index 4c2995d..e99abfe 100644 --- a/README.markdown +++ b/README.markdown @@ -38,7 +38,7 @@ Often I also put in a line to use a specific version of node. ## Usage You can create an `.nvmrc` file containing version number in the project root directory (or any parent directory). -`nvm use`, `nvm install`, and `nvm run` will all respect an `.nvmrc` file. +`nvm use`, `nvm install`, `nvm exec`, and `nvm run` will all respect an `.nvmrc` file. To download, compile, and install the latest v0.10.x release of node, do this: @@ -52,6 +52,10 @@ Or you can just run it: nvm run 0.10 --version +Or, you can run any arbitrary command in the node environment: + + nvm exec 0.10 node --version + If you want to see what versions are installed: nvm ls diff --git a/nvm.sh b/nvm.sh index 2ef65bd..e9de28c 100644 --- a/nvm.sh +++ b/nvm.sh @@ -639,6 +639,29 @@ nvm() { echo "Running node $VERSION" NODE_PATH=$RUN_NODE_PATH $NVM_DIR/$VERSION/bin/node "$@" ;; + "exec" ) + shift + + local provided_version + provided_version=$1 + if [ -n "$provided_version" ]; then + VERSION=`nvm_version $provided_version` + if [ $VERSION = "N/A" ]; then + provided_version='' + nvm_rc_version + VERSION=`nvm_version $NVM_RC_VERSION` + else + shift + fi + fi + + if [ ! -d "$NVM_DIR/$VERSION" ]; then + echo "$VERSION version is not installed yet" >&2 + return 1 + fi + echo "Running node $VERSION" + NODE_VERSION=$VERSION $NVM_DIR/nvm-exec "$@" + ;; "ls" | "list" ) local NVM_LS_OUTPUT local NVM_LS_EXIT_CODE From 1fa2acf5a7d6ca5b7c657432d9860d81d76da049 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 2 Aug 2014 15:36:45 -0700 Subject: [PATCH 0110/1426] Adding nvm exec tests. --- .../Running \"nvm exec 0.x\" should work" | 13 +++++++++++++ ... \"nvm exec\" should pick up .nvmrc version" | 17 +++++++++++++++++ test/slow/nvm exec/setup_dir | 10 ++++++++++ test/slow/nvm exec/teardown_dir | 12 ++++++++++++ 4 files changed, 52 insertions(+) create mode 100755 "test/slow/nvm exec/Running \"nvm exec 0.x\" should work" create mode 100755 "test/slow/nvm exec/Running \"nvm exec\" should pick up .nvmrc version" create mode 100755 test/slow/nvm exec/setup_dir create mode 100755 test/slow/nvm exec/teardown_dir diff --git "a/test/slow/nvm exec/Running \"nvm exec 0.x\" should work" "b/test/slow/nvm exec/Running \"nvm exec 0.x\" should work" new file mode 100755 index 0000000..7798d79 --- /dev/null +++ "b/test/slow/nvm exec/Running \"nvm exec 0.x\" should work" @@ -0,0 +1,13 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +nvm use 0.10 +NPM_VERSION_TEN="$(npm --version)" + +nvm use 0.11.7 && [ "$(node --version)" = "v0.11.7" ] || die "\`nvm use\` failed!" + +[ "$(nvm exec 0.10 npm --version | tail -1)" = "$NPM_VERSION_TEN" ] || die "`nvm exec` failed to run with the correct version" + diff --git "a/test/slow/nvm exec/Running \"nvm exec\" should pick up .nvmrc version" "b/test/slow/nvm exec/Running \"nvm exec\" should pick up .nvmrc version" new file mode 100755 index 0000000..203cd9a --- /dev/null +++ "b/test/slow/nvm exec/Running \"nvm exec\" should pick up .nvmrc version" @@ -0,0 +1,17 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +nvm use 0.10.7 +NPM_VERSION_TEN="$(npm --version)" + +nvm use 0.11.7 && [ "$(node --version)" = "v0.11.7" ] || die "\`nvm use\` failed!" + +echo "0.10.7" > .nvmrc + +[ "$(nvm exec npm --version | tail -1)" = "$NPM_VERSION_TEN" ] || die "\`nvm exec\` failed to run with the .nvmrc version" + +[ "$(nvm exec npm --version | head -1)" = "Found '$PWD/.nvmrc' with version <0.10.7>" ] || die "\`nvm exec\` failed to print out the \"found in .nvmrc\" message" + diff --git a/test/slow/nvm exec/setup_dir b/test/slow/nvm exec/setup_dir new file mode 100755 index 0000000..a5fc4bc --- /dev/null +++ b/test/slow/nvm exec/setup_dir @@ -0,0 +1,10 @@ +#!/bin/sh + +. ../../../nvm.sh +nvm install 0.10.7 +nvm install 0.11.7 + +if [ -f ".nvmrc" ]; then + mv .nvmrc .nvmrc.bak +fi + diff --git a/test/slow/nvm exec/teardown_dir b/test/slow/nvm exec/teardown_dir new file mode 100755 index 0000000..a6b923c --- /dev/null +++ b/test/slow/nvm exec/teardown_dir @@ -0,0 +1,12 @@ +#!/bin/sh + +. ../../../nvm.sh +nvm uninstall v0.10.7 +nvm uninstall v0.11.7 + +rm .nvmrc + +if [ -f ".nvmrc.bak" ]; then + mv .nvmrc.bak .nvmrc +fi + From a703d3591f17247c9ee99cdd43bd63b0b88fc604 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 2 Aug 2014 19:22:53 -0700 Subject: [PATCH 0111/1426] Tweaking the readme description --- README.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index e99abfe..03805f8 100644 --- a/README.markdown +++ b/README.markdown @@ -52,7 +52,7 @@ Or you can just run it: nvm run 0.10 --version -Or, you can run any arbitrary command in the node environment: +Or, you can run any arbitrary command in a subshell with the desired version of node: nvm exec 0.10 node --version From 61709c1f97c462170c242d4528faa3231cb1fc89 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 2 Aug 2014 19:24:39 -0700 Subject: [PATCH 0112/1426] v0.13.0 --- README.markdown | 6 +++--- install.sh | 4 ++-- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.markdown b/README.markdown index 03805f8..d6cc43b 100644 --- a/README.markdown +++ b/README.markdown @@ -8,11 +8,11 @@ First you'll need to make sure your system has a c++ compiler. For OSX, XCode w To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.12.2/install.sh | bash + curl https://raw.githubusercontent.com/creationix/nvm/v0.13.0/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.12.2/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.13.0/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -167,7 +167,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.12.2/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.13.0/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin diff --git a/install.sh b/install.sh index e9bb4a9..74bc7f5 100755 --- a/install.sh +++ b/install.sh @@ -44,12 +44,12 @@ install_nvm_from_git() { mkdir -p "$NVM_DIR" git clone "$NVM_SOURCE" "$NVM_DIR" fi - cd $NVM_DIR && git checkout v0.12.2 && git branch -D master || true + cd $NVM_DIR && git checkout v0.13.0 && git branch -D master || true } install_nvm_as_script() { if [ -z "$NVM_SOURCE" ]; then - NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.12.2/nvm.sh" + NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.13.0/nvm.sh" fi # Downloading to $NVM_DIR diff --git a/nvm.sh b/nvm.sh index e9de28c..52bea15 100644 --- a/nvm.sh +++ b/nvm.sh @@ -746,7 +746,7 @@ nvm() { nvm_version $2 ;; "--version" ) - echo "0.12.2" + echo "0.13.0" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version > /dev/null 2>&1 diff --git a/package.json b/package.json index f74b1c4..01f680a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.12.2", + "version": "0.13.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From abdc3f3c21d3cc20f0471c506f1278224f46aaf9 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 7 Aug 2014 13:53:12 -0700 Subject: [PATCH 0113/1426] Run all fast tests without curl. --- .travis.yml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 1709004..c5581db 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,9 +10,13 @@ script: - NVM_DIR=$TRAVIS_BUILD_DIR make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin $SHELL env: - SHELL=sh TEST_SUITE=fast - - SHELL=dash TEST_SUITE=fast - - SHELL=bash TEST_SUITE=fast - - SHELL=zsh TEST_SUITE=fast - - SHELL=ksh TEST_SUITE=fast - - SHELL=sh TEST_SUITE=slow - SHELL=sh TEST_SUITE=fast WITHOUT_CURL=1 + - SHELL=dash TEST_SUITE=fast + - SHELL=dash TEST_SUITE=fast WITHOUT_CURL=1 + - SHELL=bash TEST_SUITE=fast + - SHELL=bash TEST_SUITE=fast WITHOUT_CURL=1 + - SHELL=zsh TEST_SUITE=fast + - SHELL=zsh TEST_SUITE=fast WITHOUT_CURL=1 + - SHELL=ksh TEST_SUITE=fast + - SHELL=ksh TEST_SUITE=fast WITHOUT_CURL=1 + - SHELL=sh TEST_SUITE=slow From 99c8b59a14751bb728d355c9d12dc89cf9705ec8 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 8 Aug 2014 11:48:13 -0700 Subject: [PATCH 0114/1426] Make sure that $ARGS is evaluated natively rather than as a single string argument. Fixes #494. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 52bea15..766c607 100644 --- a/nvm.sh +++ b/nvm.sh @@ -23,7 +23,7 @@ nvm_download() { -e 's/-s /-q /' \ -e 's/-o /-O /' \ -e 's/-C - /-c /') - wget $ARGS + eval wget $ARGS fi } From eef12cc2b38f911d21b765cf0aa3e5dd57ea536e Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 8 Aug 2014 11:48:54 -0700 Subject: [PATCH 0115/1426] v0.13.1 --- README.markdown | 6 +++--- install.sh | 4 ++-- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.markdown b/README.markdown index d6cc43b..7ba3e3b 100644 --- a/README.markdown +++ b/README.markdown @@ -8,11 +8,11 @@ First you'll need to make sure your system has a c++ compiler. For OSX, XCode w To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.13.0/install.sh | bash + curl https://raw.githubusercontent.com/creationix/nvm/v0.13.1/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.13.0/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.13.1/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -167,7 +167,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.13.0/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.13.1/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin diff --git a/install.sh b/install.sh index 74bc7f5..d7c6261 100755 --- a/install.sh +++ b/install.sh @@ -44,12 +44,12 @@ install_nvm_from_git() { mkdir -p "$NVM_DIR" git clone "$NVM_SOURCE" "$NVM_DIR" fi - cd $NVM_DIR && git checkout v0.13.0 && git branch -D master || true + cd $NVM_DIR && git checkout v0.13.1 && git branch -D master || true } install_nvm_as_script() { if [ -z "$NVM_SOURCE" ]; then - NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.13.0/nvm.sh" + NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.13.1/nvm.sh" fi # Downloading to $NVM_DIR diff --git a/nvm.sh b/nvm.sh index 766c607..fee0758 100644 --- a/nvm.sh +++ b/nvm.sh @@ -746,7 +746,7 @@ nvm() { nvm_version $2 ;; "--version" ) - echo "0.13.0" + echo "0.13.1" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version > /dev/null 2>&1 diff --git a/package.json b/package.json index 01f680a..505d62b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.13.0", + "version": "0.13.1", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From d341d5e5350451b94f679821ef1b7726a621a459 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 8 Aug 2014 12:16:22 -0700 Subject: [PATCH 0116/1426] Run all slow tests on all shells --- .travis.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.travis.yml b/.travis.yml index c5581db..ba1b1bc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,3 +20,10 @@ env: - SHELL=ksh TEST_SUITE=fast - SHELL=ksh TEST_SUITE=fast WITHOUT_CURL=1 - SHELL=sh TEST_SUITE=slow + - SHELL=sh TEST_SUITE=slow WITHOUT_CURL=1 + - SHELL=dash TEST_SUITE=slow + - SHELL=dash TEST_SUITE=slow WITHOUT_CURL=1 + - SHELL=bash TEST_SUITE=slow + - SHELL=bash TEST_SUITE=slow WITHOUT_CURL=1 + - SHELL=zsh TEST_SUITE=slow + - SHELL=zsh TEST_SUITE=slow WITHOUT_CURL=1 From 708ac80a5555b535a0bf3d1be2df6082cfe276da Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 15 Aug 2014 20:21:46 -0700 Subject: [PATCH 0117/1426] Properly replace the -I curl option for the --server-response wget option. --- install.sh | 2 +- nvm.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index d7c6261..53459f7 100755 --- a/install.sh +++ b/install.sh @@ -18,7 +18,7 @@ nvm_download() { # Emulate curl with wget ARGS=$(echo "$*" | sed -e 's/--progress-bar /--progress=bar /' \ -e 's/-L //' \ - -e 's/-I //' \ + -e 's/-I /--server-response /' \ -e 's/-s /-q /' \ -e 's/-o /-O /' \ -e 's/-C - /-c /') diff --git a/nvm.sh b/nvm.sh index fee0758..781f2b5 100644 --- a/nvm.sh +++ b/nvm.sh @@ -19,7 +19,7 @@ nvm_download() { # Emulate curl with wget ARGS=$(echo "$*" | sed -e 's/--progress-bar /--progress=bar /' \ -e 's/-L //' \ - -e 's/-I //' \ + -e 's/-I /--server-response /' \ -e 's/-s /-q /' \ -e 's/-o /-O /' \ -e 's/-C - /-c /') From d7849054f81627e02e5aabfbeddf38faa40fcf0f Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 15 Aug 2014 20:29:01 -0700 Subject: [PATCH 0118/1426] Apparently wget outputs to stderr, so let's make sure we're checking both stderr and stdout. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 781f2b5..aa46581 100644 --- a/nvm.sh +++ b/nvm.sh @@ -449,7 +449,7 @@ nvm() { tmpdir="$NVM_DIR/src" local tmptarball tmptarball="$tmpdir/node-$VERSION.tar.gz" - if [ "`nvm_download -s -I "$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" -o - | \grep '200 OK'`" != '' ]; then + if [ "`nvm_download -s -I "$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" -o - 2>&1 | \grep '200 OK'`" != '' ]; then tarball="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" sum=`nvm_download -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt -o - | \grep node-$VERSION.tar.gz | \awk '{print $1}'` elif [ "`nvm_download -s -I "$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" -o - | \grep '200 OK'`" != '' ]; then From 78a5e3fadf8552d8308e97ec0d3073c0671721fe Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 31 Jul 2014 19:27:58 -0700 Subject: [PATCH 0119/1426] Attempt to improve `nvm copy-packages` --- nvm.sh | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/nvm.sh b/nvm.sh index aa46581..5389b2d 100644 --- a/nvm.sh +++ b/nvm.sh @@ -726,17 +726,15 @@ nvm() { nvm help return 127 fi - VERSION=`nvm_version $2` + VERSION=$(nvm_version "$2") local ROOT - ROOT=`(nvm use $VERSION && npm -g root)` - local ROOTDEPTH - ROOTDEPTH=$((`echo $ROOT | sed 's/[^\/]//g'|wc -m` -1)) + ROOT=$(nvm use $VERSION && npm -g root) # declare local INSTALLS first, otherwise it doesn't work in zsh local INSTALLS - INSTALLS=`nvm use $VERSION > /dev/null && npm -g -p ll | \grep "$ROOT\/[^/]\+$" | cut -d '/' -f $(($ROOTDEPTH + 2)) | cut -d ":" -f 2 | \grep -v npm | tr "\n" " "` + INSTALLS=$(nvm use $VERSION > /dev/null && npm list --global --parseable --depth=0 2> /dev/null | tail -n +2 | grep -o -e '/[^/]*$' | cut -c 2- | xargs) - npm install -g ${INSTALLS[@]} + npm install -g --quiet $INSTALLS ;; "clear-cache" ) rm -f $NVM_DIR/v* 2>/dev/null From b8fe75e93a58662bd0b548eb3f61b6307a60210a Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 31 Jul 2014 19:46:08 -0700 Subject: [PATCH 0120/1426] Tests for `nvm copy-packages` --- test/slow/nvm copy-packages/setup_dir | 10 +++++++++ .../nvm copy-packages/should work as expected | 21 +++++++++++++++++++ test/slow/nvm copy-packages/teardown_dir | 12 +++++++++++ 3 files changed, 43 insertions(+) create mode 100755 test/slow/nvm copy-packages/setup_dir create mode 100755 test/slow/nvm copy-packages/should work as expected create mode 100755 test/slow/nvm copy-packages/teardown_dir diff --git a/test/slow/nvm copy-packages/setup_dir b/test/slow/nvm copy-packages/setup_dir new file mode 100755 index 0000000..c550f69 --- /dev/null +++ b/test/slow/nvm copy-packages/setup_dir @@ -0,0 +1,10 @@ +#!/bin/sh + +. ../../../nvm.sh +nvm install 0.10.28 +nvm install 0.10.29 + +if [ -f ".nvmrc" ]; then + mv .nvmrc .nvmrc.bak +fi + diff --git a/test/slow/nvm copy-packages/should work as expected b/test/slow/nvm copy-packages/should work as expected new file mode 100755 index 0000000..21f10df --- /dev/null +++ b/test/slow/nvm copy-packages/should work as expected @@ -0,0 +1,21 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +. ../../../nvm.sh + +nvm use 0.10.28 + +EXPECTED_PACKAGES="autoprefixer bower david eslint grunt-cli grunth-cli http-server jshint marked node-gyp npm recursive-blame uglify-js yo" + +npm install -g --quiet $EXPECTED_PACKAGES + +nvm use 0.10.29 +ORIGINAL_PACKAGES=$(npm list --global --parseable --depth=0 2> /dev/null | tail -n +2 | grep -o -e '/[^/]*$' | cut -c 2- | sort | uniq | xargs) + +nvm copy-packages 0.10.28 +FINAL_PACKAGES=$(npm list --global --parseable --depth=0 2> /dev/null | tail -n +2 | grep -o -e '/[^/]*$' | cut -c 2- | sort | uniq | xargs) + +[ "$FINAL_PACKAGES" = "$EXPECTED_PACKAGES" ] || die "final packages ($FINAL_PACKAGES) did not match expected packages ($EXPECTED_PACKAGES)" +[ "$ORIGINAL_PACKAGES" != "$FINAL_PACKAGES" ] || die "original packages matched final packages ($ORIGINAL_PACKAGES)" + diff --git a/test/slow/nvm copy-packages/teardown_dir b/test/slow/nvm copy-packages/teardown_dir new file mode 100755 index 0000000..1282eb4 --- /dev/null +++ b/test/slow/nvm copy-packages/teardown_dir @@ -0,0 +1,12 @@ +#!/bin/sh + +. ../../../nvm.sh +nvm uninstall v0.10.28 +nvm uninstall v0.10.29 + +rm -f .nvmrc + +if [ -f ".nvmrc.bak" ]; then + mv .nvmrc.bak .nvmrc +fi + From 9068dda1107328b87ac1b9c7fefaaffd0cc9297a Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 19 Aug 2014 01:53:39 -0700 Subject: [PATCH 0121/1426] Adding `nvm_version_dir` --- nvm.sh | 13 +++++++++++++ test/fast/Unit tests/nvm_version_dir | 11 +++++++++++ 2 files changed, 24 insertions(+) create mode 100755 test/fast/Unit tests/nvm_version_dir diff --git a/nvm.sh b/nvm.sh index 98e6228..67794cb 100644 --- a/nvm.sh +++ b/nvm.sh @@ -95,6 +95,19 @@ nvm_rc_version() { fi } +nvm_version_dir() { + local NVM_USE_NEW_DIR + NVM_USE_NEW_DIR="$1" + if [ -z "$NVM_USE_NEW_DIR" ] || [ "$NVM_USE_NEW_DIR" = "new" ]; then + echo "$NVM_DIR/versions" + elif [ "$NVM_USE_NEW_DIR" = "old" ]; then + echo "$NVM_DIR" + else + echo "unknown version dir" >&2 + return 3 + fi +} + nvm_version_path() { local VERSION VERSION="$1" diff --git a/test/fast/Unit tests/nvm_version_dir b/test/fast/Unit tests/nvm_version_dir new file mode 100755 index 0000000..fb070ce --- /dev/null +++ b/test/fast/Unit tests/nvm_version_dir @@ -0,0 +1,11 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +[ "$(nvm_version_dir)" = "$NVM_DIR/versions" ] || die '"nvm_version_dir" did not return new dir path' +[ "$(nvm_version_dir new)" = "$(nvm_version_dir)" ] || die '"nvm_version_dir new" did not return new dir path' +[ "$(nvm_version_dir old)" = "$NVM_DIR" ] || die '"nvm_version_dir old" did not return old dir path' +[ "$(nvm_version_dir foo 2>&1)" = "unknown version dir" ] || die '"nvm_version_dir foo" did not error out' + From a2da9abd6d3f9c7d77c64208519b5732e866b9ba Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 19 Aug 2014 01:56:34 -0700 Subject: [PATCH 0122/1426] Use nvm_version_dir in nvm_version_path --- nvm.sh | 5 +++-- test/fast/Unit tests/nvm_version_path | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/nvm.sh b/nvm.sh index 67794cb..8d8133f 100644 --- a/nvm.sh +++ b/nvm.sh @@ -112,9 +112,10 @@ nvm_version_path() { local VERSION VERSION="$1" if [ -z "$VERSION" ]; then - echo "$NVM_DIR" + echo "version is required" >&2 + return 3 elif [ ! -z "$VERSION" ]; then - echo "$NVM_DIR/$VERSION" + echo "$(nvm_version_dir old)/$VERSION" fi } diff --git a/test/fast/Unit tests/nvm_version_path b/test/fast/Unit tests/nvm_version_path index adb6338..ba38e37 100755 --- a/test/fast/Unit tests/nvm_version_path +++ b/test/fast/Unit tests/nvm_version_path @@ -4,6 +4,6 @@ die () { echo $@ ; exit 1; } . ../../../nvm.sh -[ "$(nvm_version_path)" = "$NVM_DIR" ] && -[ "$(nvm_version_path foo)" = "$NVM_DIR/foo" ] +[ "$(nvm_version_path foo)" = "$NVM_DIR/foo" ] || die '"nvm_version_path foo" did not return correct location' +[ "$(nvm_version_path 2>&1)" = "version is required" ] || die '"nvm_version_path" did not error out' From 986abbf5db7375bbfc10b22cd369517b712cb834 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 19 Aug 2014 00:55:54 -0700 Subject: [PATCH 0123/1426] Create nvm_version_path --- nvm.sh | 10 ++++++++++ test/fast/Unit tests/nvm_version_path | 9 +++++++++ 2 files changed, 19 insertions(+) create mode 100755 test/fast/Unit tests/nvm_version_path diff --git a/nvm.sh b/nvm.sh index 5389b2d..e297fe0 100644 --- a/nvm.sh +++ b/nvm.sh @@ -95,6 +95,16 @@ nvm_rc_version() { fi } +nvm_version_path() { + local VERSION + VERSION="$1" + if [ -z "$VERSION" ]; then + echo "$NVM_DIR" + elif [ ! -z "$VERSION" ]; then + echo "$NVM_DIR/$VERSION" + fi +} + # Expand a version using the version cache nvm_version() { local PATTERN diff --git a/test/fast/Unit tests/nvm_version_path b/test/fast/Unit tests/nvm_version_path new file mode 100755 index 0000000..adb6338 --- /dev/null +++ b/test/fast/Unit tests/nvm_version_path @@ -0,0 +1,9 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +[ "$(nvm_version_path)" = "$NVM_DIR" ] && +[ "$(nvm_version_path foo)" = "$NVM_DIR/foo" ] + From 213ff003d05b4cfd73f1c2464b404fca7831a5f7 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 19 Aug 2014 00:56:06 -0700 Subject: [PATCH 0124/1426] Use nvm_version_path everywhere possible. --- nvm.sh | 46 ++++++++++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/nvm.sh b/nvm.sh index e297fe0..856bebd 100644 --- a/nvm.sh +++ b/nvm.sh @@ -197,7 +197,7 @@ nvm_ls() { fi # If it looks like an explicit version, don't do anything funny if [ `expr "$PATTERN" : "v[0-9]*\.[0-9]*\.[0-9]*$"` != 0 ]; then - if [ -d "$NVM_DIR/$PATTERN" ]; then + if [ -d "$(nvm_version_path "$PATTERN")" ]; then VERSIONS="$PATTERN" fi else @@ -270,7 +270,7 @@ nvm_print_versions() { echo "$1" | while read VERSION; do if [ "$VERSION" = "$NVM_CURRENT" ]; then FORMAT='\033[0;32m-> %9s\033[0m' - elif [ -d "$NVM_DIR/$VERSION" ]; then + elif [ -d "$(nvm_version_path "$VERSION")" ]; then FORMAT='\033[0;34m%12s\033[0m' elif [ "$VERSION" = "system" ]; then FORMAT='\033[0;33m%12s\033[0m' @@ -391,7 +391,7 @@ nvm() { fi provided_version="$NVM_RC_VERSION" fi - [ -d "$NVM_DIR/$provided_version" ] && echo "$provided_version is already installed." >&2 && return + [ -d "$(nvm_version_path "$provided_version")" ] && echo "$provided_version is already installed." >&2 && return VERSION=`nvm_remote_version $provided_version` ADDITIONAL_PARAMETERS='' @@ -404,7 +404,7 @@ nvm() { shift done - if [ -d "$NVM_DIR/$VERSION" ]; then + if [ -d "$(nvm_version_path "$VERSION")" ]; then echo "$VERSION is already installed." >&2 nvm use "$VERSION" return $? @@ -433,7 +433,7 @@ nvm() { nvm_checksum "$tmptarball" $sum && \ tar -xzf "$tmptarball" -C "$tmpdir" --strip-components 1 && \ rm -f "$tmptarball" && \ - mv "$tmpdir" "$NVM_DIR/$VERSION" + mv "$tmpdir" "$(nvm_version_path "$VERSION")" ) then nvm use $VERSION @@ -472,9 +472,9 @@ nvm() { nvm_checksum "$tmptarball" $sum && \ tar -xzf "$tmptarball" -C "$tmpdir" && \ cd "$tmpdir/node-$VERSION" && \ - ./configure --prefix="$NVM_DIR/$VERSION" $ADDITIONAL_PARAMETERS && \ + ./configure --prefix="$(nvm_version_path "$VERSION")" $ADDITIONAL_PARAMETERS && \ $make $MAKE_CXX && \ - rm -f "$NVM_DIR/$VERSION" 2>/dev/null && \ + rm -f "$(nvm_version_path "$VERSION")" 2>/dev/null && \ $make $MAKE_CXX install ) then @@ -506,7 +506,7 @@ nvm() { return 1 fi VERSION=`nvm_version $PATTERN` - if [ ! -d $NVM_DIR/$VERSION ]; then + if [ ! -d "$(nvm_version_path "$VERSION")" ]; then echo "$VERSION version is not installed..." >&2 return; fi @@ -518,7 +518,7 @@ nvm() { "$NVM_DIR/src/node-$VERSION.tar.gz" \ "$NVM_DIR/bin/node-${t}" \ "$NVM_DIR/bin/node-${t}.tar.gz" \ - "$NVM_DIR/$VERSION" 2>/dev/null + "$(nvm_version_path "$VERSION")" 2>/dev/null echo "Uninstalled node $VERSION" # Rm any aliases that point to uninstalled version. @@ -579,32 +579,34 @@ nvm() { if [ -z "$VERSION" ]; then VERSION=`nvm_version $2` fi - if [ ! -d "$NVM_DIR/$VERSION" ]; then + local NVM_VERSION_DIR + NVM_VERSION_DIR="$(nvm_version_path "$VERSION")" + if [ ! -d "$NVM_VERSION_DIR" ]; then echo "$VERSION version is not installed yet" >&2 return 1 fi # Strip other version from PATH PATH=`nvm_strip_path "$PATH" "/bin"` # Prepend current version - PATH=`nvm_prepend_path "$PATH" "$NVM_DIR/$VERSION/bin"` + PATH=`nvm_prepend_path "$PATH" "$NVM_VERSION_DIR/bin"` if [ -z "$MANPATH" ]; then MANPATH=$(manpath) fi # Strip other version from MANPATH MANPATH=`nvm_strip_path "$MANPATH" "/share/man"` # Prepend current version - MANPATH=`nvm_prepend_path "$MANPATH" "$NVM_DIR/$VERSION/share/man"` + MANPATH=`nvm_prepend_path "$MANPATH" "$NVM_VERSION_DIR/share/man"` # Strip other version from NODE_PATH NODE_PATH=`nvm_strip_path "$NODE_PATH" "/lib/node_modules"` # Prepend current version - NODE_PATH=`nvm_prepend_path "$NODE_PATH" "$NVM_DIR/$VERSION/lib/node_modules"` + NODE_PATH=`nvm_prepend_path "$NODE_PATH" "$NVM_VERSION_DIR/lib/node_modules"` export PATH hash -r export MANPATH export NODE_PATH - export NVM_PATH="$NVM_DIR/$VERSION/lib/node" - export NVM_BIN="$NVM_DIR/$VERSION/bin" - rm -f "$NVM_DIR/current" && ln -s "$NVM_DIR/$VERSION" "$NVM_DIR/current" + export NVM_PATH="$NVM_VERSION_DIR/lib/node" + export NVM_BIN="$NVM_VERSION_DIR/bin" + rm -f "$NVM_DIR/current" && ln -s "$NVM_VERSION_DIR" "$NVM_DIR/current" echo "Now using node $VERSION" ;; "run" ) @@ -640,14 +642,16 @@ nvm() { fi fi - if [ ! -d "$NVM_DIR/$VERSION" ]; then + local NVM_VERSION_DIR + NVM_VERSION_DIR=$(nvm_version_path "$VERSION") + if [ ! -d "$NVM_VERSION_DIR" ]; then echo "$VERSION version is not installed yet" >&2 return 1 fi RUN_NODE_PATH=`nvm_strip_path "$NODE_PATH" "/lib/node_modules"` - RUN_NODE_PATH=`nvm_prepend_path "$NODE_PATH" "$NVM_DIR/$VERSION/lib/node_modules"` + RUN_NODE_PATH=`nvm_prepend_path "$NODE_PATH" "$NVM_VERSION_DIR/lib/node_modules"` echo "Running node $VERSION" - NODE_PATH=$RUN_NODE_PATH $NVM_DIR/$VERSION/bin/node "$@" + NODE_PATH=$RUN_NODE_PATH $NVM_VERSION_DIR/bin/node "$@" ;; "exec" ) shift @@ -665,7 +669,9 @@ nvm() { fi fi - if [ ! -d "$NVM_DIR/$VERSION" ]; then + local NVM_VERSION_DIR + NVM_VERSION_DIR=$(nvm_version_path "$VERSION") + if [ ! -d "$NVM_VERSION_DIR" ]; then echo "$VERSION version is not installed yet" >&2 return 1 fi From 8fe677a6443cd959e5b1ed1fc29cc9025719c626 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 20 Aug 2014 00:01:06 -0700 Subject: [PATCH 0125/1426] Add `nvm_version_greater` --- nvm.sh | 10 +++++++++- test/fast/Unit tests/nvm_version_greater | 10 ++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100755 test/fast/Unit tests/nvm_version_greater diff --git a/nvm.sh b/nvm.sh index 8d8133f..8860919 100644 --- a/nvm.sh +++ b/nvm.sh @@ -95,6 +95,14 @@ nvm_rc_version() { fi } +nvm_version_greater() { + local LHS + LHS=$(echo "$1" | awk -F. '{for (i=1;i<=NF;++i) printf "%010d",$i}') + local RHS + RHS=$(echo "$2" | awk -F. '{for (i=1;i<=NF;++i) printf "%010d",$i}') + [ $LHS \> $RHS ]; +} + nvm_version_dir() { local NVM_USE_NEW_DIR NVM_USE_NEW_DIR="$1" @@ -777,7 +785,7 @@ nvm() { echo "0.13.1" ;; "unload" ) - unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version > /dev/null 2>&1 + unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version nvm_version_greater > /dev/null 2>&1 unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_DIR NVM_CD_FLAGS > /dev/null 2>&1 ;; * ) diff --git a/test/fast/Unit tests/nvm_version_greater b/test/fast/Unit tests/nvm_version_greater new file mode 100755 index 0000000..8f8f551 --- /dev/null +++ b/test/fast/Unit tests/nvm_version_greater @@ -0,0 +1,10 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +nvm_version_greater 0.10.0 0.2.12 || die '"nvm_version_greater 0.10.0 0.2.12" did not return true' +! nvm_version_greater 0.10.0 0.20.12 || die '"nvm_version_greater 0.10.0 0.20.12" returned true' +! nvm_version_greater 0.10.0 0.10.0 || die '"nvm_version_greater" returned false for the same two versions' + From 0a695c5d2a85c0613ea088bd9ebb7acaae95fa77 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 20 Aug 2014 00:18:29 -0700 Subject: [PATCH 0126/1426] Modify nvm_version_path to use nvm_version_greater. --- nvm.sh | 4 +++- test/fast/Unit tests/nvm_version_path | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 8860919..f5216b1 100644 --- a/nvm.sh +++ b/nvm.sh @@ -122,8 +122,10 @@ nvm_version_path() { if [ -z "$VERSION" ]; then echo "version is required" >&2 return 3 - elif [ ! -z "$VERSION" ]; then + elif nvm_version_greater 0.12.0 "$VERSION"; then echo "$(nvm_version_dir old)/$VERSION" + else + echo "$(nvm_version_dir new)/$VERSION" fi } diff --git a/test/fast/Unit tests/nvm_version_path b/test/fast/Unit tests/nvm_version_path index ba38e37..b9fa2e5 100755 --- a/test/fast/Unit tests/nvm_version_path +++ b/test/fast/Unit tests/nvm_version_path @@ -6,4 +6,6 @@ die () { echo $@ ; exit 1; } [ "$(nvm_version_path foo)" = "$NVM_DIR/foo" ] || die '"nvm_version_path foo" did not return correct location' [ "$(nvm_version_path 2>&1)" = "version is required" ] || die '"nvm_version_path" did not error out' +[ "$(nvm_version_path v0.11.0)" = "$NVM_DIR/v0.11.0" ] || die 'old version has the wrong path' +[ "$(nvm_version_path v0.12.0)" = "$NVM_DIR/versions/v0.12.0" ] || die 'new version has the wrong path' From 65c2435418850731dd3d0a0a4762a5285f566898 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 20 Aug 2014 00:37:38 -0700 Subject: [PATCH 0127/1426] Making sure that versions are backed up when running tests. --- test/fast/setup_dir | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/fast/setup_dir b/test/fast/setup_dir index 64e097c..5e2a208 100755 --- a/test/fast/setup_dir +++ b/test/fast/setup_dir @@ -9,5 +9,8 @@ for SRC in v* src alias; do [ -e "$SRC" ] && mv "$SRC" bak done + if [ -d versions ]; then + mv versions bak + fi true ) From 5dd2d7e5d429397a89eb27afec3394ae30f9a1d6 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 20 Aug 2014 00:42:50 -0700 Subject: [PATCH 0128/1426] Make `nvm ls` support listing the "versions" directory when it's present. --- nvm.sh | 9 +++++++-- ...ould list versions in the \"versions\" directory" | 12 ++++++++++++ test/fast/Listing versions/teardown | 1 + 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100755 "test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" diff --git a/nvm.sh b/nvm.sh index f5216b1..9e13892 100644 --- a/nvm.sh +++ b/nvm.sh @@ -229,8 +229,13 @@ nvm_ls() { if [ `expr "$PATTERN" : "v[0-9]*\.[0-9]*$"` != 0 ]; then PATTERN="$PATTERN." fi - VERSIONS=`find "$NVM_DIR/" -maxdepth 1 -type d -name "$PATTERN*" -exec basename '{}' ';' \ - | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n | \grep -v '^ *\.' | \grep -e '^v'` + if [ -d "$(nvm_version_dir new)" ]; then + VERSIONS=`find "$(nvm_version_dir new)/" "$(nvm_version_dir old)/" -maxdepth 1 -type d -name "$PATTERN*" -exec basename '{}' ';' \ + | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n | \grep -v '^ *\.' | \grep -e '^v'` + else + VERSIONS=`find "$(nvm_version_dir old)/" -maxdepth 1 -type d -name "$PATTERN*" -exec basename '{}' ';' \ + | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n | \grep -v '^ *\.' | \grep -e '^v'` + fi fi if [ -z "$VERSIONS" ]; then echo "N/A" diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" "b/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" new file mode 100755 index 0000000..eb8f2ba --- /dev/null +++ "b/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" @@ -0,0 +1,12 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +mkdir -p ../../../versions/v0.12.1 +mkdir ../../../v0.1.3 + +. ../../../nvm.sh + +nvm ls 0.12 | grep v0.12.1 || die '"nvm ls" did not list a version in the versions/ directory' +nvm ls 0.1 | grep v0.1.3 || die '"nvm ls" did not list a version not in the versions/ directory' + diff --git a/test/fast/Listing versions/teardown b/test/fast/Listing versions/teardown index 191d12b..a8fc501 100644 --- a/test/fast/Listing versions/teardown +++ b/test/fast/Listing versions/teardown @@ -7,5 +7,6 @@ rmdir ../../../v0.2.3 rmdir ../../../v0.3.1 rmdir ../../../v0.3.3 rmdir ../../../v0.3.9 +rmdir ../../../versions unalias nvm_has_system_node From 37477359802073d8c807a9662cce43cd17d53378 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 20 Aug 2014 00:50:15 -0700 Subject: [PATCH 0129/1426] Make sure `nvm clear-cache` clears the versions directory as well. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 9e13892..6e9da50 100644 --- a/nvm.sh +++ b/nvm.sh @@ -782,7 +782,7 @@ nvm() { npm install -g --quiet $INSTALLS ;; "clear-cache" ) - rm -f $NVM_DIR/v* 2>/dev/null + rm -f $NVM_DIR/v* "$(nvm_version_dir)" 2>/dev/null echo "Cache cleared." ;; "version" ) From 938feca6a96dd63afb063ce0e8574691600bb165 Mon Sep 17 00:00:00 2001 From: egilkh Date: Wed, 20 Aug 2014 15:09:40 +0200 Subject: [PATCH 0130/1426] Should escape grep in copy-packages. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 856bebd..98e6228 100644 --- a/nvm.sh +++ b/nvm.sh @@ -748,7 +748,7 @@ nvm() { # declare local INSTALLS first, otherwise it doesn't work in zsh local INSTALLS - INSTALLS=$(nvm use $VERSION > /dev/null && npm list --global --parseable --depth=0 2> /dev/null | tail -n +2 | grep -o -e '/[^/]*$' | cut -c 2- | xargs) + INSTALLS=$(nvm use $VERSION > /dev/null && npm list --global --parseable --depth=0 2> /dev/null | tail -n +2 | \grep -o -e '/[^/]*$' | cut -c 2- | xargs) npm install -g --quiet $INSTALLS ;; From 273f9d497a1bc9f758931cff0f9b41970ee34b26 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 21 Aug 2014 01:35:03 -0700 Subject: [PATCH 0131/1426] Adding unit tests for nvm_ls_current. Relates to #487. --- test/fast/Unit tests/nvm_ls_current | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100755 test/fast/Unit tests/nvm_ls_current diff --git a/test/fast/Unit tests/nvm_ls_current b/test/fast/Unit tests/nvm_ls_current new file mode 100755 index 0000000..c475157 --- /dev/null +++ b/test/fast/Unit tests/nvm_ls_current @@ -0,0 +1,28 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +return_zero () { return 0; } + +[ "$( (nvm deactivate > /dev/null 2>&1) && nvm_ls_current)" = "system" ] || die 'when deactivated, did not return "system"' + +TEST_PWD=$(pwd) +TEST_DIR="$TEST_PWD/nvm_ls_current_tmp" +rm -rf "$TEST_DIR" +mkdir "$TEST_DIR" +ln -s "$(which which)" "$TEST_DIR/which" +ln -s "$(which dirname)" "$TEST_DIR/dirname" + +[ "$(PATH="$TEST_DIR" nvm_ls_current)" = "none" ] || die 'when node not installed, nvm_ls_current did not return "none"' +[ "@$(PATH="$TEST_DIR" nvm_ls_current 2> /dev/stdout 1> /dev/null)@" = "@@" ] || die 'when node not installed, nvm_ls_current returned error output' + +echo "#!/bin/bash" > "$TEST_DIR/node" +echo "echo 'VERSION FOO!'" > "$TEST_DIR/node" +chmod a+x "$TEST_DIR/node" + +[ "$(alias nvm_tree_contains_path='return_zero' && PATH="$TEST_DIR" nvm_ls_current)" = "VERSION FOO!" ] || die 'when activated, did not return nvm node version' + +rm -rf "$TEST_DIR" + From 150aea21ec8ebff2ebb1cc2153f8f69e5aad1caa Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 21 Aug 2014 16:51:24 -0700 Subject: [PATCH 0132/1426] Fixes #487. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index d588e1a..500e472 100644 --- a/nvm.sh +++ b/nvm.sh @@ -201,7 +201,7 @@ nvm_binary_available() { nvm_ls_current() { local NODE_PATH - NODE_PATH="$(which node)" + NODE_PATH="$(which node 2> /dev/null)" if [ $? -ne 0 ]; then echo 'none' elif nvm_tree_contains_path "$NVM_DIR" "$NODE_PATH"; then From f130d02efcceb1c3eefabf80b81f53a958061193 Mon Sep 17 00:00:00 2001 From: Hiroshi IKEGAMI Date: Fri, 22 Aug 2014 10:59:11 +0900 Subject: [PATCH 0133/1426] Fixed `nvm_version_greater` has syntax error in zsh-buildin-command `[` --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 6e9da50..bea76ee 100644 --- a/nvm.sh +++ b/nvm.sh @@ -100,7 +100,7 @@ nvm_version_greater() { LHS=$(echo "$1" | awk -F. '{for (i=1;i<=NF;++i) printf "%010d",$i}') local RHS RHS=$(echo "$2" | awk -F. '{for (i=1;i<=NF;++i) printf "%010d",$i}') - [ $LHS \> $RHS ]; + [ $LHS -gt $RHS ]; } nvm_version_dir() { From 70ac1e7fa44cdee533e889008a5783efaae1fa26 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 21 Aug 2014 22:40:18 -0700 Subject: [PATCH 0134/1426] Fix tests so that they fail in zsh (for #505) --- test/fast/Unit tests/nvm_version_greater | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/fast/Unit tests/nvm_version_greater b/test/fast/Unit tests/nvm_version_greater index 8f8f551..78dfb73 100755 --- a/test/fast/Unit tests/nvm_version_greater +++ b/test/fast/Unit tests/nvm_version_greater @@ -5,6 +5,6 @@ die () { echo $@ ; exit 1; } . ../../../nvm.sh nvm_version_greater 0.10.0 0.2.12 || die '"nvm_version_greater 0.10.0 0.2.12" did not return true' -! nvm_version_greater 0.10.0 0.20.12 || die '"nvm_version_greater 0.10.0 0.20.12" returned true' -! nvm_version_greater 0.10.0 0.10.0 || die '"nvm_version_greater" returned false for the same two versions' +nvm_version_greater 0.10.0 0.20.12 && die '"nvm_version_greater 0.10.0 0.20.12" returned true' +nvm_version_greater 0.10.0 0.10.0 && die '"nvm_version_greater" returned false for the same two versions' From b59ecb9e11d9e74431b9a7140153d5fe669d13f5 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 21 Aug 2014 22:54:26 -0700 Subject: [PATCH 0135/1426] Make sure the new `versions` directory is filtered out of nvm_ls output (in zsh). --- nvm.sh | 2 +- ...ning \"nvm ls\" should filter out \"versions\"" | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100755 "test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" diff --git a/nvm.sh b/nvm.sh index bea76ee..858b0cc 100644 --- a/nvm.sh +++ b/nvm.sh @@ -231,7 +231,7 @@ nvm_ls() { fi if [ -d "$(nvm_version_dir new)" ]; then VERSIONS=`find "$(nvm_version_dir new)/" "$(nvm_version_dir old)/" -maxdepth 1 -type d -name "$PATTERN*" -exec basename '{}' ';' \ - | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n | \grep -v '^ *\.' | \grep -e '^v'` + | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n | \grep -v '^ *\.' | \grep -e '^v' | \grep -v -e '^versions$'` else VERSIONS=`find "$(nvm_version_dir old)/" -maxdepth 1 -type d -name "$PATTERN*" -exec basename '{}' ';' \ | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n | \grep -v '^ *\.' | \grep -e '^v'` diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" "b/test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" new file mode 100755 index 0000000..c9858df --- /dev/null +++ "b/test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" @@ -0,0 +1,14 @@ +#!/bin/sh + +mkdir ../../../v0.1.3 +mkdir ../../../v0.2.3 + +. ../../../nvm.sh + +mkdir ../../../versions + +[ -z "$(nvm ls | \grep 'versions')" ] +# The result should contain only the appropriate version numbers. + +rmdir ../../../versions + From 1c2c4788a25767d1675901559951b90e0abac53d Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 21 Aug 2014 23:42:51 -0700 Subject: [PATCH 0136/1426] Fixing nvm_version_greater tests. Relates to #505, #506. --- test/fast/Unit tests/nvm_version_greater | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/test/fast/Unit tests/nvm_version_greater b/test/fast/Unit tests/nvm_version_greater index 78dfb73..63f5800 100755 --- a/test/fast/Unit tests/nvm_version_greater +++ b/test/fast/Unit tests/nvm_version_greater @@ -5,6 +5,12 @@ die () { echo $@ ; exit 1; } . ../../../nvm.sh nvm_version_greater 0.10.0 0.2.12 || die '"nvm_version_greater 0.10.0 0.2.12" did not return true' -nvm_version_greater 0.10.0 0.20.12 && die '"nvm_version_greater 0.10.0 0.20.12" returned true' -nvm_version_greater 0.10.0 0.10.0 && die '"nvm_version_greater" returned false for the same two versions' + +if nvm_version_greater 0.10.0 0.20.12; then + die '"nvm_version_greater 0.10.0 0.20.12" returned true' +fi + +if nvm_version_greater 0.10.0 0.10.0; then + die '"nvm_version_greater" returned false for the same two versions' +fi From 6e6c5c4e2af96fef80b9909e805de15a7ec4a527 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 21 Aug 2014 17:19:43 -0700 Subject: [PATCH 0137/1426] Removing an invalid option to `touch` from this test. --- test/fast/Unit tests/nvm_tree_contains_path | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/fast/Unit tests/nvm_tree_contains_path b/test/fast/Unit tests/nvm_tree_contains_path index 0ddfb86..278612a 100755 --- a/test/fast/Unit tests/nvm_tree_contains_path +++ b/test/fast/Unit tests/nvm_tree_contains_path @@ -11,9 +11,9 @@ die () { echo $@ ; cleanup; exit 1; } . ../../../nvm.sh mkdir -p tmp -touch -p tmp/node +touch tmp/node mkdir -p tmp2 -touch -p tmp2/node +touch tmp2/node nvm_tree_contains_path tmp tmp/node || die '"tmp" should contain "tmp/node"' From 5c7f08843d60333c50b8f68b488916834096af35 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 21 Aug 2014 17:15:53 -0700 Subject: [PATCH 0138/1426] Add error checking to nvm_tree_contains_path --- nvm.sh | 6 ++++++ test/fast/Unit tests/nvm_tree_contains_path | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/nvm.sh b/nvm.sh index 858b0cc..d588e1a 100644 --- a/nvm.sh +++ b/nvm.sh @@ -58,6 +58,12 @@ nvm_tree_contains_path() { tree="$1" local node_path node_path="$2" + + if [ "@$tree@" = "@@" ] || [ "@$node_path@" = "@@" ]; then + >&2 echo "both the tree and the node path are required" + return 2 + fi + local pathdir pathdir=$(dirname "$node_path") while [ "$pathdir" != "" ] && [ "$pathdir" != "." ] && [ "$pathdir" != "/" ] && [ "$pathdir" != "$tree" ]; do diff --git a/test/fast/Unit tests/nvm_tree_contains_path b/test/fast/Unit tests/nvm_tree_contains_path index 278612a..a4ca09e 100755 --- a/test/fast/Unit tests/nvm_tree_contains_path +++ b/test/fast/Unit tests/nvm_tree_contains_path @@ -15,6 +15,11 @@ touch tmp/node mkdir -p tmp2 touch tmp2/node +[ "$(nvm_tree_contains_path 2>&1)" = "both the tree and the node path are required" ] || die 'incorrect error message with no args' +[ "$(nvm_tree_contains_path > /dev/null 2>&1 ; echo $?)" = "2" ] || die 'incorrect error code with no args' +[ "$(nvm_tree_contains_path tmp 2>&1)" = "both the tree and the node path are required" ] || die 'incorrect error message with one arg' +[ "$(nvm_tree_contains_path > /dev/null 2>&1 ; echo $?)" = "2" ] || die 'incorrect error code with one arg' + nvm_tree_contains_path tmp tmp/node || die '"tmp" should contain "tmp/node"' nvm_tree_contains_path tmp tmp2/node && die '"tmp" should not contain "tmp2/node"' From 56c40cfa3cd17c37c1c7f56fe19580beb8e35db7 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 22 Aug 2014 02:19:56 -0700 Subject: [PATCH 0139/1426] Don't try to copy `npm` itself with `nvm copy-packages`. Fixes #504. --- nvm.sh | 2 +- test/slow/nvm copy-packages/should work as expected | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/nvm.sh b/nvm.sh index 7f734fe..50e2586 100644 --- a/nvm.sh +++ b/nvm.sh @@ -791,7 +791,7 @@ nvm() { # declare local INSTALLS first, otherwise it doesn't work in zsh local INSTALLS - INSTALLS=$(nvm use $VERSION > /dev/null && npm list --global --parseable --depth=0 2> /dev/null | tail -n +2 | \grep -o -e '/[^/]*$' | cut -c 2- | xargs) + INSTALLS=$(nvm use $VERSION > /dev/null && npm list --global --parseable --depth=0 2> /dev/null | tail -n +2 | \grep -o -e '/[^/]*$' | cut -c 2- | \grep -v npm | xargs) npm install -g --quiet $INSTALLS ;; diff --git a/test/slow/nvm copy-packages/should work as expected b/test/slow/nvm copy-packages/should work as expected index 21f10df..2ba3efc 100755 --- a/test/slow/nvm copy-packages/should work as expected +++ b/test/slow/nvm copy-packages/should work as expected @@ -6,15 +6,15 @@ die () { echo "$@" ; exit 1; } nvm use 0.10.28 -EXPECTED_PACKAGES="autoprefixer bower david eslint grunt-cli grunth-cli http-server jshint marked node-gyp npm recursive-blame uglify-js yo" +EXPECTED_PACKAGES="autoprefixer bower david eslint grunt-cli grunth-cli http-server jshint marked node-gyp recursive-blame uglify-js yo" npm install -g --quiet $EXPECTED_PACKAGES nvm use 0.10.29 -ORIGINAL_PACKAGES=$(npm list --global --parseable --depth=0 2> /dev/null | tail -n +2 | grep -o -e '/[^/]*$' | cut -c 2- | sort | uniq | xargs) +ORIGINAL_PACKAGES=$(npm list --global --parseable --depth=0 2> /dev/null | tail -n +2 | \grep -o -e '/[^/]*$' | cut -c 2- | \grep -v npm | sort | uniq | xargs) nvm copy-packages 0.10.28 -FINAL_PACKAGES=$(npm list --global --parseable --depth=0 2> /dev/null | tail -n +2 | grep -o -e '/[^/]*$' | cut -c 2- | sort | uniq | xargs) +FINAL_PACKAGES=$(npm list --global --parseable --depth=0 2> /dev/null | tail -n +2 | \grep -o -e '/[^/]*$' | cut -c 2- | \grep -v npm | sort | uniq | xargs) [ "$FINAL_PACKAGES" = "$EXPECTED_PACKAGES" ] || die "final packages ($FINAL_PACKAGES) did not match expected packages ($EXPECTED_PACKAGES)" [ "$ORIGINAL_PACKAGES" != "$FINAL_PACKAGES" ] || die "original packages matched final packages ($ORIGINAL_PACKAGES)" From 4b3d6f1760b3e3e867d892360cee36622995997c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 22 Aug 2014 02:44:04 -0700 Subject: [PATCH 0140/1426] Properly pass a space-separated list of packages to `npm install` Fixes #490. --- nvm.sh | 2 +- test/slow/nvm copy-packages/should work as expected | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 50e2586..dd4ea74 100644 --- a/nvm.sh +++ b/nvm.sh @@ -793,7 +793,7 @@ nvm() { local INSTALLS INSTALLS=$(nvm use $VERSION > /dev/null && npm list --global --parseable --depth=0 2> /dev/null | tail -n +2 | \grep -o -e '/[^/]*$' | cut -c 2- | \grep -v npm | xargs) - npm install -g --quiet $INSTALLS + echo "$INSTALLS" | xargs npm install -g --quiet ;; "clear-cache" ) rm -f $NVM_DIR/v* "$(nvm_version_dir)" 2>/dev/null diff --git a/test/slow/nvm copy-packages/should work as expected b/test/slow/nvm copy-packages/should work as expected index 2ba3efc..66859eb 100755 --- a/test/slow/nvm copy-packages/should work as expected +++ b/test/slow/nvm copy-packages/should work as expected @@ -8,7 +8,7 @@ nvm use 0.10.28 EXPECTED_PACKAGES="autoprefixer bower david eslint grunt-cli grunth-cli http-server jshint marked node-gyp recursive-blame uglify-js yo" -npm install -g --quiet $EXPECTED_PACKAGES +echo "$EXPECTED_PACKAGES" | xargs npm install -g --quiet nvm use 0.10.29 ORIGINAL_PACKAGES=$(npm list --global --parseable --depth=0 2> /dev/null | tail -n +2 | \grep -o -e '/[^/]*$' | cut -c 2- | \grep -v npm | sort | uniq | xargs) From 814319d7c087319ce1c01378053cb3fbfd768fdf Mon Sep 17 00:00:00 2001 From: Kevin Wang Date: Tue, 26 Aug 2014 23:52:53 -0500 Subject: [PATCH 0141/1426] Make shasum the lowest priority checksum command. This fixes false "Checksums do not match" errors on systems where shasum is a symlink to sha256sum or otherwise. --- nvm.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index 500e472..71cbd9b 100644 --- a/nvm.sh +++ b/nvm.sh @@ -278,12 +278,12 @@ nvm_ls_remote() { } nvm_checksum() { - if nvm_has "shasum"; then - checksum=$(shasum $1 | \awk '{print $1}') + if nvm_has "sha1sum"; then + checksum=$(sha1sum $1 | \awk '{print $1}') elif nvm_has "sha1"; then checksum=$(sha1 -q $1) else - checksum=$(sha1sum $1 | \awk '{print $1}') + checksum=$(shasum $1 | \awk '{print $1}') fi if [ "$checksum" = "$2" ]; then From 5048a783760c78c15a6eaf87e2c935bb50689dc4 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 26 Aug 2014 23:53:17 -0700 Subject: [PATCH 0142/1426] Add special handling for node v0.6.21-pre --- nvm.sh | 8 +++++++- ...nvm current\" should display current nvm environment." | 4 ++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 500e472..fd41235 100644 --- a/nvm.sh +++ b/nvm.sh @@ -205,7 +205,13 @@ nvm_ls_current() { if [ $? -ne 0 ]; then echo 'none' elif nvm_tree_contains_path "$NVM_DIR" "$NODE_PATH"; then - echo `node -v 2>/dev/null` + local VERSION + VERSION=`node -v 2>/dev/null` + if [ "$VERSION" = "v0.6.21-pre" ]; then + echo "v0.6.21" + else + echo "$VERSION" + fi else echo 'system' fi diff --git "a/test/slow/Running \"nvm current\" should display current nvm environment." "b/test/slow/Running \"nvm current\" should display current nvm environment." index de82ceb..bf43802 100755 --- "a/test/slow/Running \"nvm current\" should display current nvm environment." +++ "b/test/slow/Running \"nvm current\" should display current nvm environment." @@ -8,3 +8,7 @@ nvm install 0.10 [ "$(nvm current)" = "$(node -v)" ] || die "Failed to find current version: got \"$(nvm current)\", expected \"$(node -v)\"" +nvm install 0.6.21 +[ "$(node -v)" = "v0.6.21-pre" ] || die "v0.6.21-pre not installed with v0.6.21" +[ "$(nvm current)" = "v0.6.21" ] || die "v0.6.21-pre not reported as v0.6.21" + From f9769e40dd572ec22dfdcc2e2698d462542b0cb3 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 27 Aug 2014 00:49:30 -0700 Subject: [PATCH 0143/1426] v0.14.0 --- README.markdown | 6 +++--- install.sh | 4 ++-- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.markdown b/README.markdown index 7ba3e3b..a239d6d 100644 --- a/README.markdown +++ b/README.markdown @@ -8,11 +8,11 @@ First you'll need to make sure your system has a c++ compiler. For OSX, XCode w To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.13.1/install.sh | bash + curl https://raw.githubusercontent.com/creationix/nvm/v0.14.0/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.13.1/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.14.0/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -167,7 +167,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.13.1/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.14.0/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin diff --git a/install.sh b/install.sh index 53459f7..e1dbcde 100755 --- a/install.sh +++ b/install.sh @@ -44,12 +44,12 @@ install_nvm_from_git() { mkdir -p "$NVM_DIR" git clone "$NVM_SOURCE" "$NVM_DIR" fi - cd $NVM_DIR && git checkout v0.13.1 && git branch -D master || true + cd $NVM_DIR && git checkout v0.14.0 && git branch -D master || true } install_nvm_as_script() { if [ -z "$NVM_SOURCE" ]; then - NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.13.1/nvm.sh" + NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.14.0/nvm.sh" fi # Downloading to $NVM_DIR diff --git a/nvm.sh b/nvm.sh index fd41235..e121fff 100644 --- a/nvm.sh +++ b/nvm.sh @@ -801,7 +801,7 @@ nvm() { nvm_version $2 ;; "--version" ) - echo "0.13.1" + echo "0.14.0" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version nvm_version_greater > /dev/null 2>&1 diff --git a/package.json b/package.json index 505d62b..5194b65 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.13.1", + "version": "0.14.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 59939d09e8f7b089d47a8976e5d0a02a3cc8a173 Mon Sep 17 00:00:00 2001 From: stelcheck Date: Thu, 28 Aug 2014 22:45:07 +0900 Subject: [PATCH 0144/1426] * Make the creation of a symlink an overridable default behaviour --- nvm.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index e121fff..01585e3 100644 --- a/nvm.sh +++ b/nvm.sh @@ -647,7 +647,9 @@ nvm() { export NODE_PATH export NVM_PATH="$NVM_VERSION_DIR/lib/node" export NVM_BIN="$NVM_VERSION_DIR/bin" - rm -f "$NVM_DIR/current" && ln -s "$NVM_VERSION_DIR" "$NVM_DIR/current" + if [ "$NVM_SYMLINK_CURRENT" = true ] || [ -z "$NVM_SYMLINK_CURRENT" ]; then + rm -f "$NVM_DIR/current" && ln -s "$NVM_VERSION_DIR" "$NVM_DIR/current" + fi echo "Now using node $VERSION" ;; "run" ) From 9306a9b3f02933632ba5a19bedfb66423e4f84f0 Mon Sep 17 00:00:00 2001 From: stelcheck Date: Fri, 29 Aug 2014 14:57:30 +0900 Subject: [PATCH 0145/1426] * Unit tests --- ... symlink if $NVM_SYMLINK_CURRENT is false" | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100755 "test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" diff --git "a/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" "b/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" new file mode 100755 index 0000000..bf64b18 --- /dev/null +++ "b/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" @@ -0,0 +1,85 @@ +#!/bin/bash + +. ../../nvm.sh + +TEST_NODE_VERSION="v0.10.29" + +TEST_COUNT=0 +TEST_PASSED=0 +TEST_FAILED=0 + +function registerExpectedSymlink() { + registerResult ${1} +} + +function registerExpectedNoSymlink() { + [ ${1} -ne 0 ] + registerResult $? +} + +function registerResult() { + result=${1} + + TEST_COUNT=$(($TEST_COUNT + 1)) + + [ ${result} -eq 0 ] \ + && TEST_PASSED=$(($TEST_PASSED + 1)) \ + || TEST_FAILED=$(($TEST_FAILED + 1)) +} + +function cleanup() { + rm -rf ../../${TEST_NODE_VERSION} + rm -f ../../current +} + +function runNvmUse() { + mkdir ../../${TEST_NODE_VERSION} + nvm use ${TEST_NODE_VERSION} &> /dev/null + rmdir ../../${TEST_NODE_VERSION} +} + +function isCurrentSymlinkPresent() { + [ -L ../../current ] +} + +NVM_SYMLINK_CURRENT=false +cleanup +runNvmUse +isCurrentSymlinkPresent && echo "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT=false!" +registerExpectedNoSymlink $? + +NVM_SYMLINK_CURRENT=true +cleanup +runNvmUse +isCurrentSymlinkPresent || echo "Expected 'current' symlink to be created when NVM_SYMLINK_CURRENT=true!" +registerExpectedSymlink $? + +NVM_SYMLINK_CURRENT=garbagevalue +cleanup +runNvmUse +isCurrentSymlinkPresent && echo "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT contains a string!" +registerExpectedNoSymlink $? + +NVM_SYMLINK_CURRENT=0 +cleanup +runNvmUse +isCurrentSymlinkPresent && echo "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT=0!" +registerExpectedNoSymlink $? + +NVM_SYMLINK_CURRENT=1 +cleanup +runNvmUse +isCurrentSymlinkPresent && echo "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT=1!" +registerExpectedNoSymlink $? + +unset NVM_SYMLINK_CURRENT +cleanup +runNvmUse +isCurrentSymlinkPresent || echo "Expected 'current' symlink to be created when NVM_SYMLINK_CURRENT has been unset (default behaviour)!" +registerExpectedSymlink $? + +cleanup + +echo "$(basename "$0"): ${TEST_COUNT} tested, ${TEST_PASSED} passed, ${TEST_FAILED} failed" + +[ ${TEST_FAILED} -ne 0 ] && exit 1 From 83a0efb08597c7781d06c01ff6116dcd279203db Mon Sep 17 00:00:00 2001 From: stelcheck Date: Fri, 29 Aug 2014 15:01:15 +0900 Subject: [PATCH 0146/1426] * We print stats only on failure * || true --- ... the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git "a/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" "b/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" index bf64b18..8ae7b29 100755 --- "a/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" +++ "b/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" @@ -80,6 +80,4 @@ registerExpectedSymlink $? cleanup -echo "$(basename "$0"): ${TEST_COUNT} tested, ${TEST_PASSED} passed, ${TEST_FAILED} failed" - -[ ${TEST_FAILED} -ne 0 ] && exit 1 +[ ${TEST_FAILED} -ne 0 ] && echo "${TEST_COUNT} tested, ${TEST_PASSED} passed, ${TEST_FAILED} failed" && exit 1 || true From 5ee955bb622749e383b9946f365cc12525028fc7 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 29 Aug 2014 00:12:02 -0700 Subject: [PATCH 0147/1426] Remove unused $ROOT variable. --- nvm.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index dd4ea74..820624e 100644 --- a/nvm.sh +++ b/nvm.sh @@ -786,8 +786,6 @@ nvm() { return 127 fi VERSION=$(nvm_version "$2") - local ROOT - ROOT=$(nvm use $VERSION && npm -g root) # declare local INSTALLS first, otherwise it doesn't work in zsh local INSTALLS From 603253b0cb333f4f8081653bb3223f3fa49158d5 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 29 Aug 2014 00:12:16 -0700 Subject: [PATCH 0148/1426] Quote the version. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 820624e..7ed56e0 100644 --- a/nvm.sh +++ b/nvm.sh @@ -785,7 +785,7 @@ nvm() { nvm help return 127 fi - VERSION=$(nvm_version "$2") + VERSION="$(nvm_version "$2")" # declare local INSTALLS first, otherwise it doesn't work in zsh local INSTALLS From 429656bc4149b8d682cbc3a0f5dce21c419db74f Mon Sep 17 00:00:00 2001 From: Kevin Wang Date: Sat, 30 Aug 2014 21:54:46 -0500 Subject: [PATCH 0149/1426] Add unit tests for nvm_checksum. --- test/fast/Unit tests/nvm_checksum | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100755 test/fast/Unit tests/nvm_checksum diff --git a/test/fast/Unit tests/nvm_checksum b/test/fast/Unit tests/nvm_checksum new file mode 100755 index 0000000..408659b --- /dev/null +++ b/test/fast/Unit tests/nvm_checksum @@ -0,0 +1,18 @@ +#!/bin/sh + +cleanup () { + rm tmp/emptyfile tmp/testfile + rmdir tmp +} +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +mkdir -p tmp +touch tmp/emptyfile +echo -n "test" > tmp/testfile + +nvm_checksum tmp/emptyfile "da39a3ee5e6b4b0d3255bfef95601890afd80709" || die "nvm_checksum on an empty file did not match the SHA1 digest of the empty string" +nvm_checksum tmp/testfile "da39a3ee5e6b4b0d3255bfef95601890afd80709" && die "nvm_checksum allowed a bad checksum" + +cleanup From e8056ac460e2fdaf7cb97174f37c1d86b2d2f9f9 Mon Sep 17 00:00:00 2001 From: Kevin Wang Date: Sat, 30 Aug 2014 21:57:17 -0500 Subject: [PATCH 0150/1426] Run cleanup on die in nvm_checksum unit test. --- test/fast/Unit tests/nvm_checksum | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/fast/Unit tests/nvm_checksum b/test/fast/Unit tests/nvm_checksum index 408659b..73cf1f1 100755 --- a/test/fast/Unit tests/nvm_checksum +++ b/test/fast/Unit tests/nvm_checksum @@ -4,7 +4,7 @@ cleanup () { rm tmp/emptyfile tmp/testfile rmdir tmp } -die () { echo $@ ; exit 1; } +die () { echo $@ ; cleanup; exit 1; } . ../../../nvm.sh From 214ce8853bc19dff38a7bb50a3e8b09986903f8b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 2 Sep 2014 15:04:35 -0700 Subject: [PATCH 0151/1426] `npm ls` has a bug in some versions when "--parseable --depth=0" is used together. --- nvm.sh | 2 +- test/slow/nvm copy-packages/should work as expected | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index 7ed56e0..e45a53e 100644 --- a/nvm.sh +++ b/nvm.sh @@ -789,7 +789,7 @@ nvm() { # declare local INSTALLS first, otherwise it doesn't work in zsh local INSTALLS - INSTALLS=$(nvm use $VERSION > /dev/null && npm list --global --parseable --depth=0 2> /dev/null | tail -n +2 | \grep -o -e '/[^/]*$' | cut -c 2- | \grep -v npm | xargs) + INSTALLS=$(nvm use "$VERSION" > /dev/null && npm list -g --depth=0 | tail -n +2 | \grep -o -e ' [^@]*' | cut -c 2- | \grep -v npm | xargs) echo "$INSTALLS" | xargs npm install -g --quiet ;; diff --git a/test/slow/nvm copy-packages/should work as expected b/test/slow/nvm copy-packages/should work as expected index 66859eb..e599609 100755 --- a/test/slow/nvm copy-packages/should work as expected +++ b/test/slow/nvm copy-packages/should work as expected @@ -11,10 +11,10 @@ EXPECTED_PACKAGES="autoprefixer bower david eslint grunt-cli grunth-cli http-ser echo "$EXPECTED_PACKAGES" | xargs npm install -g --quiet nvm use 0.10.29 -ORIGINAL_PACKAGES=$(npm list --global --parseable --depth=0 2> /dev/null | tail -n +2 | \grep -o -e '/[^/]*$' | cut -c 2- | \grep -v npm | sort | uniq | xargs) +ORIGINAL_PACKAGES=$(npm list -g --depth=0 | tail -n +2 | \grep -o -e ' [^@]*' | cut -c 2- | \grep -v npm | sort | uniq | xargs) nvm copy-packages 0.10.28 -FINAL_PACKAGES=$(npm list --global --parseable --depth=0 2> /dev/null | tail -n +2 | \grep -o -e '/[^/]*$' | cut -c 2- | \grep -v npm | sort | uniq | xargs) +FINAL_PACKAGES=$(npm list -g --depth=0 | tail -n +2 | \grep -o -e ' [^@]*' | cut -c 2- | \grep -v npm | sort | uniq | xargs) [ "$FINAL_PACKAGES" = "$EXPECTED_PACKAGES" ] || die "final packages ($FINAL_PACKAGES) did not match expected packages ($EXPECTED_PACKAGES)" [ "$ORIGINAL_PACKAGES" != "$FINAL_PACKAGES" ] || die "original packages matched final packages ($ORIGINAL_PACKAGES)" From a00a3a74296cfa5ddf89af012b379c6f0fb85221 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 3 Sep 2014 00:07:45 -0700 Subject: [PATCH 0152/1426] Document NVM_SYMLINK_CURRENT env var from #514. --- README.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.markdown b/README.markdown index a239d6d..2c9e01a 100644 --- a/README.markdown +++ b/README.markdown @@ -79,6 +79,8 @@ To use a mirror of the node binaries, set `$NVM_NODEJS_ORG_MIRROR`: NVM_NODEJS_ORG_MIRROR=http://nodejs.org/dist nvm install 0.10 +`nvm use` will, by defaut, create a "current" symlink. Set `$NVM_SYMLINK_CURRENT` to any value other than "true" to disable this behavior. + ## License nvm is released under the MIT license. From 9d96e4a6bf18e97420eac18eeff6fc82d6c7a634 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 3 Sep 2014 00:08:53 -0700 Subject: [PATCH 0153/1426] v0.15.0 --- README.markdown | 6 +++--- install.sh | 4 ++-- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.markdown b/README.markdown index 2c9e01a..6e8d4cd 100644 --- a/README.markdown +++ b/README.markdown @@ -8,11 +8,11 @@ First you'll need to make sure your system has a c++ compiler. For OSX, XCode w To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.14.0/install.sh | bash + curl https://raw.githubusercontent.com/creationix/nvm/v0.15.0/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.14.0/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.15.0/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -169,7 +169,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.14.0/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.15.0/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin diff --git a/install.sh b/install.sh index e1dbcde..42fc9a6 100755 --- a/install.sh +++ b/install.sh @@ -44,12 +44,12 @@ install_nvm_from_git() { mkdir -p "$NVM_DIR" git clone "$NVM_SOURCE" "$NVM_DIR" fi - cd $NVM_DIR && git checkout v0.14.0 && git branch -D master || true + cd $NVM_DIR && git checkout v0.15.0 && git branch -D master || true } install_nvm_as_script() { if [ -z "$NVM_SOURCE" ]; then - NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.14.0/nvm.sh" + NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.15.0/nvm.sh" fi # Downloading to $NVM_DIR diff --git a/nvm.sh b/nvm.sh index e45a53e..008a16c 100644 --- a/nvm.sh +++ b/nvm.sh @@ -801,7 +801,7 @@ nvm() { nvm_version $2 ;; "--version" ) - echo "0.14.0" + echo "0.15.0" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version nvm_version_greater > /dev/null 2>&1 diff --git a/package.json b/package.json index 5194b65..e406302 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.14.0", + "version": "0.15.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From ab56ec667504ff9ed02c19b16c45cf745938545c Mon Sep 17 00:00:00 2001 From: Adrian Perez Heredia Date: Tue, 26 Aug 2014 19:53:58 +0200 Subject: [PATCH 0154/1426] This patch adds support for terminal emulators. Without this it wont work on gnome-terminal on Ubuntu --- install.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/install.sh b/install.sh index 42fc9a6..ada5c3a 100755 --- a/install.sh +++ b/install.sh @@ -100,6 +100,8 @@ if [ -z "$PROFILE" ]; then PROFILE="$HOME/.bash_profile" elif [ -f "$HOME/.zshrc" ]; then PROFILE="$HOME/.zshrc" + elif [ -f "$HOME/.bashrc" ]; then + PROFILE="$HOME/.bashrc" elif [ -f "$HOME/.profile" ]; then PROFILE="$HOME/.profile" fi From 825cb469694e9ac295612586477315449a20deca Mon Sep 17 00:00:00 2001 From: Adrian Perez Heredia Date: Thu, 28 Aug 2014 12:58:25 +0200 Subject: [PATCH 0155/1426] Updated error message for missing profile file --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index ada5c3a..4856cbe 100755 --- a/install.sh +++ b/install.sh @@ -111,7 +111,7 @@ SOURCE_STR="\nexport NVM_DIR=\"$NVM_DIR\"\n[ -s \"\$NVM_DIR/nvm.sh\" ] && . \"\$ if [ -z "$PROFILE" ] || [ ! -f "$PROFILE" ] ; then if [ -z "$PROFILE" ]; then - echo "=> Profile not found. Tried ~/.bash_profile, ~/.zshrc, and ~/.profile." + echo "=> Profile not found. Tried ~/.bash_profile, ~/bashrc, ~/.zshrc, and ~/.profile." echo "=> Create one of them and run this script again" else echo "=> Profile $PROFILE not found" From a7108e98f254cebc2f153de4ab9e41c758e769c8 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 4 Sep 2014 00:54:50 -0700 Subject: [PATCH 0156/1426] Make .bashrc be checked first on install. From #511. Closes #320. Closes #268. Closes #334. Fixes #497. Relates to --- install.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/install.sh b/install.sh index 4856cbe..78a2316 100755 --- a/install.sh +++ b/install.sh @@ -96,12 +96,12 @@ echo # Detect profile file if not specified as environment variable (eg: PROFILE=~/.myprofile). if [ -z "$PROFILE" ]; then - if [ -f "$HOME/.bash_profile" ]; then + if [ -f "$HOME/.bashrc" ]; then + PROFILE="$HOME/.bashrc" + elif [ -f "$HOME/.bash_profile" ]; then PROFILE="$HOME/.bash_profile" elif [ -f "$HOME/.zshrc" ]; then PROFILE="$HOME/.zshrc" - elif [ -f "$HOME/.bashrc" ]; then - PROFILE="$HOME/.bashrc" elif [ -f "$HOME/.profile" ]; then PROFILE="$HOME/.profile" fi @@ -111,7 +111,7 @@ SOURCE_STR="\nexport NVM_DIR=\"$NVM_DIR\"\n[ -s \"\$NVM_DIR/nvm.sh\" ] && . \"\$ if [ -z "$PROFILE" ] || [ ! -f "$PROFILE" ] ; then if [ -z "$PROFILE" ]; then - echo "=> Profile not found. Tried ~/.bash_profile, ~/bashrc, ~/.zshrc, and ~/.profile." + echo "=> Profile not found. Tried ~/.bashrc, ~/.bash_profile, ~/.zshrc, and ~/.profile." echo "=> Create one of them and run this script again" else echo "=> Profile $PROFILE not found" From 110e571c34c6b23a082e0c35e85c0ee49eaf923e Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 5 Sep 2014 00:10:51 -0700 Subject: [PATCH 0157/1426] Make `nvm ls system` work. --- nvm.sh | 13 ++++++++--- ...hould include \"system\" when appropriate" | 22 +++++++++++++++++++ 2 files changed, 32 insertions(+), 3 deletions(-) create mode 100755 "test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" diff --git a/nvm.sh b/nvm.sh index 008a16c..e4654ae 100644 --- a/nvm.sh +++ b/nvm.sh @@ -249,13 +249,20 @@ nvm_ls() { | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n | \grep -v '^ *\.' | \grep -e '^v'` fi fi + + if nvm_has_system_node; then + if [ -z "$PATTERN" ]; then + VERSIONS="$VERSIONS$(printf '\n%s' 'system')" + elif [ "$PATTERN" = 'system' ]; then + VERSIONS="$(printf '%s' 'system')" + fi + fi + if [ -z "$VERSIONS" ]; then echo "N/A" return 3 fi - if [ -z "$PATTERN" ] && nvm_has_system_node; then - VERSIONS="$VERSIONS$(printf '\n%s' 'system')" - fi + echo "$VERSIONS" return } diff --git "a/test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" "b/test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" new file mode 100755 index 0000000..3acaf3f --- /dev/null +++ "b/test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" @@ -0,0 +1,22 @@ +#!/bin/sh + +cleanup () { unset -f nvm_has_system_node; } +die () { cleanup ; echo $@ ; exit 1; } + +. ../../../nvm.sh + +mkdir -p ../../../v0.0.1 +mkdir -p ../../../v0.0.3 +mkdir -p ../../../v0.0.9 +mkdir -p ../../../v0.3.1 +mkdir -p ../../../v0.3.3 +mkdir -p ../../../v0.3.9 + +nvm_has_system_node() { return 0; } +nvm ls system | grep system 2>&1 > /dev/null +[ $? -eq 0 ] || die '"nvm ls system" did not contain "system" when system node is present' + +nvm_has_system_node() { return 1; } +nvm ls system | grep system 2>&1 > /dev/null +[ $? -ne 0 ] || die '"nvm ls system" contained "system" when system node is not present' + From ff1781b95d156b327977681f4a469d2e786c9770 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 5 Sep 2014 00:42:59 -0700 Subject: [PATCH 0158/1426] Make `nvm copy-packages` refuse to copy packages from the currently activated version. --- nvm.sh | 12 ++++++++++-- ...py-packages $(nvm ls current)\" should error out" | 12 ++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 "test/slow/nvm copy-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" diff --git a/nvm.sh b/nvm.sh index e4654ae..c17d0bc 100644 --- a/nvm.sh +++ b/nvm.sh @@ -792,9 +792,17 @@ nvm() { nvm help return 127 fi - VERSION="$(nvm_version "$2")" - # declare local INSTALLS first, otherwise it doesn't work in zsh + local PROVIDED_VERSION + PROVIDED_VERSION="$2" + + if [ "$PROVIDED_VERSION" = "$(nvm_ls_current)" ]; then + echo 'Can not copy packages from the current version of node.' >&2 + return 2 + fi + + local VERSION + VERSION="$(nvm_version "$PROVIDED_VERSION")" local INSTALLS INSTALLS=$(nvm use "$VERSION" > /dev/null && npm list -g --depth=0 | tail -n +2 | \grep -o -e ' [^@]*' | cut -c 2- | \grep -v npm | xargs) diff --git "a/test/slow/nvm copy-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" "b/test/slow/nvm copy-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" new file mode 100644 index 0000000..2e0d058 --- /dev/null +++ "b/test/slow/nvm copy-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" @@ -0,0 +1,12 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../nvm.sh + +local EXPECTED_MSG="Can not copy packages from the current version of node." +[ "$(nvm use 0.10.28 && nvm copy-packages 0.10.28 2&>1)" = "$EXPECTED_MSG" ] || die '"nvm use 0.10.28 && nvm copy-packages 0.10.28" did not fail with the right message' + +$(nvm use 0.10.28 && nvm copy-packages 0.10.28) +[ $? = 2 ] || die '"nvm use 0.10.28 && nvm copy-packages 0.10.28" did not fail with the right error code' + From 687df82107478d8f37defd0e5a5c7c5f565992ff Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 5 Sep 2014 00:43:12 -0700 Subject: [PATCH 0159/1426] Make `nvm copy-packages system` work. --- nvm.sh | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index c17d0bc..d127da3 100644 --- a/nvm.sh +++ b/nvm.sh @@ -801,10 +801,18 @@ nvm() { return 2 fi - local VERSION - VERSION="$(nvm_version "$PROVIDED_VERSION")" local INSTALLS - INSTALLS=$(nvm use "$VERSION" > /dev/null && npm list -g --depth=0 | tail -n +2 | \grep -o -e ' [^@]*' | cut -c 2- | \grep -v npm | xargs) + if [ "$PROVIDED_VERSION" = "system" ]; then + if ! nvm_has_system_node; then + echo 'No system version of node detected.' >&2 + return 3 + fi + INSTALLS=$(nvm deactivate > /dev/null && npm list -g --depth=0 | tail -n +2 | \grep -o -e ' [^@]*' | cut -c 2- | \grep -v npm | xargs) + else + local VERSION + VERSION="$(nvm_version "$PROVIDED_VERSION")" + INSTALLS=$(nvm use "$VERSION" > /dev/null && npm list -g --depth=0 | tail -n +2 | \grep -o -e ' [^@]*' | cut -c 2- | \grep -v npm | xargs) + fi echo "$INSTALLS" | xargs npm install -g --quiet ;; From d1b6332bbe2776d203c4d456559983f004682ad5 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 11 Sep 2014 00:58:09 -0700 Subject: [PATCH 0160/1426] v0.16.0 --- README.markdown | 6 +++--- install.sh | 4 ++-- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.markdown b/README.markdown index 6e8d4cd..93c9817 100644 --- a/README.markdown +++ b/README.markdown @@ -8,11 +8,11 @@ First you'll need to make sure your system has a c++ compiler. For OSX, XCode w To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.15.0/install.sh | bash + curl https://raw.githubusercontent.com/creationix/nvm/v0.16.0/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.15.0/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.16.0/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -169,7 +169,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.15.0/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.16.0/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin diff --git a/install.sh b/install.sh index 78a2316..a19e88d 100755 --- a/install.sh +++ b/install.sh @@ -44,12 +44,12 @@ install_nvm_from_git() { mkdir -p "$NVM_DIR" git clone "$NVM_SOURCE" "$NVM_DIR" fi - cd $NVM_DIR && git checkout v0.15.0 && git branch -D master || true + cd $NVM_DIR && git checkout v0.16.0 && git branch -D master || true } install_nvm_as_script() { if [ -z "$NVM_SOURCE" ]; then - NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.15.0/nvm.sh" + NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.16.0/nvm.sh" fi # Downloading to $NVM_DIR diff --git a/nvm.sh b/nvm.sh index d127da3..678ab64 100644 --- a/nvm.sh +++ b/nvm.sh @@ -824,7 +824,7 @@ nvm() { nvm_version $2 ;; "--version" ) - echo "0.15.0" + echo "0.16.0" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version nvm_version_greater > /dev/null 2>&1 diff --git a/package.json b/package.json index e406302..96bc191 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.15.0", + "version": "0.16.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 199ba533403b2a3ad615d0a068a05e59e04e522d Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 13 Sep 2014 00:59:09 -0700 Subject: [PATCH 0161/1426] Fixing manual install instructions to use the version tag. Relates to #520 --- README.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.markdown b/README.markdown index 93c9817..e8d14ab 100644 --- a/README.markdown +++ b/README.markdown @@ -24,9 +24,9 @@ You can customize the install source, directory and profile using the `NVM_SOURC For manual install create a folder somewhere in your filesystem with the `nvm.sh` file inside it. I put mine in a folder called `nvm`. -Or if you have `git` installed, then just clone it: +Or if you have `git` installed, then just clone it, and check out the latest version: - git clone https://github.com/creationix/nvm.git ~/.nvm + git clone https://github.com/creationix/nvm.git ~/.nvm && cd ~/.nvm && git checkout v0.16.0 To activate nvm, you need to source it from your shell: From f6fef75f36de480efaf95933db1f0527eb338b20 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 13 Sep 2014 11:37:19 -0700 Subject: [PATCH 0162/1426] Use git in manual install instructions to determine the latest release tag, rather than hardcoding it. Per https://github.com/creationix/nvm/commit/199ba533403b2a3ad615d0a068a05e59e04e522d --- README.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index e8d14ab..d01fc3b 100644 --- a/README.markdown +++ b/README.markdown @@ -26,7 +26,7 @@ For manual install create a folder somewhere in your filesystem with the `nvm.sh Or if you have `git` installed, then just clone it, and check out the latest version: - git clone https://github.com/creationix/nvm.git ~/.nvm && cd ~/.nvm && git checkout v0.16.0 + git clone https://github.com/creationix/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags` To activate nvm, you need to source it from your shell: From a80f958a1e9cc9540e88b02d3bfb0f41046cd48e Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 14 Sep 2014 16:03:55 -0700 Subject: [PATCH 0163/1426] All 4 of these test files should be executable. --- test/fast/Listing versions/teardown | 0 ...ning \"nvm copy-packages $(nvm ls current)\" should error out" | 0 .../nvm install/install version specified in .nvmrc from binary | 0 .../nvm install/install version specified in .nvmrc from source | 0 4 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 test/fast/Listing versions/teardown mode change 100644 => 100755 "test/slow/nvm copy-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" mode change 100644 => 100755 test/slow/nvm install/install version specified in .nvmrc from binary mode change 100644 => 100755 test/slow/nvm install/install version specified in .nvmrc from source diff --git a/test/fast/Listing versions/teardown b/test/fast/Listing versions/teardown old mode 100644 new mode 100755 diff --git "a/test/slow/nvm copy-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" "b/test/slow/nvm copy-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" old mode 100644 new mode 100755 diff --git a/test/slow/nvm install/install version specified in .nvmrc from binary b/test/slow/nvm install/install version specified in .nvmrc from binary old mode 100644 new mode 100755 diff --git a/test/slow/nvm install/install version specified in .nvmrc from source b/test/slow/nvm install/install version specified in .nvmrc from source old mode 100644 new mode 100755 From 243fc04164ee72074b054c34a6a7374a68054ba2 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 14 Sep 2014 16:04:04 -0700 Subject: [PATCH 0164/1426] Fixing these test files that have never been run --- ...-packages $(nvm ls current)\" should error out" | 14 +++++++++----- ...install version specified in .nvmrc from binary | 2 +- ...install version specified in .nvmrc from source | 2 +- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git "a/test/slow/nvm copy-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" "b/test/slow/nvm copy-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" index 2e0d058..e296e7c 100755 --- "a/test/slow/nvm copy-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" +++ "b/test/slow/nvm copy-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" @@ -2,11 +2,15 @@ die () { echo $@ ; exit 1; } -. ../../nvm.sh +. ../../../nvm.sh -local EXPECTED_MSG="Can not copy packages from the current version of node." -[ "$(nvm use 0.10.28 && nvm copy-packages 0.10.28 2&>1)" = "$EXPECTED_MSG" ] || die '"nvm use 0.10.28 && nvm copy-packages 0.10.28" did not fail with the right message' +nvm use 0.10.28 > /dev/null -$(nvm use 0.10.28 && nvm copy-packages 0.10.28) -[ $? = 2 ] || die '"nvm use 0.10.28 && nvm copy-packages 0.10.28" did not fail with the right error code' +EXPECTED_MSG="Can not copy packages from the current version of node." +ACTUAL_MSG="$(nvm copy-packages 0.10.28 2>&1 > /dev/null)" +[ "~$ACTUAL_MSG" = "~$EXPECTED_MSG" ] || die "'nvm use 0.10.28 && nvm copy-packages 0.10.28' did not fail with the right message: '$ACTUAL_MESSAGE'" + +EXPECTED_ERROR_CODE="2" +ACTUAL_ERROR_CODE="$(nvm copy-packages 0.10.28 > /dev/null 2>&1 ; echo $?)" +[ "~$ACTUAL_ERROR_CODE" = "~$EXPECTED_ERROR_CODE" ] || die "'nvm use 0.10.28 && nvm copy-packages 0.10.28' did not fail with the right error code: expected '$EXPECTED_ERROR_CODE', got '$ACTUAL_ERROR_CODE'" diff --git a/test/slow/nvm install/install version specified in .nvmrc from binary b/test/slow/nvm install/install version specified in .nvmrc from binary index dec2fe1..7758afe 100755 --- a/test/slow/nvm install/install version specified in .nvmrc from binary +++ b/test/slow/nvm install/install version specified in .nvmrc from binary @@ -9,7 +9,7 @@ NVM_TEST_VERSION=v0.10.7 [ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION # Install from binary -cat "$NVM_TEST_VERSION" > .nvmrc +echo "$NVM_TEST_VERSION" > .nvmrc nvm install diff --git a/test/slow/nvm install/install version specified in .nvmrc from source b/test/slow/nvm install/install version specified in .nvmrc from source index 6910228..189fffa 100755 --- a/test/slow/nvm install/install version specified in .nvmrc from source +++ b/test/slow/nvm install/install version specified in .nvmrc from source @@ -9,7 +9,7 @@ NVM_TEST_VERSION=v0.10.7 [ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION # Install from binary -cat "$NVM_TEST_VERSION" > .nvmrc +echo "$NVM_TEST_VERSION" > .nvmrc nvm install -s From ad2713b13a0feb0644f55f5a88be0ea89f301e29 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 14 Sep 2014 16:04:13 -0700 Subject: [PATCH 0165/1426] `&>` is a bash-specific extension for redirecting both stdout and stderr. --- ...te the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" "b/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" index 8ae7b29..23bbe38 100755 --- "a/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" +++ "b/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" @@ -34,7 +34,7 @@ function cleanup() { function runNvmUse() { mkdir ../../${TEST_NODE_VERSION} - nvm use ${TEST_NODE_VERSION} &> /dev/null + nvm use ${TEST_NODE_VERSION} > /dev/null 2>&1 rmdir ../../${TEST_NODE_VERSION} } From f8054d5cae2c576ac9df46908f65cf7491665386 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 14 Sep 2014 16:04:25 -0700 Subject: [PATCH 0166/1426] copy-packages: ensure that `nvm_version` is also applied to compare the provided version to the current one. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 678ab64..982994f 100644 --- a/nvm.sh +++ b/nvm.sh @@ -796,7 +796,7 @@ nvm() { local PROVIDED_VERSION PROVIDED_VERSION="$2" - if [ "$PROVIDED_VERSION" = "$(nvm_ls_current)" ]; then + if [ "$PROVIDED_VERSION" = "$(nvm_ls_current)" ] || [ "$(nvm_version $PROVIDED_VERSION)" = "$(nvm_ls_current)" ]; then echo 'Can not copy packages from the current version of node.' >&2 return 2 fi From 4c948cf4220e54277093e982196091226e1b966b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 14 Sep 2014 16:04:37 -0700 Subject: [PATCH 0167/1426] install: Ensure that if a version is not provided, we don't try to shift a nonexistent argument. --- nvm.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 982994f..ed01e08 100644 --- a/nvm.sh +++ b/nvm.sh @@ -433,19 +433,20 @@ nvm() { fi provided_version=$1 + if [ -z "$provided_version" ]; then if [ $version_not_provided -ne 1 ]; then nvm_rc_version fi provided_version="$NVM_RC_VERSION" + else + shift fi [ -d "$(nvm_version_path "$provided_version")" ] && echo "$provided_version is already installed." >&2 && return VERSION=`nvm_remote_version $provided_version` ADDITIONAL_PARAMETERS='' - shift - while [ $# -ne 0 ] do ADDITIONAL_PARAMETERS="$ADDITIONAL_PARAMETERS $1" From 3d3145f2e067f67e1da3fa15e377ae063d20ea41 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 14 Sep 2014 16:04:51 -0700 Subject: [PATCH 0168/1426] install: don't output "additional options" when there are none. --- nvm.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index ed01e08..bbeba05 100644 --- a/nvm.sh +++ b/nvm.sh @@ -495,7 +495,9 @@ nvm() { fi fi - echo "Additional options while compiling: $ADDITIONAL_PARAMETERS" + if [ -n "$ADDITIONAL_PARAMETERS" ]; then + echo "Additional options while compiling: $ADDITIONAL_PARAMETERS" + fi tarball='' sum='' From 13aadbcf315e6b2082e38a9816376363f4ed7126 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 14 Sep 2014 16:42:23 -0700 Subject: [PATCH 0169/1426] Run slow tests in ksh too --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index ba1b1bc..d5b76d3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,3 +27,5 @@ env: - SHELL=bash TEST_SUITE=slow WITHOUT_CURL=1 - SHELL=zsh TEST_SUITE=slow - SHELL=zsh TEST_SUITE=slow WITHOUT_CURL=1 + - SHELL=ksh TEST_SUITE=slow + - SHELL=ksh TEST_SUITE=slow WITHOUT_CURL=1 From ba08fa31d878c66335a328f09f591bd7f1c03184 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 14 Sep 2014 17:24:30 -0700 Subject: [PATCH 0170/1426] Moving actual installation tests to their own suite. --- .travis.yml | 10 ++++++++++ package.json | 3 ++- .../install already installed uses it | 0 .../nvm install => installation}/install from binary | 0 .../nvm install => installation}/install from source | 0 .../install two versions and use the latest one | 0 .../install version specified in .nvmrc from binary | 0 .../install version specified in .nvmrc from source | 0 test/{slow/nvm install => installation}/setup_dir | 0 test/{slow/nvm install => installation}/teardown_dir | 0 10 files changed, 12 insertions(+), 1 deletion(-) rename test/{slow/nvm install => installation}/install already installed uses it (100%) rename test/{slow/nvm install => installation}/install from binary (100%) rename test/{slow/nvm install => installation}/install from source (100%) rename test/{slow/nvm install => installation}/install two versions and use the latest one (100%) rename test/{slow/nvm install => installation}/install version specified in .nvmrc from binary (100%) rename test/{slow/nvm install => installation}/install version specified in .nvmrc from source (100%) rename test/{slow/nvm install => installation}/setup_dir (100%) rename test/{slow/nvm install => installation}/teardown_dir (100%) diff --git a/.travis.yml b/.travis.yml index d5b76d3..313622f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -29,3 +29,13 @@ env: - SHELL=zsh TEST_SUITE=slow WITHOUT_CURL=1 - SHELL=ksh TEST_SUITE=slow - SHELL=ksh TEST_SUITE=slow WITHOUT_CURL=1 + - SHELL=sh TEST_SUITE=installation + - SHELL=sh TEST_SUITE=installation WITHOUT_CURL=1 + - SHELL=dash TEST_SUITE=installation + - SHELL=dash TEST_SUITE=installation WITHOUT_CURL=1 + - SHELL=bash TEST_SUITE=installation + - SHELL=bash TEST_SUITE=installation WITHOUT_CURL=1 + - SHELL=zsh TEST_SUITE=installation + - SHELL=zsh TEST_SUITE=installation WITHOUT_CURL=1 + - SHELL=ksh TEST_SUITE=installation + - SHELL=ksh TEST_SUITE=installation WITHOUT_CURL=1 diff --git a/package.json b/package.json index 96bc191..1c810ad 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,8 @@ "scripts": { "test": "urchin test", "test/fast": "urchin -f test/fast", - "test/slow": "urchin -f test/slow" + "test/slow": "urchin -f test/slow", + "test/installation": "urchin -f test/installation" }, "repository": { "type": "git", diff --git a/test/slow/nvm install/install already installed uses it b/test/installation/install already installed uses it similarity index 100% rename from test/slow/nvm install/install already installed uses it rename to test/installation/install already installed uses it diff --git a/test/slow/nvm install/install from binary b/test/installation/install from binary similarity index 100% rename from test/slow/nvm install/install from binary rename to test/installation/install from binary diff --git a/test/slow/nvm install/install from source b/test/installation/install from source similarity index 100% rename from test/slow/nvm install/install from source rename to test/installation/install from source diff --git a/test/slow/nvm install/install two versions and use the latest one b/test/installation/install two versions and use the latest one similarity index 100% rename from test/slow/nvm install/install two versions and use the latest one rename to test/installation/install two versions and use the latest one diff --git a/test/slow/nvm install/install version specified in .nvmrc from binary b/test/installation/install version specified in .nvmrc from binary similarity index 100% rename from test/slow/nvm install/install version specified in .nvmrc from binary rename to test/installation/install version specified in .nvmrc from binary diff --git a/test/slow/nvm install/install version specified in .nvmrc from source b/test/installation/install version specified in .nvmrc from source similarity index 100% rename from test/slow/nvm install/install version specified in .nvmrc from source rename to test/installation/install version specified in .nvmrc from source diff --git a/test/slow/nvm install/setup_dir b/test/installation/setup_dir similarity index 100% rename from test/slow/nvm install/setup_dir rename to test/installation/setup_dir diff --git a/test/slow/nvm install/teardown_dir b/test/installation/teardown_dir similarity index 100% rename from test/slow/nvm install/teardown_dir rename to test/installation/teardown_dir From ad604cc068718735664e4ca03765250bb2f3f3af Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 14 Sep 2014 17:25:17 -0700 Subject: [PATCH 0171/1426] Only run the "installation" tests both with and without curl. --- .travis.yml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index 313622f..d3491ce 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,25 +10,15 @@ script: - NVM_DIR=$TRAVIS_BUILD_DIR make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin $SHELL env: - SHELL=sh TEST_SUITE=fast - - SHELL=sh TEST_SUITE=fast WITHOUT_CURL=1 - SHELL=dash TEST_SUITE=fast - - SHELL=dash TEST_SUITE=fast WITHOUT_CURL=1 - SHELL=bash TEST_SUITE=fast - - SHELL=bash TEST_SUITE=fast WITHOUT_CURL=1 - SHELL=zsh TEST_SUITE=fast - - SHELL=zsh TEST_SUITE=fast WITHOUT_CURL=1 - SHELL=ksh TEST_SUITE=fast - - SHELL=ksh TEST_SUITE=fast WITHOUT_CURL=1 - SHELL=sh TEST_SUITE=slow - - SHELL=sh TEST_SUITE=slow WITHOUT_CURL=1 - SHELL=dash TEST_SUITE=slow - - SHELL=dash TEST_SUITE=slow WITHOUT_CURL=1 - SHELL=bash TEST_SUITE=slow - - SHELL=bash TEST_SUITE=slow WITHOUT_CURL=1 - SHELL=zsh TEST_SUITE=slow - - SHELL=zsh TEST_SUITE=slow WITHOUT_CURL=1 - SHELL=ksh TEST_SUITE=slow - - SHELL=ksh TEST_SUITE=slow WITHOUT_CURL=1 - SHELL=sh TEST_SUITE=installation - SHELL=sh TEST_SUITE=installation WITHOUT_CURL=1 - SHELL=dash TEST_SUITE=installation From 354be52672f228bd4e2a238e6b10769eeff20b25 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 14 Sep 2014 17:51:34 -0700 Subject: [PATCH 0172/1426] Correct installation test paths --- test/installation/install already installed uses it | 6 +++--- test/installation/install from binary | 6 +++--- test/installation/install from source | 6 +++--- .../install two versions and use the latest one | 10 +++++----- .../install version specified in .nvmrc from binary | 6 +++--- .../install version specified in .nvmrc from source | 6 +++--- test/installation/teardown_dir | 2 +- 7 files changed, 21 insertions(+), 21 deletions(-) diff --git a/test/installation/install already installed uses it b/test/installation/install already installed uses it index ffcbb02..8a7dd9a 100755 --- a/test/installation/install already installed uses it +++ b/test/installation/install already installed uses it @@ -2,13 +2,13 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +. ../../nvm.sh [ "$(nvm install invalid.invalid 2>&1)" = "Version 'invalid.invalid' not found - try \`nvm ls-remote\` to browse available versions." ] || die "nvm installing an invalid version did not print a nice error message" # Remove the stuff we're clobbering. -[ -e ../../../v0.9.7 ] && rm -R ../../../v0.9.7 -[ -e ../../../v0.9.12 ] && rm -R ../../../v0.9.12 +[ -e ../../v0.9.7 ] && rm -R ../../v0.9.7 +[ -e ../../v0.9.12 ] && rm -R ../../v0.9.12 # Install from binary nvm install 0.9.7 diff --git a/test/installation/install from binary b/test/installation/install from binary index 82124e0..9138933 100755 --- a/test/installation/install from binary +++ b/test/installation/install from binary @@ -1,17 +1,17 @@ #!/bin/sh set -e -. ../../../nvm.sh +. ../../nvm.sh NVM_TEST_VERSION=v0.10.7 # Remove the stuff we're clobbering. -[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION +[ -e ../../$NVM_TEST_VERSION ] && rm -R ../../$NVM_TEST_VERSION # Install from binary nvm install $NVM_TEST_VERSION # Check -[ -d ../../../$NVM_TEST_VERSION ] +[ -d ../../$NVM_TEST_VERSION ] nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION diff --git a/test/installation/install from source b/test/installation/install from source index fdb5c0e..a535b75 100755 --- a/test/installation/install from source +++ b/test/installation/install from source @@ -1,17 +1,17 @@ #!/bin/sh set -e -. ../../../nvm.sh +. ../../nvm.sh NVM_TEST_VERSION=v0.10.7 # Remove the stuff we're clobbering. -[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION +[ -e ../../$NVM_TEST_VERSION ] && rm -R ../../$NVM_TEST_VERSION # Install from source nvm install -s $NVM_TEST_VERSION # Check -[ -d ../../../$NVM_TEST_VERSION ] +[ -d ../../$NVM_TEST_VERSION ] nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION diff --git a/test/installation/install two versions and use the latest one b/test/installation/install two versions and use the latest one index df6670d..9f50510 100755 --- a/test/installation/install two versions and use the latest one +++ b/test/installation/install two versions and use the latest one @@ -1,19 +1,19 @@ #!/bin/sh set -e -. ../../../nvm.sh +. ../../nvm.sh # Remove the stuff we're clobbering. -[ -e ../../../v0.9.7 ] && rm -R ../../../v0.9.7 -[ -e ../../../v0.9.12 ] && rm -R ../../../v0.9.12 +[ -e ../../v0.9.7 ] && rm -R ../../v0.9.7 +[ -e ../../v0.9.12 ] && rm -R ../../v0.9.12 # Install from binary nvm install 0.9.7 nvm i 0.9.12 # Check -[ -d ../../../v0.9.7 ] -[ -d ../../../v0.9.12 ] +[ -d ../../v0.9.7 ] +[ -d ../../v0.9.12 ] # Use the first one nvm use 0.9.7 diff --git a/test/installation/install version specified in .nvmrc from binary b/test/installation/install version specified in .nvmrc from binary index 7758afe..b261970 100755 --- a/test/installation/install version specified in .nvmrc from binary +++ b/test/installation/install version specified in .nvmrc from binary @@ -1,12 +1,12 @@ #!/bin/sh set -e -. ../../../nvm.sh +. ../../nvm.sh NVM_TEST_VERSION=v0.10.7 # Remove the stuff we're clobbering. -[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION +[ -e ../../$NVM_TEST_VERSION ] && rm -R ../../$NVM_TEST_VERSION # Install from binary echo "$NVM_TEST_VERSION" > .nvmrc @@ -14,7 +14,7 @@ echo "$NVM_TEST_VERSION" > .nvmrc nvm install # Check -[ -d ../../../$NVM_TEST_VERSION ] +[ -d ../../$NVM_TEST_VERSION ] nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION diff --git a/test/installation/install version specified in .nvmrc from source b/test/installation/install version specified in .nvmrc from source index 189fffa..5544d0e 100755 --- a/test/installation/install version specified in .nvmrc from source +++ b/test/installation/install version specified in .nvmrc from source @@ -1,12 +1,12 @@ #!/bin/sh set -e -. ../../../nvm.sh +. ../../nvm.sh NVM_TEST_VERSION=v0.10.7 # Remove the stuff we're clobbering. -[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION +[ -e ../../$NVM_TEST_VERSION ] && rm -R ../../$NVM_TEST_VERSION # Install from binary echo "$NVM_TEST_VERSION" > .nvmrc @@ -14,7 +14,7 @@ echo "$NVM_TEST_VERSION" > .nvmrc nvm install -s # Check -[ -d ../../../$NVM_TEST_VERSION ] +[ -d ../../$NVM_TEST_VERSION ] nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION diff --git a/test/installation/teardown_dir b/test/installation/teardown_dir index 3f107c9..7637390 100755 --- a/test/installation/teardown_dir +++ b/test/installation/teardown_dir @@ -1,6 +1,6 @@ #!/bin/sh -. ../../../nvm.sh +. ../../nvm.sh nvm uninstall v0.10.7 if [ -f ".nvmrc" ]; then From 64de890d079e98bc62ba16c7d906dcf06ea84cc3 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 14 Sep 2014 22:24:18 -0700 Subject: [PATCH 0173/1426] v0.16.1 --- README.markdown | 6 +++--- install.sh | 4 ++-- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.markdown b/README.markdown index d01fc3b..8143c32 100644 --- a/README.markdown +++ b/README.markdown @@ -8,11 +8,11 @@ First you'll need to make sure your system has a c++ compiler. For OSX, XCode w To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.16.0/install.sh | bash + curl https://raw.githubusercontent.com/creationix/nvm/v0.16.1/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.16.0/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.16.1/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -169,7 +169,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.16.0/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.16.1/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin diff --git a/install.sh b/install.sh index a19e88d..99b5b37 100755 --- a/install.sh +++ b/install.sh @@ -44,12 +44,12 @@ install_nvm_from_git() { mkdir -p "$NVM_DIR" git clone "$NVM_SOURCE" "$NVM_DIR" fi - cd $NVM_DIR && git checkout v0.16.0 && git branch -D master || true + cd $NVM_DIR && git checkout v0.16.1 && git branch -D master || true } install_nvm_as_script() { if [ -z "$NVM_SOURCE" ]; then - NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.16.0/nvm.sh" + NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.16.1/nvm.sh" fi # Downloading to $NVM_DIR diff --git a/nvm.sh b/nvm.sh index bbeba05..3069309 100644 --- a/nvm.sh +++ b/nvm.sh @@ -827,7 +827,7 @@ nvm() { nvm_version $2 ;; "--version" ) - echo "0.16.0" + echo "0.16.1" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version nvm_version_greater > /dev/null 2>&1 diff --git a/package.json b/package.json index 1c810ad..2489df9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.16.0", + "version": "0.16.1", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 152904e3fb9879ad508deafda643ff9b9bc54104 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 15 Sep 2014 07:51:00 -0700 Subject: [PATCH 0174/1426] Return a nonzero exit code from nvm_rc_version when no .nvmrc found --- nvm.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nvm.sh b/nvm.sh index 3069309..b657af9 100644 --- a/nvm.sh +++ b/nvm.sh @@ -98,6 +98,9 @@ nvm_rc_version() { if [ -e "$NVMRC_PATH" ]; then read NVM_RC_VERSION < "$NVMRC_PATH" echo "Found '$NVMRC_PATH' with version <$NVM_RC_VERSION>" + else + >&2 echo "No .nvmrc file found" + return 1 fi } From d5d66c34d989c569a8e3242f5e692d0b77be28a3 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 15 Sep 2014 07:54:30 -0700 Subject: [PATCH 0175/1426] If there's no "default" specified, fall back to an .nvmrc file. --- nvm.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index b657af9..c076373 100644 --- a/nvm.sh +++ b/nvm.sh @@ -842,5 +842,9 @@ nvm() { esac } -nvm ls default >/dev/null && nvm use default >/dev/null || true +if nvm ls default >/dev/null; then + nvm use default >/dev/null +elif nvm_rc_version >/dev/null 2>&1; then + nvm use >/dev/null +fi From e0a22ccf4a98accf9f1feadac9e7ca20590df42c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 15 Sep 2014 08:54:44 -0700 Subject: [PATCH 0176/1426] Unit tests: add `nvm_has` --- test/fast/Unit tests/nvm_has | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100755 test/fast/Unit tests/nvm_has diff --git a/test/fast/Unit tests/nvm_has b/test/fast/Unit tests/nvm_has new file mode 100755 index 0000000..437d26f --- /dev/null +++ b/test/fast/Unit tests/nvm_has @@ -0,0 +1,12 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +nvm_has cat && type cat > /dev/null || die 'nvm_has locates "cat" properly' + +[ "~$(nvm_has foobarbaz 2>&1)" = "~" ] || die "nvm_has does not suppress error output" + +! nvm_has foobarbaz && ! type foobarbaz >/dev/null 2>&1 || die "nvm_has does not return a nonzero exit code when not found" + From 97d4e2f88f4642006671fe446a65d9ddf0cd0d32 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 15 Sep 2014 09:09:56 -0700 Subject: [PATCH 0177/1426] Unit tests: add `nvm_find_up` --- test/fast/Unit tests/nvm_find_up | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100755 test/fast/Unit tests/nvm_find_up diff --git a/test/fast/Unit tests/nvm_find_up b/test/fast/Unit tests/nvm_find_up new file mode 100755 index 0000000..39fb568 --- /dev/null +++ b/test/fast/Unit tests/nvm_find_up @@ -0,0 +1,26 @@ +#!/bin/sh + +die () { echo $@ ; cleanup ; exit 1; } +setup() { + cleanup + mkdir -p tmp_nvm_find_up/a/b/c/d + touch tmp_nvm_find_up/test + touch tmp_nvm_find_up/a/b/c/test +} +cleanup () { + rm -rf tmp_nvm_find_up +} + +. ../../../nvm.sh + +setup + +TEST_DIR="$PWD" + +[ "~$(PWD=$TEST_DIR/tmp_nvm_find_up/a nvm_find_up 'test')" = "~$TEST_DIR/tmp_nvm_find_up" ] || die "failed to find 1 dir up" +[ "~$(PWD=$TEST_DIR/tmp_nvm_find_up/a/b nvm_find_up 'test')" = "~$TEST_DIR/tmp_nvm_find_up" ] || die "failed to find 2 dirs up" +[ "~$(PWD=$TEST_DIR/tmp_nvm_find_up/a/b/c nvm_find_up 'test')" = "~$TEST_DIR/tmp_nvm_find_up/a/b/c" ] || die "failed to find in current dir" +[ "~$(PWD=$TEST_DIR/tmp_nvm_find_up/a/b/c/d nvm_find_up 'test')" = "~$TEST_DIR/tmp_nvm_find_up/a/b/c" ] || die "failed to find 1 level up from current dir" + +cleanup + From f6e010468552fed9d25c24819b6f5e8abe1baa02 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 15 Sep 2014 09:17:27 -0700 Subject: [PATCH 0178/1426] Use `nvm_normalize_version` in `nvm_version_greater` --- nvm.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index c076373..aeefc92 100644 --- a/nvm.sh +++ b/nvm.sh @@ -106,9 +106,9 @@ nvm_rc_version() { nvm_version_greater() { local LHS - LHS=$(echo "$1" | awk -F. '{for (i=1;i<=NF;++i) printf "%010d",$i}') + LHS=$(nvm_normalize_version "$1") local RHS - RHS=$(echo "$2" | awk -F. '{for (i=1;i<=NF;++i) printf "%010d",$i}') + RHS=$(nvm_normalize_version "$2") [ $LHS -gt $RHS ]; } @@ -174,7 +174,7 @@ nvm_remote_version() { } nvm_normalize_version() { - echo "$1" | sed -e 's/^v//' | \awk -F. '{ printf("%d%03d%03d\n", $1,$2,$3); }' + echo "$1" | sed -e 's/^v//' | \awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }' } nvm_format_version() { From e186fa27a7ea88092c1d42a6d823c53f4883f023 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 15 Sep 2014 09:20:47 -0700 Subject: [PATCH 0179/1426] Use `nvm_version_greater` in `nvm_binary_available` --- nvm.sh | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/nvm.sh b/nvm.sh index aeefc92..f6e9511 100644 --- a/nvm.sh +++ b/nvm.sh @@ -195,11 +195,9 @@ nvm_prepend_path() { nvm_binary_available() { # binaries started with node 0.8.6 - local MINIMAL - MINIMAL="0.8.6" - local VERSION - VERSION=$1 - [ $(nvm_normalize_version $VERSION) -ge $(nvm_normalize_version $MINIMAL) ] + local LAST_VERSION_WITHOUT_BINARY + LAST_VERSION_WITHOUT_BINARY="0.8.5" + nvm_version_greater "$1" "$LAST_VERSION_WITHOUT_BINARY" } nvm_ls_current() { From da693eaea12e624d2a5060da0049d85e54fd96f5 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 16 Sep 2014 08:35:48 -0700 Subject: [PATCH 0180/1426] Tweaking nvm_ls_current tests. --- test/fast/Unit tests/nvm_ls_current | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/fast/Unit tests/nvm_ls_current b/test/fast/Unit tests/nvm_ls_current index c475157..59f0a60 100755 --- a/test/fast/Unit tests/nvm_ls_current +++ b/test/fast/Unit tests/nvm_ls_current @@ -6,7 +6,7 @@ die () { echo $@ ; exit 1; } return_zero () { return 0; } -[ "$( (nvm deactivate > /dev/null 2>&1) && nvm_ls_current)" = "system" ] || die 'when deactivated, did not return "system"' +[ "$(nvm deactivate > /dev/null 2>&1 ; nvm_ls_current)" = "system" ] || die 'when deactivated, did not return "system"' TEST_PWD=$(pwd) TEST_DIR="$TEST_PWD/nvm_ls_current_tmp" From 8d05ab63f12da0dc936b12ed406773781d729916 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 16 Sep 2014 08:58:46 -0700 Subject: [PATCH 0181/1426] Silencing error output in the "Listing Versions" teardown script. --- test/fast/Listing versions/teardown | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/test/fast/Listing versions/teardown b/test/fast/Listing versions/teardown index a8fc501..c230c3c 100755 --- a/test/fast/Listing versions/teardown +++ b/test/fast/Listing versions/teardown @@ -1,12 +1,12 @@ -rmdir ../../../v0.0.1 -rmdir ../../../v0.0.3 -rmdir ../../../v0.0.9 -rmdir ../../../v0.1.2 -rmdir ../../../v0.1.3 -rmdir ../../../v0.2.3 -rmdir ../../../v0.3.1 -rmdir ../../../v0.3.3 -rmdir ../../../v0.3.9 -rmdir ../../../versions -unalias nvm_has_system_node +rmdir ../../../v0.0.1 >/dev/null 2>&1 +rmdir ../../../v0.0.3 >/dev/null 2>&1 +rmdir ../../../v0.0.9 >/dev/null 2>&1 +rmdir ../../../v0.1.2 >/dev/null 2>&1 +rmdir ../../../v0.1.3 >/dev/null 2>&1 +rmdir ../../../v0.2.3 >/dev/null 2>&1 +rmdir ../../../v0.3.1 >/dev/null 2>&1 +rmdir ../../../v0.3.3 >/dev/null 2>&1 +rmdir ../../../v0.3.9 >/dev/null 2>&1 +rmdir ../../../versions >/dev/null 2>&1 +unalias nvm_has_system_node >/dev/null 2>&1 From 15b3e7b6a8a9bdfb56b24dbac1dc91d995d56957 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 16 Sep 2014 08:59:00 -0700 Subject: [PATCH 0182/1426] Removing unnecessary cleanup in "Listing Versions" tests. --- ...m ls system\" should include \"system\" when appropriate" | 3 +-- .../Running \"nvm ls\" should filter out \"versions\"" | 5 +---- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git "a/test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" "b/test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" index 3acaf3f..f1e5ef6 100755 --- "a/test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" +++ "b/test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" @@ -1,7 +1,6 @@ #!/bin/sh -cleanup () { unset -f nvm_has_system_node; } -die () { cleanup ; echo $@ ; exit 1; } +die () { echo $@ ; exit 1; } . ../../../nvm.sh diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" "b/test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" index c9858df..0652c6b 100755 --- "a/test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" +++ "b/test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" @@ -2,13 +2,10 @@ mkdir ../../../v0.1.3 mkdir ../../../v0.2.3 +mkdir ../../../versions . ../../../nvm.sh -mkdir ../../../versions - [ -z "$(nvm ls | \grep 'versions')" ] # The result should contain only the appropriate version numbers. -rmdir ../../../versions - From 4b2bc0be0834a9a86b00541c7c0e6669e6c21832 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 16 Sep 2014 08:36:05 -0700 Subject: [PATCH 0183/1426] Adding `nvm_num_version_groups` --- nvm.sh | 14 ++++++++++++++ test/fast/Unit tests/nvm_num_version_groups | 21 +++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100755 test/fast/Unit tests/nvm_num_version_groups diff --git a/nvm.sh b/nvm.sh index f6e9511..8bca98c 100644 --- a/nvm.sh +++ b/nvm.sh @@ -181,6 +181,20 @@ nvm_format_version() { echo "$1" | sed -e 's/^\([0-9]\)/v\1/g' } +nvm_num_version_groups() { + local VERSION + VERSION="$1" + if [ -z "$VERSION" ]; then + echo "0" + return + fi + local NVM_NUM_DOTS + NVM_NUM_DOTS=$(echo "$VERSION" | sed -e 's/^v//' | sed -e 's/\.$//' | sed -e 's/[^\.]//g') + local NVM_NUM_GROUPS + NVM_NUM_GROUPS=".$NVM_NUM_DOTS" + echo "${#NVM_NUM_GROUPS}" +} + nvm_strip_path() { echo "$1" | sed -e "s#$NVM_DIR/[^/]*$2[^:]*:##g" -e "s#:$NVM_DIR/[^/]*$2[^:]*##g" -e "s#$NVM_DIR/[^/]*$2[^:]*##g" } diff --git a/test/fast/Unit tests/nvm_num_version_groups b/test/fast/Unit tests/nvm_num_version_groups new file mode 100755 index 0000000..893da75 --- /dev/null +++ b/test/fast/Unit tests/nvm_num_version_groups @@ -0,0 +1,21 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +[ "~$(nvm_num_version_groups)" = "~0" ] || die "no args should give 0" +[ "~$(nvm_num_version_groups a)" = "~1" ] || die "one letter should give 1" + +[ "~$(nvm_num_version_groups 1)" = "~1" ] || die "1 should give 1" +[ "~$(nvm_num_version_groups v1)" = "~1" ] || die "v1 should give 1" +[ "~$(nvm_num_version_groups v1.)" = "~1" ] || die "v1. should give 1" + +[ "~$(nvm_num_version_groups 1.2)" = "~2" ] || die "1.2 should give 2" +[ "~$(nvm_num_version_groups v1.2)" = "~2" ] || die "v1.2 should give 2" +[ "~$(nvm_num_version_groups v1.2.)" = "~2" ] || die "v1.2. should give 2" + +[ "~$(nvm_num_version_groups 1.2.3)" = "~3" ] || die "1.2.3 should give 3" +[ "~$(nvm_num_version_groups v1.2.3)" = "~3" ] || die "v1.2.3 should give 3" +[ "~$(nvm_num_version_groups v1.2.3.)" = "~3" ] || die "v1.2.3. should give 3" + From c992b1766c2a4277a164450d1568e9acffbccebb Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 16 Sep 2014 08:36:40 -0700 Subject: [PATCH 0184/1426] Use `nvm_num_version_groups` in `nvm_ls` --- nvm.sh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index 8bca98c..0e2a8a0 100644 --- a/nvm.sh +++ b/nvm.sh @@ -247,14 +247,18 @@ nvm_ls() { return fi # If it looks like an explicit version, don't do anything funny - if [ `expr "$PATTERN" : "v[0-9]*\.[0-9]*\.[0-9]*$"` != 0 ]; then + if [ "~$(echo "$PATTERN" | cut -c1-1)" = "~v" ] && [ "~$(nvm_num_version_groups "$PATTERN")" = "~3" ]; then if [ -d "$(nvm_version_path "$PATTERN")" ]; then VERSIONS="$PATTERN" fi else PATTERN=$(nvm_format_version $PATTERN) - if [ `expr "$PATTERN" : "v[0-9]*\.[0-9]*$"` != 0 ]; then - PATTERN="$PATTERN." + if [ "~$PATTERN" != "~system" ]; then + local NUM_VERSION_GROUPS + NUM_VERSION_GROUPS="$(nvm_num_version_groups "$PATTERN")" + if [ "~$NUM_VERSION_GROUPS" = "~2" ] || [ "~$NUM_VERSION_GROUPS" = "~1" ]; then + PATTERN="$(echo "$PATTERN" | sed -e 's/\.*$//g')." + fi fi if [ -d "$(nvm_version_dir new)" ]; then VERSIONS=`find "$(nvm_version_dir new)/" "$(nvm_version_dir old)/" -maxdepth 1 -type d -name "$PATTERN*" -exec basename '{}' ';' \ From 35466187f2206eab78d15b0b25d60de27829e3df Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 16 Sep 2014 09:03:31 -0700 Subject: [PATCH 0185/1426] Noting the changed behavior of `nvm ls vx.y.` to return something useful. --- ...e-like versioning vx.x.x should only list a matched version" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" "b/test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" index 443b305..43c77d8 100755 --- "a/test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" +++ "b/test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" @@ -6,6 +6,6 @@ mkdir ../../../v0.1.2 nvm ls v0.1 | grep v0.1.2 && nvm ls v0.1.2 | grep v0.1.2 && -nvm ls v0.1. | grep N/A && +nvm ls v0.1. | grep v0.1.2 && nvm ls v0.1.1 | grep N/A From 991fb8504758833837a80f1a443cb7dd92a728b8 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 19 Sep 2014 10:09:45 -0700 Subject: [PATCH 0186/1426] Adding `nvm_version_greater_than_or_equal_to` --- nvm.sh | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 0e2a8a0..0d14cfb 100644 --- a/nvm.sh +++ b/nvm.sh @@ -112,6 +112,14 @@ nvm_version_greater() { [ $LHS -gt $RHS ]; } +nvm_version_greater_than_or_equal_to() { + local LHS + LHS=$(nvm_normalize_version "$1") + local RHS + RHS=$(nvm_normalize_version "$2") + [ $LHS -ge $RHS ]; +} + nvm_version_dir() { local NVM_USE_NEW_DIR NVM_USE_NEW_DIR="$1" @@ -849,7 +857,7 @@ nvm() { echo "0.16.1" ;; "unload" ) - unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version nvm_version_greater > /dev/null 2>&1 + unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version nvm_version_greater nvm_version_greater_than_or_equal_to > /dev/null 2>&1 unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_DIR NVM_CD_FLAGS > /dev/null 2>&1 ;; * ) From cb6456fd852bb11d04354e7404d88b12f55c6b30 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 19 Sep 2014 10:10:01 -0700 Subject: [PATCH 0187/1426] Using `nvm_version_greater_than_or_equal_to` instead of `nvm_version_greater` where it increases readability. --- nvm.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index 0d14cfb..345ff44 100644 --- a/nvm.sh +++ b/nvm.sh @@ -217,9 +217,9 @@ nvm_prepend_path() { nvm_binary_available() { # binaries started with node 0.8.6 - local LAST_VERSION_WITHOUT_BINARY - LAST_VERSION_WITHOUT_BINARY="0.8.5" - nvm_version_greater "$1" "$LAST_VERSION_WITHOUT_BINARY" + local FIRST_VERSION_WITH_BINARY + FIRST_VERSION_WITH_BINARY="0.8.6" + nvm_version_greater_than_or_equal_to "$1" "$FIRST_VERSION_WITH_BINARY" } nvm_ls_current() { From 5ef092b2c840faf32238c554e3b6dd0caa02de8c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 19 Sep 2014 10:10:37 -0700 Subject: [PATCH 0188/1426] Using `nvm_version_greater` and `nvm_version_greater_than_or_equal_to` instead of `expr` in `nvm install`. --- nvm.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index 345ff44..1c0845e 100644 --- a/nvm.sh +++ b/nvm.sh @@ -559,10 +559,10 @@ nvm() { nvm use $VERSION if ! nvm_has "npm" ; then echo "Installing npm..." - if [ "`expr "$VERSION" : '\(^v0\.1\.\)'`" != '' ]; then + if nvm_version_greater 0.2.0 "$VERSION"; then echo "npm requires node v0.2.3 or higher" >&2 - elif [ "`expr "$VERSION" : '\(^v0\.2\.\)'`" != '' ]; then - if [ "`expr "$VERSION" : '\(^v0\.2\.[0-2]$\)'`" != '' ]; then + elif nvm_version_greater_than_or_equal_to "$VERSION" 0.2.0; then + if nvm_version_greater 0.2.3 "$VERSION"; then echo "npm requires node v0.2.3 or higher" >&2 else nvm_download https://npmjs.org/install.sh -o - | clean=yes npm_install=0.2.19 sh From 7fd6d05426f1aab24a0bc70ce5a1cab65f3cf1ef Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 19 Sep 2014 10:10:53 -0700 Subject: [PATCH 0189/1426] Instead of using expr to check if paths need cleaning, compare cleaned paths to original paths and export appropriately. --- nvm.sh | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/nvm.sh b/nvm.sh index 1c0845e..e543295 100644 --- a/nvm.sh +++ b/nvm.sh @@ -607,24 +607,30 @@ nvm() { ;; "deactivate" ) - if [ `expr "$PATH" : ".*$NVM_DIR/.*/bin.*"` != 0 ] ; then - export PATH=`nvm_strip_path "$PATH" "/bin"` + local NEWPATH + NEWPATH="$(nvm_strip_path "$PATH" "/bin")" + if [ "$PATH" = "$NEWPATH" ]; then + echo "Could not find $NVM_DIR/*/bin in \$PATH" >&2 + else + export PATH="$NEWPATH" hash -r echo "$NVM_DIR/*/bin removed from \$PATH" - else - echo "Could not find $NVM_DIR/*/bin in \$PATH" >&2 fi - if [ `expr "$MANPATH" : ".*$NVM_DIR/.*/share/man.*"` != 0 ] ; then - export MANPATH=`nvm_strip_path "$MANPATH" "/share/man"` - echo "$NVM_DIR/*/share/man removed from \$MANPATH" - else + + NEWPATH="$(nvm_strip_path "$MANPATH" "/share/man")" + if [ "$MANPATH" = "$NEWPATH" ]; then echo "Could not find $NVM_DIR/*/share/man in \$MANPATH" >&2 - fi - if [ `expr "$NODE_PATH" : ".*$NVM_DIR/.*/lib/node_modules.*"` != 0 ] ; then - export NODE_PATH=`nvm_strip_path "$NODE_PATH" "/lib/node_modules"` - echo "$NVM_DIR/*/lib/node_modules removed from \$NODE_PATH" else + export MANPATH="$NEWPATH" + echo "$NVM_DIR/*/share/man removed from \$MANPATH" + fi + + NEWPATH="$(nvm_strip_path "$NODE_PATH" "/lib/node_modules")" + if [ "$NODE_PATH" = "$NEWPATH" ]; then echo "Could not find $NVM_DIR/*/lib/node_modules in \$NODE_PATH" >&2 + else + export NODE_PATH="$NEWPATH" + echo "$NVM_DIR/*/lib/node_modules removed from \$NODE_PATH" fi ;; "use" ) From a42b90d215a65eca2cec2eee598240384618a06a Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 21 Sep 2014 11:02:03 -0700 Subject: [PATCH 0190/1426] Adding some helpful output to `nvm copy-packages` --- nvm.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/nvm.sh b/nvm.sh index e543295..f685b74 100644 --- a/nvm.sh +++ b/nvm.sh @@ -850,6 +850,7 @@ nvm() { INSTALLS=$(nvm use "$VERSION" > /dev/null && npm list -g --depth=0 | tail -n +2 | \grep -o -e ' [^@]*' | cut -c 2- | \grep -v npm | xargs) fi + echo "Copying global packages from $VERSION..." echo "$INSTALLS" | xargs npm install -g --quiet ;; "clear-cache" ) From 2e161fe41401ddf682951d73292e1c02f91eb7f1 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 21 Sep 2014 11:22:05 -0700 Subject: [PATCH 0191/1426] nvm install: Remove this redundant "already installed" check. --- nvm.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index f685b74..1a8fbe8 100644 --- a/nvm.sh +++ b/nvm.sh @@ -469,7 +469,6 @@ nvm() { else shift fi - [ -d "$(nvm_version_path "$provided_version")" ] && echo "$provided_version is already installed." >&2 && return VERSION=`nvm_remote_version $provided_version` ADDITIONAL_PARAMETERS='' From eddbe15ee888e78ed70e659bdb1565d2a7524f53 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 21 Sep 2014 11:13:37 -0700 Subject: [PATCH 0192/1426] Extract --copy-packages-from argument. --- nvm.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 1a8fbe8..8c505f5 100644 --- a/nvm.sh +++ b/nvm.sh @@ -472,10 +472,17 @@ nvm() { VERSION=`nvm_remote_version $provided_version` ADDITIONAL_PARAMETERS='' + local PROVIDED_COPY_PACKAGES_FROM + local COPY_PACKAGES_FROM while [ $# -ne 0 ] do - ADDITIONAL_PARAMETERS="$ADDITIONAL_PARAMETERS $1" + if [ "~$(echo "$1" | cut -c 1-21)" = "~--copy-packages-from=" ]; then + PROVIDED_COPY_PACKAGES_FROM="$(echo "$1" | cut -c 22-)" + COPY_PACKAGES_FROM="$(nvm_version "$PROVIDED_COPY_PACKAGES_FROM")" + else + ADDITIONAL_PARAMETERS="$ADDITIONAL_PARAMETERS $1" + fi shift done From 622fdd2cd039dfa14a5325b3beb3bafd5192862f Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 21 Sep 2014 11:13:50 -0700 Subject: [PATCH 0193/1426] Error out early if the --copy-packages-from version is invalid. --- nvm.sh | 8 +++++ ...-packages-from\" requires a valid version" | 31 +++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100755 "test/fast/Running \"nvm install\" with \"--copy-packages-from\" requires a valid version" diff --git a/nvm.sh b/nvm.sh index 8c505f5..9e7af08 100644 --- a/nvm.sh +++ b/nvm.sh @@ -486,6 +486,14 @@ nvm() { shift done + if [ "~$(nvm_format_version "$PROVIDED_COPY_PACKAGES_FROM")" = "~$VERSION" ]; then + echo "You can't copy global packages from the same version of node you're installing." >&2 + return 4 + elif [ ! -z "$PROVIDED_COPY_PACKAGES_FROM" ] && [ "~$COPY_PACKAGES_FROM" = "~N/A" ]; then + echo "If --copy-packages-from is provided, it must point to an installed version of node." >&2 + return 5 + fi + if [ -d "$(nvm_version_path "$VERSION")" ]; then echo "$VERSION is already installed." >&2 nvm use "$VERSION" diff --git "a/test/fast/Running \"nvm install\" with \"--copy-packages-from\" requires a valid version" "b/test/fast/Running \"nvm install\" with \"--copy-packages-from\" requires a valid version" new file mode 100755 index 0000000..bbd7cbb --- /dev/null +++ "b/test/fast/Running \"nvm install\" with \"--copy-packages-from\" requires a valid version" @@ -0,0 +1,31 @@ +#!/bin/sh + +die () { echo $@ ; cleanup ; exit 1; } +cleanup () { + rm -rf ../../v0.10.4 +} + +mkdir ../../v0.10.4 + +. ../../nvm.sh + +nvm deactivate >/dev/null 2>&1 + +INSTALL_ERROR_MSG="$(nvm install v0.10.5 --copy-packages-from=0.11 2>&1)" +EXPECTED_ERROR_MSG="If --copy-packages-from is provided, it must point to an installed version of node." +[ "~$INSTALL_ERROR_MSG" = "~$EXPECTED_ERROR_MSG" ] \ + || die ""nvm install --copy-packages" should fail when given an uninstalled version: expected '$EXPECTED_ERROR_MSG', got '$INSTALL_ERROR_MSG'" + +INSTALL_EXIT_CODE="$(nvm install v0.10.5 --copy-packages-from=0.11 >/dev/null 2>&1; echo $?)" +[ "~$INSTALL_EXIT_CODE" = "~5" ] \ + || die ""nvm install --copy-packages" should exit with code 5 when given an uninstalled version, got $INSTALL_EXIT_CODE" + +INSTALL_ERROR_MSG="$(nvm install v0.10.5 --copy-packages-from=0.10.5 2>&1)" +EXPECTED_ERROR_MSG="You can't copy global packages from the same version of node you're installing." +[ "~$INSTALL_ERROR_MSG" = "~$EXPECTED_ERROR_MSG" ] \ + || die ""nvm install --copy-packages" should fail when given the same version: expected '$EXPECTED_ERROR_MSG', got '$INSTALL_ERROR_MSG'" + +INSTALL_EXIT_CODE="$(nvm install v0.10.5 --copy-packages-from=0.10.5 >/dev/null 2>&1; echo $?)" +[ "~$INSTALL_EXIT_CODE" = "~4" ] \ + || die ""nvm install --copy-packages" should exit with code 4 when given the same version, got $INSTALL_EXIT_CODE" + From 486d14f5f8bd937169484a870b545c8538d8b81d Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 21 Sep 2014 11:14:18 -0700 Subject: [PATCH 0194/1426] Copy packages when applicable, whenever `nvm install` would normally `nvm use` and exit. --- nvm.sh | 14 ++++++-- .../install while copying packages | 34 +++++++++++++++++++ 2 files changed, 45 insertions(+), 3 deletions(-) create mode 100755 test/installation/install while copying packages diff --git a/nvm.sh b/nvm.sh index 9e7af08..240e53f 100644 --- a/nvm.sh +++ b/nvm.sh @@ -496,7 +496,9 @@ nvm() { if [ -d "$(nvm_version_path "$VERSION")" ]; then echo "$VERSION is already installed." >&2 - nvm use "$VERSION" + if nvm use "$VERSION" && [ ! -z "$COPY_PACKAGES_FROM" ] && [ "~$COPY_PACKAGES_FROM" != "~N/A" ]; then + nvm copy-packages "$COPY_PACKAGES_FROM" + fi return $? fi @@ -526,7 +528,9 @@ nvm() { mv "$tmpdir" "$(nvm_version_path "$VERSION")" ) then - nvm use $VERSION + if nvm use "$VERSION" && [ ! -z "$COPY_PACKAGES_FROM" ] && [ "~$COPY_PACKAGES_FROM" != "~N/A" ]; then + nvm copy-packages "$COPY_PACKAGES_FROM" + fi return $? else echo "Binary download failed, trying source." >&2 @@ -570,7 +574,9 @@ nvm() { $make $MAKE_CXX install ) then - nvm use $VERSION + if nvm use "$VERSION" && [ ! -z "$COPY_PACKAGES_FROM" ] && [ "~$COPY_PACKAGES_FROM" != "~N/A" ]; then + nvm copy-packages "$COPY_PACKAGES_FROM" + fi if ! nvm_has "npm" ; then echo "Installing npm..." if nvm_version_greater 0.2.0 "$VERSION"; then @@ -589,6 +595,8 @@ nvm() { echo "nvm: install $VERSION failed!" >&2 return 1 fi + + return $? ;; "uninstall" ) [ $# -ne 2 ] && nvm help && return diff --git a/test/installation/install while copying packages b/test/installation/install while copying packages new file mode 100755 index 0000000..45cafb5 --- /dev/null +++ b/test/installation/install while copying packages @@ -0,0 +1,34 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../nvm.sh + +# Remove the stuff we're clobbering. +[ -e ../../v0.9.7 ] && rm -R ../../v0.9.7 +[ -e ../../v0.9.12 ] && rm -R ../../v0.9.12 + +# Install from binary +nvm install 0.9.7 + +# Check +[ -d ../../v0.9.7 ] || die "nvm install 0.9.7 didn't install" + +nvm use 0.9.7 + +node --version | grep v0.9.7 > /dev/null || die "nvm use 0.9.7 failed" + +npm install -g is-nan@1.0.1 || die "npm install -g is-nan failed" +npm list --global | grep is-nan > /dev/null || die "is-nan isn't installed" + +nvm ls 0.9 | grep v0.9.7 > /dev/null || die "nvm ls 0.9 didn't show v0.9.7" + +nvm install 0.9.12 --copy-packages-from=0.9 || die "nvm install 0.9.12 --copy-packages-from=0.9 failed" + +[ -d ../../v0.9.12 ] || die "nvm install 0.9.12 didn't install" + +nvm use 0.9 +node --version | grep v0.9.12 > /dev/null || die "nvm ls 0.9 didn't use v0.9.12" + +npm list --global | grep is-nan > /dev/null || die "is-nan isn't installed" + From b962a590a2a1b50c336660d11abaa31f09f239d6 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 23 Sep 2014 16:36:24 -0700 Subject: [PATCH 0195/1426] Removing an extra mkdir -p --- nvm.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 240e53f..e08c8ad 100644 --- a/nvm.sh +++ b/nvm.sh @@ -826,7 +826,6 @@ nvm() { echo "$2 -> *poof*" return fi - mkdir -p $NVM_DIR/alias VERSION=`nvm_version $3` if [ $? -ne 0 ]; then echo "! WARNING: Version '$3' does not exist." >&2 From 34b97bf76dff1a565879119e51849193e935bfd0 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 23 Sep 2014 16:36:17 -0700 Subject: [PATCH 0196/1426] Adding shell var quotes in `nvm alias` --- nvm.sh | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/nvm.sh b/nvm.sh index e08c8ad..db22494 100644 --- a/nvm.sh +++ b/nvm.sh @@ -805,33 +805,34 @@ nvm() { nvm_version current ;; "alias" ) - mkdir -p $NVM_DIR/alias + mkdir -p "$NVM_DIR/alias" if [ $# -le 2 ]; then local DEST - for ALIAS in $NVM_DIR/alias/$2*; do + local ALIAS + for ALIAS in "$NVM_DIR"/alias/"$2"*; do if [ -e "$ALIAS" ]; then - DEST=`cat $ALIAS` - VERSION=`nvm_version $DEST` - if [ "$DEST" = "$VERSION" ]; then - echo "$(basename $ALIAS) -> $DEST" + DEST="$(cat "$ALIAS")" + VERSION="$(nvm_version "$DEST")" + if [ "~$DEST" = "~$VERSION" ]; then + echo "$(basename "$ALIAS") -> $DEST" else - echo "$(basename $ALIAS) -> $DEST (-> $VERSION)" + echo "$(basename "$ALIAS") -> $DEST (-> $VERSION)" fi fi done return fi if [ -z "$3" ]; then - rm -f $NVM_DIR/alias/$2 + rm -f "$NVM_DIR/alias/$2" echo "$2 -> *poof*" return fi - VERSION=`nvm_version $3` + VERSION="$(nvm_version "$3")" if [ $? -ne 0 ]; then echo "! WARNING: Version '$3' does not exist." >&2 fi echo $3 > "$NVM_DIR/alias/$2" - if [ ! "$3" = "$VERSION" ]; then + if [ ! "~$3" = "~$VERSION" ]; then echo "$2 -> $3 (-> $VERSION)" else echo "$2 -> $3" From cf1110ecea4feec3fb892a881389c6ca9b867217 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 23 Sep 2014 23:46:23 -0700 Subject: [PATCH 0197/1426] Quote $NVM_DIR in commands --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 99b5b37..efacc4a 100755 --- a/install.sh +++ b/install.sh @@ -44,7 +44,7 @@ install_nvm_from_git() { mkdir -p "$NVM_DIR" git clone "$NVM_SOURCE" "$NVM_DIR" fi - cd $NVM_DIR && git checkout v0.16.1 && git branch -D master || true + cd "$NVM_DIR" && git checkout v0.16.1 && git branch -D master || true } install_nvm_as_script() { From db0051753aad8fed98b4052f37f7c613e74ee3b3 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 23 Sep 2014 23:47:17 -0700 Subject: [PATCH 0198/1426] Compare shell variable contents with a sentinel. --- install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index efacc4a..c4ed1db 100755 --- a/install.sh +++ b/install.sh @@ -76,14 +76,14 @@ if [ -z "$METHOD" ]; then exit 1 fi else - if [ "$METHOD" = "git" ]; then + if [ "~$METHOD" = "~git" ]; then if ! nvm_has "git"; then echo >&2 "You need git to install nvm" exit 1 fi install_nvm_from_git fi - if [ "$METHOD" = "script" ]; then + if [ "~$METHOD" = "~script" ]; then if ! nvm_has "nvm_download"; then echo >&2 "You need curl or wget to install nvm" exit 1 From 4f081ce4be408bba5881b3a55d59a4dfc1aee7a5 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 23 Sep 2014 23:48:31 -0700 Subject: [PATCH 0199/1426] Collapsing some if/else conditions with elif --- install.sh | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/install.sh b/install.sh index c4ed1db..e72447a 100755 --- a/install.sh +++ b/install.sh @@ -75,21 +75,18 @@ if [ -z "$METHOD" ]; then echo >&2 "You need git, curl, or wget to install nvm" exit 1 fi -else - if [ "~$METHOD" = "~git" ]; then - if ! nvm_has "git"; then - echo >&2 "You need git to install nvm" - exit 1 - fi - install_nvm_from_git +elif [ "~$METHOD" = "~git" ]; then + if ! nvm_has "git"; then + echo >&2 "You need git to install nvm" + exit 1 fi - if [ "~$METHOD" = "~script" ]; then - if ! nvm_has "nvm_download"; then - echo >&2 "You need curl or wget to install nvm" - exit 1 - fi - install_nvm_as_script + install_nvm_from_git +elif [ "~$METHOD" = "~script" ]; then + if ! nvm_has "nvm_download"; then + echo >&2 "You need curl or wget to install nvm" + exit 1 fi + install_nvm_as_script fi echo From 51f6109f8d23c3a4e3d6711f5b0f3219b3459785 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 23 Sep 2014 23:49:10 -0700 Subject: [PATCH 0200/1426] Use $() instead of backticks; add quotes --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index db22494..2aa7589 100644 --- a/nvm.sh +++ b/nvm.sh @@ -161,7 +161,7 @@ nvm_version() { return $? fi - VERSION=`nvm_ls $PATTERN | tail -n1` + VERSION="$(nvm_ls "$PATTERN" | tail -n1)" echo "$VERSION" if [ "$VERSION" = 'N/A' ]; then @@ -173,7 +173,7 @@ nvm_remote_version() { local PATTERN PATTERN=$1 local VERSION - VERSION=`nvm_ls_remote $PATTERN | tail -n1` + VERSION="$(nvm_ls_remote "$PATTERN" | tail -n1)" echo "$VERSION" if [ "$VERSION" = 'N/A' ]; then From ce69c8413eb82cb59dc29fabbd49fbe40e8d0e0c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 23 Sep 2014 23:49:51 -0700 Subject: [PATCH 0201/1426] More shellcheck recommendations --- nvm.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index 2aa7589..4007dd6 100644 --- a/nvm.sh +++ b/nvm.sh @@ -171,12 +171,12 @@ nvm_version() { nvm_remote_version() { local PATTERN - PATTERN=$1 + PATTERN="$1" local VERSION VERSION="$(nvm_ls_remote "$PATTERN" | tail -n1)" echo "$VERSION" - if [ "$VERSION" = 'N/A' ]; then + if [ "~$VERSION" = '~N/A' ]; then return 3 fi } @@ -251,7 +251,7 @@ nvm_ls() { fi if [ -f "$NVM_DIR/alias/$PATTERN" ]; then - nvm_version `cat $NVM_DIR/alias/$PATTERN` + nvm_version "$(cat "$NVM_DIR/alias/$PATTERN")" return fi # If it looks like an explicit version, don't do anything funny From 6fde3797073fcd1caeecda4b5d670354534d8f81 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 23 Sep 2014 23:50:12 -0700 Subject: [PATCH 0202/1426] Use _ instead of ~ as a sentinel --- nvm.sh | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/nvm.sh b/nvm.sh index 4007dd6..da7eb82 100644 --- a/nvm.sh +++ b/nvm.sh @@ -176,7 +176,7 @@ nvm_remote_version() { VERSION="$(nvm_ls_remote "$PATTERN" | tail -n1)" echo "$VERSION" - if [ "~$VERSION" = '~N/A' ]; then + if [ "_$VERSION" = '_N/A' ]; then return 3 fi } @@ -255,16 +255,16 @@ nvm_ls() { return fi # If it looks like an explicit version, don't do anything funny - if [ "~$(echo "$PATTERN" | cut -c1-1)" = "~v" ] && [ "~$(nvm_num_version_groups "$PATTERN")" = "~3" ]; then + if [ "_$(echo "$PATTERN" | cut -c1-1)" = "_v" ] && [ "_$(nvm_num_version_groups "$PATTERN")" = "_3" ]; then if [ -d "$(nvm_version_path "$PATTERN")" ]; then VERSIONS="$PATTERN" fi else PATTERN=$(nvm_format_version $PATTERN) - if [ "~$PATTERN" != "~system" ]; then + if [ "_$PATTERN" != "_system" ]; then local NUM_VERSION_GROUPS NUM_VERSION_GROUPS="$(nvm_num_version_groups "$PATTERN")" - if [ "~$NUM_VERSION_GROUPS" = "~2" ] || [ "~$NUM_VERSION_GROUPS" = "~1" ]; then + if [ "_$NUM_VERSION_GROUPS" = "_2" ] || [ "_$NUM_VERSION_GROUPS" = "_1" ]; then PATTERN="$(echo "$PATTERN" | sed -e 's/\.*$//g')." fi fi @@ -477,7 +477,7 @@ nvm() { while [ $# -ne 0 ] do - if [ "~$(echo "$1" | cut -c 1-21)" = "~--copy-packages-from=" ]; then + if [ "_$(echo "$1" | cut -c 1-21)" = "_--copy-packages-from=" ]; then PROVIDED_COPY_PACKAGES_FROM="$(echo "$1" | cut -c 22-)" COPY_PACKAGES_FROM="$(nvm_version "$PROVIDED_COPY_PACKAGES_FROM")" else @@ -486,17 +486,17 @@ nvm() { shift done - if [ "~$(nvm_format_version "$PROVIDED_COPY_PACKAGES_FROM")" = "~$VERSION" ]; then + if [ "_$(nvm_format_version "$PROVIDED_COPY_PACKAGES_FROM")" = "_$VERSION" ]; then echo "You can't copy global packages from the same version of node you're installing." >&2 return 4 - elif [ ! -z "$PROVIDED_COPY_PACKAGES_FROM" ] && [ "~$COPY_PACKAGES_FROM" = "~N/A" ]; then + elif [ ! -z "$PROVIDED_COPY_PACKAGES_FROM" ] && [ "_$COPY_PACKAGES_FROM" = "_N/A" ]; then echo "If --copy-packages-from is provided, it must point to an installed version of node." >&2 return 5 fi if [ -d "$(nvm_version_path "$VERSION")" ]; then echo "$VERSION is already installed." >&2 - if nvm use "$VERSION" && [ ! -z "$COPY_PACKAGES_FROM" ] && [ "~$COPY_PACKAGES_FROM" != "~N/A" ]; then + if nvm use "$VERSION" && [ ! -z "$COPY_PACKAGES_FROM" ] && [ "_$COPY_PACKAGES_FROM" != "_N/A" ]; then nvm copy-packages "$COPY_PACKAGES_FROM" fi return $? @@ -528,7 +528,7 @@ nvm() { mv "$tmpdir" "$(nvm_version_path "$VERSION")" ) then - if nvm use "$VERSION" && [ ! -z "$COPY_PACKAGES_FROM" ] && [ "~$COPY_PACKAGES_FROM" != "~N/A" ]; then + if nvm use "$VERSION" && [ ! -z "$COPY_PACKAGES_FROM" ] && [ "_$COPY_PACKAGES_FROM" != "_N/A" ]; then nvm copy-packages "$COPY_PACKAGES_FROM" fi return $? @@ -574,7 +574,7 @@ nvm() { $make $MAKE_CXX install ) then - if nvm use "$VERSION" && [ ! -z "$COPY_PACKAGES_FROM" ] && [ "~$COPY_PACKAGES_FROM" != "~N/A" ]; then + if nvm use "$VERSION" && [ ! -z "$COPY_PACKAGES_FROM" ] && [ "_$COPY_PACKAGES_FROM" != "_N/A" ]; then nvm copy-packages "$COPY_PACKAGES_FROM" fi if ! nvm_has "npm" ; then @@ -813,7 +813,7 @@ nvm() { if [ -e "$ALIAS" ]; then DEST="$(cat "$ALIAS")" VERSION="$(nvm_version "$DEST")" - if [ "~$DEST" = "~$VERSION" ]; then + if [ "_$DEST" = "_$VERSION" ]; then echo "$(basename "$ALIAS") -> $DEST" else echo "$(basename "$ALIAS") -> $DEST (-> $VERSION)" @@ -832,7 +832,7 @@ nvm() { echo "! WARNING: Version '$3' does not exist." >&2 fi echo $3 > "$NVM_DIR/alias/$2" - if [ ! "~$3" = "~$VERSION" ]; then + if [ ! "_$3" = "_$VERSION" ]; then echo "$2 -> $3 (-> $VERSION)" else echo "$2 -> $3" From 444efdb08bd18fbc7d56c5a434f12a9cccaf8501 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 23 Sep 2014 23:51:02 -0700 Subject: [PATCH 0203/1426] Adding some more quotes and $() --- nvm.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/nvm.sh b/nvm.sh index da7eb82..ce1ead0 100644 --- a/nvm.sh +++ b/nvm.sh @@ -301,7 +301,7 @@ nvm_ls_remote() { local GREP_OPTIONS GREP_OPTIONS='' if [ -n "$PATTERN" ]; then - PATTERN=`nvm_format_version "$PATTERN"` + PATTERN="$(nvm_format_version "$PATTERN")" else PATTERN=".*" fi @@ -319,14 +319,14 @@ nvm_ls_remote() { nvm_checksum() { if nvm_has "sha1sum"; then - checksum=$(sha1sum $1 | \awk '{print $1}') + checksum="$(sha1sum "$1" | \awk '{print $1}')" elif nvm_has "sha1"; then - checksum=$(sha1 -q $1) + checksum="$(sha1 -q "$1")" else - checksum=$(shasum $1 | \awk '{print $1}') + checksum="$(shasum "$1" | \awk '{print $1}')" fi - if [ "$checksum" = "$2" ]; then + if [ "_$checksum" = "_$2" ]; then return elif [ -z "$2" ]; then echo 'Checksums empty' #missing in raspberry pi binary @@ -470,7 +470,7 @@ nvm() { shift fi - VERSION=`nvm_remote_version $provided_version` + VERSION="$(nvm_remote_version "$provided_version")" ADDITIONAL_PARAMETERS='' local PROVIDED_COPY_PACKAGES_FROM local COPY_PACKAGES_FROM From 53f9841c6c9bcf096fd3a04ae942308d792cbea6 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 24 Sep 2014 14:58:07 -0700 Subject: [PATCH 0204/1426] v0.17.0 --- README.markdown | 6 +++--- install.sh | 4 ++-- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.markdown b/README.markdown index 8143c32..b36508b 100644 --- a/README.markdown +++ b/README.markdown @@ -8,11 +8,11 @@ First you'll need to make sure your system has a c++ compiler. For OSX, XCode w To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.16.1/install.sh | bash + curl https://raw.githubusercontent.com/creationix/nvm/v0.17.0/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.16.1/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.17.0/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -169,7 +169,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.16.1/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.17.0/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin diff --git a/install.sh b/install.sh index e72447a..4d6b3ee 100755 --- a/install.sh +++ b/install.sh @@ -44,12 +44,12 @@ install_nvm_from_git() { mkdir -p "$NVM_DIR" git clone "$NVM_SOURCE" "$NVM_DIR" fi - cd "$NVM_DIR" && git checkout v0.16.1 && git branch -D master || true + cd "$NVM_DIR" && git checkout v0.17.0 && git branch -D master || true } install_nvm_as_script() { if [ -z "$NVM_SOURCE" ]; then - NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.16.1/nvm.sh" + NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.17.0/nvm.sh" fi # Downloading to $NVM_DIR diff --git a/nvm.sh b/nvm.sh index ce1ead0..6260013 100644 --- a/nvm.sh +++ b/nvm.sh @@ -883,7 +883,7 @@ nvm() { nvm_version $2 ;; "--version" ) - echo "0.16.1" + echo "0.17.0" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version nvm_version_greater nvm_version_greater_than_or_equal_to > /dev/null 2>&1 diff --git a/package.json b/package.json index 2489df9..ba7c276 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.16.1", + "version": "0.17.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 5ad00f13fa7bf7bf75f0fb6587e3e8bbf85c297b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 25 Sep 2014 22:10:48 -0700 Subject: [PATCH 0205/1426] Suppress error messages in case there's no `master` branch. Fixes #533. --- install.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 4d6b3ee..ee317dd 100755 --- a/install.sh +++ b/install.sh @@ -44,7 +44,8 @@ install_nvm_from_git() { mkdir -p "$NVM_DIR" git clone "$NVM_SOURCE" "$NVM_DIR" fi - cd "$NVM_DIR" && git checkout v0.17.0 && git branch -D master || true + cd "$NVM_DIR" && git checkout v0.17.0 && git branch -D master >/dev/null 2>&1 + return } install_nvm_as_script() { From 4cf56ae1866aa6cd2caf095387d686bb8d1102d1 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 26 Sep 2014 23:22:38 -0700 Subject: [PATCH 0206/1426] Remove unnecessary local var declaration. Fixes #535 --- nvm.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 6260013..f3a7581 100644 --- a/nvm.sh +++ b/nvm.sh @@ -808,7 +808,6 @@ nvm() { mkdir -p "$NVM_DIR/alias" if [ $# -le 2 ]; then local DEST - local ALIAS for ALIAS in "$NVM_DIR"/alias/"$2"*; do if [ -e "$ALIAS" ]; then DEST="$(cat "$ALIAS")" From 145da7eef84bd40a1cbb113905c4c87bccc616c8 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 26 Sep 2014 23:22:56 -0700 Subject: [PATCH 0207/1426] v0.17.1 --- README.markdown | 6 +++--- install.sh | 4 ++-- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.markdown b/README.markdown index b36508b..86f8456 100644 --- a/README.markdown +++ b/README.markdown @@ -8,11 +8,11 @@ First you'll need to make sure your system has a c++ compiler. For OSX, XCode w To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.17.0/install.sh | bash + curl https://raw.githubusercontent.com/creationix/nvm/v0.17.1/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.17.0/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.17.1/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -169,7 +169,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.17.0/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.17.1/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin diff --git a/install.sh b/install.sh index ee317dd..a924fa0 100755 --- a/install.sh +++ b/install.sh @@ -44,13 +44,13 @@ install_nvm_from_git() { mkdir -p "$NVM_DIR" git clone "$NVM_SOURCE" "$NVM_DIR" fi - cd "$NVM_DIR" && git checkout v0.17.0 && git branch -D master >/dev/null 2>&1 + cd "$NVM_DIR" && git checkout v0.17.1 && git branch -D master >/dev/null 2>&1 return } install_nvm_as_script() { if [ -z "$NVM_SOURCE" ]; then - NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.17.0/nvm.sh" + NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.17.1/nvm.sh" fi # Downloading to $NVM_DIR diff --git a/nvm.sh b/nvm.sh index f3a7581..b1a11b5 100644 --- a/nvm.sh +++ b/nvm.sh @@ -882,7 +882,7 @@ nvm() { nvm_version $2 ;; "--version" ) - echo "0.17.0" + echo "0.17.1" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version nvm_version_greater nvm_version_greater_than_or_equal_to > /dev/null 2>&1 diff --git a/package.json b/package.json index ba7c276..ce4a66d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.17.0", + "version": "0.17.1", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 4a8a5a1180a5a1166a1ac72d28a679f794c3e80f Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 27 Sep 2014 17:25:52 -0700 Subject: [PATCH 0208/1426] Shell-quoting some more things. --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index b1a11b5..3e81cad 100644 --- a/nvm.sh +++ b/nvm.sh @@ -765,13 +765,13 @@ nvm() { shift local provided_version - provided_version=$1 + provided_version="$1" if [ -n "$provided_version" ]; then VERSION=`nvm_version $provided_version` if [ $VERSION = "N/A" ]; then provided_version='' nvm_rc_version - VERSION=`nvm_version $NVM_RC_VERSION` + VERSION="$(nvm_version "$NVM_RC_VERSION")" else shift fi From 25bd2bb018734f8566e88c96bf64172260021ac2 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 28 Sep 2014 09:41:02 -0700 Subject: [PATCH 0209/1426] Make `nvm ls-remote` return nvm_ls_remote's exit code. --- nvm.sh | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index 3e81cad..cf29cef 100644 --- a/nvm.sh +++ b/nvm.sh @@ -296,7 +296,7 @@ nvm_ls() { nvm_ls_remote() { local PATTERN - PATTERN=$1 + PATTERN="$1" local VERSIONS local GREP_OPTIONS GREP_OPTIONS='' @@ -798,8 +798,11 @@ nvm() { return $NVM_LS_EXIT_CODE ;; "ls-remote" | "list-remote" ) - nvm_print_versions "`nvm_ls_remote $2`" - return + local NVM_LS_EXIT_CODE + NVM_LS_OUTPUT=$(nvm_ls_remote "$2") + NVM_LS_EXIT_CODE=$? + nvm_print_versions "$NVM_LS_OUTPUT" + return $NVM_LS_EXIT_CODE ;; "current" ) nvm_version current From 59bfdb98632b1dea955fce02f85f7fc951dc92d9 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 28 Sep 2014 09:54:35 -0700 Subject: [PATCH 0210/1426] Making sure fast alias tests do their own teardown. --- test/fast/Aliases/teardown_dir | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100755 test/fast/Aliases/teardown_dir diff --git a/test/fast/Aliases/teardown_dir b/test/fast/Aliases/teardown_dir new file mode 100755 index 0000000..f56fbce --- /dev/null +++ b/test/fast/Aliases/teardown_dir @@ -0,0 +1,7 @@ +#!/bin/sh + +for i in $(seq 1 10) + do + rm -f "../../../alias/test$i" +done + From 3c66c205705dac499f052ac058c0ad0bc144f6ee Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 28 Sep 2014 10:07:50 -0700 Subject: [PATCH 0211/1426] Improving "nvm alias" tests to test for all cases. --- ...ng \"nvm alias\" should list all aliases." | 26 ++++++++++++++++++- test/fast/Aliases/setup_dir | 3 ++- test/fast/Aliases/teardown_dir | 1 + 3 files changed, 28 insertions(+), 2 deletions(-) diff --git "a/test/fast/Aliases/Running \"nvm alias\" should list all aliases." "b/test/fast/Aliases/Running \"nvm alias\" should list all aliases." index 42b1945..43bbb54 100755 --- "a/test/fast/Aliases/Running \"nvm alias\" should list all aliases." +++ "b/test/fast/Aliases/Running \"nvm alias\" should list all aliases." @@ -1,4 +1,28 @@ #!/bin/sh . ../../../nvm.sh -[ $(nvm alias | wc -l) = '10' ] + +die () { echo $@ ; exit 1; } + +NVM_ALIAS_OUTPUT=$(nvm alias) +echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test1 -> 0.0.1 (-> v0.0.1)$' \ + || die "did not find test1 alias" +echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test2 -> 0.0.2 (-> v0.0.2)$' \ + || die "did not find test2 alias" +echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test3 -> 0.0.3 (-> v0.0.3)$' \ + || die "did not find test3 alias" +echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test4 -> 0.0.4 (-> v0.0.4)$' \ + || die "did not find test4 alias" +echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test5 -> 0.0.5 (-> v0.0.5)$' \ + || die "did not find test5 alias" +echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test6 -> 0.0.6 (-> v0.0.6)$' \ + || die "did not find test6 alias" +echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test7 -> 0.0.7 (-> v0.0.7)$' \ + || die "did not find test7 alias" +echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test8 -> 0.0.8 (-> v0.0.8)$' \ + || die "did not find test8 alias" +echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test9 -> 0.0.9 (-> v0.0.9)$' \ + || die "did not find test9 alias" +echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test10 -> 0.0.10 (-> v0.0.10)$' \ + || die "did not find test10 alias" + diff --git a/test/fast/Aliases/setup_dir b/test/fast/Aliases/setup_dir index 3649602..f48c744 100755 --- a/test/fast/Aliases/setup_dir +++ b/test/fast/Aliases/setup_dir @@ -2,5 +2,6 @@ for i in $(seq 1 10) do - echo v0.0.$i > ../../../alias/test$i + echo 0.0.$i > ../../../alias/test$i + mkdir -p ../../../v0.0.$i done diff --git a/test/fast/Aliases/teardown_dir b/test/fast/Aliases/teardown_dir index f56fbce..8ea87ce 100755 --- a/test/fast/Aliases/teardown_dir +++ b/test/fast/Aliases/teardown_dir @@ -3,5 +3,6 @@ for i in $(seq 1 10) do rm -f "../../../alias/test$i" + rm -rf "../../../v0.0.$i" done From be605cb12bf747a228ee46aec54a3961f2c4e142 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 28 Sep 2014 10:18:00 -0700 Subject: [PATCH 0212/1426] Adding a failing test: `nvm ls 0.0.x` includes `v0.0.xy` --- ....0.2\" should display only version 0.0.2." | 21 +++++++++++++++++++ test/fast/Listing versions/teardown | 2 ++ 2 files changed, 23 insertions(+) create mode 100755 "test/fast/Listing versions/Running \"nvm ls 0.0.2\" should display only version 0.0.2." diff --git "a/test/fast/Listing versions/Running \"nvm ls 0.0.2\" should display only version 0.0.2." "b/test/fast/Listing versions/Running \"nvm ls 0.0.2\" should display only version 0.0.2." new file mode 100755 index 0000000..c2b7a63 --- /dev/null +++ "b/test/fast/Listing versions/Running \"nvm ls 0.0.2\" should display only version 0.0.2." @@ -0,0 +1,21 @@ +#!/bin/sh + +mkdir ../../../v0.0.2 +mkdir ../../../v0.0.20 + +. ../../../nvm.sh + +die () { echo $@ ; exit 1; } + +# The result should contain only the appropriate version numbers. + +nvm ls 0.0.2 | grep 'v0.0.2' > /dev/null +if [ $? -eq 0 ]; then + echo '"nvm ls 0.0.2" contained v0.0.2' +fi + +nvm ls 0.0.2 | grep 'v0.0.20' > /dev/null +if [ $? -eq 0 ]; then + die '"nvm ls 0.0.2" contained v0.0.20' +fi + diff --git a/test/fast/Listing versions/teardown b/test/fast/Listing versions/teardown index c230c3c..3c5f013 100755 --- a/test/fast/Listing versions/teardown +++ b/test/fast/Listing versions/teardown @@ -1,6 +1,8 @@ rmdir ../../../v0.0.1 >/dev/null 2>&1 +rmdir ../../../v0.0.2 >/dev/null 2>&1 rmdir ../../../v0.0.3 >/dev/null 2>&1 rmdir ../../../v0.0.9 >/dev/null 2>&1 +rmdir ../../../v0.0.20 >/dev/null 2>&1 rmdir ../../../v0.1.2 >/dev/null 2>&1 rmdir ../../../v0.1.3 >/dev/null 2>&1 rmdir ../../../v0.2.3 >/dev/null 2>&1 From b707d8b0721a7bd085d35e87793f348705832fea Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 28 Sep 2014 10:14:27 -0700 Subject: [PATCH 0213/1426] nvm_ls: format the version immediately, so that `nvm ls 0.0.1` doesn't return `nvm ls 0.0.10` --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index cf29cef..03ac31a 100644 --- a/nvm.sh +++ b/nvm.sh @@ -255,12 +255,12 @@ nvm_ls() { return fi # If it looks like an explicit version, don't do anything funny - if [ "_$(echo "$PATTERN" | cut -c1-1)" = "_v" ] && [ "_$(nvm_num_version_groups "$PATTERN")" = "_3" ]; then + PATTERN=$(nvm_format_version $PATTERN) + if [ "_$(echo "$PATTERN" | cut -c1-1)" = "_v" ] && [ "_$(nvm_num_version_groups "$PATTERN")" = "_3" ]; then if [ -d "$(nvm_version_path "$PATTERN")" ]; then VERSIONS="$PATTERN" fi else - PATTERN=$(nvm_format_version $PATTERN) if [ "_$PATTERN" != "_system" ]; then local NUM_VERSION_GROUPS NUM_VERSION_GROUPS="$(nvm_num_version_groups "$PATTERN")" From 9aec19a6922d4c70e5ee1443e9b624aebc369902 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 28 Sep 2014 15:38:49 -0700 Subject: [PATCH 0214/1426] Update bash completion commands for nvm --- bash_completion | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/bash_completion b/bash_completion index 6f80584..050aa75 100644 --- a/bash_completion +++ b/bash_completion @@ -18,9 +18,11 @@ __nvm_commands () current_word="${COMP_WORDS[COMP_CWORD]}" COMMANDS='\ - help install uninstall use run\ - ls ls-remote list list-remote deactivate\ - alias unalias copy-packages clear-cache version' + help install uninstall use run exec\ + alias unalias copy-packages + current list ls list-remote ls-remote\ + clear-cache deactivate unload + version' if [ ${#COMP_WORDS[@]} == 4 ]; then From 3e4613fd66aef2cb8e9b137e4a08880fb5c3dc17 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 28 Sep 2014 16:04:37 -0700 Subject: [PATCH 0215/1426] Don't output `nvm deactivate` output when running `nvm use system` --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 03ac31a..e1ef5df 100644 --- a/nvm.sh +++ b/nvm.sh @@ -667,7 +667,7 @@ nvm() { fi else if [ $2 = 'system' ]; then - if nvm_has_system_node && nvm deactivate; then + if nvm_has_system_node && nvm deactivate >/dev/null; then echo "Now using system version of node: $(node -v 2>/dev/null)." return else From d5fe657382e96e40ec4dd5966eaec738134a3089 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 28 Sep 2014 16:40:53 -0700 Subject: [PATCH 0216/1426] Ensure `nvm_rc_version` always modifies $NVM_RC_VERSION, rather than retaining its value from previous runs. --- nvm.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/nvm.sh b/nvm.sh index e1ef5df..d6380cd 100644 --- a/nvm.sh +++ b/nvm.sh @@ -93,6 +93,7 @@ nvm_find_nvmrc() { # Obtain nvm version from rc file nvm_rc_version() { + export NVM_RC_VERSION='' local NVMRC_PATH NVMRC_PATH="$(nvm_find_nvmrc)" if [ -e "$NVMRC_PATH" ]; then From 804f2759f8318deabcf3f9be42f9205b27100dd1 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 28 Sep 2014 16:43:40 -0700 Subject: [PATCH 0217/1426] Ensure that `nvm use` works when .nvmrc contains "system" --- nvm.sh | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/nvm.sh b/nvm.sh index d6380cd..9722816 100644 --- a/nvm.sh +++ b/nvm.sh @@ -666,26 +666,26 @@ nvm() { if [ -n "$NVM_RC_VERSION" ]; then VERSION=`nvm_version $NVM_RC_VERSION` fi + elif [ "_$2" != '_system' ]; then + VERSION="$(nvm_version "$2")" else - if [ $2 = 'system' ]; then - if nvm_has_system_node && nvm deactivate >/dev/null; then - echo "Now using system version of node: $(node -v 2>/dev/null)." - return - else - echo "System version of node not found." >&2 - return 127 - fi - else - VERSION=`nvm_version $2` - fi + VERSION="$2" fi if [ -z "$VERSION" ]; then nvm help return 127 fi - if [ -z "$VERSION" ]; then - VERSION=`nvm_version $2` + + if [ "_$VERSION" = '_system' ]; then + if nvm_has_system_node && nvm deactivate >/dev/null; then + echo "Now using system version of node: $(node -v 2>/dev/null)." + return + else + echo "System version of node not found." >&2 + return 127 + fi fi + local NVM_VERSION_DIR NVM_VERSION_DIR="$(nvm_version_path "$VERSION")" if [ ! -d "$NVM_VERSION_DIR" ]; then From ff92ba7f43c52a4f7fec561f3d9593dd6cfb06d2 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 28 Sep 2014 16:43:52 -0700 Subject: [PATCH 0218/1426] Silence more secondary "deactivate" output. --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 9722816..9bc1894 100644 --- a/nvm.sh +++ b/nvm.sh @@ -28,7 +28,7 @@ nvm_download() { } nvm_has_system_node() { - [ "$(nvm deactivate 2> /dev/null && command -v node)" != '' ] + [ "$(nvm deactivate >/dev/null 2>&1 && command -v node)" != '' ] } # Make zsh glob matching behave same as bash @@ -677,7 +677,7 @@ nvm() { fi if [ "_$VERSION" = '_system' ]; then - if nvm_has_system_node && nvm deactivate >/dev/null; then + if nvm_has_system_node && nvm deactivate >/dev/null 2>&1; then echo "Now using system version of node: $(node -v 2>/dev/null)." return else From 050a2ee9d38c700e04f6dc51153ee0541cc45eb4 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 28 Sep 2014 18:02:33 -0700 Subject: [PATCH 0219/1426] nvm_remote_version: add unit tests `nvm_ls_remote` is stubbed out to avoid making network calls here. --- test/fast/Unit tests/nvm_remote_version | 35 +++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100755 test/fast/Unit tests/nvm_remote_version diff --git a/test/fast/Unit tests/nvm_remote_version b/test/fast/Unit tests/nvm_remote_version new file mode 100755 index 0000000..f7fc377 --- /dev/null +++ b/test/fast/Unit tests/nvm_remote_version @@ -0,0 +1,35 @@ +#!/bin/sh + +die () { echo $@ ; cleanup ; exit 1; } + +cleanup() { + unset -f nvm_ls_remote +} + +. ../../../nvm.sh + +nvm_ls_remote() { + echo "N/A" +} + +OUTPUT="$(nvm_remote_version foo)" +EXIT_CODE="$(nvm_remote_version foo >/dev/null 2>&1 ; echo $?)" + +[ "_$OUTPUT" = "_N/A" ] || die "nonexistent version did not report N/A" +[ "_$EXIT_CODE" = "_3" ] || die "nonexistent version did not exit with code 3, got $EXIT_CODE" + +nvm_ls_remote() { + echo "test output" + echo "more test output" + echo "pattern received: _$1_" +} + +OUTPUT="$(nvm_remote_version foo)" +EXIT_CODE="$(nvm_remote_version foo >/dev/null 2>&1 ; echo $?)" + +[ "_$OUTPUT" = "_pattern received: _foo_" ] \ + || die "nvm_remote_version foo did not return last line only of nvm_ls_remote foo; got $OUTPUT" +[ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_version foo did not exit with 0, got $EXIT_CODE" + +cleanup + From cd4fc8fb2c95958f78062a87fdd6e1f5ae3d474c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 28 Sep 2014 22:00:20 -0700 Subject: [PATCH 0220/1426] Adding unit tests for `nvm_ls_remote` `nvm_download` is stubbed, to avoid making network calls. --- test/fast/Unit tests/nvm_ls_remote | 468 +++++++++++++++++++++++++++++ 1 file changed, 468 insertions(+) create mode 100755 test/fast/Unit tests/nvm_ls_remote diff --git a/test/fast/Unit tests/nvm_ls_remote b/test/fast/Unit tests/nvm_ls_remote new file mode 100755 index 0000000..c6f2e7c --- /dev/null +++ b/test/fast/Unit tests/nvm_ls_remote @@ -0,0 +1,468 @@ +#!/bin/sh + +die () { echo $@ ; cleanup ; exit 1; } + +cleanup() { + unset -f nvm_download +} + +. ../../../nvm.sh + +# sample output at the time the test was written +nvm_download() { + echo 'foo "v0.10.0' + echo 'foo "v0.10.0' + echo 'foo "v0.10.1' + echo 'foo "v0.10.1' + echo 'foo "v0.10.10' + echo 'foo "v0.10.10' + echo 'foo "v0.10.11' + echo 'foo "v0.10.11' + echo 'foo "v0.10.12' + echo 'foo "v0.10.12' + echo 'foo "v0.10.13' + echo 'foo "v0.10.13' + echo 'foo "v0.10.14' + echo 'foo "v0.10.14' + echo 'foo "v0.10.15' + echo 'foo "v0.10.15' + echo 'foo "v0.10.16' + echo 'foo "v0.10.16' + echo 'foo "v0.10.16' + echo 'foo "v0.10.16' + echo 'foo "v0.10.17' + echo 'foo "v0.10.17' + echo 'foo "v0.10.18' + echo 'foo "v0.10.18' + echo 'foo "v0.10.19' + echo 'foo "v0.10.19' + echo 'foo "v0.10.2' + echo 'foo "v0.10.2' + echo 'foo "v0.10.20' + echo 'foo "v0.10.20' + echo 'foo "v0.10.21' + echo 'foo "v0.10.21' + echo 'foo "v0.10.22' + echo 'foo "v0.10.22' + echo 'foo "v0.10.23' + echo 'foo "v0.10.23' + echo 'foo "v0.10.24' + echo 'foo "v0.10.24' + echo 'foo "v0.10.25' + echo 'foo "v0.10.25' + echo 'foo "v0.10.26' + echo 'foo "v0.10.26' + echo 'foo "v0.10.27' + echo 'foo "v0.10.27' + echo 'foo "v0.10.28' + echo 'foo "v0.10.28' + echo 'foo "v0.10.29' + echo 'foo "v0.10.29' + echo 'foo "v0.10.3' + echo 'foo "v0.10.3' + echo 'foo "v0.10.30' + echo 'foo "v0.10.30' + echo 'foo "v0.10.31' + echo 'foo "v0.10.31' + echo 'foo "v0.10.32' + echo 'foo "v0.10.32' + echo 'foo "v0.10.4' + echo 'foo "v0.10.4' + echo 'foo "v0.10.5' + echo 'foo "v0.10.5' + echo 'foo "v0.10.6' + echo 'foo "v0.10.6' + echo 'foo "v0.10.7' + echo 'foo "v0.10.7' + echo 'foo "v0.10.8' + echo 'foo "v0.10.8' + echo 'foo "v0.10.9' + echo 'foo "v0.10.9' + echo 'foo "v0.11.0' + echo 'foo "v0.11.0' + echo 'foo "v0.11.1' + echo 'foo "v0.11.1' + echo 'foo "v0.11.10' + echo 'foo "v0.11.10' + echo 'foo "v0.11.11' + echo 'foo "v0.11.11' + echo 'foo "v0.11.12' + echo 'foo "v0.11.12' + echo 'foo "v0.11.13' + echo 'foo "v0.11.13' + echo 'foo "v0.11.14' + echo 'foo "v0.11.14' + echo 'foo "v0.11.2' + echo 'foo "v0.11.2' + echo 'foo "v0.11.3' + echo 'foo "v0.11.3' + echo 'foo "v0.11.4' + echo 'foo "v0.11.4' + echo 'foo "v0.11.5' + echo 'foo "v0.11.5' + echo 'foo "v0.11.6' + echo 'foo "v0.11.6' + echo 'foo "v0.11.7' + echo 'foo "v0.11.7' + echo 'foo "v0.11.8' + echo 'foo "v0.11.8' + echo 'foo "v0.11.9' + echo 'foo "v0.11.9' + echo 'foo "v0.5.1' + echo 'foo "v0.5.1' + echo 'foo "v0.5.10' + echo 'foo "v0.5.10' + echo 'foo "v0.5.2' + echo 'foo "v0.5.2' + echo 'foo "v0.5.3' + echo 'foo "v0.5.3' + echo 'foo "v0.5.4' + echo 'foo "v0.5.4' + echo 'foo "v0.5.5' + echo 'foo "v0.5.5' + echo 'foo "v0.5.6' + echo 'foo "v0.5.6' + echo 'foo "v0.5.7' + echo 'foo "v0.5.7' + echo 'foo "v0.5.8' + echo 'foo "v0.5.8' + echo 'foo "v0.5.9' + echo 'foo "v0.5.9' + echo 'foo "v0.6.0' + echo 'foo "v0.6.0' + echo 'foo "v0.6.1' + echo 'foo "v0.6.1' + echo 'foo "v0.6.10' + echo 'foo "v0.6.10' + echo 'foo "v0.6.11' + echo 'foo "v0.6.11' + echo 'foo "v0.6.12' + echo 'foo "v0.6.12' + echo 'foo "v0.6.13' + echo 'foo "v0.6.13' + echo 'foo "v0.6.14' + echo 'foo "v0.6.14' + echo 'foo "v0.6.15' + echo 'foo "v0.6.15' + echo 'foo "v0.6.16' + echo 'foo "v0.6.16' + echo 'foo "v0.6.17' + echo 'foo "v0.6.17' + echo 'foo "v0.6.18' + echo 'foo "v0.6.18' + echo 'foo "v0.6.19' + echo 'foo "v0.6.19' + echo 'foo "v0.6.2' + echo 'foo "v0.6.2' + echo 'foo "v0.6.20' + echo 'foo "v0.6.20' + echo 'foo "v0.6.21' + echo 'foo "v0.6.21' + echo 'foo "v0.6.3' + echo 'foo "v0.6.3' + echo 'foo "v0.6.4' + echo 'foo "v0.6.4' + echo 'foo "v0.6.5' + echo 'foo "v0.6.5' + echo 'foo "v0.6.6' + echo 'foo "v0.6.6' + echo 'foo "v0.6.7' + echo 'foo "v0.6.7' + echo 'foo "v0.6.8' + echo 'foo "v0.6.8' + echo 'foo "v0.6.9' + echo 'foo "v0.6.9' + echo 'foo "v0.7.0' + echo 'foo "v0.7.0' + echo 'foo "v0.7.1' + echo 'foo "v0.7.1' + echo 'foo "v0.7.10' + echo 'foo "v0.7.10' + echo 'foo "v0.7.11' + echo 'foo "v0.7.11' + echo 'foo "v0.7.12' + echo 'foo "v0.7.12' + echo 'foo "v0.7.2' + echo 'foo "v0.7.2' + echo 'foo "v0.7.3' + echo 'foo "v0.7.3' + echo 'foo "v0.7.4' + echo 'foo "v0.7.4' + echo 'foo "v0.7.5' + echo 'foo "v0.7.5' + echo 'foo "v0.7.6' + echo 'foo "v0.7.6' + echo 'foo "v0.7.7' + echo 'foo "v0.7.7' + echo 'foo "v0.7.8' + echo 'foo "v0.7.8' + echo 'foo "v0.7.9' + echo 'foo "v0.7.9' + echo 'foo "v0.8.0' + echo 'foo "v0.8.0' + echo 'foo "v0.8.1' + echo 'foo "v0.8.1' + echo 'foo "v0.8.10' + echo 'foo "v0.8.10' + echo 'foo "v0.8.11' + echo 'foo "v0.8.11' + echo 'foo "v0.8.12' + echo 'foo "v0.8.12' + echo 'foo "v0.8.13' + echo 'foo "v0.8.13' + echo 'foo "v0.8.14' + echo 'foo "v0.8.14' + echo 'foo "v0.8.15' + echo 'foo "v0.8.15' + echo 'foo "v0.8.16' + echo 'foo "v0.8.16' + echo 'foo "v0.8.17' + echo 'foo "v0.8.17' + echo 'foo "v0.8.18' + echo 'foo "v0.8.18' + echo 'foo "v0.8.19' + echo 'foo "v0.8.19' + echo 'foo "v0.8.2' + echo 'foo "v0.8.2' + echo 'foo "v0.8.20' + echo 'foo "v0.8.20' + echo 'foo "v0.8.21' + echo 'foo "v0.8.21' + echo 'foo "v0.8.22' + echo 'foo "v0.8.22' + echo 'foo "v0.8.23' + echo 'foo "v0.8.23' + echo 'foo "v0.8.24' + echo 'foo "v0.8.24' + echo 'foo "v0.8.25' + echo 'foo "v0.8.25' + echo 'foo "v0.8.26' + echo 'foo "v0.8.26' + echo 'foo "v0.8.27' + echo 'foo "v0.8.27' + echo 'foo "v0.8.28' + echo 'foo "v0.8.28' + echo 'foo "v0.8.3' + echo 'foo "v0.8.3' + echo 'foo "v0.8.4' + echo 'foo "v0.8.4' + echo 'foo "v0.8.5' + echo 'foo "v0.8.5' + echo 'foo "v0.8.6' + echo 'foo "v0.8.6' + echo 'foo "v0.8.7' + echo 'foo "v0.8.7' + echo 'foo "v0.8.8' + echo 'foo "v0.8.8' + echo 'foo "v0.8.9' + echo 'foo "v0.8.9' + echo 'foo "v0.9.0' + echo 'foo "v0.9.0' + echo 'foo "v0.9.1' + echo 'foo "v0.9.1' + echo 'foo "v0.9.10' + echo 'foo "v0.9.10' + echo 'foo "v0.9.11' + echo 'foo "v0.9.11' + echo 'foo "v0.9.12' + echo 'foo "v0.9.12' + echo 'foo "v0.9.2' + echo 'foo "v0.9.2' + echo 'foo "v0.9.3' + echo 'foo "v0.9.3' + echo 'foo "v0.9.4' + echo 'foo "v0.9.4' + echo 'foo "v0.9.5' + echo 'foo "v0.9.5' + echo 'foo "v0.9.6' + echo 'foo "v0.9.6' + echo 'foo "v0.9.7' + echo 'foo "v0.9.7' + echo 'foo "v0.9.8' + echo 'foo "v0.9.8' + echo 'foo "v0.9.9' + echo 'foo "v0.9.9' + echo 'foo "v0.1.100' + echo 'foo "v0.1.100' + echo 'foo "v0.1.101' + echo 'foo "v0.1.101' + echo 'foo "v0.1.102' + echo 'foo "v0.1.102' + echo 'foo "v0.1.103' + echo 'foo "v0.1.103' + echo 'foo "v0.1.104' + echo 'foo "v0.1.104' + echo 'foo "v0.1.14' + echo 'foo "v0.1.14' + echo 'foo "v0.1.15' + echo 'foo "v0.1.15' + echo 'foo "v0.1.16' + echo 'foo "v0.1.16' + echo 'foo "v0.1.17' + echo 'foo "v0.1.17' + echo 'foo "v0.1.18' + echo 'foo "v0.1.18' + echo 'foo "v0.1.19' + echo 'foo "v0.1.19' + echo 'foo "v0.1.20' + echo 'foo "v0.1.20' + echo 'foo "v0.1.21' + echo 'foo "v0.1.21' + echo 'foo "v0.1.22' + echo 'foo "v0.1.22' + echo 'foo "v0.1.23' + echo 'foo "v0.1.23' + echo 'foo "v0.1.24' + echo 'foo "v0.1.24' + echo 'foo "v0.1.25' + echo 'foo "v0.1.25' + echo 'foo "v0.1.26' + echo 'foo "v0.1.26' + echo 'foo "v0.1.27' + echo 'foo "v0.1.27' + echo 'foo "v0.1.28' + echo 'foo "v0.1.28' + echo 'foo "v0.1.29' + echo 'foo "v0.1.29' + echo 'foo "v0.1.30' + echo 'foo "v0.1.30' + echo 'foo "v0.1.31' + echo 'foo "v0.1.31' + echo 'foo "v0.1.32' + echo 'foo "v0.1.32' + echo 'foo "v0.1.33' + echo 'foo "v0.1.33' + echo 'foo "v0.1.90' + echo 'foo "v0.1.90' + echo 'foo "v0.1.91' + echo 'foo "v0.1.91' + echo 'foo "v0.1.92' + echo 'foo "v0.1.92' + echo 'foo "v0.1.93' + echo 'foo "v0.1.93' + echo 'foo "v0.1.94' + echo 'foo "v0.1.94' + echo 'foo "v0.1.95' + echo 'foo "v0.1.95' + echo 'foo "v0.1.96' + echo 'foo "v0.1.96' + echo 'foo "v0.1.97' + echo 'foo "v0.1.97' + echo 'foo "v0.1.98' + echo 'foo "v0.1.98' + echo 'foo "v0.1.99' + echo 'foo "v0.1.99' + echo 'foo "v0.10.14' + echo 'foo "v0.10.14' + echo 'foo "v0.2.0' + echo 'foo "v0.2.0' + echo 'foo "v0.2.1' + echo 'foo "v0.2.1' + echo 'foo "v0.2.2' + echo 'foo "v0.2.2' + echo 'foo "v0.2.3' + echo 'foo "v0.2.3' + echo 'foo "v0.2.4' + echo 'foo "v0.2.4' + echo 'foo "v0.2.5' + echo 'foo "v0.2.5' + echo 'foo "v0.2.6' + echo 'foo "v0.2.6' + echo 'foo "v0.3.0' + echo 'foo "v0.3.0' + echo 'foo "v0.3.1' + echo 'foo "v0.3.1' + echo 'foo "v0.3.2' + echo 'foo "v0.3.2' + echo 'foo "v0.3.3' + echo 'foo "v0.3.3' + echo 'foo "v0.3.4' + echo 'foo "v0.3.4' + echo 'foo "v0.3.5' + echo 'foo "v0.3.5' + echo 'foo "v0.3.6' + echo 'foo "v0.3.6' + echo 'foo "v0.3.7' + echo 'foo "v0.3.7' + echo 'foo "v0.3.8' + echo 'foo "v0.3.8' + echo 'foo "v0.4.0' + echo 'foo "v0.4.0' + echo 'foo "v0.4.1' + echo 'foo "v0.4.1' + echo 'foo "v0.4.10' + echo 'foo "v0.4.10' + echo 'foo "v0.4.11' + echo 'foo "v0.4.11' + echo 'foo "v0.4.12' + echo 'foo "v0.4.12' + echo 'foo "v0.4.2' + echo 'foo "v0.4.2' + echo 'foo "v0.4.3' + echo 'foo "v0.4.3' + echo 'foo "v0.4.4' + echo 'foo "v0.4.4' + echo 'foo "v0.4.5' + echo 'foo "v0.4.5' + echo 'foo "v0.4.6' + echo 'foo "v0.4.6' + echo 'foo "v0.4.7' + echo 'foo "v0.4.7' + echo 'foo "v0.4.8' + echo 'foo "v0.4.8' + echo 'foo "v0.4.9' + echo 'foo "v0.4.9' + echo 'foo "v0.5.0' + echo 'foo "v0.5.0' + echo 'foo "v0.6.1' + echo 'foo "v0.6.1' + echo 'foo "v0.6.10' + echo 'foo "v0.6.10' + echo 'foo "v0.6.11' + echo 'foo "v0.6.11' + echo 'foo "v0.6.12' + echo 'foo "v0.6.12' + echo 'foo "v0.6.13' + echo 'foo "v0.6.13' + echo 'foo "v0.6.2' + echo 'foo "v0.6.2' + echo 'foo "v0.6.3' + echo 'foo "v0.6.3' + echo 'foo "v0.6.4' + echo 'foo "v0.6.4' + echo 'foo "v0.6.5' + echo 'foo "v0.6.5' + echo 'foo "v0.6.6' + echo 'foo "v0.6.6' + echo 'foo "v0.6.7' + echo 'foo "v0.6.7' + echo 'foo "v0.6.8' + echo 'foo "v0.6.8' + echo 'foo "v0.6.9' + echo 'foo "v0.6.9' +} + +OUTPUT="$(nvm_ls_remote foo)" +EXIT_CODE="$(nvm_ls_remote foo >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_N/A" ] || die "nonexistent version did not report N/A" +[ "_$EXIT_CODE" = "_3" ] || die "nonexistent version did not exit with code 3, got $EXIT_CODE" + +OUTPUT="$(nvm_ls_remote)" +EXPECTED_OUTPUT="$(nvm_download | \egrep -o 'v[0-9]+\.[0-9]+\.[0-9]+' | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "bare nvm_ls_remote did not output expected sorted versions; got $(echo "$OUTPUT") expected $(echo "$EXPECTED_OUTPUT")" + +OUTPUT="$(nvm_ls_remote 0.3)" +EXPECTED_OUTPUT="v0.3.0 +v0.3.1 +v0.3.2 +v0.3.3 +v0.3.4 +v0.3.5 +v0.3.6 +v0.3.7 +v0.3.8" + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote 0.3 did not output 0.3.x versions; got $OUTPUT" + +cleanup + From fcdd1ef43113a7035dc346baa16439d89e1075aa Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 28 Sep 2014 22:36:02 -0700 Subject: [PATCH 0221/1426] Add nvm_validate_implicit_alias --- nvm.sh | 7 +++++++ .../Unit tests/nvm_validate_implicit_alias | 19 +++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100755 test/fast/Unit tests/nvm_validate_implicit_alias diff --git a/nvm.sh b/nvm.sh index 4553a85..3c87bdd 100644 --- a/nvm.sh +++ b/nvm.sh @@ -368,6 +368,13 @@ nvm_print_versions() { done } +nvm_validate_implicit_alias() { + if [ "_$1" != "_stable" ] && [ "_$1" != "_unstable" ]; then + echo "Only implicit aliases 'stable' and 'unstable' are supported." >&2 + return 1 + fi +} + nvm() { if [ $# -lt 1 ]; then nvm help diff --git a/test/fast/Unit tests/nvm_validate_implicit_alias b/test/fast/Unit tests/nvm_validate_implicit_alias new file mode 100755 index 0000000..ffc4247 --- /dev/null +++ b/test/fast/Unit tests/nvm_validate_implicit_alias @@ -0,0 +1,19 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +EXPECTED_MSG="Only implicit aliases 'stable' and 'unstable' are supported." +[ "_$(nvm_validate_implicit_alias 2>&1)" = "_$EXPECTED_MSG" ] \ + || die "nvm_validate_implicit_alias did not require stable|unstable" +[ "_$(nvm_validate_implicit_alias foo 2>&1)" = "_$EXPECTED_MSG" ] \ + || die "nvm_validate_implicit_alias did not require stable|unstable" + +EXIT_CODE="$(nvm_validate_implicit_alias >/dev/null 2>&1 ; echo $?)" +[ "_$EXIT_CODE" = "_1" ] \ + || die "nvm_validate_implicit_alias without stable|unstable had wrong exit code: expected 1, got $EXIT_CODE" + +nvm_validate_implicit_alias stable || die "nvm_validate_implicit_alias stable did not exit 0" +nvm_validate_implicit_alias unstable || die "nvm_validate_implicit_alias unstable did not exit 0" + From 5aad535d53890cbf8714e36ed8e2b97bdb635ce2 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 28 Sep 2014 22:40:17 -0700 Subject: [PATCH 0222/1426] Adding nvm_print_implicit_alias --- nvm.sh | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/nvm.sh b/nvm.sh index 3c87bdd..db07f5e 100644 --- a/nvm.sh +++ b/nvm.sh @@ -375,6 +375,41 @@ nvm_validate_implicit_alias() { fi } +nvm_print_implicit_alias() { + if [ "_$1" != "_local" ] && [ "_$1" != "_remote" ]; then + echo "nvm_print_implicit_alias must be specified with local or remote as the first argument." >&2 + return 1 + fi + + if ! nvm_validate_implicit_alias "$2"; then + return 2 + fi + + local LAST_TWO + if [ "_$1" = "_local" ]; then + LAST_TWO="$(nvm_ls | \grep -e '^v' | cut -c2- | cut -d . -f 1,2 | uniq)" + else + LAST_TWO="$(nvm_ls_remote | \grep -e '^v' | cut -c2- | cut -d . -f 1,2 | uniq)" + fi + local MINOR + local STABLE + local UNSTABLE + local MOD + for MINOR in $LAST_TWO; do + MOD=$(expr "$(nvm_normalize_version "$MINOR")" \/ 1000000 \% 2) + if [ $MOD -eq 0 ]; then + STABLE="$MINOR" + elif [ $MOD -eq 1 ]; then + UNSTABLE="$MINOR" + fi + done + if [ "_$2" = "_stable" ]; then + echo $STABLE + elif [ "_$2" = "_unstable" ]; then + echo $UNSTABLE + fi +} + nvm() { if [ $# -lt 1 ]; then nvm help From cea0e88489a949b7ee283cf0141b79dd966406a8 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 28 Sep 2014 22:43:46 -0700 Subject: [PATCH 0223/1426] Adding nvm_print_implicit_alias error tests. --- .../nvm_print_implicit_alias errors | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100755 test/fast/Unit tests/nvm_print_implicit_alias errors diff --git a/test/fast/Unit tests/nvm_print_implicit_alias errors b/test/fast/Unit tests/nvm_print_implicit_alias errors new file mode 100755 index 0000000..44db71c --- /dev/null +++ b/test/fast/Unit tests/nvm_print_implicit_alias errors @@ -0,0 +1,26 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +EXPECTED_FIRST_MSG="nvm_print_implicit_alias must be specified with local or remote as the first argument." +[ "_$(nvm_print_implicit_alias 2>&1)" = "_$EXPECTED_FIRST_MSG" ] \ + || die "nvm_print_implicit_alias did not require local|remote as first argument" +[ "_$(nvm_print_implicit_alias foo 2>&1)" = "_$EXPECTED_FIRST_MSG" ] \ + || die "nvm_print_implicit_alias did not require local|remote as first argument" + +FIRST_EXIT_CODE="$(nvm_print_implicit_alias > /dev/null 2>&1 ; echo $?)" +[ "_$FIRST_EXIT_CODE" = "_1" ] \ + || die "nvm_print_implicit_alias without local|remote had wrong exit code: expected 1, got $FIRST_EXIT_CODE" + +EXPECTED_SECOND_MSG="Only implicit aliases 'stable' and 'unstable' are supported." +[ "_$(nvm_print_implicit_alias local 2>&1)" = "_$EXPECTED_SECOND_MSG" ] \ + || die "nvm_print_implicit_alias did not require stable|unstable as second argument" +[ "_$(nvm_print_implicit_alias local foo 2>&1)" = "_$EXPECTED_SECOND_MSG" ] \ + || die "nvm_print_implicit_alias did not require stable|unstable as second argument" + +SECOND_EXIT_CODE="$(nvm_print_implicit_alias local > /dev/null 2>&1 ; echo $?)" +[ "_$SECOND_EXIT_CODE" = "_2" ] \ + || die "nvm_print_implicit_alias without stable|unstable had wrong exit code: expected 2, got $SECOND_EXIT_CODE" + From f9565ff675f7949a3f3fa159ff77ef41ab222555 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 29 Sep 2014 00:08:55 -0700 Subject: [PATCH 0224/1426] Adding nvm_print_implicit_alias success tests --- .../nvm_print_implicit_alias success | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100755 test/fast/Unit tests/nvm_print_implicit_alias success diff --git a/test/fast/Unit tests/nvm_print_implicit_alias success b/test/fast/Unit tests/nvm_print_implicit_alias success new file mode 100755 index 0000000..95f5fa9 --- /dev/null +++ b/test/fast/Unit tests/nvm_print_implicit_alias success @@ -0,0 +1,42 @@ +#!/bin/sh + +die () { echo $@ ; cleanup ; exit 1; } +cleanup() { + rm -rf ../../../v0.2.3 + rm -rf ../../../v0.3.4 + rm -rf ../../../v0.4.6 + rm -rf ../../../v0.5.7 + rm -rf ../../../v0.7.7 + unset -f nvm_ls_remote +} + +. ../../../nvm.sh + +mkdir ../../../v0.2.3 +mkdir ../../../v0.3.4 +mkdir ../../../v0.4.6 +mkdir ../../../v0.5.7 +mkdir ../../../v0.7.7 + +LATEST_STABLE="$(nvm_print_implicit_alias local stable)" +[ "_$LATEST_STABLE" = "_0.4" ] || die "local stable is not latest even minor: expected 0.4, got $LATEST_STABLE" + +LATEST_UNSTABLE="$(nvm_print_implicit_alias local unstable)" +[ "_$LATEST_UNSTABLE" = "_0.7" ] || die "local unstable is not latest odd minor: expected 0.7, got $LATEST_UNSTABLE" + +nvm_ls_remote() { + echo "v0.4.3" + echo "v0.5.4" + echo "v0.6.6" + echo "v0.7.7" + echo "v0.9.7" +} + +LATEST_STABLE="$(nvm_print_implicit_alias remote stable)" +[ "_$LATEST_STABLE" = "_0.6" ] || die "remote stable is not latest even minor: expected 0.6, got $LATEST_STABLE" + +LATEST_UNSTABLE="$(nvm_print_implicit_alias remote unstable)" +[ "_$LATEST_UNSTABLE" = "_0.9" ] || die "remote unstable is not latest odd minor: expected 0.9, got $LATEST_UNSTABLE" + +cleanup + From 5dc7af6285413b62cbf785794175f37bef44a1bf Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 29 Sep 2014 00:09:17 -0700 Subject: [PATCH 0225/1426] Make `nvm alias` list implicit "stable" and "unstable" aliases when they're not already aliases. --- nvm.sh | 10 ++++++ ...s implicit aliases when they do not exist" | 18 ++++++++++ ... instead of implicit aliases when present" | 35 +++++++++++++++++++ test/fast/Aliases/teardown_dir | 3 ++ 4 files changed, 66 insertions(+) create mode 100755 "test/fast/Aliases/Running \"nvm alias\" lists implicit aliases when they do not exist" create mode 100755 "test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" diff --git a/nvm.sh b/nvm.sh index db07f5e..e3c20f1 100644 --- a/nvm.sh +++ b/nvm.sh @@ -876,6 +876,16 @@ nvm() { fi fi done + + for ALIAS in "stable" "unstable"; do + if [ ! -f "$NVM_DIR/alias/$ALIAS" ]; then + if [ $# -lt 2 ] || [ "~$ALIAS" = "~$2" ]; then + DEST="$(nvm_print_implicit_alias local "$ALIAS")" + VERSION="$(nvm_version "$DEST")" + echo "$ALIAS -> $DEST (-> $VERSION) (default)" + fi + fi + done return fi if [ -z "$3" ]; then diff --git "a/test/fast/Aliases/Running \"nvm alias\" lists implicit aliases when they do not exist" "b/test/fast/Aliases/Running \"nvm alias\" lists implicit aliases when they do not exist" new file mode 100755 index 0000000..da91f11 --- /dev/null +++ "b/test/fast/Aliases/Running \"nvm alias\" lists implicit aliases when they do not exist" @@ -0,0 +1,18 @@ +#!/bin/sh + +. ../../../nvm.sh + +die () { echo $@ ; exit 1; } + +NVM_ALIAS_OUTPUT=$(nvm alias) + +EXPECTED_STABLE="$(nvm_print_implicit_alias local stable)" +STABLE_VERSION="$(nvm_version "$EXPECTED_STABLE")" +echo "$NVM_ALIAS_OUTPUT" | \grep -e "^stable -> $EXPECTED_STABLE (-> $STABLE_VERSION) (default)$" \ + || die "nvm alias did not contain the default local stable node version" + +EXPECTED_UNSTABLE="$(nvm_print_implicit_alias local unstable)" +UNSTABLE_VERSION="$(nvm_version "$EXPECTED_UNSTABLE")" +echo "$NVM_ALIAS_OUTPUT" | \grep -e "^unstable -> $EXPECTED_UNSTABLE (-> $UNSTABLE_VERSION) (default)$" \ + || die "nvm alias did not contain the default local unstable node version" + diff --git "a/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" "b/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" new file mode 100755 index 0000000..691ba66 --- /dev/null +++ "b/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" @@ -0,0 +1,35 @@ +#!/bin/sh + +. ../../../nvm.sh + +die () { echo $@ ; cleanup ; exit 1; } +cleanup () { + rm -rf ../../../v0.8.1 + rm -rf ../../../v0.9.1 +} + +mkdir ../../../v0.8.1 +mkdir ../../../v0.9.1 + +EXPECTED_STABLE="$(nvm_print_implicit_alias local stable)" +STABLE_VERSION="$(nvm_version "$EXPECTED_STABLE")" + +EXPECTED_UNSTABLE="$(nvm_print_implicit_alias local unstable)" +UNSTABLE_VERSION="$(nvm_version "$EXPECTED_UNSTABLE")" + +[ "_$STABLE_VERSION" != "_$UNSTABLE_VERSION" ] \ + || die "stable and unstable versions are the same!" + +nvm alias stable "$EXPECTED_UNSTABLE" +nvm alias unstable "$EXPECTED_STABLE" + +NVM_ALIAS_OUTPUT=$(nvm alias) + +echo "$NVM_ALIAS_OUTPUT" | \grep -e "^stable -> $EXPECTED_UNSTABLE (-> $UNSTABLE_VERSION)$" \ + || die "nvm alias did not contain the overridden 'stable' alias" + +echo "$NVM_ALIAS_OUTPUT" | \grep -e "^unstable -> $EXPECTED_STABLE (-> $STABLE_VERSION)$" \ + || die "nvm alias did not contain the overridden 'unstable' alias" + +cleanup + diff --git a/test/fast/Aliases/teardown_dir b/test/fast/Aliases/teardown_dir index 8ea87ce..f6a01c6 100755 --- a/test/fast/Aliases/teardown_dir +++ b/test/fast/Aliases/teardown_dir @@ -6,3 +6,6 @@ for i in $(seq 1 10) rm -rf "../../../v0.0.$i" done +rm -f "../../../alias/stable" +rm -f "../../../alias/unstable" + From c918e570b63894f05128d311ee261c9cad2691f5 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 29 Sep 2014 00:09:48 -0700 Subject: [PATCH 0226/1426] Add support for `nvm ls stable` and `nvm ls unstable` --- nvm.sh | 5 ++++ ...uld return the appropriate implicit alias" | 25 +++++++++++++++++++ test/fast/Listing versions/teardown | 2 ++ 3 files changed, 32 insertions(+) create mode 100755 "test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" diff --git a/nvm.sh b/nvm.sh index e3c20f1..85c850e 100644 --- a/nvm.sh +++ b/nvm.sh @@ -274,6 +274,11 @@ nvm_ls() { fi else if [ "_$PATTERN" != "_system" ]; then + if nvm_validate_implicit_alias "$PATTERN" 2> /dev/null ; then + nvm_ls "$(nvm_print_implicit_alias local "$PATTERN" 2> /dev/null)" + return $? + fi + local NUM_VERSION_GROUPS NUM_VERSION_GROUPS="$(nvm_num_version_groups "$PATTERN")" if [ "_$NUM_VERSION_GROUPS" = "_2" ] || [ "_$NUM_VERSION_GROUPS" = "_1" ]; then diff --git "a/test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" "b/test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" new file mode 100755 index 0000000..f744ffe --- /dev/null +++ "b/test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" @@ -0,0 +1,25 @@ + #!/bin/sh + +. ../../../nvm.sh + +die () { echo $@ ; exit 1; } + +EXPECTED_STABLE="$(nvm_print_implicit_alias local stable)" +STABLE_VERSION="$(nvm_version "$EXPECTED_STABLE")" + +EXPECTED_UNSTABLE="$(nvm_print_implicit_alias local unstable)" +UNSTABLE_VERSION="$(nvm_version "$EXPECTED_UNSTABLE")" + +nvm ls stable | \grep "$STABLE_VERSION" >/dev/null \ + || die "expected 'nvm ls stable' to give $STABLE_VERSION, got $(nvm ls stable)" + +nvm ls unstable | \grep "$UNSTABLE_VERSION" >/dev/null \ + || die "expected 'nvm ls unstable' to give $UNSTABLE_VERSION, got $(nvm ls unstable)" + +mkdir ../../../v0.1.2 +nvm alias stable 0.1 + +nvm ls stable | \grep v0.1.2 >/dev/null \ + && nvm ls stable | \grep -v "$STABLE_VERSION" >/dev/null \ + || die "'nvm ls stable' did not contain an explicit 'stable' alias" + diff --git a/test/fast/Listing versions/teardown b/test/fast/Listing versions/teardown index 3c5f013..b1c31a5 100755 --- a/test/fast/Listing versions/teardown +++ b/test/fast/Listing versions/teardown @@ -11,4 +11,6 @@ rmdir ../../../v0.3.3 >/dev/null 2>&1 rmdir ../../../v0.3.9 >/dev/null 2>&1 rmdir ../../../versions >/dev/null 2>&1 unalias nvm_has_system_node >/dev/null 2>&1 +rm -f ../../../alias/stable >/dev/null 2>&1 +rm -f ../../../alias/unstable >/dev/null 2>&1 From 4cdf356cdc714e13045d795ad2e3530ef5ca0ecf Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 29 Sep 2014 00:10:06 -0700 Subject: [PATCH 0227/1426] Support `nvm ls-remote stable` and `nvm ls-remote unstable` --- nvm.sh | 6 ++++-- test/fast/Unit tests/nvm_ls_remote | 17 +++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 85c850e..69de1be 100644 --- a/nvm.sh +++ b/nvm.sh @@ -317,7 +317,9 @@ nvm_ls_remote() { local VERSIONS local GREP_OPTIONS GREP_OPTIONS='' - if [ -n "$PATTERN" ]; then + if nvm_validate_implicit_alias "$PATTERN" 2> /dev/null ; then + PATTERN="$(nvm_remote_version "$(nvm_print_implicit_alias remote "$PATTERN")")" + elif [ -n "$PATTERN" ]; then PATTERN="$(nvm_ensure_version_prefix "$PATTERN")" else PATTERN=".*" @@ -518,7 +520,7 @@ nvm() { nobinary=1 fi - provided_version=$1 + provided_version="$1" if [ -z "$provided_version" ]; then if [ $version_not_provided -ne 1 ]; then diff --git a/test/fast/Unit tests/nvm_ls_remote b/test/fast/Unit tests/nvm_ls_remote index c6f2e7c..8b7da02 100755 --- a/test/fast/Unit tests/nvm_ls_remote +++ b/test/fast/Unit tests/nvm_ls_remote @@ -464,5 +464,22 @@ v0.3.8" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote 0.3 did not output 0.3.x versions; got $OUTPUT" +# Sanity checks +OUTPUT="$(nvm_print_implicit_alias remote stable)" +EXPECTED_OUTPUT="0.10" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_print_implicit_alias remote stable did not output $EXPECTED_OUTPUT; got $OUTPUT" + +OUTPUT="$(nvm_print_implicit_alias remote unstable)" +EXPECTED_OUTPUT="0.11" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_print_implicit_alias remote unstable did not output $EXPECTED_OUTPUT; got $OUTPUT" + +OUTPUT="$(nvm_ls_remote stable)" +EXPECTED_OUTPUT="v0.10.32" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote stable did not output $EXPECTED_OUTPUT; got $OUTPUT" + +OUTPUT="$(nvm_ls_remote unstable)" +EXPECTED_OUTPUT="v0.11.14" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote unstable did not output $EXPECTED_OUTPUT; got $OUTPUT" + cleanup From 5706aef3d0f239fe496dff14f0debd069a603e9e Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 29 Sep 2014 01:34:50 -0700 Subject: [PATCH 0228/1426] nvm_format_version: add unit tests. --- test/fast/Unit tests/nvm_format_version | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100755 test/fast/Unit tests/nvm_format_version diff --git a/test/fast/Unit tests/nvm_format_version b/test/fast/Unit tests/nvm_format_version new file mode 100755 index 0000000..134ca75 --- /dev/null +++ b/test/fast/Unit tests/nvm_format_version @@ -0,0 +1,14 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +OUTPUT="$(nvm_format_version 0.1.2)" +EXPECTED_OUTPUT="v0.1.2" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_format_version 0.1.2 did not return $EXPECTED_OUTPUT; got $OUTPUT" + +OUTPUT="$(nvm_format_version 0.1)" +EXPECTED_OUTPUT="v0.1.0" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_format_version 0.1.0 did not return $EXPECTED_OUTPUT; got $OUTPUT" + From 2737a9564501dc724c27ebb6d48d7a3587aa7962 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 29 Sep 2014 01:36:02 -0700 Subject: [PATCH 0229/1426] Create nvm_ensure_version_prefix, and make nvm_format_version actually format the version. --- nvm.sh | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/nvm.sh b/nvm.sh index 9bc1894..26c4a29 100644 --- a/nvm.sh +++ b/nvm.sh @@ -186,10 +186,21 @@ nvm_normalize_version() { echo "$1" | sed -e 's/^v//' | \awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }' } -nvm_format_version() { +nvm_ensure_version_prefix() { echo "$1" | sed -e 's/^\([0-9]\)/v\1/g' } +nvm_format_version() { + local VERSION + VERSION="$(nvm_ensure_version_prefix "$1")" + if [ "_$(nvm_num_version_groups "$VERSION")" != "_3" ]; then + VERSION="$(echo "$VERSION" | sed -e 's/\.*$/.0/')" + nvm_format_version "$VERSION" + else + echo "$VERSION" + fi +} + nvm_num_version_groups() { local VERSION VERSION="$1" @@ -256,7 +267,7 @@ nvm_ls() { return fi # If it looks like an explicit version, don't do anything funny - PATTERN=$(nvm_format_version $PATTERN) + PATTERN=$(nvm_ensure_version_prefix $PATTERN) if [ "_$(echo "$PATTERN" | cut -c1-1)" = "_v" ] && [ "_$(nvm_num_version_groups "$PATTERN")" = "_3" ]; then if [ -d "$(nvm_version_path "$PATTERN")" ]; then VERSIONS="$PATTERN" @@ -302,7 +313,7 @@ nvm_ls_remote() { local GREP_OPTIONS GREP_OPTIONS='' if [ -n "$PATTERN" ]; then - PATTERN="$(nvm_format_version "$PATTERN")" + PATTERN="$(nvm_ensure_version_prefix "$PATTERN")" else PATTERN=".*" fi @@ -487,7 +498,7 @@ nvm() { shift done - if [ "_$(nvm_format_version "$PROVIDED_COPY_PACKAGES_FROM")" = "_$VERSION" ]; then + if [ "_$(nvm_ensure_version_prefix "$PROVIDED_COPY_PACKAGES_FROM")" = "_$VERSION" ]; then echo "You can't copy global packages from the same version of node you're installing." >&2 return 4 elif [ ! -z "$PROVIDED_COPY_PACKAGES_FROM" ] && [ "_$COPY_PACKAGES_FROM" = "_N/A" ]; then @@ -601,7 +612,7 @@ nvm() { ;; "uninstall" ) [ $# -ne 2 ] && nvm help && return - PATTERN=`nvm_format_version $2` + PATTERN=`nvm_ensure_version_prefix $2` if [ "$PATTERN" = `nvm_version` ]; then echo "nvm: Cannot uninstall currently-active node version, $PATTERN." >&2 return 1 From fda05fb64bf531acda695d3d0821f652de5b60e0 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 29 Sep 2014 14:26:19 -0700 Subject: [PATCH 0230/1426] Remove trailing whitespace. --- Makefile | 2 +- bash_completion | 4 ++-- ...ng \"nvm alias\" should list all aliases." | 20 +++++++++---------- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Makefile b/Makefile index 8930e72..814127d 100644 --- a/Makefile +++ b/Makefile @@ -9,7 +9,7 @@ $(SHELLS): @$@ $(URCHIN) -f test/$(TEST_SUITE) test: $(SHELLS) - @$(URCHIN) -f test/slow + @$(URCHIN) -f test/slow default: test diff --git a/bash_completion b/bash_completion index 050aa75..4287e20 100644 --- a/bash_completion +++ b/bash_completion @@ -81,8 +81,8 @@ __nvm () return 0 } -# complete is a bash builtin, but recent versions of ZSH come with a function -# called bashcompinit that will create a complete in ZSH. If the user is in +# complete is a bash builtin, but recent versions of ZSH come with a function +# called bashcompinit that will create a complete in ZSH. If the user is in # ZSH, load and run bashcompinit before calling the complete function. if [[ -n ${ZSH_VERSION-} ]]; then autoload -U +X bashcompinit && bashcompinit diff --git "a/test/fast/Aliases/Running \"nvm alias\" should list all aliases." "b/test/fast/Aliases/Running \"nvm alias\" should list all aliases." index 43bbb54..a9cdf6a 100755 --- "a/test/fast/Aliases/Running \"nvm alias\" should list all aliases." +++ "b/test/fast/Aliases/Running \"nvm alias\" should list all aliases." @@ -6,23 +6,23 @@ die () { echo $@ ; exit 1; } NVM_ALIAS_OUTPUT=$(nvm alias) echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test1 -> 0.0.1 (-> v0.0.1)$' \ - || die "did not find test1 alias" + || die "did not find test1 alias" echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test2 -> 0.0.2 (-> v0.0.2)$' \ - || die "did not find test2 alias" + || die "did not find test2 alias" echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test3 -> 0.0.3 (-> v0.0.3)$' \ - || die "did not find test3 alias" + || die "did not find test3 alias" echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test4 -> 0.0.4 (-> v0.0.4)$' \ - || die "did not find test4 alias" + || die "did not find test4 alias" echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test5 -> 0.0.5 (-> v0.0.5)$' \ - || die "did not find test5 alias" + || die "did not find test5 alias" echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test6 -> 0.0.6 (-> v0.0.6)$' \ - || die "did not find test6 alias" + || die "did not find test6 alias" echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test7 -> 0.0.7 (-> v0.0.7)$' \ - || die "did not find test7 alias" + || die "did not find test7 alias" echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test8 -> 0.0.8 (-> v0.0.8)$' \ - || die "did not find test8 alias" + || die "did not find test8 alias" echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test9 -> 0.0.9 (-> v0.0.9)$' \ - || die "did not find test9 alias" + || die "did not find test9 alias" echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test10 -> 0.0.10 (-> v0.0.10)$' \ - || die "did not find test10 alias" + || die "did not find test10 alias" From f0471acbf55a33507b598526dac4a7e0670245f6 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 29 Sep 2014 14:32:44 -0700 Subject: [PATCH 0231/1426] v0.17.2 --- README.markdown | 6 +++--- install.sh | 4 ++-- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.markdown b/README.markdown index 86f8456..a0eb70c 100644 --- a/README.markdown +++ b/README.markdown @@ -8,11 +8,11 @@ First you'll need to make sure your system has a c++ compiler. For OSX, XCode w To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.17.1/install.sh | bash + curl https://raw.githubusercontent.com/creationix/nvm/v0.17.2/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.17.1/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.17.2/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -169,7 +169,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.17.1/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.17.2/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin diff --git a/install.sh b/install.sh index a924fa0..c931d5f 100755 --- a/install.sh +++ b/install.sh @@ -44,13 +44,13 @@ install_nvm_from_git() { mkdir -p "$NVM_DIR" git clone "$NVM_SOURCE" "$NVM_DIR" fi - cd "$NVM_DIR" && git checkout v0.17.1 && git branch -D master >/dev/null 2>&1 + cd "$NVM_DIR" && git checkout v0.17.2 && git branch -D master >/dev/null 2>&1 return } install_nvm_as_script() { if [ -z "$NVM_SOURCE" ]; then - NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.17.1/nvm.sh" + NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.17.2/nvm.sh" fi # Downloading to $NVM_DIR diff --git a/nvm.sh b/nvm.sh index 26c4a29..4553a85 100644 --- a/nvm.sh +++ b/nvm.sh @@ -897,7 +897,7 @@ nvm() { nvm_version $2 ;; "--version" ) - echo "0.17.1" + echo "0.17.2" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version nvm_version_greater nvm_version_greater_than_or_equal_to > /dev/null 2>&1 diff --git a/package.json b/package.json index ce4a66d..0f88332 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.17.1", + "version": "0.17.2", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From acfc459bc56ec92a1424f0e17c064f72e5d132a3 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 29 Sep 2014 21:43:58 -0700 Subject: [PATCH 0232/1426] Adding notes to the README for "stable", "unstable", and "system". --- README.markdown | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index a0eb70c..01cfb0b 100644 --- a/README.markdown +++ b/README.markdown @@ -56,6 +56,18 @@ Or, you can run any arbitrary command in a subshell with the desired version of nvm exec 0.10 node --version +In place of a version pointer like "0.10", you can use the special default aliases "stable" and "unstable": + + nvm install stable + nvm install unstable + nvm use stable + nvm run unstable --version + +If you want to use the system-installed version of node, you can use the special default alias "system": + + nvm use system + nvm run system --version + If you want to see what versions are installed: nvm ls @@ -70,7 +82,7 @@ To restore your PATH, you can deactivate it. To set a default Node version to be used in any new shell, use the alias 'default': - nvm alias default 0.10 + nvm alias default stable To use a mirror of the node binaries, set `$NVM_NODEJS_ORG_MIRROR`: From 66b214651f66b34ecaf8378bd0ed04046e206061 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 30 Sep 2014 00:23:37 -0700 Subject: [PATCH 0233/1426] Add `nvm_alias` and unit tests. --- nvm.sh | 18 ++++++++++++++++++ test/fast/Unit tests/nvm_alias | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100755 test/fast/Unit tests/nvm_alias diff --git a/nvm.sh b/nvm.sh index 69de1be..b0ed78a 100644 --- a/nvm.sh +++ b/nvm.sh @@ -234,6 +234,24 @@ nvm_binary_available() { nvm_version_greater_than_or_equal_to "$1" "$FIRST_VERSION_WITH_BINARY" } +nvm_alias() { + local ALIAS + ALIAS="$1" + if [ -z "$ALIAS" ]; then + echo >&2 'An alias is required.' + return 1 + fi + + local NVM_ALIAS_PATH + NVM_ALIAS_PATH="$NVM_DIR/alias/$ALIAS" + if [ ! -e "$NVM_ALIAS_PATH" ]; then + echo >&2 'Alias does not exist.' + return 2 + fi + + cat "$NVM_ALIAS_PATH" +} + nvm_ls_current() { local NODE_PATH NODE_PATH="$(which node 2> /dev/null)" diff --git a/test/fast/Unit tests/nvm_alias b/test/fast/Unit tests/nvm_alias new file mode 100755 index 0000000..f51aac8 --- /dev/null +++ b/test/fast/Unit tests/nvm_alias @@ -0,0 +1,33 @@ +#!/bin/sh + +die () { echo $@ ; cleanup ; exit 1; } + +cleanup () { + rm -rf ../../../alias/test +} + +. ../../../nvm.sh + +OUTPUT="$(nvm_alias 2>&1)" +EXPECTED_OUTPUT='An alias is required.' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_alias' produced wrong output; got $OUTPUT" + +EXIT_CODE="$(nvm_alias >/dev/null 2>&1 ; echo $?)" +[ "_$EXIT_CODE" = "_1" ] || die "'nvm_alias' exited with $EXIT_CODE, expected 1" + +rm -rf ../../../alias/nonexistent + +OUTPUT="$(nvm_alias nonexistent 2>&1)" +EXPECTED_OUTPUT='Alias does not exist.' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_alias nonexistent' produced wrong output; got $OUTPUT" + +EXIT_CODE="$(nvm_alias nonexistent >/dev/null 2>&1 ; echo $?)" +[ "_$EXIT_CODE" = "_2" ] || die "'nvm_alias nonexistent' exited with $EXIT_CODE, expected 2" + +EXPECTED_OUTPUT="0.10" +nvm alias test "$EXPECTED_OUTPUT" || die "'nvm alias test $EXPECTED_OUTPUT' failed" +OUTPUT="$(nvm_alias test)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_alias test' produced wrong output; got $OUTPUT" + +cleanup + From d0c6b87b2e034feb085e38c31ace8b382980c288 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 30 Sep 2014 00:24:02 -0700 Subject: [PATCH 0234/1426] Use `nvm_alias` in `nvm alias` --- nvm.sh | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/nvm.sh b/nvm.sh index b0ed78a..3327050 100644 --- a/nvm.sh +++ b/nvm.sh @@ -890,14 +890,15 @@ nvm() { mkdir -p "$NVM_DIR/alias" if [ $# -le 2 ]; then local DEST - for ALIAS in "$NVM_DIR"/alias/"$2"*; do - if [ -e "$ALIAS" ]; then - DEST="$(cat "$ALIAS")" + for ALIAS_PATH in "$NVM_DIR"/alias/"$2"*; do + ALIAS="$(basename "$ALIAS_PATH")" + DEST="$(nvm_alias "$ALIAS" 2>1 /dev/null)" + if [ -n "$DEST" ]; then VERSION="$(nvm_version "$DEST")" if [ "_$DEST" = "_$VERSION" ]; then - echo "$(basename "$ALIAS") -> $DEST" + echo "$ALIAS -> $DEST" else - echo "$(basename "$ALIAS") -> $DEST (-> $VERSION)" + echo "$ALIAS -> $DEST (-> $VERSION)" fi fi done From 5bc6e289ce98c87bb72fb930c6ae85f8754d9241 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 1 Oct 2014 01:46:35 -0700 Subject: [PATCH 0235/1426] Silencing nvm_version_path error output in nvm_print_versions --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 3327050..43f5b02 100644 --- a/nvm.sh +++ b/nvm.sh @@ -382,7 +382,7 @@ nvm_print_versions() { echo "$1" | while read VERSION; do if [ "$VERSION" = "$NVM_CURRENT" ]; then FORMAT='\033[0;32m-> %9s\033[0m' - elif [ -d "$(nvm_version_path "$VERSION")" ]; then + elif [ -d "$(nvm_version_path "$VERSION" 2> /dev/null)" ]; then FORMAT='\033[0;34m%12s\033[0m' elif [ "$VERSION" = "system" ]; then FORMAT='\033[0;33m%12s\033[0m' From 5135577a3cebc9e1cea61543f4bf3bd53fb72c6e Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 1 Oct 2014 01:46:46 -0700 Subject: [PATCH 0236/1426] Ensure `nvm run` has the same semantics as `nvm use` --- nvm.sh | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/nvm.sh b/nvm.sh index 43f5b02..7e000af 100644 --- a/nvm.sh +++ b/nvm.sh @@ -818,7 +818,7 @@ nvm() { provided_version=$1 if [ -n "$provided_version" ]; then VERSION=`nvm_version $provided_version` - if [ $VERSION = "N/A" ]; then + if [ "_$VERSION" = "_N/A" ]; then provided_version='' if [ $has_checked_nvmrc -ne 1 ]; then nvm_rc_version && has_checked_nvmrc=1 @@ -829,16 +829,15 @@ nvm() { fi fi - local NVM_VERSION_DIR - NVM_VERSION_DIR=$(nvm_version_path "$VERSION") - if [ ! -d "$NVM_VERSION_DIR" ]; then - echo "$VERSION version is not installed yet" >&2 - return 1 - fi - RUN_NODE_PATH=`nvm_strip_path "$NODE_PATH" "/lib/node_modules"` - RUN_NODE_PATH=`nvm_prepend_path "$NODE_PATH" "$NVM_VERSION_DIR/lib/node_modules"` echo "Running node $VERSION" - NODE_PATH=$RUN_NODE_PATH $NVM_VERSION_DIR/bin/node "$@" + local ARGS + ARGS="$@" + local OUTPUT + OUTPUT="$(nvm use "$VERSION" >/dev/null && node "$ARGS")" + local EXIT_CODE + EXIT_CODE="$?" + echo "$OUTPUT" + return $EXIT_CODE ;; "exec" ) shift From 0eef553a8862c4e4d60ca40a93efc35bb177f730 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 2 Oct 2014 01:09:28 -0700 Subject: [PATCH 0237/1426] Use `-f` instead of `-e` in nvm_alias. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 7e000af..4d7170d 100644 --- a/nvm.sh +++ b/nvm.sh @@ -244,7 +244,7 @@ nvm_alias() { local NVM_ALIAS_PATH NVM_ALIAS_PATH="$NVM_DIR/alias/$ALIAS" - if [ ! -e "$NVM_ALIAS_PATH" ]; then + if [ ! -f "$NVM_ALIAS_PATH" ]; then echo >&2 'Alias does not exist.' return 2 fi From 2f2c6f0727316be55bd70cab3d99326b927add32 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 30 Sep 2014 00:28:05 -0700 Subject: [PATCH 0238/1426] Use nvm_alias in nvm_ls. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 4d7170d..0b77f29 100644 --- a/nvm.sh +++ b/nvm.sh @@ -281,7 +281,7 @@ nvm_ls() { fi if [ -f "$NVM_DIR/alias/$PATTERN" ]; then - nvm_version "$(cat "$NVM_DIR/alias/$PATTERN")" + nvm_version "$(nvm_alias "$PATTERN" 2> /dev/null)" return fi # If it looks like an explicit version, don't do anything funny From 1931f7f3f83f914f194595d26ae91f3746254203 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 3 Oct 2014 02:35:39 -0700 Subject: [PATCH 0239/1426] Remove '-e' option from installation tests, in favor of explicit failures. --- test/installation/install from binary | 7 ++++--- test/installation/install from source | 7 ++++--- .../install two versions and use the latest one | 17 +++++++++-------- ...tall version specified in .nvmrc from binary | 10 ++++++---- ...tall version specified in .nvmrc from source | 10 ++++++---- 5 files changed, 29 insertions(+), 22 deletions(-) diff --git a/test/installation/install from binary b/test/installation/install from binary index 9138933..cdc0e7a 100755 --- a/test/installation/install from binary +++ b/test/installation/install from binary @@ -1,6 +1,7 @@ #!/bin/sh -set -e +die () { echo $@ ; exit 1; } + . ../../nvm.sh NVM_TEST_VERSION=v0.10.7 @@ -9,9 +10,9 @@ NVM_TEST_VERSION=v0.10.7 [ -e ../../$NVM_TEST_VERSION ] && rm -R ../../$NVM_TEST_VERSION # Install from binary -nvm install $NVM_TEST_VERSION +nvm install $NVM_TEST_VERSION || die "install $NVM_TEST_VERSION failed" # Check [ -d ../../$NVM_TEST_VERSION ] -nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION +nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION || die "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" diff --git a/test/installation/install from source b/test/installation/install from source index a535b75..25a0f1e 100755 --- a/test/installation/install from source +++ b/test/installation/install from source @@ -1,6 +1,7 @@ #!/bin/sh -set -e +die () { echo $@ ; exit 1; } + . ../../nvm.sh NVM_TEST_VERSION=v0.10.7 @@ -9,9 +10,9 @@ NVM_TEST_VERSION=v0.10.7 [ -e ../../$NVM_TEST_VERSION ] && rm -R ../../$NVM_TEST_VERSION # Install from source -nvm install -s $NVM_TEST_VERSION +nvm install -s $NVM_TEST_VERSION || die "'nvm install -s $NVM_TEST_VERSION' failed" # Check [ -d ../../$NVM_TEST_VERSION ] -nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION +nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION || "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" diff --git a/test/installation/install two versions and use the latest one b/test/installation/install two versions and use the latest one index 9f50510..77dc9e4 100755 --- a/test/installation/install two versions and use the latest one +++ b/test/installation/install two versions and use the latest one @@ -1,6 +1,7 @@ #!/bin/sh -set -e +die () { echo $@ ; exit 1; } + . ../../nvm.sh # Remove the stuff we're clobbering. @@ -8,17 +9,17 @@ set -e [ -e ../../v0.9.12 ] && rm -R ../../v0.9.12 # Install from binary -nvm install 0.9.7 -nvm i 0.9.12 +nvm install 0.9.7 || die "'nvm install 0.9.7' failed" +nvm i 0.9.12 || die "'nvm i 0.9.12' failed" # Check -[ -d ../../v0.9.7 ] -[ -d ../../v0.9.12 ] +[ -d ../../v0.9.7 ] || die "v0.9.7 didn't exist" +[ -d ../../v0.9.12 ] || die "v0.9.12 didn't exist" # Use the first one -nvm use 0.9.7 +nvm use 0.9.7 || die "'nvm use 0.9.7' failed" # Use the latest one -nvm use 0.9 -node --version | grep v0.9.12 +nvm use 0.9 || die "'nvm use 0.9' failed" +node --version | grep v0.9.12 || die "'node --version' was not v0.9.12, got: $(node --version)" diff --git a/test/installation/install version specified in .nvmrc from binary b/test/installation/install version specified in .nvmrc from binary index b261970..ad5f296 100755 --- a/test/installation/install version specified in .nvmrc from binary +++ b/test/installation/install version specified in .nvmrc from binary @@ -1,6 +1,7 @@ #!/bin/sh -set -e +die () { echo $@ ; exit 1; } + . ../../nvm.sh NVM_TEST_VERSION=v0.10.7 @@ -11,10 +12,11 @@ NVM_TEST_VERSION=v0.10.7 # Install from binary echo "$NVM_TEST_VERSION" > .nvmrc -nvm install +nvm install || die "'nvm install' failed" # Check -[ -d ../../$NVM_TEST_VERSION ] -nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION +[ -d ../../$NVM_TEST_VERSION ] || die "./$NVM_TEST_VERSION did not exist" +nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION \ + || "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" diff --git a/test/installation/install version specified in .nvmrc from source b/test/installation/install version specified in .nvmrc from source index 5544d0e..63ea0ea 100755 --- a/test/installation/install version specified in .nvmrc from source +++ b/test/installation/install version specified in .nvmrc from source @@ -1,6 +1,7 @@ #!/bin/sh -set -e +die () { echo $@ ; exit 1; } + . ../../nvm.sh NVM_TEST_VERSION=v0.10.7 @@ -11,10 +12,11 @@ NVM_TEST_VERSION=v0.10.7 # Install from binary echo "$NVM_TEST_VERSION" > .nvmrc -nvm install -s +nvm install -s || "'nvm install -s' failed" # Check -[ -d ../../$NVM_TEST_VERSION ] -nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION +[ -d ../../$NVM_TEST_VERSION ] || die "$NVM_TEST_VERSION did not exist" +nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION \ + || die "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" From 9d9cfdc2c8e44d4b6e3ebfe676a18da07604c930 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 4 Oct 2014 16:38:56 -0700 Subject: [PATCH 0240/1426] Two spaces after a period is incorrect. --- README.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.markdown b/README.markdown index 01cfb0b..5a12e18 100644 --- a/README.markdown +++ b/README.markdown @@ -2,7 +2,7 @@ ## Installation -First you'll need to make sure your system has a c++ compiler. For OSX, XCode will work, for Ubuntu, the build-essential and libssl-dev packages work. +First you'll need to make sure your system has a c++ compiler. For OSX, XCode will work, for Ubuntu, the build-essential and libssl-dev packages work. ### Install script @@ -22,7 +22,7 @@ You can customize the install source, directory and profile using the `NVM_SOURC ### Manual install -For manual install create a folder somewhere in your filesystem with the `nvm.sh` file inside it. I put mine in a folder called `nvm`. +For manual install create a folder somewhere in your filesystem with the `nvm.sh` file inside it. I put mine in a folder called `nvm`. Or if you have `git` installed, then just clone it, and check out the latest version: From 9d23f609ad9441d5b448dba203d7d9e6d519aa7f Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 4 Oct 2014 16:40:15 -0700 Subject: [PATCH 0241/1426] Add note about Windows options. Related to #284. --- README.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.markdown b/README.markdown index 5a12e18..1d0e440 100644 --- a/README.markdown +++ b/README.markdown @@ -4,6 +4,10 @@ First you'll need to make sure your system has a c++ compiler. For OSX, XCode will work, for Ubuntu, the build-essential and libssl-dev packages work. +Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/nvm/issues/284)). Two alternatives exist, which are not supported nor developed by us: + - [nvmw](hakobera/nvmw) + - [nvm-windows](coreybutler/nvm-windows) + ### Install script To install you could use the [install script][2] using cURL: From 2edc86d5743835eb957b25d73f6783454304c3af Mon Sep 17 00:00:00 2001 From: Corey Butler Date: Sun, 5 Oct 2014 10:15:10 -0500 Subject: [PATCH 0242/1426] Fixed links The links were relative to github.com/creationix/nvm/master instead of the intended sites. --- README.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.markdown b/README.markdown index 1d0e440..3adb690 100644 --- a/README.markdown +++ b/README.markdown @@ -5,8 +5,8 @@ First you'll need to make sure your system has a c++ compiler. For OSX, XCode will work, for Ubuntu, the build-essential and libssl-dev packages work. Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/nvm/issues/284)). Two alternatives exist, which are not supported nor developed by us: - - [nvmw](hakobera/nvmw) - - [nvm-windows](coreybutler/nvm-windows) + - [nvmw](http://github.com/hakobera/nvmw) + - [nvm-windows](http://github.com/coreybutler/nvm-windows) ### Install script From 1ee708b79b223165467b90aff6fba355ace6d414 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 6 Oct 2014 16:18:21 -0700 Subject: [PATCH 0243/1426] Fix an output redirection error. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 0b77f29..d8e6329 100644 --- a/nvm.sh +++ b/nvm.sh @@ -891,7 +891,7 @@ nvm() { local DEST for ALIAS_PATH in "$NVM_DIR"/alias/"$2"*; do ALIAS="$(basename "$ALIAS_PATH")" - DEST="$(nvm_alias "$ALIAS" 2>1 /dev/null)" + DEST="$(nvm_alias "$ALIAS" 2&>1 /dev/null)" if [ -n "$DEST" ]; then VERSION="$(nvm_version "$DEST")" if [ "_$DEST" = "_$VERSION" ]; then From 6c89e96f674ba0cb463aebfba9ad38658a984713 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 7 Oct 2014 01:57:51 -0700 Subject: [PATCH 0244/1426] Ensure that we don't try to uninstall the current version of node in test teardowns. --- test/installation/teardown_dir | 1 + test/slow/nvm exec/teardown_dir | 1 + test/slow/nvm run/teardown_dir | 1 + 3 files changed, 3 insertions(+) diff --git a/test/installation/teardown_dir b/test/installation/teardown_dir index 7637390..941ca99 100755 --- a/test/installation/teardown_dir +++ b/test/installation/teardown_dir @@ -1,6 +1,7 @@ #!/bin/sh . ../../nvm.sh +nvm deactivate nvm uninstall v0.10.7 if [ -f ".nvmrc" ]; then diff --git a/test/slow/nvm exec/teardown_dir b/test/slow/nvm exec/teardown_dir index a6b923c..789456c 100755 --- a/test/slow/nvm exec/teardown_dir +++ b/test/slow/nvm exec/teardown_dir @@ -1,6 +1,7 @@ #!/bin/sh . ../../../nvm.sh +nvm deactivate nvm uninstall v0.10.7 nvm uninstall v0.11.7 diff --git a/test/slow/nvm run/teardown_dir b/test/slow/nvm run/teardown_dir index 120ea83..55e2a61 100755 --- a/test/slow/nvm run/teardown_dir +++ b/test/slow/nvm run/teardown_dir @@ -1,6 +1,7 @@ #!/bin/sh . ../../../nvm.sh +nvm deactivate nvm uninstall v0.10.7 rm .nvmrc From a2633e5980511cf0d59ba4106325dab6a6a0f83f Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 8 Oct 2014 23:51:45 -0700 Subject: [PATCH 0245/1426] Fixing "nvm alias" output redirection. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index d8e6329..90b29cf 100644 --- a/nvm.sh +++ b/nvm.sh @@ -891,7 +891,7 @@ nvm() { local DEST for ALIAS_PATH in "$NVM_DIR"/alias/"$2"*; do ALIAS="$(basename "$ALIAS_PATH")" - DEST="$(nvm_alias "$ALIAS" 2&>1 /dev/null)" + DEST="$(nvm_alias "$ALIAS" 2&>1 > /dev/null)" if [ -n "$DEST" ]; then VERSION="$(nvm_version "$DEST")" if [ "_$DEST" = "_$VERSION" ]; then From 8f76b35370f013ab06426383228d97b39a72b743 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 10 Oct 2014 23:46:18 -0400 Subject: [PATCH 0246/1426] Fix `nvm alias` tests to have both stable and unstable mocks. --- ... \" should list but one alias." | 2 +- ...ng \"nvm alias\" should list all aliases." | 60 ++++++++++++------- test/fast/Aliases/setup_dir | 4 +- test/fast/Aliases/teardown_dir | 4 +- 4 files changed, 47 insertions(+), 23 deletions(-) diff --git "a/test/fast/Aliases/Running \"nvm alias \" should list but one alias." "b/test/fast/Aliases/Running \"nvm alias \" should list but one alias." index 78d0022..b22df2e 100755 --- "a/test/fast/Aliases/Running \"nvm alias \" should list but one alias." +++ "b/test/fast/Aliases/Running \"nvm alias \" should list but one alias." @@ -1,4 +1,4 @@ #!/bin/sh . ../../../nvm.sh -[ $(nvm alias test1 | wc -l) = '2' ] +[ $(nvm alias test-stable-1 | wc -l) = '2' ] diff --git "a/test/fast/Aliases/Running \"nvm alias\" should list all aliases." "b/test/fast/Aliases/Running \"nvm alias\" should list all aliases." index a9cdf6a..1a7cac1 100755 --- "a/test/fast/Aliases/Running \"nvm alias\" should list all aliases." +++ "b/test/fast/Aliases/Running \"nvm alias\" should list all aliases." @@ -5,24 +5,44 @@ die () { echo $@ ; exit 1; } NVM_ALIAS_OUTPUT=$(nvm alias) -echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test1 -> 0.0.1 (-> v0.0.1)$' \ - || die "did not find test1 alias" -echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test2 -> 0.0.2 (-> v0.0.2)$' \ - || die "did not find test2 alias" -echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test3 -> 0.0.3 (-> v0.0.3)$' \ - || die "did not find test3 alias" -echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test4 -> 0.0.4 (-> v0.0.4)$' \ - || die "did not find test4 alias" -echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test5 -> 0.0.5 (-> v0.0.5)$' \ - || die "did not find test5 alias" -echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test6 -> 0.0.6 (-> v0.0.6)$' \ - || die "did not find test6 alias" -echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test7 -> 0.0.7 (-> v0.0.7)$' \ - || die "did not find test7 alias" -echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test8 -> 0.0.8 (-> v0.0.8)$' \ - || die "did not find test8 alias" -echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test9 -> 0.0.9 (-> v0.0.9)$' \ - || die "did not find test9 alias" -echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test10 -> 0.0.10 (-> v0.0.10)$' \ - || die "did not find test10 alias" +echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-1 -> 0.0.1 (-> v0.0.1)$' \ + || die "did not find test-stable-1 alias" +echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-2 -> 0.0.2 (-> v0.0.2)$' \ + || die "did not find test-stable-2 alias" +echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-3 -> 0.0.3 (-> v0.0.3)$' \ + || die "did not find test-stable-3 alias" +echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-4 -> 0.0.4 (-> v0.0.4)$' \ + || die "did not find test-stable-4 alias" +echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-5 -> 0.0.5 (-> v0.0.5)$' \ + || die "did not find test-stable-5 alias" +echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-6 -> 0.0.6 (-> v0.0.6)$' \ + || die "did not find test-stable-6 alias" +echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-7 -> 0.0.7 (-> v0.0.7)$' \ + || die "did not find test-stable-7 alias" +echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-8 -> 0.0.8 (-> v0.0.8)$' \ + || die "did not find test-stable-8 alias" +echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-9 -> 0.0.9 (-> v0.0.9)$' \ + || die "did not find test-stable-9 alias" +echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-10 -> 0.0.10 (-> v0.0.10)$' \ + || die "did not find test-stable-10 alias" +echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-1 -> 0.1.1 (-> v0.1.1)$' \ + || die "did not find test-unstable-1 alias" +echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-2 -> 0.1.2 (-> v0.1.2)$' \ + || die "did not find test-unstable-2 alias" +echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-3 -> 0.1.3 (-> v0.1.3)$' \ + || die "did not find test-unstable-3 alias" +echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-4 -> 0.1.4 (-> v0.1.4)$' \ + || die "did not find test-unstable-4 alias" +echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-5 -> 0.1.5 (-> v0.1.5)$' \ + || die "did not find test-unstable-5 alias" +echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-6 -> 0.1.6 (-> v0.1.6)$' \ + || die "did not find test-unstable-6 alias" +echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-7 -> 0.1.7 (-> v0.1.7)$' \ + || die "did not find test-unstable-7 alias" +echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-8 -> 0.1.8 (-> v0.1.8)$' \ + || die "did not find test-unstable-8 alias" +echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-9 -> 0.1.9 (-> v0.1.9)$' \ + || die "did not find test-unstable-9 alias" +echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-10 -> 0.1.10 (-> v0.1.10)$' \ + || die "did not find test-unstable-10 alias" diff --git a/test/fast/Aliases/setup_dir b/test/fast/Aliases/setup_dir index f48c744..625a43c 100755 --- a/test/fast/Aliases/setup_dir +++ b/test/fast/Aliases/setup_dir @@ -2,6 +2,8 @@ for i in $(seq 1 10) do - echo 0.0.$i > ../../../alias/test$i + echo 0.0.$i > ../../../alias/test-stable-$i mkdir -p ../../../v0.0.$i + echo 0.1.$i > ../../../alias/test-unstable-$i + mkdir -p ../../../v0.1.$i done diff --git a/test/fast/Aliases/teardown_dir b/test/fast/Aliases/teardown_dir index f6a01c6..f61c4f8 100755 --- a/test/fast/Aliases/teardown_dir +++ b/test/fast/Aliases/teardown_dir @@ -2,8 +2,10 @@ for i in $(seq 1 10) do - rm -f "../../../alias/test$i" + rm -f "../../../alias/test-stable-$i" rm -rf "../../../v0.0.$i" + rm -f "../../../alias/test-unstable-$i" + rm -rf "../../../v0.1.$i" done rm -f "../../../alias/stable" From e99645f402b1a7228ecffeee2f5d68dc23cc2013 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 10 Oct 2014 23:25:47 -0400 Subject: [PATCH 0247/1426] Don't list uninstalled implicit aliases --- nvm.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index 90b29cf..a079be6 100644 --- a/nvm.sh +++ b/nvm.sh @@ -891,7 +891,7 @@ nvm() { local DEST for ALIAS_PATH in "$NVM_DIR"/alias/"$2"*; do ALIAS="$(basename "$ALIAS_PATH")" - DEST="$(nvm_alias "$ALIAS" 2&>1 > /dev/null)" + DEST="$(nvm_alias "$ALIAS" 2> /dev/null)" if [ -n "$DEST" ]; then VERSION="$(nvm_version "$DEST")" if [ "_$DEST" = "_$VERSION" ]; then @@ -906,8 +906,10 @@ nvm() { if [ ! -f "$NVM_DIR/alias/$ALIAS" ]; then if [ $# -lt 2 ] || [ "~$ALIAS" = "~$2" ]; then DEST="$(nvm_print_implicit_alias local "$ALIAS")" - VERSION="$(nvm_version "$DEST")" - echo "$ALIAS -> $DEST (-> $VERSION) (default)" + if [ "_$DEST" != "_" ]; then + VERSION="$(nvm_version "$DEST")" + echo "$ALIAS -> $DEST (-> $VERSION) (default)" + fi fi fi done From d49443e1fb54fa27f27e6e5f8d0cd3b8168440ef Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 10 Oct 2014 23:26:10 -0400 Subject: [PATCH 0248/1426] Properly handle nvm_print_implicit_alias splitting in zsh. Hopefully fixes #546. --- nvm.sh | 15 +++++++++++++-- .../Unit tests/nvm_print_implicit_alias success | 5 +++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index a079be6..515a6f9 100644 --- a/nvm.sh +++ b/nvm.sh @@ -412,14 +412,21 @@ nvm_print_implicit_alias() { local LAST_TWO if [ "_$1" = "_local" ]; then - LAST_TWO="$(nvm_ls | \grep -e '^v' | cut -c2- | cut -d . -f 1,2 | uniq)" + LAST_TWO=$(nvm_ls | \grep -e '^v' | cut -c2- | cut -d . -f 1,2 | uniq) else - LAST_TWO="$(nvm_ls_remote | \grep -e '^v' | cut -c2- | cut -d . -f 1,2 | uniq)" + LAST_TWO=$(nvm_ls_remote | \grep -e '^v' | cut -c2- | cut -d . -f 1,2 | uniq) fi local MINOR local STABLE local UNSTABLE local MOD + + local ZHS_HAS_SHWORDSPLIT_UNSET + ZHS_HAS_SHWORDSPLIT_UNSET=1 + if nvm_has "setopt"; then + ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | \grep shwordsplit > /dev/null ; echo $?) + setopt shwordsplit + fi for MINOR in $LAST_TWO; do MOD=$(expr "$(nvm_normalize_version "$MINOR")" \/ 1000000 \% 2) if [ $MOD -eq 0 ]; then @@ -428,6 +435,10 @@ nvm_print_implicit_alias() { UNSTABLE="$MINOR" fi done + if [ $ZHS_HAS_SHWORDSPLIT_UNSET -eq 1 ] && nvm_has "unsetopt"; then + unsetopt shwordsplit + fi + if [ "_$2" = "_stable" ]; then echo $STABLE elif [ "_$2" = "_unstable" ]; then diff --git a/test/fast/Unit tests/nvm_print_implicit_alias success b/test/fast/Unit tests/nvm_print_implicit_alias success index 95f5fa9..6182f92 100755 --- a/test/fast/Unit tests/nvm_print_implicit_alias success +++ b/test/fast/Unit tests/nvm_print_implicit_alias success @@ -30,6 +30,11 @@ nvm_ls_remote() { echo "v0.6.6" echo "v0.7.7" echo "v0.9.7" + echo "v0.4.3" + echo "v0.5.4" + echo "v0.6.6" + echo "v0.7.7" + echo "v0.9.7" } LATEST_STABLE="$(nvm_print_implicit_alias remote stable)" From 44d577611018d00e2727592099bc25179fd52e72 Mon Sep 17 00:00:00 2001 From: Hiro Asari Date: Sun, 12 Oct 2014 12:23:52 -0400 Subject: [PATCH 0249/1426] Fix npm update code https://npmjs.org/install.sh redirects to https://www.npmjs.org/install.sh so this code would fail if it ever npm was absent when we get here. --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 515a6f9..7d53ea7 100644 --- a/nvm.sh +++ b/nvm.sh @@ -675,10 +675,10 @@ nvm() { if nvm_version_greater 0.2.3 "$VERSION"; then echo "npm requires node v0.2.3 or higher" >&2 else - nvm_download https://npmjs.org/install.sh -o - | clean=yes npm_install=0.2.19 sh + nvm_download -L https://npmjs.org/install.sh -o - | clean=yes npm_install=0.2.19 sh fi else - nvm_download https://npmjs.org/install.sh -o - | clean=yes sh + nvm_download -L https://npmjs.org/install.sh -o - | clean=yes sh fi fi else From 7b6e06e556de5a7033ebec8b57add22e6df78096 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 13 Oct 2014 23:55:58 -0700 Subject: [PATCH 0250/1426] Add tests for "`nvm use default` on source" behavior. --- ...g nvm.sh should use the default if available | 17 +++++++++++++++++ test/installation/sourcing/setup_dir | 8 ++++++++ test/installation/sourcing/teardown_dir | 5 +++++ 3 files changed, 30 insertions(+) create mode 100755 test/installation/sourcing/Sourcing nvm.sh should use the default if available create mode 100755 test/installation/sourcing/setup_dir create mode 100755 test/installation/sourcing/teardown_dir diff --git a/test/installation/sourcing/Sourcing nvm.sh should use the default if available b/test/installation/sourcing/Sourcing nvm.sh should use the default if available new file mode 100755 index 0000000..beb5db9 --- /dev/null +++ b/test/installation/sourcing/Sourcing nvm.sh should use the default if available @@ -0,0 +1,17 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +echo '0.10.1' > ../../../alias/default || die 'creation of default alias failed' + +. ../../../nvm.sh || die 'sourcing returned nonzero exit code' + +NVM_LS_CURRENT="$(nvm ls current | \grep -o v0.10.1)" +[ "_$NVM_LS_CURRENT" = '_v0.10.1' ] || die "'nvm ls current' did not return '-> v0.10.1', got '$NVM_LS_CURRENT'" + +# NVM_LS_CURRENT_COLORED="$(nvm ls current | sed -n l)" + +NVM_ALIAS_DEFAULT="$(nvm alias default)" +[ "_$NVM_ALIAS_DEFAULT" = "_default -> 0.10.1 (-> v0.10.1)" ] \ + || die "'nvm alias default did not return 'default -> 0.10.1 (-> v0.10.1)', got '$NVM_ALIAS_DEFAULT'" + diff --git a/test/installation/sourcing/setup_dir b/test/installation/sourcing/setup_dir new file mode 100755 index 0000000..7509942 --- /dev/null +++ b/test/installation/sourcing/setup_dir @@ -0,0 +1,8 @@ +#!/bin/sh + +mkdir -p ../../../alias + +. ../../../nvm.sh +nvm install 0.10.1 +nvm unload || echo >&2 'nvm unload failed' + diff --git a/test/installation/sourcing/teardown_dir b/test/installation/sourcing/teardown_dir new file mode 100755 index 0000000..614e020 --- /dev/null +++ b/test/installation/sourcing/teardown_dir @@ -0,0 +1,5 @@ +#!/bin/sh + +rm -rf ../../../alias +rm -rf ../../../v0.10.1 + From ca89cceb99e7eb2b51cf4ad967068e8e8102f97b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 14 Oct 2014 17:38:42 -0700 Subject: [PATCH 0251/1426] Default $NVM_SYMLINK_CURRENT to off (create a "current" symlink on `use`). Fixes #499. --- README.markdown | 2 +- nvm.sh | 2 +- ...uld create and change the \"current\" symlink" | 1 + ...nt\" symlink if $NVM_SYMLINK_CURRENT is false" | 15 ++++++++------- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/README.markdown b/README.markdown index 3adb690..63030d7 100644 --- a/README.markdown +++ b/README.markdown @@ -95,7 +95,7 @@ To use a mirror of the node binaries, set `$NVM_NODEJS_ORG_MIRROR`: NVM_NODEJS_ORG_MIRROR=http://nodejs.org/dist nvm install 0.10 -`nvm use` will, by defaut, create a "current" symlink. Set `$NVM_SYMLINK_CURRENT` to any value other than "true" to disable this behavior. +`nvm use` will not, by default, create a "current" symlink. Set `$NVM_SYMLINK_CURRENT` to "true" to enable this behavior, which is sometimes useful for IDEs. ## License diff --git a/nvm.sh b/nvm.sh index 7d53ea7..6c7a66c 100644 --- a/nvm.sh +++ b/nvm.sh @@ -802,7 +802,7 @@ nvm() { export NODE_PATH export NVM_PATH="$NVM_VERSION_DIR/lib/node" export NVM_BIN="$NVM_VERSION_DIR/bin" - if [ "$NVM_SYMLINK_CURRENT" = true ] || [ -z "$NVM_SYMLINK_CURRENT" ]; then + if [ "$NVM_SYMLINK_CURRENT" = true ]; then rm -f "$NVM_DIR/current" && ln -s "$NVM_VERSION_DIR" "$NVM_DIR/current" fi echo "Now using node $VERSION" diff --git "a/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" "b/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" index 781eb94..d5fda3c 100755 --- "a/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" +++ "b/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" @@ -1,5 +1,6 @@ #!/bin/bash +export NVM_SYMLINK_CURRENT=true . ../../nvm.sh rm -rf ../../v0.10.29 diff --git "a/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" "b/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" index 23bbe38..4ac8b4b 100755 --- "a/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" +++ "b/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" @@ -45,39 +45,40 @@ function isCurrentSymlinkPresent() { NVM_SYMLINK_CURRENT=false cleanup runNvmUse -isCurrentSymlinkPresent && echo "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT=false!" +isCurrentSymlinkPresent && echo >&2 "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT=false!" registerExpectedNoSymlink $? NVM_SYMLINK_CURRENT=true cleanup runNvmUse -isCurrentSymlinkPresent || echo "Expected 'current' symlink to be created when NVM_SYMLINK_CURRENT=true!" +isCurrentSymlinkPresent || echo >&2 "Expected 'current' symlink to be created when NVM_SYMLINK_CURRENT=true!" registerExpectedSymlink $? NVM_SYMLINK_CURRENT=garbagevalue cleanup runNvmUse -isCurrentSymlinkPresent && echo "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT contains a string!" +isCurrentSymlinkPresent && echo >&2 "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT contains a string!" registerExpectedNoSymlink $? NVM_SYMLINK_CURRENT=0 cleanup runNvmUse -isCurrentSymlinkPresent && echo "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT=0!" +isCurrentSymlinkPresent && echo >&2 "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT=0!" registerExpectedNoSymlink $? NVM_SYMLINK_CURRENT=1 cleanup runNvmUse -isCurrentSymlinkPresent && echo "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT=1!" +isCurrentSymlinkPresent && echo >&2 "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT=1!" registerExpectedNoSymlink $? unset NVM_SYMLINK_CURRENT cleanup runNvmUse -isCurrentSymlinkPresent || echo "Expected 'current' symlink to be created when NVM_SYMLINK_CURRENT has been unset (default behaviour)!" -registerExpectedSymlink $? +isCurrentSymlinkPresent && echo >&2 "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT has been unset (default behaviour)!" +registerExpectedNoSymlink $? cleanup [ ${TEST_FAILED} -ne 0 ] && echo "${TEST_COUNT} tested, ${TEST_PASSED} passed, ${TEST_FAILED} failed" && exit 1 || true + From a7b1f935929e7ea6146d45f762b20ba53783d8aa Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 19 Oct 2014 19:28:09 -0400 Subject: [PATCH 0252/1426] README cleanup: Use the Oxford comma, properly lowercase commands --- README.markdown | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.markdown b/README.markdown index 63030d7..505612e 100644 --- a/README.markdown +++ b/README.markdown @@ -20,9 +20,10 @@ or Wget: The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). -You can customize the install source, directory and profile using the `NVM_SOURCE`, `NVM_DIR` and `PROFILE` variables. Eg: `curl ... | NVM_DIR=/usr/local/nvm bash` for a global install. +You can customize the install source, directory and profile using the `NVM_SOURCE`, `NVM_DIR`, and `PROFILE` variables. +Eg: `curl ... | NVM_DIR=/usr/local/nvm bash` for a global install. -*NB. The installer can use Git, curl, or wget to download NVM, whatever is available.* +*NB. The installer can use `git`, `curl`, or `wget` to download `nvm`, whatever is available.* ### Manual install From 2a61569881ef4992109571e40f6084cd255f305a Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 20 Oct 2014 15:48:35 -0700 Subject: [PATCH 0253/1426] http://nodejs.org/dist now redirects to https://nodejs.org/dist --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 4553a85..8858fbd 100644 --- a/nvm.sh +++ b/nvm.sh @@ -50,7 +50,7 @@ unset NVM_SCRIPT_SOURCE 2> /dev/null # Setup mirror location if not already set if [ -z "$NVM_NODEJS_ORG_MIRROR" ]; then - export NVM_NODEJS_ORG_MIRROR="http://nodejs.org/dist" + export NVM_NODEJS_ORG_MIRROR="https://nodejs.org/dist" fi nvm_tree_contains_path() { From 4748b3a236d6b01a9688e9af80cb5d3c66559497 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 20 Oct 2014 15:48:49 -0700 Subject: [PATCH 0254/1426] v0.17.3 --- README.markdown | 6 +++--- install.sh | 4 ++-- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.markdown b/README.markdown index a0eb70c..fb33d3f 100644 --- a/README.markdown +++ b/README.markdown @@ -8,11 +8,11 @@ First you'll need to make sure your system has a c++ compiler. For OSX, XCode w To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.17.2/install.sh | bash + curl https://raw.githubusercontent.com/creationix/nvm/v0.17.3/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.17.2/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.17.3/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -169,7 +169,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.17.2/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.17.3/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin diff --git a/install.sh b/install.sh index c931d5f..85deb51 100755 --- a/install.sh +++ b/install.sh @@ -44,13 +44,13 @@ install_nvm_from_git() { mkdir -p "$NVM_DIR" git clone "$NVM_SOURCE" "$NVM_DIR" fi - cd "$NVM_DIR" && git checkout v0.17.2 && git branch -D master >/dev/null 2>&1 + cd "$NVM_DIR" && git checkout v0.17.3 && git branch -D master >/dev/null 2>&1 return } install_nvm_as_script() { if [ -z "$NVM_SOURCE" ]; then - NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.17.2/nvm.sh" + NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.17.3/nvm.sh" fi # Downloading to $NVM_DIR diff --git a/nvm.sh b/nvm.sh index 8858fbd..65fbd0d 100644 --- a/nvm.sh +++ b/nvm.sh @@ -897,7 +897,7 @@ nvm() { nvm_version $2 ;; "--version" ) - echo "0.17.2" + echo "0.17.3" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version nvm_version_greater nvm_version_greater_than_or_equal_to > /dev/null 2>&1 diff --git a/package.json b/package.json index 0f88332..e1d282f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.17.2", + "version": "0.17.3", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From e421a0dc5f6bce4020bcc03ea3e9e76a0f03b582 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 20 Oct 2014 16:02:46 -0700 Subject: [PATCH 0255/1426] Ensure nvm follows redirects to nodejs.org --- nvm.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/nvm.sh b/nvm.sh index ded2461..d712b4e 100644 --- a/nvm.sh +++ b/nvm.sh @@ -342,7 +342,7 @@ nvm_ls_remote() { else PATTERN=".*" fi - VERSIONS=`nvm_download -s $NVM_NODEJS_ORG_MIRROR/ -o - \ + VERSIONS=`nvm_download -L -s $NVM_NODEJS_ORG_MIRROR/ -o - \ | \egrep -o 'v[0-9]+\.[0-9]+\.[0-9]+' \ | \grep -w "${PATTERN}" \ | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n` @@ -604,7 +604,7 @@ nvm() { if nvm_binary_available "$VERSION"; then t="$VERSION-$os-$arch" url="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-${t}.tar.gz" - sum=`nvm_download -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt -o - | \grep node-${t}.tar.gz | \awk '{print $1}'` + sum=`nvm_download -L -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt -o - | \grep node-${t}.tar.gz | \awk '{print $1}'` local tmpdir tmpdir="$NVM_DIR/bin/node-${t}" local tmptarball @@ -645,10 +645,10 @@ nvm() { tmpdir="$NVM_DIR/src" local tmptarball tmptarball="$tmpdir/node-$VERSION.tar.gz" - if [ "`nvm_download -s -I "$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" -o - 2>&1 | \grep '200 OK'`" != '' ]; then + if [ "`nvm_download -L -s -I "$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" -o - 2>&1 | \grep '200 OK'`" != '' ]; then tarball="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" - sum=`nvm_download -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt -o - | \grep node-$VERSION.tar.gz | \awk '{print $1}'` - elif [ "`nvm_download -s -I "$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" -o - | \grep '200 OK'`" != '' ]; then + sum=`nvm_download -L -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt -o - | \grep node-$VERSION.tar.gz | \awk '{print $1}'` + elif [ "`nvm_download -L -s -I "$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" -o - | \grep '200 OK'`" != '' ]; then tarball="$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" fi if ( From 8284cd0f81abda47979ed609de3103f773cd58e3 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 21 Oct 2014 01:02:59 -0700 Subject: [PATCH 0256/1426] Ensuring that there's a stable and unstable version "available" for this test. --- ...stable\" should return the appropriate implicit alias" | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git "a/test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" "b/test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" index f744ffe..a5ab151 100755 --- "a/test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" +++ "b/test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" @@ -4,6 +4,9 @@ die () { echo $@ ; exit 1; } +mkdir ../../../v0.2.3 +mkdir ../../../v0.3.3 + EXPECTED_STABLE="$(nvm_print_implicit_alias local stable)" STABLE_VERSION="$(nvm_version "$EXPECTED_STABLE")" @@ -19,7 +22,8 @@ nvm ls unstable | \grep "$UNSTABLE_VERSION" >/dev/null \ mkdir ../../../v0.1.2 nvm alias stable 0.1 +nvm ls stable | \grep -v "$STABLE_VERSION" >/dev/null \ + || die "'nvm ls stable' contained $STABLE_VERSION instead of v0.1.2" nvm ls stable | \grep v0.1.2 >/dev/null \ - && nvm ls stable | \grep -v "$STABLE_VERSION" >/dev/null \ - || die "'nvm ls stable' did not contain an explicit 'stable' alias" + || die "'nvm ls stable' did not contain v0.1.2" From 08aa09e664e1ffadf638b8b5f7718be56eadd639 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 22 Oct 2014 01:26:34 -0700 Subject: [PATCH 0257/1426] Prevent test pollution. --- ...sts manual aliases instead of implicit aliases when present" | 2 ++ 1 file changed, 2 insertions(+) diff --git "a/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" "b/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" index 691ba66..b2cd0ce 100755 --- "a/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" +++ "b/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" @@ -4,6 +4,8 @@ die () { echo $@ ; cleanup ; exit 1; } cleanup () { + rm -rf ../../../alias/stable + rm -rf ../../../alias/unstable rm -rf ../../../v0.8.1 rm -rf ../../../v0.9.1 } From 7a339bdd3cf4da404a65fd89d554c08a746f790d Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 22 Oct 2014 01:30:19 -0700 Subject: [PATCH 0258/1426] Adding nvm_resolve_alias --- nvm.sh | 35 +++++++++++++++++++++++------ test/fast/Aliases/nvm_resolve_alias | 28 +++++++++++++++++++++++ 2 files changed, 56 insertions(+), 7 deletions(-) create mode 100755 test/fast/Aliases/nvm_resolve_alias diff --git a/nvm.sh b/nvm.sh index d712b4e..899b6da 100644 --- a/nvm.sh +++ b/nvm.sh @@ -270,6 +270,32 @@ nvm_ls_current() { fi } +nvm_resolve_alias() { + if [ -z "$1" ]; then + return 1 + fi + + local PATTERN + PATTERN="$1" + + if [ -f "$NVM_DIR/alias/$PATTERN" ]; then + nvm_version "$(nvm_alias "$PATTERN" 2> /dev/null)" + return 0 + fi + + if nvm_validate_implicit_alias "$PATTERN" 2> /dev/null ; then + local IMPLICIT + IMPLICIT="$(nvm_print_implicit_alias local "$PATTERN" 2> /dev/null)" + if [ -n "$IMPLICIT" ]; then + nvm_version "$IMPLICIT" + return $? + fi + return 3 + fi + + return 2 +} + nvm_ls() { local PATTERN PATTERN=$1 @@ -280,10 +306,10 @@ nvm_ls() { return fi - if [ -f "$NVM_DIR/alias/$PATTERN" ]; then - nvm_version "$(nvm_alias "$PATTERN" 2> /dev/null)" + if nvm_resolve_alias "$PATTERN"; then return fi + # If it looks like an explicit version, don't do anything funny PATTERN=$(nvm_ensure_version_prefix $PATTERN) if [ "_$(echo "$PATTERN" | cut -c1-1)" = "_v" ] && [ "_$(nvm_num_version_groups "$PATTERN")" = "_3" ]; then @@ -292,11 +318,6 @@ nvm_ls() { fi else if [ "_$PATTERN" != "_system" ]; then - if nvm_validate_implicit_alias "$PATTERN" 2> /dev/null ; then - nvm_ls "$(nvm_print_implicit_alias local "$PATTERN" 2> /dev/null)" - return $? - fi - local NUM_VERSION_GROUPS NUM_VERSION_GROUPS="$(nvm_num_version_groups "$PATTERN")" if [ "_$NUM_VERSION_GROUPS" = "_2" ] || [ "_$NUM_VERSION_GROUPS" = "_1" ]; then diff --git a/test/fast/Aliases/nvm_resolve_alias b/test/fast/Aliases/nvm_resolve_alias new file mode 100755 index 0000000..aaf4df2 --- /dev/null +++ b/test/fast/Aliases/nvm_resolve_alias @@ -0,0 +1,28 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +EXIT_CODE=$(nvm_resolve_alias ; echo $?) +[ $EXIT_CODE = "1" ] || die "nvm_resolve_alias without an argument did not return 1; got $EXIT_CODE" + +for i in $(seq 1 10) + do + STABLE_ALIAS="$(nvm_resolve_alias test-stable-$i)" + [ "_$STABLE_ALIAS" = "_v0.0.$i" ] \ + || die "'nvm_resolve_alias test-stable-$i' was not v0.0.$i; got $STABLE_ALIAS" + UNSTABLE_ALIAS="$(nvm_resolve_alias test-unstable-$i)" + [ "_$UNSTABLE_ALIAS" = "_v0.1.$i" ] \ + || die "'nvm_resolve_alias test-unstable-$i' was not v0.1.$i; got $UNSTABLE_ALIAS" +done + +EXIT_CODE=$(nvm_resolve_alias nonexistent ; echo $?) +[ $EXIT_CODE = "2" ] || die "'nvm_resolve_alias nonexistent' did not return 2; got $EXIT_CODE" + +STABLE="$(nvm_resolve_alias stable)" +[ "_$STABLE" = "_v0.0.10" ] || die "'nvm_resolve_alias stable' was not v0.0.10; got $STABLE" + +UNSTABLE="$(nvm_resolve_alias unstable)" +[ "_$UNSTABLE" = "_v0.1.10" ] || die "'nvm_resolve_alias unstable' was not v0.1.10; got $UNSTABLE" + From 0f5997f754b4e1072b4b5f11438b38c1622d84d2 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 22 Oct 2014 17:17:04 -0700 Subject: [PATCH 0259/1426] Clean up from some more tests --- test/fast/Listing versions/teardown | 1 + 1 file changed, 1 insertion(+) diff --git a/test/fast/Listing versions/teardown b/test/fast/Listing versions/teardown index b1c31a5..25669ea 100755 --- a/test/fast/Listing versions/teardown +++ b/test/fast/Listing versions/teardown @@ -9,6 +9,7 @@ rmdir ../../../v0.2.3 >/dev/null 2>&1 rmdir ../../../v0.3.1 >/dev/null 2>&1 rmdir ../../../v0.3.3 >/dev/null 2>&1 rmdir ../../../v0.3.9 >/dev/null 2>&1 +rmdir ../../../v0.20.3 >/dev/null 2>&1 rmdir ../../../versions >/dev/null 2>&1 unalias nvm_has_system_node >/dev/null 2>&1 rm -f ../../../alias/stable >/dev/null 2>&1 From 9b91734f0b6a210f0c6655b0cd25ea288d9ae376 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 22 Oct 2014 01:48:02 -0700 Subject: [PATCH 0260/1426] =?UTF-8?q?Show=20"=E2=88=9E"=20when=20there's?= =?UTF-8?q?=20a=20circular=20alias=20reference.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nvm.sh | 31 +++++++++++++++-- test/fast/Aliases/circular/nvm_resolve_alias | 36 ++++++++++++++++++++ test/fast/Aliases/circular/setup | 10 ++++++ test/fast/Aliases/circular/teardown | 10 ++++++ test/fast/Aliases/{setup_dir => setup} | 0 test/fast/Aliases/{teardown_dir => teardown} | 0 6 files changed, 85 insertions(+), 2 deletions(-) create mode 100755 test/fast/Aliases/circular/nvm_resolve_alias create mode 100755 test/fast/Aliases/circular/setup create mode 100755 test/fast/Aliases/circular/teardown rename test/fast/Aliases/{setup_dir => setup} (100%) rename test/fast/Aliases/{teardown_dir => teardown} (100%) diff --git a/nvm.sh b/nvm.sh index 899b6da..cc8beee 100644 --- a/nvm.sh +++ b/nvm.sh @@ -278,8 +278,35 @@ nvm_resolve_alias() { local PATTERN PATTERN="$1" - if [ -f "$NVM_DIR/alias/$PATTERN" ]; then - nvm_version "$(nvm_alias "$PATTERN" 2> /dev/null)" + local ALIAS + ALIAS="$PATTERN" + local ALIAS_TEMP + + local SEEN_ALIASES + SEEN_ALIASES="$ALIAS" + while true; do + ALIAS_TEMP="$(nvm_alias "$ALIAS" 2> /dev/null)" + + if [ -z "$ALIAS_TEMP" ]; then + break + fi + + if [ -n "$ALIAS_TEMP" ] \ + && printf "$SEEN_ALIASES" | \grep -e "^$ALIAS_TEMP$" > /dev/null; then + ALIAS="∞" + break + fi + + SEEN_ALIASES="$SEEN_ALIASES\n$ALIAS_TEMP" + ALIAS="$ALIAS_TEMP" + done + + if [ -n "$ALIAS" ] && [ "_$ALIAS" != "_$PATTERN" ]; then + if [ "_$ALIAS" = "_∞" ]; then + echo "$ALIAS" + else + nvm_version "$ALIAS" + fi return 0 fi diff --git a/test/fast/Aliases/circular/nvm_resolve_alias b/test/fast/Aliases/circular/nvm_resolve_alias new file mode 100755 index 0000000..4b5dab9 --- /dev/null +++ b/test/fast/Aliases/circular/nvm_resolve_alias @@ -0,0 +1,36 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../../nvm.sh + +ALIAS="$(nvm_resolve_alias loopback)" +[ "_$ALIAS" = "_∞" ] || die "nvm_resolve_alias loopback was not ∞; got $ALIAS" +OUTPUT="$(nvm alias loopback)" +EXPECTED_OUTPUT="loopback -> loopback (-> ∞)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias loopback was not $EXPECTED_OUTPUT; got $OUTPUT" + +ALIAS="$(nvm_resolve_alias one)" +[ "_$ALIAS" = "_∞" ] || die "nvm_resolve_alias one was not ∞; got $ALIAS" +OUTPUT="$(nvm alias one)" +EXPECTED_OUTPUT="one -> two (-> ∞)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias one was not $EXPECTED_OUTPUT; got $OUTPUT" + +ALIAS="$(nvm_resolve_alias two)" +[ "_$ALIAS" = "_∞" ] || die "nvm_resolve_alias two was not ∞; got $ALIAS" +OUTPUT="$(nvm alias two)" +EXPECTED_OUTPUT="two -> three (-> ∞)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias two was not $EXPECTED_OUTPUT; got $OUTPUT" + +ALIAS="$(nvm_resolve_alias three)" +[ "_$ALIAS" = "_∞" ] || die "nvm_resolve_alias three was not ∞; got $ALIAS" +OUTPUT="$(nvm alias three)" +EXPECTED_OUTPUT="three -> one (-> ∞)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias three was not $EXPECTED_OUTPUT; got $OUTPUT" + +ALIAS="$(nvm_resolve_alias four)" +[ "_$ALIAS" = "_∞" ] || die "nvm_resolve_alias four was not ∞; got $ALIAS" +OUTPUT="$(nvm alias four)" +EXPECTED_OUTPUT="four -> two (-> ∞)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias four was not $EXPECTED_OUTPUT; got $OUTPUT" + diff --git a/test/fast/Aliases/circular/setup b/test/fast/Aliases/circular/setup new file mode 100755 index 0000000..8f2b142 --- /dev/null +++ b/test/fast/Aliases/circular/setup @@ -0,0 +1,10 @@ +#!/bin/sh + +echo loopback > ../../../../alias/loopback + +echo two > ../../../../alias/one +echo three > ../../../../alias/two +echo one > ../../../../alias/three + +echo two > ../../../../alias/four + diff --git a/test/fast/Aliases/circular/teardown b/test/fast/Aliases/circular/teardown new file mode 100755 index 0000000..9b6c79c --- /dev/null +++ b/test/fast/Aliases/circular/teardown @@ -0,0 +1,10 @@ +#!/bin/sh + +rm -f ../../../../alias/loopback + +rm -f ../../../../alias/one +rm -f ../../../../alias/two +rm -f ../../../../alias/three + +rm -f ../../../../alias/four + diff --git a/test/fast/Aliases/setup_dir b/test/fast/Aliases/setup similarity index 100% rename from test/fast/Aliases/setup_dir rename to test/fast/Aliases/setup diff --git a/test/fast/Aliases/teardown_dir b/test/fast/Aliases/teardown similarity index 100% rename from test/fast/Aliases/teardown_dir rename to test/fast/Aliases/teardown From 2d529cc8b73c96efcd1789ff567556e790e75272 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 22 Oct 2014 01:48:16 -0700 Subject: [PATCH 0261/1426] Prevent attempts to `nvm use` a circular reference. --- nvm.sh | 3 +++ ...se foo\" where \"foo\" is circular aborts" | 22 +++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100755 "test/fast/Running \"nvm use foo\" where \"foo\" is circular aborts" diff --git a/nvm.sh b/nvm.sh index cc8beee..aafb13a 100644 --- a/nvm.sh +++ b/nvm.sh @@ -821,6 +821,9 @@ nvm() { echo "System version of node not found." >&2 return 127 fi + elif [ "_$VERSION" = "_∞" ]; then + echo "The alias \"$2\" leads to an infinite loop. Aborting." >&2 + return 8 fi local NVM_VERSION_DIR diff --git "a/test/fast/Running \"nvm use foo\" where \"foo\" is circular aborts" "b/test/fast/Running \"nvm use foo\" where \"foo\" is circular aborts" new file mode 100755 index 0000000..53f67fa --- /dev/null +++ "b/test/fast/Running \"nvm use foo\" where \"foo\" is circular aborts" @@ -0,0 +1,22 @@ +#!/bin/sh + +die () { echo $@ ; cleanup ; exit 1; } + +cleanup() { + rm -rf ../../alias/foo +} + +. ../../nvm.sh + +echo 'foo' > ../../alias/foo + +OUTPUT="$(nvm use foo 2>&1)" +EXPECTED_OUTPUT='The alias "foo" leads to an infinite loop. Aborting.' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ + || die "'nvm use foo' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'" + +EXIT_CODE="$(nvm use foo 2>/dev/null ; echo $?)" +[ "_$EXIT_CODE" = "_8" ] || die "Expected exit code 8; got $EXIT_CODE" + +cleanup; + From fd1f2cdf661691b8fb8739a7250d719d1fcbd00f Mon Sep 17 00:00:00 2001 From: Brock Angelo Date: Sat, 25 Oct 2014 13:55:20 -0500 Subject: [PATCH 0262/1426] use `command -p pwd` to use the system default pwd --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index aafb13a..a2ca6b5 100644 --- a/nvm.sh +++ b/nvm.sh @@ -43,7 +43,7 @@ if [ -z "$NVM_DIR" ]; then if [ -n "$BASH_SOURCE" ]; then NVM_SCRIPT_SOURCE="${BASH_SOURCE[0]}" fi - export NVM_DIR=$(cd $NVM_CD_FLAGS $(dirname "${NVM_SCRIPT_SOURCE:-$0}") > /dev/null && pwd) + export NVM_DIR=$(cd $NVM_CD_FLAGS $(dirname "${NVM_SCRIPT_SOURCE:-$0}") > /dev/null && command -p pwd) fi unset NVM_SCRIPT_SOURCE 2> /dev/null From 1c9a5ba2d8931e76ce8f26c9778cbca7720f1c1f Mon Sep 17 00:00:00 2001 From: Brock Angelo Date: Sat, 25 Oct 2014 22:19:27 -0500 Subject: [PATCH 0263/1426] use slash pwd instead of command --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index a2ca6b5..de5a5af 100644 --- a/nvm.sh +++ b/nvm.sh @@ -43,7 +43,7 @@ if [ -z "$NVM_DIR" ]; then if [ -n "$BASH_SOURCE" ]; then NVM_SCRIPT_SOURCE="${BASH_SOURCE[0]}" fi - export NVM_DIR=$(cd $NVM_CD_FLAGS $(dirname "${NVM_SCRIPT_SOURCE:-$0}") > /dev/null && command -p pwd) + export NVM_DIR=$(cd $NVM_CD_FLAGS $(dirname "${NVM_SCRIPT_SOURCE:-$0}") > /dev/null && \pwd) fi unset NVM_SCRIPT_SOURCE 2> /dev/null From cec1c38a8407f0d254f91d1c214dc67a005a4e1a Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 23 Oct 2014 00:30:38 -0700 Subject: [PATCH 0264/1426] Move sourcing tests to a separate test suite. --- .travis.yml | 6 ++++++ package.json | 3 ++- test/installation/sourcing/setup_dir | 8 -------- test/installation/sourcing/teardown_dir | 5 ----- ...urcing nvm.sh should use the default if available | 4 ++-- test/sourcing/setup | 12 ++++++++++++ test/sourcing/teardown | 7 +++++++ 7 files changed, 29 insertions(+), 16 deletions(-) delete mode 100755 test/installation/sourcing/setup_dir delete mode 100755 test/installation/sourcing/teardown_dir rename test/{installation => }/sourcing/Sourcing nvm.sh should use the default if available (76%) create mode 100755 test/sourcing/setup create mode 100755 test/sourcing/teardown diff --git a/.travis.yml b/.travis.yml index d3491ce..6d3ef3f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,6 +19,11 @@ env: - SHELL=bash TEST_SUITE=slow - SHELL=zsh TEST_SUITE=slow - SHELL=ksh TEST_SUITE=slow + - SHELL=sh TEST_SUITE=sourcing + - SHELL=dash TEST_SUITE=sourcing + - SHELL=bash TEST_SUITE=sourcing + - SHELL=zsh TEST_SUITE=sourcing + - SHELL=ksh TEST_SUITE=sourcing - SHELL=sh TEST_SUITE=installation - SHELL=sh TEST_SUITE=installation WITHOUT_CURL=1 - SHELL=dash TEST_SUITE=installation @@ -29,3 +34,4 @@ env: - SHELL=zsh TEST_SUITE=installation WITHOUT_CURL=1 - SHELL=ksh TEST_SUITE=installation - SHELL=ksh TEST_SUITE=installation WITHOUT_CURL=1 + diff --git a/package.json b/package.json index e1d282f..8b8ef5c 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,8 @@ "test": "urchin test", "test/fast": "urchin -f test/fast", "test/slow": "urchin -f test/slow", - "test/installation": "urchin -f test/installation" + "test/installation": "urchin -f test/installation", + "test/sourcing": "urchin -f test/sourcing" }, "repository": { "type": "git", diff --git a/test/installation/sourcing/setup_dir b/test/installation/sourcing/setup_dir deleted file mode 100755 index 7509942..0000000 --- a/test/installation/sourcing/setup_dir +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -mkdir -p ../../../alias - -. ../../../nvm.sh -nvm install 0.10.1 -nvm unload || echo >&2 'nvm unload failed' - diff --git a/test/installation/sourcing/teardown_dir b/test/installation/sourcing/teardown_dir deleted file mode 100755 index 614e020..0000000 --- a/test/installation/sourcing/teardown_dir +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -rm -rf ../../../alias -rm -rf ../../../v0.10.1 - diff --git a/test/installation/sourcing/Sourcing nvm.sh should use the default if available b/test/sourcing/Sourcing nvm.sh should use the default if available similarity index 76% rename from test/installation/sourcing/Sourcing nvm.sh should use the default if available rename to test/sourcing/Sourcing nvm.sh should use the default if available index beb5db9..57cb839 100755 --- a/test/installation/sourcing/Sourcing nvm.sh should use the default if available +++ b/test/sourcing/Sourcing nvm.sh should use the default if available @@ -2,9 +2,9 @@ die () { echo $@ ; exit 1; } -echo '0.10.1' > ../../../alias/default || die 'creation of default alias failed' +echo '0.10.1' > ../../alias/default || die 'creation of default alias failed' -. ../../../nvm.sh || die 'sourcing returned nonzero exit code' +. ../../nvm.sh || die 'sourcing returned nonzero exit code' NVM_LS_CURRENT="$(nvm ls current | \grep -o v0.10.1)" [ "_$NVM_LS_CURRENT" = '_v0.10.1' ] || die "'nvm ls current' did not return '-> v0.10.1', got '$NVM_LS_CURRENT'" diff --git a/test/sourcing/setup b/test/sourcing/setup new file mode 100755 index 0000000..4d5a97b --- /dev/null +++ b/test/sourcing/setup @@ -0,0 +1,12 @@ +#!/bin/sh + +mkdir -p ../../alias +rm -f ../../.nvmrc +rm -rf ../../v0.10.7 +rm -rf ../../v0.9.7 +rm -rf ../../v0.9.12 + +. ../../nvm.sh +nvm install 0.10.1 || echo >&2 'nvm install 0.10.1 failed' +nvm unload || echo >&2 'nvm unload failed' + diff --git a/test/sourcing/teardown b/test/sourcing/teardown new file mode 100755 index 0000000..6a31472 --- /dev/null +++ b/test/sourcing/teardown @@ -0,0 +1,7 @@ +#!/bin/sh + +rm -rf ../../alias +rm -rf ../../v0.10.1 +rm -rf ../../v0.10.2 +rm -f ../../.nvmrc + From 3cdec8e8750eeb2e66d52b0e54841720c0e4d674 Mon Sep 17 00:00:00 2001 From: Xavier Cambar Date: Wed, 22 Oct 2014 19:43:39 +0200 Subject: [PATCH 0265/1426] Testable install script * wraps main code into a function * EnvVar-based install start * Clean environment after install --- .travis.yml | 6 +- install.sh | 127 ++++++++++++++++------------- package.json | 3 +- test/install_script/nvm_do_install | 6 ++ test/install_script/nvm_reset | 21 +++++ 5 files changed, 104 insertions(+), 59 deletions(-) create mode 100755 test/install_script/nvm_do_install create mode 100755 test/install_script/nvm_reset diff --git a/.travis.yml b/.travis.yml index 6d3ef3f..a76b809 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,6 +9,11 @@ before_script: script: - NVM_DIR=$TRAVIS_BUILD_DIR make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin $SHELL env: + - SHELL=sh TEST_SUITE=install_script + - SHELL=dash TEST_SUITE=install_script + - SHELL=bash TEST_SUITE=install_script + - SHELL=zsh TEST_SUITE=install_script + - SHELL=ksh TEST_SUITE=install_script - SHELL=sh TEST_SUITE=fast - SHELL=dash TEST_SUITE=fast - SHELL=bash TEST_SUITE=fast @@ -34,4 +39,3 @@ env: - SHELL=zsh TEST_SUITE=installation WITHOUT_CURL=1 - SHELL=ksh TEST_SUITE=installation - SHELL=ksh TEST_SUITE=installation WITHOUT_CURL=1 - diff --git a/install.sh b/install.sh index 85deb51..235b814 100755 --- a/install.sh +++ b/install.sh @@ -66,66 +66,79 @@ install_nvm_as_script() { } } -if [ -z "$METHOD" ]; then - # Autodetect install method - if nvm_has "git"; then +nvm_do_install() { + if [ -z "$METHOD" ]; then + # Autodetect install method + if nvm_has "git"; then + install_nvm_from_git + elif nvm_has "nvm_download"; then + install_nvm_as_script + else + echo >&2 "You need git, curl, or wget to install nvm" + exit 1 + fi + elif [ "~$METHOD" = "~git" ]; then + if ! nvm_has "git"; then + echo >&2 "You need git to install nvm" + exit 1 + fi install_nvm_from_git - elif nvm_has "nvm_download"; then + elif [ "~$METHOD" = "~script" ]; then + if ! nvm_has "nvm_download"; then + echo >&2 "You need curl or wget to install nvm" + exit 1 + fi install_nvm_as_script - else - echo >&2 "You need git, curl, or wget to install nvm" - exit 1 fi -elif [ "~$METHOD" = "~git" ]; then - if ! nvm_has "git"; then - echo >&2 "You need git to install nvm" - exit 1 - fi - install_nvm_from_git -elif [ "~$METHOD" = "~script" ]; then - if ! nvm_has "nvm_download"; then - echo >&2 "You need curl or wget to install nvm" - exit 1 - fi - install_nvm_as_script -fi -echo - -# Detect profile file if not specified as environment variable (eg: PROFILE=~/.myprofile). -if [ -z "$PROFILE" ]; then - if [ -f "$HOME/.bashrc" ]; then - PROFILE="$HOME/.bashrc" - elif [ -f "$HOME/.bash_profile" ]; then - PROFILE="$HOME/.bash_profile" - elif [ -f "$HOME/.zshrc" ]; then - PROFILE="$HOME/.zshrc" - elif [ -f "$HOME/.profile" ]; then - PROFILE="$HOME/.profile" - fi -fi - -SOURCE_STR="\nexport NVM_DIR=\"$NVM_DIR\"\n[ -s \"\$NVM_DIR/nvm.sh\" ] && . \"\$NVM_DIR/nvm.sh\" # This loads nvm" - -if [ -z "$PROFILE" ] || [ ! -f "$PROFILE" ] ; then - if [ -z "$PROFILE" ]; then - echo "=> Profile not found. Tried ~/.bashrc, ~/.bash_profile, ~/.zshrc, and ~/.profile." - echo "=> Create one of them and run this script again" - else - echo "=> Profile $PROFILE not found" - echo "=> Create it (touch $PROFILE) and run this script again" - fi - echo " OR" - echo "=> Append the following lines to the correct file yourself:" - printf "$SOURCE_STR" echo -else - if ! grep -qc 'nvm.sh' "$PROFILE"; then - echo "=> Appending source string to $PROFILE" - printf "$SOURCE_STR\n" >> "$PROFILE" - else - echo "=> Source string already in $PROFILE" - fi -fi -echo "=> Close and reopen your terminal to start using nvm" + # Detect profile file if not specified as environment variable (eg: PROFILE=~/.myprofile). + if [ -z "$PROFILE" ]; then + if [ -f "$HOME/.bashrc" ]; then + PROFILE="$HOME/.bashrc" + elif [ -f "$HOME/.bash_profile" ]; then + PROFILE="$HOME/.bash_profile" + elif [ -f "$HOME/.zshrc" ]; then + PROFILE="$HOME/.zshrc" + elif [ -f "$HOME/.profile" ]; then + PROFILE="$HOME/.profile" + fi + fi + + SOURCE_STR="\nexport NVM_DIR=\"$NVM_DIR\"\n[ -s \"\$NVM_DIR/nvm.sh\" ] && . \"\$NVM_DIR/nvm.sh\" # This loads nvm" + + if [ -z "$PROFILE" ] || [ ! -f "$PROFILE" ] ; then + if [ -z "$PROFILE" ]; then + echo "=> Profile not found. Tried ~/.bashrc, ~/.bash_profile, ~/.zshrc, and ~/.profile." + echo "=> Create one of them and run this script again" + else + echo "=> Profile $PROFILE not found" + echo "=> Create it (touch $PROFILE) and run this script again" + fi + echo " OR" + echo "=> Append the following lines to the correct file yourself:" + printf "$SOURCE_STR" + echo + else + if ! grep -qc 'nvm.sh' "$PROFILE"; then + echo "=> Appending source string to $PROFILE" + printf "$SOURCE_STR\n" >> "$PROFILE" + else + echo "=> Source string already in $PROFILE" + fi + fi + + echo "=> Close and reopen your terminal to start using nvm" + nvm_reset +} + +# +# Unsets the various functions defined +# during the execution of the install script +# +nvm_reset() { + unset -f nvm_do_install nvm_has nvm_download install_nvm_as_script install_nvm_from_git nvm_reset +} + +[ "_$NVM_ENV" = "_testing" ] || nvm_do_install diff --git a/package.json b/package.json index 8b8ef5c..d5ebb31 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,8 @@ "test/fast": "urchin -f test/fast", "test/slow": "urchin -f test/slow", "test/installation": "urchin -f test/installation", - "test/sourcing": "urchin -f test/sourcing" + "test/sourcing": "urchin -f test/sourcing", + "test/install_script": "urchin -f test/install_script" }, "repository": { "type": "git", diff --git a/test/install_script/nvm_do_install b/test/install_script/nvm_do_install new file mode 100755 index 0000000..02c77f3 --- /dev/null +++ b/test/install_script/nvm_do_install @@ -0,0 +1,6 @@ +#!/bin/sh + +NVM_ENV=testing . ../../install.sh + +#nvm_do_install is available +type nvm_do_install > /dev/null 2>&1 diff --git a/test/install_script/nvm_reset b/test/install_script/nvm_reset new file mode 100755 index 0000000..25d9a34 --- /dev/null +++ b/test/install_script/nvm_reset @@ -0,0 +1,21 @@ +#!/bin/sh + +NVM_ENV=testing . ../../install.sh + +safe_type() { + type "$1" > /dev/null 2>&1 && return 0 || return 1 +} + +# Check nvm_reset exists +type nvm_reset > /dev/null 2>&1 + +# Apply nvm_reset +nvm_reset + +# The names should be unset +! safe_type nvm_do_install && \ + ! safe_type nvm_has && \ + ! safe_type nvm_download && \ + ! safe_type install_nvm_as_script && \ + ! safe_type install_nvm_from_git && \ + ! safe_type nvm_reset From d30c0fe146a7a8a447908c30780cf59255cf3198 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 28 Oct 2014 13:47:21 -0700 Subject: [PATCH 0266/1426] Cleaning up install_script tests. --- package.json | 4 ++-- test/install_script/nvm_do_install | 5 ++++- test/install_script/nvm_reset | 24 ++++++++++++++++-------- 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index d5ebb31..0e2fc67 100644 --- a/package.json +++ b/package.json @@ -9,9 +9,9 @@ "test": "urchin test", "test/fast": "urchin -f test/fast", "test/slow": "urchin -f test/slow", + "test/install_script": "urchin -f test/install_script", "test/installation": "urchin -f test/installation", - "test/sourcing": "urchin -f test/sourcing", - "test/install_script": "urchin -f test/install_script" + "test/sourcing": "urchin -f test/sourcing" }, "repository": { "type": "git", diff --git a/test/install_script/nvm_do_install b/test/install_script/nvm_do_install index 02c77f3..a969602 100755 --- a/test/install_script/nvm_do_install +++ b/test/install_script/nvm_do_install @@ -1,6 +1,9 @@ #!/bin/sh +die () { echo $@ ; exit 1; } + NVM_ENV=testing . ../../install.sh #nvm_do_install is available -type nvm_do_install > /dev/null 2>&1 +type nvm_do_install > /dev/null 2>&1 || die 'nvm_do_install is not available' + diff --git a/test/install_script/nvm_reset b/test/install_script/nvm_reset index 25d9a34..4005d9c 100755 --- a/test/install_script/nvm_reset +++ b/test/install_script/nvm_reset @@ -1,21 +1,29 @@ #!/bin/sh +cleanup () { + unset -f safe_type +} +die () { echo $@ ; cleanup ; exit 1; } + NVM_ENV=testing . ../../install.sh safe_type() { - type "$1" > /dev/null 2>&1 && return 0 || return 1 + type "$1" > /dev/null 2>&1 } # Check nvm_reset exists -type nvm_reset > /dev/null 2>&1 +safe_type nvm_reset || die 'nvm_reset is not available' # Apply nvm_reset nvm_reset # The names should be unset -! safe_type nvm_do_install && \ - ! safe_type nvm_has && \ - ! safe_type nvm_download && \ - ! safe_type install_nvm_as_script && \ - ! safe_type install_nvm_from_git && \ - ! safe_type nvm_reset +! safe_type nvm_do_install || die 'nvm_do_install is still available' +! safe_type nvm_has || die 'nvm_has is still available' +! safe_type nvm_download || die 'nvm_download is still available' +! safe_type install_nvm_as_script || die 'install_nvm_as_script is still available' +! safe_type install_nvm_from_git || die 'install_nvm_from_git is still available' +! safe_type nvm_reset || die 'nvm_reset is still available' + +cleanup + From b9f15b0ab083eeeb2ec2379da4538260e5deabfc Mon Sep 17 00:00:00 2001 From: Xavier Cambar Date: Wed, 29 Oct 2014 13:05:11 +0100 Subject: [PATCH 0267/1426] Tests for PROFILE detection --- install.sh | 56 +++++++++++---------- test/install_script/nvm_detect_profile | 67 ++++++++++++++++++++++++++ test/install_script/nvm_reset | 3 +- 3 files changed, 100 insertions(+), 26 deletions(-) create mode 100755 test/install_script/nvm_detect_profile diff --git a/install.sh b/install.sh index 235b814..89d0ab7 100755 --- a/install.sh +++ b/install.sh @@ -66,6 +66,26 @@ install_nvm_as_script() { } } +# +# Detect profile file if not specified as environment variable +# (eg: PROFILE=~/.myprofile) +# The echo'ed path is guaranteed to be an existing file +# Otherwise, an empty string is returned +# +nvm_detect_profile() { + if [ -f "$PROFILE" ]; then + echo "$PROFILE" + elif [ -f "$HOME/.bashrc" ]; then + echo "$HOME/.bashrc" + elif [ -f "$HOME/.bash_profile" ]; then + echo "$HOME/.bash_profile" + elif [ -f "$HOME/.zshrc" ]; then + echo "$HOME/.zshrc" + elif [ -f "$HOME/.profile" ]; then + echo "$HOME/.profile" + fi +} + nvm_do_install() { if [ -z "$METHOD" ]; then # Autodetect install method @@ -93,39 +113,25 @@ nvm_do_install() { echo - # Detect profile file if not specified as environment variable (eg: PROFILE=~/.myprofile). - if [ -z "$PROFILE" ]; then - if [ -f "$HOME/.bashrc" ]; then - PROFILE="$HOME/.bashrc" - elif [ -f "$HOME/.bash_profile" ]; then - PROFILE="$HOME/.bash_profile" - elif [ -f "$HOME/.zshrc" ]; then - PROFILE="$HOME/.zshrc" - elif [ -f "$HOME/.profile" ]; then - PROFILE="$HOME/.profile" - fi - fi + local NVM_PROFILE + NVM_PROFILE=$(nvm_detect_profile) SOURCE_STR="\nexport NVM_DIR=\"$NVM_DIR\"\n[ -s \"\$NVM_DIR/nvm.sh\" ] && . \"\$NVM_DIR/nvm.sh\" # This loads nvm" - if [ -z "$PROFILE" ] || [ ! -f "$PROFILE" ] ; then - if [ -z "$PROFILE" ]; then - echo "=> Profile not found. Tried ~/.bashrc, ~/.bash_profile, ~/.zshrc, and ~/.profile." - echo "=> Create one of them and run this script again" - else - echo "=> Profile $PROFILE not found" - echo "=> Create it (touch $PROFILE) and run this script again" - fi + if [ -z "$NVM_PROFILE" ] ; then + echo "=> Profile not found. Tried $NVM_PROFILE (as defined in \$PROFILE), ~/.bashrc, ~/.bash_profile, ~/.zshrc, and ~/.profile." + echo "=> Create one of them and run this script again" + echo "=> Create it (touch $NVM_PROFILE) and run this script again" echo " OR" echo "=> Append the following lines to the correct file yourself:" printf "$SOURCE_STR" echo else - if ! grep -qc 'nvm.sh' "$PROFILE"; then - echo "=> Appending source string to $PROFILE" - printf "$SOURCE_STR\n" >> "$PROFILE" + if ! grep -qc 'nvm.sh' "$NVM_PROFILE"; then + echo "=> Appending source string to $NVM_PROFILE" + printf "$SOURCE_STR\n" >> "$NVM_PROFILE" else - echo "=> Source string already in $PROFILE" + echo "=> Source string already in $NVM_PROFILE" fi fi @@ -138,7 +144,7 @@ nvm_do_install() { # during the execution of the install script # nvm_reset() { - unset -f nvm_do_install nvm_has nvm_download install_nvm_as_script install_nvm_from_git nvm_reset + unset -f nvm_do_install nvm_has nvm_download install_nvm_as_script install_nvm_from_git nvm_reset nvm_detect_profile } [ "_$NVM_ENV" = "_testing" ] || nvm_do_install diff --git a/test/install_script/nvm_detect_profile b/test/install_script/nvm_detect_profile new file mode 100755 index 0000000..08aea82 --- /dev/null +++ b/test/install_script/nvm_detect_profile @@ -0,0 +1,67 @@ +#!/bin/sh + +cleanup () { + unset -f setup cleanup die + unset _PROFILE + rm -f .bashrc .bash_profile .zshrc .profile test_profile > /dev/null 2>&1 +} +die () { echo $@ ; cleanup ; exit 1; } + +NVM_ENV=testing . ../../install.sh + +setup () { + touch .bashrc + touch .bash_profile + touch .zshrc + touch .profile + touch test_profile +} + +#Let's hack $HOME +HOME="." + +setup + + +# $PROFILE points to a valid file, its path must be returned +PROFILE="test_profile" +_PROFILE=$(nvm_detect_profile) +[ "_$_PROFILE" = "_$PROFILE" ] || die "nvm_detect_profile didn't pick \$PROFILE" + +# $PROFILE doesn't point to a valid file, its path must not be returned +PROFILE="invalid_profile" +_PROFILE=$(nvm_detect_profile) +[ "_$_PROFILE" != "_$PROFILE" ] || die "nvm_detect_profile shouldn't pick \$PROFILE when it's not a valid file" + + +# Below are tests for when $PROFILE is undefined +rm test_profile +unset PROFILE + +# It should favor .bashrc if file exists +_PROFILE=$(nvm_detect_profile) +[ "_$_PROFILE" = "_$HOME/.bashrc" ] || die "nvm_detect_profile should have selected .bashrc" + +rm .bashrc +# Otherwise, it should favor .bash_profile if file exists +_PROFILE=$(nvm_detect_profile) +[ "_$_PROFILE" = "_$HOME/.bash_profile" ] || die "nvm_detect_profile should have selected .bash_profile" + +rm .bash_profile +# Otherwise, it should favor .zshrc if file exists +_PROFILE=$(nvm_detect_profile) +[ "_$_PROFILE" = "_$HOME/.zshrc" ] || die "nvm_detect_profile should have selected .zshrc" + +rm .zshrc +# Otherwise, it should favor .profile if file exists +_PROFILE=$(nvm_detect_profile) +[ "_$_PROFILE" = "_$HOME/.profile" ] || die "nvm_detect_profile should have selected .profile" + +rm .profile +# It should be empty if none is found +_PROFILE=$(nvm_detect_profile) +[ -z "$_PROFILE" ] || die "nvm_detect_profile should have echo'ed an empty value" + + +cleanup + diff --git a/test/install_script/nvm_reset b/test/install_script/nvm_reset index 4005d9c..0f58ee4 100755 --- a/test/install_script/nvm_reset +++ b/test/install_script/nvm_reset @@ -1,7 +1,7 @@ #!/bin/sh cleanup () { - unset -f safe_type + unset -f safe_type die cleanup } die () { echo $@ ; cleanup ; exit 1; } @@ -24,6 +24,7 @@ nvm_reset ! safe_type install_nvm_as_script || die 'install_nvm_as_script is still available' ! safe_type install_nvm_from_git || die 'install_nvm_from_git is still available' ! safe_type nvm_reset || die 'nvm_reset is still available' +! safe_type nvm_detect_profile || die 'nvm_detect_profile is still available' cleanup From ac912afc4c9253032a4567594a28e8e6933cce3e Mon Sep 17 00:00:00 2001 From: Michael Klement Date: Fri, 3 Oct 2014 01:29:04 -0400 Subject: [PATCH 0268/1426] Many makefile enhancements (support for direct invocation, instructions if invoked without target, release mechanism improved), package.json scripts now invoke the makefile. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Using `npm test` and `npm run …` scripts defined in package.json now invokes the makefile and runs the test with the same shell that npm was invoked from. - The makefile can now be invoked directly - supporting utilities from locally installed npm packages are automatically discovered. - Invoking the makefile without a target errors out with a hint. - Shell-specific test targets are now named 'test-'. - Both 'test-' targets and the all-shells 'test' target now run all test suites by default. - On `make TAG= release` there must be no uncommitted changes. '' can now also be one of the following increment specifiers: 'patch', 'minor', 'major'. - It is ensure that , if not an increment specifier, is a valid semver version number that is higher than the previous release's. - The previous release tag is now located with a pattern so as to exclude tags that aren't version numbers. - Switched from lightweight to annotated tags for releases. --- .gitignore | 1 + .travis.yml | 2 +- Makefile | 80 +++++++++++++++++++++++++++++++++++++++++----------- package.json | 15 +++++----- 4 files changed, 73 insertions(+), 25 deletions(-) diff --git a/.gitignore b/.gitignore index bddea4f..852b572 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ test/bak .urchin_stdout node_modules/ +npm-debug.log .DS_Store current diff --git a/.travis.yml b/.travis.yml index a76b809..9b6957c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,7 +7,7 @@ before_script: - '[ -z "$WITHOUT_CURL" ] || wget -O /tmp/urchin https://raw.githubusercontent.com/scraperwiki/urchin/master/urchin' - chmod +x /tmp/urchin script: - - NVM_DIR=$TRAVIS_BUILD_DIR make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin $SHELL + - NVM_DIR=$TRAVIS_BUILD_DIR make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin test-$SHELL env: - SHELL=sh TEST_SUITE=install_script - SHELL=dash TEST_SUITE=install_script diff --git a/Makefile b/Makefile index 814127d..10a6e51 100644 --- a/Makefile +++ b/Makefile @@ -1,26 +1,72 @@ -URCHIN=`which urchin` -SHELLS=sh bash dash ksh zsh -TEST_SUITE=fast + # Note: With Travis CI: + # - the path to urchin is passed via the command line. + # - the other utilties are NOT needed, so we skip the test for their existence. +URCHIN := urchin +ifeq ($(findstring /,$(URCHIN)),) # urchin path was NOT passed in. + # Add the local npm packages' bin folder to the PATH, so that `make` can find them, when invoked directly. + export PATH := $(shell printf '%s' "$$(npm bin):$$PATH") + # The list of all supporting utilities, installed with `npm install`. + UTILS := $(URCHIN) replace semver + # Make sure that all required utilities can be located. + UTIL_CHECK := $(or $(shell PATH="$(PATH)" which $(UTILS) >/dev/null && echo 'ok'),$(error Did you forget to run `npm install` after cloning the repo? At least one of the required supporting utilities not found: $(UTILS))) +endif + # The files that need updating when incrementing the version number. +VERSIONED_FILES := nvm.sh install.sh README.markdown package.json + # Define all shells to test with. Can be overridden with `make SHELLS=... `. +SHELLS := sh bash dash ksh zsh + # Generate 'test-' target names from specified shells. + # The embedded shell names are extracted on demand inside the recipes. +SHELL_TARGETS := $(addprefix test-,$(SHELLS)) + # Define the default test suite(s). This can be overridden with `make TEST_SUITE=<...> `. + # Test suites are the names of subfolders of './test'. +TEST_SUITE := $(shell find ./test -type d -mindepth 1 -maxdepth 1 -exec basename {} +) -.PHONY: $(SHELLS) test verify-tag release +# Default target (by virtue of being the first non '.'-prefixed in the file). +.PHONY: _no-target-specified +_no-target-specified: + $(error Please specify the target to make - `make list` shows targets. Alternatively, use `npm test` to run the default tests; `npm run` shows all tests) -$(SHELLS): - @printf '\n\033[0;34m%s\033[0m\n' "Running tests in $@" - @$@ $(URCHIN) -f test/$(TEST_SUITE) +# Lists all targets defined in this makefile. +.PHONY: list +list: + @$(MAKE) -pRrn : -f $(MAKEFILE_LIST) 2>/dev/null | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | egrep -v -e '^[^[:alnum:]]' -e '^$@$$' | sort -test: $(SHELLS) - @$(URCHIN) -f test/slow +# Set of test- targets; each runs the specified test suites for a single shell. +# Note that preexisting NVM_* variables are unset to avoid interfering with tests, except when running the Travis tests (where NVM_DIR must be passed in and the env. is assumed to be pristine). +.PHONY: $(SHELL_TARGETS) +$(SHELL_TARGETS): + @shell='$@'; shell=$${shell##*-}; which "$$shell" >/dev/null || { printf '\033[0;31m%s\033[0m\n' "WARNING: Cannot test with shell '$$shell': not found." >&2; exit 0; } && \ + printf '\n\033[0;34m%s\033[0m\n' "Running tests in $$shell"; \ + [ -z "$$TRAVIS_BUILD_DIR" ] && for v in $$(export -p | awk -F'[ =]' '$$2 ~ "^NVM_" { print $$2 }'); do unset $$v; done && unset v; \ + for suite in $(TEST_SUITE); do $$shell $(URCHIN) -f test/$$suite || exit; done -default: test +# All-tests target: invokes the specified test suites for ALL shells defined in $(SHELLS). +.PHONY: test +test: $(SHELL_TARGETS) -verify-tag: +.PHONY: _ensure-tag +_ensure-tag: ifndef TAG - $(error TAG is undefined) + $(error Please invoke with `make TAG= release`, where is either an increment specifier (patch, minor, major, prepatch, preminor, premajor, prerelease), or an explicit major.minor.patch version number) endif -release: verify-tag - @ OLD_TAG=`git describe --abbrev=0 --tags` && \ - replace "$${OLD_TAG/v/}" "$(TAG)" -- nvm.sh install.sh README.markdown package.json && \ - git commit -m "v$(TAG)" nvm.sh install.sh README.markdown package.json && \ - git tag "v$(TAG)" +# Ensures that the git workspace is clean. +.PHONY: _ensure-clean +_ensure-clean: + @[ -z "$$(git status --porcelain --untracked-files=no || echo err)" ] || { echo "Workspace is not clean; please commit changes first." >&2; exit 2; } +# Makes a release; invoke with `make TAG= release`. +.PHONY: release +release: _ensure-tag _ensure-clean + @old_ver=`git describe --abbrev=0 --tags --match 'v[0-9]*.[0-9]*.[0-9]*'` || { echo "Failed to determine current version." >&2; exit 1; }; old_ver=$${old_ver#v}; \ + new_ver=`echo "$(TAG)" | sed 's/^v//'`; new_ver=$${new_ver:-patch}; \ + if printf "$$new_ver" | grep -q '^[0-9]'; then \ + semver "$$new_ver" >/dev/null || { echo 'Invalid version number specified: $(TAG) - must be major.minor.patch' >&2; exit 2; }; \ + semver -r "> $$old_ver" "$$new_ver" >/dev/null || { echo 'Invalid version number specified: $(TAG) - must be HIGHER than current one.' >&2; exit 2; } \ + else \ + new_ver=`semver -i "$$new_ver" "$$old_ver"` || { echo 'Invalid version-increment specifier: $(TAG)' >&2; exit 2; } \ + fi; \ + printf "=== Bumping version **$$old_ver** to **$$new_ver** before committing and tagging:\n=== TYPE 'proceed' TO PROCEED, anything else to abort: " && read response && [ "$$response" = 'proceed' ] || { echo 'Aborted.' >&2; exit 2; }; \ + replace "$$old_ver" "$$new_ver" -- $(VERSIONED_FILES) && \ + git commit -m "v$$new_ver" $(VERSIONED_FILES) && \ + git tag -a -m "v$$new_ver" "v$$new_ver" diff --git a/package.json b/package.json index 0e2fc67..0d37a3e 100644 --- a/package.json +++ b/package.json @@ -6,12 +6,12 @@ "test": "test" }, "scripts": { - "test": "urchin test", - "test/fast": "urchin -f test/fast", - "test/slow": "urchin -f test/slow", - "test/install_script": "urchin -f test/install_script", - "test/installation": "urchin -f test/installation", - "test/sourcing": "urchin -f test/sourcing" + "test": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make test-$shell", + "test/fast": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=fast test-$shell", + "test/slow": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=slow test-$shell", + "test/install_script": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=install_script test-$shell", + "test/installation": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=installation test-$shell", + "test/sourcing": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=sourcing test-$shell" }, "repository": { "type": "git", @@ -30,7 +30,8 @@ }, "homepage": "https://github.com/creationix/nvm", "devDependencies": { + "replace": "~0.3.0", + "semver": "~4.1.0", "urchin": "~0.0.2" } } - From 781f72c9c88678291af7d5b6b9c7b5fbf879148e Mon Sep 17 00:00:00 2001 From: Michael Klement Date: Fri, 31 Oct 2014 09:07:21 -0400 Subject: [PATCH 0269/1426] Makefile now makes use of the `-s ` option for Urchin, IF it is available, for true cross-shell testing. Conversely, a warning is issued if it is missing, because that implies that no actual cross-shell testing will take place. Also, the shell command that determines the set of available test suites is now POSIX-compliant. --- Makefile | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 10a6e51..728a7e1 100644 --- a/Makefile +++ b/Makefile @@ -17,9 +17,13 @@ SHELLS := sh bash dash ksh zsh # Generate 'test-' target names from specified shells. # The embedded shell names are extracted on demand inside the recipes. SHELL_TARGETS := $(addprefix test-,$(SHELLS)) + # Determine if the installed Urchin version supports cross-shell testing, based on whether its usage information mentions the -s option. +HAVE_CROSS_SHELL_TESTS := $(shell PATH="$(PATH)" $(URCHIN) -h | grep -qE '(^|\s)-s\s' && echo 'yes') +NO_CROSS_SHELL_TESTS_WARNING := $(if $(HAVE_CROSS_SHELL_TESTS),,$(warning WARNING: This version of Urchin does not support cross-shell tests. All tests will run with 'sh'.)) # Define the default test suite(s). This can be overridden with `make TEST_SUITE=<...> `. # Test suites are the names of subfolders of './test'. -TEST_SUITE := $(shell find ./test -type d -mindepth 1 -maxdepth 1 -exec basename {} +) +TEST_SUITE := $(shell find ./test/* -type d -prune -exec basename {} \;) + # Default target (by virtue of being the first non '.'-prefixed in the file). .PHONY: _no-target-specified @@ -38,7 +42,8 @@ $(SHELL_TARGETS): @shell='$@'; shell=$${shell##*-}; which "$$shell" >/dev/null || { printf '\033[0;31m%s\033[0m\n' "WARNING: Cannot test with shell '$$shell': not found." >&2; exit 0; } && \ printf '\n\033[0;34m%s\033[0m\n' "Running tests in $$shell"; \ [ -z "$$TRAVIS_BUILD_DIR" ] && for v in $$(export -p | awk -F'[ =]' '$$2 ~ "^NVM_" { print $$2 }'); do unset $$v; done && unset v; \ - for suite in $(TEST_SUITE); do $$shell $(URCHIN) -f test/$$suite || exit; done + [ "$(HAVE_CROSS_SHELL_TESTS)" = 'yes' ] && targetShellOpt="-s $$shell" || targetShellOpt=; \ + for suite in $(TEST_SUITE); do $(URCHIN) -f $$targetShellOpt test/$$suite || exit; done # All-tests target: invokes the specified test suites for ALL shells defined in $(SHELLS). .PHONY: test From d09b84de3ca1ce7c3551430c248c8140c3a0541c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 2 Nov 2014 13:54:54 -0800 Subject: [PATCH 0270/1426] Ensure that a system has `manpath` before invoking it. Closes #531, fixes #557. --- nvm.sh | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/nvm.sh b/nvm.sh index de5a5af..a388eab 100644 --- a/nvm.sh +++ b/nvm.sh @@ -836,20 +836,22 @@ nvm() { PATH=`nvm_strip_path "$PATH" "/bin"` # Prepend current version PATH=`nvm_prepend_path "$PATH" "$NVM_VERSION_DIR/bin"` - if [ -z "$MANPATH" ]; then - MANPATH=$(manpath) + if nvm_has manpath; then + if [ -z "$MANPATH" ]; then + MANPATH=$(manpath) + fi + # Strip other version from MANPATH + MANPATH=`nvm_strip_path "$MANPATH" "/share/man"` + # Prepend current version + MANPATH=`nvm_prepend_path "$MANPATH" "$NVM_VERSION_DIR/share/man"` + export MANPATH fi - # Strip other version from MANPATH - MANPATH=`nvm_strip_path "$MANPATH" "/share/man"` - # Prepend current version - MANPATH=`nvm_prepend_path "$MANPATH" "$NVM_VERSION_DIR/share/man"` # Strip other version from NODE_PATH NODE_PATH=`nvm_strip_path "$NODE_PATH" "/lib/node_modules"` # Prepend current version NODE_PATH=`nvm_prepend_path "$NODE_PATH" "$NVM_VERSION_DIR/lib/node_modules"` export PATH hash -r - export MANPATH export NODE_PATH export NVM_PATH="$NVM_VERSION_DIR/lib/node" export NVM_BIN="$NVM_VERSION_DIR/bin" From 5f5eb47f14d34f8d20e28cfea05e712bbf431d8c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 5 Nov 2014 10:59:59 -0800 Subject: [PATCH 0271/1426] v0.18.0 --- README.markdown | 6 +++--- install.sh | 4 ++-- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.markdown b/README.markdown index 4f0e57e..bdf9007 100644 --- a/README.markdown +++ b/README.markdown @@ -12,11 +12,11 @@ Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/n To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.17.3/install.sh | bash + curl https://raw.githubusercontent.com/creationix/nvm/v0.18.0/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.17.3/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.18.0/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -186,7 +186,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.17.3/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.18.0/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin diff --git a/install.sh b/install.sh index 89d0ab7..8974593 100755 --- a/install.sh +++ b/install.sh @@ -44,13 +44,13 @@ install_nvm_from_git() { mkdir -p "$NVM_DIR" git clone "$NVM_SOURCE" "$NVM_DIR" fi - cd "$NVM_DIR" && git checkout v0.17.3 && git branch -D master >/dev/null 2>&1 + cd "$NVM_DIR" && git checkout v0.18.0 && git branch -D master >/dev/null 2>&1 return } install_nvm_as_script() { if [ -z "$NVM_SOURCE" ]; then - NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.17.3/nvm.sh" + NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.18.0/nvm.sh" fi # Downloading to $NVM_DIR diff --git a/nvm.sh b/nvm.sh index a388eab..969af37 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1040,7 +1040,7 @@ nvm() { nvm_version $2 ;; "--version" ) - echo "0.17.3" + echo "0.18.0" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version nvm_version_greater nvm_version_greater_than_or_equal_to > /dev/null 2>&1 diff --git a/package.json b/package.json index 0d37a3e..c2a080f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.17.3", + "version": "0.18.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From bf4bf008acafd71ac96835c76d549187f0a2c1ae Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 5 Nov 2014 13:58:30 -0800 Subject: [PATCH 0272/1426] Update `urchin` --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c2a080f..0edfa28 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,6 @@ "devDependencies": { "replace": "~0.3.0", "semver": "~4.1.0", - "urchin": "~0.0.2" + "urchin": "~0.0.4" } } From 2d8adac785082e95448f489057dabfdbe2497232 Mon Sep 17 00:00:00 2001 From: Michael Klement Date: Wed, 5 Nov 2014 23:14:59 -0500 Subject: [PATCH 0273/1426] .travis.yml now obtains latest urchin version from the npm registry instead of directly from GitHub --- .travis.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9b6957c..3279214 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,13 +1,11 @@ language: c # defaults to ruby install: - sudo apt-get install ksh zsh -y + - (mkdir /tmp/urchin && cd /tmp/urchin && curl -s "$(curl -s http://registry.npmjs.org/urchin | grep -Eo '"tarball":\s*"[^"]+"' | tail -n 1 | awk -F\" '{ print $4 }')" -O && tar -x -f urchin*) + - chmod +x /tmp/urchin/package/urchin - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' -before_script: - - '[ -n "$WITHOUT_CURL" ] || curl -o /tmp/urchin https://raw.githubusercontent.com/scraperwiki/urchin/master/urchin' - - '[ -z "$WITHOUT_CURL" ] || wget -O /tmp/urchin https://raw.githubusercontent.com/scraperwiki/urchin/master/urchin' - - chmod +x /tmp/urchin script: - - NVM_DIR=$TRAVIS_BUILD_DIR make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin test-$SHELL + - NVM_DIR=$TRAVIS_BUILD_DIR make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin/package/urchin test-$SHELL env: - SHELL=sh TEST_SUITE=install_script - SHELL=dash TEST_SUITE=install_script From 516e553093604ac8a0daa4ad7fab2388cc5c88bf Mon Sep 17 00:00:00 2001 From: Xavier Cambar Date: Fri, 31 Oct 2014 13:37:59 +0100 Subject: [PATCH 0274/1426] Refactors NVM_SOURCE --- install.sh | 42 ++++++++++++++++++++++++++-------- test/install_script/nvm_source | 37 ++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+), 10 deletions(-) create mode 100755 test/install_script/nvm_source diff --git a/install.sh b/install.sh index 8974593..15de6bf 100755 --- a/install.sh +++ b/install.sh @@ -11,6 +11,33 @@ if [ -z "$NVM_DIR" ]; then NVM_DIR="$HOME/.nvm" fi +# +# Outputs the location to NVM depending on: +# * The availability of $NVM_SOURCE +# * The method used ("script" or "git" in the script, defaults to "git") +# NVM_SOURCE always takes precedence +# +nvm_source() { + local NVM_METHOD + NVM_METHOD="$1" + if [ -z "$NVM_SOURCE" ]; then + local NVM_SOURCE + else + echo "$NVM_SOURCE" + return 0 + fi + if [ "_$NVM_METHOD" = "_script" ]; then + NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.18.0/nvm.sh" + elif [ "_$NVM_METHOD" = "_git" ] || [ -z "$NVM_METHOD" ]; then + NVM_SOURCE="https://github.com/creationix/nvm.git" + else + echo >&2 "Unexpected value \"$NVM_METHOD\" for \$NVM_METHOD" + return 1 + fi + echo "$NVM_SOURCE" + return 0 +} + nvm_download() { if nvm_has "curl"; then curl $* @@ -27,10 +54,6 @@ nvm_download() { } install_nvm_from_git() { - if [ -z "$NVM_SOURCE" ]; then - NVM_SOURCE="https://github.com/creationix/nvm.git" - fi - if [ -d "$NVM_DIR/.git" ]; then echo "=> nvm is already installed in $NVM_DIR, trying to update" printf "\r=> " @@ -42,16 +65,15 @@ install_nvm_from_git() { echo "=> Downloading nvm from git to '$NVM_DIR'" printf "\r=> " mkdir -p "$NVM_DIR" - git clone "$NVM_SOURCE" "$NVM_DIR" + git clone "$(nvm_source "git")" "$NVM_DIR" fi cd "$NVM_DIR" && git checkout v0.18.0 && git branch -D master >/dev/null 2>&1 return } install_nvm_as_script() { - if [ -z "$NVM_SOURCE" ]; then - NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.18.0/nvm.sh" - fi + local NVM_SOURCE + NVM_SOURCE=$(nvm_source "script") # Downloading to $NVM_DIR mkdir -p "$NVM_DIR" @@ -60,8 +82,8 @@ install_nvm_as_script() { else echo "=> Downloading nvm as script to '$NVM_DIR'" fi - nvm_download -s "$NVM_SOURCE" -o "$NVM_DIR/nvm.sh" || { - echo >&2 "Failed to download '$NVM_SOURCE'.." + nvm_download -s "$_source" -o "$NVM_DIR/nvm.sh" || { + echo >&2 "Failed to download '$_source'.." return 1 } } diff --git a/test/install_script/nvm_source b/test/install_script/nvm_source new file mode 100755 index 0000000..94c773f --- /dev/null +++ b/test/install_script/nvm_source @@ -0,0 +1,37 @@ +#!/bin/sh + +cleanup () { + unset -f die cleanup + unset NVM_SOURCE out +} +die () { echo $@ ; cleanup ; exit 1; } + +NVM_ENV=testing . ../../install.sh + +# nvm_source with no parameter returns the git endpoint +echo $(nvm_source) | grep "nvm.git$" > /dev/null || die "nvm_source without arguments should return the location of the git repo" + +# nvm_source with git parameter returns the location of the nvm repo +echo $(nvm_source "git") | grep "nvm.git$" > /dev/null || die "nvm_source without arguments should return the location of the git repo" + +# nvm_source with script parameter returns the location of nvm.sh +echo $(nvm_source "script") | grep "nvm.sh$" > /dev/null || die "nvm_source \"script\" should return the location of nvm.sh" + +# nvm_source with any other parameter errors out and exits +nvm_source "anything" 2> /dev/null && die "nvm_source with invalid parameter should exit" +out=$(nvm_source "anything" 2>&1 >/dev/null) || : #Saving the process here +[ -z "$out" ] && die "nvm_source with invalid parameter should error out" + +#nvm_source should always return NVM_SOURCE no matter the parameters +NVM_SOURCE="my_location" +out=$(nvm_source) +[ "_$out" = "_my_location" ] || die "nvm_source without arguments should have returned \$NVM_SOURCE. Got \"$out\"" +out=$(nvm_source "git") +[ "_$out" = "_my_location" ] || die "nvm_source git should have returned \$NVM_SOURCE. Got \"$out\"" +out=$(nvm_source "script") +[ "_$out" = "_my_location" ] || die "nvm_source script should have returned \$NVM_SOURCE. Got \"$out\"" +out=$(nvm_source "anything") +[ "_$out" = "_my_location" ] || die "nvm_source script should have returned \$NVM_SOURCE. Got \"$out\"" + +cleanup + From afba4e08fd18c73907025850239a0adf4104c611 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 15 Nov 2014 10:56:01 -0600 Subject: [PATCH 0275/1426] Temporarily disable ksh tests, per #574 --- .travis.yml | 14 +++++++------- Makefile | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3279214..c66d523 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ language: c # defaults to ruby install: - - sudo apt-get install ksh zsh -y + - sudo apt-get install zsh -y # ksh - (mkdir /tmp/urchin && cd /tmp/urchin && curl -s "$(curl -s http://registry.npmjs.org/urchin | grep -Eo '"tarball":\s*"[^"]+"' | tail -n 1 | awk -F\" '{ print $4 }')" -O && tar -x -f urchin*) - chmod +x /tmp/urchin/package/urchin - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' @@ -11,22 +11,22 @@ env: - SHELL=dash TEST_SUITE=install_script - SHELL=bash TEST_SUITE=install_script - SHELL=zsh TEST_SUITE=install_script - - SHELL=ksh TEST_SUITE=install_script +# - SHELL=ksh TEST_SUITE=install_script - SHELL=sh TEST_SUITE=fast - SHELL=dash TEST_SUITE=fast - SHELL=bash TEST_SUITE=fast - SHELL=zsh TEST_SUITE=fast - - SHELL=ksh TEST_SUITE=fast +# - SHELL=ksh TEST_SUITE=fast - SHELL=sh TEST_SUITE=slow - SHELL=dash TEST_SUITE=slow - SHELL=bash TEST_SUITE=slow - SHELL=zsh TEST_SUITE=slow - - SHELL=ksh TEST_SUITE=slow +# - SHELL=ksh TEST_SUITE=slow - SHELL=sh TEST_SUITE=sourcing - SHELL=dash TEST_SUITE=sourcing - SHELL=bash TEST_SUITE=sourcing - SHELL=zsh TEST_SUITE=sourcing - - SHELL=ksh TEST_SUITE=sourcing +# - SHELL=ksh TEST_SUITE=sourcing - SHELL=sh TEST_SUITE=installation - SHELL=sh TEST_SUITE=installation WITHOUT_CURL=1 - SHELL=dash TEST_SUITE=installation @@ -35,5 +35,5 @@ env: - SHELL=bash TEST_SUITE=installation WITHOUT_CURL=1 - SHELL=zsh TEST_SUITE=installation - SHELL=zsh TEST_SUITE=installation WITHOUT_CURL=1 - - SHELL=ksh TEST_SUITE=installation - - SHELL=ksh TEST_SUITE=installation WITHOUT_CURL=1 +# - SHELL=ksh TEST_SUITE=installation +# - SHELL=ksh TEST_SUITE=installation WITHOUT_CURL=1 diff --git a/Makefile b/Makefile index 728a7e1..46149d4 100644 --- a/Makefile +++ b/Makefile @@ -13,7 +13,7 @@ endif # The files that need updating when incrementing the version number. VERSIONED_FILES := nvm.sh install.sh README.markdown package.json # Define all shells to test with. Can be overridden with `make SHELLS=... `. -SHELLS := sh bash dash ksh zsh +SHELLS := sh bash dash zsh # ksh (#574) # Generate 'test-' target names from specified shells. # The embedded shell names are extracted on demand inside the recipes. SHELL_TARGETS := $(addprefix test-,$(SHELLS)) From 382c3aa85ec9e07a26438e6e4e3d7be5d6abcd55 Mon Sep 17 00:00:00 2001 From: Daniel Bretoi Date: Fri, 21 Nov 2014 16:54:31 -0800 Subject: [PATCH 0276/1426] implements nvm which --- nvm.sh | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/nvm.sh b/nvm.sh index 969af37..d8dcfae 100644 --- a/nvm.sh +++ b/nvm.sh @@ -547,6 +547,7 @@ nvm() { echo " nvm unalias Deletes the alias named " echo " nvm copy-packages Install global NPM packages contained in to current version" echo " nvm unload Unload NVM from shell" + echo " nvm which [] Display path to installed node version" echo echo "Example:" echo " nvm install v0.10.24 Install a specific version number" @@ -949,6 +950,40 @@ nvm() { "current" ) nvm_version current ;; + "which" ) + INPUT=$2 + + if [ "_$2" != '_system' ]; then + VERSION="$(nvm_version "$INPUT")" + else + VERSION="$INPUT" + fi + if [ -z "$VERSION" ]; then + nvm help + return 127 + fi + + if [ "_$VERSION" = '_system' ]; then + if nvm_has_system_node && nvm deactivate >/dev/null 2>&1; then + echo $(dirname `which node`) + return + else + echo "System version of node not found." >&2 + return 127 + fi + elif [ "_$VERSION" = "_∞" ]; then + echo "The alias \"$2\" leads to an infinite loop. Aborting." >&2 + return 8 + fi + + local NVM_VERSION_DIR + NVM_VERSION_DIR="$(nvm_version_path "$VERSION")" + if [ ! -d "$NVM_VERSION_DIR" ]; then + echo "$VERSION version is not installed yet" >&2 + return 1 + fi + echo $NVM_DIR/$VERSION + ;; "alias" ) mkdir -p "$NVM_DIR/alias" if [ $# -le 2 ]; then From b63042bd9f5d2e081d1d1c748d75ff242443186c Mon Sep 17 00:00:00 2001 From: Daniel Bretoi Date: Fri, 21 Nov 2014 16:59:15 -0800 Subject: [PATCH 0277/1426] forgot to append bin --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index d8dcfae..e25a148 100644 --- a/nvm.sh +++ b/nvm.sh @@ -982,7 +982,7 @@ nvm() { echo "$VERSION version is not installed yet" >&2 return 1 fi - echo $NVM_DIR/$VERSION + echo $NVM_DIR/$VERSION/bin ;; "alias" ) mkdir -p "$NVM_DIR/alias" From ee520abf78add0afcd9f52311c7467dab26c1e11 Mon Sep 17 00:00:00 2001 From: Daniel Bretoi Date: Fri, 21 Nov 2014 17:51:49 -0800 Subject: [PATCH 0278/1426] adding some tests for nvm which --- ....0.2\" should display only version 0.0.2." | 20 +++++++++++++++++++ test/fast/Listing paths/teardown | 17 ++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100755 "test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." create mode 100755 test/fast/Listing paths/teardown diff --git "a/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." "b/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." new file mode 100755 index 0000000..53ddf30 --- /dev/null +++ "b/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." @@ -0,0 +1,20 @@ +#!/bin/sh + +mkdir ../../../v0.0.2 +mkdir ../../../v0.0.20 + +. ../../../nvm.sh + +die () { echo $@ ; exit 1; } + +# The result should contain only the appropriate version numbers. + +nvm which 0.0.2 | grep "$NVM_DIR/v0.0.2/bin" > /dev/null +if [ $? -ne 0 ]; then + die '"nvm which 0.0.2" did not contain the correct path' +fi + +nvm which 0.0.20 | grep "$NVM_DIR/v0.0.20/bin" > /dev/null +if [ $? -ne 0 ]; then + die '"nvm which 0.0.2" did not contain the correct path' +fi diff --git a/test/fast/Listing paths/teardown b/test/fast/Listing paths/teardown new file mode 100755 index 0000000..25669ea --- /dev/null +++ b/test/fast/Listing paths/teardown @@ -0,0 +1,17 @@ +rmdir ../../../v0.0.1 >/dev/null 2>&1 +rmdir ../../../v0.0.2 >/dev/null 2>&1 +rmdir ../../../v0.0.3 >/dev/null 2>&1 +rmdir ../../../v0.0.9 >/dev/null 2>&1 +rmdir ../../../v0.0.20 >/dev/null 2>&1 +rmdir ../../../v0.1.2 >/dev/null 2>&1 +rmdir ../../../v0.1.3 >/dev/null 2>&1 +rmdir ../../../v0.2.3 >/dev/null 2>&1 +rmdir ../../../v0.3.1 >/dev/null 2>&1 +rmdir ../../../v0.3.3 >/dev/null 2>&1 +rmdir ../../../v0.3.9 >/dev/null 2>&1 +rmdir ../../../v0.20.3 >/dev/null 2>&1 +rmdir ../../../versions >/dev/null 2>&1 +unalias nvm_has_system_node >/dev/null 2>&1 +rm -f ../../../alias/stable >/dev/null 2>&1 +rm -f ../../../alias/unstable >/dev/null 2>&1 + From 8b25457b74c52745be865aba8f9134d6ccd1197c Mon Sep 17 00:00:00 2001 From: Daniel Bretoi Date: Fri, 21 Nov 2014 17:53:08 -0800 Subject: [PATCH 0279/1426] remove redundant lines from test file --- test/fast/Listing paths/teardown | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/test/fast/Listing paths/teardown b/test/fast/Listing paths/teardown index 25669ea..2bc7383 100755 --- a/test/fast/Listing paths/teardown +++ b/test/fast/Listing paths/teardown @@ -1,17 +1,2 @@ -rmdir ../../../v0.0.1 >/dev/null 2>&1 rmdir ../../../v0.0.2 >/dev/null 2>&1 -rmdir ../../../v0.0.3 >/dev/null 2>&1 -rmdir ../../../v0.0.9 >/dev/null 2>&1 rmdir ../../../v0.0.20 >/dev/null 2>&1 -rmdir ../../../v0.1.2 >/dev/null 2>&1 -rmdir ../../../v0.1.3 >/dev/null 2>&1 -rmdir ../../../v0.2.3 >/dev/null 2>&1 -rmdir ../../../v0.3.1 >/dev/null 2>&1 -rmdir ../../../v0.3.3 >/dev/null 2>&1 -rmdir ../../../v0.3.9 >/dev/null 2>&1 -rmdir ../../../v0.20.3 >/dev/null 2>&1 -rmdir ../../../versions >/dev/null 2>&1 -unalias nvm_has_system_node >/dev/null 2>&1 -rm -f ../../../alias/stable >/dev/null 2>&1 -rm -f ../../../alias/unstable >/dev/null 2>&1 - From c9a53fe0c751e001dd697ba5705de93d8f6e22f6 Mon Sep 17 00:00:00 2001 From: Daniel Bretoi Date: Fri, 21 Nov 2014 17:55:46 -0800 Subject: [PATCH 0280/1426] include nvm which in documentaiton --- README.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.markdown b/README.markdown index bdf9007..8ae1af7 100644 --- a/README.markdown +++ b/README.markdown @@ -61,6 +61,10 @@ Or, you can run any arbitrary command in a subshell with the desired version of nvm exec 0.10 node --version +You can also get the path to the executable to where it was installed: + + nvm which 0.10 + In place of a version pointer like "0.10", you can use the special default aliases "stable" and "unstable": nvm install stable From 0c33fd2598be65979edcba2029c83a5cc284a8b0 Mon Sep 17 00:00:00 2001 From: Daniel Bretoi Date: Sat, 22 Nov 2014 08:17:15 -0800 Subject: [PATCH 0281/1426] change to use default behavior for which --- nvm.sh | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/nvm.sh b/nvm.sh index e25a148..d3aeae7 100644 --- a/nvm.sh +++ b/nvm.sh @@ -951,12 +951,15 @@ nvm() { nvm_version current ;; "which" ) - INPUT=$2 - - if [ "_$2" != '_system' ]; then - VERSION="$(nvm_version "$INPUT")" + if [ $# -eq 1 ]; then + nvm_rc_version + if [ -n "$NVM_RC_VERSION" ]; then + VERSION=`nvm_version $NVM_RC_VERSION` + fi + elif [ "_$2" != '_system' ]; then + VERSION="$(nvm_version "$2")" else - VERSION="$INPUT" + VERSION="$2" fi if [ -z "$VERSION" ]; then nvm help From 5904d41b253e03d7ad0f3b58ce081e46e44f3c9a Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 22 Nov 2014 10:29:48 -0800 Subject: [PATCH 0282/1426] Fixing a bug in install_as_script, from https://github.com/creationix/nvm/commit/516e553093604ac8a0daa4ad7fab2388cc5c88bf --- install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 15de6bf..5296e47 100755 --- a/install.sh +++ b/install.sh @@ -82,8 +82,8 @@ install_nvm_as_script() { else echo "=> Downloading nvm as script to '$NVM_DIR'" fi - nvm_download -s "$_source" -o "$NVM_DIR/nvm.sh" || { - echo >&2 "Failed to download '$_source'.." + nvm_download -s "$NVM_SOURCE" -o "$NVM_DIR/nvm.sh" || { + echo >&2 "Failed to download '$NVM_SOURCE'.." return 1 } } From 689c52c90dbe780683da3289677e577ef2747907 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 22 Nov 2014 10:31:42 -0800 Subject: [PATCH 0283/1426] Install nvm-exec as well when installing via script. Fixes #553. --- install.sh | 14 +++++++++++++- test/install_script/nvm_source | 3 +++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 5296e47..ae9d866 100755 --- a/install.sh +++ b/install.sh @@ -28,6 +28,8 @@ nvm_source() { fi if [ "_$NVM_METHOD" = "_script" ]; then NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.18.0/nvm.sh" + elif [ "_$NVM_METHOD" = "_script-nvm-exec" ]; then + NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.18.0/nvm-exec" elif [ "_$NVM_METHOD" = "_git" ] || [ -z "$NVM_METHOD" ]; then NVM_SOURCE="https://github.com/creationix/nvm.git" else @@ -74,6 +76,8 @@ install_nvm_from_git() { install_nvm_as_script() { local NVM_SOURCE NVM_SOURCE=$(nvm_source "script") + local NVM_EXEC_SOURCE + NVM_EXEC_SOURCE=$(nvm_source "script-nvm-exec") # Downloading to $NVM_DIR mkdir -p "$NVM_DIR" @@ -83,9 +87,17 @@ install_nvm_as_script() { echo "=> Downloading nvm as script to '$NVM_DIR'" fi nvm_download -s "$NVM_SOURCE" -o "$NVM_DIR/nvm.sh" || { - echo >&2 "Failed to download '$NVM_SOURCE'.." + echo >&2 "Failed to download '$NVM_SOURCE'" return 1 } + nvm_download -s "$NVM_EXEC_SOURCE" -o "$NVM_DIR/nvm-exec" || { + echo >&2 "Failed to download '$NVM_EXEC_SOURCE'" + return 2 + } + chmod a+x "$NVM_DIR/nvm-exec" || { + echo >&2 "Failed to mark '$NVM_DIR/nvm-exec' as executable" + return 3 + } } # diff --git a/test/install_script/nvm_source b/test/install_script/nvm_source index 94c773f..8307639 100755 --- a/test/install_script/nvm_source +++ b/test/install_script/nvm_source @@ -17,6 +17,9 @@ echo $(nvm_source "git") | grep "nvm.git$" > /dev/null || die "nvm_source withou # nvm_source with script parameter returns the location of nvm.sh echo $(nvm_source "script") | grep "nvm.sh$" > /dev/null || die "nvm_source \"script\" should return the location of nvm.sh" +# nvm_source with script-nvm-exec parameter returns the location of nvm-exec +echo $(nvm_source "script-nvm-exec") | grep "nvm-exec$" > /dev/null || die "nvm_source \"script-nvm-exec\" should return the location of nvm.sh" + # nvm_source with any other parameter errors out and exits nvm_source "anything" 2> /dev/null && die "nvm_source with invalid parameter should exit" out=$(nvm_source "anything" 2>&1 >/dev/null) || : #Saving the process here From c33074cb54ad6ca1d7d2dee32082d6f15502b605 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 22 Nov 2014 10:45:53 -0800 Subject: [PATCH 0284/1426] Tweaking formatting of help output; adding `nvm exec` example. --- nvm.sh | 43 ++++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/nvm.sh b/nvm.sh index 969af37..54ec117 100644 --- a/nvm.sh +++ b/nvm.sh @@ -531,31 +531,32 @@ nvm() { echo "Node Version Manager" echo echo "Usage:" - echo " nvm help Show this message" - echo " nvm --version Print out the latest released version of nvm" - echo " nvm install [-s] Download and install a , [-s] from source. Uses .nvmrc if available" - echo " nvm uninstall Uninstall a version" - echo " nvm use Modify PATH to use . Uses .nvmrc if available" - echo " nvm run [] Run with as arguments. Uses .nvmrc if available for " - echo " nvm current Display currently activated version" - echo " nvm ls List installed versions" - echo " nvm ls List versions matching a given description" - echo " nvm ls-remote List remote versions available for install" - echo " nvm deactivate Undo effects of NVM on current shell" - echo " nvm alias [] Show all aliases beginning with " - echo " nvm alias Set an alias named pointing to " - echo " nvm unalias Deletes the alias named " - echo " nvm copy-packages Install global NPM packages contained in to current version" - echo " nvm unload Unload NVM from shell" + echo " nvm help Show this message" + echo " nvm --version Print out the latest released version of nvm" + echo " nvm install [-s] Download and install a , [-s] from source. Uses .nvmrc if available" + echo " nvm uninstall Uninstall a version" + echo " nvm use Modify PATH to use . Uses .nvmrc if available" + echo " nvm run [] Run with as arguments. Uses .nvmrc if available for " + echo " nvm current Display currently activated version" + echo " nvm ls List installed versions" + echo " nvm ls List versions matching a given description" + echo " nvm ls-remote List remote versions available for install" + echo " nvm deactivate Undo effects of \`nvm\` on current shell" + echo " nvm alias [] Show all aliases beginning with " + echo " nvm alias Set an alias named pointing to " + echo " nvm unalias Deletes the alias named " + echo " nvm copy-packages Install global \`npm\` packages contained in to current version" + echo " nvm unload Unload \`nvm\` from shell" echo echo "Example:" - echo " nvm install v0.10.24 Install a specific version number" - echo " nvm use 0.10 Use the latest available 0.10.x release" - echo " nvm run 0.10.24 myApp.js Run myApp.js using node v0.10.24" - echo " nvm alias default 0.10.24 Set default node version on a shell" + echo " nvm install v0.10.32 Install a specific version number" + echo " nvm use 0.10 Use the latest available 0.10.x release" + echo " nvm run 0.10.32 app.js Run app.js using node v0.10.32" + echo " nvm exec 0.10.32 node app.js Run \`node app.js\` with the PATH pointing to node v0.10.32" + echo " nvm alias default 0.10.32 Set default node version on a shell" echo echo "Note:" - echo " to remove, delete, or uninstall nvm - just remove ~/.nvm, ~/.npm, and ~/.bower folders" + echo " to remove, delete, or uninstall nvm - just remove ~/.nvm, ~/.npm, and ~/.bower folders" echo ;; From e7285776273bd09cdedc987cfe2c00d27f6b5e21 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 22 Nov 2014 10:52:44 -0800 Subject: [PATCH 0285/1426] Rename `nvm copy-packages` to `nvm reinstall-packages`, and `--copy-packages-from` install option to `--reinstall-packages-from` For #341. `nvm copy-packages` and install option `--copy-packages-from` will continue to be supported for for at least a full minor release version. --- README.markdown | 5 ++- bash_completion | 8 ++-- nvm.sh | 39 ++++++++++--------- ...-packages-from\" requires a valid version" | 31 --------------- ...-packages-from\" requires a valid version" | 31 +++++++++++++++ ...es => install while reinstalling packages} | 2 +- ...ages $(nvm ls current)\" should error out" | 16 -------- ...ages $(nvm ls current)\" should error out" | 16 ++++++++ .../setup_dir | 0 .../should work as expected | 2 +- .../teardown_dir | 0 11 files changed, 77 insertions(+), 73 deletions(-) delete mode 100755 "test/fast/Running \"nvm install\" with \"--copy-packages-from\" requires a valid version" create mode 100755 "test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" rename test/installation/{install while copying packages => install while reinstalling packages} (88%) delete mode 100755 "test/slow/nvm copy-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" create mode 100755 "test/slow/nvm reinstall-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" rename test/slow/{nvm copy-packages => nvm reinstall-packages}/setup_dir (100%) rename test/slow/{nvm copy-packages => nvm reinstall-packages}/should work as expected (96%) rename test/slow/{nvm copy-packages => nvm reinstall-packages}/teardown_dir (100%) diff --git a/README.markdown b/README.markdown index bdf9007..29372e9 100644 --- a/README.markdown +++ b/README.markdown @@ -146,8 +146,9 @@ Put the above sourcing line just below the sourcing line for NVM in your profile nvm $ nvm [tab][tab] - alias copy-packages help list run uninstall version - clear-cache deactivate install ls unalias use + alias deactivate install ls run unload + clear-cache exec list ls-remote unalias use + current help list-remote reinstall-packages uninstall version nvm alias diff --git a/bash_completion b/bash_completion index 4287e20..27d882e 100644 --- a/bash_completion +++ b/bash_completion @@ -18,10 +18,10 @@ __nvm_commands () current_word="${COMP_WORDS[COMP_CWORD]}" COMMANDS='\ - help install uninstall use run exec\ - alias unalias copy-packages - current list ls list-remote ls-remote\ - clear-cache deactivate unload + help install uninstall use run exec \ + alias unalias reinstall-packages \ + current list ls list-remote ls-remote \ + clear-cache deactivate unload \ version' if [ ${#COMP_WORDS[@]} == 4 ]; then diff --git a/nvm.sh b/nvm.sh index 54ec117..40a4aa9 100644 --- a/nvm.sh +++ b/nvm.sh @@ -545,7 +545,7 @@ nvm() { echo " nvm alias [] Show all aliases beginning with " echo " nvm alias Set an alias named pointing to " echo " nvm unalias Deletes the alias named " - echo " nvm copy-packages Install global \`npm\` packages contained in to current version" + echo " nvm reinstall-packages Reinstall global \`npm\` packages contained in to current version" echo " nvm unload Unload \`nvm\` from shell" echo echo "Example:" @@ -611,32 +611,35 @@ nvm() { VERSION="$(nvm_remote_version "$provided_version")" ADDITIONAL_PARAMETERS='' - local PROVIDED_COPY_PACKAGES_FROM - local COPY_PACKAGES_FROM + local PROVIDED_REINSTALL_PACKAGES_FROM + local REINSTALL_PACKAGES_FROM while [ $# -ne 0 ] do - if [ "_$(echo "$1" | cut -c 1-21)" = "_--copy-packages-from=" ]; then - PROVIDED_COPY_PACKAGES_FROM="$(echo "$1" | cut -c 22-)" - COPY_PACKAGES_FROM="$(nvm_version "$PROVIDED_COPY_PACKAGES_FROM")" + if [ "_$(echo "$1" | cut -c 1-26)" = "_--reinstall-packages-from=" ]; then + PROVIDED_REINSTALL_PACKAGES_FROM="$(echo "$1" | cut -c 27-)" + REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM")" + elif [ "_$(echo "$1" | cut -c 1-21)" = "_--copy-packages-from=" ]; then + PROVIDED_REINSTALL_PACKAGES_FROM="$(echo "$1" | cut -c 22-)" + REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM")" else ADDITIONAL_PARAMETERS="$ADDITIONAL_PARAMETERS $1" fi shift done - if [ "_$(nvm_ensure_version_prefix "$PROVIDED_COPY_PACKAGES_FROM")" = "_$VERSION" ]; then - echo "You can't copy global packages from the same version of node you're installing." >&2 + if [ "_$(nvm_ensure_version_prefix "$PROVIDED_REINSTALL_PACKAGES_FROM")" = "_$VERSION" ]; then + echo "You can't reinstall global packages from the same version of node you're installing." >&2 return 4 - elif [ ! -z "$PROVIDED_COPY_PACKAGES_FROM" ] && [ "_$COPY_PACKAGES_FROM" = "_N/A" ]; then - echo "If --copy-packages-from is provided, it must point to an installed version of node." >&2 + elif [ ! -z "$PROVIDED_REINSTALL_PACKAGES_FROM" ] && [ "_$REINSTALL_PACKAGES_FROM" = "_N/A" ]; then + echo "If --reinstall-packages-from is provided, it must point to an installed version of node." >&2 return 5 fi if [ -d "$(nvm_version_path "$VERSION")" ]; then echo "$VERSION is already installed." >&2 - if nvm use "$VERSION" && [ ! -z "$COPY_PACKAGES_FROM" ] && [ "_$COPY_PACKAGES_FROM" != "_N/A" ]; then - nvm copy-packages "$COPY_PACKAGES_FROM" + if nvm use "$VERSION" && [ ! -z "$REINSTALL_PACKAGES_FROM" ] && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then + nvm reinstall-packages "$REINSTALL_PACKAGES_FROM" fi return $? fi @@ -667,8 +670,8 @@ nvm() { mv "$tmpdir" "$(nvm_version_path "$VERSION")" ) then - if nvm use "$VERSION" && [ ! -z "$COPY_PACKAGES_FROM" ] && [ "_$COPY_PACKAGES_FROM" != "_N/A" ]; then - nvm copy-packages "$COPY_PACKAGES_FROM" + if nvm use "$VERSION" && [ ! -z "$REINSTALL_PACKAGES_FROM" ] && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then + nvm reinstall-packages "$REINSTALL_PACKAGES_FROM" fi return $? else @@ -713,8 +716,8 @@ nvm() { $make $MAKE_CXX install ) then - if nvm use "$VERSION" && [ ! -z "$COPY_PACKAGES_FROM" ] && [ "_$COPY_PACKAGES_FROM" != "_N/A" ]; then - nvm copy-packages "$COPY_PACKAGES_FROM" + if nvm use "$VERSION" && [ ! -z "$REINSTALL_PACKAGES_FROM" ] && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then + nvm reinstall-packages "$REINSTALL_PACKAGES_FROM" fi if ! nvm_has "npm" ; then echo "Installing npm..." @@ -1003,7 +1006,7 @@ nvm() { rm -f $NVM_DIR/alias/$2 echo "Deleted alias $2" ;; - "copy-packages" ) + "reinstall-packages" | "copy-packages" ) if [ $# -ne 2 ]; then nvm help return 127 @@ -1013,7 +1016,7 @@ nvm() { PROVIDED_VERSION="$2" if [ "$PROVIDED_VERSION" = "$(nvm_ls_current)" ] || [ "$(nvm_version $PROVIDED_VERSION)" = "$(nvm_ls_current)" ]; then - echo 'Can not copy packages from the current version of node.' >&2 + echo 'Can not reinstall packages from the current version of node.' >&2 return 2 fi diff --git "a/test/fast/Running \"nvm install\" with \"--copy-packages-from\" requires a valid version" "b/test/fast/Running \"nvm install\" with \"--copy-packages-from\" requires a valid version" deleted file mode 100755 index bbd7cbb..0000000 --- "a/test/fast/Running \"nvm install\" with \"--copy-packages-from\" requires a valid version" +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh - -die () { echo $@ ; cleanup ; exit 1; } -cleanup () { - rm -rf ../../v0.10.4 -} - -mkdir ../../v0.10.4 - -. ../../nvm.sh - -nvm deactivate >/dev/null 2>&1 - -INSTALL_ERROR_MSG="$(nvm install v0.10.5 --copy-packages-from=0.11 2>&1)" -EXPECTED_ERROR_MSG="If --copy-packages-from is provided, it must point to an installed version of node." -[ "~$INSTALL_ERROR_MSG" = "~$EXPECTED_ERROR_MSG" ] \ - || die ""nvm install --copy-packages" should fail when given an uninstalled version: expected '$EXPECTED_ERROR_MSG', got '$INSTALL_ERROR_MSG'" - -INSTALL_EXIT_CODE="$(nvm install v0.10.5 --copy-packages-from=0.11 >/dev/null 2>&1; echo $?)" -[ "~$INSTALL_EXIT_CODE" = "~5" ] \ - || die ""nvm install --copy-packages" should exit with code 5 when given an uninstalled version, got $INSTALL_EXIT_CODE" - -INSTALL_ERROR_MSG="$(nvm install v0.10.5 --copy-packages-from=0.10.5 2>&1)" -EXPECTED_ERROR_MSG="You can't copy global packages from the same version of node you're installing." -[ "~$INSTALL_ERROR_MSG" = "~$EXPECTED_ERROR_MSG" ] \ - || die ""nvm install --copy-packages" should fail when given the same version: expected '$EXPECTED_ERROR_MSG', got '$INSTALL_ERROR_MSG'" - -INSTALL_EXIT_CODE="$(nvm install v0.10.5 --copy-packages-from=0.10.5 >/dev/null 2>&1; echo $?)" -[ "~$INSTALL_EXIT_CODE" = "~4" ] \ - || die ""nvm install --copy-packages" should exit with code 4 when given the same version, got $INSTALL_EXIT_CODE" - diff --git "a/test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" "b/test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" new file mode 100755 index 0000000..00b6bc6 --- /dev/null +++ "b/test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" @@ -0,0 +1,31 @@ +#!/bin/sh + +die () { echo $@ ; cleanup ; exit 1; } +cleanup () { + rm -rf ../../v0.10.4 +} + +mkdir ../../v0.10.4 + +. ../../nvm.sh + +nvm deactivate >/dev/null 2>&1 + +INSTALL_ERROR_MSG="$(nvm install v0.10.5 --reinstall-packages-from=0.11 2>&1)" +EXPECTED_ERROR_MSG="If --reinstall-packages-from is provided, it must point to an installed version of node." +[ "~$INSTALL_ERROR_MSG" = "~$EXPECTED_ERROR_MSG" ] \ + || die ""nvm install --reinstall-packages-from" should fail when given an uninstalled version: expected '$EXPECTED_ERROR_MSG', got '$INSTALL_ERROR_MSG'" + +INSTALL_EXIT_CODE="$(nvm install v0.10.5 --reinstall-packages-from=0.11 >/dev/null 2>&1; echo $?)" +[ "~$INSTALL_EXIT_CODE" = "~5" ] \ + || die ""nvm install --reinstall-packages-from" should exit with code 5 when given an uninstalled version, got $INSTALL_EXIT_CODE" + +INSTALL_ERROR_MSG="$(nvm install v0.10.5 --reinstall-packages-from=0.10.5 2>&1)" +EXPECTED_ERROR_MSG="You can't reinstall global packages from the same version of node you're installing." +[ "~$INSTALL_ERROR_MSG" = "~$EXPECTED_ERROR_MSG" ] \ + || die ""nvm install --reinstall-packages-from" should fail when given the same version: expected '$EXPECTED_ERROR_MSG', got '$INSTALL_ERROR_MSG'" + +INSTALL_EXIT_CODE="$(nvm install v0.10.5 --reinstall-packages-from=0.10.5 >/dev/null 2>&1; echo $?)" +[ "~$INSTALL_EXIT_CODE" = "~4" ] \ + || die ""nvm install --reinstall-packages-from" should exit with code 4 when given the same version, got $INSTALL_EXIT_CODE" + diff --git a/test/installation/install while copying packages b/test/installation/install while reinstalling packages similarity index 88% rename from test/installation/install while copying packages rename to test/installation/install while reinstalling packages index 45cafb5..76eb7e5 100755 --- a/test/installation/install while copying packages +++ b/test/installation/install while reinstalling packages @@ -23,7 +23,7 @@ npm list --global | grep is-nan > /dev/null || die "is-nan isn't installed" nvm ls 0.9 | grep v0.9.7 > /dev/null || die "nvm ls 0.9 didn't show v0.9.7" -nvm install 0.9.12 --copy-packages-from=0.9 || die "nvm install 0.9.12 --copy-packages-from=0.9 failed" +nvm install 0.9.12 --reinstall-packages-from=0.9 || die "nvm install 0.9.12 --reinstall-packages-from=0.9 failed" [ -d ../../v0.9.12 ] || die "nvm install 0.9.12 didn't install" diff --git "a/test/slow/nvm copy-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" "b/test/slow/nvm copy-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" deleted file mode 100755 index e296e7c..0000000 --- "a/test/slow/nvm copy-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -die () { echo $@ ; exit 1; } - -. ../../../nvm.sh - -nvm use 0.10.28 > /dev/null - -EXPECTED_MSG="Can not copy packages from the current version of node." -ACTUAL_MSG="$(nvm copy-packages 0.10.28 2>&1 > /dev/null)" -[ "~$ACTUAL_MSG" = "~$EXPECTED_MSG" ] || die "'nvm use 0.10.28 && nvm copy-packages 0.10.28' did not fail with the right message: '$ACTUAL_MESSAGE'" - -EXPECTED_ERROR_CODE="2" -ACTUAL_ERROR_CODE="$(nvm copy-packages 0.10.28 > /dev/null 2>&1 ; echo $?)" -[ "~$ACTUAL_ERROR_CODE" = "~$EXPECTED_ERROR_CODE" ] || die "'nvm use 0.10.28 && nvm copy-packages 0.10.28' did not fail with the right error code: expected '$EXPECTED_ERROR_CODE', got '$ACTUAL_ERROR_CODE'" - diff --git "a/test/slow/nvm reinstall-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" "b/test/slow/nvm reinstall-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" new file mode 100755 index 0000000..1951b12 --- /dev/null +++ "b/test/slow/nvm reinstall-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" @@ -0,0 +1,16 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +nvm use 0.10.28 > /dev/null + +EXPECTED_MSG="Can not reinstall packages from the current version of node." +ACTUAL_MSG="$(nvm reinstall-packages 0.10.28 2>&1 > /dev/null)" +[ "~$ACTUAL_MSG" = "~$EXPECTED_MSG" ] || die "'nvm use 0.10.28 && nvm reinstall-packages 0.10.28' did not fail with the right message: '$ACTUAL_MESSAGE'" + +EXPECTED_ERROR_CODE="2" +ACTUAL_ERROR_CODE="$(nvm reinstall-packages 0.10.28 > /dev/null 2>&1 ; echo $?)" +[ "~$ACTUAL_ERROR_CODE" = "~$EXPECTED_ERROR_CODE" ] || die "'nvm use 0.10.28 && nvm reinstall-packages 0.10.28' did not fail with the right error code: expected '$EXPECTED_ERROR_CODE', got '$ACTUAL_ERROR_CODE'" + diff --git a/test/slow/nvm copy-packages/setup_dir b/test/slow/nvm reinstall-packages/setup_dir similarity index 100% rename from test/slow/nvm copy-packages/setup_dir rename to test/slow/nvm reinstall-packages/setup_dir diff --git a/test/slow/nvm copy-packages/should work as expected b/test/slow/nvm reinstall-packages/should work as expected similarity index 96% rename from test/slow/nvm copy-packages/should work as expected rename to test/slow/nvm reinstall-packages/should work as expected index e599609..4942e6e 100755 --- a/test/slow/nvm copy-packages/should work as expected +++ b/test/slow/nvm reinstall-packages/should work as expected @@ -13,7 +13,7 @@ echo "$EXPECTED_PACKAGES" | xargs npm install -g --quiet nvm use 0.10.29 ORIGINAL_PACKAGES=$(npm list -g --depth=0 | tail -n +2 | \grep -o -e ' [^@]*' | cut -c 2- | \grep -v npm | sort | uniq | xargs) -nvm copy-packages 0.10.28 +nvm reinstall-packages 0.10.28 FINAL_PACKAGES=$(npm list -g --depth=0 | tail -n +2 | \grep -o -e ' [^@]*' | cut -c 2- | \grep -v npm | sort | uniq | xargs) [ "$FINAL_PACKAGES" = "$EXPECTED_PACKAGES" ] || die "final packages ($FINAL_PACKAGES) did not match expected packages ($EXPECTED_PACKAGES)" diff --git a/test/slow/nvm copy-packages/teardown_dir b/test/slow/nvm reinstall-packages/teardown_dir similarity index 100% rename from test/slow/nvm copy-packages/teardown_dir rename to test/slow/nvm reinstall-packages/teardown_dir From 7bbcd3a97734c58126894080b042479d66dbeb2d Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 23 Nov 2014 14:49:38 -0800 Subject: [PATCH 0286/1426] v0.19.0 --- README.markdown | 6 +++--- install.sh | 6 +++--- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/README.markdown b/README.markdown index 29372e9..25dfd44 100644 --- a/README.markdown +++ b/README.markdown @@ -12,11 +12,11 @@ Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/n To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.18.0/install.sh | bash + curl https://raw.githubusercontent.com/creationix/nvm/v0.19.0/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.18.0/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.19.0/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -187,7 +187,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.18.0/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.19.0/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin diff --git a/install.sh b/install.sh index ae9d866..5486fe1 100755 --- a/install.sh +++ b/install.sh @@ -27,9 +27,9 @@ nvm_source() { return 0 fi if [ "_$NVM_METHOD" = "_script" ]; then - NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.18.0/nvm.sh" + NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.19.0/nvm.sh" elif [ "_$NVM_METHOD" = "_script-nvm-exec" ]; then - NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.18.0/nvm-exec" + NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.19.0/nvm-exec" elif [ "_$NVM_METHOD" = "_git" ] || [ -z "$NVM_METHOD" ]; then NVM_SOURCE="https://github.com/creationix/nvm.git" else @@ -69,7 +69,7 @@ install_nvm_from_git() { mkdir -p "$NVM_DIR" git clone "$(nvm_source "git")" "$NVM_DIR" fi - cd "$NVM_DIR" && git checkout v0.18.0 && git branch -D master >/dev/null 2>&1 + cd "$NVM_DIR" && git checkout v0.19.0 && git branch -D master >/dev/null 2>&1 return } diff --git a/nvm.sh b/nvm.sh index 40a4aa9..592babc 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1044,7 +1044,7 @@ nvm() { nvm_version $2 ;; "--version" ) - echo "0.18.0" + echo "0.19.0" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version nvm_version_greater nvm_version_greater_than_or_equal_to > /dev/null 2>&1 diff --git a/package.json b/package.json index 0edfa28..79d146a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.18.0", + "version": "0.19.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 052743816f7e5764885c669e372fdc9878fb1341 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 28 Nov 2014 11:59:45 -0600 Subject: [PATCH 0287/1426] $NODE_PATH is special, so this function shouldn't risk clobbering it. --- nvm.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index 592babc..f7e577c 100644 --- a/nvm.sh +++ b/nvm.sh @@ -253,11 +253,11 @@ nvm_alias() { } nvm_ls_current() { - local NODE_PATH - NODE_PATH="$(which node 2> /dev/null)" + local NVM_LS_CURRENT_NODE_PATH + NVM_LS_CURRENT_NODE_PATH="$(which node 2> /dev/null)" if [ $? -ne 0 ]; then echo 'none' - elif nvm_tree_contains_path "$NVM_DIR" "$NODE_PATH"; then + elif nvm_tree_contains_path "$NVM_DIR" "$NVM_LS_CURRENT_NODE_PATH"; then local VERSION VERSION=`node -v 2>/dev/null` if [ "$VERSION" = "v0.6.21-pre" ]; then From 383f39ab613c7417be11be3891dfde331da8ecb6 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 29 Nov 2014 08:52:09 -0800 Subject: [PATCH 0288/1426] Global modules should not be requireable, and `npm root -g` should not be in `$NODE_PATH`. Fixes #586. --- nvm.sh | 9 +-------- ...tivate\" should unset the nvm environment variables." | 3 ++- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/nvm.sh b/nvm.sh index f7e577c..1b0583a 100644 --- a/nvm.sh +++ b/nvm.sh @@ -790,9 +790,7 @@ nvm() { fi NEWPATH="$(nvm_strip_path "$NODE_PATH" "/lib/node_modules")" - if [ "$NODE_PATH" = "$NEWPATH" ]; then - echo "Could not find $NVM_DIR/*/lib/node_modules in \$NODE_PATH" >&2 - else + if [ "$NODE_PATH" != "$NEWPATH" ]; then export NODE_PATH="$NEWPATH" echo "$NVM_DIR/*/lib/node_modules removed from \$NODE_PATH" fi @@ -850,13 +848,8 @@ nvm() { MANPATH=`nvm_prepend_path "$MANPATH" "$NVM_VERSION_DIR/share/man"` export MANPATH fi - # Strip other version from NODE_PATH - NODE_PATH=`nvm_strip_path "$NODE_PATH" "/lib/node_modules"` - # Prepend current version - NODE_PATH=`nvm_prepend_path "$NODE_PATH" "$NVM_VERSION_DIR/lib/node_modules"` export PATH hash -r - export NODE_PATH export NVM_PATH="$NVM_VERSION_DIR/lib/node" export NVM_BIN="$NVM_VERSION_DIR/bin" if [ "$NVM_SYMLINK_CURRENT" = true ]; then diff --git "a/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." "b/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." index 2149273..e6a39d4 100755 --- "a/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." +++ "b/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." @@ -8,7 +8,8 @@ die () { echo $@ ; exit 1; } . ../../nvm.sh nvm use v0.2.3 && -[ `expr $PATH : ".*v0.2.3/.*/bin"` != 0 ] && [ `expr $NODE_PATH : ".*v0.2.3/.*/lib/node_modules"` != 0 ] || die "Failed to activate v0.2.3" +[ `expr $PATH : ".*v0.2.3/.*/bin"` != 0 ] && [ `expr $NODE_PATH : ".*v0.2.3/.*/lib/node_modules"` = 0 ] || die "Failed to activate v0.2.3" +# ^ note: NODE_PATH should not contain `npm root -g` since globals should not be requireable nvm deactivate && [ `expr $PATH : ".*v0.2.3/.*/bin"` = 0 ] && [ `expr $NODE_PATH : ".*v0.2.3/.*/lib/node_modules"` = 0 ] || die "Failed to deactivate v0.2.3" From 8964cb46d3c849aaff606c6d37d07525929e1856 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 29 Nov 2014 11:23:16 -0800 Subject: [PATCH 0289/1426] v0.20.0 --- README.markdown | 6 +++--- install.sh | 6 +++--- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/README.markdown b/README.markdown index 25dfd44..3da592b 100644 --- a/README.markdown +++ b/README.markdown @@ -12,11 +12,11 @@ Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/n To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.19.0/install.sh | bash + curl https://raw.githubusercontent.com/creationix/nvm/v0.20.0/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.19.0/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.20.0/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -187,7 +187,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.19.0/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.20.0/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin diff --git a/install.sh b/install.sh index 5486fe1..2c6fede 100755 --- a/install.sh +++ b/install.sh @@ -27,9 +27,9 @@ nvm_source() { return 0 fi if [ "_$NVM_METHOD" = "_script" ]; then - NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.19.0/nvm.sh" + NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.20.0/nvm.sh" elif [ "_$NVM_METHOD" = "_script-nvm-exec" ]; then - NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.19.0/nvm-exec" + NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.20.0/nvm-exec" elif [ "_$NVM_METHOD" = "_git" ] || [ -z "$NVM_METHOD" ]; then NVM_SOURCE="https://github.com/creationix/nvm.git" else @@ -69,7 +69,7 @@ install_nvm_from_git() { mkdir -p "$NVM_DIR" git clone "$(nvm_source "git")" "$NVM_DIR" fi - cd "$NVM_DIR" && git checkout v0.19.0 && git branch -D master >/dev/null 2>&1 + cd "$NVM_DIR" && git checkout v0.20.0 && git branch -D master >/dev/null 2>&1 return } diff --git a/nvm.sh b/nvm.sh index 1b0583a..accb54f 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1037,7 +1037,7 @@ nvm() { nvm_version $2 ;; "--version" ) - echo "0.19.0" + echo "0.20.0" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version nvm_version_greater nvm_version_greater_than_or_equal_to > /dev/null 2>&1 diff --git a/package.json b/package.json index 79d146a..b25380b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.19.0", + "version": "0.20.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 234b925c7a67f7975682b7bc9761b5b90b889f36 Mon Sep 17 00:00:00 2001 From: Daniel Bretoi Date: Tue, 2 Dec 2014 12:40:23 -0800 Subject: [PATCH 0290/1426] style and remove nvm deactivate in nvm which --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index d3aeae7..e3f4b3b 100644 --- a/nvm.sh +++ b/nvm.sh @@ -954,7 +954,7 @@ nvm() { if [ $# -eq 1 ]; then nvm_rc_version if [ -n "$NVM_RC_VERSION" ]; then - VERSION=`nvm_version $NVM_RC_VERSION` + VERSION=$(nvm_version $NVM_RC_VERSION) fi elif [ "_$2" != '_system' ]; then VERSION="$(nvm_version "$2")" @@ -967,7 +967,7 @@ nvm() { fi if [ "_$VERSION" = '_system' ]; then - if nvm_has_system_node && nvm deactivate >/dev/null 2>&1; then + if nvm_has_system_node >/dev/null 2>&1; then echo $(dirname `which node`) return else From a1c0c34088f67ff0884134ceded8a00148d674b2 Mon Sep 17 00:00:00 2001 From: Daniel Bretoi Date: Tue, 2 Dec 2014 12:58:07 -0800 Subject: [PATCH 0291/1426] fix to proper echo of nvm which. Checkin test which had been left out --- nvm.sh | 2 +- ... foo\" should return a nonzero exit code when not found" | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100755 "test/fast/Listing paths/Running \"nvm which foo\" should return a nonzero exit code when not found" diff --git a/nvm.sh b/nvm.sh index e3f4b3b..9a42199 100644 --- a/nvm.sh +++ b/nvm.sh @@ -968,7 +968,7 @@ nvm() { if [ "_$VERSION" = '_system' ]; then if nvm_has_system_node >/dev/null 2>&1; then - echo $(dirname `which node`) + echo $(nvm use system && echo dirname $(which node)) return else echo "System version of node not found." >&2 diff --git "a/test/fast/Listing paths/Running \"nvm which foo\" should return a nonzero exit code when not found" "b/test/fast/Listing paths/Running \"nvm which foo\" should return a nonzero exit code when not found" new file mode 100755 index 0000000..43b2bae --- /dev/null +++ "b/test/fast/Listing paths/Running \"nvm which foo\" should return a nonzero exit code when not found" @@ -0,0 +1,6 @@ + #!/bin/sh + +. ../../../nvm.sh + +nvm which nonexistent_version +[ "$?" = "1" ] From ae908cbff6e10caa5d7afc4e4b87540b5e6b0e88 Mon Sep 17 00:00:00 2001 From: Michael Klement Date: Wed, 3 Dec 2014 01:47:54 -0500 Subject: [PATCH 0292/1426] obsolete check for the urchin cross-shell test feature; fix for spurious warnings; improved robustness --- Makefile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index 46149d4..f8afe29 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,14 @@ + # Since we rely on paths relative to the makefile location, abort if make isn't being run from there. +$(if $(findstring /,$(MAKEFILE_LIST)),$(error Please only invoke this makefile from the directory it resides in)) # Note: With Travis CI: # - the path to urchin is passed via the command line. - # - the other utilties are NOT needed, so we skip the test for their existence. + # - the other utilities are NOT needed, so we skip the test for their existence. URCHIN := urchin ifeq ($(findstring /,$(URCHIN)),) # urchin path was NOT passed in. # Add the local npm packages' bin folder to the PATH, so that `make` can find them, when invoked directly. - export PATH := $(shell printf '%s' "$$(npm bin):$$PATH") + # Note that rather than using `$(npm bin)` the 'node_modules/.bin' path component is hard-coded, so that invocation works even from an environment + # where npm is (temporarily) unavailable due to having deactivated an nvm instance loaded into the calling shell in order to avoid interference with tests. + export PATH := $(shell printf '%s' "$$PWD/node_modules/.bin:$$PATH") # The list of all supporting utilities, installed with `npm install`. UTILS := $(URCHIN) replace semver # Make sure that all required utilities can be located. @@ -17,9 +21,6 @@ SHELLS := sh bash dash zsh # ksh (#574) # Generate 'test-' target names from specified shells. # The embedded shell names are extracted on demand inside the recipes. SHELL_TARGETS := $(addprefix test-,$(SHELLS)) - # Determine if the installed Urchin version supports cross-shell testing, based on whether its usage information mentions the -s option. -HAVE_CROSS_SHELL_TESTS := $(shell PATH="$(PATH)" $(URCHIN) -h | grep -qE '(^|\s)-s\s' && echo 'yes') -NO_CROSS_SHELL_TESTS_WARNING := $(if $(HAVE_CROSS_SHELL_TESTS),,$(warning WARNING: This version of Urchin does not support cross-shell tests. All tests will run with 'sh'.)) # Define the default test suite(s). This can be overridden with `make TEST_SUITE=<...> `. # Test suites are the names of subfolders of './test'. TEST_SUITE := $(shell find ./test/* -type d -prune -exec basename {} \;) @@ -41,9 +42,8 @@ list: $(SHELL_TARGETS): @shell='$@'; shell=$${shell##*-}; which "$$shell" >/dev/null || { printf '\033[0;31m%s\033[0m\n' "WARNING: Cannot test with shell '$$shell': not found." >&2; exit 0; } && \ printf '\n\033[0;34m%s\033[0m\n' "Running tests in $$shell"; \ - [ -z "$$TRAVIS_BUILD_DIR" ] && for v in $$(export -p | awk -F'[ =]' '$$2 ~ "^NVM_" { print $$2 }'); do unset $$v; done && unset v; \ - [ "$(HAVE_CROSS_SHELL_TESTS)" = 'yes' ] && targetShellOpt="-s $$shell" || targetShellOpt=; \ - for suite in $(TEST_SUITE); do $(URCHIN) -f $$targetShellOpt test/$$suite || exit; done + [ -z "$$TRAVIS_BUILD_DIR" ] && for v in $$(set | awk -F'=' '$$1 ~ "^NVM_" { print $$1 }'); do unset $$v; done && unset v; \ + for suite in $(TEST_SUITE); do $(URCHIN) -f -s $$shell test/$$suite || exit; done # All-tests target: invokes the specified test suites for ALL shells defined in $(SHELLS). .PHONY: test From 3bd148056ecd2158fbb9b8983d8c9a21745abf5b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 3 Dec 2014 00:04:12 -0800 Subject: [PATCH 0293/1426] Fixing deactivate tests. Fixes #357. --- ...vate\" should unset the nvm environment variables." | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git "a/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." "b/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." index e6a39d4..9f752a7 100755 --- "a/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." +++ "b/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." @@ -7,9 +7,11 @@ die () { echo $@ ; exit 1; } [ `expr $PATH : ".*v0.2.3/.*/bin"` = 0 ] || echo "WARNING: Unexpectedly found v0.2.3 already active" >&2 . ../../nvm.sh -nvm use v0.2.3 && -[ `expr $PATH : ".*v0.2.3/.*/bin"` != 0 ] && [ `expr $NODE_PATH : ".*v0.2.3/.*/lib/node_modules"` = 0 ] || die "Failed to activate v0.2.3" +nvm use v0.2.3 || die "Failed to activate v0.2.3" +[ `expr "$PATH" : ".*v0.2.3/.*/bin"` != 0 ] || die "PATH not set up properly" +[ `expr "$NODE_PATH" : ".*v0.2.3/.*/lib/node_modules"` = 0 ] || die "NODE_PATH should not contain (npm root -g)" # ^ note: NODE_PATH should not contain `npm root -g` since globals should not be requireable -nvm deactivate && -[ `expr $PATH : ".*v0.2.3/.*/bin"` = 0 ] && [ `expr $NODE_PATH : ".*v0.2.3/.*/lib/node_modules"` = 0 ] || die "Failed to deactivate v0.2.3" +nvm deactivate || die "Failed to deactivate v0.2.3" +[ `expr "$PATH" : ".*v0.2.3/.*/bin"` = 0 ] || die "PATH not cleaned properly" +[ `expr "$NODE_PATH" : ".*v0.2.3/.*/lib/node_modules"` = 0 ] || die "NODE_PATH not cleaned properly" From 080f2149ac8fe16a5e73a8b2b518009db0f4acd8 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 8 Dec 2014 21:51:06 -0800 Subject: [PATCH 0294/1426] Update `urchin` --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b25380b..3e6acd0 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,6 @@ "devDependencies": { "replace": "~0.3.0", "semver": "~4.1.0", - "urchin": "~0.0.4" + "urchin": "~0.0.5" } } From fc3a30dd0ea9312b2e363a4517705e1611725845 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 17 Dec 2014 01:29:38 -0800 Subject: [PATCH 0295/1426] Add `nvm which` to `bash_completion` --- bash_completion | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bash_completion b/bash_completion index 27d882e..92fe89b 100644 --- a/bash_completion +++ b/bash_completion @@ -22,7 +22,7 @@ __nvm_commands () alias unalias reinstall-packages \ current list ls list-remote ls-remote \ clear-cache deactivate unload \ - version' + version which' if [ ${#COMP_WORDS[@]} == 4 ]; then From f408d68afce2ce14ffed6aa1303393fcf8596457 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 17 Dec 2014 01:30:23 -0800 Subject: [PATCH 0296/1426] Add `nvmrc` note to `nvm which` blurb. --- README.markdown | 2 +- nvm.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.markdown b/README.markdown index 4eeddae..b0346c5 100644 --- a/README.markdown +++ b/README.markdown @@ -43,7 +43,7 @@ Often I also put in a line to use a specific version of node. ## Usage You can create an `.nvmrc` file containing version number in the project root directory (or any parent directory). -`nvm use`, `nvm install`, `nvm exec`, and `nvm run` will all respect an `.nvmrc` file. +`nvm use`, `nvm install`, `nvm exec`, `nvm run`, and `nvm which` will all respect an `.nvmrc` file when a version is not supplied. To download, compile, and install the latest v0.10.x release of node, do this: diff --git a/nvm.sh b/nvm.sh index 9709243..bd81595 100644 --- a/nvm.sh +++ b/nvm.sh @@ -547,7 +547,7 @@ nvm() { echo " nvm unalias Deletes the alias named " echo " nvm reinstall-packages Reinstall global \`npm\` packages contained in to current version" echo " nvm unload Unload \`nvm\` from shell" - echo " nvm which [] Display path to installed node version" + echo " nvm which [] Display path to installed node version. Uses .nvmrc if available" echo echo "Example:" echo " nvm install v0.10.32 Install a specific version number" From b9df3fccb481f10b84bad8a5e455a61665f91726 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 17 Dec 2014 01:30:29 -0800 Subject: [PATCH 0297/1426] Remove trailing whitespace. --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index f8afe29..dbad8d8 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ # Since we rely on paths relative to the makefile location, abort if make isn't being run from there. -$(if $(findstring /,$(MAKEFILE_LIST)),$(error Please only invoke this makefile from the directory it resides in)) +$(if $(findstring /,$(MAKEFILE_LIST)),$(error Please only invoke this makefile from the directory it resides in)) # Note: With Travis CI: # - the path to urchin is passed via the command line. # - the other utilities are NOT needed, so we skip the test for their existence. From b3178ca925d6f0407ddd4ad6c041936e5a04e5b6 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 18 Dec 2014 10:37:10 -0800 Subject: [PATCH 0298/1426] Add "--quiet" to git commands post-install. Mentioned in #595. --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 2c6fede..68cad2b 100755 --- a/install.sh +++ b/install.sh @@ -69,7 +69,7 @@ install_nvm_from_git() { mkdir -p "$NVM_DIR" git clone "$(nvm_source "git")" "$NVM_DIR" fi - cd "$NVM_DIR" && git checkout v0.20.0 && git branch -D master >/dev/null 2>&1 + cd "$NVM_DIR" && git checkout --quiet v0.20.0 && git branch --quiet -D master >/dev/null 2>&1 return } From d1a90ca15c726a5f748860648477816e335d243f Mon Sep 17 00:00:00 2001 From: Daniel Bretoi Date: Fri, 19 Dec 2014 10:41:53 -0800 Subject: [PATCH 0299/1426] work like system which. show system node without changing to use it --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index bd81595..721a889 100644 --- a/nvm.sh +++ b/nvm.sh @@ -965,7 +965,7 @@ nvm() { if [ "_$VERSION" = '_system' ]; then if nvm_has_system_node >/dev/null 2>&1; then - echo $(nvm use system && echo dirname $(which node)) + echo $(nvm deactivate > /dev/null 2>&1 && echo $(which node)) return else echo "System version of node not found." >&2 @@ -982,7 +982,7 @@ nvm() { echo "$VERSION version is not installed yet" >&2 return 1 fi - echo $NVM_DIR/$VERSION/bin + echo $NVM_DIR/$VERSION/bin/node ;; "alias" ) mkdir -p "$NVM_DIR/alias" From f196ace5ddffd7e7ef59f65864449ee87de6611a Mon Sep 17 00:00:00 2001 From: Daniel Bretoi Date: Fri, 19 Dec 2014 11:05:51 -0800 Subject: [PATCH 0300/1426] style --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 721a889..94b40f5 100644 --- a/nvm.sh +++ b/nvm.sh @@ -965,7 +965,7 @@ nvm() { if [ "_$VERSION" = '_system' ]; then if nvm_has_system_node >/dev/null 2>&1; then - echo $(nvm deactivate > /dev/null 2>&1 && echo $(which node)) + echo $(nvm use system > /dev/null 2>&1 && echo $(which node)) return else echo "System version of node not found." >&2 @@ -982,7 +982,7 @@ nvm() { echo "$VERSION version is not installed yet" >&2 return 1 fi - echo $NVM_DIR/$VERSION/bin/node + echo $(nvm use "$VERSION" >/dev/null 2>&1 && which node) ;; "alias" ) mkdir -p "$NVM_DIR/alias" From 99ca0de18f970065926f072458940b37c0a7e419 Mon Sep 17 00:00:00 2001 From: Daniel Bretoi Date: Fri, 19 Dec 2014 11:31:46 -0800 Subject: [PATCH 0301/1426] revert echoing path. make tests even better --- nvm.sh | 2 +- ...g \"nvm which 0.0.2\" should display only version 0.0.2." | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index 94b40f5..d5bd9e6 100644 --- a/nvm.sh +++ b/nvm.sh @@ -982,7 +982,7 @@ nvm() { echo "$VERSION version is not installed yet" >&2 return 1 fi - echo $(nvm use "$VERSION" >/dev/null 2>&1 && which node) + echo $NVM_DIR/$VERSION/bin/node ;; "alias" ) mkdir -p "$NVM_DIR/alias" diff --git "a/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." "b/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." index 53ddf30..a39a456 100755 --- "a/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." +++ "b/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." @@ -9,12 +9,13 @@ die () { echo $@ ; exit 1; } # The result should contain only the appropriate version numbers. -nvm which 0.0.2 | grep "$NVM_DIR/v0.0.2/bin" > /dev/null +nvm which 0.0.2 +nvm which 0.0.2 | grep "$NVM_DIR/v0.0.2/bin/node" > /dev/null if [ $? -ne 0 ]; then die '"nvm which 0.0.2" did not contain the correct path' fi -nvm which 0.0.20 | grep "$NVM_DIR/v0.0.20/bin" > /dev/null +nvm which 0.0.20 | grep "$NVM_DIR/v0.0.20/bin/node" > /dev/null if [ $? -ne 0 ]; then die '"nvm which 0.0.2" did not contain the correct path' fi From 9e17b5059cc81ae2c2eda542c1608f291f01f6db Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 19 Dec 2014 16:12:13 -0800 Subject: [PATCH 0302/1426] Return the proper exit code of `which` directly. --- nvm.sh | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index d5bd9e6..64cdd33 100644 --- a/nvm.sh +++ b/nvm.sh @@ -965,8 +965,14 @@ nvm() { if [ "_$VERSION" = '_system' ]; then if nvm_has_system_node >/dev/null 2>&1; then - echo $(nvm use system > /dev/null 2>&1 && echo $(which node)) - return + local NVM_BIN + NVM_BIN="$(nvm use system >/dev/null 2>&1 && which node)" + if [ -n "$NVM_BIN" ]; then + echo "$NVM_BIN" + return + else + return 1 + fi else echo "System version of node not found." >&2 return 127 From 2d78d69d4cb8a8c084c007653b8af8db96464ef6 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 19 Dec 2014 16:31:37 -0800 Subject: [PATCH 0303/1426] Properly outputting the version when nvm_version_path outputs the new "versions" subdirectory. --- nvm.sh | 2 +- ....0.2\" should display only version 0.0.2." | 28 +++++++++++-------- ...return a nonzero exit code when not found" | 2 +- test/fast/Listing paths/teardown | 1 + 4 files changed, 20 insertions(+), 13 deletions(-) diff --git a/nvm.sh b/nvm.sh index 64cdd33..652f3ba 100644 --- a/nvm.sh +++ b/nvm.sh @@ -988,7 +988,7 @@ nvm() { echo "$VERSION version is not installed yet" >&2 return 1 fi - echo $NVM_DIR/$VERSION/bin/node + echo "$NVM_VERSION_DIR/bin/node" ;; "alias" ) mkdir -p "$NVM_DIR/alias" diff --git "a/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." "b/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." index a39a456..7b410c5 100755 --- "a/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." +++ "b/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." @@ -1,7 +1,8 @@ #!/bin/sh -mkdir ../../../v0.0.2 -mkdir ../../../v0.0.20 +mkdir -p ../../../v0.0.2 +mkdir -p ../../../v0.0.20 +mkdir -p ../../../versions/v0.12.0 . ../../../nvm.sh @@ -9,13 +10,18 @@ die () { echo $@ ; exit 1; } # The result should contain only the appropriate version numbers. -nvm which 0.0.2 -nvm which 0.0.2 | grep "$NVM_DIR/v0.0.2/bin/node" > /dev/null -if [ $? -ne 0 ]; then - die '"nvm which 0.0.2" did not contain the correct path' -fi +nvm which 0.0.2 || die "v0.0.2 not found" +NVM_BIN="$(nvm which 0.0.2)" +[ "_$NVM_BIN" = "_$(nvm_version_path v0.0.2)/bin/node" ] \ + || die "'nvm which 0.0.2' did not contain the correct path: got '$NVM_BIN'" + +nvm which 0.0.20 || die "v0.0.20 not found" +NVM_BIN="$(nvm which 0.0.20)" +[ "_$NVM_BIN" = "_$(nvm_version_path v0.0.20)/bin/node" ] \ + || die "'nvm which 0.20.0' did not contain the correct path: got '$NVM_BIN'" + +nvm which 0.12.0 || die "v0.0.20 not found" +NVM_BIN="$(nvm which 0.12.0)" +[ "_$NVM_BIN" = "_$(nvm_version_path v0.12.0)/bin/node" ] \ + || die "'nvm which 0.12.0' did not contain the correct path: got '$NVM_BIN'" -nvm which 0.0.20 | grep "$NVM_DIR/v0.0.20/bin/node" > /dev/null -if [ $? -ne 0 ]; then - die '"nvm which 0.0.2" did not contain the correct path' -fi diff --git "a/test/fast/Listing paths/Running \"nvm which foo\" should return a nonzero exit code when not found" "b/test/fast/Listing paths/Running \"nvm which foo\" should return a nonzero exit code when not found" index 43b2bae..4c4a301 100755 --- "a/test/fast/Listing paths/Running \"nvm which foo\" should return a nonzero exit code when not found" +++ "b/test/fast/Listing paths/Running \"nvm which foo\" should return a nonzero exit code when not found" @@ -3,4 +3,4 @@ . ../../../nvm.sh nvm which nonexistent_version -[ "$?" = "1" ] +[ "_$?" = "_1" ] diff --git a/test/fast/Listing paths/teardown b/test/fast/Listing paths/teardown index 2bc7383..25277fe 100755 --- a/test/fast/Listing paths/teardown +++ b/test/fast/Listing paths/teardown @@ -1,2 +1,3 @@ rmdir ../../../v0.0.2 >/dev/null 2>&1 rmdir ../../../v0.0.20 >/dev/null 2>&1 +rmdir ../../../v0.12.0 >/dev/null 2>&1 From c0a20f2fa3d54025d19bd79863769fec92dfc4cb Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 19 Dec 2014 17:13:00 -0800 Subject: [PATCH 0304/1426] Update `semver` --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3e6acd0..369a5bc 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "homepage": "https://github.com/creationix/nvm", "devDependencies": { "replace": "~0.3.0", - "semver": "~4.1.0", + "semver": "~4.1.1", "urchin": "~0.0.5" } } From 0a739e3fa943ffc95d3bc3a855cfba1f5ea80b60 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 21 Dec 2014 16:33:52 -0800 Subject: [PATCH 0305/1426] Add `nvm_get_latest` --- nvm.sh | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/nvm.sh b/nvm.sh index 652f3ba..e0fc6be 100644 --- a/nvm.sh +++ b/nvm.sh @@ -12,6 +12,24 @@ nvm_has() { type "$1" > /dev/null 2>&1 } +nvm_get_latest() { + local NVM_LATEST_URL + if nvm_has "curl"; then + NVM_LATEST_URL="$(curl -w "%{url_effective}\n" -L -s -S http://latest.nvm.sh -o /dev/null)" + elif nvm_has "wget"; then + NVM_LATEST_URL="$(wget http://latest.nvm.sh --server-response -O /dev/null 2>&1 | awk '/^ Location: /{DEST=$2} END{ print DEST }')" + else + >&2 echo 'nvm needs curl or wget to proceed.' + return 1 + fi + if [ "_$NVM_LATEST_URL" = "_" ]; then + >&2 echo "http://latest.nvm.sh did not redirect to the latest release on Github" + return 2 + else + echo "$NVM_LATEST_URL" | awk -F'/' '{print $NF}' + fi +} + nvm_download() { if nvm_has "curl"; then curl $* From 25c61594fe92f9e90092d2410a38a513f60c04fc Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 21 Dec 2014 18:13:59 -0800 Subject: [PATCH 0306/1426] Tests for `nvm_get_latest` --- .../nvm_get_latest missing curl or wget | 20 +++ .../nvm_get_latest/nvm_get_latest | 117 ++++++++++++++++++ .../nvm_get_latest failed redirect | 26 ++++ 3 files changed, 163 insertions(+) create mode 100755 test/fast/Unit tests/nvm_get_latest missing curl or wget create mode 100755 test/installation/nvm_get_latest/nvm_get_latest create mode 100755 test/installation/nvm_get_latest/nvm_get_latest failed redirect diff --git a/test/fast/Unit tests/nvm_get_latest missing curl or wget b/test/fast/Unit tests/nvm_get_latest missing curl or wget new file mode 100755 index 0000000..1ad960a --- /dev/null +++ b/test/fast/Unit tests/nvm_get_latest missing curl or wget @@ -0,0 +1,20 @@ +#!/bin/sh + +die () { echo $@ ; cleanup ; exit 1; } + +cleanup() { + unset -f nvm_has +} + +. ../../../nvm.sh + +nvm_has() { return 1 ; } + +OUTPUT="$(nvm_get_latest 2>&1)" +EXIT_CODE="$(nvm_get_latest >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_nvm needs curl or wget to proceed." ] \ + || die "no curl/wget did not report correct error message, got '$OUTPUT'" +[ "_$EXIT_CODE" = "_1" ] \ + || die "no curl/wget did not exit with code 1, got $EXIT_CODE" + +cleanup diff --git a/test/installation/nvm_get_latest/nvm_get_latest b/test/installation/nvm_get_latest/nvm_get_latest new file mode 100755 index 0000000..60d63ca --- /dev/null +++ b/test/installation/nvm_get_latest/nvm_get_latest @@ -0,0 +1,117 @@ +#!/bin/sh + +die () { echo $@ ; cleanup ; exit 1; } + +cleanup() { + unset -f curl wget nvm_has +} + +. ../../../nvm.sh + +EXPECTED_VERSION="v12.3.456" +URL="https://github.com/creationix/nvm/releases/tag/$EXPECTED_VERSION" +EXPECTED_CURL_ARGS="-w %{url_effective}\n -L -s -S http://latest.nvm.sh -o /dev/null" +EXPECTED_WGET_ARGS="http://latest.nvm.sh --server-response -O /dev/null" + +curl() { + if [ "_$*" != "_$EXPECTED_CURL_ARGS" ]; then + echo 2>& "expected args ($EXPECTED_CURL_ARGS), got ($*)" + return 1 + else + echo $URL + fi +} +wget() { + if [ "_$*" != "_$EXPECTED_WGET_ARGS" ]; then + echo 2>& "expected args ($EXPECTED_WGET_ARGS), got ($*)" + return 1 + else + local WGET_CONTENTS + WGET_CONTENTS=" +--2014-12-21 18:11:14-- http://latest.nvm.sh/ +Resolving latest.nvm.sh... 50.31.209.229 +Connecting to latest.nvm.sh|50.31.209.229|:80... connected. +HTTP request sent, awaiting response... + HTTP/1.1 301 Moved Permanently + Location: https://github.com/creationix/nvm/releases/latest + Content-Type: text/html; charset=utf-8 + Content-Length: 84 + Date: Mon, 22 Dec 2014 02:11:15 GMT +Location: https://github.com/creationix/nvm/releases/latest [following] +--2014-12-21 18:11:15-- https://github.com/creationix/nvm/releases/latest +Resolving github.com... 192.30.252.130 +Connecting to github.com|192.30.252.130|:443... connected. +HTTP request sent, awaiting response... + HTTP/1.1 302 Found + Server: GitHub.com + Date: Mon, 22 Dec 2014 02:11:15 GMT + Content-Type: text/html; charset=utf-8 + Transfer-Encoding: chunked + Status: 302 Found + X-XSS-Protection: 1; mode=block + X-Frame-Options: deny + Content-Security-Policy: default-src *; script-src assets-cdn.github.com collector-cdn.github.com; object-src assets-cdn.github.com; style-src 'self' 'unsafe-inline' 'unsafe-eval' assets-cdn.github.com; img-src 'self' data: assets-cdn.github.com identicons.github.com www.google-analytics.com collector.githubapp.com *.githubusercontent.com *.gravatar.com *.wp.com; media-src 'none'; frame-src 'self' render.githubusercontent.com gist.github.com www.youtube.com player.vimeo.com checkout.paypal.com; font-src assets-cdn.github.com; connect-src 'self' ghconduit.com:25035 live.github.com uploads.github.com www.google-analytics.com s3.amazonaws.com + Cache-Control: no-cache + Vary: X-PJAX + Location: $URL + X-UA-Compatible: IE=Edge,chrome=1 + Set-Cookie: logged_in=no; domain=.github.com; path=/; expires=Fri, 22-Dec-2034 02:11:15 GMT; secure; HttpOnly + Set-Cookie: _gh_sess=eyJzZXNzaW9uX2lkIjoiNTMzNGNjZWUxM2VhZjNhN2M3MzIwZWUxNGYwNzhmNDkiLCJzcHlfcmVwbyI6ImNyZWF0aW9uaXgvbnZtIiwic3B5X3JlcG9fYXQiOjE0MTkyMTQyNzV9--e2fa4cf5305d61aa58c0e0bf21fdb335a9660dcf; path=/; secure; HttpOnly + X-Request-Id: 4b99bf200157dd845f76ab83e4093acc + X-Runtime: 0.030872 + X-Rack-Cache: miss + X-GitHub-Request-Id: 45B56780:3913:880EF6:54977DC3 + Strict-Transport-Security: max-age=31536000; includeSubdomains; preload + X-Content-Type-Options: nosniff + Vary: Accept-Encoding + X-Served-By: ef97014f01ea59c1ef337fe51a4d0331 +Location: $URL [following] +--2014-12-21 18:11:15-- $URL +Reusing existing connection to github.com:443. +HTTP request sent, awaiting response... + HTTP/1.1 200 OK + Server: GitHub.com + Date: Mon, 22 Dec 2014 02:11:15 GMT + Content-Type: text/html; charset=utf-8 + Transfer-Encoding: chunked + Status: 200 OK + X-XSS-Protection: 1; mode=block + X-Frame-Options: deny + Content-Security-Policy: default-src *; script-src assets-cdn.github.com collector-cdn.github.com; object-src assets-cdn.github.com; style-src 'self' 'unsafe-inline' 'unsafe-eval' assets-cdn.github.com; img-src 'self' data: assets-cdn.github.com identicons.github.com www.google-analytics.com collector.githubapp.com *.githubusercontent.com *.gravatar.com *.wp.com; media-src 'none'; frame-src 'self' render.githubusercontent.com gist.github.com www.youtube.com player.vimeo.com checkout.paypal.com; font-src assets-cdn.github.com; connect-src 'self' ghconduit.com:25035 live.github.com uploads.github.com www.google-analytics.com s3.amazonaws.com + Cache-Control: no-cache, private + Vary: X-PJAX + X-UA-Compatible: IE=Edge,chrome=1 + Set-Cookie: _gh_sess=eyJzZXNzaW9uX2lkIjoiNTMzNGNjZWUxM2VhZjNhN2M3MzIwZWUxNGYwNzhmNDkiLCJzcHlfcmVwbyI6ImNyZWF0aW9uaXgvbnZtIiwic3B5X3JlcG9fYXQiOjE0MTkyMTQyNzUsIl9jc3JmX3Rva2VuIjoiemZTVDNIRGo0QzF0dzkyNXp6NFBRdGJVbTl4NSsxTGo1cngwVFQ3NDVwdz0ifQ%3D%3D--b72bfd5241907dcf557b226e74351ff39f0e9ede; path=/; secure; HttpOnly + X-Request-Id: 305b0d158bf8c0b3fa488a33d7687091 + X-Runtime: 0.038544 + X-Rack-Cache: miss + X-GitHub-Request-Id: 45B56780:3913:880F19:54977DC3 + Strict-Transport-Security: max-age=31536000; includeSubdomains; preload + X-Content-Type-Options: nosniff + Vary: Accept-Encoding + X-Served-By: 926b734ea1992f8ee1f88ab967a93dac +Length: unspecified [text/html] +Saving to: ‘/dev/null’ + + 0K .......... ......... 225K=0.09s + +2014-12-21 18:11:15 (225 KB/s) - ‘/dev/null’ saved [20298] + +" + "$WGET_CONTENTS" | while read line + do + 2>& echo "$line" + done + fi +} + +OUTPUT="$(nvm_get_latest)" +EXIT_CODE="$(nvm_get_latest >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_$EXPECTED_VERSION" ] \ + || die "success path did not return version '$EXPECTED_VERSION', got '$OUTPUT'" +[ "_$EXIT_CODE" = "_0" ] \ + || die "success path did not exit with code 0, got $EXIT_CODE" + + +cleanup + diff --git a/test/installation/nvm_get_latest/nvm_get_latest failed redirect b/test/installation/nvm_get_latest/nvm_get_latest failed redirect new file mode 100755 index 0000000..cc43b53 --- /dev/null +++ b/test/installation/nvm_get_latest/nvm_get_latest failed redirect @@ -0,0 +1,26 @@ +#!/bin/sh + +die () { echo $@ ; cleanup ; exit 1; } + +cleanup() { + unset -f curl wget +} + +. ../../../nvm.sh + +curl() { + return 1 +} +wget() { + return 1 +} + +OUTPUT="$(nvm_get_latest 2>&1)" +EXIT_CODE="$(nvm_get_latest >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_http://latest.nvm.sh did not redirect to the latest release on Github" ] \ + || die "failed redirect did not report correct error message, got '$OUTPUT'" +[ "_$EXIT_CODE" = "_2" ] \ + || die "failed redirect did not exit with code 2, got $EXIT_CODE" + +cleanup + From bef3a5ce3a19f1f63b7ace27ff790df3cdb7df71 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 22 Dec 2014 12:03:33 -0800 Subject: [PATCH 0307/1426] v0.21.0 --- README.markdown | 6 +++--- install.sh | 6 +++--- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/README.markdown b/README.markdown index b0346c5..79e3e61 100644 --- a/README.markdown +++ b/README.markdown @@ -12,11 +12,11 @@ Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/n To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.20.0/install.sh | bash + curl https://raw.githubusercontent.com/creationix/nvm/v0.21.0/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.20.0/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.21.0/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -191,7 +191,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.20.0/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.21.0/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin diff --git a/install.sh b/install.sh index 68cad2b..a62c868 100755 --- a/install.sh +++ b/install.sh @@ -27,9 +27,9 @@ nvm_source() { return 0 fi if [ "_$NVM_METHOD" = "_script" ]; then - NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.20.0/nvm.sh" + NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.21.0/nvm.sh" elif [ "_$NVM_METHOD" = "_script-nvm-exec" ]; then - NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.20.0/nvm-exec" + NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.21.0/nvm-exec" elif [ "_$NVM_METHOD" = "_git" ] || [ -z "$NVM_METHOD" ]; then NVM_SOURCE="https://github.com/creationix/nvm.git" else @@ -69,7 +69,7 @@ install_nvm_from_git() { mkdir -p "$NVM_DIR" git clone "$(nvm_source "git")" "$NVM_DIR" fi - cd "$NVM_DIR" && git checkout --quiet v0.20.0 && git branch --quiet -D master >/dev/null 2>&1 + cd "$NVM_DIR" && git checkout --quiet v0.21.0 && git branch --quiet -D master >/dev/null 2>&1 return } diff --git a/nvm.sh b/nvm.sh index e0fc6be..0a42275 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1099,7 +1099,7 @@ nvm() { nvm_version $2 ;; "--version" ) - echo "0.20.0" + echo "0.21.0" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version nvm_version_greater nvm_version_greater_than_or_equal_to > /dev/null 2>&1 diff --git a/package.json b/package.json index 369a5bc..b1949e3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.20.0", + "version": "0.21.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 274369dc40a04479367c78951b58302f1fd933c6 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 22 Dec 2014 23:08:03 -0800 Subject: [PATCH 0308/1426] Remove trailing whitespace --- test/installation/nvm_get_latest/nvm_get_latest | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/installation/nvm_get_latest/nvm_get_latest b/test/installation/nvm_get_latest/nvm_get_latest index 60d63ca..f010e2c 100755 --- a/test/installation/nvm_get_latest/nvm_get_latest +++ b/test/installation/nvm_get_latest/nvm_get_latest @@ -31,7 +31,7 @@ wget() { --2014-12-21 18:11:14-- http://latest.nvm.sh/ Resolving latest.nvm.sh... 50.31.209.229 Connecting to latest.nvm.sh|50.31.209.229|:80... connected. -HTTP request sent, awaiting response... +HTTP request sent, awaiting response... HTTP/1.1 301 Moved Permanently Location: https://github.com/creationix/nvm/releases/latest Content-Type: text/html; charset=utf-8 @@ -41,7 +41,7 @@ Location: https://github.com/creationix/nvm/releases/latest [following] --2014-12-21 18:11:15-- https://github.com/creationix/nvm/releases/latest Resolving github.com... 192.30.252.130 Connecting to github.com|192.30.252.130|:443... connected. -HTTP request sent, awaiting response... +HTTP request sent, awaiting response... HTTP/1.1 302 Found Server: GitHub.com Date: Mon, 22 Dec 2014 02:11:15 GMT @@ -68,7 +68,7 @@ HTTP request sent, awaiting response... Location: $URL [following] --2014-12-21 18:11:15-- $URL Reusing existing connection to github.com:443. -HTTP request sent, awaiting response... +HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: GitHub.com Date: Mon, 22 Dec 2014 02:11:15 GMT From 3df0caefa5ce0ad0d0b68601fbc71991371a4e02 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 26 Dec 2014 12:19:35 -0800 Subject: [PATCH 0309/1426] Support `--install` option upon sourcing. --- nvm.sh | 9 ++++++- ...ith --install and .nvmrc should install it | 20 ++++++++++++++++ ... with --install should install the default | 24 +++++++++++++++++++ 3 files changed, 52 insertions(+), 1 deletion(-) create mode 100755 test/sourcing/Sourcing nvm.sh with --install and .nvmrc should install it create mode 100755 test/sourcing/Sourcing nvm.sh with --install should install the default diff --git a/nvm.sh b/nvm.sh index 0a42275..5a732ce 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1111,7 +1111,14 @@ nvm() { esac } -if nvm ls default >/dev/null; then +if [ "_$1" = "_--install" ]; then + VERSION="$(nvm_alias default 2>/dev/null)" + if [ -n "$VERSION" ]; then + nvm install "$VERSION" >/dev/null + elif nvm_rc_version >/dev/null 2>&1; then + nvm install >/dev/null + fi +elif nvm ls default >/dev/null; then nvm use default >/dev/null elif nvm_rc_version >/dev/null 2>&1; then nvm use >/dev/null diff --git a/test/sourcing/Sourcing nvm.sh with --install and .nvmrc should install it b/test/sourcing/Sourcing nvm.sh with --install and .nvmrc should install it new file mode 100755 index 0000000..74316a0 --- /dev/null +++ b/test/sourcing/Sourcing nvm.sh with --install and .nvmrc should install it @@ -0,0 +1,20 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +echo '0.10.2' > ../../.nvmrc || die 'creation of .nvmrc failed' + +. ../../nvm.sh --install +EXIT_CODE="$(echo $?)" + +echo 'sourcing complete.' + +nvm_version 0.10.2 >/dev/null 2>&1 || die "v0.10.2 not installed: $(nvm ls)" + +[ "_$(nvm_rc_version | \grep -o -e 'with version .*$')" = "_with version <0.10.2>" ] || die "nvm_rc_version $(nvm_rc_version)" + +[ "_$EXIT_CODE" = "_0" ] || die "sourcing returned nonzero exit code: $EXIT_CODE" + +NVM_LS_CURRENT="$(nvm ls current | \grep -o v0.10.2)" +[ "_$NVM_LS_CURRENT" = '_v0.10.2' ] || die "'nvm ls current' did not return '-> v0.10.2', got '$NVM_LS_CURRENT' `nvm ls`" + diff --git a/test/sourcing/Sourcing nvm.sh with --install should install the default b/test/sourcing/Sourcing nvm.sh with --install should install the default new file mode 100755 index 0000000..0b2d631 --- /dev/null +++ b/test/sourcing/Sourcing nvm.sh with --install should install the default @@ -0,0 +1,24 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +echo '0.10.2' > ../../alias/default || die 'creation of default alias failed' + +echo 'sourcing nvm with --install...' + +. ../../nvm.sh --install +EXIT_CODE="$(echo $?)" + +echo 'sourcing complete.' + +nvm_version 0.10.2 >/dev/null 2>&1 || die "v0.10.2 not installed: $(nvm ls)" + +[ "_$EXIT_CODE" = "_0" ] || die "sourcing returned nonzero exit code: $EXIT_CODE" + +NVM_LS_CURRENT="$(nvm ls current | \grep -o v0.10.2)" +[ "_$NVM_LS_CURRENT" = '_v0.10.2' ] || die "'nvm ls current' did not return '-> v0.10.2', got '$NVM_LS_CURRENT'" + +NVM_ALIAS_DEFAULT="$(nvm alias default)" +[ "_$NVM_ALIAS_DEFAULT" = "_default -> 0.10.2 (-> v0.10.2)" ] \ + || die "'nvm alias default did not return 'default -> 0.10.2 (-> v0.10.2)', got '$NVM_ALIAS_DEFAULT'" + From 9a4e9060d840b6897a5010de33292045b2b31068 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 26 Dec 2014 12:19:55 -0800 Subject: [PATCH 0310/1426] Don't bother testing --install option on source, or supporting it, unless the shell supports passing options upon sourcing. --- nvm.sh | 8 ++++++-- ...ing nvm.sh with --install and .nvmrc should install it | 8 ++++++++ ...rcing nvm.sh with --install should install the default | 8 ++++++++ 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 5a732ce..f907a86 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1102,7 +1102,7 @@ nvm() { echo "0.21.0" ;; "unload" ) - unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version nvm_version_greater nvm_version_greater_than_or_equal_to > /dev/null 2>&1 + unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version nvm_version_greater nvm_version_greater_than_or_equal_to nvm_supports_source_options > /dev/null 2>&1 unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_DIR NVM_CD_FLAGS > /dev/null 2>&1 ;; * ) @@ -1111,7 +1111,11 @@ nvm() { esac } -if [ "_$1" = "_--install" ]; then +nvm_supports_source_options() { + [ "_$(echo 'echo $1' | . /dev/stdin yes)" = "_yes" ] +} + +if nvm_supports_source_options && [ "_$1" = "_--install" ]; then VERSION="$(nvm_alias default 2>/dev/null)" if [ -n "$VERSION" ]; then nvm install "$VERSION" >/dev/null diff --git a/test/sourcing/Sourcing nvm.sh with --install and .nvmrc should install it b/test/sourcing/Sourcing nvm.sh with --install and .nvmrc should install it index 74316a0..edc5614 100755 --- a/test/sourcing/Sourcing nvm.sh with --install and .nvmrc should install it +++ b/test/sourcing/Sourcing nvm.sh with --install and .nvmrc should install it @@ -1,6 +1,14 @@ #!/bin/sh die () { echo $@ ; exit 1; } +supports_source_options () { + [ "_$(echo 'echo $1' | . /dev/stdin yes)" = "_yes" ] +} + +if ! supports_source_options; then + echo 'this shell does not support passing options on sourcing' + exit 0; +fi echo '0.10.2' > ../../.nvmrc || die 'creation of .nvmrc failed' diff --git a/test/sourcing/Sourcing nvm.sh with --install should install the default b/test/sourcing/Sourcing nvm.sh with --install should install the default index 0b2d631..e25ddf0 100755 --- a/test/sourcing/Sourcing nvm.sh with --install should install the default +++ b/test/sourcing/Sourcing nvm.sh with --install should install the default @@ -1,6 +1,14 @@ #!/bin/sh die () { echo $@ ; exit 1; } +supports_source_options () { + [ "_$(echo 'echo $1' | . /dev/stdin yes)" = "_yes" ] +} + +if ! supports_source_options; then + echo 'this shell does not support passing options on sourcing' + exit 0; +fi echo '0.10.2' > ../../alias/default || die 'creation of default alias failed' From c91e8d0ba20f5203310931ab9b91ec2f277787b6 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 26 Dec 2014 16:30:21 -0800 Subject: [PATCH 0311/1426] v0.22.0 --- README.markdown | 6 +++--- install.sh | 6 +++--- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/README.markdown b/README.markdown index 79e3e61..9f82ecc 100644 --- a/README.markdown +++ b/README.markdown @@ -12,11 +12,11 @@ Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/n To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.21.0/install.sh | bash + curl https://raw.githubusercontent.com/creationix/nvm/v0.22.0/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.21.0/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.22.0/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -191,7 +191,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.21.0/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.22.0/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin diff --git a/install.sh b/install.sh index a62c868..9e57a8b 100755 --- a/install.sh +++ b/install.sh @@ -27,9 +27,9 @@ nvm_source() { return 0 fi if [ "_$NVM_METHOD" = "_script" ]; then - NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.21.0/nvm.sh" + NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.22.0/nvm.sh" elif [ "_$NVM_METHOD" = "_script-nvm-exec" ]; then - NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.21.0/nvm-exec" + NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.22.0/nvm-exec" elif [ "_$NVM_METHOD" = "_git" ] || [ -z "$NVM_METHOD" ]; then NVM_SOURCE="https://github.com/creationix/nvm.git" else @@ -69,7 +69,7 @@ install_nvm_from_git() { mkdir -p "$NVM_DIR" git clone "$(nvm_source "git")" "$NVM_DIR" fi - cd "$NVM_DIR" && git checkout --quiet v0.21.0 && git branch --quiet -D master >/dev/null 2>&1 + cd "$NVM_DIR" && git checkout --quiet v0.22.0 && git branch --quiet -D master >/dev/null 2>&1 return } diff --git a/nvm.sh b/nvm.sh index f907a86..5884872 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1099,7 +1099,7 @@ nvm() { nvm_version $2 ;; "--version" ) - echo "0.21.0" + echo "0.22.0" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version nvm_version_greater nvm_version_greater_than_or_equal_to nvm_supports_source_options > /dev/null 2>&1 diff --git a/package.json b/package.json index b1949e3..b30cad0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.21.0", + "version": "0.22.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 4708cc73ef562a84e5227a69c5636700e324d383 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 27 Dec 2014 01:39:48 -0800 Subject: [PATCH 0312/1426] Update `semver` --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b30cad0..984b083 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "homepage": "https://github.com/creationix/nvm", "devDependencies": { "replace": "~0.3.0", - "semver": "~4.1.1", + "semver": "~4.2.0", "urchin": "~0.0.5" } } From fd2fb24b032ea4773c7b4c011e44ab0d74c7428e Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 28 Dec 2014 15:54:09 -0800 Subject: [PATCH 0313/1426] Refactor `nvm_source` a bit. --- install.sh | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/install.sh b/install.sh index 9e57a8b..f46f81d 100755 --- a/install.sh +++ b/install.sh @@ -22,19 +22,16 @@ nvm_source() { NVM_METHOD="$1" if [ -z "$NVM_SOURCE" ]; then local NVM_SOURCE - else - echo "$NVM_SOURCE" - return 0 - fi - if [ "_$NVM_METHOD" = "_script" ]; then - NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.22.0/nvm.sh" - elif [ "_$NVM_METHOD" = "_script-nvm-exec" ]; then - NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.22.0/nvm-exec" - elif [ "_$NVM_METHOD" = "_git" ] || [ -z "$NVM_METHOD" ]; then - NVM_SOURCE="https://github.com/creationix/nvm.git" - else - echo >&2 "Unexpected value \"$NVM_METHOD\" for \$NVM_METHOD" - return 1 + if [ "_$NVM_METHOD" = "_script" ]; then + NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.22.0/nvm.sh" + elif [ "_$NVM_METHOD" = "_script-nvm-exec" ]; then + NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.22.0/nvm-exec" + elif [ "_$NVM_METHOD" = "_git" ] || [ -z "$NVM_METHOD" ]; then + NVM_SOURCE="https://github.com/creationix/nvm.git" + else + echo >&2 "Unexpected value \"$NVM_METHOD\" for \$NVM_METHOD" + return 1 + fi fi echo "$NVM_SOURCE" return 0 @@ -67,7 +64,7 @@ install_nvm_from_git() { echo "=> Downloading nvm from git to '$NVM_DIR'" printf "\r=> " mkdir -p "$NVM_DIR" - git clone "$(nvm_source "git")" "$NVM_DIR" + git clone "$(nvm_source git)" "$NVM_DIR" fi cd "$NVM_DIR" && git checkout --quiet v0.22.0 && git branch --quiet -D master >/dev/null 2>&1 return @@ -75,9 +72,9 @@ install_nvm_from_git() { install_nvm_as_script() { local NVM_SOURCE - NVM_SOURCE=$(nvm_source "script") + NVM_SOURCE=$(nvm_source script) local NVM_EXEC_SOURCE - NVM_EXEC_SOURCE=$(nvm_source "script-nvm-exec") + NVM_EXEC_SOURCE=$(nvm_source script-nvm-exec) # Downloading to $NVM_DIR mkdir -p "$NVM_DIR" From 8e45afb9f18e6bf7a823e0f754682f77a860be85 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 28 Dec 2014 15:57:18 -0800 Subject: [PATCH 0314/1426] Move the version to a single location, nvm_latest_version. --- install.sh | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/install.sh b/install.sh index f46f81d..61f22d3 100755 --- a/install.sh +++ b/install.sh @@ -11,6 +11,10 @@ if [ -z "$NVM_DIR" ]; then NVM_DIR="$HOME/.nvm" fi +nvm_latest_version() { + echo "v0.22.0" +} + # # Outputs the location to NVM depending on: # * The availability of $NVM_SOURCE @@ -23,9 +27,9 @@ nvm_source() { if [ -z "$NVM_SOURCE" ]; then local NVM_SOURCE if [ "_$NVM_METHOD" = "_script" ]; then - NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.22.0/nvm.sh" + NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/$(nvm_latest_version)/nvm.sh" elif [ "_$NVM_METHOD" = "_script-nvm-exec" ]; then - NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.22.0/nvm-exec" + NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/$(nvm_latest_version)/nvm-exec" elif [ "_$NVM_METHOD" = "_git" ] || [ -z "$NVM_METHOD" ]; then NVM_SOURCE="https://github.com/creationix/nvm.git" else @@ -66,7 +70,7 @@ install_nvm_from_git() { mkdir -p "$NVM_DIR" git clone "$(nvm_source git)" "$NVM_DIR" fi - cd "$NVM_DIR" && git checkout --quiet v0.22.0 && git branch --quiet -D master >/dev/null 2>&1 + cd "$NVM_DIR" && git checkout --quiet $(nvm_latest_version) && git branch --quiet -D master >/dev/null 2>&1 return } @@ -175,7 +179,7 @@ nvm_do_install() { # during the execution of the install script # nvm_reset() { - unset -f nvm_do_install nvm_has nvm_download install_nvm_as_script install_nvm_from_git nvm_reset nvm_detect_profile + unset -f nvm_do_install nvm_has nvm_download install_nvm_as_script install_nvm_from_git nvm_reset nvm_detect_profile nvm_latest_version } [ "_$NVM_ENV" = "_testing" ] || nvm_do_install From 832874179248cb7e9f6bed23bbf43ba4d47eb9e6 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 28 Dec 2014 22:29:26 -0800 Subject: [PATCH 0315/1426] Removing an unnecessary `return $?` --- install.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/install.sh b/install.sh index 61f22d3..02464fb 100755 --- a/install.sh +++ b/install.sh @@ -4,7 +4,6 @@ set -e nvm_has() { type "$1" > /dev/null 2>&1 - return $? } if [ -z "$NVM_DIR" ]; then From 3f5ce8b93a114a99f24e2ce884b5d379346906c8 Mon Sep 17 00:00:00 2001 From: niris Date: Fri, 2 Jan 2015 09:47:26 +0800 Subject: [PATCH 0316/1426] Fix which command in zsh (#604). --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 5884872..09059c5 100644 --- a/nvm.sh +++ b/nvm.sh @@ -272,7 +272,7 @@ nvm_alias() { nvm_ls_current() { local NVM_LS_CURRENT_NODE_PATH - NVM_LS_CURRENT_NODE_PATH="$(which node 2> /dev/null)" + NVM_LS_CURRENT_NODE_PATH="$(command which node 2> /dev/null)" if [ $? -ne 0 ]; then echo 'none' elif nvm_tree_contains_path "$NVM_DIR" "$NVM_LS_CURRENT_NODE_PATH"; then @@ -984,7 +984,7 @@ nvm() { if [ "_$VERSION" = '_system' ]; then if nvm_has_system_node >/dev/null 2>&1; then local NVM_BIN - NVM_BIN="$(nvm use system >/dev/null 2>&1 && which node)" + NVM_BIN="$(nvm use system >/dev/null 2>&1 && command which node)" if [ -n "$NVM_BIN" ]; then echo "$NVM_BIN" return From a26007ec0d80e7ed6808e37f75db7bb80a767a8d Mon Sep 17 00:00:00 2001 From: niris Date: Fri, 2 Jan 2015 12:51:59 +0800 Subject: [PATCH 0317/1426] fix test suit --- test/fast/Unit tests/nvm_ls_current | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/fast/Unit tests/nvm_ls_current b/test/fast/Unit tests/nvm_ls_current index 59f0a60..2678cff 100755 --- a/test/fast/Unit tests/nvm_ls_current +++ b/test/fast/Unit tests/nvm_ls_current @@ -12,8 +12,8 @@ TEST_PWD=$(pwd) TEST_DIR="$TEST_PWD/nvm_ls_current_tmp" rm -rf "$TEST_DIR" mkdir "$TEST_DIR" -ln -s "$(which which)" "$TEST_DIR/which" -ln -s "$(which dirname)" "$TEST_DIR/dirname" +ln -s "$(command which which)" "$TEST_DIR/which" +ln -s "$(command which dirname)" "$TEST_DIR/dirname" [ "$(PATH="$TEST_DIR" nvm_ls_current)" = "none" ] || die 'when node not installed, nvm_ls_current did not return "none"' [ "@$(PATH="$TEST_DIR" nvm_ls_current 2> /dev/stdout 1> /dev/null)@" = "@@" ] || die 'when node not installed, nvm_ls_current returned error output' From c6489440dc57b10988e6341aaa96753f4e913740 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 1 Jan 2015 22:45:46 -0800 Subject: [PATCH 0318/1426] Add nvm_ls_current test for #605 and `zsh`. --- test/fast/Unit tests/nvm_ls_current | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/test/fast/Unit tests/nvm_ls_current b/test/fast/Unit tests/nvm_ls_current index 2678cff..990312c 100755 --- a/test/fast/Unit tests/nvm_ls_current +++ b/test/fast/Unit tests/nvm_ls_current @@ -1,6 +1,10 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +TEST_PWD=$(pwd) +TEST_DIR="$TEST_PWD/nvm_ls_current_tmp" + +cleanup() { rm -rf "$TEST_DIR"; unset -f return_zero; unalias node; } +die () { echo $@ ; cleanup ; exit 1; } . ../../../nvm.sh @@ -8,8 +12,6 @@ return_zero () { return 0; } [ "$(nvm deactivate > /dev/null 2>&1 ; nvm_ls_current)" = "system" ] || die 'when deactivated, did not return "system"' -TEST_PWD=$(pwd) -TEST_DIR="$TEST_PWD/nvm_ls_current_tmp" rm -rf "$TEST_DIR" mkdir "$TEST_DIR" ln -s "$(command which which)" "$TEST_DIR/which" @@ -24,5 +26,7 @@ chmod a+x "$TEST_DIR/node" [ "$(alias nvm_tree_contains_path='return_zero' && PATH="$TEST_DIR" nvm_ls_current)" = "VERSION FOO!" ] || die 'when activated, did not return nvm node version' -rm -rf "$TEST_DIR" +alias node='node --harmony' +[ "$(alias nvm_tree_contains_path='return_zero' && PATH="$TEST_DIR" nvm_ls_current)" = "VERSION FOO!" ] || die 'when activated and node aliased, did not return nvm node version' +cleanup From 3fc82d6b2f411e73e343cb3dc90a410de30a7d72 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 9 Jan 2015 01:50:05 -0800 Subject: [PATCH 0319/1426] Use `command sed` for people who alias `sed`. Fixes #493. --- install.sh | 2 +- nvm.sh | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/install.sh b/install.sh index 02464fb..8faa3af 100755 --- a/install.sh +++ b/install.sh @@ -45,7 +45,7 @@ nvm_download() { curl $* elif nvm_has "wget"; then # Emulate curl with wget - ARGS=$(echo "$*" | sed -e 's/--progress-bar /--progress=bar /' \ + ARGS=$(echo "$*" | command sed -e 's/--progress-bar /--progress=bar /' \ -e 's/-L //' \ -e 's/-I /--server-response /' \ -e 's/-s /-q /' \ diff --git a/nvm.sh b/nvm.sh index 09059c5..f0df1d4 100644 --- a/nvm.sh +++ b/nvm.sh @@ -35,7 +35,7 @@ nvm_download() { curl $* elif nvm_has "wget"; then # Emulate curl with wget - ARGS=$(echo "$*" | sed -e 's/--progress-bar /--progress=bar /' \ + ARGS=$(echo "$*" | command sed -e 's/--progress-bar /--progress=bar /' \ -e 's/-L //' \ -e 's/-I /--server-response /' \ -e 's/-s /-q /' \ @@ -201,18 +201,18 @@ nvm_remote_version() { } nvm_normalize_version() { - echo "$1" | sed -e 's/^v//' | \awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }' + echo "$1" | command sed -e 's/^v//' | \awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }' } nvm_ensure_version_prefix() { - echo "$1" | sed -e 's/^\([0-9]\)/v\1/g' + echo "$1" | command sed -e 's/^\([0-9]\)/v\1/g' } nvm_format_version() { local VERSION VERSION="$(nvm_ensure_version_prefix "$1")" if [ "_$(nvm_num_version_groups "$VERSION")" != "_3" ]; then - VERSION="$(echo "$VERSION" | sed -e 's/\.*$/.0/')" + VERSION="$(echo "$VERSION" | command sed -e 's/\.*$/.0/')" nvm_format_version "$VERSION" else echo "$VERSION" @@ -227,14 +227,14 @@ nvm_num_version_groups() { return fi local NVM_NUM_DOTS - NVM_NUM_DOTS=$(echo "$VERSION" | sed -e 's/^v//' | sed -e 's/\.$//' | sed -e 's/[^\.]//g') + NVM_NUM_DOTS=$(echo "$VERSION" | command sed -e 's/^v//' | command sed -e 's/\.$//' | command sed -e 's/[^\.]//g') local NVM_NUM_GROUPS NVM_NUM_GROUPS=".$NVM_NUM_DOTS" echo "${#NVM_NUM_GROUPS}" } nvm_strip_path() { - echo "$1" | sed -e "s#$NVM_DIR/[^/]*$2[^:]*:##g" -e "s#:$NVM_DIR/[^/]*$2[^:]*##g" -e "s#$NVM_DIR/[^/]*$2[^:]*##g" + echo "$1" | command sed -e "s#$NVM_DIR/[^/]*$2[^:]*:##g" -e "s#:$NVM_DIR/[^/]*$2[^:]*##g" -e "s#$NVM_DIR/[^/]*$2[^:]*##g" } nvm_prepend_path() { @@ -366,7 +366,7 @@ nvm_ls() { local NUM_VERSION_GROUPS NUM_VERSION_GROUPS="$(nvm_num_version_groups "$PATTERN")" if [ "_$NUM_VERSION_GROUPS" = "_2" ] || [ "_$NUM_VERSION_GROUPS" = "_1" ]; then - PATTERN="$(echo "$PATTERN" | sed -e 's/\.*$//g')." + PATTERN="$(echo "$PATTERN" | command sed -e 's/\.*$//g')." fi fi if [ -d "$(nvm_version_dir new)" ]; then From 0a142b7e7a59d1c9493c7ec70dd8ee341a6d5635 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 10 Jan 2015 19:43:36 -0800 Subject: [PATCH 0320/1426] v0.22.1 --- README.markdown | 6 +++--- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.markdown b/README.markdown index 9f82ecc..82a8296 100644 --- a/README.markdown +++ b/README.markdown @@ -12,11 +12,11 @@ Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/n To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.22.0/install.sh | bash + curl https://raw.githubusercontent.com/creationix/nvm/v0.22.1/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.22.0/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.22.1/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -191,7 +191,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.22.0/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.22.1/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin diff --git a/install.sh b/install.sh index 8faa3af..d1d1a78 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ if [ -z "$NVM_DIR" ]; then fi nvm_latest_version() { - echo "v0.22.0" + echo "v0.22.1" } # diff --git a/nvm.sh b/nvm.sh index f0df1d4..9f92a1a 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1099,7 +1099,7 @@ nvm() { nvm_version $2 ;; "--version" ) - echo "0.22.0" + echo "0.22.1" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version nvm_version_greater nvm_version_greater_than_or_equal_to nvm_supports_source_options > /dev/null 2>&1 diff --git a/package.json b/package.json index 984b083..285d4f7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.22.0", + "version": "0.22.1", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 0bd7372c6433371b44795ad3eba993e36291031c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 10 Jan 2015 20:10:00 -0800 Subject: [PATCH 0321/1426] Rename this local var in `nvm_version_dir` --- nvm.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nvm.sh b/nvm.sh index 9f92a1a..6170835 100644 --- a/nvm.sh +++ b/nvm.sh @@ -140,11 +140,11 @@ nvm_version_greater_than_or_equal_to() { } nvm_version_dir() { - local NVM_USE_NEW_DIR - NVM_USE_NEW_DIR="$1" - if [ -z "$NVM_USE_NEW_DIR" ] || [ "$NVM_USE_NEW_DIR" = "new" ]; then + local NVM_WHICH_DIR + NVM_WHICH_DIR="$1" + if [ -z "$NVM_WHICH_DIR" ] || [ "_$NVM_WHICH_DIR" = "_new" ]; then echo "$NVM_DIR/versions" - elif [ "$NVM_USE_NEW_DIR" = "old" ]; then + elif [ "_$NVM_WHICH_DIR" = "_old" ]; then echo "$NVM_DIR" else echo "unknown version dir" >&2 From bf794ff8daef07e2167aed58229dfcaac4af398b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 11 Jan 2015 11:53:24 -0800 Subject: [PATCH 0322/1426] Consistently prefix builtins with `command` --- install.sh | 6 ++-- nvm.sh | 86 +++++++++++++++++++++++++++--------------------------- 2 files changed, 46 insertions(+), 46 deletions(-) diff --git a/install.sh b/install.sh index d1d1a78..24e2757 100755 --- a/install.sh +++ b/install.sh @@ -59,7 +59,7 @@ install_nvm_from_git() { if [ -d "$NVM_DIR/.git" ]; then echo "=> nvm is already installed in $NVM_DIR, trying to update" printf "\r=> " - cd "$NVM_DIR" && (git fetch 2> /dev/null || { + cd "$NVM_DIR" && (command git fetch 2> /dev/null || { echo >&2 "Failed to update nvm, run 'git fetch' in $NVM_DIR yourself." && exit 1 }) else @@ -67,9 +67,9 @@ install_nvm_from_git() { echo "=> Downloading nvm from git to '$NVM_DIR'" printf "\r=> " mkdir -p "$NVM_DIR" - git clone "$(nvm_source git)" "$NVM_DIR" + command git clone "$(nvm_source git)" "$NVM_DIR" fi - cd "$NVM_DIR" && git checkout --quiet $(nvm_latest_version) && git branch --quiet -D master >/dev/null 2>&1 + cd "$NVM_DIR" && command git checkout --quiet $(nvm_latest_version) && command git branch --quiet -D master >/dev/null 2>&1 return } diff --git a/nvm.sh b/nvm.sh index 6170835..32e1df8 100644 --- a/nvm.sh +++ b/nvm.sh @@ -201,7 +201,7 @@ nvm_remote_version() { } nvm_normalize_version() { - echo "$1" | command sed -e 's/^v//' | \awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }' + echo "$1" | command sed -e 's/^v//' | command awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }' } nvm_ensure_version_prefix() { @@ -310,7 +310,7 @@ nvm_resolve_alias() { fi if [ -n "$ALIAS_TEMP" ] \ - && printf "$SEEN_ALIASES" | \grep -e "^$ALIAS_TEMP$" > /dev/null; then + && printf "$SEEN_ALIASES" | command grep -e "^$ALIAS_TEMP$" > /dev/null; then ALIAS="∞" break fi @@ -370,19 +370,19 @@ nvm_ls() { fi fi if [ -d "$(nvm_version_dir new)" ]; then - VERSIONS=`find "$(nvm_version_dir new)/" "$(nvm_version_dir old)/" -maxdepth 1 -type d -name "$PATTERN*" -exec basename '{}' ';' \ - | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n | \grep -v '^ *\.' | \grep -e '^v' | \grep -v -e '^versions$'` + VERSIONS=`command find "$(nvm_version_dir new)/" "$(nvm_version_dir old)/" -maxdepth 1 -type d -name "$PATTERN*" -exec basename '{}' ';' \ + | command sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n | command grep -v '^ *\.' | command grep -e '^v' | command grep -v -e '^versions$'` else - VERSIONS=`find "$(nvm_version_dir old)/" -maxdepth 1 -type d -name "$PATTERN*" -exec basename '{}' ';' \ - | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n | \grep -v '^ *\.' | \grep -e '^v'` + VERSIONS=`command find "$(nvm_version_dir old)/" -maxdepth 1 -type d -name "$PATTERN*" -exec basename '{}' ';' \ + | command sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n | command grep -v '^ *\.' | command grep -e '^v'` fi fi if nvm_has_system_node; then if [ -z "$PATTERN" ]; then - VERSIONS="$VERSIONS$(printf '\n%s' 'system')" + VERSIONS="$VERSIONS$(command printf '\n%s' 'system')" elif [ "$PATTERN" = 'system' ]; then - VERSIONS="$(printf '%s' 'system')" + VERSIONS="$(command printf '%s' 'system')" fi fi @@ -410,7 +410,7 @@ nvm_ls_remote() { fi VERSIONS=`nvm_download -L -s $NVM_NODEJS_ORG_MIRROR/ -o - \ | \egrep -o 'v[0-9]+\.[0-9]+\.[0-9]+' \ - | \grep -w "${PATTERN}" \ + | command grep -w "${PATTERN}" \ | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n` if [ -z "$VERSIONS" ]; then echo "N/A" @@ -422,11 +422,11 @@ nvm_ls_remote() { nvm_checksum() { if nvm_has "sha1sum"; then - checksum="$(sha1sum "$1" | \awk '{print $1}')" + checksum="$(sha1sum "$1" | command awk '{print $1}')" elif nvm_has "sha1"; then checksum="$(sha1 -q "$1")" else - checksum="$(shasum "$1" | \awk '{print $1}')" + checksum="$(shasum "$1" | command awk '{print $1}')" fi if [ "_$checksum" = "_$2" ]; then @@ -478,9 +478,9 @@ nvm_print_implicit_alias() { local LAST_TWO if [ "_$1" = "_local" ]; then - LAST_TWO=$(nvm_ls | \grep -e '^v' | cut -c2- | cut -d . -f 1,2 | uniq) + LAST_TWO=$(nvm_ls | command grep -e '^v' | cut -c2- | cut -d . -f 1,2 | uniq) else - LAST_TWO=$(nvm_ls_remote | \grep -e '^v' | cut -c2- | cut -d . -f 1,2 | uniq) + LAST_TWO=$(nvm_ls_remote | command grep -e '^v' | cut -c2- | cut -d . -f 1,2 | uniq) fi local MINOR local STABLE @@ -490,7 +490,7 @@ nvm_print_implicit_alias() { local ZHS_HAS_SHWORDSPLIT_UNSET ZHS_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | \grep shwordsplit > /dev/null ; echo $?) + ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; echo $?) setopt shwordsplit fi for MINOR in $LAST_TWO; do @@ -635,11 +635,11 @@ nvm() { while [ $# -ne 0 ] do - if [ "_$(echo "$1" | cut -c 1-26)" = "_--reinstall-packages-from=" ]; then - PROVIDED_REINSTALL_PACKAGES_FROM="$(echo "$1" | cut -c 27-)" + if [ "_$(echo "$1" | command cut -c 1-26)" = "_--reinstall-packages-from=" ]; then + PROVIDED_REINSTALL_PACKAGES_FROM="$(echo "$1" | command cut -c 27-)" REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM")" - elif [ "_$(echo "$1" | cut -c 1-21)" = "_--copy-packages-from=" ]; then - PROVIDED_REINSTALL_PACKAGES_FROM="$(echo "$1" | cut -c 22-)" + elif [ "_$(echo "$1" | command cut -c 1-21)" = "_--copy-packages-from=" ]; then + PROVIDED_REINSTALL_PACKAGES_FROM="$(echo "$1" | command cut -c 22-)" REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM")" else ADDITIONAL_PARAMETERS="$ADDITIONAL_PARAMETERS $1" @@ -675,18 +675,18 @@ nvm() { if nvm_binary_available "$VERSION"; then t="$VERSION-$os-$arch" url="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-${t}.tar.gz" - sum=`nvm_download -L -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt -o - | \grep node-${t}.tar.gz | \awk '{print $1}'` + sum=`nvm_download -L -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt -o - | command grep node-${t}.tar.gz | command awk '{print $1}'` local tmpdir tmpdir="$NVM_DIR/bin/node-${t}" local tmptarball tmptarball="$tmpdir/node-${t}.tar.gz" if ( - mkdir -p "$tmpdir" && \ + command mkdir -p "$tmpdir" && \ nvm_download -L -C - --progress-bar $url -o "$tmptarball" && \ nvm_checksum "$tmptarball" $sum && \ - tar -xzf "$tmptarball" -C "$tmpdir" --strip-components 1 && \ - rm -f "$tmptarball" && \ - mv "$tmpdir" "$(nvm_version_path "$VERSION")" + command tar -xzf "$tmptarball" -C "$tmpdir" --strip-components 1 && \ + command rm -f "$tmptarball" && \ + command mv "$tmpdir" "$(nvm_version_path "$VERSION")" ) then if nvm use "$VERSION" && [ ! -z "$REINSTALL_PACKAGES_FROM" ] && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then @@ -695,7 +695,7 @@ nvm() { return $? else echo "Binary download failed, trying source." >&2 - rm -rf "$tmptarball" "$tmpdir" + command rm -rf "$tmptarball" "$tmpdir" fi fi fi @@ -716,22 +716,22 @@ nvm() { tmpdir="$NVM_DIR/src" local tmptarball tmptarball="$tmpdir/node-$VERSION.tar.gz" - if [ "`nvm_download -L -s -I "$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" -o - 2>&1 | \grep '200 OK'`" != '' ]; then + if [ "`nvm_download -L -s -I "$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" -o - 2>&1 | command grep '200 OK'`" != '' ]; then tarball="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" - sum=`nvm_download -L -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt -o - | \grep node-$VERSION.tar.gz | \awk '{print $1}'` - elif [ "`nvm_download -L -s -I "$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" -o - | \grep '200 OK'`" != '' ]; then + sum=`nvm_download -L -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt -o - | command grep node-$VERSION.tar.gz | command awk '{print $1}'` + elif [ "`nvm_download -L -s -I "$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" -o - | command grep '200 OK'`" != '' ]; then tarball="$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" fi if ( [ -n "$tarball" ] && \ - mkdir -p "$tmpdir" && \ + command mkdir -p "$tmpdir" && \ nvm_download -L --progress-bar $tarball -o "$tmptarball" && \ nvm_checksum "$tmptarball" $sum && \ - tar -xzf "$tmptarball" -C "$tmpdir" && \ + command tar -xzf "$tmptarball" -C "$tmpdir" && \ cd "$tmpdir/node-$VERSION" && \ ./configure --prefix="$(nvm_version_path "$VERSION")" $ADDITIONAL_PARAMETERS && \ $make $MAKE_CXX && \ - rm -f "$(nvm_version_path "$VERSION")" 2>/dev/null && \ + command rm -f "$(nvm_version_path "$VERSION")" 2>/dev/null && \ $make $MAKE_CXX install ) then @@ -775,7 +775,7 @@ nvm() { t="$VERSION-$os-$arch" # Delete all files related to target version. - rm -rf "$NVM_DIR/src/node-$VERSION" \ + command rm -rf "$NVM_DIR/src/node-$VERSION" \ "$NVM_DIR/src/node-$VERSION.tar.gz" \ "$NVM_DIR/bin/node-${t}" \ "$NVM_DIR/bin/node-${t}.tar.gz" \ @@ -783,7 +783,7 @@ nvm() { echo "Uninstalled node $VERSION" # Rm any aliases that point to uninstalled version. - for ALIAS in `\grep -l $VERSION $NVM_DIR/alias/* 2>/dev/null` + for ALIAS in `command grep -l $VERSION $NVM_DIR/alias/* 2>/dev/null` do nvm unalias `basename $ALIAS` done @@ -872,7 +872,7 @@ nvm() { export NVM_PATH="$NVM_VERSION_DIR/lib/node" export NVM_BIN="$NVM_VERSION_DIR/bin" if [ "$NVM_SYMLINK_CURRENT" = true ]; then - rm -f "$NVM_DIR/current" && ln -s "$NVM_VERSION_DIR" "$NVM_DIR/current" + command rm -f "$NVM_DIR/current" && ln -s "$NVM_VERSION_DIR" "$NVM_DIR/current" fi echo "Now using node $VERSION" ;; @@ -1009,11 +1009,11 @@ nvm() { echo "$NVM_VERSION_DIR/bin/node" ;; "alias" ) - mkdir -p "$NVM_DIR/alias" + command mkdir -p "$NVM_DIR/alias" if [ $# -le 2 ]; then local DEST for ALIAS_PATH in "$NVM_DIR"/alias/"$2"*; do - ALIAS="$(basename "$ALIAS_PATH")" + ALIAS="$(command basename "$ALIAS_PATH")" DEST="$(nvm_alias "$ALIAS" 2> /dev/null)" if [ -n "$DEST" ]; then VERSION="$(nvm_version "$DEST")" @@ -1039,7 +1039,7 @@ nvm() { return fi if [ -z "$3" ]; then - rm -f "$NVM_DIR/alias/$2" + command rm -f "$NVM_DIR/alias/$2" echo "$2 -> *poof*" return fi @@ -1047,7 +1047,7 @@ nvm() { if [ $? -ne 0 ]; then echo "! WARNING: Version '$3' does not exist." >&2 fi - echo $3 > "$NVM_DIR/alias/$2" + echo "$3" > "$NVM_DIR/alias/$2" if [ ! "_$3" = "_$VERSION" ]; then echo "$2 -> $3 (-> $VERSION)" else @@ -1055,10 +1055,10 @@ nvm() { fi ;; "unalias" ) - mkdir -p $NVM_DIR/alias + command mkdir -p "$NVM_DIR/alias" [ $# -ne 2 ] && nvm help && return 127 [ ! -f "$NVM_DIR/alias/$2" ] && echo "Alias $2 doesn't exist!" >&2 && return - rm -f $NVM_DIR/alias/$2 + command rm -f $NVM_DIR/alias/$2 echo "Deleted alias $2" ;; "reinstall-packages" | "copy-packages" ) @@ -1081,18 +1081,18 @@ nvm() { echo 'No system version of node detected.' >&2 return 3 fi - INSTALLS=$(nvm deactivate > /dev/null && npm list -g --depth=0 | tail -n +2 | \grep -o -e ' [^@]*' | cut -c 2- | \grep -v npm | xargs) + INSTALLS=$(nvm deactivate > /dev/null && npm list -g --depth=0 | command tail -n +2 | command grep -o -e ' [^@]*' | command cut -c 2- | command grep -v npm | command xargs) else local VERSION VERSION="$(nvm_version "$PROVIDED_VERSION")" - INSTALLS=$(nvm use "$VERSION" > /dev/null && npm list -g --depth=0 | tail -n +2 | \grep -o -e ' [^@]*' | cut -c 2- | \grep -v npm | xargs) + INSTALLS=$(nvm use "$VERSION" > /dev/null && npm list -g --depth=0 | command tail -n +2 | command grep -o -e ' [^@]*' | command cut -c 2- | command grep -v npm | command xargs) fi echo "Copying global packages from $VERSION..." - echo "$INSTALLS" | xargs npm install -g --quiet + echo "$INSTALLS" | command xargs npm install -g --quiet ;; "clear-cache" ) - rm -f $NVM_DIR/v* "$(nvm_version_dir)" 2>/dev/null + command rm -f $NVM_DIR/v* "$(nvm_version_dir)" 2>/dev/null echo "Cache cleared." ;; "version" ) From 4b5885d69d8811fc07643c8495b12c46935c2b18 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 11 Jan 2015 12:04:26 -0800 Subject: [PATCH 0323/1426] Store the version path in a local variable for reuse. --- nvm.sh | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/nvm.sh b/nvm.sh index 32e1df8..f6354a4 100644 --- a/nvm.sh +++ b/nvm.sh @@ -655,7 +655,9 @@ nvm() { return 5 fi - if [ -d "$(nvm_version_path "$VERSION")" ]; then + local VERSION_PATH + VERSION_PATH="$(nvm_version_path "$VERSION")" + if [ -d "$VERSION_PATH" ]; then echo "$VERSION is already installed." >&2 if nvm use "$VERSION" && [ ! -z "$REINSTALL_PACKAGES_FROM" ] && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then nvm reinstall-packages "$REINSTALL_PACKAGES_FROM" @@ -686,7 +688,7 @@ nvm() { nvm_checksum "$tmptarball" $sum && \ command tar -xzf "$tmptarball" -C "$tmpdir" --strip-components 1 && \ command rm -f "$tmptarball" && \ - command mv "$tmpdir" "$(nvm_version_path "$VERSION")" + command mv "$tmpdir" "$VERSION_PATH" ) then if nvm use "$VERSION" && [ ! -z "$REINSTALL_PACKAGES_FROM" ] && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then @@ -729,9 +731,9 @@ nvm() { nvm_checksum "$tmptarball" $sum && \ command tar -xzf "$tmptarball" -C "$tmpdir" && \ cd "$tmpdir/node-$VERSION" && \ - ./configure --prefix="$(nvm_version_path "$VERSION")" $ADDITIONAL_PARAMETERS && \ + ./configure --prefix="$VERSION_PATH" $ADDITIONAL_PARAMETERS && \ $make $MAKE_CXX && \ - command rm -f "$(nvm_version_path "$VERSION")" 2>/dev/null && \ + command rm -f "$VERSION_PATH" 2>/dev/null && \ $make $MAKE_CXX install ) then @@ -766,8 +768,11 @@ nvm() { echo "nvm: Cannot uninstall currently-active node version, $PATTERN." >&2 return 1 fi - VERSION=`nvm_version $PATTERN` - if [ ! -d "$(nvm_version_path "$VERSION")" ]; then + local VERSION + VERSION="$(nvm_version "$PATTERN")" + local VERSION_PATH + VERSION_PATH="$(nvm_version_path "$VERSION")" + if [ ! -d "$VERSION_PATH" ]; then echo "$VERSION version is not installed..." >&2 return; fi @@ -779,7 +784,7 @@ nvm() { "$NVM_DIR/src/node-$VERSION.tar.gz" \ "$NVM_DIR/bin/node-${t}" \ "$NVM_DIR/bin/node-${t}.tar.gz" \ - "$(nvm_version_path "$VERSION")" 2>/dev/null + "$VERSION_PATH" 2>/dev/null echo "Uninstalled node $VERSION" # Rm any aliases that point to uninstalled version. From 34e51f9f0209dc20748c562308bf26ef1e59dd86 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 11 Jan 2015 12:13:14 -0800 Subject: [PATCH 0324/1426] =?UTF-8?q?Proper=20quoting=20and=20$(=E2=80=A6)?= =?UTF-8?q?=20vs=20`=E2=80=A6`.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nvm.sh | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/nvm.sh b/nvm.sh index f6354a4..4c3e395 100644 --- a/nvm.sh +++ b/nvm.sh @@ -277,7 +277,7 @@ nvm_ls_current() { echo 'none' elif nvm_tree_contains_path "$NVM_DIR" "$NVM_LS_CURRENT_NODE_PATH"; then local VERSION - VERSION=`node -v 2>/dev/null` + VERSION="$(node -v 2>/dev/null)" if [ "$VERSION" = "v0.6.21-pre" ]; then echo "v0.6.21" else @@ -763,8 +763,8 @@ nvm() { ;; "uninstall" ) [ $# -ne 2 ] && nvm help && return - PATTERN=`nvm_ensure_version_prefix $2` - if [ "$PATTERN" = `nvm_version` ]; then + PATTERN="$(nvm_ensure_version_prefix "$2")" + if [ "_$PATTERN" = "_$(nvm_version)" ]; then echo "nvm: Cannot uninstall currently-active node version, $PATTERN." >&2 return 1 fi @@ -790,14 +790,14 @@ nvm() { # Rm any aliases that point to uninstalled version. for ALIAS in `command grep -l $VERSION $NVM_DIR/alias/* 2>/dev/null` do - nvm unalias `basename $ALIAS` + nvm unalias "$(command basename "$ALIAS")" done ;; "deactivate" ) local NEWPATH NEWPATH="$(nvm_strip_path "$PATH" "/bin")" - if [ "$PATH" = "$NEWPATH" ]; then + if [ "_$PATH" = "_$NEWPATH" ]; then echo "Could not find $NVM_DIR/*/bin in \$PATH" >&2 else export PATH="$NEWPATH" @@ -806,7 +806,7 @@ nvm() { fi NEWPATH="$(nvm_strip_path "$MANPATH" "/share/man")" - if [ "$MANPATH" = "$NEWPATH" ]; then + if [ "_$MANPATH" = "_$NEWPATH" ]; then echo "Could not find $NVM_DIR/*/share/man in \$MANPATH" >&2 else export MANPATH="$NEWPATH" @@ -814,7 +814,7 @@ nvm() { fi NEWPATH="$(nvm_strip_path "$NODE_PATH" "/lib/node_modules")" - if [ "$NODE_PATH" != "$NEWPATH" ]; then + if [ "_$NODE_PATH" != "_$NEWPATH" ]; then export NODE_PATH="$NEWPATH" echo "$NVM_DIR/*/lib/node_modules removed from \$NODE_PATH" fi @@ -827,7 +827,7 @@ nvm() { if [ $# -eq 1 ]; then nvm_rc_version if [ -n "$NVM_RC_VERSION" ]; then - VERSION=`nvm_version $NVM_RC_VERSION` + VERSION="$(nvm_version "$NVM_RC_VERSION")" fi elif [ "_$2" != '_system' ]; then VERSION="$(nvm_version "$2")" @@ -859,17 +859,17 @@ nvm() { return 1 fi # Strip other version from PATH - PATH=`nvm_strip_path "$PATH" "/bin"` + PATH="$(nvm_strip_path "$PATH" "/bin")" # Prepend current version - PATH=`nvm_prepend_path "$PATH" "$NVM_VERSION_DIR/bin"` + PATH="$(nvm_prepend_path "$PATH" "$NVM_VERSION_DIR/bin")" if nvm_has manpath; then if [ -z "$MANPATH" ]; then MANPATH=$(manpath) fi # Strip other version from MANPATH - MANPATH=`nvm_strip_path "$MANPATH" "/share/man"` + MANPATH="$(nvm_strip_path "$MANPATH" "/share/man")" # Prepend current version - MANPATH=`nvm_prepend_path "$MANPATH" "$NVM_VERSION_DIR/share/man"` + MANPATH="$(nvm_prepend_path "$MANPATH" "$NVM_VERSION_DIR/share/man")" export MANPATH fi export PATH @@ -890,7 +890,7 @@ nvm() { if [ $# -lt 1 ]; then nvm_rc_version && has_checked_nvmrc=1 if [ -n "$NVM_RC_VERSION" ]; then - VERSION=`nvm_version $NVM_RC_VERSION` + VERSION="$(nvm_version "$NVM_RC_VERSION")" else VERSION='N/A' fi @@ -902,13 +902,13 @@ nvm() { provided_version=$1 if [ -n "$provided_version" ]; then - VERSION=`nvm_version $provided_version` + VERSION="$(nvm_version "$provided_version")" if [ "_$VERSION" = "_N/A" ]; then provided_version='' if [ $has_checked_nvmrc -ne 1 ]; then nvm_rc_version && has_checked_nvmrc=1 fi - VERSION=`nvm_version $NVM_RC_VERSION` + VERSION="$(nvm_version "$NVM_RC_VERSION")" else shift fi @@ -930,8 +930,8 @@ nvm() { local provided_version provided_version="$1" if [ -n "$provided_version" ]; then - VERSION=`nvm_version $provided_version` - if [ $VERSION = "N/A" ]; then + VERSION="$(nvm_version "$provided_version")" + if [ "_$VERSION" = "_N/A" ]; then provided_version='' nvm_rc_version VERSION="$(nvm_version "$NVM_RC_VERSION")" @@ -941,13 +941,13 @@ nvm() { fi local NVM_VERSION_DIR - NVM_VERSION_DIR=$(nvm_version_path "$VERSION") + NVM_VERSION_DIR="$(nvm_version_path "$VERSION")" if [ ! -d "$NVM_VERSION_DIR" ]; then echo "$VERSION version is not installed yet" >&2 return 1 fi echo "Running node $VERSION" - NODE_VERSION=$VERSION $NVM_DIR/nvm-exec "$@" + NODE_VERSION="$VERSION" $NVM_DIR/nvm-exec "$@" ;; "ls" | "list" ) local NVM_LS_OUTPUT @@ -974,7 +974,7 @@ nvm() { if [ $# -eq 1 ]; then nvm_rc_version if [ -n "$NVM_RC_VERSION" ]; then - VERSION=$(nvm_version $NVM_RC_VERSION) + VERSION=$(nvm_version "$NVM_RC_VERSION") fi elif [ "_$2" != '_system' ]; then VERSION="$(nvm_version "$2")" @@ -1075,13 +1075,13 @@ nvm() { local PROVIDED_VERSION PROVIDED_VERSION="$2" - if [ "$PROVIDED_VERSION" = "$(nvm_ls_current)" ] || [ "$(nvm_version $PROVIDED_VERSION)" = "$(nvm_ls_current)" ]; then + if [ "$PROVIDED_VERSION" = "$(nvm_ls_current)" ] || [ "$(nvm_version "$PROVIDED_VERSION")" = "$(nvm_ls_current)" ]; then echo 'Can not reinstall packages from the current version of node.' >&2 return 2 fi local INSTALLS - if [ "$PROVIDED_VERSION" = "system" ]; then + if [ "_$PROVIDED_VERSION" = "_system" ]; then if ! nvm_has_system_node; then echo 'No system version of node detected.' >&2 return 3 From 3fa11c35cb29e4dd4489f0b06f5187421fc6eb42 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 12 Jan 2015 00:33:13 -0800 Subject: [PATCH 0325/1426] Add io.js support to `nvm_version_dir` --- nvm.sh | 2 ++ test/fast/Unit tests/nvm_version_dir | 1 + 2 files changed, 3 insertions(+) diff --git a/nvm.sh b/nvm.sh index c26d229..0f2db7e 100644 --- a/nvm.sh +++ b/nvm.sh @@ -144,6 +144,8 @@ nvm_version_dir() { NVM_WHICH_DIR="$1" if [ -z "$NVM_WHICH_DIR" ] || [ "_$NVM_WHICH_DIR" = "_new" ]; then echo "$NVM_DIR/versions/node" + elif [ "_$NVM_WHICH_DIR" = "_iojs" ]; then + echo "$NVM_DIR/versions/io.js" elif [ "_$NVM_WHICH_DIR" = "_old" ]; then echo "$NVM_DIR" else diff --git a/test/fast/Unit tests/nvm_version_dir b/test/fast/Unit tests/nvm_version_dir index f6346fa..6fc880a 100755 --- a/test/fast/Unit tests/nvm_version_dir +++ b/test/fast/Unit tests/nvm_version_dir @@ -5,6 +5,7 @@ die () { echo $@ ; exit 1; } . ../../../nvm.sh [ "$(nvm_version_dir)" = "$NVM_DIR/versions/node" ] || die '"nvm_version_dir" did not return new dir path' +[ "$(nvm_version_dir iojs)" = "$NVM_DIR/versions/io.js" ] || die '"nvm_version_dir iojs" did not return iojs dir path' [ "$(nvm_version_dir new)" = "$(nvm_version_dir)" ] || die '"nvm_version_dir new" did not return new dir path' [ "$(nvm_version_dir old)" = "$NVM_DIR" ] || die '"nvm_version_dir old" did not return old dir path' [ "$(nvm_version_dir foo 2>&1)" = "unknown version dir" ] || die '"nvm_version_dir foo" did not error out' From 835c006b5ed7ce0f36cda0c69dcfbb4616d2a1c0 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 12 Jan 2015 01:15:48 -0800 Subject: [PATCH 0326/1426] Better way to search multiple directories in `nvm_ls` --- nvm.sh | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/nvm.sh b/nvm.sh index 4c3e395..132128c 100644 --- a/nvm.sh +++ b/nvm.sh @@ -369,12 +369,29 @@ nvm_ls() { PATTERN="$(echo "$PATTERN" | command sed -e 's/\.*$//g')." fi fi - if [ -d "$(nvm_version_dir new)" ]; then - VERSIONS=`command find "$(nvm_version_dir new)/" "$(nvm_version_dir old)/" -maxdepth 1 -type d -name "$PATTERN*" -exec basename '{}' ';' \ - | command sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n | command grep -v '^ *\.' | command grep -e '^v' | command grep -v -e '^versions$'` - else - VERSIONS=`command find "$(nvm_version_dir old)/" -maxdepth 1 -type d -name "$PATTERN*" -exec basename '{}' ';' \ - | command sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n | command grep -v '^ *\.' | command grep -e '^v'` + local NVM_DIRS_TO_SEARCH + NVM_DIRS_TO_SEARCH="$(nvm_version_dir old)/" + for NVM_VERSION_DIR in "$(nvm_version_dir new)"; do + if [ -d "$NVM_VERSION_DIR" ]; then + NVM_DIRS_TO_SEARCH="$NVM_VERSION_DIR/ $NVM_DIRS_TO_SEARCH" + fi + done + + local ZHS_HAS_SHWORDSPLIT_UNSET + ZHS_HAS_SHWORDSPLIT_UNSET=1 + if nvm_has "setopt"; then + ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; echo $?) + setopt shwordsplit + fi + + VERSIONS="$(command find $NVM_DIRS_TO_SEARCH -maxdepth 1 -type d -name "$PATTERN*" -exec basename '{}' ';' \ + | command sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n \ + | command grep -v '^ *\.' \ + | command grep -e '^v' \ + | command grep -v -e '^versions$')" + + if [ $ZHS_HAS_SHWORDSPLIT_UNSET -eq 1 ] && nvm_has "unsetopt"; then + unsetopt shwordsplit fi fi @@ -392,7 +409,6 @@ nvm_ls() { fi echo "$VERSIONS" - return } nvm_ls_remote() { From 7807a9f09e54a14f9b493c6eeda0022489cda496 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 12 Jan 2015 01:27:53 -0800 Subject: [PATCH 0327/1426] Consolidate "alias" directory to a method. --- nvm.sh | 28 ++++++++++++++++++---------- test/fast/Unit tests/nvm_alias_path | 8 ++++++++ 2 files changed, 26 insertions(+), 10 deletions(-) create mode 100755 test/fast/Unit tests/nvm_alias_path diff --git a/nvm.sh b/nvm.sh index 132128c..66047cf 100644 --- a/nvm.sh +++ b/nvm.sh @@ -152,6 +152,10 @@ nvm_version_dir() { fi } +nvm_alias_path() { + echo "$(nvm_version_dir old)/alias" +} + nvm_version_path() { local VERSION VERSION="$1" @@ -261,7 +265,7 @@ nvm_alias() { fi local NVM_ALIAS_PATH - NVM_ALIAS_PATH="$NVM_DIR/alias/$ALIAS" + NVM_ALIAS_PATH="$(nvm_alias_path)/$ALIAS" if [ ! -f "$NVM_ALIAS_PATH" ]; then echo >&2 'Alias does not exist.' return 2 @@ -804,7 +808,7 @@ nvm() { echo "Uninstalled node $VERSION" # Rm any aliases that point to uninstalled version. - for ALIAS in `command grep -l $VERSION $NVM_DIR/alias/* 2>/dev/null` + for ALIAS in `command grep -l $VERSION "$(nvm_alias_path)/*" 2>/dev/null` do nvm unalias "$(command basename "$ALIAS")" done @@ -1030,10 +1034,12 @@ nvm() { echo "$NVM_VERSION_DIR/bin/node" ;; "alias" ) - command mkdir -p "$NVM_DIR/alias" + local NVM_ALIAS_DIR + NVM_ALIAS_DIR="$(nvm_alias_path)" + command mkdir -p "$NVM_ALIAS_DIR" if [ $# -le 2 ]; then local DEST - for ALIAS_PATH in "$NVM_DIR"/alias/"$2"*; do + for ALIAS_PATH in "$NVM_ALIAS_DIR"/"$2"*; do ALIAS="$(command basename "$ALIAS_PATH")" DEST="$(nvm_alias "$ALIAS" 2> /dev/null)" if [ -n "$DEST" ]; then @@ -1047,7 +1053,7 @@ nvm() { done for ALIAS in "stable" "unstable"; do - if [ ! -f "$NVM_DIR/alias/$ALIAS" ]; then + if [ ! -f "$NVM_ALIAS_DIR/$ALIAS" ]; then if [ $# -lt 2 ] || [ "~$ALIAS" = "~$2" ]; then DEST="$(nvm_print_implicit_alias local "$ALIAS")" if [ "_$DEST" != "_" ]; then @@ -1060,7 +1066,7 @@ nvm() { return fi if [ -z "$3" ]; then - command rm -f "$NVM_DIR/alias/$2" + command rm -f "$NVM_ALIAS_DIR/$2" echo "$2 -> *poof*" return fi @@ -1068,7 +1074,7 @@ nvm() { if [ $? -ne 0 ]; then echo "! WARNING: Version '$3' does not exist." >&2 fi - echo "$3" > "$NVM_DIR/alias/$2" + echo "$3" > "$NVM_ALIAS_DIR/$2" if [ ! "_$3" = "_$VERSION" ]; then echo "$2 -> $3 (-> $VERSION)" else @@ -1076,10 +1082,12 @@ nvm() { fi ;; "unalias" ) - command mkdir -p "$NVM_DIR/alias" + local NVM_ALIAS_DIR + NVM_ALIAS_DIR="$(nvm_alias_path)" + command mkdir -p "$NVM_ALIAS_DIR" [ $# -ne 2 ] && nvm help && return 127 - [ ! -f "$NVM_DIR/alias/$2" ] && echo "Alias $2 doesn't exist!" >&2 && return - command rm -f $NVM_DIR/alias/$2 + [ ! -f "$NVM_ALIAS_DIR/$2" ] && echo "Alias $2 doesn't exist!" >&2 && return + command rm -f "$NVM_ALIAS_DIR/$2" echo "Deleted alias $2" ;; "reinstall-packages" | "copy-packages" ) diff --git a/test/fast/Unit tests/nvm_alias_path b/test/fast/Unit tests/nvm_alias_path new file mode 100755 index 0000000..0766e2a --- /dev/null +++ b/test/fast/Unit tests/nvm_alias_path @@ -0,0 +1,8 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +[ "_$(nvm_alias_path)" = "_$NVM_DIR/alias" ] || die "nvm_alias_path did not requrn correct location" + From 8be97c8abb321877df2e628601f6cee937a13e7f Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 12 Jan 2015 18:15:04 -0800 Subject: [PATCH 0328/1426] Add `nvm_iojs_prefix` --- nvm.sh | 11 ++++++++++- test/fast/Unit tests/nvm_iojs_prefix | 7 +++++++ 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100755 test/fast/Unit tests/nvm_iojs_prefix diff --git a/nvm.sh b/nvm.sh index 0f2db7e..81797b0 100644 --- a/nvm.sh +++ b/nvm.sh @@ -347,6 +347,10 @@ nvm_resolve_alias() { return 2 } +nvm_iojs_prefix() { + echo "iojs" +} + nvm_ls() { local PATTERN PATTERN="$1" @@ -1189,7 +1193,12 @@ nvm() { echo "0.22.2" ;; "unload" ) - unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version nvm_version_greater nvm_version_greater_than_or_equal_to nvm_supports_source_options > /dev/null 2>&1 + unset -f nvm nvm_print_versions nvm_checksum \ + nvm_iojs_prefix \ + nvm_ls_remote nvm_ls nvm_remote_version \ + nvm_version nvm_rc_version \ + nvm_version_greater nvm_version_greater_than_or_equal_to \ + nvm_supports_source_options > /dev/null 2>&1 unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_DIR NVM_CD_FLAGS > /dev/null 2>&1 ;; * ) diff --git a/test/fast/Unit tests/nvm_iojs_prefix b/test/fast/Unit tests/nvm_iojs_prefix new file mode 100755 index 0000000..6666695 --- /dev/null +++ b/test/fast/Unit tests/nvm_iojs_prefix @@ -0,0 +1,7 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +[ "$(nvm_iojs_prefix)" = "iojs" ] || die '"nvm_iojs_prefix" did not return the string "iojs". why did this fail?!' From c46748a379c80302258664b6e3a5a79f3b73c9c1 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 13 Jan 2015 14:16:35 -0800 Subject: [PATCH 0329/1426] Add `nvm_node_prefix` --- nvm.sh | 5 ++++- test/fast/Unit tests/nvm_node_prefix | 7 +++++++ 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100755 test/fast/Unit tests/nvm_node_prefix diff --git a/nvm.sh b/nvm.sh index 81797b0..5ce9e0b 100644 --- a/nvm.sh +++ b/nvm.sh @@ -350,6 +350,9 @@ nvm_resolve_alias() { nvm_iojs_prefix() { echo "iojs" } +nvm_node_prefix() { + echo "node" +} nvm_ls() { local PATTERN @@ -1194,7 +1197,7 @@ nvm() { ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum \ - nvm_iojs_prefix \ + nvm_iojs_prefix nvm_node_prefix \ nvm_ls_remote nvm_ls nvm_remote_version \ nvm_version nvm_rc_version \ nvm_version_greater nvm_version_greater_than_or_equal_to \ diff --git a/test/fast/Unit tests/nvm_node_prefix b/test/fast/Unit tests/nvm_node_prefix new file mode 100755 index 0000000..a0bc098 --- /dev/null +++ b/test/fast/Unit tests/nvm_node_prefix @@ -0,0 +1,7 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +[ "$(nvm_node_prefix)" = "node" ] || die '"nvm_node_prefix" did not return the string "node". why did this fail?!' From 98e0655198db42f8964baa797a73eedfb918b20c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 12 Jan 2015 18:15:15 -0800 Subject: [PATCH 0330/1426] Add `nvm_is_iojs_version` --- nvm.sh | 5 +++++ test/fast/Unit tests/nvm_is_iojs_version | 10 ++++++++++ 2 files changed, 15 insertions(+) create mode 100755 test/fast/Unit tests/nvm_is_iojs_version diff --git a/nvm.sh b/nvm.sh index 5ce9e0b..54a01c1 100644 --- a/nvm.sh +++ b/nvm.sh @@ -354,6 +354,10 @@ nvm_node_prefix() { echo "node" } +nvm_is_iojs_version() { + [ "_$(echo "$1" | cut -c1-5)" = "_iojs-" ] +} + nvm_ls() { local PATTERN PATTERN="$1" @@ -1198,6 +1202,7 @@ nvm() { "unload" ) unset -f nvm nvm_print_versions nvm_checksum \ nvm_iojs_prefix nvm_node_prefix \ + nvm_is_iojs_version \ nvm_ls_remote nvm_ls nvm_remote_version \ nvm_version nvm_rc_version \ nvm_version_greater nvm_version_greater_than_or_equal_to \ diff --git a/test/fast/Unit tests/nvm_is_iojs_version b/test/fast/Unit tests/nvm_is_iojs_version new file mode 100755 index 0000000..e2f5e3f --- /dev/null +++ b/test/fast/Unit tests/nvm_is_iojs_version @@ -0,0 +1,10 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +nvm_is_iojs_version 'iojs-' || die '"nvm_is_iojs_version iojs- was not true' +nvm_is_iojs_version 'iojs-foo' || die '"nvm_is_iojs_version iojs- was not true' +! nvm_is_iojs_version 'iojs' || die '"nvm_is_iojs_version iojs was not false' +! nvm_is_iojs_version 'v1.0.0' || die '"nvm_is_iojs_version v1.0.0" was not false' From c12104cecd2ef8320d218855fe67eab8660953f1 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 12 Jan 2015 18:15:25 -0800 Subject: [PATCH 0331/1426] Add `nvm_strip_iojs_prefix` --- nvm.sh | 11 +++++++++++ test/fast/Unit tests/nvm_strip_iojs_prefix | 10 ++++++++++ 2 files changed, 21 insertions(+) create mode 100755 test/fast/Unit tests/nvm_strip_iojs_prefix diff --git a/nvm.sh b/nvm.sh index 54a01c1..f8aea57 100644 --- a/nvm.sh +++ b/nvm.sh @@ -358,6 +358,16 @@ nvm_is_iojs_version() { [ "_$(echo "$1" | cut -c1-5)" = "_iojs-" ] } +nvm_strip_iojs_prefix() { + local NVM_IOJS_PREFIX + NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" + if [ "_$1" = "_$NVM_IOJS_PREFIX" ]; then + echo + else + echo "$1" | command sed "s/^$NVM_IOJS_PREFIX-//" + fi +} + nvm_ls() { local PATTERN PATTERN="$1" @@ -1202,6 +1212,7 @@ nvm() { "unload" ) unset -f nvm nvm_print_versions nvm_checksum \ nvm_iojs_prefix nvm_node_prefix \ + nvm_strip_iojs_prefix \ nvm_is_iojs_version \ nvm_ls_remote nvm_ls nvm_remote_version \ nvm_version nvm_rc_version \ diff --git a/test/fast/Unit tests/nvm_strip_iojs_prefix b/test/fast/Unit tests/nvm_strip_iojs_prefix new file mode 100755 index 0000000..782fbc4 --- /dev/null +++ b/test/fast/Unit tests/nvm_strip_iojs_prefix @@ -0,0 +1,10 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +[ "_$(nvm_strip_iojs_prefix iojs)" = "_" ] || die '"nvm_strip_iojs_prefix iojs" did not return an empty string' +[ "_$(nvm_strip_iojs_prefix iojs-)" = "_" ] || die '"nvm_strip_iojs_prefix iojs-" did not return an empty string' +[ "_$(nvm_strip_iojs_prefix iojs-foo)" = "_foo" ] || die '"nvm_strip_iojs_prefix iojs-foo" did not return "foo"' +[ "_$(nvm_strip_iojs_prefix iojsfoo)" = "_iojsfoo" ] || die '"nvm_strip_iojs_prefix iojsfoo" did not return "iojsfoo"' From b7983842aa15c1c4d27235b945226477c44f8d3a Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 13 Jan 2015 00:57:32 -0800 Subject: [PATCH 0332/1426] Add `nvm_add_iojs_prefix` --- nvm.sh | 6 +++++- test/fast/Unit tests/nvm_add_iojs_prefix | 9 +++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100755 test/fast/Unit tests/nvm_add_iojs_prefix diff --git a/nvm.sh b/nvm.sh index f8aea57..73cc0b9 100644 --- a/nvm.sh +++ b/nvm.sh @@ -358,6 +358,10 @@ nvm_is_iojs_version() { [ "_$(echo "$1" | cut -c1-5)" = "_iojs-" ] } +nvm_add_iojs_prefix() { + command echo "$(nvm_iojs_prefix)-$(nvm_ensure_version_prefix "$(nvm_strip_iojs_prefix "$1")")" +} + nvm_strip_iojs_prefix() { local NVM_IOJS_PREFIX NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" @@ -1212,7 +1216,7 @@ nvm() { "unload" ) unset -f nvm nvm_print_versions nvm_checksum \ nvm_iojs_prefix nvm_node_prefix \ - nvm_strip_iojs_prefix \ + nvm_add_iojs_prefix nvm_strip_iojs_prefix \ nvm_is_iojs_version \ nvm_ls_remote nvm_ls nvm_remote_version \ nvm_version nvm_rc_version \ diff --git a/test/fast/Unit tests/nvm_add_iojs_prefix b/test/fast/Unit tests/nvm_add_iojs_prefix new file mode 100755 index 0000000..4a8d1ee --- /dev/null +++ b/test/fast/Unit tests/nvm_add_iojs_prefix @@ -0,0 +1,9 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +[ "_$(nvm_add_iojs_prefix 1)" = "_iojs-v1" ] || die '"nvm_add_iojs_prefix 1" did not return "iojs-v1"' +[ "_$(nvm_add_iojs_prefix iojs-1)" = "_iojs-v1" ] || die '"nvm_add_iojs_prefix iojs-1" did not return "iojs-v1"' +[ "_$(nvm_add_iojs_prefix iojs-1.2.3)" = "_iojs-v1.2.3" ] || die '"nvm_add_iojs_prefix iojs-1.2.3" did not return "iojs-v1.2.3"' From d28703f9e034e11e2a152b2da4fe570c0810eba6 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 12 Jan 2015 18:15:51 -0800 Subject: [PATCH 0333/1426] Update `nvm_ensure_version_prefix` to support `iojs`-prefixed version strings. --- nvm.sh | 8 +++++++- test/fast/Unit tests/nvm_ensure_version_prefix | 3 +++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 73cc0b9..6286960 100644 --- a/nvm.sh +++ b/nvm.sh @@ -211,7 +211,13 @@ nvm_normalize_version() { } nvm_ensure_version_prefix() { - echo "$1" | command sed -e 's/^\([0-9]\)/v\1/g' + local NVM_VERSION + NVM_VERSION="$(nvm_strip_iojs_prefix "$1" | command sed -e 's/^\([0-9]\)/v\1/g')" + if nvm_is_iojs_version "$1"; then + echo "$(nvm_add_iojs_prefix "$NVM_VERSION")" + else + echo "$NVM_VERSION" + fi } nvm_format_version() { diff --git a/test/fast/Unit tests/nvm_ensure_version_prefix b/test/fast/Unit tests/nvm_ensure_version_prefix index 72b301c..184ddea 100755 --- a/test/fast/Unit tests/nvm_ensure_version_prefix +++ b/test/fast/Unit tests/nvm_ensure_version_prefix @@ -7,3 +7,6 @@ die () { echo $@ ; exit 1; } [ "_$(nvm_ensure_version_prefix 1)" = "_v1" ] || die '"nvm_ensure_version_prefix 1" did not return "v1"' [ "_$(nvm_ensure_version_prefix v1)" = "_v1" ] || die '"nvm_ensure_version_prefix v1" did not return "v1"' [ "_$(nvm_ensure_version_prefix foo)" = "_foo" ] || die '"nvm_ensure_version_prefix foo" did not return "foo"' + +[ "_$(nvm_ensure_version_prefix iojs-1)" = "_iojs-v1" ] || die '"nvm_ensure_version_prefix iojs-1" did not return "iojs-v1"' +[ "_$(nvm_ensure_version_prefix iojs-v1)" = "_iojs-v1" ] || die '"nvm_ensure_version_prefix iojs-v1" did not return "iojs-v1"' From f661617f1cb762acd5dc9771c7ac126004a1ae87 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 12 Jan 2015 18:16:11 -0800 Subject: [PATCH 0334/1426] Make `nvm_ls foo` work with `iojs`-prefixed version strings. --- nvm.sh | 15 ++++++++++++--- ...s\" should display all installed versions." | 18 ++++++++++++------ 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/nvm.sh b/nvm.sh index 6286960..4c027ed 100644 --- a/nvm.sh +++ b/nvm.sh @@ -416,7 +416,12 @@ nvm_ls() { local NVM_DIRS_TO_TEST_AND_SEARCH local NVM_DIRS_TO_SEARCH - NVM_DIRS_TO_TEST_AND_SEARCH="$(nvm_version_dir old) $(nvm_version_dir new)" + if nvm_is_iojs_version "$PATTERN"; then + NVM_DIRS_TO_TEST_AND_SEARCH="$(nvm_version_dir iojs)" + PATTERN="$(nvm_strip_iojs_prefix "$PATTERN")" + else + NVM_DIRS_TO_TEST_AND_SEARCH="$(nvm_version_dir old) $(nvm_version_dir new) $(nvm_version_dir iojs)" + fi for NVM_VERSION_DIR in $NVM_DIRS_TO_TEST_AND_SEARCH; do if [ -d "$NVM_VERSION_DIR" ]; then NVM_DIRS_TO_SEARCH="$NVM_VERSION_DIR $NVM_DIRS_TO_SEARCH" @@ -427,12 +432,16 @@ nvm_ls() { PATTERN='v' fi VERSIONS="$(command find $NVM_DIRS_TO_SEARCH -maxdepth 1 -type d -name "$PATTERN*" \ + | command sed "s#$(nvm_version_dir iojs)/#"$(nvm_iojs_prefix)"-#" \ | command sed "s#^$NVM_DIR/##" \ | command grep -v -e '^versions$' \ + | command sed 's#^versions/##' \ | sed -e 's/^v/node-v/' \ - | command sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n \ + | sed -e 's#^\(iojs\)[-/]v#\1.v#' | sed -e 's#^\(node\)[-/]v#\1.v#' \ + | command sort -t. -u -k 2.2,2n -k 3,3n -k 4,4n \ | command sort -s -t- -k1.1,1.1 \ - | command sed 's/^node-//')" + | command sed 's/^\(iojs\)\./\1-/' \ + | command sed 's/^node\.//')" if [ $ZHS_HAS_SHWORDSPLIT_UNSET -eq 1 ] && nvm_has "unsetopt"; then unsetopt shwordsplit diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." "b/test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." index be0dddb..e7cc3f7 100755 --- "a/test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." +++ "b/test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." @@ -8,11 +8,17 @@ mkdir ../../../v0.0.9 mkdir ../../../v0.3.1 mkdir ../../../v0.3.3 mkdir ../../../v0.3.9 +mkdir -p ../../../versions/node/v0.12.87 +mkdir -p ../../../versions/node/v0.12.9 +mkdir -p ../../../versions/io.js/v0.1.2 +mkdir -p ../../../versions/io.js/v0.10.2 # The result should contain the version numbers. -nvm ls | grep v0.0.1 && -nvm ls | grep v0.0.3 && -nvm ls | grep v0.0.9 && -nvm ls | grep v0.3.1 && -nvm ls | grep v0.3.3 && -nvm ls | grep v0.3.9 +nvm ls | grep v0.0.1 >/dev/null && +nvm ls | grep v0.0.3 >/dev/null && +nvm ls | grep v0.0.9 >/dev/null && +nvm ls | grep v0.3.1 >/dev/null && +nvm ls | grep v0.3.3 >/dev/null && +nvm ls | grep v0.3.9 >/dev/null && +nvm ls | grep v0.12.87 >/dev/null && +nvm ls | grep iojs-v0.1.2 >/dev/null From 3d5ded18154fbdbef1083903514b3e258006b4c8 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 12 Jan 2015 23:57:45 -0800 Subject: [PATCH 0335/1426] Update the way `nvm_ls` sorts things. --- nvm.sh | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/nvm.sh b/nvm.sh index 66047cf..02bd0c4 100644 --- a/nvm.sh +++ b/nvm.sh @@ -347,7 +347,7 @@ nvm_resolve_alias() { nvm_ls() { local PATTERN - PATTERN=$1 + PATTERN="$1" local VERSIONS VERSIONS='' if [ "$PATTERN" = 'current' ]; then @@ -373,13 +373,6 @@ nvm_ls() { PATTERN="$(echo "$PATTERN" | command sed -e 's/\.*$//g')." fi fi - local NVM_DIRS_TO_SEARCH - NVM_DIRS_TO_SEARCH="$(nvm_version_dir old)/" - for NVM_VERSION_DIR in "$(nvm_version_dir new)"; do - if [ -d "$NVM_VERSION_DIR" ]; then - NVM_DIRS_TO_SEARCH="$NVM_VERSION_DIR/ $NVM_DIRS_TO_SEARCH" - fi - done local ZHS_HAS_SHWORDSPLIT_UNSET ZHS_HAS_SHWORDSPLIT_UNSET=1 @@ -388,11 +381,25 @@ nvm_ls() { setopt shwordsplit fi - VERSIONS="$(command find $NVM_DIRS_TO_SEARCH -maxdepth 1 -type d -name "$PATTERN*" -exec basename '{}' ';' \ - | command sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n \ - | command grep -v '^ *\.' \ - | command grep -e '^v' \ - | command grep -v -e '^versions$')" + local NVM_DIRS_TO_TEST_AND_SEARCH + local NVM_DIRS_TO_SEARCH + NVM_DIRS_TO_TEST_AND_SEARCH="$(nvm_version_dir old) $(nvm_version_dir new)" + for NVM_VERSION_DIR in $NVM_DIRS_TO_TEST_AND_SEARCH; do + if [ -d "$NVM_VERSION_DIR" ]; then + NVM_DIRS_TO_SEARCH="$NVM_VERSION_DIR $NVM_DIRS_TO_SEARCH" + fi + done + + if [ -z "$PATTERN" ]; then + PATTERN='v' + fi + VERSIONS="$(command find $NVM_DIRS_TO_SEARCH -maxdepth 1 -type d -name "$PATTERN*" \ + | command sed "s#^$NVM_DIR/##" \ + | command grep -v -e '^versions$' \ + | sed -e 's/^v/node-v/' \ + | command sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n \ + | command sort -s -t- -k1.1,1.1 \ + | command sed 's/^node-//')" if [ $ZHS_HAS_SHWORDSPLIT_UNSET -eq 1 ] && nvm_has "unsetopt"; then unsetopt shwordsplit @@ -400,7 +407,7 @@ nvm_ls() { fi if nvm_has_system_node; then - if [ -z "$PATTERN" ]; then + if [ -z "$PATTERN" ] || [ "_$PATTERN" = "_v" ]; then VERSIONS="$VERSIONS$(command printf '\n%s' 'system')" elif [ "$PATTERN" = 'system' ]; then VERSIONS="$(command printf '%s' 'system')" From 5c336a7ccb38d60f4825dcddbbe6682f581dd4ff Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 13 Jan 2015 00:49:31 -0800 Subject: [PATCH 0336/1426] Make `nvm_print_versions` support iojs via `nvm_version_path`. --- nvm.sh | 14 ++++++++------ test/fast/Unit tests/nvm_version_path | 1 + 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/nvm.sh b/nvm.sh index 4c027ed..662b603 100644 --- a/nvm.sh +++ b/nvm.sh @@ -164,6 +164,8 @@ nvm_version_path() { if [ -z "$VERSION" ]; then echo "version is required" >&2 return 3 + elif nvm_is_iojs_version "$VERSION"; then + echo "$(nvm_version_dir iojs)/$(nvm_strip_iojs_prefix "$VERSION")" elif nvm_version_greater 0.12.0 "$VERSION"; then echo "$(nvm_version_dir old)/$VERSION" else @@ -515,14 +517,14 @@ nvm_print_versions() { local NVM_CURRENT NVM_CURRENT=$(nvm_ls_current) echo "$1" | while read VERSION; do - if [ "$VERSION" = "$NVM_CURRENT" ]; then - FORMAT='\033[0;32m-> %9s\033[0m' - elif [ -d "$(nvm_version_path "$VERSION" 2> /dev/null)" ]; then - FORMAT='\033[0;34m%12s\033[0m' + if [ "_$VERSION" = "_$NVM_CURRENT" ]; then + FORMAT='\033[0;32m-> %12s\033[0m' elif [ "$VERSION" = "system" ]; then - FORMAT='\033[0;33m%12s\033[0m' + FORMAT='\033[0;33m%15s\033[0m' + elif [ -d "$(nvm_version_path "$VERSION" 2> /dev/null)" ]; then + FORMAT='\033[0;34m%15s\033[0m' else - FORMAT='%12s' + FORMAT='%15s' fi printf "$FORMAT\n" $VERSION done diff --git a/test/fast/Unit tests/nvm_version_path b/test/fast/Unit tests/nvm_version_path index f3ca584..547ceb8 100755 --- a/test/fast/Unit tests/nvm_version_path +++ b/test/fast/Unit tests/nvm_version_path @@ -8,4 +8,5 @@ die () { echo $@ ; exit 1; } [ "$(nvm_version_path 2>&1)" = "version is required" ] || die '"nvm_version_path" did not error out' [ "$(nvm_version_path v0.11.0)" = "$NVM_DIR/v0.11.0" ] || die 'old version has the wrong path' [ "$(nvm_version_path v0.12.0)" = "$NVM_DIR/versions/node/v0.12.0" ] || die 'new version has the wrong path' +[ "$(nvm_version_path iojs-v0.12.0)" = "$NVM_DIR/versions/io.js/v0.12.0" ] || die 'iojs version has the wrong path' From 5143de9653a943e7fece1435876b654358c32f62 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 13 Jan 2015 01:04:45 -0800 Subject: [PATCH 0337/1426] Make `nvm_ls_current` work with `iojs`-prefixed versions. --- nvm.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 662b603..6c1a88a 100644 --- a/nvm.sh +++ b/nvm.sh @@ -289,9 +289,11 @@ nvm_ls_current() { NVM_LS_CURRENT_NODE_PATH="$(command which node 2> /dev/null)" if [ $? -ne 0 ]; then echo 'none' + elif nvm_tree_contains_path "$(nvm_version_dir iojs)" "$NVM_LS_CURRENT_NODE_PATH"; then + echo "$(nvm_add_iojs_prefix $(iojs --version 2>/dev/null))" elif nvm_tree_contains_path "$NVM_DIR" "$NVM_LS_CURRENT_NODE_PATH"; then local VERSION - VERSION="$(node -v 2>/dev/null)" + VERSION="$(node --version 2>/dev/null)" if [ "$VERSION" = "v0.6.21-pre" ]; then echo "v0.6.21" else From d70f0357f5a1344efb935857834e6fae67fdea8c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 13 Jan 2015 02:14:29 -0800 Subject: [PATCH 0338/1426] Add `nvm_ls_remote_iojs` and `nvm ls-remote` support for iojs. --- nvm.sh | 48 +++++++++++++++++++++---- test/fast/Unit tests/nvm_ls_remote_iojs | 34 ++++++++++++++++++ 2 files changed, 76 insertions(+), 6 deletions(-) create mode 100755 test/fast/Unit tests/nvm_ls_remote_iojs diff --git a/nvm.sh b/nvm.sh index 6c1a88a..370517c 100644 --- a/nvm.sh +++ b/nvm.sh @@ -71,6 +71,13 @@ if [ -z "$NVM_NODEJS_ORG_MIRROR" ]; then export NVM_NODEJS_ORG_MIRROR="https://nodejs.org/dist" fi +if [ -z "$NVM_IOJS_ORG_MIRROR" ]; then + export NVM_IOJS_ORG_MIRROR="https://iojs.org/dist" +fi +if [ -z "$NVM_IOJS_ORG_VERSION_LISTING" ]; then + export NVM_IOJS_ORG_VERSION_LISTING="$NVM_IOJS_ORG_MIRROR/index.tab" +fi + nvm_tree_contains_path() { local tree tree="$1" @@ -490,7 +497,28 @@ nvm_ls_remote() { return 3 fi echo "$VERSIONS" - return +} + +nvm_ls_remote_iojs() { + local PATTERN + PATTERN="$1" + local VERSIONS + if [ -n "$PATTERN" ]; then + PATTERN="$(nvm_ensure_version_prefix $(nvm_strip_iojs_prefix "$PATTERN"))" + else + PATTERN=".*" + fi + VERSIONS="$(nvm_download -L -s $NVM_IOJS_ORG_VERSION_LISTING -o - \ + | command sed 1d \ + | command sed "s/^/$(nvm_iojs_prefix)-/" \ + | command cut -f1 \ + | command grep -w "$PATTERN" \ + | command sort)" + if [ -z "$VERSIONS" ]; then + echo "N/A" + return 3 + fi + echo "$VERSIONS" } nvm_checksum() { @@ -1083,11 +1111,19 @@ nvm() { return $NVM_LS_EXIT_CODE ;; "ls-remote" | "list-remote" ) - local NVM_LS_EXIT_CODE - NVM_LS_OUTPUT=$(nvm_ls_remote "$2") - NVM_LS_EXIT_CODE=$? - nvm_print_versions "$NVM_LS_OUTPUT" - return $NVM_LS_EXIT_CODE + local NVM_LS_REMOTE_OUTPUT + local NVM_LS_REMOTE_EXIT_CODE + NVM_LS_REMOTE_OUTPUT=$(nvm_ls_remote "$2") + NVM_LS_REMOTE_EXIT_CODE=$? + nvm_print_versions "$NVM_LS_REMOTE_OUTPUT" + + local NVM_LS_REMOTE_IOJS_OUTPUT + local NVM_LS_REMOTE_IOJS_EXIT_CODE + NVM_LS_REMOTE_IOJS_OUTPUT=$(nvm_ls_remote_iojs "$2") + NVM_LS_REMOTE_IOJS_EXIT_CODE=$? + nvm_print_versions "$NVM_LS_REMOTE_IOJS_OUTPUT" + + return $NVM_LS_REMOTE_EXIT_CODE && $NVM_LS_REMOTE_IOJS_EXIT_CODE ;; "current" ) nvm_version current diff --git a/test/fast/Unit tests/nvm_ls_remote_iojs b/test/fast/Unit tests/nvm_ls_remote_iojs new file mode 100755 index 0000000..bd104f1 --- /dev/null +++ b/test/fast/Unit tests/nvm_ls_remote_iojs @@ -0,0 +1,34 @@ +#!/bin/sh + +die () { echo $@ ; cleanup ; exit 1; } + +cleanup() { + unset -f nvm_download +} + +. ../../../nvm.sh + +# sample output at the time the test was written +nvm_download() { + echo 'version date files npm v8 uv zlib openssl modules' + echo 'v1.0.1 2015-01-14 linux-armv7l,linux-x64,linux-x86,osx-x64-tar,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi' + echo 'v1.0.0 2015-01-14 linux-armv7l,linux-x64,linux-x86,osx-x64-tar,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi' +} + +OUTPUT="$(nvm_ls_remote_iojs foo)" +EXIT_CODE="$(nvm_ls_remote_iojs foo >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_N/A" ] || die "nonexistent version did not report N/A" +[ "_$EXIT_CODE" = "_3" ] || die "nonexistent version did not exit with code 3, got $EXIT_CODE" + +OUTPUT="$(nvm_ls_remote_iojs)" +EXPECTED_OUTPUT="$(nvm_download | \egrep -o 'v[0-9]+\.[0-9]+\.[0-9]+' | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n | sed -e 's/^/iojs-/')" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "bare nvm_ls_remote_iojs did not output expected sorted versions; got $(echo "$OUTPUT") expected $(echo "$EXPECTED_OUTPUT")" + +OUTPUT="$(nvm_ls_remote_iojs 1.0)" +EXPECTED_OUTPUT="iojs-v1.0.0 +iojs-v1.0.1" + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote_iojs 1.0 did not output 1.0.x versions; got $OUTPUT" + +cleanup + From 58ab2c31284cdcac19ead47e34bebd4970da0b55 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 13 Jan 2015 02:22:22 -0800 Subject: [PATCH 0339/1426] Add iojs support to `nvm_remote_version` --- nvm.sh | 8 ++++++-- test/fast/Unit tests/nvm_remote_version | 27 ++++++++++++++++++++----- 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/nvm.sh b/nvm.sh index 370517c..f81c7b7 100644 --- a/nvm.sh +++ b/nvm.sh @@ -207,8 +207,12 @@ nvm_remote_version() { local PATTERN PATTERN="$1" local VERSION - VERSION="$(nvm_ls_remote "$PATTERN" | tail -n1)" - echo "$VERSION" + if nvm_is_iojs_version "$PATTERN"; then + VERSION="$(nvm_ls_remote_iojs "$PATTERN")" + else + VERSION="$(nvm_ls_remote "$PATTERN")" + fi + echo "$VERSION" | tail -n1 if [ "_$VERSION" = '_N/A' ]; then return 3 diff --git a/test/fast/Unit tests/nvm_remote_version b/test/fast/Unit tests/nvm_remote_version index f7fc377..16b6e3c 100755 --- a/test/fast/Unit tests/nvm_remote_version +++ b/test/fast/Unit tests/nvm_remote_version @@ -3,7 +3,7 @@ die () { echo $@ ; cleanup ; exit 1; } cleanup() { - unset -f nvm_ls_remote + unset -f nvm_ls_remote nvm_ls_remote_iojs } . ../../../nvm.sh @@ -11,25 +11,42 @@ cleanup() { nvm_ls_remote() { echo "N/A" } - OUTPUT="$(nvm_remote_version foo)" EXIT_CODE="$(nvm_remote_version foo >/dev/null 2>&1 ; echo $?)" - [ "_$OUTPUT" = "_N/A" ] || die "nonexistent version did not report N/A" [ "_$EXIT_CODE" = "_3" ] || die "nonexistent version did not exit with code 3, got $EXIT_CODE" +nvm_ls_remote_iojs() { + echo "N/A" +} +OUTPUT="$(nvm_remote_version iojs-foo)" +EXIT_CODE="$(nvm_remote_version iojs-foo >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_N/A" ] || die "nonexistent version did not report N/A" +[ "_$EXIT_CODE" = "_3" ] || die "nonexistent version did not exit with code 3, got $EXIT_CODE" + + nvm_ls_remote() { echo "test output" echo "more test output" echo "pattern received: _$1_" } - OUTPUT="$(nvm_remote_version foo)" EXIT_CODE="$(nvm_remote_version foo >/dev/null 2>&1 ; echo $?)" - [ "_$OUTPUT" = "_pattern received: _foo_" ] \ || die "nvm_remote_version foo did not return last line only of nvm_ls_remote foo; got $OUTPUT" [ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_version foo did not exit with 0, got $EXIT_CODE" +nvm_ls_remote_iojs() { + echo "test iojs output" + echo "more iojs test output" + echo "iojs pattern received: _$1_" + +} +OUTPUT="$(nvm_remote_version iojs-foo)" +EXIT_CODE="$(nvm_remote_version iojs-foo >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_iojs pattern received: _iojs-foo_" ] \ + || die "nvm_remote_version iojs-foo did not return last line only of nvm_ls_remote_iojs foo; got $OUTPUT" +[ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_version iojs-foo did not exit with 0, got $EXIT_CODE" + cleanup From 9a57a891b95d49653202daf5aab1898fde6a0d4b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 13 Jan 2015 02:41:55 -0800 Subject: [PATCH 0340/1426] Refactor OS and architecture detection into separate functions. --- nvm.sh | 56 +++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 35 insertions(+), 21 deletions(-) diff --git a/nvm.sh b/nvm.sh index 02bd0c4..7f12ce1 100644 --- a/nvm.sh +++ b/nvm.sh @@ -539,6 +539,32 @@ nvm_print_implicit_alias() { fi } +nvm_get_os() { + local NVM_UNAME + NVM_UNAME="$(uname -a)" + local NVM_OS + case "$NVM_UNAME" in + Linux\ *) NVM_OS=linux ;; + Darwin\ *) NVM_OS=darwin ;; + SunOS\ *) NVM_OS=sunos ;; + FreeBSD\ *) NVM_OS=freebsd ;; + esac + echo "$NVM_OS" +} + +nvm_get_arch() { + local NVM_UNAME + NVM_UNAME="$(uname -a)" + local NVM_ARCH + case "$NVM_UNAME" in + *x86_64*) NVM_ARCH=x64 ;; + *i*86*) NVM_ARCH=x86 ;; + *armv6l*) NVM_ARCH=arm-pi ;; + *) NVM_ARCH="$(uname -m)" ;; + esac + echo "$NVM_ARCH" +} + nvm() { if [ $# -lt 1 ]; then nvm help @@ -546,24 +572,10 @@ nvm() { fi # Try to figure out the os and arch for binary fetching - local uname - uname="$(uname -a)" local os local arch - arch="$(uname -m)" local GREP_OPTIONS GREP_OPTIONS='' - case "$uname" in - Linux\ *) os=linux ;; - Darwin\ *) os=darwin ;; - SunOS\ *) os=sunos ;; - FreeBSD\ *) os=freebsd ;; - esac - case "$uname" in - *x86_64*) arch=x64 ;; - *i*86*) arch=x86 ;; - *armv6l*) arch=arm-pi ;; - esac # initialize local variables local VERSION @@ -617,6 +629,8 @@ nvm() { local version_not_provided version_not_provided=0 local provided_version + local NVM_OS + NVM_OS="$(nvm_get_os)" if ! nvm_has "curl" && ! nvm_has "wget"; then echo 'nvm needs curl or wget to proceed.' >&2; @@ -635,12 +649,12 @@ nvm() { shift nobinary=0 - if [ "$1" = "-s" ]; then + if [ "_$1" = "_-s" ]; then nobinary=1 shift fi - if [ "$os" = "freebsd" ]; then + if [ "_$NVM_OS" = "_freebsd" ]; then nobinary=1 fi @@ -692,7 +706,7 @@ nvm() { return $? fi - if [ "$VERSION" = "N/A" ]; then + if [ "_$VERSION" = "_N/A" ]; then echo "Version '$provided_version' not found - try \`nvm ls-remote\` to browse available versions." >&2 return 3 fi @@ -700,9 +714,9 @@ nvm() { # skip binary install if no binary option specified. if [ $nobinary -ne 1 ]; then # shortcut - try the binary if possible. - if [ -n "$os" ]; then + if [ -n "$NVM_OS" ]; then if nvm_binary_available "$VERSION"; then - t="$VERSION-$os-$arch" + t="$VERSION-$NVM_OS-$(nvm_get_arch)" url="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-${t}.tar.gz" sum=`nvm_download -L -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt -o - | command grep node-${t}.tar.gz | command awk '{print $1}'` local tmpdir @@ -737,7 +751,7 @@ nvm() { tarball='' sum='' make='make' - if [ "$os" = "freebsd" ]; then + if [ "_$NVM_OS" = "_freebsd" ]; then make='gmake' MAKE_CXX="CXX=c++" fi @@ -804,7 +818,7 @@ nvm() { return; fi - t="$VERSION-$os-$arch" + t="$VERSION-$(nvm_get_os)-$(nvm_get_arch)" # Delete all files related to target version. command rm -rf "$NVM_DIR/src/node-$VERSION" \ From 0e209ce890c1e2f36912980cd55f6511b063e635 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 13 Jan 2015 14:08:56 -0800 Subject: [PATCH 0341/1426] Move "install node binary" logic into `nvm_install_node_binary` function. --- nvm.sh | 76 ++++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 48 insertions(+), 28 deletions(-) diff --git a/nvm.sh b/nvm.sh index 7f12ce1..4f028cb 100644 --- a/nvm.sh +++ b/nvm.sh @@ -565,6 +565,49 @@ nvm_get_arch() { echo "$NVM_ARCH" } +nvm_install_node_binary() { + local VERSION + VERSION="$1" + local REINSTALL_PACKAGES_FROM + REINSTALL_PACKAGES_FROM="$2" + + local VERSION_PATH + VERSION_PATH="$(nvm_version_path "$VERSION")" + local NVM_OS + NVM_OS="$(nvm_get_os)" + local t + local url + local sum + + if [ -n "$NVM_OS" ]; then + if nvm_binary_available "$VERSION"; then + t="$VERSION-$NVM_OS-$(nvm_get_arch)" + url="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-${t}.tar.gz" + sum=`nvm_download -L -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt -o - | command grep node-${t}.tar.gz | command awk '{print $1}'` + local tmpdir + tmpdir="$NVM_DIR/bin/node-${t}" + local tmptarball + tmptarball="$tmpdir/node-${t}.tar.gz" + if ( + command mkdir -p "$tmpdir" && \ + nvm_download -L -C - --progress-bar $url -o "$tmptarball" && \ + nvm_checksum "$tmptarball" $sum && \ + command tar -xzf "$tmptarball" -C "$tmpdir" --strip-components 1 && \ + command rm -f "$tmptarball" && \ + command mv "$tmpdir" "$VERSION_PATH" + ) + then + return 0 + else + echo "Binary download failed, trying source." >&2 + command rm -rf "$tmptarball" "$tmpdir" + return 1 + fi + fi + fi + return 2 +} + nvm() { if [ $# -lt 1 ]; then nvm help @@ -622,7 +665,6 @@ nvm() { # initialize local variables local binavail local t - local url local sum local tarball local nobinary @@ -711,36 +753,14 @@ nvm() { return 3 fi - # skip binary install if no binary option specified. + # skip binary install if "nobinary" option specified. if [ $nobinary -ne 1 ]; then # shortcut - try the binary if possible. - if [ -n "$NVM_OS" ]; then - if nvm_binary_available "$VERSION"; then - t="$VERSION-$NVM_OS-$(nvm_get_arch)" - url="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-${t}.tar.gz" - sum=`nvm_download -L -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt -o - | command grep node-${t}.tar.gz | command awk '{print $1}'` - local tmpdir - tmpdir="$NVM_DIR/bin/node-${t}" - local tmptarball - tmptarball="$tmpdir/node-${t}.tar.gz" - if ( - command mkdir -p "$tmpdir" && \ - nvm_download -L -C - --progress-bar $url -o "$tmptarball" && \ - nvm_checksum "$tmptarball" $sum && \ - command tar -xzf "$tmptarball" -C "$tmpdir" --strip-components 1 && \ - command rm -f "$tmptarball" && \ - command mv "$tmpdir" "$VERSION_PATH" - ) - then - if nvm use "$VERSION" && [ ! -z "$REINSTALL_PACKAGES_FROM" ] && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then - nvm reinstall-packages "$REINSTALL_PACKAGES_FROM" - fi - return $? - else - echo "Binary download failed, trying source." >&2 - command rm -rf "$tmptarball" "$tmpdir" - fi + if nvm_install_node_binary "$VERSION" "$REINSTALL_PACKAGES_FROM"; then + if nvm use "$VERSION" && [ ! -z "$REINSTALL_PACKAGES_FROM" ] && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then + nvm reinstall-packages "$REINSTALL_PACKAGES_FROM" fi + return $? fi fi From b0d6c05d6eefdac590bdf39caf3750150d8ec16a Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 13 Jan 2015 14:19:58 -0800 Subject: [PATCH 0342/1426] Make `nvm ls-remote iojs [foo]` only show iojs versions, and `nvm ls-remote node [foo]` only show node versions. --- nvm.sh | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/nvm.sh b/nvm.sh index f81c7b7..23e82dd 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1115,17 +1115,33 @@ nvm() { return $NVM_LS_EXIT_CODE ;; "ls-remote" | "list-remote" ) - local NVM_LS_REMOTE_OUTPUT - local NVM_LS_REMOTE_EXIT_CODE - NVM_LS_REMOTE_OUTPUT=$(nvm_ls_remote "$2") - NVM_LS_REMOTE_EXIT_CODE=$? - nvm_print_versions "$NVM_LS_REMOTE_OUTPUT" + local PATTERN + PATTERN="$2" + local NVM_FLAVOR + case "_$PATTERN" in + "_$(nvm_iojs_prefix)" | "_$(nvm_node_prefix)" ) + NVM_FLAVOR="$PATTERN" + PATTERN="$3" + ;; + esac + + local NVM_LS_REMOTE_EXIT_CODE + NVM_LS_REMOTE_EXIT_CODE=0 + if [ "_$NVM_FLAVOR" != "_$(nvm_iojs_prefix)" ]; then + local NVM_LS_REMOTE_OUTPUT + NVM_LS_REMOTE_OUTPUT=$(nvm_ls_remote "$PATTERN") + NVM_LS_REMOTE_EXIT_CODE=$? + nvm_print_versions "$NVM_LS_REMOTE_OUTPUT" + fi - local NVM_LS_REMOTE_IOJS_OUTPUT local NVM_LS_REMOTE_IOJS_EXIT_CODE - NVM_LS_REMOTE_IOJS_OUTPUT=$(nvm_ls_remote_iojs "$2") - NVM_LS_REMOTE_IOJS_EXIT_CODE=$? - nvm_print_versions "$NVM_LS_REMOTE_IOJS_OUTPUT" + NVM_LS_REMOTE_IOJS_EXIT_CODE=0 + if [ "_$NVM_FLAVOR" != "_$(nvm_node_prefix)" ]; then + local NVM_LS_REMOTE_IOJS_OUTPUT + NVM_LS_REMOTE_IOJS_OUTPUT=$(nvm_ls_remote_iojs "$PATTERN") + NVM_LS_REMOTE_IOJS_EXIT_CODE=$? + nvm_print_versions "$NVM_LS_REMOTE_IOJS_OUTPUT" + fi return $NVM_LS_REMOTE_EXIT_CODE && $NVM_LS_REMOTE_IOJS_EXIT_CODE ;; From d9340b6a53e92ebbea59523c4db325543bbd6516 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 13 Jan 2015 17:48:15 -0800 Subject: [PATCH 0343/1426] io.js does not have a SunOS binary. --- nvm.sh | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/nvm.sh b/nvm.sh index 23e82dd..2ff6294 100644 --- a/nvm.sh +++ b/nvm.sh @@ -846,10 +846,6 @@ nvm() { shift fi - if [ "_$NVM_OS" = "_freebsd" ]; then - nobinary=1 - fi - provided_version="$1" if [ -z "$provided_version" ]; then @@ -903,6 +899,18 @@ nvm() { return 3 fi + local NVM_IOJS + if nvm_is_iojs_version "$VERSION"; then + NVM_IOJS=true + fi + + if [ "_$NVM_OS" = "_freebsd" ]; then + # node.js and io.js do not have a FreeBSD binary + nobinary=1 + elif [ "_$NVM_OS" = "_sunos" ] && [ "$NVM_IOJS" = true ]; then + # io.js does not have a SunOS binary + nobinary=1 + fi # skip binary install if "nobinary" option specified. if [ $nobinary -ne 1 ] && nvm_install_node_binary "$VERSION" "$REINSTALL_PACKAGES_FROM"; then if nvm use "$VERSION" \ From 41c379839dff538a3ed8955b01a730ccbcd870f6 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 15 Jan 2015 01:38:47 -0800 Subject: [PATCH 0344/1426] Make sure `nvm run` works with iojs prefixes. --- nvm.sh | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 2ff6294..e997da2 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1076,11 +1076,22 @@ nvm() { fi fi - echo "Running node $VERSION" + local NVM_IOJS + if nvm_is_iojs_version "$VERSION"; then + NVM_IOJS=true + fi + local ARGS ARGS="$@" local OUTPUT - OUTPUT="$(nvm use "$VERSION" >/dev/null && node "$ARGS")" + + if [ "$NVM_IOJS" = true ]; then + echo "Running io.js $(nvm_strip_iojs_prefix "$VERSION")" + OUTPUT="$(nvm use "$VERSION" >/dev/null && iojs "$ARGS")" + else + echo "Running node $VERSION" + OUTPUT="$(nvm use "$VERSION" >/dev/null && node "$ARGS")" + fi local EXIT_CODE EXIT_CODE="$?" echo "$OUTPUT" From dd3a3763ce911d4a0e8dca79d2e9f65b490c969c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 16 Jan 2015 10:41:40 -0600 Subject: [PATCH 0345/1426] Add `io.js` support to `nvm uninstall` --- nvm.sh | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/nvm.sh b/nvm.sh index e997da2..faa840a 100644 --- a/nvm.sh +++ b/nvm.sh @@ -926,8 +926,12 @@ nvm() { "uninstall" ) [ $# -ne 2 ] && nvm help && return PATTERN="$(nvm_ensure_version_prefix "$2")" - if [ "_$PATTERN" = "_$(nvm_version)" ]; then - echo "nvm: Cannot uninstall currently-active node version, $PATTERN." >&2 + if [ "_$PATTERN" = "_$(nvm_ls_current)" ]; then + if nvm_is_iojs_version "$PATTERN"; then + echo "nvm: Cannot uninstall currently-active io.js version, $PATTERN." >&2 + else + echo "nvm: Cannot uninstall currently-active node version, $PATTERN." >&2 + fi return 1 fi local VERSION @@ -941,20 +945,25 @@ nvm() { t="$VERSION-$(nvm_get_os)-$(nvm_get_arch)" + local NVM_PREFIX + if nvm_is_iojs_version "$PATTERN"; then + NVM_PREFIX="$(nvm_iojs_prefix)" + else + NVM_PREFIX="$(nvm_node_prefix)" + fi # Delete all files related to target version. - command rm -rf "$NVM_DIR/src/node-$VERSION" \ - "$NVM_DIR/src/node-$VERSION.tar.gz" \ - "$NVM_DIR/bin/node-${t}" \ - "$NVM_DIR/bin/node-${t}.tar.gz" \ + command rm -rf "$NVM_DIR/src/$NVM_PREFIX-$VERSION" \ + "$NVM_DIR/src/$NVM_PREFIX-$VERSION.tar.gz" \ + "$NVM_DIR/bin/$NVM_PREFIX-${t}" \ + "$NVM_DIR/bin/$NVM_PREFIX-${t}.tar.gz" \ "$VERSION_PATH" 2>/dev/null - echo "Uninstalled node $VERSION" + echo "Uninstalled $NVM_PREFIX $VERSION" # Rm any aliases that point to uninstalled version. for ALIAS in `command grep -l $VERSION "$(nvm_alias_path)/*" 2>/dev/null` do nvm unalias "$(command basename "$ALIAS")" done - ;; "deactivate" ) local NEWPATH From 952096d034bfaec3db657132dee0b1cba73772f2 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 13 Jan 2015 17:52:18 -0800 Subject: [PATCH 0346/1426] Add iojs support to "install" --- nvm.sh | 84 +++++++++++++++++-- .../io.js/install already installed uses it | 26 ++++++ test/installation/io.js/install from binary | 19 +++++ ...nstall two versions and use the latest one | 26 ++++++ ...ll version specified in .nvmrc from binary | 24 ++++++ .../io.js/install while reinstalling packages | 32 +++++++ test/installation/io.js/setup_dir | 6 ++ test/installation/io.js/teardown_dir | 14 ++++ .../node 0.6.21 should install 0.6.21-pre | 4 +- 9 files changed, 226 insertions(+), 9 deletions(-) create mode 100755 test/installation/io.js/install already installed uses it create mode 100755 test/installation/io.js/install from binary create mode 100755 test/installation/io.js/install two versions and use the latest one create mode 100755 test/installation/io.js/install version specified in .nvmrc from binary create mode 100755 test/installation/io.js/install while reinstalling packages create mode 100755 test/installation/io.js/setup_dir create mode 100755 test/installation/io.js/teardown_dir diff --git a/nvm.sh b/nvm.sh index faa840a..a64ae36 100644 --- a/nvm.sh +++ b/nvm.sh @@ -643,12 +643,68 @@ nvm_get_arch() { echo "$NVM_ARCH" } +nvm_install_iojs_binary() { + local PREFIXED_VERSION + PREFIXED_VERSION="$1" + local REINSTALL_PACKAGES_FROM + REINSTALL_PACKAGES_FROM="$2" + + if ! nvm_is_iojs_version "$PREFIXED_VERSION"; then + echo 'nvm_install_iojs_binary requires an iojs-prefixed version.' >&2 + return 10 + fi + + local VERSION + VERSION="$(nvm_strip_iojs_prefix "$PREFIXED_VERSION")" + local VERSION_PATH + VERSION_PATH="$(nvm_version_path "$PREFIXED_VERSION")" + local NVM_OS + NVM_OS="$(nvm_get_os)" + local t + local url + local sum + + if [ -n "$NVM_OS" ]; then + if nvm_binary_available "$VERSION"; then + t="$VERSION-$NVM_OS-$(nvm_get_arch)" + url="$NVM_IOJS_ORG_MIRROR/$VERSION/$(nvm_iojs_prefix)-${t}.tar.gz" + sum="$(nvm_download -L -s $NVM_IOJS_ORG_MIRROR/$VERSION/SHASUMS256.txt -o - | command grep $(nvm_iojs_prefix)-${t}.tar.gz | command awk '{print $1}')" + local tmpdir + tmpdir="$NVM_DIR/bin/iojs-${t}" + local tmptarball + tmptarball="$tmpdir/iojs-${t}.tar.gz" + if ( + command mkdir -p "$tmpdir" && \ + nvm_download -L -C - --progress-bar $url -o "$tmptarball" && \ + echo "WARNING: checksums are currently disabled for io.js" >&2 && \ + # nvm_checksum "$tmptarball" $sum && \ + command tar -xzf "$tmptarball" -C "$tmpdir" --strip-components 1 && \ + command rm -f "$tmptarball" && \ + command mkdir -p "$VERSION_PATH" && \ + command mv "$tmpdir"/* "$VERSION_PATH" + ); then + return 0 + else + echo "Binary download failed, trying source." >&2 + command rm -rf "$tmptarball" "$tmpdir" + return 1 + fi + fi + fi + return 2 +} + nvm_install_node_binary() { local VERSION VERSION="$1" local REINSTALL_PACKAGES_FROM REINSTALL_PACKAGES_FROM="$2" + if nvm_is_iojs_version "$PREFIXED_VERSION"; then + echo 'nvm_install_node_binary does not allow an iojs-prefixed version.' >&2 + return 10 + fi + local VERSION_PATH VERSION_PATH="$(nvm_version_path "$VERSION")" local NVM_OS @@ -672,9 +728,9 @@ nvm_install_node_binary() { nvm_checksum "$tmptarball" $sum && \ command tar -xzf "$tmptarball" -C "$tmpdir" --strip-components 1 && \ command rm -f "$tmptarball" && \ - command mv "$tmpdir" "$VERSION_PATH" - ) - then + command mkdir -p "$VERSION_PATH" && \ + command mv "$tmpdir"/* "$VERSION_PATH" + ); then return 0 else echo "Binary download failed, trying source." >&2 @@ -900,7 +956,7 @@ nvm() { fi local NVM_IOJS - if nvm_is_iojs_version "$VERSION"; then + if nvm_is_iojs_version "$VERSION" || [ "_$VERSION" = "_$(nvm_iojs_prefix)" ]; then NVM_IOJS=true fi @@ -912,8 +968,16 @@ nvm() { nobinary=1 fi # skip binary install if "nobinary" option specified. - if [ $nobinary -ne 1 ] && nvm_install_node_binary "$VERSION" "$REINSTALL_PACKAGES_FROM"; then - if nvm use "$VERSION" \ + if [ $nobinary -ne 1 ] && nvm_binary_available "$VERSION"; then + local NVM_INSTALL_SUCCESS + if [ "$NVM_IOJS" = true ] && nvm_install_iojs_binary "$VERSION" "$REINSTALL_PACKAGES_FROM"; then + NVM_INSTALL_SUCCESS=true + elif [ "$NVM_IOJS" != true ] && nvm_install_node_binary "$VERSION" "$REINSTALL_PACKAGES_FROM"; then + NVM_INSTALL_SUCCESS=true + fi + + if [ "$NVM_INSTALL_SUCCESS" = true ] \ + && nvm use "$VERSION" \ && [ ! -z "$REINSTALL_PACKAGES_FROM" ] \ && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then nvm reinstall-packages "$REINSTALL_PACKAGES_FROM" @@ -921,7 +985,13 @@ nvm() { return $? fi - nvm_install_node_source "$VERSION" "$REINSTALL_PACKAGES_FROM" "$ADDITIONAL_PARAMETERS" + if [ "$NVM_IOJS" = true ]; then + # nvm_install_iojs_source "$VERSION" "$REINSTALL_PACKAGES_FROM" "$ADDITIONAL_PARAMETERS" + echo "Installing iojs from source is not currently supported" >&2 + return 105 + else + nvm_install_node_source "$VERSION" "$REINSTALL_PACKAGES_FROM" "$ADDITIONAL_PARAMETERS" + fi ;; "uninstall" ) [ $# -ne 2 ] && nvm help && return diff --git a/test/installation/io.js/install already installed uses it b/test/installation/io.js/install already installed uses it new file mode 100755 index 0000000..07e5487 --- /dev/null +++ b/test/installation/io.js/install already installed uses it @@ -0,0 +1,26 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +[ "$(nvm install invalid.invalid 2>&1)" = "Version 'invalid.invalid' not found - try \`nvm ls-remote\` to browse available versions." ] || die "nvm installing an invalid version did not print a nice error message" + +# Remove the stuff we're clobbering. +[ -e ../../../versions/io.js/v1.0.0 ] && rm -R ../../../versions/io.js/v1.0.0 +[ -e ../../../versions/io.js/v1.0.1 ] && rm -R ../../../versions/io.js/v1.0.1 + +# Install from binary +nvm install iojs-v1.0.0 +nvm install iojs-v1.0.1 + +nvm use iojs-v1.0.0 + +node --version | grep v1.0.0 || die "precondition failed: iojs node doesn't start at v1.0.0" +iojs --version | grep v1.0.0 || die "precondition failed: iojs binary doesn't start at v1.0.0" + +nvm install iojs-v1.0.1 + +node --version | grep v1.0.1 || die "nvm install on already installed version doesn't use it (node binary)" +iojs --version | grep v1.0.1 || die "nvm install on already installed version doesn't use it (iojs binary)" + diff --git a/test/installation/io.js/install from binary b/test/installation/io.js/install from binary new file mode 100755 index 0000000..12cf963 --- /dev/null +++ b/test/installation/io.js/install from binary @@ -0,0 +1,19 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +NVM_TEST_VERSION="v1.0.0" +NVM_PREFIXED_TEST_VERSION="iojs-$NVM_TEST_VERSION" + +# Remove the stuff we're clobbering. +[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION + +# Install from binary +nvm install $NVM_PREFIXED_TEST_VERSION || die "install $NVM_PREFIXED_TEST_VERSION failed" + +# Check +[ -d ../../../versions/io.js/$NVM_TEST_VERSION ] +nvm run $NVM_PREFIXED_TEST_VERSION --version | grep $NVM_TEST_VERSION || die "'nvm run $NVM_PREFIXED_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" + diff --git a/test/installation/io.js/install two versions and use the latest one b/test/installation/io.js/install two versions and use the latest one new file mode 100755 index 0000000..7b60d74 --- /dev/null +++ b/test/installation/io.js/install two versions and use the latest one @@ -0,0 +1,26 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +# Remove the stuff we're clobbering. +[ -e ../../../versions/io.js/v1.0.0 ] && rm -R ../../../versions/io.js/v1.0.0 +[ -e ../../../versions/io.js/v1.0.1 ] && rm -R ../../../versions/io.js/v1.0.1 + +# Install from binary +nvm install iojs-v1.0.0 || die "'nvm install iojs-v1.0.0' failed" +nvm i iojs-v1.0.1 || die "'nvm i iojs-v1.0.1' failed" + +# Check +[ -d ../../../versions/io.js/v1.0.0 ] || die "iojs v1.0.0 didn't exist" +[ -d ../../../versions/io.js/v1.0.1 ] || die "iojs v1.0.1 didn't exist" + +# Use the first one +nvm use iojs-1.0.0 || die "'nvm use iojs-1.0.0' failed" + +# Use the latest one +nvm use iojs-1 || die "'nvm use iojs-1' failed" +[ "_$(node --version)" = "_v1.0.1" ] || die "'node --version' was not v1.0.1, got: $(node --version)" +[ "_$(iojs --version)" = "_v1.0.1" ] || die "'iojs --version' was not v1.0.1, got: $(iojs --version)" + diff --git a/test/installation/io.js/install version specified in .nvmrc from binary b/test/installation/io.js/install version specified in .nvmrc from binary new file mode 100755 index 0000000..dfab909 --- /dev/null +++ b/test/installation/io.js/install version specified in .nvmrc from binary @@ -0,0 +1,24 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +NVM_TEST_VERSION=v1.0.0 +NVM_PREFIXED_TEST_VERSION="iojs-$NVM_TEST_VERSION" +VERSION_PATH="../../../versions/io.js/$NVM_TEST_VERSION" + +# Remove the stuff we're clobbering. +[ -e $VERSION_PATH ] && rm -R $VERSION_PATH + +# Install from binary +echo "$NVM_PREFIXED_TEST_VERSION" > .nvmrc + +nvm install || die "'nvm install' failed" + +# Check +[ -d $VERSION_PATH ] || die "./$VERSION_PATH did not exist" +nvm run $NVM_PREFIXED_TEST_VERSION --version | grep $NVM_TEST_VERSION \ + || "'nvm run $NVM_PREFIXED_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" + + diff --git a/test/installation/io.js/install while reinstalling packages b/test/installation/io.js/install while reinstalling packages new file mode 100755 index 0000000..d7d4ee4 --- /dev/null +++ b/test/installation/io.js/install while reinstalling packages @@ -0,0 +1,32 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +# Remove the stuff we're clobbering. +[ -e ../../../versions/io.js/v1.0.0 ] && rm -R ../../../versions/io.js/v1.0.0 +[ -e ../../../versions/io.js/v1.0.1 ] && rm -R ../../../versions/io.js/v1.0.1 + +# Install from binary +nvm install iojs-v1.0.0 + +# Check +[ -d ../../../versions/io.js/v1.0.0 ] || die "nvm install iojs-v1.0.0 didn't install" + +node --version | grep v1.0.0 > /dev/null || die "nvm install didn't use iojs-v1.0.0" + +npm install -g is-nan@1.0.1 || die "npm install -g is-nan failed" +npm list --global | grep is-nan > /dev/null || die "is-nan isn't installed" + +nvm ls iojs-1 | grep iojs-v1.0.0 > /dev/null || die "nvm ls iojs-1 didn't show iojs-v1.0.0" + +nvm install iojs-v1.0.1 --reinstall-packages-from=iojs-1.0.0 || die "nvm install iojs-v1.0.1 --reinstall-packages-from=iojs-1.0.0 failed" + +[ -d ../../../versions/io.js/v1.0.1 ] || die "nvm install iojs-v1.0.1 didn't install" + +nvm use iojs-1 +node --version | grep v1.0.1 > /dev/null || die "nvm use iojs-1 didn't use v1.0.1" + +npm list --global | grep is-nan > /dev/null || die "is-nan isn't installed" + diff --git a/test/installation/io.js/setup_dir b/test/installation/io.js/setup_dir new file mode 100755 index 0000000..50dc4e4 --- /dev/null +++ b/test/installation/io.js/setup_dir @@ -0,0 +1,6 @@ +#!/bin/sh + +if [ -f ".nvmrc" ]; then + mv .nvmrc .nvmrc.bak +fi + diff --git a/test/installation/io.js/teardown_dir b/test/installation/io.js/teardown_dir new file mode 100755 index 0000000..a7e6f3e --- /dev/null +++ b/test/installation/io.js/teardown_dir @@ -0,0 +1,14 @@ +#!/bin/sh + +. ../../../nvm.sh +nvm deactivate +nvm uninstall iojs-v1.0.0 + +if [ -f ".nvmrc" ]; then + rm .nvmrc +fi + +if [ -f ".nvmrc.bak" ]; then + mv .nvmrc.bak .nvmrc +fi + diff --git a/test/slow/node 0.6.21 should install 0.6.21-pre b/test/slow/node 0.6.21 should install 0.6.21-pre index c579e16..93afff7 100755 --- a/test/slow/node 0.6.21 should install 0.6.21-pre +++ b/test/slow/node 0.6.21 should install 0.6.21-pre @@ -5,6 +5,6 @@ die () { echo $@ ; exit 1; } . ../../nvm.sh nvm install 0.6.21 || die 'v0.6.21 installation failed' -[ "$(node -v)" = "v0.6.21-pre" ] || die "v0.6.21-pre not installed with v0.6.21, got $(node -v)" -[ "$(nvm current)" = "v0.6.21" ] || die "v0.6.21-pre not reported as v0.6.21, got $(nvm current)" +[ "_$(node -v)" = "_v0.6.21-pre" ] || die "v0.6.21-pre not installed with v0.6.21, got $(node -v)" +[ "_$(nvm current)" = "_v0.6.21" ] || die "v0.6.21-pre not reported as v0.6.21, got $(nvm current)" From 797c5ab70b3c084f89c334a6021a05d12668df9b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 13 Jan 2015 17:33:19 -0800 Subject: [PATCH 0347/1426] Move "install node from source" logic into `nvm_install_node_source` function. --- nvm.sh | 151 +++++++++++++++++++++++++++++++-------------------------- 1 file changed, 83 insertions(+), 68 deletions(-) diff --git a/nvm.sh b/nvm.sh index 4f028cb..969f818 100644 --- a/nvm.sh +++ b/nvm.sh @@ -608,6 +608,83 @@ nvm_install_node_binary() { return 2 } +nvm_install_node_source() { + local VERSION + VERSION="$1" + local REINSTALL_PACKAGES_FROM + REINSTALL_PACKAGES_FROM="$2" + local ADDITIONAL_PARAMETERS + ADDITIONAL_PARAMETERS="$3" + + if [ -n "$ADDITIONAL_PARAMETERS" ]; then + echo "Additional options while compiling: $ADDITIONAL_PARAMETERS" + fi + + local VERSION_PATH + VERSION_PATH="$(nvm_version_path "$VERSION")" + local NVM_OS + NVM_OS="$(nvm_get_os)" + + local tarball + tarball='' + local sum + sum='' + local make + make='make' + if [ "_$NVM_OS" = "_freebsd" ]; then + make='gmake' + MAKE_CXX="CXX=c++" + fi + local tmpdir + tmpdir="$NVM_DIR/src" + local tmptarball + tmptarball="$tmpdir/node-$VERSION.tar.gz" + + if [ "`nvm_download -L -s -I "$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" -o - 2>&1 | command grep '200 OK'`" != '' ]; then + tarball="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" + sum=`nvm_download -L -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt -o - | command grep "node-$VERSION.tar.gz" | command awk '{print $1}'` + elif [ "`nvm_download -L -s -I "$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" -o - | command grep '200 OK'`" != '' ]; then + tarball="$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" + fi + + if ( + [ -n "$tarball" ] && \ + command mkdir -p "$tmpdir" && \ + nvm_download -L --progress-bar $tarball -o "$tmptarball" && \ + nvm_checksum "$tmptarball" $sum && \ + command tar -xzf "$tmptarball" -C "$tmpdir" && \ + cd "$tmpdir/node-$VERSION" && \ + ./configure --prefix="$VERSION_PATH" $ADDITIONAL_PARAMETERS && \ + $make $MAKE_CXX && \ + command rm -f "$VERSION_PATH" 2>/dev/null && \ + $make $MAKE_CXX install + ) + then + if nvm use "$VERSION" && [ ! -z "$REINSTALL_PACKAGES_FROM" ] && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then + nvm reinstall-packages "$REINSTALL_PACKAGES_FROM" + fi + if ! nvm_has "npm" ; then + echo "Installing npm..." + if nvm_version_greater 0.2.0 "$VERSION"; then + echo "npm requires node v0.2.3 or higher" >&2 + elif nvm_version_greater_than_or_equal_to "$VERSION" 0.2.0; then + if nvm_version_greater 0.2.3 "$VERSION"; then + echo "npm requires node v0.2.3 or higher" >&2 + else + nvm_download -L https://npmjs.org/install.sh -o - | clean=yes npm_install=0.2.19 sh + fi + else + nvm_download -L https://npmjs.org/install.sh -o - | clean=yes sh + fi + fi + else + echo "nvm: install $VERSION failed!" >&2 + return 1 + fi + + return $? +} + nvm() { if [ $# -lt 1 ]; then nvm help @@ -662,11 +739,6 @@ nvm() { ;; "install" | "i" ) - # initialize local variables - local binavail - local t - local sum - local tarball local nobinary local version_not_provided version_not_provided=0 @@ -754,73 +826,16 @@ nvm() { fi # skip binary install if "nobinary" option specified. - if [ $nobinary -ne 1 ]; then - # shortcut - try the binary if possible. - if nvm_install_node_binary "$VERSION" "$REINSTALL_PACKAGES_FROM"; then - if nvm use "$VERSION" && [ ! -z "$REINSTALL_PACKAGES_FROM" ] && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then - nvm reinstall-packages "$REINSTALL_PACKAGES_FROM" - fi - return $? - fi - fi - - if [ -n "$ADDITIONAL_PARAMETERS" ]; then - echo "Additional options while compiling: $ADDITIONAL_PARAMETERS" - fi - - tarball='' - sum='' - make='make' - if [ "_$NVM_OS" = "_freebsd" ]; then - make='gmake' - MAKE_CXX="CXX=c++" - fi - local tmpdir - tmpdir="$NVM_DIR/src" - local tmptarball - tmptarball="$tmpdir/node-$VERSION.tar.gz" - if [ "`nvm_download -L -s -I "$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" -o - 2>&1 | command grep '200 OK'`" != '' ]; then - tarball="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" - sum=`nvm_download -L -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt -o - | command grep node-$VERSION.tar.gz | command awk '{print $1}'` - elif [ "`nvm_download -L -s -I "$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" -o - | command grep '200 OK'`" != '' ]; then - tarball="$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" - fi - if ( - [ -n "$tarball" ] && \ - command mkdir -p "$tmpdir" && \ - nvm_download -L --progress-bar $tarball -o "$tmptarball" && \ - nvm_checksum "$tmptarball" $sum && \ - command tar -xzf "$tmptarball" -C "$tmpdir" && \ - cd "$tmpdir/node-$VERSION" && \ - ./configure --prefix="$VERSION_PATH" $ADDITIONAL_PARAMETERS && \ - $make $MAKE_CXX && \ - command rm -f "$VERSION_PATH" 2>/dev/null && \ - $make $MAKE_CXX install - ) - then - if nvm use "$VERSION" && [ ! -z "$REINSTALL_PACKAGES_FROM" ] && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then + if [ $nobinary -ne 1 ] && nvm_install_node_binary "$VERSION" "$REINSTALL_PACKAGES_FROM"; then + if nvm use "$VERSION" \ + && [ ! -z "$REINSTALL_PACKAGES_FROM" ] \ + && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then nvm reinstall-packages "$REINSTALL_PACKAGES_FROM" fi - if ! nvm_has "npm" ; then - echo "Installing npm..." - if nvm_version_greater 0.2.0 "$VERSION"; then - echo "npm requires node v0.2.3 or higher" >&2 - elif nvm_version_greater_than_or_equal_to "$VERSION" 0.2.0; then - if nvm_version_greater 0.2.3 "$VERSION"; then - echo "npm requires node v0.2.3 or higher" >&2 - else - nvm_download -L https://npmjs.org/install.sh -o - | clean=yes npm_install=0.2.19 sh - fi - else - nvm_download -L https://npmjs.org/install.sh -o - | clean=yes sh - fi - fi - else - echo "nvm: install $VERSION failed!" >&2 - return 1 + return $? fi - return $? + nvm_install_node_source "$VERSION" "$REINSTALL_PACKAGES_FROM" "$ADDITIONAL_PARAMETERS" ;; "uninstall" ) [ $# -ne 2 ] && nvm help && return From d5e21be1648e8c9eeac2e04f592ea9051b01b345 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 13 Jan 2015 23:51:54 -0800 Subject: [PATCH 0348/1426] Add `nvm_ensure_version_prefix` unit tests. --- test/fast/Unit tests/nvm_ensure_version_prefix | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100755 test/fast/Unit tests/nvm_ensure_version_prefix diff --git a/test/fast/Unit tests/nvm_ensure_version_prefix b/test/fast/Unit tests/nvm_ensure_version_prefix new file mode 100755 index 0000000..72b301c --- /dev/null +++ b/test/fast/Unit tests/nvm_ensure_version_prefix @@ -0,0 +1,9 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +[ "_$(nvm_ensure_version_prefix 1)" = "_v1" ] || die '"nvm_ensure_version_prefix 1" did not return "v1"' +[ "_$(nvm_ensure_version_prefix v1)" = "_v1" ] || die '"nvm_ensure_version_prefix v1" did not return "v1"' +[ "_$(nvm_ensure_version_prefix foo)" = "_foo" ] || die '"nvm_ensure_version_prefix foo" did not return "foo"' From 0ad5a450fe388a29def9a1f51665f118ad287849 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 14 Jan 2015 12:23:06 -0800 Subject: [PATCH 0349/1426] Put node versions >= 0.12 in `versions/node` instead of just `versions` --- nvm.sh | 2 +- ...ning \"nvm which 0.0.2\" should display only version 0.0.2." | 2 +- .../Running \"nvm ls\" should filter out \"versions\"" | 2 +- ...nvm ls\" should list versions in the \"versions\" directory" | 2 +- test/fast/Unit tests/nvm_version_dir | 2 +- test/fast/Unit tests/nvm_version_path | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/nvm.sh b/nvm.sh index 969f818..55bcae5 100644 --- a/nvm.sh +++ b/nvm.sh @@ -143,7 +143,7 @@ nvm_version_dir() { local NVM_WHICH_DIR NVM_WHICH_DIR="$1" if [ -z "$NVM_WHICH_DIR" ] || [ "_$NVM_WHICH_DIR" = "_new" ]; then - echo "$NVM_DIR/versions" + echo "$NVM_DIR/versions/node" elif [ "_$NVM_WHICH_DIR" = "_old" ]; then echo "$NVM_DIR" else diff --git "a/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." "b/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." index 7b410c5..333782e 100755 --- "a/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." +++ "b/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." @@ -2,7 +2,7 @@ mkdir -p ../../../v0.0.2 mkdir -p ../../../v0.0.20 -mkdir -p ../../../versions/v0.12.0 +mkdir -p ../../../versions/node/v0.12.0 . ../../../nvm.sh diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" "b/test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" index 0652c6b..c4d61bd 100755 --- "a/test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" +++ "b/test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" @@ -2,7 +2,7 @@ mkdir ../../../v0.1.3 mkdir ../../../v0.2.3 -mkdir ../../../versions +mkdir -p ../../../versions/node . ../../../nvm.sh diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" "b/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" index eb8f2ba..8368b1e 100755 --- "a/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" +++ "b/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -mkdir -p ../../../versions/v0.12.1 +mkdir -p ../../../versions/node/v0.12.1 mkdir ../../../v0.1.3 . ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_version_dir b/test/fast/Unit tests/nvm_version_dir index fb070ce..f6346fa 100755 --- a/test/fast/Unit tests/nvm_version_dir +++ b/test/fast/Unit tests/nvm_version_dir @@ -4,7 +4,7 @@ die () { echo $@ ; exit 1; } . ../../../nvm.sh -[ "$(nvm_version_dir)" = "$NVM_DIR/versions" ] || die '"nvm_version_dir" did not return new dir path' +[ "$(nvm_version_dir)" = "$NVM_DIR/versions/node" ] || die '"nvm_version_dir" did not return new dir path' [ "$(nvm_version_dir new)" = "$(nvm_version_dir)" ] || die '"nvm_version_dir new" did not return new dir path' [ "$(nvm_version_dir old)" = "$NVM_DIR" ] || die '"nvm_version_dir old" did not return old dir path' [ "$(nvm_version_dir foo 2>&1)" = "unknown version dir" ] || die '"nvm_version_dir foo" did not error out' diff --git a/test/fast/Unit tests/nvm_version_path b/test/fast/Unit tests/nvm_version_path index b9fa2e5..f3ca584 100755 --- a/test/fast/Unit tests/nvm_version_path +++ b/test/fast/Unit tests/nvm_version_path @@ -7,5 +7,5 @@ die () { echo $@ ; exit 1; } [ "$(nvm_version_path foo)" = "$NVM_DIR/foo" ] || die '"nvm_version_path foo" did not return correct location' [ "$(nvm_version_path 2>&1)" = "version is required" ] || die '"nvm_version_path" did not error out' [ "$(nvm_version_path v0.11.0)" = "$NVM_DIR/v0.11.0" ] || die 'old version has the wrong path' -[ "$(nvm_version_path v0.12.0)" = "$NVM_DIR/versions/v0.12.0" ] || die 'new version has the wrong path' +[ "$(nvm_version_path v0.12.0)" = "$NVM_DIR/versions/node/v0.12.0" ] || die 'new version has the wrong path' From 448bd38a55f7f485d8649f40885fac2979c7eac5 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 14 Jan 2015 15:44:40 -0800 Subject: [PATCH 0350/1426] v0.22.2 --- README.markdown | 6 +++--- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.markdown b/README.markdown index 82a8296..d3bb5c8 100644 --- a/README.markdown +++ b/README.markdown @@ -12,11 +12,11 @@ Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/n To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.22.1/install.sh | bash + curl https://raw.githubusercontent.com/creationix/nvm/v0.22.2/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.22.1/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.22.2/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -191,7 +191,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.22.1/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.22.2/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin diff --git a/install.sh b/install.sh index 24e2757..e64d552 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ if [ -z "$NVM_DIR" ]; then fi nvm_latest_version() { - echo "v0.22.1" + echo "v0.22.2" } # diff --git a/nvm.sh b/nvm.sh index 55bcae5..c26d229 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1184,7 +1184,7 @@ nvm() { nvm_version $2 ;; "--version" ) - echo "0.22.1" + echo "0.22.2" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version nvm_version_greater nvm_version_greater_than_or_equal_to nvm_supports_source_options > /dev/null 2>&1 diff --git a/package.json b/package.json index 285d4f7..8140b02 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.22.1", + "version": "0.22.2", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From ed22d3de2dd6670cd7c030e24bfbfb0327fa841e Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 16 Jan 2015 11:10:37 -0600 Subject: [PATCH 0351/1426] Add support for `nvm install node` and `nvm install iojs` --- nvm.sh | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/nvm.sh b/nvm.sh index a64ae36..202ce27 100644 --- a/nvm.sh +++ b/nvm.sh @@ -913,7 +913,18 @@ nvm() { shift fi - VERSION="$(nvm_remote_version "$provided_version")" + case "_$provided_version" in + "_$(nvm_iojs_prefix)" | "_io.js") + VERSION="$(nvm_add_iojs_prefix $(nvm_ls_remote_iojs | tail -n1))" + ;; + "_$(nvm_node_prefix)") + VERSION="$(nvm_ls_remote stable)" + ;; + *) + VERSION="$(nvm_remote_version "$provided_version")" + ;; + esac + ADDITIONAL_PARAMETERS='' local PROVIDED_REINSTALL_PACKAGES_FROM local REINSTALL_PACKAGES_FROM @@ -940,6 +951,11 @@ nvm() { return 5 fi + local NVM_IOJS + if nvm_is_iojs_version "$VERSION"; then + NVM_IOJS=true + fi + local VERSION_PATH VERSION_PATH="$(nvm_version_path "$VERSION")" if [ -d "$VERSION_PATH" ]; then @@ -955,11 +971,6 @@ nvm() { return 3 fi - local NVM_IOJS - if nvm_is_iojs_version "$VERSION" || [ "_$VERSION" = "_$(nvm_iojs_prefix)" ]; then - NVM_IOJS=true - fi - if [ "_$NVM_OS" = "_freebsd" ]; then # node.js and io.js do not have a FreeBSD binary nobinary=1 From 78c1f2cf9d4b8bd6a57621390021ab0eaca1dc50 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 16 Jan 2015 15:36:32 -0600 Subject: [PATCH 0352/1426] Split up this `nvm current` and `node 0.6.21-pre` test into separate tests. --- ... current\" should display current nvm environment." | 5 ----- test/slow/node 0.6.21 should install 0.6.21-pre | 10 ++++++++++ 2 files changed, 10 insertions(+), 5 deletions(-) create mode 100755 test/slow/node 0.6.21 should install 0.6.21-pre diff --git "a/test/slow/Running \"nvm current\" should display current nvm environment." "b/test/slow/Running \"nvm current\" should display current nvm environment." index bf43802..05082e3 100755 --- "a/test/slow/Running \"nvm current\" should display current nvm environment." +++ "b/test/slow/Running \"nvm current\" should display current nvm environment." @@ -7,8 +7,3 @@ die () { echo $@ ; exit 1; } nvm install 0.10 [ "$(nvm current)" = "$(node -v)" ] || die "Failed to find current version: got \"$(nvm current)\", expected \"$(node -v)\"" - -nvm install 0.6.21 -[ "$(node -v)" = "v0.6.21-pre" ] || die "v0.6.21-pre not installed with v0.6.21" -[ "$(nvm current)" = "v0.6.21" ] || die "v0.6.21-pre not reported as v0.6.21" - diff --git a/test/slow/node 0.6.21 should install 0.6.21-pre b/test/slow/node 0.6.21 should install 0.6.21-pre new file mode 100755 index 0000000..412ecfa --- /dev/null +++ b/test/slow/node 0.6.21 should install 0.6.21-pre @@ -0,0 +1,10 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../nvm.sh + +nvm install 0.6.21 +[ "$(node -v)" = "v0.6.21-pre" ] || die "v0.6.21-pre not installed with v0.6.21" +[ "$(nvm current)" = "v0.6.21" ] || die "v0.6.21-pre not reported as v0.6.21" + From 96156722435ea4dca7434e5af4757e94c03b6881 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 17 Jan 2015 11:26:52 -0600 Subject: [PATCH 0353/1426] Move node-specific installation tests to their own directory. --- .../{ => node}/install already installed uses it | 6 +++--- test/installation/{ => node}/install from binary | 6 +++--- test/installation/{ => node}/install from source | 6 +++--- .../install two versions and use the latest one | 10 +++++----- .../install version specified in .nvmrc from binary | 6 +++--- .../install version specified in .nvmrc from source | 6 +++--- .../{ => node}/install while reinstalling packages | 10 +++++----- test/installation/{ => node}/setup_dir | 0 test/installation/{ => node}/teardown_dir | 2 +- 9 files changed, 26 insertions(+), 26 deletions(-) rename test/installation/{ => node}/install already installed uses it (83%) rename test/installation/{ => node}/install from binary (74%) rename test/installation/{ => node}/install from source (74%) rename test/installation/{ => node}/install two versions and use the latest one (66%) rename test/installation/{ => node}/install version specified in .nvmrc from binary (68%) rename test/installation/{ => node}/install version specified in .nvmrc from source (68%) rename test/installation/{ => node}/install while reinstalling packages (74%) rename test/installation/{ => node}/setup_dir (100%) rename test/installation/{ => node}/teardown_dir (89%) diff --git a/test/installation/install already installed uses it b/test/installation/node/install already installed uses it similarity index 83% rename from test/installation/install already installed uses it rename to test/installation/node/install already installed uses it index 8a7dd9a..ffcbb02 100755 --- a/test/installation/install already installed uses it +++ b/test/installation/node/install already installed uses it @@ -2,13 +2,13 @@ die () { echo $@ ; exit 1; } -. ../../nvm.sh +. ../../../nvm.sh [ "$(nvm install invalid.invalid 2>&1)" = "Version 'invalid.invalid' not found - try \`nvm ls-remote\` to browse available versions." ] || die "nvm installing an invalid version did not print a nice error message" # Remove the stuff we're clobbering. -[ -e ../../v0.9.7 ] && rm -R ../../v0.9.7 -[ -e ../../v0.9.12 ] && rm -R ../../v0.9.12 +[ -e ../../../v0.9.7 ] && rm -R ../../../v0.9.7 +[ -e ../../../v0.9.12 ] && rm -R ../../../v0.9.12 # Install from binary nvm install 0.9.7 diff --git a/test/installation/install from binary b/test/installation/node/install from binary similarity index 74% rename from test/installation/install from binary rename to test/installation/node/install from binary index cdc0e7a..3e17e8e 100755 --- a/test/installation/install from binary +++ b/test/installation/node/install from binary @@ -2,17 +2,17 @@ die () { echo $@ ; exit 1; } -. ../../nvm.sh +. ../../../nvm.sh NVM_TEST_VERSION=v0.10.7 # Remove the stuff we're clobbering. -[ -e ../../$NVM_TEST_VERSION ] && rm -R ../../$NVM_TEST_VERSION +[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION # Install from binary nvm install $NVM_TEST_VERSION || die "install $NVM_TEST_VERSION failed" # Check -[ -d ../../$NVM_TEST_VERSION ] +[ -d ../../../$NVM_TEST_VERSION ] nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION || die "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" diff --git a/test/installation/install from source b/test/installation/node/install from source similarity index 74% rename from test/installation/install from source rename to test/installation/node/install from source index 25a0f1e..3cf0389 100755 --- a/test/installation/install from source +++ b/test/installation/node/install from source @@ -2,17 +2,17 @@ die () { echo $@ ; exit 1; } -. ../../nvm.sh +. ../../../nvm.sh NVM_TEST_VERSION=v0.10.7 # Remove the stuff we're clobbering. -[ -e ../../$NVM_TEST_VERSION ] && rm -R ../../$NVM_TEST_VERSION +[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION # Install from source nvm install -s $NVM_TEST_VERSION || die "'nvm install -s $NVM_TEST_VERSION' failed" # Check -[ -d ../../$NVM_TEST_VERSION ] +[ -d ../../../$NVM_TEST_VERSION ] nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION || "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" diff --git a/test/installation/install two versions and use the latest one b/test/installation/node/install two versions and use the latest one similarity index 66% rename from test/installation/install two versions and use the latest one rename to test/installation/node/install two versions and use the latest one index 77dc9e4..1fedace 100755 --- a/test/installation/install two versions and use the latest one +++ b/test/installation/node/install two versions and use the latest one @@ -2,19 +2,19 @@ die () { echo $@ ; exit 1; } -. ../../nvm.sh +. ../../../nvm.sh # Remove the stuff we're clobbering. -[ -e ../../v0.9.7 ] && rm -R ../../v0.9.7 -[ -e ../../v0.9.12 ] && rm -R ../../v0.9.12 +[ -e ../../../v0.9.7 ] && rm -R ../../../v0.9.7 +[ -e ../../../v0.9.12 ] && rm -R ../../../v0.9.12 # Install from binary nvm install 0.9.7 || die "'nvm install 0.9.7' failed" nvm i 0.9.12 || die "'nvm i 0.9.12' failed" # Check -[ -d ../../v0.9.7 ] || die "v0.9.7 didn't exist" -[ -d ../../v0.9.12 ] || die "v0.9.12 didn't exist" +[ -d ../../../v0.9.7 ] || die "v0.9.7 didn't exist" +[ -d ../../../v0.9.12 ] || die "v0.9.12 didn't exist" # Use the first one nvm use 0.9.7 || die "'nvm use 0.9.7' failed" diff --git a/test/installation/install version specified in .nvmrc from binary b/test/installation/node/install version specified in .nvmrc from binary similarity index 68% rename from test/installation/install version specified in .nvmrc from binary rename to test/installation/node/install version specified in .nvmrc from binary index ad5f296..859a199 100755 --- a/test/installation/install version specified in .nvmrc from binary +++ b/test/installation/node/install version specified in .nvmrc from binary @@ -2,12 +2,12 @@ die () { echo $@ ; exit 1; } -. ../../nvm.sh +. ../../../nvm.sh NVM_TEST_VERSION=v0.10.7 # Remove the stuff we're clobbering. -[ -e ../../$NVM_TEST_VERSION ] && rm -R ../../$NVM_TEST_VERSION +[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION # Install from binary echo "$NVM_TEST_VERSION" > .nvmrc @@ -15,7 +15,7 @@ echo "$NVM_TEST_VERSION" > .nvmrc nvm install || die "'nvm install' failed" # Check -[ -d ../../$NVM_TEST_VERSION ] || die "./$NVM_TEST_VERSION did not exist" +[ -d ../../../$NVM_TEST_VERSION ] || die "./$NVM_TEST_VERSION did not exist" nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION \ || "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" diff --git a/test/installation/install version specified in .nvmrc from source b/test/installation/node/install version specified in .nvmrc from source similarity index 68% rename from test/installation/install version specified in .nvmrc from source rename to test/installation/node/install version specified in .nvmrc from source index 63ea0ea..6952645 100755 --- a/test/installation/install version specified in .nvmrc from source +++ b/test/installation/node/install version specified in .nvmrc from source @@ -2,12 +2,12 @@ die () { echo $@ ; exit 1; } -. ../../nvm.sh +. ../../../nvm.sh NVM_TEST_VERSION=v0.10.7 # Remove the stuff we're clobbering. -[ -e ../../$NVM_TEST_VERSION ] && rm -R ../../$NVM_TEST_VERSION +[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION # Install from binary echo "$NVM_TEST_VERSION" > .nvmrc @@ -15,7 +15,7 @@ echo "$NVM_TEST_VERSION" > .nvmrc nvm install -s || "'nvm install -s' failed" # Check -[ -d ../../$NVM_TEST_VERSION ] || die "$NVM_TEST_VERSION did not exist" +[ -d ../../../$NVM_TEST_VERSION ] || die "$NVM_TEST_VERSION did not exist" nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION \ || die "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" diff --git a/test/installation/install while reinstalling packages b/test/installation/node/install while reinstalling packages similarity index 74% rename from test/installation/install while reinstalling packages rename to test/installation/node/install while reinstalling packages index 76eb7e5..9298212 100755 --- a/test/installation/install while reinstalling packages +++ b/test/installation/node/install while reinstalling packages @@ -2,17 +2,17 @@ die () { echo $@ ; exit 1; } -. ../../nvm.sh +. ../../../nvm.sh # Remove the stuff we're clobbering. -[ -e ../../v0.9.7 ] && rm -R ../../v0.9.7 -[ -e ../../v0.9.12 ] && rm -R ../../v0.9.12 +[ -e ../../../v0.9.7 ] && rm -R ../../../v0.9.7 +[ -e ../../../v0.9.12 ] && rm -R ../../../v0.9.12 # Install from binary nvm install 0.9.7 # Check -[ -d ../../v0.9.7 ] || die "nvm install 0.9.7 didn't install" +[ -d ../../../v0.9.7 ] || die "nvm install 0.9.7 didn't install" nvm use 0.9.7 @@ -25,7 +25,7 @@ nvm ls 0.9 | grep v0.9.7 > /dev/null || die "nvm ls 0.9 didn't show v0.9.7" nvm install 0.9.12 --reinstall-packages-from=0.9 || die "nvm install 0.9.12 --reinstall-packages-from=0.9 failed" -[ -d ../../v0.9.12 ] || die "nvm install 0.9.12 didn't install" +[ -d ../../../v0.9.12 ] || die "nvm install 0.9.12 didn't install" nvm use 0.9 node --version | grep v0.9.12 > /dev/null || die "nvm ls 0.9 didn't use v0.9.12" diff --git a/test/installation/setup_dir b/test/installation/node/setup_dir similarity index 100% rename from test/installation/setup_dir rename to test/installation/node/setup_dir diff --git a/test/installation/teardown_dir b/test/installation/node/teardown_dir similarity index 89% rename from test/installation/teardown_dir rename to test/installation/node/teardown_dir index 941ca99..8285de3 100755 --- a/test/installation/teardown_dir +++ b/test/installation/node/teardown_dir @@ -1,6 +1,6 @@ #!/bin/sh -. ../../nvm.sh +. ../../../nvm.sh nvm deactivate nvm uninstall v0.10.7 From eb8c3414dd2aafd95bdf21682f1079cddae17b12 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 17 Jan 2015 11:27:42 -0600 Subject: [PATCH 0354/1426] Move `nvm_get_latest` tests from "installation" to "slow" --- test/{installation => slow}/nvm_get_latest/nvm_get_latest | 0 .../nvm_get_latest/nvm_get_latest failed redirect | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename test/{installation => slow}/nvm_get_latest/nvm_get_latest (100%) rename test/{installation => slow}/nvm_get_latest/nvm_get_latest failed redirect (100%) diff --git a/test/installation/nvm_get_latest/nvm_get_latest b/test/slow/nvm_get_latest/nvm_get_latest similarity index 100% rename from test/installation/nvm_get_latest/nvm_get_latest rename to test/slow/nvm_get_latest/nvm_get_latest diff --git a/test/installation/nvm_get_latest/nvm_get_latest failed redirect b/test/slow/nvm_get_latest/nvm_get_latest failed redirect similarity index 100% rename from test/installation/nvm_get_latest/nvm_get_latest failed redirect rename to test/slow/nvm_get_latest/nvm_get_latest failed redirect From 8ae7b33632386a76e6b642adf34dfacd70954b10 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 16 Jan 2015 16:09:14 -0600 Subject: [PATCH 0355/1426] Improving failure messages on this test --- test/slow/node 0.6.21 should install 0.6.21-pre | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/slow/node 0.6.21 should install 0.6.21-pre b/test/slow/node 0.6.21 should install 0.6.21-pre index 412ecfa..c579e16 100755 --- a/test/slow/node 0.6.21 should install 0.6.21-pre +++ b/test/slow/node 0.6.21 should install 0.6.21-pre @@ -4,7 +4,7 @@ die () { echo $@ ; exit 1; } . ../../nvm.sh -nvm install 0.6.21 -[ "$(node -v)" = "v0.6.21-pre" ] || die "v0.6.21-pre not installed with v0.6.21" -[ "$(nvm current)" = "v0.6.21" ] || die "v0.6.21-pre not reported as v0.6.21" +nvm install 0.6.21 || die 'v0.6.21 installation failed' +[ "$(node -v)" = "v0.6.21-pre" ] || die "v0.6.21-pre not installed with v0.6.21, got $(node -v)" +[ "$(nvm current)" = "v0.6.21" ] || die "v0.6.21-pre not reported as v0.6.21, got $(nvm current)" From 896a7eddd37a2fe344071dbcdd860eaf8e77432d Mon Sep 17 00:00:00 2001 From: Jacob Hoffman-Andrews Date: Sun, 18 Jan 2015 12:05:44 -0800 Subject: [PATCH 0356/1426] Move some URLs to HTTPS. --- .travis.yml | 2 +- README.markdown | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index c66d523..5cda1b5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ language: c # defaults to ruby install: - sudo apt-get install zsh -y # ksh - - (mkdir /tmp/urchin && cd /tmp/urchin && curl -s "$(curl -s http://registry.npmjs.org/urchin | grep -Eo '"tarball":\s*"[^"]+"' | tail -n 1 | awk -F\" '{ print $4 }')" -O && tar -x -f urchin*) + - (mkdir /tmp/urchin && cd /tmp/urchin && curl -s "$(curl -s https://registry.npmjs.org/urchin | grep -Eo '"tarball":\s*"[^"]+"' | tail -n 1 | awk -F\" '{ print $4 }')" -O && tar -x -f urchin*) - chmod +x /tmp/urchin/package/urchin - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' script: diff --git a/README.markdown b/README.markdown index d3bb5c8..b92ca20 100644 --- a/README.markdown +++ b/README.markdown @@ -5,8 +5,8 @@ First you'll need to make sure your system has a c++ compiler. For OSX, XCode will work, for Ubuntu, the build-essential and libssl-dev packages work. Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/nvm/issues/284)). Two alternatives exist, which are not supported nor developed by us: - - [nvmw](http://github.com/hakobera/nvmw) - - [nvm-windows](http://github.com/coreybutler/nvm-windows) + - [nvmw](https://github.com/hakobera/nvmw) + - [nvm-windows](https://github.com/coreybutler/nvm-windows) ### Install script @@ -95,10 +95,10 @@ To set a default Node version to be used in any new shell, use the alias 'defaul To use a mirror of the node binaries, set `$NVM_NODEJS_ORG_MIRROR`: - export NVM_NODEJS_ORG_MIRROR=http://nodejs.org/dist + export NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist nvm install 0.10 - NVM_NODEJS_ORG_MIRROR=http://nodejs.org/dist nvm install 0.10 + NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist nvm install 0.10 `nvm use` will not, by default, create a "current" symlink. Set `$NVM_SYMLINK_CURRENT` to "true" to enable this behavior, which is sometimes useful for IDEs. From bb2564d6db90f7c7395b22385fbdcc5e02ace1de Mon Sep 17 00:00:00 2001 From: Jacob Hoffman-Andrews Date: Sun, 18 Jan 2015 22:24:22 -0800 Subject: [PATCH 0357/1426] npmjs.org -> npmjs.com --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 5cda1b5..762181b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ language: c # defaults to ruby install: - sudo apt-get install zsh -y # ksh - - (mkdir /tmp/urchin && cd /tmp/urchin && curl -s "$(curl -s https://registry.npmjs.org/urchin | grep -Eo '"tarball":\s*"[^"]+"' | tail -n 1 | awk -F\" '{ print $4 }')" -O && tar -x -f urchin*) + - (mkdir /tmp/urchin && cd /tmp/urchin && curl -s "$(curl -s https://registry.npmjs.com/urchin | grep -Eo '"tarball":\s*"[^"]+"' | tail -n 1 | awk -F\" '{ print $4 }')" -O && tar -x -f urchin*) - chmod +x /tmp/urchin/package/urchin - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' script: From 654c37bc2985cb6eb7daf5d870bd528dc63c45d0 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 18 Jan 2015 12:11:21 -0600 Subject: [PATCH 0358/1426] Make sure to add a test for implicit source installation. --- .../node/install from source implicitly | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100755 test/installation/node/install from source implicitly diff --git a/test/installation/node/install from source implicitly b/test/installation/node/install from source implicitly new file mode 100755 index 0000000..924c1f8 --- /dev/null +++ b/test/installation/node/install from source implicitly @@ -0,0 +1,18 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +NVM_TEST_VERSION=v0.8.5 + +# Remove the stuff we're clobbering. +[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION + +# Install from source implicitly (v0.8.6 is when binaries started) +nvm install $NVM_TEST_VERSION || die "'nvm install -s $NVM_TEST_VERSION' failed" + +# Check +[ -d ../../../$NVM_TEST_VERSION ] +nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION || "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" + From 3cf68dc18d43e592c40ea5fc6d03075f6ff013f3 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 18 Jan 2015 20:55:48 -0600 Subject: [PATCH 0359/1426] Add `nvm_has_system_iojs` --- nvm.sh | 15 +++++++++--- test/fast/Unit tests/nvm_has_system_iojs | 31 ++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 4 deletions(-) create mode 100755 test/fast/Unit tests/nvm_has_system_iojs diff --git a/nvm.sh b/nvm.sh index 202ce27..11ded0d 100644 --- a/nvm.sh +++ b/nvm.sh @@ -49,6 +49,10 @@ nvm_has_system_node() { [ "$(nvm deactivate >/dev/null 2>&1 && command -v node)" != '' ] } +nvm_has_system_iojs() { + [ "$(nvm deactivate >/dev/null 2>&1 && command -v iojs)" != '' ] +} + # Make zsh glob matching behave same as bash # This fixes the "zsh: no matches found" errors if nvm_has "unsetopt"; then @@ -463,7 +467,7 @@ nvm_ls() { fi fi - if nvm_has_system_node; then + if nvm_has_system_node || nvm_has_system_iojs; then if [ -z "$PATTERN" ] || [ "_$PATTERN" = "_v" ]; then VERSIONS="$VERSIONS$(command printf '\n%s' 'system')" elif [ "$PATTERN" = 'system' ]; then @@ -1095,6 +1099,9 @@ nvm() { if nvm_has_system_node && nvm deactivate >/dev/null 2>&1; then echo "Now using system version of node: $(node -v 2>/dev/null)." return + elif nvm_has_system_iojs && nvm deactivate >/dev/null 2>&1; then + echo "Now using system version of io.js: $(iojs --version 2>/dev/null)." + return else echo "System version of node not found." >&2 return 127 @@ -1274,7 +1281,7 @@ nvm() { fi if [ "_$VERSION" = '_system' ]; then - if nvm_has_system_node >/dev/null 2>&1; then + if nvm_has_system_iojs >/dev/null 2>&1 || nvm_has_system_node >/dev/null 2>&1; then local NVM_BIN NVM_BIN="$(nvm use system >/dev/null 2>&1 && command which node)" if [ -n "$NVM_BIN" ]; then @@ -1373,8 +1380,8 @@ nvm() { local INSTALLS if [ "_$PROVIDED_VERSION" = "_system" ]; then - if ! nvm_has_system_node; then - echo 'No system version of node detected.' >&2 + if ! nvm_has_system_node && ! nvm_has_system_iojs; then + echo 'No system version of node or io.js detected.' >&2 return 3 fi INSTALLS=$(nvm deactivate > /dev/null && npm list -g --depth=0 | command tail -n +2 | command grep -o -e ' [^@]*' | command cut -c 2- | command grep -v npm | command xargs) diff --git a/test/fast/Unit tests/nvm_has_system_iojs b/test/fast/Unit tests/nvm_has_system_iojs new file mode 100755 index 0000000..bb58da6 --- /dev/null +++ b/test/fast/Unit tests/nvm_has_system_iojs @@ -0,0 +1,31 @@ +#!/bin/sh + +cleanup () { + rm ../../../versions/io.js/v0.1.2/node + rm ../../../versions/io.js/v0.1.2/iojs + rmdir ../../../versions/io.js/v0.1.2 +} +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +mkdir ../../../versions/io.js/v0.1.2 +touch ../../../versions/io.js/v0.1.2/node +touch ../../../versions/io.js/v0.1.2/iojs + +nvm use iojs-v0.1.2 + +if command -v iojs; then + nvm_has_system_iojs +else + ! nvm_has_system_iojs +fi + +nvm deactivate /dev/null 2>&1 + +if command -v iojs; then + nvm_has_system_iojs +else + ! nvm_has_system_iojs +fi + From 39a75e616d523d6b463ab169f931da69b3da939c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 18 Jan 2015 20:45:02 -0600 Subject: [PATCH 0360/1426] Add support for `nvm use node`, `nvm use iojs`, `nvm ls node`, and `nvm ls iojs` Also add `nvm_version node` and `nvm_version iojs` support. --- nvm.sh | 75 ++++++++++++++----- ...return a nonzero exit code when not found" | 2 +- test/fast/Unit tests/nvm_version | 47 ++++++++++++ ..."nvm use iojs\" uses latest io.js version" | 14 ++++ ...se node\" uses latest stable node version" | 14 ++++ test/slow/nvm use/setup_dir | 16 ++++ test/slow/nvm use/teardown_dir | 16 ++++ 7 files changed, 166 insertions(+), 18 deletions(-) rename "test/fast/Listing versions/Running \"nvm ls node\" should return a nonzero exit code when not found" => "test/fast/Listing versions/Running \"nvm ls node_\" should return a nonzero exit code when not found" (78%) create mode 100755 test/fast/Unit tests/nvm_version create mode 100755 "test/slow/nvm use/Running \"nvm use iojs\" uses latest io.js version" create mode 100755 "test/slow/nvm use/Running \"nvm use node\" uses latest stable node version" create mode 100755 test/slow/nvm use/setup_dir create mode 100755 test/slow/nvm use/teardown_dir diff --git a/nvm.sh b/nvm.sh index 11ded0d..f75d9b0 100644 --- a/nvm.sh +++ b/nvm.sh @@ -200,10 +200,11 @@ nvm_version() { fi VERSION="$(nvm_ls "$PATTERN" | tail -n1)" - echo "$VERSION" - - if [ "$VERSION" = 'N/A' ]; then - return 3 + if [ -z "$VERSION" ] || [ "_$VERSION" = "_N/A" ]; then + echo "N/A" + return 3; + else + echo "$VERSION" fi } @@ -278,7 +279,7 @@ nvm_binary_available() { # binaries started with node 0.8.6 local FIRST_VERSION_WITH_BINARY FIRST_VERSION_WITH_BINARY="0.8.6" - nvm_version_greater_than_or_equal_to "$1" "$FIRST_VERSION_WITH_BINARY" + nvm_version_greater_than_or_equal_to "$(nvm_strip_iojs_prefix $1)" "$FIRST_VERSION_WITH_BINARY" } nvm_alias() { @@ -411,20 +412,31 @@ nvm_ls() { return fi + case "$PATTERN" in + "$(nvm_iojs_prefix)" | "$(nvm_node_prefix)") + PATTERN="$PATTERN-" + ;; + *) + PATTERN=$(nvm_ensure_version_prefix $PATTERN) + ;; + esac # If it looks like an explicit version, don't do anything funny - PATTERN=$(nvm_ensure_version_prefix $PATTERN) if [ "_$(echo "$PATTERN" | cut -c1-1)" = "_v" ] && [ "_$(nvm_num_version_groups "$PATTERN")" = "_3" ]; then if [ -d "$(nvm_version_path "$PATTERN")" ]; then VERSIONS="$PATTERN" fi else - if [ "_$PATTERN" != "_system" ]; then - local NUM_VERSION_GROUPS - NUM_VERSION_GROUPS="$(nvm_num_version_groups "$PATTERN")" - if [ "_$NUM_VERSION_GROUPS" = "_2" ] || [ "_$NUM_VERSION_GROUPS" = "_1" ]; then - PATTERN="$(echo "$PATTERN" | command sed -e 's/\.*$//g')." - fi - fi + case "$PATTERN" in + "$(nvm_iojs_prefix)-" | "$(nvm_node_prefix)-" | "system") + ;; + *) + local NUM_VERSION_GROUPS + NUM_VERSION_GROUPS="$(nvm_num_version_groups "$PATTERN")" + if [ "_$NUM_VERSION_GROUPS" = "_2" ] || [ "_$NUM_VERSION_GROUPS" = "_1" ]; then + PATTERN="$(echo "$PATTERN" | command sed -e 's/\.*$//g')." + fi + ;; + esac local ZHS_HAS_SHWORDSPLIT_UNSET ZHS_HAS_SHWORDSPLIT_UNSET=1 @@ -435,11 +447,25 @@ nvm_ls() { local NVM_DIRS_TO_TEST_AND_SEARCH local NVM_DIRS_TO_SEARCH + local NVM_ADD_SYSTEM + NVM_ADD_SYSTEM=false if nvm_is_iojs_version "$PATTERN"; then NVM_DIRS_TO_TEST_AND_SEARCH="$(nvm_version_dir iojs)" PATTERN="$(nvm_strip_iojs_prefix "$PATTERN")" + if nvm_has_system_iojs; then + NVM_ADD_SYSTEM=true + fi + elif [ "_$PATTERN" = "_$(nvm_node_prefix)-" ]; then + NVM_DIRS_TO_TEST_AND_SEARCH="$(nvm_version_dir old) $(nvm_version_dir new)" + PATTERN='' + if nvm_has_system_node; then + NVM_ADD_SYSTEM=true + fi else NVM_DIRS_TO_TEST_AND_SEARCH="$(nvm_version_dir old) $(nvm_version_dir new) $(nvm_version_dir iojs)" + if nvm_has_system_iojs || nvm_has_system_node; then + NVM_ADD_SYSTEM=true + fi fi for NVM_VERSION_DIR in $NVM_DIRS_TO_TEST_AND_SEARCH; do if [ -d "$NVM_VERSION_DIR" ]; then @@ -467,7 +493,7 @@ nvm_ls() { fi fi - if nvm_has_system_node || nvm_has_system_iojs; then + if [ "$NVM_ADD_SYSTEM" = true ]; then if [ -z "$PATTERN" ] || [ "_$PATTERN" = "_v" ]; then VERSIONS="$VERSIONS$(command printf '\n%s' 'system')" elif [ "$PATTERN" = 'system' ]; then @@ -1080,16 +1106,31 @@ nvm() { nvm help return 127 fi + if [ $# -eq 1 ]; then nvm_rc_version if [ -n "$NVM_RC_VERSION" ]; then VERSION="$(nvm_version "$NVM_RC_VERSION")" fi - elif [ "_$2" != '_system' ]; then - VERSION="$(nvm_version "$2")" else - VERSION="$2" + local NVM_IOJS_PREFIX + NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" + case "_$2" in + "_$NVM_IOJS_PREFIX" | "_io.js") + VERSION="$(nvm_add_iojs_prefix $(nvm_ls | command grep "$NVM_IOJS_PREFIX" | tail -n1))" + ;; + "_$(nvm_node_prefix)") + VERSION="$(nvm_version stable)" + ;; + "_system") + VERSION="system" + ;; + *) + VERSION="$(nvm_version "$2")" + ;; + esac fi + if [ -z "$VERSION" ]; then nvm help return 127 diff --git "a/test/fast/Listing versions/Running \"nvm ls node\" should return a nonzero exit code when not found" "b/test/fast/Listing versions/Running \"nvm ls node_\" should return a nonzero exit code when not found" similarity index 78% rename from "test/fast/Listing versions/Running \"nvm ls node\" should return a nonzero exit code when not found" rename to "test/fast/Listing versions/Running \"nvm ls node_\" should return a nonzero exit code when not found" index f7d68f7..2d6b012 100755 --- "a/test/fast/Listing versions/Running \"nvm ls node\" should return a nonzero exit code when not found" +++ "b/test/fast/Listing versions/Running \"nvm ls node_\" should return a nonzero exit code when not found" @@ -2,6 +2,6 @@ . ../../../nvm.sh -nvm ls node +nvm ls node_ [ "$?" = "3" ] diff --git a/test/fast/Unit tests/nvm_version b/test/fast/Unit tests/nvm_version new file mode 100755 index 0000000..7babb8c --- /dev/null +++ b/test/fast/Unit tests/nvm_version @@ -0,0 +1,47 @@ +#!/bin/sh + +die () { echo $@ ; cleanup ; exit 1; } +cleanup () { + unset -f nvm_ls_current nvm_ls +} + +. ../../../nvm.sh + +nvm_ls_current() { + echo "CURRENT!" + return 7 +} + +OUTPUT="$(nvm_version current)" +EXPECTED_OUTPUT="CURRENT!" +EXIT_CODE="$(nvm_version current 2>&1 >/dev/null ; echo $?)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die '"nvm_version current" did not return nvm_ls_current output' +[ "_$EXIT_CODE" = "_7" ] || die '"nvm_version current" did not return nvm_ls_current exit code' + +OUTPUT="$(nvm_version)" +EXPECTED_OUTPUT="CURRENT!" +EXIT_CODE="$(nvm_version 2>&1 >/dev/null ; echo $?)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die '"nvm_version" did not return nvm_ls_current output' +[ "_$EXIT_CODE" = "_7" ] || die '"nvm_version" did not return nvm_ls_current exit code' + +nvm_ls() { + echo "line 1" + echo "line 2" + echo "pattern: $1" +} + +[ "_$(nvm_version foo)" = "_pattern: foo" ] || die '"nvm_version foo" did not pass the pattern to "nvm_ls", or return the last line' + +nvm_ls() { echo "N/A"; } +OUTPUT="$(nvm_version foo)" +EXPECTED_OUTPUT="N/A" +EXIT_CODE="$(nvm_version foo 2>&1 >/dev/null ; echo $?)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die '"nvm_version" did not return N/A when nvm_ls returns N/A' +[ "_$EXIT_CODE" = "_3" ] || die '"nvm_version" returning N/A did not exit code with code 3' + +nvm_ls() { echo; } +OUTPUT="$(nvm_version foo)" +EXPECTED_OUTPUT="N/A" +EXIT_CODE="$(nvm_version foo 2>&1 >/dev/null ; echo $?)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die '"nvm_version" did not return N/A when nvm_ls returns nothing' +[ "_$EXIT_CODE" = "_3" ] || die '"nvm_version" returning N/A did not exit code with code 3' diff --git "a/test/slow/nvm use/Running \"nvm use iojs\" uses latest io.js version" "b/test/slow/nvm use/Running \"nvm use iojs\" uses latest io.js version" new file mode 100755 index 0000000..5b867f3 --- /dev/null +++ "b/test/slow/nvm use/Running \"nvm use iojs\" uses latest io.js version" @@ -0,0 +1,14 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +nvm deactivate 2>&1 >/dev/null || die 'deactivate failed' + +nvm use iojs || die 'nvm use iojs failed' +OUTPUT="$(nvm current)" +EXPECTED_OUTPUT="iojs-v1.0.1" + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ + || die "'nvm use iojs' + 'nvm current' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'" diff --git "a/test/slow/nvm use/Running \"nvm use node\" uses latest stable node version" "b/test/slow/nvm use/Running \"nvm use node\" uses latest stable node version" new file mode 100755 index 0000000..3514256 --- /dev/null +++ "b/test/slow/nvm use/Running \"nvm use node\" uses latest stable node version" @@ -0,0 +1,14 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +nvm deactivate 2>&1 >/dev/null || die 'deactivate failed' + +nvm use node || die 'nvm use node failed' +OUTPUT="$(nvm current)" +EXPECTED_OUTPUT="$(nvm_version stable)" + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ + || die "'nvm use node' + 'nvm current' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'" diff --git a/test/slow/nvm use/setup_dir b/test/slow/nvm use/setup_dir new file mode 100755 index 0000000..a3ab0f7 --- /dev/null +++ b/test/slow/nvm use/setup_dir @@ -0,0 +1,16 @@ +#!/bin/sh + +. ../../../nvm.sh + +mkdir -p ../../../.nvm_use_bak +if [ -d "../../../v*" ]; then + mv "../../../v*" ../../../.nvm_use_bak/ +fi + +for VERSION in "0.8.7" "0.9.1" "0.10.1" "0.11.1"; do + nvm install "v$VERSION" +done + +for VERSION in "1.0.0" "1.0.1"; do + nvm install "iojs-v$VERSION" +done diff --git a/test/slow/nvm use/teardown_dir b/test/slow/nvm use/teardown_dir new file mode 100755 index 0000000..eeda337 --- /dev/null +++ b/test/slow/nvm use/teardown_dir @@ -0,0 +1,16 @@ +#!/bin/sh + +. ../../../nvm.sh + +for VERSION in "0.8.7" "0.9.1" "0.10.1" "0.11.1"; do + nvm uninstall "$VERSION" +done + +for VERSION in "1.0.0" "1.0.1"; do + nvm uninstall "iojs-v$VERSION" +done + +if [ -d ../../../.nvm_use_bak/* ]; then + mv ../../../.nvm_use_bak/* ../../../ +fi +rmdir ../../../.nvm_use_bak From dbeeb683daa1e500d7c29d876a91bd00aa3342c8 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 18 Jan 2015 23:55:26 -0800 Subject: [PATCH 0361/1426] Fix `nvm_strip_path` for >= v0.12.0 node, and all io.js versions. --- nvm.sh | 8 +++++++- test/fast/Unit tests/nvm_strip_path | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index f75d9b0..def98f4 100644 --- a/nvm.sh +++ b/nvm.sh @@ -264,7 +264,13 @@ nvm_num_version_groups() { } nvm_strip_path() { - echo "$1" | command sed -e "s#$NVM_DIR/[^/]*$2[^:]*:##g" -e "s#:$NVM_DIR/[^/]*$2[^:]*##g" -e "s#$NVM_DIR/[^/]*$2[^:]*##g" + echo "$1" | command sed \ + -e "s#$NVM_DIR/[^/]*$2[^:]*:##g" \ + -e "s#:$NVM_DIR/[^/]*$2[^:]*##g" \ + -e "s#$NVM_DIR/[^/]*$2[^:]*##g" \ + -e "s#$NVM_DIR/versions/[^/]*/[^/]*$2[^:]*:##g" \ + -e "s#:$NVM_DIR/versions/[^/]*/[^/]*$2[^:]*##g" \ + -e "s#$NVM_DIR/versions/[^/]*/[^/]*$2[^:]*##g" } nvm_prepend_path() { diff --git a/test/fast/Unit tests/nvm_strip_path b/test/fast/Unit tests/nvm_strip_path index 0d119aa..b926cc4 100755 --- a/test/fast/Unit tests/nvm_strip_path +++ b/test/fast/Unit tests/nvm_strip_path @@ -4,7 +4,7 @@ die () { echo $@ ; exit 1; } . ../../../nvm.sh -TEST_PATH=$NVM_DIR/v0.10.5/bin:/usr/bin:$NVM_DIR/v0.11.5/bin:$NVM_DIR/v0.9.5/bin:/usr/local/bin:$NVM_DIR/v0.2.5/bin +TEST_PATH=$NVM_DIR/v0.10.5/bin:/usr/bin:$NVM_DIR/v0.11.5/bin:$NVM_DIR/v0.9.5/bin:/usr/local/bin:$NVM_DIR/v0.2.5/bin:$NVM_DIR/versions/node/v0.12.0/bin:$NVM_DIR/versions/io.js/v1.0.0/bin STRIPPED_PATH=`nvm_strip_path "$TEST_PATH" "/bin"` From 247bd310ef3ecf6d8d1fb6248b17224fdae1b16a Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 19 Jan 2015 10:04:12 -0800 Subject: [PATCH 0362/1426] Clean up `nvm uninstall node` and `nvm uninstall iojs` behavior. --- nvm.sh | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/nvm.sh b/nvm.sh index def98f4..cc54366 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1042,17 +1042,28 @@ nvm() { ;; "uninstall" ) [ $# -ne 2 ] && nvm help && return - PATTERN="$(nvm_ensure_version_prefix "$2")" + + local PATTERN + PATTERN="$2" + local VERSION + case "_$PATTERN" in + "_$(nvm_iojs_prefix)" | "_$(nvm_iojs_prefix)-" \ + | "_$(nvm_node_prefix)" | "_$(nvm_node_prefix)-") + VERSION="$(nvm_version $PATTERN)" + ;; + *) + VERSION="$(nvm_version "$PATTERN")" + ;; + esac if [ "_$PATTERN" = "_$(nvm_ls_current)" ]; then if nvm_is_iojs_version "$PATTERN"; then - echo "nvm: Cannot uninstall currently-active io.js version, $PATTERN." >&2 + echo "nvm: Cannot uninstall currently-active io.js version, $VERSION (inferred from $PATTERN)." >&2 else - echo "nvm: Cannot uninstall currently-active node version, $PATTERN." >&2 + echo "nvm: Cannot uninstall currently-active node version, $VERSION (inferred from $PATTERN)." >&2 fi return 1 fi - local VERSION - VERSION="$(nvm_version "$PATTERN")" + local VERSION_PATH VERSION_PATH="$(nvm_version_path "$VERSION")" if [ ! -d "$VERSION_PATH" ]; then @@ -1063,10 +1074,13 @@ nvm() { t="$VERSION-$(nvm_get_os)-$(nvm_get_arch)" local NVM_PREFIX - if nvm_is_iojs_version "$PATTERN"; then + local NVM_SUCCESS_MSG + if nvm_is_iojs_version "$VERSION"; then NVM_PREFIX="$(nvm_iojs_prefix)" + NVM_SUCCESS_MSG="Uninstalled io.js $(nvm_strip_iojs_prefix $VERSION)" else NVM_PREFIX="$(nvm_node_prefix)" + NVM_SUCCESS_MSG="Uninstalled node $VERSION" fi # Delete all files related to target version. command rm -rf "$NVM_DIR/src/$NVM_PREFIX-$VERSION" \ @@ -1074,9 +1088,9 @@ nvm() { "$NVM_DIR/bin/$NVM_PREFIX-${t}" \ "$NVM_DIR/bin/$NVM_PREFIX-${t}.tar.gz" \ "$VERSION_PATH" 2>/dev/null - echo "Uninstalled $NVM_PREFIX $VERSION" + echo "$NVM_SUCCESS_MSG" - # Rm any aliases that point to uninstalled version. + # rm any aliases that point to uninstalled version. for ALIAS in `command grep -l $VERSION "$(nvm_alias_path)/*" 2>/dev/null` do nvm unalias "$(command basename "$ALIAS")" From f1f11e3b7aaf586e1508c3a3809bcc83327ffbea Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 19 Jan 2015 10:05:36 -0800 Subject: [PATCH 0363/1426] Ensure `nvm_version node` and `nvm_version node-` report the latest stable node version. --- nvm.sh | 5 +++++ test/fast/Unit tests/nvm_version | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index cc54366..c6641fd 100644 --- a/nvm.sh +++ b/nvm.sh @@ -199,6 +199,11 @@ nvm_version() { return $? fi + case "_$PATTERN" in + "_$(nvm_node_prefix)" | "_$(nvm_node_prefix)-") + PATTERN="stable" + ;; + esac VERSION="$(nvm_ls "$PATTERN" | tail -n1)" if [ -z "$VERSION" ] || [ "_$VERSION" = "_N/A" ]; then echo "N/A" diff --git a/test/fast/Unit tests/nvm_version b/test/fast/Unit tests/nvm_version index 7babb8c..4d5063b 100755 --- a/test/fast/Unit tests/nvm_version +++ b/test/fast/Unit tests/nvm_version @@ -29,8 +29,9 @@ nvm_ls() { echo "line 2" echo "pattern: $1" } - [ "_$(nvm_version foo)" = "_pattern: foo" ] || die '"nvm_version foo" did not pass the pattern to "nvm_ls", or return the last line' +[ "_$(nvm_version node)" = "_pattern: stable" ] || die '"nvm_version node" did not pass "stable" to "nvm_ls"' +[ "_$(nvm_version node-)" = "_pattern: stable" ] || die '"nvm_version node-" did not pass "stable" to "nvm_ls"' nvm_ls() { echo "N/A"; } OUTPUT="$(nvm_version foo)" From ea127846290b1126556e256031383d171a4e38d8 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 19 Jan 2015 12:33:26 -0800 Subject: [PATCH 0364/1426] Clean up `nvm ls-remote` behavior when one of node/iojs reports N/A. This change: - removes a superfluous N/A - fixes the exit code to return 0 unless no version is found - enables `nvm install v1` and similar patterns. --- nvm.sh | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/nvm.sh b/nvm.sh index c6641fd..1ac6635 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1309,23 +1309,32 @@ nvm() { local NVM_LS_REMOTE_EXIT_CODE NVM_LS_REMOTE_EXIT_CODE=0 + local NVM_LS_REMOTE_OUTPUT + NVM_LS_REMOTE_OUTPUT='' if [ "_$NVM_FLAVOR" != "_$(nvm_iojs_prefix)" ]; then - local NVM_LS_REMOTE_OUTPUT NVM_LS_REMOTE_OUTPUT=$(nvm_ls_remote "$PATTERN") NVM_LS_REMOTE_EXIT_CODE=$? - nvm_print_versions "$NVM_LS_REMOTE_OUTPUT" fi local NVM_LS_REMOTE_IOJS_EXIT_CODE NVM_LS_REMOTE_IOJS_EXIT_CODE=0 + local NVM_LS_REMOTE_IOJS_OUTPUT + NVM_LS_REMOTE_IOJS_OUTPUT='' if [ "_$NVM_FLAVOR" != "_$(nvm_node_prefix)" ]; then - local NVM_LS_REMOTE_IOJS_OUTPUT NVM_LS_REMOTE_IOJS_OUTPUT=$(nvm_ls_remote_iojs "$PATTERN") NVM_LS_REMOTE_IOJS_EXIT_CODE=$? - nvm_print_versions "$NVM_LS_REMOTE_IOJS_OUTPUT" fi - return $NVM_LS_REMOTE_EXIT_CODE && $NVM_LS_REMOTE_IOJS_EXIT_CODE + local NVM_OUTPUT + NVM_OUTPUT="$(echo "$NVM_LS_REMOTE_OUTPUT +$NVM_LS_REMOTE_IOJS_OUTPUT" | grep -v "N/A" | sed '/^$/d')" + if [ -n "$NVM_OUTPUT" ]; then + nvm_print_versions "$NVM_OUTPUT" + return $NVM_LS_REMOTE_EXIT_CODE || $NVM_LS_REMOTE_IOJS_EXIT_CODE + else + nvm_print_versions "N/A" + return 3 + fi ;; "current" ) nvm_version current From 43a7d786936ef1fe5fd954c8eee2e41434718574 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 19 Jan 2015 22:15:06 -0800 Subject: [PATCH 0365/1426] v0.23.0 --- README.markdown | 6 +++--- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.markdown b/README.markdown index b92ca20..22e98ac 100644 --- a/README.markdown +++ b/README.markdown @@ -12,11 +12,11 @@ Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/n To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.22.2/install.sh | bash + curl https://raw.githubusercontent.com/creationix/nvm/v0.23.0/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.22.2/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.23.0/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -191,7 +191,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.22.2/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.23.0/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin diff --git a/install.sh b/install.sh index e64d552..a0287f2 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ if [ -z "$NVM_DIR" ]; then fi nvm_latest_version() { - echo "v0.22.2" + echo "v0.23.0" } # diff --git a/nvm.sh b/nvm.sh index 1ac6635..70b6c7c 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1477,7 +1477,7 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | grep -v "N/A" | sed '/^$/d')" nvm_version $2 ;; "--version" ) - echo "0.22.2" + echo "0.23.0" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum \ diff --git a/package.json b/package.json index 8140b02..c8e05a0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.22.2", + "version": "0.23.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 0471d0ffd60c434770521606c98418708ad05a6f Mon Sep 17 00:00:00 2001 From: Mikeal Rogers Date: Tue, 20 Jan 2015 10:21:18 -0500 Subject: [PATCH 0366/1426] Adding iojs to README. Not entirely sure this is the best place for this but it was the best I could find. --- README.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.markdown b/README.markdown index 22e98ac..42bd831 100644 --- a/README.markdown +++ b/README.markdown @@ -71,6 +71,10 @@ In place of a version pointer like "0.10", you can use the special default alias nvm install unstable nvm use stable nvm run unstable --version + +If you want to install `io.js`: + + nvm install iojs If you want to use the system-installed version of node, you can use the special default alias "system": From 9ee864b06f19693fd4ec1293fbf37ee450f15e27 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 20 Jan 2015 18:33:51 -0800 Subject: [PATCH 0367/1426] Remove unused variables. --- nvm.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index 70b6c7c..7f8d13a 100644 --- a/nvm.sh +++ b/nvm.sh @@ -866,9 +866,6 @@ nvm() { return fi - # Try to figure out the os and arch for binary fetching - local os - local arch local GREP_OPTIONS GREP_OPTIONS='' From 6cac732141a35a6e3c85c1bfaac4e9c43e964f27 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 20 Jan 2015 23:46:29 -0800 Subject: [PATCH 0368/1426] Including this omitted test. --- ..."nvm use iojs\" uses latest io.js version" | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100755 "test/fast/Running \"nvm use iojs\" uses latest io.js version" diff --git "a/test/fast/Running \"nvm use iojs\" uses latest io.js version" "b/test/fast/Running \"nvm use iojs\" uses latest io.js version" new file mode 100755 index 0000000..53f67fa --- /dev/null +++ "b/test/fast/Running \"nvm use iojs\" uses latest io.js version" @@ -0,0 +1,22 @@ +#!/bin/sh + +die () { echo $@ ; cleanup ; exit 1; } + +cleanup() { + rm -rf ../../alias/foo +} + +. ../../nvm.sh + +echo 'foo' > ../../alias/foo + +OUTPUT="$(nvm use foo 2>&1)" +EXPECTED_OUTPUT='The alias "foo" leads to an infinite loop. Aborting.' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ + || die "'nvm use foo' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'" + +EXIT_CODE="$(nvm use foo 2>/dev/null ; echo $?)" +[ "_$EXIT_CODE" = "_8" ] || die "Expected exit code 8; got $EXIT_CODE" + +cleanup; + From 17df0b9912e88d36c2bea5c3e295ad36033ee985 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 21 Jan 2015 16:19:22 -0800 Subject: [PATCH 0369/1426] Moving the N/A check earlier in `nvm install` --- nvm.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/nvm.sh b/nvm.sh index 7f8d13a..159e256 100644 --- a/nvm.sh +++ b/nvm.sh @@ -963,6 +963,11 @@ nvm() { ;; esac + if [ "_$VERSION" = "_N/A" ]; then + echo "Version '$provided_version' not found - try \`nvm ls-remote\` to browse available versions." >&2 + return 3 + fi + ADDITIONAL_PARAMETERS='' local PROVIDED_REINSTALL_PACKAGES_FROM local REINSTALL_PACKAGES_FROM @@ -1004,11 +1009,6 @@ nvm() { return $? fi - if [ "_$VERSION" = "_N/A" ]; then - echo "Version '$provided_version' not found - try \`nvm ls-remote\` to browse available versions." >&2 - return 3 - fi - if [ "_$NVM_OS" = "_freebsd" ]; then # node.js and io.js do not have a FreeBSD binary nobinary=1 From 7d113a2b2fcf323a49a0c7450763eb9c6ac17c6b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 21 Jan 2015 16:27:20 -0800 Subject: [PATCH 0370/1426] Inline this use of `nvm_remote_version` --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 159e256..5c254b4 100644 --- a/nvm.sh +++ b/nvm.sh @@ -527,7 +527,7 @@ nvm_ls_remote() { local GREP_OPTIONS GREP_OPTIONS='' if nvm_validate_implicit_alias "$PATTERN" 2> /dev/null ; then - PATTERN="$(nvm_remote_version "$(nvm_print_implicit_alias remote "$PATTERN")")" + PATTERN="$(nvm_ls_remote "$(nvm_print_implicit_alias remote "$PATTERN")" | tail -n1)" elif [ -n "$PATTERN" ]; then PATTERN="$(nvm_ensure_version_prefix "$PATTERN")" else From 7243bd77d3de2c86d263c27f86dcd2da004191f5 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 21 Jan 2015 10:48:20 -0800 Subject: [PATCH 0371/1426] Refactor and create `nvm_remote_versions` and `nvm_remote_version`. Fixes #620 - an oh-my-zsh issue where `nvm install v1` didn't work. --- nvm.sh | 60 ++++++++++----- test/fast/Unit tests/nvm_remote_versions | 78 ++++++++++++++++++++ test/installation/io.js/nvm install v1 works | 20 +++++ 3 files changed, 140 insertions(+), 18 deletions(-) create mode 100755 test/fast/Unit tests/nvm_remote_versions create mode 100755 test/installation/io.js/nvm install v1 works diff --git a/nvm.sh b/nvm.sh index 5c254b4..442350b 100644 --- a/nvm.sh +++ b/nvm.sh @@ -217,18 +217,52 @@ nvm_remote_version() { local PATTERN PATTERN="$1" local VERSION - if nvm_is_iojs_version "$PATTERN"; then - VERSION="$(nvm_ls_remote_iojs "$PATTERN")" + if nvm_validate_implicit_alias "$PATTERN" 2> /dev/null ; then + VERSIONS="$(nvm_ls_remote "$PATTERN")" else - VERSION="$(nvm_ls_remote "$PATTERN")" + case "_$PATTERN" in + "_$(nvm_node_prefix)") + VERSION="$(nvm_ls_remote stable)" + ;; + *) + VERSION="$(nvm_remote_versions "$PATTERN" | tail -n1)" + ;; + esac fi - echo "$VERSION" | tail -n1 - + echo "$VERSION" if [ "_$VERSION" = '_N/A' ]; then return 3 fi } +nvm_remote_versions() { + local PATTERN + PATTERN="$1" + if nvm_validate_implicit_alias "$PATTERN" 2> /dev/null ; then + echo >&2 "Implicit aliases are not supported in nvm_remote_versions." + return 1 + fi + case "_$PATTERN" in + "_$(nvm_iojs_prefix)" | "_io.js") + VERSIONS="$(nvm_ls_remote_iojs)" + ;; + "_$(nvm_node_prefix)") + VERSIONS="$(nvm_ls_remote)" + ;; + *) + VERSIONS="$(echo "$(nvm_ls_remote "$PATTERN") +$(nvm_ls_remote_iojs "$PATTERN")" | command grep -v "N/A" | command sed '/^$/d')" + ;; + esac + + if [ -z "$VERSIONS" ]; then + echo "N/A" + return 3 + else + echo "$VERSIONS" + fi +} + nvm_normalize_version() { echo "$1" | command sed -e 's/^v//' | command awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }' } @@ -951,17 +985,7 @@ nvm() { shift fi - case "_$provided_version" in - "_$(nvm_iojs_prefix)" | "_io.js") - VERSION="$(nvm_add_iojs_prefix $(nvm_ls_remote_iojs | tail -n1))" - ;; - "_$(nvm_node_prefix)") - VERSION="$(nvm_ls_remote stable)" - ;; - *) - VERSION="$(nvm_remote_version "$provided_version")" - ;; - esac + VERSION="$(nvm_remote_version "$provided_version")" if [ "_$VERSION" = "_N/A" ]; then echo "Version '$provided_version' not found - try \`nvm ls-remote\` to browse available versions." >&2 @@ -1324,7 +1348,7 @@ nvm() { local NVM_OUTPUT NVM_OUTPUT="$(echo "$NVM_LS_REMOTE_OUTPUT -$NVM_LS_REMOTE_IOJS_OUTPUT" | grep -v "N/A" | sed '/^$/d')" +$NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" if [ -n "$NVM_OUTPUT" ]; then nvm_print_versions "$NVM_OUTPUT" return $NVM_LS_REMOTE_EXIT_CODE || $NVM_LS_REMOTE_IOJS_EXIT_CODE @@ -1481,7 +1505,7 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | grep -v "N/A" | sed '/^$/d')" nvm_iojs_prefix nvm_node_prefix \ nvm_add_iojs_prefix nvm_strip_iojs_prefix \ nvm_is_iojs_version \ - nvm_ls_remote nvm_ls nvm_remote_version \ + nvm_ls_remote nvm_ls nvm_remote_version nvm_remote_versions \ nvm_version nvm_rc_version \ nvm_version_greater nvm_version_greater_than_or_equal_to \ nvm_supports_source_options > /dev/null 2>&1 diff --git a/test/fast/Unit tests/nvm_remote_versions b/test/fast/Unit tests/nvm_remote_versions new file mode 100755 index 0000000..bbbaa24 --- /dev/null +++ b/test/fast/Unit tests/nvm_remote_versions @@ -0,0 +1,78 @@ +#!/bin/sh + +die () { echo $@ ; cleanup ; exit 1; } + +cleanup() { + unset -f nvm_ls_remote nvm_ls_remote_iojs +} + +. ../../../nvm.sh + +OUTPUT="$(nvm_remote_versions stable 2>&1)" +EXPECTED_OUTPUT="Implicit aliases are not supported in nvm_remote_versions." +EXIT_CODE="$(nvm_remote_versions stable >/dev/null 2>&1; echo $?)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "implicit alias 'stable' did not error out with correct message, got $OUTPUT" +[ "_$EXIT_CODE" = "_1" ] || die "implicit alias 'stable' did not exit with code 1, got $EXIT_CODE" + +OUTPUT="$(nvm_remote_versions unstable 2>&1)" +EXPECTED_OUTPUT="Implicit aliases are not supported in nvm_remote_versions." +EXIT_CODE="$(nvm_remote_versions unstable >/dev/null 2>&1; echo $?)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "implicit alias 'unstable' did not error out with correct message, got $OUTPUT" +[ "_$EXIT_CODE" = "_1" ] || die "implicit alias 'unstable' did not exit with code 1, got $EXIT_CODE" + +nvm_ls_remote() { + echo "N/A" +} +OUTPUT="$(nvm_remote_versions foo)" +EXIT_CODE="$(nvm_remote_versions foo >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_N/A" ] || die "nonexistent version did not report N/A" +[ "_$EXIT_CODE" = "_3" ] || die "nonexistent version did not exit with code 3, got $EXIT_CODE" + +nvm_ls_remote_iojs() { + echo "N/A" +} +OUTPUT="$(nvm_remote_versions iojs-foo)" +EXIT_CODE="$(nvm_remote_versions iojs-foo >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_N/A" ] || die "nonexistent version did not report N/A" +[ "_$EXIT_CODE" = "_3" ] || die "nonexistent version did not exit with code 3, got $EXIT_CODE" + + +nvm_ls_remote() { + echo "test output" + echo "more test output" + echo "pattern received: _$1_" +} +nvm_ls_remote_iojs() { + echo "test iojs output" + echo "more iojs test output" + echo "iojs pattern received: _$1_" +} + +OUTPUT="$(nvm_remote_versions foo)" +EXIT_CODE="$(nvm_remote_versions foo >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_$(nvm_ls_remote foo) +$(nvm_ls_remote_iojs foo)" ] \ + || die "nvm_remote_versions foo did not return contents of nvm_ls_remote foo combined with nvm_ls_remote_iojs foo; got $OUTPUT" +[ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_versions foo did not exit with 0, got $EXIT_CODE" + +OUTPUT="$(nvm_remote_versions node)" +EXIT_CODE="$(nvm_remote_versions node >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_$(nvm_ls_remote)" ] \ + || die "nvm_remote_versions node did not return contents of nvm_ls_remote; got $OUTPUT" +[ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_versions node did not exit with 0, got $EXIT_CODE" + +OUTPUT="$(nvm_remote_versions iojs-foo)" +EXIT_CODE="$(nvm_remote_versions iojs-foo >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_$(nvm_ls_remote iojs-foo) +$(nvm_ls_remote_iojs iojs-foo)" ] \ + || die "nvm_remote_versions iojs-foo did not return contents of nvm_ls_remote iojs-foo combined with nvm_ls_remote_iojs iojs-foo; got $OUTPUT" +[ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_versions iojs-foo did not exit with 0, got $EXIT_CODE" + +OUTPUT="$(nvm_remote_versions iojs)" +EXIT_CODE="$(nvm_remote_versions iojs >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_$(nvm_ls_remote_iojs)" ] \ + || die "nvm_remote_versions iojs did not return contents of nvm_ls_remote_iojs; got $OUTPUT" +[ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_versions iojs did not exit with 0, got $EXIT_CODE" + +cleanup + diff --git a/test/installation/io.js/nvm install v1 works b/test/installation/io.js/nvm install v1 works new file mode 100755 index 0000000..b54d1f0 --- /dev/null +++ b/test/installation/io.js/nvm install v1 works @@ -0,0 +1,20 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +NVM_VERSION="v1" +NVM_PREFIXED_TEST_VERSION="$(nvm ls-remote "$NVM_VERSION" | tail -n1 | sed 's/^[ ]*//;s/[ ]*$//')" +NVM_TEST_VERSION="$(nvm_strip_iojs_prefix "$NVM_PREFIXED_TEST_VERSION")" + +# Remove the stuff we're clobbering. +[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION + +# Install from binary +nvm install "$NVM_VERSION" || die "nvm install $NVM_VERSION failed" + +# Check +[ -d ../../../versions/io.js/$NVM_TEST_VERSION ] +nvm run $NVM_PREFIXED_TEST_VERSION --version | grep $NVM_TEST_VERSION || die "'nvm run $NVM_PREFIXED_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" + From dd146519a2a429afff60eb55718e7d5300b3dae4 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 21 Jan 2015 22:06:38 -0800 Subject: [PATCH 0372/1426] Improve `nvm use` success output for io.js. Fixes #623 --- nvm.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 442350b..fbbf663 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1225,7 +1225,11 @@ nvm() { if [ "$NVM_SYMLINK_CURRENT" = true ]; then command rm -f "$NVM_DIR/current" && ln -s "$NVM_VERSION_DIR" "$NVM_DIR/current" fi - echo "Now using node $VERSION" + if nvm_is_iojs_version "$VERSION"; then + echo "Now using io.js $(nvm_strip_iojs_prefix "$VERSION")" + else + echo "Now using node $VERSION" + fi ;; "run" ) local provided_version From 2d9494af45816ca83f4ed2f5b675ac763da7af41 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 22 Jan 2015 10:21:04 -0800 Subject: [PATCH 0373/1426] Clarifying install messages, to help with #559 and https://github.com/creationix/nvm/issues/400#issuecomment-71043828 --- install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index a0287f2..c006b47 100755 --- a/install.sh +++ b/install.sh @@ -57,7 +57,7 @@ nvm_download() { install_nvm_from_git() { if [ -d "$NVM_DIR/.git" ]; then - echo "=> nvm is already installed in $NVM_DIR, trying to update" + echo "=> nvm is already installed in $NVM_DIR, trying to update using git" printf "\r=> " cd "$NVM_DIR" && (command git fetch 2> /dev/null || { echo >&2 "Failed to update nvm, run 'git fetch' in $NVM_DIR yourself." && exit 1 @@ -82,7 +82,7 @@ install_nvm_as_script() { # Downloading to $NVM_DIR mkdir -p "$NVM_DIR" if [ -d "$NVM_DIR/nvm.sh" ]; then - echo "=> nvm is already installed in $NVM_DIR, trying to update" + echo "=> nvm is already installed in $NVM_DIR, trying to update the script" else echo "=> Downloading nvm as script to '$NVM_DIR'" fi From c8f712a33438e1e548305171f1a93caa374cfbf5 Mon Sep 17 00:00:00 2001 From: yelo Date: Fri, 23 Jan 2015 11:18:51 +0800 Subject: [PATCH 0374/1426] add iojs mirror to README --- README.markdown | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.markdown b/README.markdown index 42bd831..d1c9143 100644 --- a/README.markdown +++ b/README.markdown @@ -104,6 +104,13 @@ To use a mirror of the node binaries, set `$NVM_NODEJS_ORG_MIRROR`: NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist nvm install 0.10 +To use a mirror of the iojs binaries, set `$NVM_IOJS_ORG_MIRROR`: + + export NVM_IOJS_ORG_MIRROR=https://iojs.org/dist + nvm install iojs-v1.0.3 + + NVM_IOJS_ORG_MIRROR=https://iojs.org/dist nvm install iojs-v1.0.3 + `nvm use` will not, by default, create a "current" symlink. Set `$NVM_SYMLINK_CURRENT` to "true" to enable this behavior, which is sometimes useful for IDEs. ## License From b5d9e547f2538e073186ccd403dd075529c3ec31 Mon Sep 17 00:00:00 2001 From: Tobias Witt Date: Wed, 21 Jan 2015 23:02:20 +0100 Subject: [PATCH 0375/1426] Use `tee` to replace the alias files content instead of `>` As mentioned in #615 it is possible to configure `>` to not override existing files by default. `tee` is a standard tool that can be used shell independent. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index fbbf663..ee13d9d 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1448,7 +1448,7 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" if [ $? -ne 0 ]; then echo "! WARNING: Version '$3' does not exist." >&2 fi - echo "$3" > "$NVM_ALIAS_DIR/$2" + echo "$3" | tee "$NVM_ALIAS_DIR/$2" if [ ! "_$3" = "_$VERSION" ]; then echo "$2 -> $3 (-> $VERSION)" else From cba50946527152d3fff772de6ae462d15ef5dfe9 Mon Sep 17 00:00:00 2001 From: Tobias Witt Date: Thu, 22 Jan 2015 12:20:09 +0100 Subject: [PATCH 0376/1426] Provide test case for testing the `noclobber` option from zsh This tests the absence of the bug from #615 --- ...\" again should change the target" | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100755 "test/fast/Aliases/Running \"nvm alias \" again should change the target" diff --git "a/test/fast/Aliases/Running \"nvm alias \" again should change the target" "b/test/fast/Aliases/Running \"nvm alias \" again should change the target" new file mode 100755 index 0000000..d4a8a2d --- /dev/null +++ "b/test/fast/Aliases/Running \"nvm alias \" again should change the target" @@ -0,0 +1,21 @@ +#!/bin/sh + +. ../../../nvm.sh + +die () { echo $@ ; exit 1; } + +if [ -n "$ZSH_VERSION" ]; then + # set clobber option in order to test that this does not produce any + # incompatibilities + setopt noclobber +fi + +nvm alias test-stable-1 0.0.2 + +nvm alias test-stable-1 | \grep -e "test-stable-1 -> 0.0.2 (-> v0.0.2)" \ + || die "nvm alias test-stable-1 0.0.2 did not set test-stable-1 to 0.0.2" + +nvm alias test-stable-1 0.0.1 + +nvm alias test-stable-1 | \grep -e "test-stable-1 -> 0.0.1 (-> v0.0.1)" \ + || die "nvm alias test-stable-1 0.0.1 did not set test-stable-1 to 0.0.1" From d90c1eca39050f53906d570d1d7f4e62d1be2e39 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 23 Jan 2015 02:08:13 -0800 Subject: [PATCH 0377/1426] Remove trailing whitespace --- README.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index d1c9143..e9a4dfb 100644 --- a/README.markdown +++ b/README.markdown @@ -71,7 +71,7 @@ In place of a version pointer like "0.10", you can use the special default alias nvm install unstable nvm use stable nvm run unstable --version - + If you want to install `io.js`: nvm install iojs From 8822bd719a2c745227ccbb527ae93314b6a999e9 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 23 Jan 2015 02:08:36 -0800 Subject: [PATCH 0378/1426] v0.23.1 --- README.markdown | 6 +++--- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.markdown b/README.markdown index e9a4dfb..4ef485e 100644 --- a/README.markdown +++ b/README.markdown @@ -12,11 +12,11 @@ Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/n To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.23.0/install.sh | bash + curl https://raw.githubusercontent.com/creationix/nvm/v0.23.1/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.23.0/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.23.1/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -202,7 +202,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.23.0/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.23.1/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin diff --git a/install.sh b/install.sh index c006b47..4fbfdcd 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ if [ -z "$NVM_DIR" ]; then fi nvm_latest_version() { - echo "v0.23.0" + echo "v0.23.1" } # diff --git a/nvm.sh b/nvm.sh index ee13d9d..08bbaab 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1502,7 +1502,7 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" nvm_version $2 ;; "--version" ) - echo "0.23.0" + echo "0.23.1" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum \ diff --git a/package.json b/package.json index c8e05a0..9c3659a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.23.0", + "version": "0.23.1", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 24c60e4e51145aec192fc315054b72ad746c2906 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 23 Jan 2015 10:59:49 -0800 Subject: [PATCH 0379/1426] Fix a bug in nvm_remote_version that was breaking `nvm install stable`/`nvm install unstable`. Fixes #630. --- nvm.sh | 2 +- test/fast/Unit tests/nvm_remote_version | 27 ++++++++++++++++--------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/nvm.sh b/nvm.sh index 08bbaab..34ef62c 100644 --- a/nvm.sh +++ b/nvm.sh @@ -218,7 +218,7 @@ nvm_remote_version() { PATTERN="$1" local VERSION if nvm_validate_implicit_alias "$PATTERN" 2> /dev/null ; then - VERSIONS="$(nvm_ls_remote "$PATTERN")" + VERSION="$(nvm_ls_remote "$PATTERN")" else case "_$PATTERN" in "_$(nvm_node_prefix)") diff --git a/test/fast/Unit tests/nvm_remote_version b/test/fast/Unit tests/nvm_remote_version index 16b6e3c..60b0774 100755 --- a/test/fast/Unit tests/nvm_remote_version +++ b/test/fast/Unit tests/nvm_remote_version @@ -26,9 +26,18 @@ EXIT_CODE="$(nvm_remote_version iojs-foo >/dev/null 2>&1 ; echo $?)" nvm_ls_remote() { - echo "test output" - echo "more test output" - echo "pattern received: _$1_" + if ! nvm_is_iojs_version "$1"; then + echo "test output" + echo "more test output" + echo "pattern received: _$1_" + fi +} +nvm_ls_remote_iojs() { + if nvm_is_iojs_version "$1"; then + echo "test iojs output" + echo "more iojs test output" + echo "iojs pattern received: _$1_" + fi } OUTPUT="$(nvm_remote_version foo)" EXIT_CODE="$(nvm_remote_version foo >/dev/null 2>&1 ; echo $?)" @@ -36,17 +45,17 @@ EXIT_CODE="$(nvm_remote_version foo >/dev/null 2>&1 ; echo $?)" || die "nvm_remote_version foo did not return last line only of nvm_ls_remote foo; got $OUTPUT" [ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_version foo did not exit with 0, got $EXIT_CODE" -nvm_ls_remote_iojs() { - echo "test iojs output" - echo "more iojs test output" - echo "iojs pattern received: _$1_" - -} OUTPUT="$(nvm_remote_version iojs-foo)" EXIT_CODE="$(nvm_remote_version iojs-foo >/dev/null 2>&1 ; echo $?)" [ "_$OUTPUT" = "_iojs pattern received: _iojs-foo_" ] \ || die "nvm_remote_version iojs-foo did not return last line only of nvm_ls_remote_iojs foo; got $OUTPUT" [ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_version iojs-foo did not exit with 0, got $EXIT_CODE" +OUTPUT="$(nvm_remote_version stable)" +EXIT_CODE="$(nvm_remote_version stable >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_$(nvm_ls_remote stable)" ] \ + || die "nvm_remote_version stable did not return contents of nvm_ls_remote stable; got $OUTPUT" +[ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_version stable did not exit with 0, got $EXIT_CODE" + cleanup From 1eaf6b53e434115ad30b19b9a23150e647cd5e67 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 23 Jan 2015 13:53:03 -0800 Subject: [PATCH 0380/1426] v0.23.2 --- README.markdown | 6 +++--- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.markdown b/README.markdown index 4ef485e..e308187 100644 --- a/README.markdown +++ b/README.markdown @@ -12,11 +12,11 @@ Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/n To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.23.1/install.sh | bash + curl https://raw.githubusercontent.com/creationix/nvm/v0.23.2/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.23.1/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.23.2/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -202,7 +202,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.23.1/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.23.2/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin diff --git a/install.sh b/install.sh index 4fbfdcd..dcd833f 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ if [ -z "$NVM_DIR" ]; then fi nvm_latest_version() { - echo "v0.23.1" + echo "v0.23.2" } # diff --git a/nvm.sh b/nvm.sh index 34ef62c..76aafc6 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1502,7 +1502,7 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" nvm_version $2 ;; "--version" ) - echo "0.23.1" + echo "0.23.2" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum \ diff --git a/package.json b/package.json index 9c3659a..adfa104 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.23.1", + "version": "0.23.2", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 3e74bac964a78af15ab8a4e51f0515ee6fa7fe7b Mon Sep 17 00:00:00 2001 From: "G. Kay Lee" Date: Sun, 25 Jan 2015 15:29:36 +0800 Subject: [PATCH 0381/1426] Update README.markdown Add link to io.js repo as suggested in #618 --- README.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index e308187..35e91f7 100644 --- a/README.markdown +++ b/README.markdown @@ -72,7 +72,7 @@ In place of a version pointer like "0.10", you can use the special default alias nvm use stable nvm run unstable --version -If you want to install `io.js`: +If you want to install [io.js](https://github.com/iojs/io.js/): nvm install iojs From a6819b30185865f707e5686dedfe0e0655029e1b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 25 Jan 2015 12:07:29 -0800 Subject: [PATCH 0382/1426] Fix `nvm ls v1.0.3` so that it locates `iojs-v1.0.3`. Also fix `nvm uninstall v1.0.3` so it won't uninstall it if it's the current version. node versions will still take priority if there's ever a version overlap. --- nvm.sh | 6 ++++-- ...nvm use v1.0.0\" uses iojs-v1.0.0 iojs version" | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) create mode 100755 "test/slow/nvm use/Running \"nvm use v1.0.0\" uses iojs-v1.0.0 iojs version" diff --git a/nvm.sh b/nvm.sh index 76aafc6..7b1fe69 100644 --- a/nvm.sh +++ b/nvm.sh @@ -469,6 +469,8 @@ nvm_ls() { if [ "_$(echo "$PATTERN" | cut -c1-1)" = "_v" ] && [ "_$(nvm_num_version_groups "$PATTERN")" = "_3" ]; then if [ -d "$(nvm_version_path "$PATTERN")" ]; then VERSIONS="$PATTERN" + elif [ -d "$(nvm_version_path "$(nvm_add_iojs_prefix "$PATTERN")")" ]; then + VERSIONS="$(nvm_add_iojs_prefix "$PATTERN")" fi else case "$PATTERN" in @@ -1081,8 +1083,8 @@ nvm() { VERSION="$(nvm_version "$PATTERN")" ;; esac - if [ "_$PATTERN" = "_$(nvm_ls_current)" ]; then - if nvm_is_iojs_version "$PATTERN"; then + if [ "_$VERSION" = "_$(nvm_ls_current)" ]; then + if nvm_is_iojs_version "$VERSION"; then echo "nvm: Cannot uninstall currently-active io.js version, $VERSION (inferred from $PATTERN)." >&2 else echo "nvm: Cannot uninstall currently-active node version, $VERSION (inferred from $PATTERN)." >&2 diff --git "a/test/slow/nvm use/Running \"nvm use v1.0.0\" uses iojs-v1.0.0 iojs version" "b/test/slow/nvm use/Running \"nvm use v1.0.0\" uses iojs-v1.0.0 iojs version" new file mode 100755 index 0000000..f2a2062 --- /dev/null +++ "b/test/slow/nvm use/Running \"nvm use v1.0.0\" uses iojs-v1.0.0 iojs version" @@ -0,0 +1,14 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +nvm deactivate 2>&1 >/dev/null || die 'deactivate failed' + +nvm use 'v1.0.0' || die 'nvm use v1.0.0 failed' +OUTPUT="$(nvm current)" +EXPECTED_OUTPUT="$(nvm_version v1.0.0)" + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ + || die "'nvm use v1.0.0' + 'nvm current' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'" From 079294582452c7514e14635705c080295d7d3f81 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 30 Jan 2015 23:46:33 -0800 Subject: [PATCH 0383/1426] Bypass sha1sum/sha1 aliases. Fixes #640. --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 7b1fe69..2966017 100644 --- a/nvm.sh +++ b/nvm.sh @@ -604,9 +604,9 @@ nvm_ls_remote_iojs() { nvm_checksum() { if nvm_has "sha1sum"; then - checksum="$(sha1sum "$1" | command awk '{print $1}')" + checksum="$(command sha1sum "$1" | command awk '{print $1}')" elif nvm_has "sha1"; then - checksum="$(sha1 -q "$1")" + checksum="$(command sha1 -q "$1")" else checksum="$(shasum "$1" | command awk '{print $1}')" fi From 8a87133f7191b0545715c0e6d5e03315cd180ebe Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 1 Feb 2015 12:45:51 -0800 Subject: [PATCH 0384/1426] When there's no `nvm run` output, don't echo an empty line. --- nvm.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 2966017..7e1a961 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1284,7 +1284,9 @@ nvm() { fi local EXIT_CODE EXIT_CODE="$?" - echo "$OUTPUT" + if [ -n "$OUTPUT" ]; then + echo "$OUTPUT" + fi return $EXIT_CODE ;; "exec" ) From e1b7496cf06435824d8249e012e2f006c92077ca Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 1 Feb 2015 13:01:40 -0800 Subject: [PATCH 0385/1426] Add nvm_is_valid_version --- nvm.sh | 16 ++++++++++++++++ test/fast/Unit tests/nvm_is_valid_version | 13 +++++++++++++ 2 files changed, 29 insertions(+) create mode 100755 test/fast/Unit tests/nvm_is_valid_version diff --git a/nvm.sh b/nvm.sh index 7e1a961..497ad2b 100644 --- a/nvm.sh +++ b/nvm.sh @@ -263,6 +263,22 @@ $(nvm_ls_remote_iojs "$PATTERN")" | command grep -v "N/A" | command sed '/^$/d') fi } +nvm_is_valid_version() { + if nvm_validate_implicit_alias "$1" 2> /dev/null; then + return 0 + fi + case "$1" in + "$(nvm_iojs_prefix)" | "$(nvm_node_prefix)") + return 0 + ;; + *) + local VERSION + VERSION="$(nvm_strip_iojs_prefix "$1")" + nvm_version_greater "$VERSION" + ;; + esac +} + nvm_normalize_version() { echo "$1" | command sed -e 's/^v//' | command awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }' } diff --git a/test/fast/Unit tests/nvm_is_valid_version b/test/fast/Unit tests/nvm_is_valid_version new file mode 100755 index 0000000..d34f767 --- /dev/null +++ b/test/fast/Unit tests/nvm_is_valid_version @@ -0,0 +1,13 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +nvm_is_valid_version 0.1.2 || die "nvm_is_valid_version 0.1.2 did not return 0" +nvm_is_valid_version foo && die "nvm_is_valid_version foo did not return 1" +nvm_is_valid_version iojs-1 || die "nvm_is_valid_version iojs-1 did not return 0" +nvm_is_valid_version iojs || die "nvm_is_valid_version iojs did not return 0" +nvm_is_valid_version node || die "nvm_is_valid_version node did not return 0" +nvm_is_valid_version stable || die "nvm_is_valid_version stable did not return 0" +nvm_is_valid_version unstable || die "nvm_is_valid_version unstable did not return 0" From 0b4c1e14cf8f00232591a11473c56677a462d550 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 1 Feb 2015 13:02:46 -0800 Subject: [PATCH 0386/1426] Ensure that `nvm run 0.12 --version` errors out sensibly when 0.12 isn't installed. --- nvm.sh | 12 ++++++++---- ...uld error out sensibly when 0.x is not installed" | 9 +++++++++ 2 files changed, 17 insertions(+), 4 deletions(-) create mode 100755 "test/slow/nvm run/Running \"nvm run 0.x\" should error out sensibly when 0.x is not installed" diff --git a/nvm.sh b/nvm.sh index 497ad2b..a0bfa8d 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1271,7 +1271,7 @@ nvm() { provided_version=$1 if [ -n "$provided_version" ]; then VERSION="$(nvm_version "$provided_version")" - if [ "_$VERSION" = "_N/A" ]; then + if [ "_$VERSION" = "_N/A" ] && ! nvm_is_valid_version "$provided_version"; then provided_version='' if [ $has_checked_nvmrc -ne 1 ]; then nvm_rc_version && has_checked_nvmrc=1 @@ -1290,16 +1290,20 @@ nvm() { local ARGS ARGS="$@" local OUTPUT + local EXIT_CODE - if [ "$NVM_IOJS" = true ]; then + if [ "_$VERSION" = "_N/A" ]; then + echo "$(nvm_ensure_version_prefix "$provided_version") is not installed yet" >&2 + EXIT_CODE=1 + elif [ "$NVM_IOJS" = true ]; then echo "Running io.js $(nvm_strip_iojs_prefix "$VERSION")" OUTPUT="$(nvm use "$VERSION" >/dev/null && iojs "$ARGS")" + EXIT_CODE="$?" else echo "Running node $VERSION" OUTPUT="$(nvm use "$VERSION" >/dev/null && node "$ARGS")" + EXIT_CODE="$?" fi - local EXIT_CODE - EXIT_CODE="$?" if [ -n "$OUTPUT" ]; then echo "$OUTPUT" fi diff --git "a/test/slow/nvm run/Running \"nvm run 0.x\" should error out sensibly when 0.x is not installed" "b/test/slow/nvm run/Running \"nvm run 0.x\" should error out sensibly when 0.x is not installed" new file mode 100755 index 0000000..744ac81 --- /dev/null +++ "b/test/slow/nvm run/Running \"nvm run 0.x\" should error out sensibly when 0.x is not installed" @@ -0,0 +1,9 @@ +#!/bin/sh + + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +[ "$(nvm run 0.2 --version 2>&1)" = "v0.2 is not installed yet" ] || die "\`nvm run\` with an uninstalled node version failed to error out correctly" +[ "$(nvm run iojs-0.2 --version 2>&1)" = "iojs-v0.2 is not installed yet" ] || die "\`nvm run\` with an uninstalled iojs version failed to error out correctly" From 2116d2ff911900f837a75e08016796257498a181 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 2 Feb 2015 17:07:16 -0800 Subject: [PATCH 0387/1426] Filter out the io.js version dir from nvm_ls output. Fixes #642. --- nvm.sh | 1 + .../Running \"nvm ls io\" should return NA" | 7 +++++++ 2 files changed, 8 insertions(+) create mode 100755 "test/fast/Listing versions/Running \"nvm ls io\" should return NA" diff --git a/nvm.sh b/nvm.sh index a0bfa8d..c2056f7 100644 --- a/nvm.sh +++ b/nvm.sh @@ -541,6 +541,7 @@ nvm_ls() { fi VERSIONS="$(command find $NVM_DIRS_TO_SEARCH -maxdepth 1 -type d -name "$PATTERN*" \ | command sed "s#$(nvm_version_dir iojs)/#"$(nvm_iojs_prefix)"-#" \ + | command grep -v "$(nvm_version_dir iojs)" \ | command sed "s#^$NVM_DIR/##" \ | command grep -v -e '^versions$' \ | command sed 's#^versions/##' \ diff --git "a/test/fast/Listing versions/Running \"nvm ls io\" should return NA" "b/test/fast/Listing versions/Running \"nvm ls io\" should return NA" new file mode 100755 index 0000000..ddd1123 --- /dev/null +++ "b/test/fast/Listing versions/Running \"nvm ls io\" should return NA" @@ -0,0 +1,7 @@ + #!/bin/sh + +. ../../../nvm.sh + +nvm ls io +[ "$?" = "3" ] + From 0f1f3ed29c8c3c7b390b19070c8bbca5e3c8e6c0 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 2 Feb 2015 20:26:00 -0800 Subject: [PATCH 0388/1426] v0.23.3 --- README.markdown | 6 +++--- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.markdown b/README.markdown index 35e91f7..debb5fe 100644 --- a/README.markdown +++ b/README.markdown @@ -12,11 +12,11 @@ Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/n To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.23.2/install.sh | bash + curl https://raw.githubusercontent.com/creationix/nvm/v0.23.3/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.23.2/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.23.3/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -202,7 +202,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.23.2/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.23.3/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin diff --git a/install.sh b/install.sh index dcd833f..0e22f82 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ if [ -z "$NVM_DIR" ]; then fi nvm_latest_version() { - echo "v0.23.2" + echo "v0.23.3" } # diff --git a/nvm.sh b/nvm.sh index c2056f7..85f66ec 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1527,7 +1527,7 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" nvm_version $2 ;; "--version" ) - echo "0.23.2" + echo "0.23.3" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum \ diff --git a/package.json b/package.json index adfa104..604ca27 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.23.2", + "version": "0.23.3", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 59e27f8108aec731dad23da24e3562301108259c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 3 Feb 2015 16:50:48 -0800 Subject: [PATCH 0389/1426] Prevent `VERSION=''` output caused by double local declaration. Fixes #644. --- nvm.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 85f66ec..e25d3b5 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1090,11 +1090,10 @@ nvm() { local PATTERN PATTERN="$2" - local VERSION case "_$PATTERN" in "_$(nvm_iojs_prefix)" | "_$(nvm_iojs_prefix)-" \ | "_$(nvm_node_prefix)" | "_$(nvm_node_prefix)-") - VERSION="$(nvm_version $PATTERN)" + VERSION="$(nvm_version "$PATTERN")" ;; *) VERSION="$(nvm_version "$PATTERN")" From be56ff3b2ea19ba4cb88db5312395d2e81227ad8 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 7 Feb 2015 10:08:20 -0800 Subject: [PATCH 0390/1426] Make sure multiple `nvm run` arguments get passed through to node/iojs properly. Fixes #641. --- nvm.sh | 13 +++++++++++-- ...ing \"nvm run --harmony --version\" should work" | 9 +++++++++ .../nvm run/Running \"nvm run 0.x\" should work" | 2 +- 3 files changed, 21 insertions(+), 3 deletions(-) create mode 100755 "test/slow/nvm run/Running \"nvm run --harmony --version\" should work" diff --git a/nvm.sh b/nvm.sh index e25d3b5..07702f6 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1292,18 +1292,27 @@ nvm() { local OUTPUT local EXIT_CODE + local ZHS_HAS_SHWORDSPLIT_UNSET + ZHS_HAS_SHWORDSPLIT_UNSET=1 + if nvm_has "setopt"; then + ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; echo $?) + setopt shwordsplit + fi if [ "_$VERSION" = "_N/A" ]; then echo "$(nvm_ensure_version_prefix "$provided_version") is not installed yet" >&2 EXIT_CODE=1 elif [ "$NVM_IOJS" = true ]; then echo "Running io.js $(nvm_strip_iojs_prefix "$VERSION")" - OUTPUT="$(nvm use "$VERSION" >/dev/null && iojs "$ARGS")" + OUTPUT="$(nvm use "$VERSION" >/dev/null && iojs $ARGS)" EXIT_CODE="$?" else echo "Running node $VERSION" - OUTPUT="$(nvm use "$VERSION" >/dev/null && node "$ARGS")" + OUTPUT="$(nvm use "$VERSION" >/dev/null && node $ARGS)" EXIT_CODE="$?" fi + if [ $ZHS_HAS_SHWORDSPLIT_UNSET -eq 1 ] && nvm_has "unsetopt"; then + unsetopt shwordsplit + fi if [ -n "$OUTPUT" ]; then echo "$OUTPUT" fi diff --git "a/test/slow/nvm run/Running \"nvm run --harmony --version\" should work" "b/test/slow/nvm run/Running \"nvm run --harmony --version\" should work" new file mode 100755 index 0000000..dfb90a9 --- /dev/null +++ "b/test/slow/nvm run/Running \"nvm run --harmony --version\" should work" @@ -0,0 +1,9 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +nvm run 0.10.7 --harmony --version +[ "_$(nvm run 0.10.7 --harmony --version 2>/dev/null | tail -1)" = "_v0.10.7" ] || die "\`nvm run --harmony --version\` failed to run with the correct version" + diff --git "a/test/slow/nvm run/Running \"nvm run 0.x\" should work" "b/test/slow/nvm run/Running \"nvm run 0.x\" should work" index cc56601..9bcf97f 100755 --- "a/test/slow/nvm run/Running \"nvm run 0.x\" should work" +++ "b/test/slow/nvm run/Running \"nvm run 0.x\" should work" @@ -5,5 +5,5 @@ die () { echo $@ ; exit 1; } . ../../../nvm.sh -[ "$(nvm run 0.10.7 --version | tail -1)" = "v0.10.7" ] || die "`nvm run` failed to run with the correct version" +[ "$(nvm run 0.10.7 --version | tail -1)" = "v0.10.7" ] || die "\`nvm run\` failed to run with the correct version" From 64b16faf727183c6c9d224592a035b05c7b58b96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Saparelli?= Date: Sun, 8 Feb 2015 11:05:21 +1300 Subject: [PATCH 0391/1426] Point fish users in the right direction --- README.markdown | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/README.markdown b/README.markdown index debb5fe..548d4af 100644 --- a/README.markdown +++ b/README.markdown @@ -189,11 +189,11 @@ If you try to install a node version and the installation fails, be sure to dele curl: (33) HTTP server doesn't seem to support byte ranges. Cannot resume. -Where's my 'sudo node'? Checkout this link: +Where's my 'sudo node'? Check out this link: https://github.com/creationix/nvm/issues/43 -on Arch Linux and other systems using python3 by default, before running *install* you need to +On Arch Linux and other systems using python3 by default, before running *install* you need to export PYTHON=python2 @@ -201,8 +201,13 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 +The [Fish] shell cannot run nvm. There exists an outdated but still functional [port to native fish][nvm-fish], or a more recent and simple wrapper: + +https://github.com/passcod/nvm-fish-wrapper + [1]: https://github.com/creationix/nvm.git [2]: https://github.com/creationix/nvm/blob/v0.23.3/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin - +[Fish]: http://fishshell.com +[nvm-fish]: https://github.com/Alex7Kom/nvm-fish From 2db71a85a571ec3e9cc2e699662f3367ddbb87cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Saparelli?= Date: Sun, 8 Feb 2015 11:31:31 +1300 Subject: [PATCH 0392/1426] Move mention of Fish near the Windows alternatives --- README.markdown | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/README.markdown b/README.markdown index 548d4af..9916d2a 100644 --- a/README.markdown +++ b/README.markdown @@ -8,6 +8,10 @@ Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/n - [nvmw](https://github.com/hakobera/nvmw) - [nvm-windows](https://github.com/coreybutler/nvm-windows) +Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creationix/nvm/issues/303)). Two alternatives exist, which are not supported nor developed by us: + - [nvm-fish-wrapper](https://github.com/passcod/nvm-fish-wrapper) + - [nvm-fish](https://github.com/Alex7Kom/nvm-fish) (does not support iojs) + ### Install script To install you could use the [install script][2] using cURL: @@ -201,13 +205,8 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 -The [Fish] shell cannot run nvm. There exists an outdated but still functional [port to native fish][nvm-fish], or a more recent and simple wrapper: - -https://github.com/passcod/nvm-fish-wrapper - [1]: https://github.com/creationix/nvm.git [2]: https://github.com/creationix/nvm/blob/v0.23.3/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com -[nvm-fish]: https://github.com/Alex7Kom/nvm-fish From 4ba7ee57978fc51c203c7ea00b535b9e73cc2196 Mon Sep 17 00:00:00 2001 From: elliottcable Date: Fri, 23 Jan 2015 20:38:50 -0600 Subject: [PATCH 0393/1426] install: Show a warning when global packages exist --- install.sh | 38 +++++++++++++++++++ test/install_script/nvm_check_global_modules | 40 ++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100755 test/install_script/nvm_check_global_modules diff --git a/install.sh b/install.sh index 0e22f82..45070fc 100755 --- a/install.sh +++ b/install.sh @@ -120,6 +120,42 @@ nvm_detect_profile() { fi } +# +# Check whether the user has any globally-installed npm modules in their system +# Node, and warn them if so. +# +nvm_check_global_modules() { + local NPM_GLOBAL_MODULES + NPM_GLOBAL_MODULES=$(npm list -g --depth=0 | sed '/ npm@/d') + + local MODULE_COUNT + MODULE_COUNT=$( + printf %s\\n "$NPM_GLOBAL_MODULES" | + sed -ne '1!p' | # Remove the first line + wc -l | tr -d ' ' # Count entries + ) + + if [ $MODULE_COUNT -ne 0 ]; then + cat <<-'END_MESSAGE' + => You currently have modules installed globally with `npm`. These will no + => longer be linked to the active version of Node when you install a new node + => with `nvm`; and they may (depending on how you construct your `$PATH`) + => override the binaries of modules installed with `nvm`: + + END_MESSAGE + printf %s\\n "$NPM_GLOBAL_MODULES" + cat <<-'END_MESSAGE' + + => If you wish to uninstall them at a later point (or re-install them under your + => `nvm` Nodes), you can remove them from the system Node as follows: + + $ nvm use system + $ npm uninstall -g a_module + + END_MESSAGE + fi +} + nvm_do_install() { if [ -z "$METHOD" ]; then # Autodetect install method @@ -169,6 +205,8 @@ nvm_do_install() { fi fi + nvm_check_global_modules + echo "=> Close and reopen your terminal to start using nvm" nvm_reset } diff --git a/test/install_script/nvm_check_global_modules b/test/install_script/nvm_check_global_modules new file mode 100755 index 0000000..4a5661c --- /dev/null +++ b/test/install_script/nvm_check_global_modules @@ -0,0 +1,40 @@ +#!/bin/sh + +cleanup () { + rm -rf "$npm_config_prefix/lib" >/dev/null 2>&1 + unset npm_config_prefix + + unset -f setup cleanup die skip + unset message +} +die () { echo $@ ; cleanup ; exit 1; } + +NVM_ENV=testing . ../../install.sh + +setup () { + npm_config_prefix="$(pwd)" + export npm_config_prefix + mkdir -p "$npm_config_prefix/lib" +} + + +setup + +npm install -g nop >/dev/null 2>&1 +message=$(nvm_check_global_modules) +[ ! -z "$message" ] || die "nvm_check_global_modules should have printed a notice when npm had global modules installed" + +npm uninstall -g nop >/dev/null 2>&1 +message=$(nvm_check_global_modules) +[ -z "$message" ] || die "nvm_check_global_modules should not have printed a notice when npm had no global modules installed" + +# Faking an installation of npm +mkdir -p "$npm_config_prefix/lib/node_modules/npm" +cat <<'JSON' >"$npm_config_prefix/lib/node_modules/npm/package.json" +{ "name": "npm", "version": "0.0.1fake" } +JSON + +message=$(nvm_check_global_modules) +[ -z "$message" ] || die "nvm_check_global_modules should have not printed a notice when npm had only itself installed as a global module" + +cleanup From dd1a9ca6a0ae61289240d4317514fcf156b42362 Mon Sep 17 00:00:00 2001 From: elliottcable Date: Thu, 29 Jan 2015 21:23:16 -0600 Subject: [PATCH 0394/1426] install: Adding global-module check to function resets --- install.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 45070fc..125e651 100755 --- a/install.sh +++ b/install.sh @@ -216,7 +216,9 @@ nvm_do_install() { # during the execution of the install script # nvm_reset() { - unset -f nvm_do_install nvm_has nvm_download install_nvm_as_script install_nvm_from_git nvm_reset nvm_detect_profile nvm_latest_version + unset -f nvm_reset nvm_has nvm_latest_version \ + nvm_source nvm_download install_nvm_as_script install_nvm_from_git \ + nvm_detect_profile nvm_check_global_modules nvm_do_install } [ "_$NVM_ENV" = "_testing" ] || nvm_do_install From 6cfc30933659e0976d21d4094b09664f2530b768 Mon Sep 17 00:00:00 2001 From: elliottcable Date: Mon, 2 Feb 2015 20:42:12 -0600 Subject: [PATCH 0395/1426] install: Pass global-module check in the absence of npm --- install.sh | 7 +++++++ test/install_script/nvm_check_global_modules | 16 +++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 125e651..5018540 100755 --- a/install.sh +++ b/install.sh @@ -125,6 +125,13 @@ nvm_detect_profile() { # Node, and warn them if so. # nvm_check_global_modules() { + command -v npm >/dev/null 2>&1 || return 0 + + local NPM_VERSION + NPM_VERSION="$(npm --version)" + NPM_VERSION="${NPM_VERSION:-0}" + [ "${NPM_VERSION%%[!0-9]*}" -gt 1 ] || return 0 + local NPM_GLOBAL_MODULES NPM_GLOBAL_MODULES=$(npm list -g --depth=0 | sed '/ npm@/d') diff --git a/test/install_script/nvm_check_global_modules b/test/install_script/nvm_check_global_modules index 4a5661c..10e0d40 100755 --- a/test/install_script/nvm_check_global_modules +++ b/test/install_script/nvm_check_global_modules @@ -4,14 +4,19 @@ cleanup () { rm -rf "$npm_config_prefix/lib" >/dev/null 2>&1 unset npm_config_prefix + rm -f npm + PATH="$ORIGINAL_PATH" + unset -f setup cleanup die skip - unset message + unset message ORIGINAL_PATH } die () { echo $@ ; cleanup ; exit 1; } NVM_ENV=testing . ../../install.sh setup () { + ORIGINAL_PATH="$PATH" + npm_config_prefix="$(pwd)" export npm_config_prefix mkdir -p "$npm_config_prefix/lib" @@ -37,4 +42,13 @@ JSON message=$(nvm_check_global_modules) [ -z "$message" ] || die "nvm_check_global_modules should have not printed a notice when npm had only itself installed as a global module" +# Faking the absence of npm +PATH=".:$PATH" +touch npm +chmod +x npm + +message=$(nvm_check_global_modules) +[ -z "$message" ] || die "nvm_check_global_modules should have not printed a notice when npm was unavailable" + + cleanup From 0717d5f99508c89c752e2f1b1532e2747c742696 Mon Sep 17 00:00:00 2001 From: elliottcable Date: Wed, 4 Feb 2015 16:39:57 -0600 Subject: [PATCH 0396/1426] install: some tweaks and clean-up --- install.sh | 8 ++++---- test/install_script/nvm_check_global_modules | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/install.sh b/install.sh index 5018540..4339874 100755 --- a/install.sh +++ b/install.sh @@ -133,14 +133,14 @@ nvm_check_global_modules() { [ "${NPM_VERSION%%[!0-9]*}" -gt 1 ] || return 0 local NPM_GLOBAL_MODULES - NPM_GLOBAL_MODULES=$(npm list -g --depth=0 | sed '/ npm@/d') - + NPM_GLOBAL_MODULES="$(npm list -g --depth=0 | sed '/ npm@/d')" + local MODULE_COUNT - MODULE_COUNT=$( + MODULE_COUNT="$( printf %s\\n "$NPM_GLOBAL_MODULES" | sed -ne '1!p' | # Remove the first line wc -l | tr -d ' ' # Count entries - ) + )" if [ $MODULE_COUNT -ne 0 ]; then cat <<-'END_MESSAGE' diff --git a/test/install_script/nvm_check_global_modules b/test/install_script/nvm_check_global_modules index 10e0d40..5d5db22 100755 --- a/test/install_script/nvm_check_global_modules +++ b/test/install_script/nvm_check_global_modules @@ -25,11 +25,11 @@ setup () { setup -npm install -g nop >/dev/null 2>&1 +npm install -g nop >/dev/null message=$(nvm_check_global_modules) [ ! -z "$message" ] || die "nvm_check_global_modules should have printed a notice when npm had global modules installed" -npm uninstall -g nop >/dev/null 2>&1 +npm uninstall -g nop >/dev/null message=$(nvm_check_global_modules) [ -z "$message" ] || die "nvm_check_global_modules should not have printed a notice when npm had no global modules installed" From c8efe3d28ab862441f7f40e2683b1a91688aabc4 Mon Sep 17 00:00:00 2001 From: elliottcable Date: Sat, 7 Feb 2015 20:50:10 -0600 Subject: [PATCH 0397/1426] install: adding some debugging output --- .travis.yml | 2 +- install.sh | 33 ++++++++++++-- test/install_script/nvm_check_global_modules | 47 +++++++++++++++++--- 3 files changed, 71 insertions(+), 11 deletions(-) diff --git a/.travis.yml b/.travis.yml index 762181b..b396ea9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ install: - chmod +x /tmp/urchin/package/urchin - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' script: - - NVM_DIR=$TRAVIS_BUILD_DIR make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin/package/urchin test-$SHELL + - DEBUG='nvm:*' NVM_DIR=$TRAVIS_BUILD_DIR make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin/package/urchin test-$SHELL env: - SHELL=sh TEST_SUITE=install_script - SHELL=dash TEST_SUITE=install_script diff --git a/install.sh b/install.sh index 4339874..b3ca449 100755 --- a/install.sh +++ b/install.sh @@ -1,7 +1,16 @@ #!/bin/bash - set -e +puts() (IFS=" "; printf %s\\n "$*" ;) +error() (IFS=" "; printf %s\\n "$*" >&2 ;) +debug() (IFS=" "; printf %s\\n ".. $*" >&2 ;) + +if [ "$DEBUG" = 'nvm:*' ] || [ "$DEBUG" = 'nvm:install' ]; then + NVM_DEBUG=0 + debug 'Script debugging enabled (in: `install.sh`).' +fi + + nvm_has() { type "$1" > /dev/null 2>&1 } @@ -42,7 +51,9 @@ nvm_source() { nvm_download() { if nvm_has "curl"; then + [ "$NVM_DEBUG" = 0 ] && set +x curl $* + [ "$NVM_DEBUG" = 0 ] && set -x elif nvm_has "wget"; then # Emulate curl with wget ARGS=$(echo "$*" | command sed -e 's/--progress-bar /--progress=bar /' \ @@ -51,7 +62,9 @@ nvm_download() { -e 's/-s /-q /' \ -e 's/-o /-O /' \ -e 's/-C - /-c /') + [ "$NVM_DEBUG" = 0 ] && set +x wget $ARGS + [ "$NVM_DEBUG" = 0 ] && set +x fi } @@ -66,10 +79,18 @@ install_nvm_from_git() { # Cloning to $NVM_DIR echo "=> Downloading nvm from git to '$NVM_DIR'" printf "\r=> " + [ "$NVM_DEBUG" = 0 ] && set +x mkdir -p "$NVM_DIR" command git clone "$(nvm_source git)" "$NVM_DIR" + [ "$NVM_DEBUG" = 0 ] && set -x fi - cd "$NVM_DIR" && command git checkout --quiet $(nvm_latest_version) && command git branch --quiet -D master >/dev/null 2>&1 + + [ "$NVM_DEBUG" = 0 ] && set +x + cd "$NVM_DIR" || return $? + command git checkout --quiet $(nvm_latest_version) || return $? + command git branch --quiet -D master >/dev/null 2>&1 || return $? + [ "$NVM_DEBUG" = 0 ] && set +x + return } @@ -130,6 +151,7 @@ nvm_check_global_modules() { local NPM_VERSION NPM_VERSION="$(npm --version)" NPM_VERSION="${NPM_VERSION:-0}" + [ "$NVM_DEBUG" = 0 ] && debug "NPM detected (at version ${NPM_VERSION}.)" [ "${NPM_VERSION%%[!0-9]*}" -gt 1 ] || return 0 local NPM_GLOBAL_MODULES @@ -141,6 +163,9 @@ nvm_check_global_modules() { sed -ne '1!p' | # Remove the first line wc -l | tr -d ' ' # Count entries )" + [ "$NVM_DEBUG" = 0 ] && { + debug "(${MODULE_COUNT}) global modules detected:" + error "$NPM_GLOBAL_MODULES" ;} if [ $MODULE_COUNT -ne 0 ]; then cat <<-'END_MESSAGE' @@ -223,9 +248,11 @@ nvm_do_install() { # during the execution of the install script # nvm_reset() { - unset -f nvm_reset nvm_has nvm_latest_version \ + unset -f puts error debug \ + nvm_reset nvm_has nvm_latest_version \ nvm_source nvm_download install_nvm_as_script install_nvm_from_git \ nvm_detect_profile nvm_check_global_modules nvm_do_install + unset NPM_DEBUG } [ "_$NVM_ENV" = "_testing" ] || nvm_do_install diff --git a/test/install_script/nvm_check_global_modules b/test/install_script/nvm_check_global_modules index 5d5db22..5a44241 100755 --- a/test/install_script/nvm_check_global_modules +++ b/test/install_script/nvm_check_global_modules @@ -1,4 +1,5 @@ #!/bin/sh +puts() (IFS=" "; printf %s\\n "$*" ;) cleanup () { rm -rf "$npm_config_prefix/lib" >/dev/null 2>&1 @@ -7,10 +8,11 @@ cleanup () { rm -f npm PATH="$ORIGINAL_PATH" - unset -f setup cleanup die skip + unset -f setup cleanup die unset message ORIGINAL_PATH } -die () { echo $@ ; cleanup ; exit 1; } + +die () { puts "!! $@" ; cleanup ; exit 1; } NVM_ENV=testing . ../../install.sh @@ -22,16 +24,32 @@ setup () { mkdir -p "$npm_config_prefix/lib" } - setup + npm install -g nop >/dev/null message=$(nvm_check_global_modules) -[ ! -z "$message" ] || die "nvm_check_global_modules should have printed a notice when npm had global modules installed" +[ ! -z "$message" ] || { + puts '-- `npm --version`: '"$(npm --version)" + puts '-- `npm list -g`:' + npm list -g --depth=0 + puts '-- Printed message:' + puts "'''$message'''" + + die "nvm_check_global_modules should have printed a notice when npm had global modules installed" ;} + npm uninstall -g nop >/dev/null message=$(nvm_check_global_modules) -[ -z "$message" ] || die "nvm_check_global_modules should not have printed a notice when npm had no global modules installed" +[ -z "$message" ] || { + puts '-- `npm --version`: '"$(npm --version)" + puts '-- `npm list -g`:' + npm list -g --depth=0 + puts '-- Printed message:' + puts "'''$message'''" + + die "nvm_check_global_modules should not have printed a notice when npm had no global modules installed" ;} + # Faking an installation of npm mkdir -p "$npm_config_prefix/lib/node_modules/npm" @@ -40,7 +58,16 @@ cat <<'JSON' >"$npm_config_prefix/lib/node_modules/npm/package.json" JSON message=$(nvm_check_global_modules) -[ -z "$message" ] || die "nvm_check_global_modules should have not printed a notice when npm had only itself installed as a global module" +[ -z "$message" ] || { + puts '-- `which npm`: ' "$(which npm)" + puts '-- `npm --version`: ' "$(npm --version)" + puts '-- `npm list -g`:' + npm list -g --depth=0 + puts '-- Printed message:' + puts "'''$message'''" + + die "nvm_check_global_modules should not have printed a notice when npm had only itself installed as a global module" ;} + # Faking the absence of npm PATH=".:$PATH" @@ -48,7 +75,13 @@ touch npm chmod +x npm message=$(nvm_check_global_modules) -[ -z "$message" ] || die "nvm_check_global_modules should have not printed a notice when npm was unavailable" +[ -z "$message" ] || { + puts '-- `which npm`: ' "$(which npm)" + puts '-- `npm --version`: ' "$(npm --version)" + puts '-- Printed message:' + puts "'''$message'''" + + die "nvm_check_global_modules should not have printed a notice when npm was unavailable" ;} cleanup From a216f56443daf9e9ed3047be563f93de9ec1f083 Mon Sep 17 00:00:00 2001 From: elliottcable Date: Sat, 7 Feb 2015 20:53:53 -0600 Subject: [PATCH 0398/1426] tests: fail install_script test if npm can't install package --- test/install_script/nvm_check_global_modules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/install_script/nvm_check_global_modules b/test/install_script/nvm_check_global_modules index 5a44241..0c6889a 100755 --- a/test/install_script/nvm_check_global_modules +++ b/test/install_script/nvm_check_global_modules @@ -27,7 +27,7 @@ setup () { setup -npm install -g nop >/dev/null +npm install -g nop >/dev/null || die 'nvm_check_global_modules cannot be tested because `npm` cannot install the `nop` package' message=$(nvm_check_global_modules) [ ! -z "$message" ] || { puts '-- `npm --version`: '"$(npm --version)" From ea4264645b07484dc071f4027f003804cd6e2893 Mon Sep 17 00:00:00 2001 From: elliottcable Date: Sat, 7 Feb 2015 21:12:46 -0600 Subject: [PATCH 0399/1426] install: support `npm`s lower than v2 --- install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index b3ca449..63a7af4 100755 --- a/install.sh +++ b/install.sh @@ -150,9 +150,9 @@ nvm_check_global_modules() { local NPM_VERSION NPM_VERSION="$(npm --version)" - NPM_VERSION="${NPM_VERSION:-0}" + NPM_VERSION="${NPM_VERSION:--1}" [ "$NVM_DEBUG" = 0 ] && debug "NPM detected (at version ${NPM_VERSION}.)" - [ "${NPM_VERSION%%[!0-9]*}" -gt 1 ] || return 0 + [ "${NPM_VERSION%%[!0-9]*}" -gt 0 ] || return 0 local NPM_GLOBAL_MODULES NPM_GLOBAL_MODULES="$(npm list -g --depth=0 | sed '/ npm@/d')" From 4508f7c33ea79f458eec3cbcaac7acf4c033032f Mon Sep 17 00:00:00 2001 From: elliottcable Date: Sun, 8 Feb 2015 02:43:05 -0600 Subject: [PATCH 0400/1426] install: further support for older npm versions --- install.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 63a7af4..3b3590b 100755 --- a/install.sh +++ b/install.sh @@ -152,10 +152,14 @@ nvm_check_global_modules() { NPM_VERSION="$(npm --version)" NPM_VERSION="${NPM_VERSION:--1}" [ "$NVM_DEBUG" = 0 ] && debug "NPM detected (at version ${NPM_VERSION}.)" - [ "${NPM_VERSION%%[!0-9]*}" -gt 0 ] || return 0 + [ "${NPM_VERSION%%[!-0-9]*}" -gt 0 ] || return 0 local NPM_GLOBAL_MODULES - NPM_GLOBAL_MODULES="$(npm list -g --depth=0 | sed '/ npm@/d')" + NPM_GLOBAL_MODULES="$( + npm list -g --depth=0 | + sed '/ npm@/d' | + sed '/ (empty)$/d' + )" local MODULE_COUNT MODULE_COUNT="$( From f0d81e2d33b0bab39c52079477c6bafcc63c1e21 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 9 Feb 2015 16:56:08 -0800 Subject: [PATCH 0401/1426] Revert "install: adding some debugging output" This reverts commit c8efe3d28ab862441f7f40e2683b1a91688aabc4. Conflicts: install.sh --- .travis.yml | 2 +- install.sh | 33 ++------------ test/install_script/nvm_check_global_modules | 45 +++----------------- 3 files changed, 10 insertions(+), 70 deletions(-) diff --git a/.travis.yml b/.travis.yml index b396ea9..762181b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ install: - chmod +x /tmp/urchin/package/urchin - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' script: - - DEBUG='nvm:*' NVM_DIR=$TRAVIS_BUILD_DIR make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin/package/urchin test-$SHELL + - NVM_DIR=$TRAVIS_BUILD_DIR make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin/package/urchin test-$SHELL env: - SHELL=sh TEST_SUITE=install_script - SHELL=dash TEST_SUITE=install_script diff --git a/install.sh b/install.sh index 3b3590b..f1b3254 100755 --- a/install.sh +++ b/install.sh @@ -1,16 +1,7 @@ #!/bin/bash + set -e -puts() (IFS=" "; printf %s\\n "$*" ;) -error() (IFS=" "; printf %s\\n "$*" >&2 ;) -debug() (IFS=" "; printf %s\\n ".. $*" >&2 ;) - -if [ "$DEBUG" = 'nvm:*' ] || [ "$DEBUG" = 'nvm:install' ]; then - NVM_DEBUG=0 - debug 'Script debugging enabled (in: `install.sh`).' -fi - - nvm_has() { type "$1" > /dev/null 2>&1 } @@ -51,9 +42,7 @@ nvm_source() { nvm_download() { if nvm_has "curl"; then - [ "$NVM_DEBUG" = 0 ] && set +x curl $* - [ "$NVM_DEBUG" = 0 ] && set -x elif nvm_has "wget"; then # Emulate curl with wget ARGS=$(echo "$*" | command sed -e 's/--progress-bar /--progress=bar /' \ @@ -62,9 +51,7 @@ nvm_download() { -e 's/-s /-q /' \ -e 's/-o /-O /' \ -e 's/-C - /-c /') - [ "$NVM_DEBUG" = 0 ] && set +x wget $ARGS - [ "$NVM_DEBUG" = 0 ] && set +x fi } @@ -79,18 +66,10 @@ install_nvm_from_git() { # Cloning to $NVM_DIR echo "=> Downloading nvm from git to '$NVM_DIR'" printf "\r=> " - [ "$NVM_DEBUG" = 0 ] && set +x mkdir -p "$NVM_DIR" command git clone "$(nvm_source git)" "$NVM_DIR" - [ "$NVM_DEBUG" = 0 ] && set -x fi - - [ "$NVM_DEBUG" = 0 ] && set +x - cd "$NVM_DIR" || return $? - command git checkout --quiet $(nvm_latest_version) || return $? - command git branch --quiet -D master >/dev/null 2>&1 || return $? - [ "$NVM_DEBUG" = 0 ] && set +x - + cd "$NVM_DIR" && command git checkout --quiet $(nvm_latest_version) && command git branch --quiet -D master >/dev/null 2>&1 return } @@ -151,7 +130,6 @@ nvm_check_global_modules() { local NPM_VERSION NPM_VERSION="$(npm --version)" NPM_VERSION="${NPM_VERSION:--1}" - [ "$NVM_DEBUG" = 0 ] && debug "NPM detected (at version ${NPM_VERSION}.)" [ "${NPM_VERSION%%[!-0-9]*}" -gt 0 ] || return 0 local NPM_GLOBAL_MODULES @@ -167,9 +145,6 @@ nvm_check_global_modules() { sed -ne '1!p' | # Remove the first line wc -l | tr -d ' ' # Count entries )" - [ "$NVM_DEBUG" = 0 ] && { - debug "(${MODULE_COUNT}) global modules detected:" - error "$NPM_GLOBAL_MODULES" ;} if [ $MODULE_COUNT -ne 0 ]; then cat <<-'END_MESSAGE' @@ -252,11 +227,9 @@ nvm_do_install() { # during the execution of the install script # nvm_reset() { - unset -f puts error debug \ - nvm_reset nvm_has nvm_latest_version \ + unset -f nvm_reset nvm_has nvm_latest_version \ nvm_source nvm_download install_nvm_as_script install_nvm_from_git \ nvm_detect_profile nvm_check_global_modules nvm_do_install - unset NPM_DEBUG } [ "_$NVM_ENV" = "_testing" ] || nvm_do_install diff --git a/test/install_script/nvm_check_global_modules b/test/install_script/nvm_check_global_modules index 0c6889a..c57d672 100755 --- a/test/install_script/nvm_check_global_modules +++ b/test/install_script/nvm_check_global_modules @@ -1,5 +1,4 @@ #!/bin/sh -puts() (IFS=" "; printf %s\\n "$*" ;) cleanup () { rm -rf "$npm_config_prefix/lib" >/dev/null 2>&1 @@ -11,8 +10,7 @@ cleanup () { unset -f setup cleanup die unset message ORIGINAL_PATH } - -die () { puts "!! $@" ; cleanup ; exit 1; } +die () { echo $@ ; cleanup ; exit 1; } NVM_ENV=testing . ../../install.sh @@ -24,32 +22,16 @@ setup () { mkdir -p "$npm_config_prefix/lib" } -setup +setup npm install -g nop >/dev/null || die 'nvm_check_global_modules cannot be tested because `npm` cannot install the `nop` package' message=$(nvm_check_global_modules) -[ ! -z "$message" ] || { - puts '-- `npm --version`: '"$(npm --version)" - puts '-- `npm list -g`:' - npm list -g --depth=0 - puts '-- Printed message:' - puts "'''$message'''" - - die "nvm_check_global_modules should have printed a notice when npm had global modules installed" ;} - +[ ! -z "$message" ] || die "nvm_check_global_modules should have printed a notice when npm had global modules installed" npm uninstall -g nop >/dev/null message=$(nvm_check_global_modules) -[ -z "$message" ] || { - puts '-- `npm --version`: '"$(npm --version)" - puts '-- `npm list -g`:' - npm list -g --depth=0 - puts '-- Printed message:' - puts "'''$message'''" - - die "nvm_check_global_modules should not have printed a notice when npm had no global modules installed" ;} - +[ -z "$message" ] || die "nvm_check_global_modules should not have printed a notice when npm had no global modules installed" # Faking an installation of npm mkdir -p "$npm_config_prefix/lib/node_modules/npm" @@ -58,16 +40,7 @@ cat <<'JSON' >"$npm_config_prefix/lib/node_modules/npm/package.json" JSON message=$(nvm_check_global_modules) -[ -z "$message" ] || { - puts '-- `which npm`: ' "$(which npm)" - puts '-- `npm --version`: ' "$(npm --version)" - puts '-- `npm list -g`:' - npm list -g --depth=0 - puts '-- Printed message:' - puts "'''$message'''" - - die "nvm_check_global_modules should not have printed a notice when npm had only itself installed as a global module" ;} - +[ -z "$message" ] || die "nvm_check_global_modules should have not printed a notice when npm had only itself installed as a global module" # Faking the absence of npm PATH=".:$PATH" @@ -75,13 +48,7 @@ touch npm chmod +x npm message=$(nvm_check_global_modules) -[ -z "$message" ] || { - puts '-- `which npm`: ' "$(which npm)" - puts '-- `npm --version`: ' "$(npm --version)" - puts '-- Printed message:' - puts "'''$message'''" - - die "nvm_check_global_modules should not have printed a notice when npm was unavailable" ;} +[ -z "$message" ] || die "nvm_check_global_modules should have not printed a notice when npm was unavailable" cleanup From 286c8087395028017cf5f2ddd56e59a052e655bc Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 10 Feb 2015 10:36:12 -0800 Subject: [PATCH 0402/1426] Cache values in local variables to avoid repeated lookups. --- nvm.sh | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/nvm.sh b/nvm.sh index 07702f6..5d2be3c 100644 --- a/nvm.sh +++ b/nvm.sh @@ -473,8 +473,19 @@ nvm_ls() { return fi + local NVM_IOJS_PREFIX + NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" + local NVM_NODE_PREFIX + NVM_NODE_PREFIX="$(nvm_node_prefix)" + local NVM_VERSION_DIR_IOJS + NVM_VERSION_DIR_IOJS="$(nvm_version_dir iojs)" + local NVM_VERSION_DIR_NEW + NVM_VERSION_DIR_NEW="$(nvm_version_dir new)" + local NVM_VERSION_DIR_OLD + NVM_VERSION_DIR_OLD="$(nvm_version_dir old)" + case "$PATTERN" in - "$(nvm_iojs_prefix)" | "$(nvm_node_prefix)") + "$NVM_IOJS_PREFIX" | "$NVM_NODE_PREFIX" ) PATTERN="$PATTERN-" ;; *) @@ -490,8 +501,7 @@ nvm_ls() { fi else case "$PATTERN" in - "$(nvm_iojs_prefix)-" | "$(nvm_node_prefix)-" | "system") - ;; + "$NVM_IOJS_PREFIX-" | "$NVM_NODE_PREFIX-" | "system") ;; *) local NUM_VERSION_GROUPS NUM_VERSION_GROUPS="$(nvm_num_version_groups "$PATTERN")" @@ -513,19 +523,19 @@ nvm_ls() { local NVM_ADD_SYSTEM NVM_ADD_SYSTEM=false if nvm_is_iojs_version "$PATTERN"; then - NVM_DIRS_TO_TEST_AND_SEARCH="$(nvm_version_dir iojs)" + NVM_DIRS_TO_TEST_AND_SEARCH="$NVM_VERSION_DIR_IOJS" PATTERN="$(nvm_strip_iojs_prefix "$PATTERN")" if nvm_has_system_iojs; then NVM_ADD_SYSTEM=true fi - elif [ "_$PATTERN" = "_$(nvm_node_prefix)-" ]; then - NVM_DIRS_TO_TEST_AND_SEARCH="$(nvm_version_dir old) $(nvm_version_dir new)" + elif [ "_$PATTERN" = "_$NVM_NODE_PREFIX-" ]; then + NVM_DIRS_TO_TEST_AND_SEARCH="$NVM_VERSION_DIR_OLD $NVM_VERSION_DIR_NEW" PATTERN='' if nvm_has_system_node; then NVM_ADD_SYSTEM=true fi else - NVM_DIRS_TO_TEST_AND_SEARCH="$(nvm_version_dir old) $(nvm_version_dir new) $(nvm_version_dir iojs)" + NVM_DIRS_TO_TEST_AND_SEARCH="$NVM_VERSION_DIR_OLD $NVM_VERSION_DIR_NEW $NVM_VERSION_DIR_IOJS" if nvm_has_system_iojs || nvm_has_system_node; then NVM_ADD_SYSTEM=true fi @@ -540,17 +550,17 @@ nvm_ls() { PATTERN='v' fi VERSIONS="$(command find $NVM_DIRS_TO_SEARCH -maxdepth 1 -type d -name "$PATTERN*" \ - | command sed "s#$(nvm_version_dir iojs)/#"$(nvm_iojs_prefix)"-#" \ - | command grep -v "$(nvm_version_dir iojs)" \ + | command sed "s#$NVM_VERSION_DIR_IOJS/#"$NVM_IOJS_PREFIX"-#" \ + | command grep -v "$NVM_VERSION_DIR_IOJS" \ | command sed "s#^$NVM_DIR/##" \ | command grep -v -e '^versions$' \ | command sed 's#^versions/##' \ - | sed -e 's/^v/node-v/' \ - | sed -e 's#^\(iojs\)[-/]v#\1.v#' | sed -e 's#^\(node\)[-/]v#\1.v#' \ + | sed -e "s/^v/$NVM_NODE_PREFIX-v/" \ + | sed -e "s#^\($NVM_IOJS_PREFIX\)[-/]v#\1.v#" | sed -e "s#^\($NVM_NODE_PREFIX\)[-/]v#\1.v#" \ | command sort -t. -u -k 2.2,2n -k 3,3n -k 4,4n \ | command sort -s -t- -k1.1,1.1 \ - | command sed 's/^\(iojs\)\./\1-/' \ - | command sed 's/^node\.//')" + | command sed "s/^\($NVM_IOJS_PREFIX\)\./\1-/" \ + | command sed "s/^$NVM_NODE_PREFIX\.//")" if [ $ZHS_HAS_SHWORDSPLIT_UNSET -eq 1 ] && nvm_has "unsetopt"; then unsetopt shwordsplit From d0617b5b795a75bc66e1a05f5451dc62f9fc40df Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 10 Feb 2015 11:04:00 -0800 Subject: [PATCH 0403/1426] Suppressing extraneous output from #622. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 5d2be3c..51db350 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1491,7 +1491,7 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" if [ $? -ne 0 ]; then echo "! WARNING: Version '$3' does not exist." >&2 fi - echo "$3" | tee "$NVM_ALIAS_DIR/$2" + echo "$3" | tee "$NVM_ALIAS_DIR/$2" >/dev/null if [ ! "_$3" = "_$VERSION" ]; then echo "$2 -> $3 (-> $VERSION)" else From 3190effeddc227abde683da07d990b4378241858 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 10 Feb 2015 14:41:45 -0800 Subject: [PATCH 0404/1426] Add support for `node` and `iojs` implicit aliases. --- nvm.sh | 117 +++++++++++++----- ...s implicit aliases when they do not exist" | 8 ++ ... instead of implicit aliases when present" | 16 ++- test/fast/Aliases/nvm_resolve_alias | 5 + test/fast/Aliases/setup | 2 + test/fast/Aliases/teardown | 5 +- .../nvm_print_implicit_alias errors | 8 +- .../nvm_print_implicit_alias success | 24 +++- test/fast/Unit tests/nvm_remote_version | 21 +++- .../Unit tests/nvm_validate_implicit_alias | 10 +- 10 files changed, 174 insertions(+), 42 deletions(-) diff --git a/nvm.sh b/nvm.sh index 51db350..3705bbd 100644 --- a/nvm.sh +++ b/nvm.sh @@ -218,16 +218,16 @@ nvm_remote_version() { PATTERN="$1" local VERSION if nvm_validate_implicit_alias "$PATTERN" 2> /dev/null ; then - VERSION="$(nvm_ls_remote "$PATTERN")" - else case "_$PATTERN" in - "_$(nvm_node_prefix)") - VERSION="$(nvm_ls_remote stable)" + "_$(nvm_iojs_prefix)") + VERSION="$(nvm_ls_remote_iojs | tail -n1)" ;; *) - VERSION="$(nvm_remote_versions "$PATTERN" | tail -n1)" + VERSION="$(nvm_ls_remote "$PATTERN")" ;; esac + else + VERSION="$(nvm_remote_versions "$PATTERN" | tail -n1)" fi echo "$VERSION" if [ "_$VERSION" = '_N/A' ]; then @@ -236,20 +236,24 @@ nvm_remote_version() { } nvm_remote_versions() { + local NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" local PATTERN PATTERN="$1" - if nvm_validate_implicit_alias "$PATTERN" 2> /dev/null ; then - echo >&2 "Implicit aliases are not supported in nvm_remote_versions." - return 1 + if [ "_$PATTERN" = "_io.js" ]; then + PATTERN="$NVM_IOJS_PREFIX" fi case "_$PATTERN" in - "_$(nvm_iojs_prefix)" | "_io.js") + "_$NVM_IOJS_PREFIX") VERSIONS="$(nvm_ls_remote_iojs)" ;; "_$(nvm_node_prefix)") VERSIONS="$(nvm_ls_remote)" ;; *) + if nvm_validate_implicit_alias "$PATTERN" 2> /dev/null ; then + echo >&2 "Implicit aliases are not supported in nvm_remote_versions." + return 1 + fi VERSIONS="$(echo "$(nvm_ls_remote "$PATTERN") $(nvm_ls_remote_iojs "$PATTERN")" | command grep -v "N/A" | command sed '/^$/d')" ;; @@ -469,10 +473,6 @@ nvm_ls() { return fi - if nvm_resolve_alias "$PATTERN"; then - return - fi - local NVM_IOJS_PREFIX NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" local NVM_NODE_PREFIX @@ -489,6 +489,9 @@ nvm_ls() { PATTERN="$PATTERN-" ;; *) + if nvm_resolve_alias "$PATTERN"; then + return + fi PATTERN=$(nvm_ensure_version_prefix $PATTERN) ;; esac @@ -669,10 +672,20 @@ nvm_print_versions() { } nvm_validate_implicit_alias() { - if [ "_$1" != "_stable" ] && [ "_$1" != "_unstable" ]; then - echo "Only implicit aliases 'stable' and 'unstable' are supported." >&2 - return 1 - fi + local NVM_IOJS_PREFIX + NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" + local NVM_NODE_PREFIX + NVM_NODE_PREFIX="$(nvm_node_prefix)" + + case "$1" in + "stable" | "unstable" | "$NVM_IOJS_PREFIX" | "$NVM_NODE_PREFIX" ) + return + ;; + *) + echo "Only implicit aliases 'stable', 'unstable', '$NVM_IOJS_PREFIX', and '$NVM_NODE_PREFIX' are supported." >&2 + return 1 + ;; + esac } nvm_print_implicit_alias() { @@ -685,18 +698,67 @@ nvm_print_implicit_alias() { return 2 fi + local ZHS_HAS_SHWORDSPLIT_UNSET + + local NVM_IOJS_PREFIX + NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" + local NVM_NODE_PREFIX + NVM_NODE_PREFIX="$(nvm_node_prefix)" + local NVM_COMMAND local LAST_TWO - if [ "_$1" = "_local" ]; then - LAST_TWO=$(nvm_ls | command grep -e '^v' | cut -c2- | cut -d . -f 1,2 | uniq) - else - LAST_TWO=$(nvm_ls_remote | command grep -e '^v' | cut -c2- | cut -d . -f 1,2 | uniq) - fi + case "$2" in + "$NVM_IOJS_PREFIX") + NVM_COMMAND="nvm_ls_remote_iojs" + if [ "_$1" = "_local" ]; then + NVM_COMMAND="nvm_ls iojs" + fi + + ZHS_HAS_SHWORDSPLIT_UNSET=1 + if nvm_has "setopt"; then + ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; echo $?) + setopt shwordsplit + fi + + local NVM_IOJS_VERSION + NVM_IOJS_VERSION="$($NVM_COMMAND | sed "s/^"$NVM_IOJS_PREFIX"-//" | command grep -e '^v' | cut -c2- | cut -d . -f 1,2 | uniq | tail -1)" + local EXIT_CODE + EXIT_CODE="$?" + + if [ $ZHS_HAS_SHWORDSPLIT_UNSET -eq 1 ] && nvm_has "unsetopt"; then + unsetopt shwordsplit + fi + + echo "$(nvm_add_iojs_prefix "$NVM_IOJS_VERSION")" + return $EXIT_CODE + ;; + "$NVM_NODE_PREFIX") + echo "stable" + return + ;; + *) + NVM_COMMAND="nvm_ls_remote" + if [ "_$1" = "_local" ]; then + NVM_COMMAND="nvm_ls node" + fi + + ZHS_HAS_SHWORDSPLIT_UNSET=1 + if nvm_has "setopt"; then + ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; echo $?) + setopt shwordsplit + fi + + LAST_TWO=$($NVM_COMMAND | command grep -e '^v' | cut -c2- | cut -d . -f 1,2 | uniq) + + if [ $ZHS_HAS_SHWORDSPLIT_UNSET -eq 1 ] && nvm_has "unsetopt"; then + unsetopt shwordsplit + fi + ;; + esac local MINOR local STABLE local UNSTABLE local MOD - local ZHS_HAS_SHWORDSPLIT_UNSET ZHS_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; echo $?) @@ -1189,12 +1251,11 @@ nvm() { else local NVM_IOJS_PREFIX NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" + local NVM_NODE_PREFIX + NVM_NODE_PREFIX="$(nvm_node_prefix)" case "_$2" in "_$NVM_IOJS_PREFIX" | "_io.js") - VERSION="$(nvm_add_iojs_prefix $(nvm_ls | command grep "$NVM_IOJS_PREFIX" | tail -n1))" - ;; - "_$(nvm_node_prefix)") - VERSION="$(nvm_version stable)" + VERSION="$(nvm_version $NVM_IOJS_PREFIX)" ;; "_system") VERSION="system" @@ -1469,7 +1530,7 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" fi done - for ALIAS in "stable" "unstable"; do + for ALIAS in "$(nvm_node_prefix)" "stable" "unstable" "$(nvm_iojs_prefix)"; do if [ ! -f "$NVM_ALIAS_DIR/$ALIAS" ]; then if [ $# -lt 2 ] || [ "~$ALIAS" = "~$2" ]; then DEST="$(nvm_print_implicit_alias local "$ALIAS")" diff --git "a/test/fast/Aliases/Running \"nvm alias\" lists implicit aliases when they do not exist" "b/test/fast/Aliases/Running \"nvm alias\" lists implicit aliases when they do not exist" index da91f11..8fd73d8 100755 --- "a/test/fast/Aliases/Running \"nvm alias\" lists implicit aliases when they do not exist" +++ "b/test/fast/Aliases/Running \"nvm alias\" lists implicit aliases when they do not exist" @@ -11,8 +11,16 @@ STABLE_VERSION="$(nvm_version "$EXPECTED_STABLE")" echo "$NVM_ALIAS_OUTPUT" | \grep -e "^stable -> $EXPECTED_STABLE (-> $STABLE_VERSION) (default)$" \ || die "nvm alias did not contain the default local stable node version" +echo "$NVM_ALIAS_OUTPUT" | \grep -e "^node -> stable (-> $STABLE_VERSION) (default)$" \ + || die "nvm alias did not contain the default local stable node version under 'node'" + EXPECTED_UNSTABLE="$(nvm_print_implicit_alias local unstable)" UNSTABLE_VERSION="$(nvm_version "$EXPECTED_UNSTABLE")" echo "$NVM_ALIAS_OUTPUT" | \grep -e "^unstable -> $EXPECTED_UNSTABLE (-> $UNSTABLE_VERSION) (default)$" \ || die "nvm alias did not contain the default local unstable node version" +EXPECTED_IOJS="$(nvm_print_implicit_alias local iojs)" +IOJS_VERSION="$(nvm_version "$EXPECTED_IOJS")" +echo "$NVM_ALIAS_OUTPUT" | \grep -e "^iojs -> $EXPECTED_IOJS (-> $IOJS_VERSION) (default)$" \ + || die "nvm alias did not contain the default local iojs version" + diff --git "a/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" "b/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" index b2cd0ce..6c0fa99 100755 --- "a/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" +++ "b/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" @@ -6,12 +6,16 @@ die () { echo $@ ; cleanup ; exit 1; } cleanup () { rm -rf ../../../alias/stable rm -rf ../../../alias/unstable + rm -rf ../../../alias/node + rm -rf ../../../alias/iojs rm -rf ../../../v0.8.1 rm -rf ../../../v0.9.1 + rm -rf ../../../versions/io.js/v0.2.1 } mkdir ../../../v0.8.1 mkdir ../../../v0.9.1 +mkdir -p ../../../versions/io.js/v0.2.1 EXPECTED_STABLE="$(nvm_print_implicit_alias local stable)" STABLE_VERSION="$(nvm_version "$EXPECTED_STABLE")" @@ -24,14 +28,22 @@ UNSTABLE_VERSION="$(nvm_version "$EXPECTED_UNSTABLE")" nvm alias stable "$EXPECTED_UNSTABLE" nvm alias unstable "$EXPECTED_STABLE" +nvm alias node stable +nvm alias iojs unstable NVM_ALIAS_OUTPUT=$(nvm alias) -echo "$NVM_ALIAS_OUTPUT" | \grep -e "^stable -> $EXPECTED_UNSTABLE (-> $UNSTABLE_VERSION)$" \ +echo "$NVM_ALIAS_OUTPUT" | command grep -e "^stable -> $EXPECTED_UNSTABLE (-> $UNSTABLE_VERSION)$" \ || die "nvm alias did not contain the overridden 'stable' alias" -echo "$NVM_ALIAS_OUTPUT" | \grep -e "^unstable -> $EXPECTED_STABLE (-> $STABLE_VERSION)$" \ +echo "$NVM_ALIAS_OUTPUT" | command grep -e "^unstable -> $EXPECTED_STABLE (-> $STABLE_VERSION)$" \ || die "nvm alias did not contain the overridden 'unstable' alias" +echo "$NVM_ALIAS_OUTPUT" | command grep -e "^node -> stable (-> $UNSTABLE_VERSION)$" \ + || die "nvm alias did not contain the overridden 'node' alias" + +echo "$NVM_ALIAS_OUTPUT" | command grep -e "^iojs -> unstable (-> $STABLE_VERSION)$" \ + || die "nvm alias did not contain the overridden 'iojs' alias" + cleanup diff --git a/test/fast/Aliases/nvm_resolve_alias b/test/fast/Aliases/nvm_resolve_alias index aaf4df2..10cca6e 100755 --- a/test/fast/Aliases/nvm_resolve_alias +++ b/test/fast/Aliases/nvm_resolve_alias @@ -23,6 +23,11 @@ EXIT_CODE=$(nvm_resolve_alias nonexistent ; echo $?) STABLE="$(nvm_resolve_alias stable)" [ "_$STABLE" = "_v0.0.10" ] || die "'nvm_resolve_alias stable' was not v0.0.10; got $STABLE" +NODE="$(nvm_resolve_alias node)" +[ "_$NODE" = "_v0.0.10" ] || die "'nvm_resolve_alias node' was not v0.0.10; got $NODE" + UNSTABLE="$(nvm_resolve_alias unstable)" [ "_$UNSTABLE" = "_v0.1.10" ] || die "'nvm_resolve_alias unstable' was not v0.1.10; got $UNSTABLE" +IOJS="$(nvm_resolve_alias iojs)" +[ "_$IOJS" = "_iojs-v0.2.10" ] || die "'nvm_resolve_alias iojs' was not iojs-v0.2.10; got $IOJS" diff --git a/test/fast/Aliases/setup b/test/fast/Aliases/setup index 625a43c..a28a5c2 100755 --- a/test/fast/Aliases/setup +++ b/test/fast/Aliases/setup @@ -6,4 +6,6 @@ for i in $(seq 1 10) mkdir -p ../../../v0.0.$i echo 0.1.$i > ../../../alias/test-unstable-$i mkdir -p ../../../v0.1.$i + echo 0.2.$i > ../../../alias/test-iojs-$i + mkdir -p ../../../versions/io.js/v0.2.$i done diff --git a/test/fast/Aliases/teardown b/test/fast/Aliases/teardown index f61c4f8..845567d 100755 --- a/test/fast/Aliases/teardown +++ b/test/fast/Aliases/teardown @@ -6,8 +6,11 @@ for i in $(seq 1 10) rm -rf "../../../v0.0.$i" rm -f "../../../alias/test-unstable-$i" rm -rf "../../../v0.1.$i" + rm -rf "../../../alias/test-iojs-$i" + rm -rf "../../../versions/io.js/v0.2.$i" done rm -f "../../../alias/stable" rm -f "../../../alias/unstable" - +rm -f "../../../alias/node" +rm -f "../../../alias/iojs" diff --git a/test/fast/Unit tests/nvm_print_implicit_alias errors b/test/fast/Unit tests/nvm_print_implicit_alias errors index 44db71c..a617383 100755 --- a/test/fast/Unit tests/nvm_print_implicit_alias errors +++ b/test/fast/Unit tests/nvm_print_implicit_alias errors @@ -14,13 +14,13 @@ FIRST_EXIT_CODE="$(nvm_print_implicit_alias > /dev/null 2>&1 ; echo $?)" [ "_$FIRST_EXIT_CODE" = "_1" ] \ || die "nvm_print_implicit_alias without local|remote had wrong exit code: expected 1, got $FIRST_EXIT_CODE" -EXPECTED_SECOND_MSG="Only implicit aliases 'stable' and 'unstable' are supported." +EXPECTED_SECOND_MSG="Only implicit aliases 'stable', 'unstable', 'iojs', and 'node' are supported." [ "_$(nvm_print_implicit_alias local 2>&1)" = "_$EXPECTED_SECOND_MSG" ] \ - || die "nvm_print_implicit_alias did not require stable|unstable as second argument" + || die "nvm_print_implicit_alias did not require stable|unstable|iojs|node as second argument" [ "_$(nvm_print_implicit_alias local foo 2>&1)" = "_$EXPECTED_SECOND_MSG" ] \ - || die "nvm_print_implicit_alias did not require stable|unstable as second argument" + || die "nvm_print_implicit_alias did not require stable|unstable|iojs|node as second argument" SECOND_EXIT_CODE="$(nvm_print_implicit_alias local > /dev/null 2>&1 ; echo $?)" [ "_$SECOND_EXIT_CODE" = "_2" ] \ - || die "nvm_print_implicit_alias without stable|unstable had wrong exit code: expected 2, got $SECOND_EXIT_CODE" + || die "nvm_print_implicit_alias without stable|unstable|iojs|node had wrong exit code: expected 2, got $SECOND_EXIT_CODE" diff --git a/test/fast/Unit tests/nvm_print_implicit_alias success b/test/fast/Unit tests/nvm_print_implicit_alias success index 6182f92..1439844 100755 --- a/test/fast/Unit tests/nvm_print_implicit_alias success +++ b/test/fast/Unit tests/nvm_print_implicit_alias success @@ -7,7 +7,8 @@ cleanup() { rm -rf ../../../v0.4.6 rm -rf ../../../v0.5.7 rm -rf ../../../v0.7.7 - unset -f nvm_ls_remote + rm -rf ../../../versions/io.js/v0.98.0 + unset -f nvm_ls_remote nvm_ls_remote_iojs } . ../../../nvm.sh @@ -17,13 +18,20 @@ mkdir ../../../v0.3.4 mkdir ../../../v0.4.6 mkdir ../../../v0.5.7 mkdir ../../../v0.7.7 +mkdir -p ../../../versions/io.js/v0.98.0 LATEST_STABLE="$(nvm_print_implicit_alias local stable)" [ "_$LATEST_STABLE" = "_0.4" ] || die "local stable is not latest even minor: expected 0.4, got $LATEST_STABLE" +LATEST_NODE="$(nvm_print_implicit_alias local node)" +[ "_$LATEST_NODE" = "_stable" ] || die "local node is not stable: expected stable, got $LATEST_NODE" + LATEST_UNSTABLE="$(nvm_print_implicit_alias local unstable)" [ "_$LATEST_UNSTABLE" = "_0.7" ] || die "local unstable is not latest odd minor: expected 0.7, got $LATEST_UNSTABLE" +LATEST_IOJS="$(nvm_print_implicit_alias local iojs)" +[ "_$LATEST_IOJS" = "_iojs-v0.98" ] || die "local iojs is not latest iojs: expected iojs-v0.98, got $LATEST_IOJS" + nvm_ls_remote() { echo "v0.4.3" echo "v0.5.4" @@ -37,11 +45,25 @@ nvm_ls_remote() { echo "v0.9.7" } +nvm_ls_remote_iojs() { + echo "iojs-v0.1.0" + echo "iojs-v0.1.1" + echo "iojs-v0.7.8" + echo "iojs-v0.98.5" + echo "iojs-v0.99.0" +} + LATEST_STABLE="$(nvm_print_implicit_alias remote stable)" [ "_$LATEST_STABLE" = "_0.6" ] || die "remote stable is not latest even minor: expected 0.6, got $LATEST_STABLE" +LATEST_NODE="$(nvm_print_implicit_alias remote node)" +[ "_$LATEST_NODE" = "_stable" ] || die "remote node is not stable: expected stable, got $LATEST_NODE" + LATEST_UNSTABLE="$(nvm_print_implicit_alias remote unstable)" [ "_$LATEST_UNSTABLE" = "_0.9" ] || die "remote unstable is not latest odd minor: expected 0.9, got $LATEST_UNSTABLE" +LATEST_IOJS="$(nvm_print_implicit_alias remote iojs)" +[ "_$LATEST_IOJS" = "_iojs-v0.99" ] || die "remote iojs is not latest: expected iojs-v0.99, got $LATEST_IOJS" + cleanup diff --git a/test/fast/Unit tests/nvm_remote_version b/test/fast/Unit tests/nvm_remote_version index 60b0774..39fa34d 100755 --- a/test/fast/Unit tests/nvm_remote_version +++ b/test/fast/Unit tests/nvm_remote_version @@ -33,7 +33,7 @@ nvm_ls_remote() { fi } nvm_ls_remote_iojs() { - if nvm_is_iojs_version "$1"; then + if [ -z "$1" ] || nvm_is_iojs_version "$1"; then echo "test iojs output" echo "more iojs test output" echo "iojs pattern received: _$1_" @@ -51,11 +51,28 @@ EXIT_CODE="$(nvm_remote_version iojs-foo >/dev/null 2>&1 ; echo $?)" || die "nvm_remote_version iojs-foo did not return last line only of nvm_ls_remote_iojs foo; got $OUTPUT" [ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_version iojs-foo did not exit with 0, got $EXIT_CODE" +OUTPUT="$(nvm_remote_version iojs)" +EXIT_CODE="$(nvm_remote_version iojs >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_iojs pattern received: __" ] \ + || die "nvm_remote_version iojs did not return last line only of nvm_ls_remote_iojs; got $OUTPUT" +[ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_version iojs did not exit with 0, got $EXIT_CODE" + OUTPUT="$(nvm_remote_version stable)" EXIT_CODE="$(nvm_remote_version stable >/dev/null 2>&1 ; echo $?)" [ "_$OUTPUT" = "_$(nvm_ls_remote stable)" ] \ || die "nvm_remote_version stable did not return contents of nvm_ls_remote stable; got $OUTPUT" [ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_version stable did not exit with 0, got $EXIT_CODE" -cleanup +OUTPUT="$(nvm_remote_version unstable)" +EXIT_CODE="$(nvm_remote_version unstable >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_$(nvm_ls_remote unstable)" ] \ + || die "nvm_remote_version unstable did not return contents of nvm_ls_remote unstable; got $OUTPUT" +[ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_version unstable did not exit with 0, got $EXIT_CODE" +OUTPUT="$(nvm_remote_version node)" +EXIT_CODE="$(nvm_remote_version node >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_$(nvm_ls_remote node)" ] \ + || die "nvm_remote_version node did not return contents of nvm_ls_remote node; got $OUTPUT" +[ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_version node did not exit with 0, got $EXIT_CODE" + +cleanup diff --git a/test/fast/Unit tests/nvm_validate_implicit_alias b/test/fast/Unit tests/nvm_validate_implicit_alias index ffc4247..979f8fb 100755 --- a/test/fast/Unit tests/nvm_validate_implicit_alias +++ b/test/fast/Unit tests/nvm_validate_implicit_alias @@ -4,16 +4,18 @@ die () { echo $@ ; exit 1; } . ../../../nvm.sh -EXPECTED_MSG="Only implicit aliases 'stable' and 'unstable' are supported." +EXPECTED_MSG="Only implicit aliases 'stable', 'unstable', 'iojs', and 'node' are supported." [ "_$(nvm_validate_implicit_alias 2>&1)" = "_$EXPECTED_MSG" ] \ - || die "nvm_validate_implicit_alias did not require stable|unstable" + || die "nvm_validate_implicit_alias did not require stable|unstable|iojs|node" [ "_$(nvm_validate_implicit_alias foo 2>&1)" = "_$EXPECTED_MSG" ] \ - || die "nvm_validate_implicit_alias did not require stable|unstable" + || die "nvm_validate_implicit_alias did not require stable|unstable|iojs|node" EXIT_CODE="$(nvm_validate_implicit_alias >/dev/null 2>&1 ; echo $?)" [ "_$EXIT_CODE" = "_1" ] \ - || die "nvm_validate_implicit_alias without stable|unstable had wrong exit code: expected 1, got $EXIT_CODE" + || die "nvm_validate_implicit_alias without stable|unstable|iojs|node had wrong exit code: expected 1, got $EXIT_CODE" nvm_validate_implicit_alias stable || die "nvm_validate_implicit_alias stable did not exit 0" nvm_validate_implicit_alias unstable || die "nvm_validate_implicit_alias unstable did not exit 0" +nvm_validate_implicit_alias node || die "nvm_validate_implicit_alias node did not exit 0" +nvm_validate_implicit_alias iojs || die "nvm_validate_implicit_alias iojs did not exit 0" From 3d6b7976e756a43d682cbd19a40ca8e258235303 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 11 Feb 2015 10:52:41 -0800 Subject: [PATCH 0405/1426] Attempt to fix script install - no shadowing $NVM_SOURCE; nvm-exec and nvm.sh should not both use $NVM_SOURCE since they're different URLs. Fixes #654. --- install.sh | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/install.sh b/install.sh index f1b3254..cbf6938 100755 --- a/install.sh +++ b/install.sh @@ -18,26 +18,26 @@ nvm_latest_version() { # Outputs the location to NVM depending on: # * The availability of $NVM_SOURCE # * The method used ("script" or "git" in the script, defaults to "git") -# NVM_SOURCE always takes precedence +# NVM_SOURCE always takes precedence unless the method is "script-nvm-exec" # nvm_source() { local NVM_METHOD NVM_METHOD="$1" - if [ -z "$NVM_SOURCE" ]; then - local NVM_SOURCE + local NVM_SOURCE_URL + NVM_SOURCE_URL="$NVM_SOURCE" + if [ "_$NVM_METHOD" = "_script-nvm-exec" ]; then + NVM_SOURCE_URL="https://raw.githubusercontent.com/creationix/nvm/$(nvm_latest_version)/nvm-exec" + elif [ -z "$NVM_SOURCE_URL" ]; then if [ "_$NVM_METHOD" = "_script" ]; then - NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/$(nvm_latest_version)/nvm.sh" - elif [ "_$NVM_METHOD" = "_script-nvm-exec" ]; then - NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/$(nvm_latest_version)/nvm-exec" + NVM_SOURCE_URL="https://raw.githubusercontent.com/creationix/nvm/$(nvm_latest_version)/nvm.sh" elif [ "_$NVM_METHOD" = "_git" ] || [ -z "$NVM_METHOD" ]; then - NVM_SOURCE="https://github.com/creationix/nvm.git" + NVM_SOURCE_URL="https://github.com/creationix/nvm.git" else echo >&2 "Unexpected value \"$NVM_METHOD\" for \$NVM_METHOD" return 1 fi fi - echo "$NVM_SOURCE" - return 0 + echo "$NVM_SOURCE_URL" } nvm_download() { @@ -74,8 +74,8 @@ install_nvm_from_git() { } install_nvm_as_script() { - local NVM_SOURCE - NVM_SOURCE=$(nvm_source script) + local NVM_SOURCE_LOCAL + NVM_SOURCE_LOCAL=$(nvm_source script) local NVM_EXEC_SOURCE NVM_EXEC_SOURCE=$(nvm_source script-nvm-exec) @@ -86,8 +86,8 @@ install_nvm_as_script() { else echo "=> Downloading nvm as script to '$NVM_DIR'" fi - nvm_download -s "$NVM_SOURCE" -o "$NVM_DIR/nvm.sh" || { - echo >&2 "Failed to download '$NVM_SOURCE'" + nvm_download -s "$NVM_SOURCE_LOCAL" -o "$NVM_DIR/nvm.sh" || { + echo >&2 "Failed to download '$NVM_SOURCE_LOCAL'" return 1 } nvm_download -s "$NVM_EXEC_SOURCE" -o "$NVM_DIR/nvm-exec" || { From 820074e1d7b5b0ca80020b3c82dd95b2d3b5f1b8 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 15 Feb 2015 23:32:33 -0800 Subject: [PATCH 0406/1426] Make sure checksum commands are not aliases. Fixes #659, #420, #640. --- nvm.sh | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/nvm.sh b/nvm.sh index 3705bbd..0a9b586 100644 --- a/nvm.sh +++ b/nvm.sh @@ -12,6 +12,10 @@ nvm_has() { type "$1" > /dev/null 2>&1 } +nvm_is_alias() { + command alias "$1" > /dev/null 2>&1 +} + nvm_get_latest() { local NVM_LATEST_URL if nvm_has "curl"; then @@ -633,15 +637,19 @@ nvm_ls_remote_iojs() { } nvm_checksum() { - if nvm_has "sha1sum"; then - checksum="$(command sha1sum "$1" | command awk '{print $1}')" - elif nvm_has "sha1"; then - checksum="$(command sha1 -q "$1")" + local NVM_CHECKSUM + if nvm_has "sha1sum" && ! nvm_is_alias "sha1sum"; then + NVM_CHECKSUM="$(command sha1sum "$1" | command awk '{print $1}')" + elif nvm_has "sha1" && ! nvm_is_alias "sha1"; then + NVM_CHECKSUM="$(command sha1 -q "$1")" + elif nvm_has "shasum" && ! nvm_is_alias "shasum"; then + NVM_CHECKSUM="$(shasum "$1" | command awk '{print $1}')" else - checksum="$(shasum "$1" | command awk '{print $1}')" + echo "Unaliased sha1sum, sha1, or shasum not found." >&2 + return 2 fi - if [ "_$checksum" = "_$2" ]; then + if [ "_$NVM_CHECKSUM" = "_$2" ]; then return elif [ -z "$2" ]; then echo 'Checksums empty' #missing in raspberry pi binary From e58d4abf11a70f78901929c48ae5d3f21d473b50 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 16 Feb 2015 00:39:05 -0800 Subject: [PATCH 0407/1426] Add bash_completion for `nvm exec` --- bash_completion | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bash_completion b/bash_completion index 92fe89b..0b744cd 100644 --- a/bash_completion +++ b/bash_completion @@ -73,7 +73,7 @@ __nvm () previous_word="${COMP_WORDS[COMP_CWORD-1]}" case "$previous_word" in - use|run|ls|list|uninstall) __nvm_installed_nodes ;; + use|run|exec|ls|list|uninstall) __nvm_installed_nodes ;; alias|unalias) __nvm_alias ;; *) __nvm_commands ;; esac From 12ca8f260725274631ba0b68ba9056b09cdc56c8 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 20 Feb 2015 13:35:49 -0800 Subject: [PATCH 0408/1426] Add `nvm_is_alias` unit tests. Fixes 670. --- nvm.sh | 3 ++- test/fast/Unit tests/nvm_is_alias | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100755 test/fast/Unit tests/nvm_is_alias diff --git a/nvm.sh b/nvm.sh index 0a9b586..24ff367 100644 --- a/nvm.sh +++ b/nvm.sh @@ -13,7 +13,8 @@ nvm_has() { } nvm_is_alias() { - command alias "$1" > /dev/null 2>&1 + # this is intentionally not "command alias" so it works in zsh. + \alias "$1" > /dev/null 2>&1 } nvm_get_latest() { diff --git a/test/fast/Unit tests/nvm_is_alias b/test/fast/Unit tests/nvm_is_alias new file mode 100755 index 0000000..b5cf305 --- /dev/null +++ b/test/fast/Unit tests/nvm_is_alias @@ -0,0 +1,20 @@ +#!/bin/sh + +cleanup () { unalias foo; unalias grep; } +die () { echo $@ ; cleanup ; exit 1; } + +. ../../../nvm.sh + +alias foo='bar' +nvm_is_alias foo || die '"nvm_is_alias foo" was not true' + +! nvm_is_alias nvm_is_alias || die '"nvm_is_alias nvm_is_alias was not false' + +alias grep='grep' +unalias grep || die '"unalias grep" failed' +! nvm_is_alias grep || die '"nvm_is_alias grep" with unaliased grep was not false' + +alias grep='grep' +nvm_is_alias grep || die '"nvm_is_alias grep" with aliased grep was not true' + +cleanup From cd481ff5483a539675e94f597ee867f74a1f8174 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 20 Feb 2015 23:12:00 -0800 Subject: [PATCH 0409/1426] When none of the directories exist, don't `find` within them. --- nvm.sh | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/nvm.sh b/nvm.sh index 24ff367..e2ce05d 100644 --- a/nvm.sh +++ b/nvm.sh @@ -557,18 +557,20 @@ nvm_ls() { if [ -z "$PATTERN" ]; then PATTERN='v' fi - VERSIONS="$(command find $NVM_DIRS_TO_SEARCH -maxdepth 1 -type d -name "$PATTERN*" \ - | command sed "s#$NVM_VERSION_DIR_IOJS/#"$NVM_IOJS_PREFIX"-#" \ - | command grep -v "$NVM_VERSION_DIR_IOJS" \ - | command sed "s#^$NVM_DIR/##" \ - | command grep -v -e '^versions$' \ - | command sed 's#^versions/##' \ - | sed -e "s/^v/$NVM_NODE_PREFIX-v/" \ - | sed -e "s#^\($NVM_IOJS_PREFIX\)[-/]v#\1.v#" | sed -e "s#^\($NVM_NODE_PREFIX\)[-/]v#\1.v#" \ - | command sort -t. -u -k 2.2,2n -k 3,3n -k 4,4n \ - | command sort -s -t- -k1.1,1.1 \ - | command sed "s/^\($NVM_IOJS_PREFIX\)\./\1-/" \ - | command sed "s/^$NVM_NODE_PREFIX\.//")" + if [ -n "$NVM_DIRS_TO_SEARCH" ]; then + VERSIONS="$(command find $NVM_DIRS_TO_SEARCH -maxdepth 1 -type d -name "$PATTERN*" \ + | command sed "s#$NVM_VERSION_DIR_IOJS/#"$NVM_IOJS_PREFIX"-#" \ + | command grep -v "$NVM_VERSION_DIR_IOJS" \ + | command sed "s#^$NVM_DIR/##" \ + | command grep -v -e '^versions$' \ + | command sed 's#^versions/##' \ + | sed -e "s/^v/$NVM_NODE_PREFIX-v/" \ + | sed -e "s#^\($NVM_IOJS_PREFIX\)[-/]v#\1.v#" | sed -e "s#^\($NVM_NODE_PREFIX\)[-/]v#\1.v#" \ + | command sort -t. -u -k 2.2,2n -k 3,3n -k 4,4n \ + | command sort -s -t- -k1.1,1.1 \ + | command sed "s/^\($NVM_IOJS_PREFIX\)\./\1-/" \ + | command sed "s/^$NVM_NODE_PREFIX\.//")" + fi if [ $ZHS_HAS_SHWORDSPLIT_UNSET -eq 1 ] && nvm_has "unsetopt"; then unsetopt shwordsplit From 7d22e0c45847ef51a3f9ea9a2e42c3013086869b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 21 Feb 2015 13:51:07 -0800 Subject: [PATCH 0410/1426] Separate `nvm_resolve_alias`'s `nvm_version` behavior into `nvm_resolve_local_alias`. --- nvm.sh | 28 ++++++++++++--- .../Aliases/circular/nvm_resolve_local_alias | 36 +++++++++++++++++++ test/fast/Aliases/nvm_resolve_alias | 8 ++--- test/fast/Aliases/nvm_resolve_local_alias | 35 ++++++++++++++++++ 4 files changed, 98 insertions(+), 9 deletions(-) create mode 100755 test/fast/Aliases/circular/nvm_resolve_local_alias create mode 100755 test/fast/Aliases/nvm_resolve_local_alias diff --git a/nvm.sh b/nvm.sh index e2ce05d..6005fb0 100644 --- a/nvm.sh +++ b/nvm.sh @@ -425,7 +425,7 @@ nvm_resolve_alias() { if [ "_$ALIAS" = "_∞" ]; then echo "$ALIAS" else - nvm_version "$ALIAS" + nvm_ensure_version_prefix "$ALIAS" fi return 0 fi @@ -434,15 +434,33 @@ nvm_resolve_alias() { local IMPLICIT IMPLICIT="$(nvm_print_implicit_alias local "$PATTERN" 2> /dev/null)" if [ -n "$IMPLICIT" ]; then - nvm_version "$IMPLICIT" - return $? + nvm_ensure_version_prefix "$IMPLICIT" fi - return 3 fi return 2 } +nvm_resolve_local_alias() { + if [ -z "$1" ]; then + return 1 + fi + + local VERSION + local EXIT_CODE + VERSION="$(nvm_resolve_alias "$1")" + EXIT_CODE=$? + if [ -z "$VERSION" ]; then + echo "N/A" + return $EXIT_CODE + fi + if [ "_$VERSION" != "_∞" ]; then + nvm_version "$VERSION" + else + echo "$VERSION" + fi +} + nvm_iojs_prefix() { echo "iojs" } @@ -494,7 +512,7 @@ nvm_ls() { PATTERN="$PATTERN-" ;; *) - if nvm_resolve_alias "$PATTERN"; then + if nvm_resolve_local_alias "$PATTERN"; then return fi PATTERN=$(nvm_ensure_version_prefix $PATTERN) diff --git a/test/fast/Aliases/circular/nvm_resolve_local_alias b/test/fast/Aliases/circular/nvm_resolve_local_alias new file mode 100755 index 0000000..1d25054 --- /dev/null +++ b/test/fast/Aliases/circular/nvm_resolve_local_alias @@ -0,0 +1,36 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../../nvm.sh + +ALIAS="$(nvm_resolve_local_alias loopback)" +[ "_$ALIAS" = "_∞" ] || die "nvm_resolve_local_alias loopback was not ∞; got $ALIAS" +OUTPUT="$(nvm alias loopback)" +EXPECTED_OUTPUT="loopback -> loopback (-> ∞)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias loopback was not $EXPECTED_OUTPUT; got $OUTPUT" + +ALIAS="$(nvm_resolve_local_alias one)" +[ "_$ALIAS" = "_∞" ] || die "nvm_resolve_local_alias one was not ∞; got $ALIAS" +OUTPUT="$(nvm alias one)" +EXPECTED_OUTPUT="one -> two (-> ∞)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias one was not $EXPECTED_OUTPUT; got $OUTPUT" + +ALIAS="$(nvm_resolve_local_alias two)" +[ "_$ALIAS" = "_∞" ] || die "nvm_resolve_local_alias two was not ∞; got $ALIAS" +OUTPUT="$(nvm alias two)" +EXPECTED_OUTPUT="two -> three (-> ∞)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias two was not $EXPECTED_OUTPUT; got $OUTPUT" + +ALIAS="$(nvm_resolve_local_alias three)" +[ "_$ALIAS" = "_∞" ] || die "nvm_resolve_local_alias three was not ∞; got $ALIAS" +OUTPUT="$(nvm alias three)" +EXPECTED_OUTPUT="three -> one (-> ∞)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias three was not $EXPECTED_OUTPUT; got $OUTPUT" + +ALIAS="$(nvm_resolve_local_alias four)" +[ "_$ALIAS" = "_∞" ] || die "nvm_resolve_local_alias four was not ∞; got $ALIAS" +OUTPUT="$(nvm alias four)" +EXPECTED_OUTPUT="four -> two (-> ∞)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias four was not $EXPECTED_OUTPUT; got $OUTPUT" + diff --git a/test/fast/Aliases/nvm_resolve_alias b/test/fast/Aliases/nvm_resolve_alias index 10cca6e..f367eb3 100755 --- a/test/fast/Aliases/nvm_resolve_alias +++ b/test/fast/Aliases/nvm_resolve_alias @@ -21,13 +21,13 @@ EXIT_CODE=$(nvm_resolve_alias nonexistent ; echo $?) [ $EXIT_CODE = "2" ] || die "'nvm_resolve_alias nonexistent' did not return 2; got $EXIT_CODE" STABLE="$(nvm_resolve_alias stable)" -[ "_$STABLE" = "_v0.0.10" ] || die "'nvm_resolve_alias stable' was not v0.0.10; got $STABLE" +[ "_$STABLE" = "_v0.0" ] || die "'nvm_resolve_alias stable' was not v0.0; got $STABLE" NODE="$(nvm_resolve_alias node)" -[ "_$NODE" = "_v0.0.10" ] || die "'nvm_resolve_alias node' was not v0.0.10; got $NODE" +[ "_$NODE" = "_stable" ] || die "'nvm_resolve_alias node' was not stable; got $NODE" UNSTABLE="$(nvm_resolve_alias unstable)" -[ "_$UNSTABLE" = "_v0.1.10" ] || die "'nvm_resolve_alias unstable' was not v0.1.10; got $UNSTABLE" +[ "_$UNSTABLE" = "_v0.1" ] || die "'nvm_resolve_alias unstable' was not v0.1; got $UNSTABLE" IOJS="$(nvm_resolve_alias iojs)" -[ "_$IOJS" = "_iojs-v0.2.10" ] || die "'nvm_resolve_alias iojs' was not iojs-v0.2.10; got $IOJS" +[ "_$IOJS" = "_iojs-v0.2" ] || die "'nvm_resolve_alias iojs' was not iojs-v0.2; got $IOJS" diff --git a/test/fast/Aliases/nvm_resolve_local_alias b/test/fast/Aliases/nvm_resolve_local_alias new file mode 100755 index 0000000..22d195e --- /dev/null +++ b/test/fast/Aliases/nvm_resolve_local_alias @@ -0,0 +1,35 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +EXIT_CODE=$(nvm_resolve_local_alias ; echo $?) +[ "_$EXIT_CODE" = "_1" ] || die "nvm_resolve_local_alias without an argument did not return 1; got $EXIT_CODE" + +for i in $(seq 1 10) + do + STABLE_ALIAS="$(nvm_resolve_local_alias test-stable-$i)" + [ "_$STABLE_ALIAS" = "_v0.0.$i" ] \ + || die "'nvm_resolve_local_alias test-stable-$i' was not v0.0.$i; got $STABLE_ALIAS" + UNSTABLE_ALIAS="$(nvm_resolve_local_alias test-unstable-$i)" + [ "_$UNSTABLE_ALIAS" = "_v0.1.$i" ] \ + || die "'nvm_resolve_local_alias test-unstable-$i' was not v0.1.$i; got $UNSTABLE_ALIAS" +done + +OUTPUT="$(nvm_resolve_local_alias nonexistent)" +EXIT_CODE=$(nvm_resolve_local_alias nonexistent > /dev/null 2>&1 ; echo $?) +[ "_$EXIT_CODE" = "_2" ] || die "'nvm_resolve_local_alias nonexistent' did not return 2; got $EXIT_CODE" +[ "_$OUTPUT" = "_N/A" ] || die "'nvm_resolve_local_alias nonexistent' did not output N/A; got $OUTPUT" + +STABLE="$(nvm_resolve_local_alias stable)" +[ "_$STABLE" = "_v0.0.10" ] || die "'nvm_resolve_local_alias stable' was not v0.0.10; got $STABLE" + +NODE="$(nvm_resolve_local_alias node)" +[ "_$NODE" = "_v0.0.10" ] || die "'nvm_resolve_local_alias node' was not v0.0.10; got $NODE" + +UNSTABLE="$(nvm_resolve_local_alias unstable)" +[ "_$UNSTABLE" = "_v0.1.10" ] || die "'nvm_resolve_local_alias unstable' was not v0.1.10; got $UNSTABLE" + +IOJS="$(nvm_resolve_local_alias iojs)" +[ "_$IOJS" = "_iojs-v0.2.10" ] || die "'nvm_resolve_local_alias iojs' was not iojs-v0.2.10; got $IOJS" From 758141f41e7a1e5c60833128aacffa5a46989d6c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 22 Feb 2015 00:29:25 -0800 Subject: [PATCH 0411/1426] Remove trailing whitespace --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index cbf6938..78e54f9 100755 --- a/install.sh +++ b/install.sh @@ -229,7 +229,7 @@ nvm_do_install() { nvm_reset() { unset -f nvm_reset nvm_has nvm_latest_version \ nvm_source nvm_download install_nvm_as_script install_nvm_from_git \ - nvm_detect_profile nvm_check_global_modules nvm_do_install + nvm_detect_profile nvm_check_global_modules nvm_do_install } [ "_$NVM_ENV" = "_testing" ] || nvm_do_install From 6c1a310846bb3d59c51096d41b1dc5e79a217cb0 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 22 Feb 2015 00:42:20 -0800 Subject: [PATCH 0412/1426] Fix `nvm_resolve_alias default` from 7d22e0c45847ef51a3f9ea9a2e42c3013086869b --- nvm.sh | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/nvm.sh b/nvm.sh index 6005fb0..c936427 100644 --- a/nvm.sh +++ b/nvm.sh @@ -422,11 +422,20 @@ nvm_resolve_alias() { done if [ -n "$ALIAS" ] && [ "_$ALIAS" != "_$PATTERN" ]; then - if [ "_$ALIAS" = "_∞" ]; then - echo "$ALIAS" - else - nvm_ensure_version_prefix "$ALIAS" - fi + local NVM_IOJS_PREFIX + NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" + local NVM_NODE_PREFIX + NVM_NODE_PREFIX="$(nvm_node_prefix)" + case "_$ALIAS" in + "_∞" | \ + "_$NVM_IOJS_PREFIX" | "_$NVM_IOJS_PREFIX-" | \ + "_$NVM_NODE_PREFIX" ) + echo "$ALIAS" + ;; + *) + nvm_ensure_version_prefix "$ALIAS" + ;; + esac return 0 fi From a0d04d0b6bd4027a94235e51467fc1b88d8aed6d Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 22 Feb 2015 02:16:55 -0800 Subject: [PATCH 0413/1426] Preventing an unalias error in tests. --- test/fast/Unit tests/nvm_ls_current | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/fast/Unit tests/nvm_ls_current b/test/fast/Unit tests/nvm_ls_current index 990312c..1332b96 100755 --- a/test/fast/Unit tests/nvm_ls_current +++ b/test/fast/Unit tests/nvm_ls_current @@ -3,7 +3,7 @@ TEST_PWD=$(pwd) TEST_DIR="$TEST_PWD/nvm_ls_current_tmp" -cleanup() { rm -rf "$TEST_DIR"; unset -f return_zero; unalias node; } +cleanup() { rm -rf "$TEST_DIR"; unset -f return_zero; alias node='node' ; unalias node; } die () { echo $@ ; cleanup ; exit 1; } . ../../../nvm.sh From 0d9329435c2b715c1508ac185c56500fd81e70e4 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 21 Feb 2015 20:03:06 -0800 Subject: [PATCH 0414/1426] Create `nvm_ensure_version_installed` --- nvm.sh | 18 +++++++++++++++ .../Unit tests/nvm_ensure_version_installed | 23 +++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100755 test/fast/Unit tests/nvm_ensure_version_installed diff --git a/nvm.sh b/nvm.sh index c936427..96648e8 100644 --- a/nvm.sh +++ b/nvm.sh @@ -189,6 +189,24 @@ nvm_version_path() { fi } +nvm_ensure_version_installed() { + local PROVIDED_VERSION + PROVIDED_VERSION="$1" + local LOCAL_VERSION + LOCAL_VERSION="$(nvm_version "$PROVIDED_VERSION")" + local NVM_VERSION_DIR + NVM_VERSION_DIR="$(nvm_version_path "$LOCAL_VERSION")" + if [ ! -d "$NVM_VERSION_DIR" ]; then + VERSION="$(nvm_resolve_alias "$PROVIDED_VERSION")" + if [ $? -eq 0 ]; then + echo "N/A: version \"$PROVIDED_VERSION -> $VERSION\" is not yet installed" >&2 + else + echo "N/A: version \"$(nvm_ensure_version_prefix "$PROVIDED_VERSION")\" is not yet installed" >&2 + fi + return 1 + fi +} + # Expand a version using the version cache nvm_version() { local PATTERN diff --git a/test/fast/Unit tests/nvm_ensure_version_installed b/test/fast/Unit tests/nvm_ensure_version_installed new file mode 100755 index 0000000..ed2d996 --- /dev/null +++ b/test/fast/Unit tests/nvm_ensure_version_installed @@ -0,0 +1,23 @@ +#!/bin/sh + +die () { echo $@ ; cleanup ; exit 1; } +cleanup () { + rm -rf "$(nvm_version_path v0.1.2)" +} + +. ../../../nvm.sh + +mkdir -p "$(nvm_version_path v0.1.2)" + +OUTPUT="$(nvm_ensure_version_installed foo 2>&1)" +EXIT_CODE=$? +EXPECTED_OUTPUT='N/A: version "foo" is not yet installed' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "expected 'nvm_ensure_version_installed foo' to give $EXPECTED_OUTPUT, got $OUTPUT" +[ "_$EXIT_CODE" = "_1" ] || die "expected 'nvm_ensure_version_installed foo' to exit with 1, got $EXIT_CODE" + +OUTPUT="$(nvm_ensure_version_installed 0.1)" +EXIT_CODE=$? +[ "_$OUTPUT" = "_" ] || die "expected 'nvm_ensure_version_installed 0.1' to have no output, got $OUTPUT" +[ "_$EXIT_CODE" = "_0" ] || die "expected 'nvm_ensure_version_installed 0.1' to exit with 0, got $EXIT_CODE" + +cleanup From fb853614a74fb90cb1810764eb8a4fa38815c683 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 21 Feb 2015 20:03:28 -0800 Subject: [PATCH 0415/1426] Use `nvm_ensure_version_installed` to consistently check if a version is installed. Fixes #675. --- nvm.sh | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/nvm.sh b/nvm.sh index 96648e8..4b500c5 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1343,12 +1343,15 @@ nvm() { return 8 fi + nvm_ensure_version_installed "$2" + EXIT_CODE=$? + if [ "$EXIT_CODE" != "0" ]; then + return $EXIT_CODE + fi + local NVM_VERSION_DIR NVM_VERSION_DIR="$(nvm_version_path "$VERSION")" - if [ ! -d "$NVM_VERSION_DIR" ]; then - echo "$VERSION version is not installed yet" >&2 - return 1 - fi + # Strip other version from PATH PATH="$(nvm_strip_path "$PATH" "/bin")" # Prepend current version @@ -1453,20 +1456,20 @@ nvm() { if [ -n "$provided_version" ]; then VERSION="$(nvm_version "$provided_version")" if [ "_$VERSION" = "_N/A" ]; then - provided_version='' nvm_rc_version - VERSION="$(nvm_version "$NVM_RC_VERSION")" + provided_version="$NVM_RC_VERSION" + VERSION="$(nvm_version "$provided_version")" else shift fi fi - local NVM_VERSION_DIR - NVM_VERSION_DIR="$(nvm_version_path "$VERSION")" - if [ ! -d "$NVM_VERSION_DIR" ]; then - echo "$VERSION version is not installed yet" >&2 - return 1 + nvm_ensure_version_installed "$provided_version" + EXIT_CODE=$? + if [ "$EXIT_CODE" != "0" ]; then + return $EXIT_CODE fi + echo "Running node $VERSION" NODE_VERSION="$VERSION" $NVM_DIR/nvm-exec "$@" ;; @@ -1525,13 +1528,16 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" nvm_version current ;; "which" ) + local provided_version + provided_version="$2" if [ $# -eq 1 ]; then nvm_rc_version if [ -n "$NVM_RC_VERSION" ]; then + provided_version="$NVM_RC_VERSION" VERSION=$(nvm_version "$NVM_RC_VERSION") fi elif [ "_$2" != '_system' ]; then - VERSION="$(nvm_version "$2")" + VERSION="$(nvm_version "$provided_version")" else VERSION="$2" fi @@ -1559,12 +1565,13 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" return 8 fi + nvm_ensure_version_installed "$provided_version" + EXIT_CODE=$? + if [ "$EXIT_CODE" != "0" ]; then + return $EXIT_CODE + fi local NVM_VERSION_DIR NVM_VERSION_DIR="$(nvm_version_path "$VERSION")" - if [ ! -d "$NVM_VERSION_DIR" ]; then - echo "$VERSION version is not installed yet" >&2 - return 1 - fi echo "$NVM_VERSION_DIR/bin/node" ;; "alias" ) From 9e154b159e6facf5a2911267a77ea8bd1df82ad3 Mon Sep 17 00:00:00 2001 From: Sayanee Date: Fri, 27 Feb 2015 09:49:45 +0800 Subject: [PATCH 0416/1426] fix: download url for iojs armv6l and armv7l. #678 #227 --- nvm.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 4b500c5..9fdfee7 100644 --- a/nvm.sh +++ b/nvm.sh @@ -859,7 +859,6 @@ nvm_get_arch() { case "$NVM_UNAME" in *x86_64*) NVM_ARCH=x64 ;; *i*86*) NVM_ARCH=x86 ;; - *armv6l*) NVM_ARCH=arm-pi ;; *) NVM_ARCH="$(uname -m)" ;; esac echo "$NVM_ARCH" From fb48129cd47d13bbb6a7fdb60c6e801ac09fa875 Mon Sep 17 00:00:00 2001 From: Sayanee Date: Sat, 28 Feb 2015 14:48:38 +0800 Subject: [PATCH 0417/1426] add support for node builds for armv6l named as arm-pi --- nvm.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) mode change 100644 => 100755 nvm.sh diff --git a/nvm.sh b/nvm.sh old mode 100644 new mode 100755 index 9fdfee7..da7cef0 --- a/nvm.sh +++ b/nvm.sh @@ -936,7 +936,11 @@ nvm_install_node_binary() { if [ -n "$NVM_OS" ]; then if nvm_binary_available "$VERSION"; then - t="$VERSION-$NVM_OS-$(nvm_get_arch)" + nvm_arch="$(nvm_get_arch)" + if [ $nvm_arch = "armv6l" ]; then + nvm_arch="arm-pi" + fi + t="$VERSION-$NVM_OS-$nvm_arch" url="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-${t}.tar.gz" sum=`nvm_download -L -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt -o - | command grep node-${t}.tar.gz | command awk '{print $1}'` local tmpdir From f8ee25ab5bbb2ddd439c210542ef736cb55283c6 Mon Sep 17 00:00:00 2001 From: Sayanee Date: Mon, 2 Mar 2015 01:04:29 +0800 Subject: [PATCH 0418/1426] fix: local declaration of ksh compatibility --- nvm.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index da7cef0..317c28f 100755 --- a/nvm.sh +++ b/nvm.sh @@ -936,7 +936,8 @@ nvm_install_node_binary() { if [ -n "$NVM_OS" ]; then if nvm_binary_available "$VERSION"; then - nvm_arch="$(nvm_get_arch)" + local NVM_ARCH + NVM_ARCH="$(nvm_get_arch)" if [ $nvm_arch = "armv6l" ]; then nvm_arch="arm-pi" fi From f8064b259d6ba6c1f4f0b498f43bc90c55daee3b Mon Sep 17 00:00:00 2001 From: Sayanee Date: Mon, 2 Mar 2015 12:19:34 +0800 Subject: [PATCH 0419/1426] fix: if case and capitalising variable --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 317c28f..de5f2b2 100755 --- a/nvm.sh +++ b/nvm.sh @@ -938,8 +938,8 @@ nvm_install_node_binary() { if nvm_binary_available "$VERSION"; then local NVM_ARCH NVM_ARCH="$(nvm_get_arch)" - if [ $nvm_arch = "armv6l" ]; then - nvm_arch="arm-pi" + if [ $NVM_ARCH == "armv6l" ]; then + NVM_ARCH="arm-pi" fi t="$VERSION-$NVM_OS-$nvm_arch" url="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-${t}.tar.gz" From 16a730f4cc5e3dd4bc77cd48b9667829f9fbe707 Mon Sep 17 00:00:00 2001 From: Sayanee Date: Mon, 2 Mar 2015 12:28:21 +0800 Subject: [PATCH 0420/1426] amend all variables nvm_arch to capitalise --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index de5f2b2..daaaae3 100755 --- a/nvm.sh +++ b/nvm.sh @@ -938,10 +938,10 @@ nvm_install_node_binary() { if nvm_binary_available "$VERSION"; then local NVM_ARCH NVM_ARCH="$(nvm_get_arch)" - if [ $NVM_ARCH == "armv6l" ]; then + if [ $NVM_ARCH = "armv6l" ]; then NVM_ARCH="arm-pi" fi - t="$VERSION-$NVM_OS-$nvm_arch" + t="$VERSION-$NVM_OS-$NVM_ARCH" url="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-${t}.tar.gz" sum=`nvm_download -L -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt -o - | command grep node-${t}.tar.gz | command awk '{print $1}'` local tmpdir From 8ae7a37d43f5d1dcf81d37d4607b2b3778ac2540 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 3 Mar 2015 11:29:15 -0800 Subject: [PATCH 0421/1426] Fix bare `nvm use` when `nvm_ls_current` is "none". --- nvm.sh | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/nvm.sh b/nvm.sh index daaaae3..b78cdb7 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1303,17 +1303,20 @@ nvm() { return 127 fi + local PROVIDED_VERSION if [ $# -eq 1 ]; then nvm_rc_version if [ -n "$NVM_RC_VERSION" ]; then - VERSION="$(nvm_version "$NVM_RC_VERSION")" + PROVIDED_VERSION="$NVM_RC_VERSION" + VERSION="$(nvm_version "$PROVIDED_VERSION")" fi else local NVM_IOJS_PREFIX NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" local NVM_NODE_PREFIX NVM_NODE_PREFIX="$(nvm_node_prefix)" - case "_$2" in + PROVIDED_VERSION="$2" + case "_$PROVIDED_VERSION" in "_$NVM_IOJS_PREFIX" | "_io.js") VERSION="$(nvm_version $NVM_IOJS_PREFIX)" ;; @@ -1321,7 +1324,7 @@ nvm() { VERSION="system" ;; *) - VERSION="$(nvm_version "$2")" + VERSION="$(nvm_version "$PROVIDED_VERSION")" ;; esac fi @@ -1343,11 +1346,11 @@ nvm() { return 127 fi elif [ "_$VERSION" = "_∞" ]; then - echo "The alias \"$2\" leads to an infinite loop. Aborting." >&2 + echo "The alias \"$PROVIDED_VERSION\" leads to an infinite loop. Aborting." >&2 return 8 fi - nvm_ensure_version_installed "$2" + nvm_ensure_version_installed "$PROVIDED_VERSION" EXIT_CODE=$? if [ "$EXIT_CODE" != "0" ]; then return $EXIT_CODE From c16919becdf4aae91bdb1ecdda7c49e4b68cf52a Mon Sep 17 00:00:00 2001 From: Jarrett Chisholm Date: Thu, 5 Mar 2015 18:21:46 -0500 Subject: [PATCH 0422/1426] - fixed return code of 1 when updating from git --- install.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 78e54f9..a141373 100755 --- a/install.sh +++ b/install.sh @@ -69,7 +69,10 @@ install_nvm_from_git() { mkdir -p "$NVM_DIR" command git clone "$(nvm_source git)" "$NVM_DIR" fi - cd "$NVM_DIR" && command git checkout --quiet $(nvm_latest_version) && command git branch --quiet -D master >/dev/null 2>&1 + cd "$NVM_DIR" && command git checkout --quiet $(nvm_latest_version) + if [ ! -z "$(cd "$NVM_DIR" && git show-ref refs/heads/master)" ]; then + cd "$NVM_DIR" && command git branch --quiet -D master >/dev/null 2>&1 + fi return } From 5802ac3ea751bdd66cba75302b3b322109be90f8 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 5 Mar 2015 21:35:37 -0800 Subject: [PATCH 0423/1426] v0.24.0 --- README.markdown | 6 +++--- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.markdown b/README.markdown index 9916d2a..f08bc8f 100644 --- a/README.markdown +++ b/README.markdown @@ -16,11 +16,11 @@ Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creati To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.23.3/install.sh | bash + curl https://raw.githubusercontent.com/creationix/nvm/v0.24.0/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.23.3/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.24.0/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -206,7 +206,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.23.3/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.24.0/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index a141373..b5356fa 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ if [ -z "$NVM_DIR" ]; then fi nvm_latest_version() { - echo "v0.23.3" + echo "v0.24.0" } # diff --git a/nvm.sh b/nvm.sh index b78cdb7..5b48ca8 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1676,7 +1676,7 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" nvm_version $2 ;; "--version" ) - echo "0.23.3" + echo "0.24.0" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum \ diff --git a/package.json b/package.json index 604ca27..8ebad6d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.23.3", + "version": "0.24.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 230b479648aa5eb75b4be27e7ca46bcad44340a2 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 14 Mar 2015 10:34:52 -0700 Subject: [PATCH 0424/1426] Making `help` error output actually output to stderr consistently. --- nvm.sh | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/nvm.sh b/nvm.sh index 5b48ca8..17380c4 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1112,8 +1112,8 @@ nvm() { version_not_provided=1 nvm_rc_version if [ -z "$NVM_RC_VERSION" ]; then - nvm help - return + >&2 nvm help + return 127 fi fi @@ -1218,7 +1218,10 @@ nvm() { fi ;; "uninstall" ) - [ $# -ne 2 ] && nvm help && return + if [ $# -ne 2 ]; then + >&2 nvm help + return 127 + fi local PATTERN PATTERN="$2" @@ -1298,11 +1301,6 @@ nvm() { fi ;; "use" ) - if [ $# -eq 0 ]; then - nvm help - return 127 - fi - local PROVIDED_VERSION if [ $# -eq 1 ]; then nvm_rc_version @@ -1330,7 +1328,7 @@ nvm() { fi if [ -z "$VERSION" ]; then - nvm help + >&2 nvm help return 127 fi @@ -1400,7 +1398,7 @@ nvm() { VERSION='N/A' fi if [ $VERSION = "N/A" ]; then - nvm help + >&2 nvm help return 127 fi fi @@ -1549,7 +1547,7 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" VERSION="$2" fi if [ -z "$VERSION" ]; then - nvm help + >&2 nvm help return 127 fi @@ -1633,14 +1631,17 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" local NVM_ALIAS_DIR NVM_ALIAS_DIR="$(nvm_alias_path)" command mkdir -p "$NVM_ALIAS_DIR" - [ $# -ne 2 ] && nvm help && return 127 + if [ $# -ne 2 ]; then + >&2 nvm help + return 127 + fi [ ! -f "$NVM_ALIAS_DIR/$2" ] && echo "Alias $2 doesn't exist!" >&2 && return command rm -f "$NVM_ALIAS_DIR/$2" echo "Deleted alias $2" ;; "reinstall-packages" | "copy-packages" ) if [ $# -ne 2 ]; then - nvm help + >&2 nvm help return 127 fi @@ -1690,7 +1691,8 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_DIR NVM_CD_FLAGS > /dev/null 2>&1 ;; * ) - nvm help + >&2 nvm help + return 127 ;; esac } From 2b63f37f8df69b5d45d98cb958bcf8f6836a5793 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 14 Mar 2015 10:55:31 -0700 Subject: [PATCH 0425/1426] Make `nvm_resolve_local_alias` not return `N/A` - that should be done as shallowly as possible. --- nvm.sh | 1 - test/fast/Aliases/nvm_resolve_local_alias | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 17380c4..471e220 100755 --- a/nvm.sh +++ b/nvm.sh @@ -478,7 +478,6 @@ nvm_resolve_local_alias() { VERSION="$(nvm_resolve_alias "$1")" EXIT_CODE=$? if [ -z "$VERSION" ]; then - echo "N/A" return $EXIT_CODE fi if [ "_$VERSION" != "_∞" ]; then diff --git a/test/fast/Aliases/nvm_resolve_local_alias b/test/fast/Aliases/nvm_resolve_local_alias index 22d195e..384fece 100755 --- a/test/fast/Aliases/nvm_resolve_local_alias +++ b/test/fast/Aliases/nvm_resolve_local_alias @@ -20,7 +20,7 @@ done OUTPUT="$(nvm_resolve_local_alias nonexistent)" EXIT_CODE=$(nvm_resolve_local_alias nonexistent > /dev/null 2>&1 ; echo $?) [ "_$EXIT_CODE" = "_2" ] || die "'nvm_resolve_local_alias nonexistent' did not return 2; got $EXIT_CODE" -[ "_$OUTPUT" = "_N/A" ] || die "'nvm_resolve_local_alias nonexistent' did not output N/A; got $OUTPUT" +[ "_$OUTPUT" = "_" ] || die "'nvm_resolve_local_alias nonexistent' did not have empty output; got $OUTPUT" STABLE="$(nvm_resolve_local_alias stable)" [ "_$STABLE" = "_v0.0.10" ] || die "'nvm_resolve_local_alias stable' was not v0.0.10; got $STABLE" From bf7bd3e793adfac2069f2f4bc5225765d347fa25 Mon Sep 17 00:00:00 2001 From: HE Shi-Jun Date: Wed, 11 Mar 2015 18:12:01 +0800 Subject: [PATCH 0426/1426] Only filter the package npm, not any package name contains 'npm' --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 471e220..a3ddf5a 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1658,11 +1658,11 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" echo 'No system version of node or io.js detected.' >&2 return 3 fi - INSTALLS=$(nvm deactivate > /dev/null && npm list -g --depth=0 | command tail -n +2 | command grep -o -e ' [^@]*' | command cut -c 2- | command grep -v npm | command xargs) + INSTALLS=$(nvm deactivate > /dev/null && npm list -g --depth=0 | command tail -n +2 | command grep -o -e ' [^@]*' | command cut -c 2- | command grep -vx npm | command xargs) else local VERSION VERSION="$(nvm_version "$PROVIDED_VERSION")" - INSTALLS=$(nvm use "$VERSION" > /dev/null && npm list -g --depth=0 | command tail -n +2 | command grep -o -e ' [^@]*' | command cut -c 2- | command grep -v npm | command xargs) + INSTALLS=$(nvm use "$VERSION" > /dev/null && npm list -g --depth=0 | command tail -n +2 | command grep -o -e ' [^@]*' | command cut -c 2- | command grep -vx npm | command xargs) fi echo "Copying global packages from $VERSION..." From 14b23bfa95451dcad365b180544f1082c1f6fa51 Mon Sep 17 00:00:00 2001 From: HE Shi-Jun Date: Sun, 15 Mar 2015 06:08:14 +0800 Subject: [PATCH 0427/1426] fix reinstall-packages test --- .../nvm reinstall-packages/should work as expected | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/test/slow/nvm reinstall-packages/should work as expected b/test/slow/nvm reinstall-packages/should work as expected index 4942e6e..7f39197 100755 --- a/test/slow/nvm reinstall-packages/should work as expected +++ b/test/slow/nvm reinstall-packages/should work as expected @@ -6,16 +6,19 @@ die () { echo "$@" ; exit 1; } nvm use 0.10.28 -EXPECTED_PACKAGES="autoprefixer bower david eslint grunt-cli grunth-cli http-server jshint marked node-gyp recursive-blame uglify-js yo" +EXPECTED_PACKAGES="autoprefixer bower david eslint grunt-cli grunth-cli http-server jshint marked node-gyp npmlist recursive-blame uglify-js yo" echo "$EXPECTED_PACKAGES" | xargs npm install -g --quiet +get_packages() { + npm list -g --depth=0 | \sed -e '1 d' -e 's/^.* \(.*\)@.*/\1/' -e '/^npm$/ d' | xargs +} + nvm use 0.10.29 -ORIGINAL_PACKAGES=$(npm list -g --depth=0 | tail -n +2 | \grep -o -e ' [^@]*' | cut -c 2- | \grep -v npm | sort | uniq | xargs) +ORIGINAL_PACKAGES=$(get_packages) nvm reinstall-packages 0.10.28 -FINAL_PACKAGES=$(npm list -g --depth=0 | tail -n +2 | \grep -o -e ' [^@]*' | cut -c 2- | \grep -v npm | sort | uniq | xargs) +FINAL_PACKAGES=$(get_packages) [ "$FINAL_PACKAGES" = "$EXPECTED_PACKAGES" ] || die "final packages ($FINAL_PACKAGES) did not match expected packages ($EXPECTED_PACKAGES)" [ "$ORIGINAL_PACKAGES" != "$FINAL_PACKAGES" ] || die "original packages matched final packages ($ORIGINAL_PACKAGES)" - From 207521d54b1e9c4fca3a6f9b82afb01709abdad6 Mon Sep 17 00:00:00 2001 From: HE Shi-Jun Date: Tue, 17 Mar 2015 14:19:32 +0800 Subject: [PATCH 0428/1426] support npm link --- nvm.sh | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/nvm.sh b/nvm.sh index a3ddf5a..7cce46a 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1652,21 +1652,32 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" return 2 fi - local INSTALLS + local NPMLIST if [ "_$PROVIDED_VERSION" = "_system" ]; then if ! nvm_has_system_node && ! nvm_has_system_iojs; then echo 'No system version of node or io.js detected.' >&2 return 3 fi - INSTALLS=$(nvm deactivate > /dev/null && npm list -g --depth=0 | command tail -n +2 | command grep -o -e ' [^@]*' | command cut -c 2- | command grep -vx npm | command xargs) + NPMLIST=$(nvm deactivate > /dev/null && npm list -g --depth=0 | command tail -n +2) else local VERSION VERSION="$(nvm_version "$PROVIDED_VERSION")" - INSTALLS=$(nvm use "$VERSION" > /dev/null && npm list -g --depth=0 | command tail -n +2 | command grep -o -e ' [^@]*' | command cut -c 2- | command grep -vx npm | command xargs) + NPMLIST=$(nvm use "$VERSION" > /dev/null && npm list -g --depth=0 | command tail -n +2) fi + local INSTALLS + INSTALLS=$(echo "$NPMLIST" | command sed -e '/ -> / d' -e 's/^.* \(.*\)@.*/\1/' -e '/^npm$/ d' | command xargs) + echo "Copying global packages from $VERSION..." echo "$INSTALLS" | command xargs npm install -g --quiet + + local LINKS + LINKS=$(echo "$NPMLIST" | command sed -n 's/.* -> \(.*\)/\1/ p') + + echo "Linking global packages from $VERSION..." + for LINK in $LINKS; do + (cd "$LINK" && npm link) + done ;; "clear-cache" ) command rm -f $NVM_DIR/v* "$(nvm_version_dir)" 2>/dev/null @@ -1712,4 +1723,3 @@ elif nvm ls default >/dev/null; then elif nvm_rc_version >/dev/null 2>&1; then nvm use >/dev/null fi - From 3d69cf74373920e4f1afcd65b56990a33afec37b Mon Sep 17 00:00:00 2001 From: HE Shi-Jun Date: Tue, 17 Mar 2015 14:46:41 +0800 Subject: [PATCH 0429/1426] update testcase --- .../nvm reinstall-packages/should work as expected | 5 ++++- test/slow/nvm reinstall-packages/test-npmlink/index.js | 2 ++ .../nvm reinstall-packages/test-npmlink/package.json | 10 ++++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100755 test/slow/nvm reinstall-packages/test-npmlink/index.js create mode 100644 test/slow/nvm reinstall-packages/test-npmlink/package.json diff --git a/test/slow/nvm reinstall-packages/should work as expected b/test/slow/nvm reinstall-packages/should work as expected index 7f39197..ef58297 100755 --- a/test/slow/nvm reinstall-packages/should work as expected +++ b/test/slow/nvm reinstall-packages/should work as expected @@ -5,8 +5,9 @@ die () { echo "$@" ; exit 1; } . ../../../nvm.sh nvm use 0.10.28 +(cd test-npmlink && npm link) -EXPECTED_PACKAGES="autoprefixer bower david eslint grunt-cli grunth-cli http-server jshint marked node-gyp npmlist recursive-blame uglify-js yo" +EXPECTED_PACKAGES="autoprefixer bower david eslint grunt-cli grunth-cli http-server jshint marked node-gyp npmlist recursive-blame test-npmlink uglify-js yo" echo "$EXPECTED_PACKAGES" | xargs npm install -g --quiet @@ -22,3 +23,5 @@ FINAL_PACKAGES=$(get_packages) [ "$FINAL_PACKAGES" = "$EXPECTED_PACKAGES" ] || die "final packages ($FINAL_PACKAGES) did not match expected packages ($EXPECTED_PACKAGES)" [ "$ORIGINAL_PACKAGES" != "$FINAL_PACKAGES" ] || die "original packages matched final packages ($ORIGINAL_PACKAGES)" + +[ $(test-npmlink) = 'ok' ] || die "failed to run test-npmlink" diff --git a/test/slow/nvm reinstall-packages/test-npmlink/index.js b/test/slow/nvm reinstall-packages/test-npmlink/index.js new file mode 100755 index 0000000..9558516 --- /dev/null +++ b/test/slow/nvm reinstall-packages/test-npmlink/index.js @@ -0,0 +1,2 @@ +#!/usr/bin/env node +console.log('ok') diff --git a/test/slow/nvm reinstall-packages/test-npmlink/package.json b/test/slow/nvm reinstall-packages/test-npmlink/package.json new file mode 100644 index 0000000..e596ea4 --- /dev/null +++ b/test/slow/nvm reinstall-packages/test-npmlink/package.json @@ -0,0 +1,10 @@ +{ + "name": "test-npmlink", + "version": "0.0.1", + "description": "Stub package for testing npm link", + "bin": { + "test-npmlink": "index.js" + }, + "author": "hax", + "license": "ISC" +} From 999c4111c1a050b862cd28d64d1fdd7252db40ac Mon Sep 17 00:00:00 2001 From: Pedro Costa Date: Wed, 18 Mar 2015 10:21:11 +0000 Subject: [PATCH 0430/1426] Supresses error message on checking source options --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index a3ddf5a..57759b2 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1697,7 +1697,7 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" } nvm_supports_source_options() { - [ "_$(echo 'echo $1' | . /dev/stdin yes)" = "_yes" ] + [ "_$(echo 'echo $1' | . /dev/stdin yes 2> /dev/null)" = "_yes" ] } if nvm_supports_source_options && [ "_$1" = "_--install" ]; then From 70370a857f0bc16af50f4196afe9af03b100535e Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 19 Mar 2015 11:05:31 -0700 Subject: [PATCH 0431/1426] No more need for `sudo` to install `ksh` and `zsh`. --- .travis.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 762181b..918035f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,9 @@ language: c # defaults to ruby +addons: + apt_packages: + - zsh + - ksh install: - - sudo apt-get install zsh -y # ksh - (mkdir /tmp/urchin && cd /tmp/urchin && curl -s "$(curl -s https://registry.npmjs.com/urchin | grep -Eo '"tarball":\s*"[^"]+"' | tail -n 1 | awk -F\" '{ print $4 }')" -O && tar -x -f urchin*) - chmod +x /tmp/urchin/package/urchin - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' From 609d9ee4eacbbef1b28bf1b33d7f6551a0296674 Mon Sep 17 00:00:00 2001 From: Jo Liss Date: Fri, 27 Mar 2015 03:15:11 +0000 Subject: [PATCH 0432/1426] Improve startup performance. Closes #703 --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 4b242bc..05a0bd1 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1718,7 +1718,7 @@ if nvm_supports_source_options && [ "_$1" = "_--install" ]; then elif nvm_rc_version >/dev/null 2>&1; then nvm install >/dev/null fi -elif nvm ls default >/dev/null; then +elif nvm_alias default >/dev/null 2>&1; then nvm use default >/dev/null elif nvm_rc_version >/dev/null 2>&1; then nvm use >/dev/null From fc86834e29ba0534c79f56c828d3f69b4da2eb1c Mon Sep 17 00:00:00 2001 From: Jo Liss Date: Fri, 27 Mar 2015 03:17:42 +0000 Subject: [PATCH 0433/1426] Add comment re nvm_ensure_version_installed performance --- nvm.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nvm.sh b/nvm.sh index 05a0bd1..5ad3578 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1347,6 +1347,8 @@ nvm() { return 8 fi + # This nvm_ensure_version_installed call can be a performance bottleneck + # on shell startup. Perhaps we can optimize it away or make it faster. nvm_ensure_version_installed "$PROVIDED_VERSION" EXIT_CODE=$? if [ "$EXIT_CODE" != "0" ]; then From 394e8505d9ae9a5008bd3b363d7edffdbc4ab249 Mon Sep 17 00:00:00 2001 From: Jo Liss Date: Thu, 2 Apr 2015 16:58:31 +0000 Subject: [PATCH 0434/1426] Combine sed and grep commands --- nvm.sh | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/nvm.sh b/nvm.sh index 4b242bc..947da1f 100755 --- a/nvm.sh +++ b/nvm.sh @@ -603,17 +603,20 @@ nvm_ls() { fi if [ -n "$NVM_DIRS_TO_SEARCH" ]; then VERSIONS="$(command find $NVM_DIRS_TO_SEARCH -maxdepth 1 -type d -name "$PATTERN*" \ - | command sed "s#$NVM_VERSION_DIR_IOJS/#"$NVM_IOJS_PREFIX"-#" \ - | command grep -v "$NVM_VERSION_DIR_IOJS" \ - | command sed "s#^$NVM_DIR/##" \ - | command grep -v -e '^versions$' \ - | command sed 's#^versions/##' \ - | sed -e "s/^v/$NVM_NODE_PREFIX-v/" \ - | sed -e "s#^\($NVM_IOJS_PREFIX\)[-/]v#\1.v#" | sed -e "s#^\($NVM_NODE_PREFIX\)[-/]v#\1.v#" \ + | command sed " + s#$NVM_VERSION_DIR_IOJS/#$NVM_IOJS_PREFIX-#; + \#$NVM_VERSION_DIR_IOJS# d; + s#^$NVM_DIR/##; + \#^versions\$# d; + s#^versions/##; + s#^v#$NVM_NODE_PREFIX-v#; + s#^\($NVM_IOJS_PREFIX\)[-/]v#\1.v#; + s#^\($NVM_NODE_PREFIX\)[-/]v#\1.v#" \ | command sort -t. -u -k 2.2,2n -k 3,3n -k 4,4n \ | command sort -s -t- -k1.1,1.1 \ - | command sed "s/^\($NVM_IOJS_PREFIX\)\./\1-/" \ - | command sed "s/^$NVM_NODE_PREFIX\.//")" + | command sed " + s/^\($NVM_IOJS_PREFIX\)\./\1-/; + s/^$NVM_NODE_PREFIX\.//")" fi if [ $ZHS_HAS_SHWORDSPLIT_UNSET -eq 1 ] && nvm_has "unsetopt"; then From 96e73825bd87788f020fd5a13e5330da09819e72 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 4 Apr 2015 13:46:28 -0700 Subject: [PATCH 0435/1426] Consolidate faster default alias lookup, and use that explicit version to avoid a second default alias lookup in `nvm use default`. Related to #709. --- nvm.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index 9e16bc4..2d1a221 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1716,15 +1716,15 @@ nvm_supports_source_options() { [ "_$(echo 'echo $1' | . /dev/stdin yes 2> /dev/null)" = "_yes" ] } +VERSION="$(nvm_alias default 2>/dev/null)" if nvm_supports_source_options && [ "_$1" = "_--install" ]; then - VERSION="$(nvm_alias default 2>/dev/null)" if [ -n "$VERSION" ]; then nvm install "$VERSION" >/dev/null elif nvm_rc_version >/dev/null 2>&1; then nvm install >/dev/null fi -elif nvm_alias default >/dev/null 2>&1; then - nvm use default >/dev/null +elif [ -n "$VERSION" ]; then + nvm use "$VERSION" >/dev/null elif nvm_rc_version >/dev/null 2>&1; then nvm use >/dev/null fi From 108f630732cad7a12a1aecf941d171daf9d94908 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 4 Apr 2015 14:31:56 -0700 Subject: [PATCH 0436/1426] Cache the `nvm_node_prefix` call. --- nvm.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 2d1a221..3723b8d 100755 --- a/nvm.sh +++ b/nvm.sh @@ -222,8 +222,10 @@ nvm_version() { return $? fi + local NVM_NODE_PREFIX + NVM_NODE_PREFIX="$(nvm_node_prefix)" case "_$PATTERN" in - "_$(nvm_node_prefix)" | "_$(nvm_node_prefix)-") + "_$NVM_NODE_PREFIX" | "_$NVM_NODE_PREFIX-") PATTERN="stable" ;; esac From a1a8e5a51b30e6ca1d81a8265a17213dda8eb3d4 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 4 Apr 2015 14:53:38 -0700 Subject: [PATCH 0437/1426] Clean up logic a bit. --- nvm.sh | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/nvm.sh b/nvm.sh index 3723b8d..6f835fa 100755 --- a/nvm.sh +++ b/nvm.sh @@ -261,14 +261,12 @@ nvm_remote_version() { } nvm_remote_versions() { - local NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" + local NVM_IOJS_PREFIX + NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" local PATTERN PATTERN="$1" - if [ "_$PATTERN" = "_io.js" ]; then - PATTERN="$NVM_IOJS_PREFIX" - fi case "_$PATTERN" in - "_$NVM_IOJS_PREFIX") + "_$NVM_IOJS_PREFIX" | "_io.js") VERSIONS="$(nvm_ls_remote_iojs)" ;; "_$(nvm_node_prefix)") From 82393f5b36fa94c81c00dbcb7432a59e005ff6f8 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 4 Apr 2015 23:49:43 -0700 Subject: [PATCH 0438/1426] Making sure this test passes whether a system node is installed or not. --- test/fast/Unit tests/nvm_ls_current | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/test/fast/Unit tests/nvm_ls_current b/test/fast/Unit tests/nvm_ls_current index 1332b96..bc4a4f5 100755 --- a/test/fast/Unit tests/nvm_ls_current +++ b/test/fast/Unit tests/nvm_ls_current @@ -10,7 +10,12 @@ die () { echo $@ ; cleanup ; exit 1; } return_zero () { return 0; } -[ "$(nvm deactivate > /dev/null 2>&1 ; nvm_ls_current)" = "system" ] || die 'when deactivated, did not return "system"' +if nvm_has_system_node || nvm_has_system_iojs; then + EXPECTED_SYSTEM_NODE="system" +else + EXPECTED_SYSTEM_NODE="none" +fi +[ "_$(nvm deactivate > /dev/null 2>&1 ; nvm_ls_current)" = "_$EXPECTED_SYSTEM_NODE" ] || die "when deactivated, did not return $EXPECTED_SYSTEM_NODE" rm -rf "$TEST_DIR" mkdir "$TEST_DIR" From d50a0f46e9124f10089da46297671458c6f515b0 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 4 Apr 2015 14:29:55 -0700 Subject: [PATCH 0439/1426] Avoid some external calls by using case statements. Relates to #709. --- nvm.sh | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/nvm.sh b/nvm.sh index 6f835fa..7b3efbc 100755 --- a/nvm.sh +++ b/nvm.sh @@ -495,7 +495,8 @@ nvm_node_prefix() { } nvm_is_iojs_version() { - [ "_$(echo "$1" | cut -c1-5)" = "_iojs-" ] + case "$1" in iojs-*) return 0 ;; esac + return 1 } nvm_add_iojs_prefix() { @@ -545,7 +546,12 @@ nvm_ls() { ;; esac # If it looks like an explicit version, don't do anything funny - if [ "_$(echo "$PATTERN" | cut -c1-1)" = "_v" ] && [ "_$(nvm_num_version_groups "$PATTERN")" = "_3" ]; then + local NVM_PATTERN_STARTS_WITH_V + case $PATTERN in + v*) NVM_PATTERN_STARTS_WITH_V=true ;; + *) NVM_PATTERN_STARTS_WITH_V=false ;; + esac + if [ $NVM_PATTERN_STARTS_WITH_V = true ] && [ "_$(nvm_num_version_groups "$PATTERN")" = "_3" ]; then if [ -d "$(nvm_version_path "$PATTERN")" ]; then VERSIONS="$PATTERN" elif [ -d "$(nvm_version_path "$(nvm_add_iojs_prefix "$PATTERN")")" ]; then @@ -1151,15 +1157,19 @@ nvm() { while [ $# -ne 0 ] do - if [ "_$(echo "$1" | command cut -c 1-26)" = "_--reinstall-packages-from=" ]; then - PROVIDED_REINSTALL_PACKAGES_FROM="$(echo "$1" | command cut -c 27-)" - REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM")" - elif [ "_$(echo "$1" | command cut -c 1-21)" = "_--copy-packages-from=" ]; then - PROVIDED_REINSTALL_PACKAGES_FROM="$(echo "$1" | command cut -c 22-)" - REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM")" - else - ADDITIONAL_PARAMETERS="$ADDITIONAL_PARAMETERS $1" - fi + case "$1" in + --reinstall-packages-from=*) + PROVIDED_REINSTALL_PACKAGES_FROM="$(echo "$1" | command cut -c 27-)" + REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM")" + ;; + --copy-packages-from=*) + PROVIDED_REINSTALL_PACKAGES_FROM="$(echo "$1" | command cut -c 22-)" + REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM")" + ;; + *) + ADDITIONAL_PARAMETERS="$ADDITIONAL_PARAMETERS $1" + ;; + esac shift done From d72b35b7b894aec4f48566a3a7d9a30a8762319d Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 5 Apr 2015 01:26:10 -0700 Subject: [PATCH 0440/1426] Remove external calls to `sed` using parameter filtering. POSIX-compliant per http://stackoverflow.com/a/25536935/632724 Relates to #709 --- nvm.sh | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/nvm.sh b/nvm.sh index 7b3efbc..caedaef 100755 --- a/nvm.sh +++ b/nvm.sh @@ -307,7 +307,7 @@ nvm_is_valid_version() { } nvm_normalize_version() { - echo "$1" | command sed -e 's/^v//' | command awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }' + echo "${1#v*}" | command awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }' } nvm_ensure_version_prefix() { @@ -324,8 +324,7 @@ nvm_format_version() { local VERSION VERSION="$(nvm_ensure_version_prefix "$1")" if [ "_$(nvm_num_version_groups "$VERSION")" != "_3" ]; then - VERSION="$(echo "$VERSION" | command sed -e 's/\.*$/.0/')" - nvm_format_version "$VERSION" + nvm_format_version "${VERSION%*\.}.0" else echo "$VERSION" fi @@ -338,10 +337,12 @@ nvm_num_version_groups() { echo "0" return fi + VERSION="${VERSION#v*}" + VERSION="${VERSION%\.}" local NVM_NUM_DOTS - NVM_NUM_DOTS=$(echo "$VERSION" | command sed -e 's/^v//' | command sed -e 's/\.$//' | command sed -e 's/[^\.]//g') + NVM_NUM_DOTS=$(echo "$VERSION" | command sed -e 's/[^\.]//g') local NVM_NUM_GROUPS - NVM_NUM_GROUPS=".$NVM_NUM_DOTS" + NVM_NUM_GROUPS=".$NVM_NUM_DOTS" # add extra dot, since it's (n - 1) dots at this point echo "${#NVM_NUM_GROUPS}" } @@ -509,7 +510,7 @@ nvm_strip_iojs_prefix() { if [ "_$1" = "_$NVM_IOJS_PREFIX" ]; then echo else - echo "$1" | command sed "s/^$NVM_IOJS_PREFIX-//" + echo "${1#"$NVM_IOJS_PREFIX"-*}" fi } @@ -564,7 +565,7 @@ nvm_ls() { local NUM_VERSION_GROUPS NUM_VERSION_GROUPS="$(nvm_num_version_groups "$PATTERN")" if [ "_$NUM_VERSION_GROUPS" = "_2" ] || [ "_$NUM_VERSION_GROUPS" = "_1" ]; then - PATTERN="$(echo "$PATTERN" | command sed -e 's/\.*$//g')." + PATTERN="${PATTERN%*\.}." fi ;; esac From c966204cd63605eb7f3e120ebdd6920720563fcf Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 5 Apr 2015 12:55:17 -0700 Subject: [PATCH 0441/1426] v0.24.1 --- README.markdown | 6 +++--- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.markdown b/README.markdown index f08bc8f..7b863e4 100644 --- a/README.markdown +++ b/README.markdown @@ -16,11 +16,11 @@ Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creati To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.24.0/install.sh | bash + curl https://raw.githubusercontent.com/creationix/nvm/v0.24.1/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.24.0/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.24.1/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -206,7 +206,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.24.0/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.24.1/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index b5356fa..dea8f52 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ if [ -z "$NVM_DIR" ]; then fi nvm_latest_version() { - echo "v0.24.0" + echo "v0.24.1" } # diff --git a/nvm.sh b/nvm.sh index caedaef..8ad133f 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1703,7 +1703,7 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" nvm_version $2 ;; "--version" ) - echo "0.24.0" + echo "0.24.1" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum \ diff --git a/package.json b/package.json index 8ebad6d..18d203e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.24.0", + "version": "0.24.1", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From d68f6674646de5dc297fac2b376d4407db89efc6 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 5 Apr 2015 14:09:28 -0700 Subject: [PATCH 0442/1426] When no arguments are passed to `nvm run X`, use `nvm exec` to open a REPL. Fixes #625. Tests will be in #717. --- nvm-exec | 1 - nvm.sh | 7 +++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/nvm-exec b/nvm-exec index f40dd3a..3573a12 100755 --- a/nvm-exec +++ b/nvm-exec @@ -11,4 +11,3 @@ else fi exec $@ - diff --git a/nvm.sh b/nvm.sh index 8ad133f..fb73306 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1451,6 +1451,13 @@ nvm() { if [ "_$VERSION" = "_N/A" ]; then echo "$(nvm_ensure_version_prefix "$provided_version") is not installed yet" >&2 EXIT_CODE=1 + elif [ -z "$ARGS" ]; then + if [ "$NVM_IOJS" = true ]; then + nvm exec "$VERSION" iojs + else + nvm exec "$VERSION" node + fi + EXIT_CODE="$?" elif [ "$NVM_IOJS" = true ]; then echo "Running io.js $(nvm_strip_iojs_prefix "$VERSION")" OUTPUT="$(nvm use "$VERSION" >/dev/null && iojs $ARGS)" From a26ef4f1bec437b704c767de371eb4700392262b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 5 Apr 2015 16:00:16 -0700 Subject: [PATCH 0443/1426] Consolidate `reinstall-packages-from` logic to one place `nvm install` --- nvm.sh | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/nvm.sh b/nvm.sh index fb73306..931bfaf 100755 --- a/nvm.sh +++ b/nvm.sh @@ -980,10 +980,8 @@ nvm_install_node_binary() { nvm_install_node_source() { local VERSION VERSION="$1" - local REINSTALL_PACKAGES_FROM - REINSTALL_PACKAGES_FROM="$2" local ADDITIONAL_PARAMETERS - ADDITIONAL_PARAMETERS="$3" + ADDITIONAL_PARAMETERS="$2" if [ -n "$ADDITIONAL_PARAMETERS" ]; then echo "Additional options while compiling: $ADDITIONAL_PARAMETERS" @@ -1029,9 +1027,6 @@ nvm_install_node_source() { $make $MAKE_CXX install ) then - if nvm use "$VERSION" && [ ! -z "$REINSTALL_PACKAGES_FROM" ] && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then - nvm reinstall-packages "$REINSTALL_PACKAGES_FROM" - fi if ! nvm_has "npm" ; then echo "Installing npm..." if nvm_version_greater 0.2.0 "$VERSION"; then @@ -1204,31 +1199,29 @@ nvm() { # io.js does not have a SunOS binary nobinary=1 fi + local NVM_INSTALL_SUCCESS # skip binary install if "nobinary" option specified. if [ $nobinary -ne 1 ] && nvm_binary_available "$VERSION"; then - local NVM_INSTALL_SUCCESS if [ "$NVM_IOJS" = true ] && nvm_install_iojs_binary "$VERSION" "$REINSTALL_PACKAGES_FROM"; then NVM_INSTALL_SUCCESS=true elif [ "$NVM_IOJS" != true ] && nvm_install_node_binary "$VERSION" "$REINSTALL_PACKAGES_FROM"; then NVM_INSTALL_SUCCESS=true fi + elif [ "$NVM_IOJS" = true ]; then + # nvm_install_iojs_source "$VERSION" "$ADDITIONAL_PARAMETERS" + echo "Installing iojs from source is not currently supported" >&2 + return 105 + elif nvm_install_node_source "$VERSION" "$ADDITIONAL_PARAMETERS"; then + NVM_INSTALL_SUCCESS=true + fi - if [ "$NVM_INSTALL_SUCCESS" = true ] \ - && nvm use "$VERSION" \ - && [ ! -z "$REINSTALL_PACKAGES_FROM" ] \ + if [ "$NVM_INSTALL_SUCCESS" = true ] && nvm use "$VERSION"; then + if [ ! -z "$REINSTALL_PACKAGES_FROM" ] \ && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then nvm reinstall-packages "$REINSTALL_PACKAGES_FROM" fi - return $? - fi - - if [ "$NVM_IOJS" = true ]; then - # nvm_install_iojs_source "$VERSION" "$REINSTALL_PACKAGES_FROM" "$ADDITIONAL_PARAMETERS" - echo "Installing iojs from source is not currently supported" >&2 - return 105 - else - nvm_install_node_source "$VERSION" "$REINSTALL_PACKAGES_FROM" "$ADDITIONAL_PARAMETERS" fi + return $? ;; "uninstall" ) if [ $# -ne 2 ]; then From 3d764e6833bb495288e322cf33a6def7e283f920 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 5 Apr 2015 16:49:29 -0700 Subject: [PATCH 0444/1426] Add `nvm_ensure_default_set` --- nvm.sh | 19 +++++++++++++++++++ test/fast/Aliases/nvm_ensure_default_set | 18 ++++++++++++++++++ test/fast/Aliases/teardown | 1 + test/fast/Unit tests/nvm_ensure_default_set | 13 +++++++++++++ 4 files changed, 51 insertions(+) create mode 100755 test/fast/Aliases/nvm_ensure_default_set create mode 100755 test/fast/Unit tests/nvm_ensure_default_set diff --git a/nvm.sh b/nvm.sh index 931bfaf..5de1858 100755 --- a/nvm.sh +++ b/nvm.sh @@ -873,6 +873,25 @@ nvm_get_arch() { echo "$NVM_ARCH" } +nvm_ensure_default_set() { + local VERSION + VERSION="$1" + if [ -z "$VERSION" ]; then + echo 'nvm_ensure_default_set: a version is required' >&2 + return 1 + fi + if nvm_alias default >/dev/null 2>&1; then + # default already set + return 0 + fi + local OUTPUT + OUTPUT="$(nvm alias default "$VERSION")" + local EXIT_CODE + EXIT_CODE="$?" + echo "Creating default alias: $OUTPUT" + return $EXIT_CODE +} + nvm_install_iojs_binary() { local PREFIXED_VERSION PREFIXED_VERSION="$1" diff --git a/test/fast/Aliases/nvm_ensure_default_set b/test/fast/Aliases/nvm_ensure_default_set new file mode 100755 index 0000000..c719e4b --- /dev/null +++ b/test/fast/Aliases/nvm_ensure_default_set @@ -0,0 +1,18 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +nvm alias default 0.1 >/dev/null || die "'nvm alias default 0.1' failed" + +nvm_ensure_default_set 0.3 || die "'nvm_ensure_default_set' with an existing default alias exits 0" + +nvm unalias default || die "'nvm unalias default' failed" + +OUTPUT="$(nvm_ensure_default_set 0.2)" +EXPECTED_OUTPUT="Creating default alias: default -> 0.2 (-> iojs-v0.2.10)" +EXIT_CODE="$?" + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_ensure_default_set 0.2' did not output '$EXPECTED_OUTPUT', got '$OUTPUT'" +[ "_$EXIT_CODE" = "_0" ] || die "'nvm_ensure_default_set 0.2' did not exit with 0, got $EXIT_CODE" diff --git a/test/fast/Aliases/teardown b/test/fast/Aliases/teardown index 845567d..005c729 100755 --- a/test/fast/Aliases/teardown +++ b/test/fast/Aliases/teardown @@ -14,3 +14,4 @@ rm -f "../../../alias/stable" rm -f "../../../alias/unstable" rm -f "../../../alias/node" rm -f "../../../alias/iojs" +rm -f "../../../alias/default" diff --git a/test/fast/Unit tests/nvm_ensure_default_set b/test/fast/Unit tests/nvm_ensure_default_set new file mode 100755 index 0000000..edd926c --- /dev/null +++ b/test/fast/Unit tests/nvm_ensure_default_set @@ -0,0 +1,13 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +EXPECTED_OUTPUT="nvm_ensure_default_set: a version is required" +OUTPUT="$(nvm_ensure_default_set 2>&1 >/dev/null)" +EXIT_CODE="$?" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_ensure_default_set' did not output "$EXPECTED_OUTPUT", got "$OUTPUT"" +[ "_$EXIT_CODE" = "_1" ] || die "'nvm_ensure_default_set' did not exit with 1, got "$EXIT_CODE"" + +# see test/fast/Aliases for remaining nvm_ensure_default_set tests From c34502ebc2cf4fe5ea8c3b0ef8d21807f092173a Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 6 Apr 2015 11:10:43 -0700 Subject: [PATCH 0445/1426] `nvm_num_version_groups` should report 0 when given just a v or a . --- nvm.sh | 4 ++-- test/fast/Unit tests/nvm_num_version_groups | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 5de1858..9781a1f 100755 --- a/nvm.sh +++ b/nvm.sh @@ -333,12 +333,12 @@ nvm_format_version() { nvm_num_version_groups() { local VERSION VERSION="$1" + VERSION="${VERSION#v}" + VERSION="${VERSION%.}" if [ -z "$VERSION" ]; then echo "0" return fi - VERSION="${VERSION#v*}" - VERSION="${VERSION%\.}" local NVM_NUM_DOTS NVM_NUM_DOTS=$(echo "$VERSION" | command sed -e 's/[^\.]//g') local NVM_NUM_GROUPS diff --git a/test/fast/Unit tests/nvm_num_version_groups b/test/fast/Unit tests/nvm_num_version_groups index 893da75..88c240e 100755 --- a/test/fast/Unit tests/nvm_num_version_groups +++ b/test/fast/Unit tests/nvm_num_version_groups @@ -5,13 +5,17 @@ die () { echo $@ ; exit 1; } . ../../../nvm.sh [ "~$(nvm_num_version_groups)" = "~0" ] || die "no args should give 0" +[ "~$(nvm_num_version_groups v)" = "~0" ] || die "just "v" should give 0" +[ "~$(nvm_num_version_groups .)" = "~0" ] || die "just "." should give 0" [ "~$(nvm_num_version_groups a)" = "~1" ] || die "one letter should give 1" [ "~$(nvm_num_version_groups 1)" = "~1" ] || die "1 should give 1" +[ "~$(nvm_num_version_groups 1.)" = "~1" ] || die "1. should give 1" [ "~$(nvm_num_version_groups v1)" = "~1" ] || die "v1 should give 1" [ "~$(nvm_num_version_groups v1.)" = "~1" ] || die "v1. should give 1" [ "~$(nvm_num_version_groups 1.2)" = "~2" ] || die "1.2 should give 2" +[ "~$(nvm_num_version_groups 1.2.)" = "~2" ] || die "1.2. should give 2" [ "~$(nvm_num_version_groups v1.2)" = "~2" ] || die "v1.2 should give 2" [ "~$(nvm_num_version_groups v1.2.)" = "~2" ] || die "v1.2. should give 2" From 0dc177bf9c511f854cdb68df2f331b59e974fff8 Mon Sep 17 00:00:00 2001 From: Jo Liss Date: Mon, 6 Apr 2015 17:51:34 +0000 Subject: [PATCH 0446/1426] Consolidate and avoid sed/cut calls, clean up pattern matches Some patterns contained a no-op `*`; the `*` would match the empty string because # or % replacement (unlike ## or %%) tries to find the shortest match. --- nvm.sh | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/nvm.sh b/nvm.sh index 9781a1f..ef9e67e 100755 --- a/nvm.sh +++ b/nvm.sh @@ -307,7 +307,7 @@ nvm_is_valid_version() { } nvm_normalize_version() { - echo "${1#v*}" | command awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }' + echo "${1#v}" | command awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }' } nvm_ensure_version_prefix() { @@ -324,7 +324,7 @@ nvm_format_version() { local VERSION VERSION="$(nvm_ensure_version_prefix "$1")" if [ "_$(nvm_num_version_groups "$VERSION")" != "_3" ]; then - nvm_format_version "${VERSION%*\.}.0" + nvm_format_version "${VERSION%.}.0" else echo "$VERSION" fi @@ -510,7 +510,7 @@ nvm_strip_iojs_prefix() { if [ "_$1" = "_$NVM_IOJS_PREFIX" ]; then echo else - echo "${1#"$NVM_IOJS_PREFIX"-*}" + echo "${1#"$NVM_IOJS_PREFIX"-}" fi } @@ -565,7 +565,7 @@ nvm_ls() { local NUM_VERSION_GROUPS NUM_VERSION_GROUPS="$(nvm_num_version_groups "$PATTERN")" if [ "_$NUM_VERSION_GROUPS" = "_2" ] || [ "_$NUM_VERSION_GROUPS" = "_1" ]; then - PATTERN="${PATTERN%*\.}." + PATTERN="${PATTERN%.}." fi ;; esac @@ -681,9 +681,10 @@ nvm_ls_remote_iojs() { PATTERN=".*" fi VERSIONS="$(nvm_download -L -s $NVM_IOJS_ORG_VERSION_LISTING -o - \ - | command sed 1d \ - | command sed "s/^/$(nvm_iojs_prefix)-/" \ - | command cut -f1 \ + | command sed " + 1d; + s/^/$(nvm_iojs_prefix)-/; + s/[[:blank:]].*//" \ | command grep -w "$PATTERN" \ | command sort)" if [ -z "$VERSIONS" ]; then From e01bcb740b4cfcfcd4a3cb4e30d0c3812d579d07 Mon Sep 17 00:00:00 2001 From: Andrew Crites Date: Thu, 9 Apr 2015 01:20:51 -0400 Subject: [PATCH 0447/1426] Include npm version when displaying results of switch. When running nvm use, successful changing of versions lists the new node version. The npm version may also be switched, but this is not listed. This commit updates nvm to display the npm version that was switched to alongside the node version --- nvm.sh | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/nvm.sh b/nvm.sh index ef9e67e..7b4a3e2 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1360,10 +1360,10 @@ nvm() { if [ "_$VERSION" = '_system' ]; then if nvm_has_system_node && nvm deactivate >/dev/null 2>&1; then - echo "Now using system version of node: $(node -v 2>/dev/null)." + echo "Now using system version of node: $(node -v 2>/dev/null) (npm v$(npm --version 2>/dev/null))" return elif nvm_has_system_iojs && nvm deactivate >/dev/null 2>&1; then - echo "Now using system version of io.js: $(iojs --version 2>/dev/null)." + echo "Now using system version of io.js: $(iojs --version 2>/dev/null) (npm v$(npm --version 2>/dev/null))" return else echo "System version of node not found." >&2 @@ -1407,10 +1407,11 @@ nvm() { command rm -f "$NVM_DIR/current" && ln -s "$NVM_VERSION_DIR" "$NVM_DIR/current" fi if nvm_is_iojs_version "$VERSION"; then - echo "Now using io.js $(nvm_strip_iojs_prefix "$VERSION")" + echo -n "Now using io.js $(nvm_strip_iojs_prefix "$VERSION")" else - echo "Now using node $VERSION" + echo -n "Now using node $VERSION" fi + echo " (npm v$(npm --version 2>/dev/null))" ;; "run" ) local provided_version From caa69bc500e50c946f0b4b4ff5681d1d9abd25cb Mon Sep 17 00:00:00 2001 From: Andrew Crites Date: Thu, 9 Apr 2015 02:12:35 -0400 Subject: [PATCH 0448/1426] npm version: shell compatibility, test update * Update test string that checks printed node version to pass with additional npm version display * Remove echo -n for compatibility with shells that do not support it --- nvm.sh | 13 ++++++++----- ...ning \"nvm use system\" should work as expected" | 2 +- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/nvm.sh b/nvm.sh index 7b4a3e2..d6a0e0e 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1359,11 +1359,13 @@ nvm() { fi if [ "_$VERSION" = '_system' ]; then + local NPM_VERSION + NPM_VERSION="(npm v$(npm --version 2>/dev/null))" if nvm_has_system_node && nvm deactivate >/dev/null 2>&1; then - echo "Now using system version of node: $(node -v 2>/dev/null) (npm v$(npm --version 2>/dev/null))" + echo "Now using system version of node: $(node -v 2>/dev/null) $NPM_VERSION" return elif nvm_has_system_iojs && nvm deactivate >/dev/null 2>&1; then - echo "Now using system version of io.js: $(iojs --version 2>/dev/null) (npm v$(npm --version 2>/dev/null))" + echo "Now using system version of io.js: $(iojs --version 2>/dev/null) $NPM_VERSION" return else echo "System version of node not found." >&2 @@ -1406,12 +1408,13 @@ nvm() { if [ "$NVM_SYMLINK_CURRENT" = true ]; then command rm -f "$NVM_DIR/current" && ln -s "$NVM_VERSION_DIR" "$NVM_DIR/current" fi + local NPM_VERSION + NPM_VERSION="(npm v$(npm --version 2>/dev/null))" if nvm_is_iojs_version "$VERSION"; then - echo -n "Now using io.js $(nvm_strip_iojs_prefix "$VERSION")" + echo "Now using io.js $(nvm_strip_iojs_prefix "$VERSION") $NPM_VERSION" else - echo -n "Now using node $VERSION" + echo "Now using node $VERSION $NPM_VERSION" fi - echo " (npm v$(npm --version 2>/dev/null))" ;; "run" ) local provided_version diff --git "a/test/fast/Running \"nvm use system\" should work as expected" "b/test/fast/Running \"nvm use system\" should work as expected" index 9b4e850..2ed9638 100755 --- "a/test/fast/Running \"nvm use system\" should work as expected" +++ "b/test/fast/Running \"nvm use system\" should work as expected" @@ -5,7 +5,7 @@ die () { echo $@ ; exit 1; } . ../../nvm.sh nvm_has_system_node() { return 0; } -[ "$(nvm use system 2>&1 | tail -n1)" = "Now using system version of node: $(node -v)." ] || die "Could not use system version of node" +[ "$(nvm use system 2>&1 | tail -n1)" = "Now using system version of node: $(node -v) (npm v$(npm -v))" ] || die "Could not use system version of node" nvm_has_system_node() { return 1; } [ "$(nvm use system 2>&1 | tail -n1)" = "System version of node not found." ] || die "Did not report error, system node not found" From e4149c380b431b279c5a3dc6f7be6c8d47edc387 Mon Sep 17 00:00:00 2001 From: Andrew Crites Date: Thu, 9 Apr 2015 02:31:57 -0400 Subject: [PATCH 0449/1426] Only print npm version if it exists --- nvm.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index d6a0e0e..3d6f979 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1360,7 +1360,9 @@ nvm() { if [ "_$VERSION" = '_system' ]; then local NPM_VERSION - NPM_VERSION="(npm v$(npm --version 2>/dev/null))" + if nvm_has "npm"; then + NPM_VERSION="(npm v$(npm --version 2>/dev/null))" + fi if nvm_has_system_node && nvm deactivate >/dev/null 2>&1; then echo "Now using system version of node: $(node -v 2>/dev/null) $NPM_VERSION" return @@ -1409,7 +1411,9 @@ nvm() { command rm -f "$NVM_DIR/current" && ln -s "$NVM_VERSION_DIR" "$NVM_DIR/current" fi local NPM_VERSION - NPM_VERSION="(npm v$(npm --version 2>/dev/null))" + if nvm_has "npm"; then + NPM_VERSION="(npm v$(npm --version 2>/dev/null))" + fi if nvm_is_iojs_version "$VERSION"; then echo "Now using io.js $(nvm_strip_iojs_prefix "$VERSION") $NPM_VERSION" else From 7ea15a7618c22a8e48b8877357efb51ef9cbedd3 Mon Sep 17 00:00:00 2001 From: Shane Keulen Date: Mon, 13 Apr 2015 16:20:22 -0400 Subject: [PATCH 0450/1426] Added compatibility issues section Sections includes warnings for cretain nonstandard path settings and environment variables that conflict with nvm. --- README.markdown | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/README.markdown b/README.markdown index 7b863e4..950662f 100644 --- a/README.markdown +++ b/README.markdown @@ -186,6 +186,20 @@ nvm uninstall $ nvm uninstall [tab][tab] my_alias default v0.6.21 v0.8.26 v0.10.28 + +## Compatibility Issues +`nvm` will encounter some issues if you have some non-default settings set. (see [#606](/../../issues/606)) +The following are known to cause issues: + +Inside `~/.npmrc` +``` +prefix='some/path' +``` +Environment Variables: +``` +$NPM_CONFIG_PREFIX +$PREFIX +``` ## Problems From cbf0f12aac82bc06b232d0bda245508c947b00e9 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 12 Apr 2015 10:59:17 -0700 Subject: [PATCH 0451/1426] Create `nvm_print_npm_version` and use that when printing the `npm` version. --- nvm.sh | 22 +++++++-------- ..."nvm use system\" should work as expected" | 8 ++++-- test/fast/Unit tests/nvm_print_npm_version | 28 +++++++++++++++++++ 3 files changed, 44 insertions(+), 14 deletions(-) create mode 100755 test/fast/Unit tests/nvm_print_npm_version diff --git a/nvm.sh b/nvm.sh index 3d6f979..2c0c255 100755 --- a/nvm.sh +++ b/nvm.sh @@ -58,6 +58,12 @@ nvm_has_system_iojs() { [ "$(nvm deactivate >/dev/null 2>&1 && command -v iojs)" != '' ] } +nvm_print_npm_version() { + if nvm_has "npm"; then + npm --version 2>/dev/null | command xargs printf " (npm v%s)" + fi +} + # Make zsh glob matching behave same as bash # This fixes the "zsh: no matches found" errors if nvm_has "unsetopt"; then @@ -1359,15 +1365,11 @@ nvm() { fi if [ "_$VERSION" = '_system' ]; then - local NPM_VERSION - if nvm_has "npm"; then - NPM_VERSION="(npm v$(npm --version 2>/dev/null))" - fi if nvm_has_system_node && nvm deactivate >/dev/null 2>&1; then - echo "Now using system version of node: $(node -v 2>/dev/null) $NPM_VERSION" + echo "Now using system version of node: $(node -v 2>/dev/null)$(nvm_print_npm_version)" return elif nvm_has_system_iojs && nvm deactivate >/dev/null 2>&1; then - echo "Now using system version of io.js: $(iojs --version 2>/dev/null) $NPM_VERSION" + echo "Now using system version of io.js: $(iojs --version 2>/dev/null)$(nvm_print_npm_version)" return else echo "System version of node not found." >&2 @@ -1410,14 +1412,10 @@ nvm() { if [ "$NVM_SYMLINK_CURRENT" = true ]; then command rm -f "$NVM_DIR/current" && ln -s "$NVM_VERSION_DIR" "$NVM_DIR/current" fi - local NPM_VERSION - if nvm_has "npm"; then - NPM_VERSION="(npm v$(npm --version 2>/dev/null))" - fi if nvm_is_iojs_version "$VERSION"; then - echo "Now using io.js $(nvm_strip_iojs_prefix "$VERSION") $NPM_VERSION" + echo "Now using io.js $(nvm_strip_iojs_prefix "$VERSION")$(nvm_print_npm_version)" else - echo "Now using node $VERSION $NPM_VERSION" + echo "Now using node $VERSION$(nvm_print_npm_version)" fi ;; "run" ) diff --git "a/test/fast/Running \"nvm use system\" should work as expected" "b/test/fast/Running \"nvm use system\" should work as expected" index 2ed9638..86a0955 100755 --- "a/test/fast/Running \"nvm use system\" should work as expected" +++ "b/test/fast/Running \"nvm use system\" should work as expected" @@ -5,9 +5,13 @@ die () { echo $@ ; exit 1; } . ../../nvm.sh nvm_has_system_node() { return 0; } -[ "$(nvm use system 2>&1 | tail -n1)" = "Now using system version of node: $(node -v) (npm v$(npm -v))" ] || die "Could not use system version of node" +nvm_print_npm_version() { return ' (npm v1.2.3)'; } +EXPECTED_OUTPUT="Now using system version of node: $(node -v)$(nvm_print_npm_version)" +[ "$(nvm use system 2>&1 | tail -n1)" = "$EXPECTED_OUTPUT" ] || die "Could not use system version of node" nvm_has_system_node() { return 1; } -[ "$(nvm use system 2>&1 | tail -n1)" = "System version of node not found." ] || die "Did not report error, system node not found" +nvm_print_npm_version() { return ''; } +EXPECTED_OUTPUT="System version of node not found." +[ "$(nvm use system 2>&1 | tail -n1)" = "$EXPECTED_OUTPUT" ] || die "Did not report error, system node not found" nvm use system 2>&1 > /dev/null || [ $? -eq 127 ] || die "Did not return error code, system node not found" diff --git a/test/fast/Unit tests/nvm_print_npm_version b/test/fast/Unit tests/nvm_print_npm_version new file mode 100755 index 0000000..2bf24a0 --- /dev/null +++ b/test/fast/Unit tests/nvm_print_npm_version @@ -0,0 +1,28 @@ +#!/bin/sh + +cleanup () { + alias nvm_has='\nvm_has' + alias npm='\npm' + unset -f nvm_has npm +} +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +nvm_has() { return 1; } +OUTPUT="$(nvm_print_npm_version)" +[ -z "$OUTPUT" ] || die "nvm_print_npm_version did not return empty when nvm_has returns 1, got '$OUTPUT'" + +nvm_has() { return 0; } +npm() { + if [ "_$@" = "_--version" ]; then + echo "1.2.3" + else + echo "error" + fi +} +OUTPUT="$(nvm_print_npm_version)" +EXPECTED_OUTPUT=" (npm v1.2.3)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_print_npm_version did not provided '$EXPECTED_OUTPUT', got '$OUTPUT'" + +cleanup From 6644f33a7743d2bab75e2a2682d33e38a6fd3f9b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 17 Apr 2015 00:24:44 -0700 Subject: [PATCH 0452/1426] Update `semver`, use `^` instead of `~` --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 18d203e..5053e16 100644 --- a/package.json +++ b/package.json @@ -30,8 +30,8 @@ }, "homepage": "https://github.com/creationix/nvm", "devDependencies": { - "replace": "~0.3.0", - "semver": "~4.2.0", - "urchin": "~0.0.5" + "replace": "^0.3.0", + "semver": "^4.3.3", + "urchin": "^0.0.5" } } From 4612d8d8276946b9254dd75ef8b32c743a75dbcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Aur=C3=A8le=20DARCHE?= Date: Sun, 19 Apr 2015 16:25:34 +0200 Subject: [PATCH 0453/1426] Remove source bashism Using `.` and not `source`, since it's more portable cf. #704 and https://wiki.ubuntu.com/DashAsBinSh#source --- README.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index 950662f..435f6fe 100644 --- a/README.markdown +++ b/README.markdown @@ -39,7 +39,7 @@ Or if you have `git` installed, then just clone it, and check out the latest ver To activate nvm, you need to source it from your shell: - source ~/.nvm/nvm.sh + . ~/.nvm/nvm.sh I always add this line to my `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it automatically sourced upon login. Often I also put in a line to use a specific version of node. From 356ac7a69778beebce9a44d64394e37e17e2439a Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 22 Apr 2015 00:40:27 -0700 Subject: [PATCH 0454/1426] install.sh: Ensure that the `--quiet` option is available before trying to use it. Fixes #738, #657. --- install.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/install.sh b/install.sh index dea8f52..4619fa0 100755 --- a/install.sh +++ b/install.sh @@ -71,7 +71,12 @@ install_nvm_from_git() { fi cd "$NVM_DIR" && command git checkout --quiet $(nvm_latest_version) if [ ! -z "$(cd "$NVM_DIR" && git show-ref refs/heads/master)" ]; then - cd "$NVM_DIR" && command git branch --quiet -D master >/dev/null 2>&1 + if git branch --quiet 2>/dev/null; then + cd "$NVM_DIR" && command git branch --quiet -D master >/dev/null 2>&1 + else + echo >&2 "Your version of git is out of date. Please update it!" + cd "$NVM_DIR" && command git branch -D master >/dev/null 2>&1 + fi fi return } From 295f2b7db4278332e5bcabe63df2bb2eee7e152c Mon Sep 17 00:00:00 2001 From: Jamie Phillips Date: Sat, 25 Apr 2015 10:35:22 -0400 Subject: [PATCH 0455/1426] Adding .gitattributes to force unix line endings. Hopefully this helps with issue #728 --- .gitattributes | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..50ca329 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.sh eol=lf From e1009149c9b7876d70f9dfbd653fb5ed1eaed6f4 Mon Sep 17 00:00:00 2001 From: Scott Jasperse Date: Sat, 25 Apr 2015 19:10:02 -0400 Subject: [PATCH 0456/1426] adding architecture detection for Raspberry Pi 2 --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 2c0c255..dfb4709 100755 --- a/nvm.sh +++ b/nvm.sh @@ -973,7 +973,7 @@ nvm_install_node_binary() { if nvm_binary_available "$VERSION"; then local NVM_ARCH NVM_ARCH="$(nvm_get_arch)" - if [ $NVM_ARCH = "armv6l" ]; then + if [ $NVM_ARCH = "armv6l" ] || [ $NVM_ARCH = "armv7l" ]; then NVM_ARCH="arm-pi" fi t="$VERSION-$NVM_OS-$NVM_ARCH" From 36f933984d8d028f33906af50b70f6f24f7a7350 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 25 Apr 2015 11:21:33 -0700 Subject: [PATCH 0457/1426] Remove trailing whitespace. --- README.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index 435f6fe..d52b046 100644 --- a/README.markdown +++ b/README.markdown @@ -186,7 +186,7 @@ nvm uninstall $ nvm uninstall [tab][tab] my_alias default v0.6.21 v0.8.26 v0.10.28 - + ## Compatibility Issues `nvm` will encounter some issues if you have some non-default settings set. (see [#606](/../../issues/606)) The following are known to cause issues: From eb5cecc97014e4303648f57f84a1a4c7b27d8462 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 26 Apr 2015 12:58:05 -0700 Subject: [PATCH 0458/1426] v0.25.0 --- README.markdown | 6 +++--- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.markdown b/README.markdown index d52b046..d10413c 100644 --- a/README.markdown +++ b/README.markdown @@ -16,11 +16,11 @@ Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creati To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.24.1/install.sh | bash + curl https://raw.githubusercontent.com/creationix/nvm/v0.25.0/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.24.1/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.25.0/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -220,7 +220,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.24.1/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.25.0/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index 4619fa0..6940171 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ if [ -z "$NVM_DIR" ]; then fi nvm_latest_version() { - echo "v0.24.1" + echo "v0.25.0" } # diff --git a/nvm.sh b/nvm.sh index dfb4709..45360c7 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1729,7 +1729,7 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" nvm_version $2 ;; "--version" ) - echo "0.24.1" + echo "0.25.0" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum \ diff --git a/package.json b/package.json index 5053e16..2f6aa64 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.24.1", + "version": "0.25.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From bb2fe618cb3a19d5b652e608c5191d15e2066213 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 27 Apr 2015 16:55:21 -0700 Subject: [PATCH 0459/1426] The install script only runs in bash. --- .travis.yml | 4 ---- test/install_script/nvm_reset | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 918035f..48b4876 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,11 +10,7 @@ install: script: - NVM_DIR=$TRAVIS_BUILD_DIR make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin/package/urchin test-$SHELL env: - - SHELL=sh TEST_SUITE=install_script - - SHELL=dash TEST_SUITE=install_script - SHELL=bash TEST_SUITE=install_script - - SHELL=zsh TEST_SUITE=install_script -# - SHELL=ksh TEST_SUITE=install_script - SHELL=sh TEST_SUITE=fast - SHELL=dash TEST_SUITE=fast - SHELL=bash TEST_SUITE=fast diff --git a/test/install_script/nvm_reset b/test/install_script/nvm_reset index 0f58ee4..9f8735a 100755 --- a/test/install_script/nvm_reset +++ b/test/install_script/nvm_reset @@ -15,7 +15,7 @@ safe_type() { safe_type nvm_reset || die 'nvm_reset is not available' # Apply nvm_reset -nvm_reset +nvm_reset || die 'nvm_reset failed' # The names should be unset ! safe_type nvm_do_install || die 'nvm_do_install is still available' From 0aac462b15d7d7357941baf0f053da6168a27180 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 27 Apr 2015 13:48:22 -0700 Subject: [PATCH 0460/1426] Improve the error message when the binary tarball URL 404s. Fixes #743 --- nvm.sh | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/nvm.sh b/nvm.sh index 45360c7..b6d19c3 100755 --- a/nvm.sh +++ b/nvm.sh @@ -929,9 +929,16 @@ nvm_install_iojs_binary() { tmpdir="$NVM_DIR/bin/iojs-${t}" local tmptarball tmptarball="$tmpdir/iojs-${t}.tar.gz" + local NVM_INSTALL_ERRORED + command mkdir -p "$tmpdir" && \ + nvm_download -L -C - --progress-bar $url -o "$tmptarball" || \ + NVM_INSTALL_ERRORED=true + if grep '404 Not Found' "$tmptarball" >/dev/null; then + NVM_INSTALL_ERRORED=true + echo >&2 "HTTP 404 at URL $url"; + fi if ( - command mkdir -p "$tmpdir" && \ - nvm_download -L -C - --progress-bar $url -o "$tmptarball" && \ + [ "$NVM_INSTALL_ERRORED" != true ] && \ echo "WARNING: checksums are currently disabled for io.js" >&2 && \ # nvm_checksum "$tmptarball" $sum && \ command tar -xzf "$tmptarball" -C "$tmpdir" --strip-components 1 && \ @@ -941,7 +948,7 @@ nvm_install_iojs_binary() { ); then return 0 else - echo "Binary download failed, trying source." >&2 + echo >&2 "Binary download failed, trying source." >&2 command rm -rf "$tmptarball" "$tmpdir" return 1 fi @@ -983,9 +990,16 @@ nvm_install_node_binary() { tmpdir="$NVM_DIR/bin/node-${t}" local tmptarball tmptarball="$tmpdir/node-${t}.tar.gz" + local NVM_INSTALL_ERRORED + command mkdir -p "$tmpdir" && \ + nvm_download -L -C - --progress-bar $url -o "$tmptarball" || \ + NVM_INSTALL_ERRORED=true + if grep '404 Not Found' "$tmptarball" >/dev/null; then + NVM_INSTALL_ERRORED=true + echo >&2 "HTTP 404 at URL $url"; + fi if ( - command mkdir -p "$tmpdir" && \ - nvm_download -L -C - --progress-bar $url -o "$tmptarball" && \ + [ "$NVM_INSTALL_ERRORED" != true ] && \ nvm_checksum "$tmptarball" $sum && \ command tar -xzf "$tmptarball" -C "$tmpdir" --strip-components 1 && \ command rm -f "$tmptarball" && \ @@ -994,7 +1008,7 @@ nvm_install_node_binary() { ); then return 0 else - echo "Binary download failed, trying source." >&2 + echo >&2 "Binary download failed, trying source." command rm -rf "$tmptarball" "$tmpdir" return 1 fi From a6f5eff0f39684c42c8d90e2dd88d0c58021c9a9 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 28 Apr 2015 22:56:43 -0700 Subject: [PATCH 0461/1426] Use `uname -m` instead of `uname -a`. Fixes #744. --- nvm.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nvm.sh b/nvm.sh index b6d19c3..d2b16be 100755 --- a/nvm.sh +++ b/nvm.sh @@ -870,12 +870,12 @@ nvm_get_os() { nvm_get_arch() { local NVM_UNAME - NVM_UNAME="$(uname -a)" + NVM_UNAME="$(uname -m)" local NVM_ARCH case "$NVM_UNAME" in - *x86_64*) NVM_ARCH=x64 ;; - *i*86*) NVM_ARCH=x86 ;; - *) NVM_ARCH="$(uname -m)" ;; + x86_64) NVM_ARCH="x64" ;; + i*86) NVM_ARCH="x86" ;; + *) NVM_ARCH="$NVM_UNAME" ;; esac echo "$NVM_ARCH" } From 517817f1a3f56940c0f06f5170653b7b6645a805 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 27 Apr 2015 14:02:45 -0700 Subject: [PATCH 0462/1426] Actually try to install from source when the error message says "binary failed, trying source". --- nvm.sh | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/nvm.sh b/nvm.sh index d2b16be..dee8628 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1247,12 +1247,15 @@ nvm() { elif [ "$NVM_IOJS" != true ] && nvm_install_node_binary "$VERSION" "$REINSTALL_PACKAGES_FROM"; then NVM_INSTALL_SUCCESS=true fi - elif [ "$NVM_IOJS" = true ]; then - # nvm_install_iojs_source "$VERSION" "$ADDITIONAL_PARAMETERS" - echo "Installing iojs from source is not currently supported" >&2 - return 105 - elif nvm_install_node_source "$VERSION" "$ADDITIONAL_PARAMETERS"; then - NVM_INSTALL_SUCCESS=true + fi + if [ "$NVM_INSTALL_SUCCESS" != true ]; then + if [ "$NVM_IOJS" = true ]; then + # nvm_install_iojs_source "$VERSION" "$ADDITIONAL_PARAMETERS" + echo "Installing iojs from source is not currently supported" >&2 + return 105 + elif nvm_install_node_source "$VERSION" "$ADDITIONAL_PARAMETERS"; then + NVM_INSTALL_SUCCESS=true + fi fi if [ "$NVM_INSTALL_SUCCESS" = true ] && nvm use "$VERSION"; then From a4f89c62239ad171e07bc53c09443d7cc3b2fec9 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 1 May 2015 02:00:49 -0700 Subject: [PATCH 0463/1426] Make sure to ignore `~/.curlrc` if it exists. --- install.sh | 2 +- nvm.sh | 4 ++-- test/slow/nvm_get_latest/nvm_get_latest | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/install.sh b/install.sh index 6940171..41a8825 100755 --- a/install.sh +++ b/install.sh @@ -42,7 +42,7 @@ nvm_source() { nvm_download() { if nvm_has "curl"; then - curl $* + curl -q $* elif nvm_has "wget"; then # Emulate curl with wget ARGS=$(echo "$*" | command sed -e 's/--progress-bar /--progress=bar /' \ diff --git a/nvm.sh b/nvm.sh index dee8628..9ee539f 100755 --- a/nvm.sh +++ b/nvm.sh @@ -20,7 +20,7 @@ nvm_is_alias() { nvm_get_latest() { local NVM_LATEST_URL if nvm_has "curl"; then - NVM_LATEST_URL="$(curl -w "%{url_effective}\n" -L -s -S http://latest.nvm.sh -o /dev/null)" + NVM_LATEST_URL="$(curl -q -w "%{url_effective}\n" -L -s -S http://latest.nvm.sh -o /dev/null)" elif nvm_has "wget"; then NVM_LATEST_URL="$(wget http://latest.nvm.sh --server-response -O /dev/null 2>&1 | awk '/^ Location: /{DEST=$2} END{ print DEST }')" else @@ -37,7 +37,7 @@ nvm_get_latest() { nvm_download() { if nvm_has "curl"; then - curl $* + curl -q $* elif nvm_has "wget"; then # Emulate curl with wget ARGS=$(echo "$*" | command sed -e 's/--progress-bar /--progress=bar /' \ diff --git a/test/slow/nvm_get_latest/nvm_get_latest b/test/slow/nvm_get_latest/nvm_get_latest index f010e2c..3348fd5 100755 --- a/test/slow/nvm_get_latest/nvm_get_latest +++ b/test/slow/nvm_get_latest/nvm_get_latest @@ -10,12 +10,12 @@ cleanup() { EXPECTED_VERSION="v12.3.456" URL="https://github.com/creationix/nvm/releases/tag/$EXPECTED_VERSION" -EXPECTED_CURL_ARGS="-w %{url_effective}\n -L -s -S http://latest.nvm.sh -o /dev/null" +EXPECTED_CURL_ARGS="-q -w %{url_effective}\n -L -s -S http://latest.nvm.sh -o /dev/null" EXPECTED_WGET_ARGS="http://latest.nvm.sh --server-response -O /dev/null" curl() { if [ "_$*" != "_$EXPECTED_CURL_ARGS" ]; then - echo 2>& "expected args ($EXPECTED_CURL_ARGS), got ($*)" + echo >&2 "expected args ($EXPECTED_CURL_ARGS), got ($*)" return 1 else echo $URL @@ -23,7 +23,7 @@ curl() { } wget() { if [ "_$*" != "_$EXPECTED_WGET_ARGS" ]; then - echo 2>& "expected args ($EXPECTED_WGET_ARGS), got ($*)" + echo >&2 "expected args ($EXPECTED_WGET_ARGS), got ($*)" return 1 else local WGET_CONTENTS @@ -100,7 +100,7 @@ Saving to: ‘/dev/null’ " "$WGET_CONTENTS" | while read line do - 2>& echo "$line" + >&2 echo "$line" done fi } From ec33e8b720b19a77230e4718857164532dcf005d Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 3 May 2015 15:31:54 -0700 Subject: [PATCH 0464/1426] v0.25.1 --- README.markdown | 6 +++--- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.markdown b/README.markdown index d10413c..b0bc9b6 100644 --- a/README.markdown +++ b/README.markdown @@ -16,11 +16,11 @@ Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creati To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.25.0/install.sh | bash + curl https://raw.githubusercontent.com/creationix/nvm/v0.25.1/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.25.0/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.25.1/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -220,7 +220,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.25.0/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.25.1/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index 41a8825..40087b9 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ if [ -z "$NVM_DIR" ]; then fi nvm_latest_version() { - echo "v0.25.0" + echo "v0.25.1" } # diff --git a/nvm.sh b/nvm.sh index 9ee539f..ff0a826 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1746,7 +1746,7 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" nvm_version $2 ;; "--version" ) - echo "0.25.0" + echo "0.25.1" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum \ diff --git a/package.json b/package.json index 2f6aa64..0eeef8d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.25.0", + "version": "0.25.1", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From f70530ef18316d7abadc23ae23b760e18f57a3d3 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 7 May 2015 10:43:47 -0700 Subject: [PATCH 0465/1426] Fix installation instructions. --- README.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index b0bc9b6..52bbed0 100644 --- a/README.markdown +++ b/README.markdown @@ -16,7 +16,7 @@ Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creati To install you could use the [install script][2] using cURL: - curl https://raw.githubusercontent.com/creationix/nvm/v0.25.1/install.sh | bash + curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.1/install.sh | bash or Wget: From 94bba31de3111b8228dd4f62e92dca820f9e7cb7 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 8 May 2015 14:15:42 -0700 Subject: [PATCH 0466/1426] Make sure that `nvm reinstall-packages system` has the right std output. --- nvm.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index ff0a826..9403a71 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1712,14 +1712,15 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" fi local NPMLIST + local VERSION if [ "_$PROVIDED_VERSION" = "_system" ]; then if ! nvm_has_system_node && ! nvm_has_system_iojs; then echo 'No system version of node or io.js detected.' >&2 return 3 fi + VERSION="system" NPMLIST=$(nvm deactivate > /dev/null && npm list -g --depth=0 | command tail -n +2) else - local VERSION VERSION="$(nvm_version "$PROVIDED_VERSION")" NPMLIST=$(nvm use "$VERSION" > /dev/null && npm list -g --depth=0 | command tail -n +2) fi From 63672641a5d0baafb51e0e0f25a5696b1ee901ee Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 11 May 2015 01:46:18 -0700 Subject: [PATCH 0467/1426] Add wrapping curly braces to ensure that the entire scripts are downloaded. If the closing curly brace isn't present, the script will error out. --- install.sh | 4 ++++ nvm.sh | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/install.sh b/install.sh index 40087b9..ed2747b 100755 --- a/install.sh +++ b/install.sh @@ -2,6 +2,8 @@ set -e +{ # this ensures the entire script is downloaded # + nvm_has() { type "$1" > /dev/null 2>&1 } @@ -241,3 +243,5 @@ nvm_reset() { } [ "_$NVM_ENV" = "_testing" ] || nvm_do_install + +} # this ensures the entire script is downloaded # diff --git a/nvm.sh b/nvm.sh index 9403a71..be1e688 100755 --- a/nvm.sh +++ b/nvm.sh @@ -6,6 +6,8 @@ # Implemented by Tim Caswell # with much bash help from Matthew Ranney +{ # this ensures the entire script is downloaded # + NVM_SCRIPT_SOURCE="$_" nvm_has() { @@ -1783,3 +1785,5 @@ elif [ -n "$VERSION" ]; then elif nvm_rc_version >/dev/null 2>&1; then nvm use >/dev/null fi + +} # this ensures the entire script is downloaded # From 2dec01da9cd202a8cd81531f339ed1a19682c765 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 8 May 2015 14:24:51 -0700 Subject: [PATCH 0468/1426] nvm reinstall-packages: On systems where `npm ls -g --depth=0` does not include `npm` for some reason, make sure to filter out `(empty)`. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index be1e688..34d8562 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1728,7 +1728,7 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" fi local INSTALLS - INSTALLS=$(echo "$NPMLIST" | command sed -e '/ -> / d' -e 's/^.* \(.*\)@.*/\1/' -e '/^npm$/ d' | command xargs) + INSTALLS=$(echo "$NPMLIST" | command sed -e '/ -> / d' -e '/\(empty\)/ d' -e 's/^.* \(.*\)@.*/\1/' -e '/^npm$/ d' | command xargs) echo "Copying global packages from $VERSION..." echo "$INSTALLS" | command xargs npm install -g --quiet From 5e805905ca7d05683640940a17d5001f5c920ec9 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 14 May 2015 14:56:26 -0700 Subject: [PATCH 0469/1426] Add undocumented `nvm debug` to print out helpful debugging info. --- nvm.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/nvm.sh b/nvm.sh index 34d8562..0c81278 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1141,6 +1141,17 @@ nvm() { echo ;; + "debug" ) + echo >&2 "\$SHELL: $SHELL" + echo >&2 "\$NVM_DIR: $(echo $NVM_DIR | sed "s#$HOME#\$HOME#g")" + for NVM_DEBUG_COMMAND in 'nvm current' 'which node' 'which iojs' 'which npm' 'npm config get prefix' 'npm root -g' + do + local NVM_DEBUG_OUTPUT="$($NVM_DEBUG_COMMAND | sed "s#$NVM_DIR#\$NVM_DIR#g")" + echo >&2 "$NVM_DEBUG_COMMAND: ${NVM_DEBUG_OUTPUT}" + done + return 42 + ;; + "install" | "i" ) local nobinary local version_not_provided From 475b8bd6b40609bf0e8ab1e5fd81f552bd311d53 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 17 May 2015 21:12:03 -0700 Subject: [PATCH 0470/1426] Update `semver` --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0eeef8d..2b3e0ae 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "homepage": "https://github.com/creationix/nvm", "devDependencies": { "replace": "^0.3.0", - "semver": "^4.3.3", + "semver": "^4.3.4", "urchin": "^0.0.5" } } From 96c96ec71406b2bbab6e1aa4d7942bffb3c4a317 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 19 May 2015 14:05:43 -0700 Subject: [PATCH 0471/1426] v0.25.2 --- README.markdown | 6 +++--- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.markdown b/README.markdown index 52bbed0..3f6bf5f 100644 --- a/README.markdown +++ b/README.markdown @@ -16,11 +16,11 @@ Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creati To install you could use the [install script][2] using cURL: - curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.1/install.sh | bash + curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.2/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.25.1/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.25.2/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -220,7 +220,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.25.1/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.25.2/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index ed2747b..aff6747 100755 --- a/install.sh +++ b/install.sh @@ -13,7 +13,7 @@ if [ -z "$NVM_DIR" ]; then fi nvm_latest_version() { - echo "v0.25.1" + echo "v0.25.2" } # diff --git a/nvm.sh b/nvm.sh index 0c81278..d339c67 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1760,7 +1760,7 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" nvm_version $2 ;; "--version" ) - echo "0.25.1" + echo "0.25.2" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum \ diff --git a/package.json b/package.json index 2b3e0ae..a38c937 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.25.1", + "version": "0.25.2", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 472ba5fc464cdd1df907e21bcdc4162424dad951 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 22 May 2015 00:15:43 -0700 Subject: [PATCH 0472/1426] Make sure sourcing `nvm.sh` on shells that don't support source options doesn't exit nonzero. Fixes #721 --- nvm.sh | 2 +- .../Sourcing nvm.sh with no default should return 0 | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100755 test/sourcing/Sourcing nvm.sh with no default should return 0 diff --git a/nvm.sh b/nvm.sh index d339c67..f0bee69 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1784,7 +1784,7 @@ nvm_supports_source_options() { [ "_$(echo 'echo $1' | . /dev/stdin yes 2> /dev/null)" = "_yes" ] } -VERSION="$(nvm_alias default 2>/dev/null)" +VERSION="$(nvm_alias default 2>/dev/null || echo)" if nvm_supports_source_options && [ "_$1" = "_--install" ]; then if [ -n "$VERSION" ]; then nvm install "$VERSION" >/dev/null diff --git a/test/sourcing/Sourcing nvm.sh with no default should return 0 b/test/sourcing/Sourcing nvm.sh with no default should return 0 new file mode 100755 index 0000000..91e149a --- /dev/null +++ b/test/sourcing/Sourcing nvm.sh with no default should return 0 @@ -0,0 +1,11 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +touch ../../alias/default +rm ../../alias/default || die 'removal of default alias failed' +nvm_alias default && die '"nvm_alias default" did not fail' + +set -e # necessary to fail internally with a nonzero code + +. ../../nvm.sh || die 'sourcing returned nonzero exit code' From a539cba11edfb46ed34c76a9f1a59ef48b392b32 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 22 May 2015 15:18:46 -0700 Subject: [PATCH 0473/1426] v0.25.3 --- README.markdown | 6 +++--- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.markdown b/README.markdown index 3f6bf5f..3f98108 100644 --- a/README.markdown +++ b/README.markdown @@ -16,11 +16,11 @@ Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creati To install you could use the [install script][2] using cURL: - curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.2/install.sh | bash + curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.3/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.25.2/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.25.3/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -220,7 +220,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.25.2/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.25.3/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index aff6747..624156b 100755 --- a/install.sh +++ b/install.sh @@ -13,7 +13,7 @@ if [ -z "$NVM_DIR" ]; then fi nvm_latest_version() { - echo "v0.25.2" + echo "v0.25.3" } # diff --git a/nvm.sh b/nvm.sh index f0bee69..f5d8c88 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1760,7 +1760,7 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" nvm_version $2 ;; "--version" ) - echo "0.25.2" + echo "0.25.3" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum \ diff --git a/package.json b/package.json index a38c937..5f40fd2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.25.2", + "version": "0.25.3", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 4c475b27674fcaa99401ad15779b93a7cc66a9ec Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 29 May 2015 11:09:08 -0700 Subject: [PATCH 0474/1426] Use the original `ls` instead of aliases. Fixes #755 --- bash_completion | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bash_completion b/bash_completion index 0b744cd..d538388 100644 --- a/bash_completion +++ b/bash_completion @@ -57,7 +57,7 @@ __nvm_aliases () declare aliases aliases="" if [ -d $NVM_DIR/alias ]; then - aliases="`cd $NVM_DIR/alias && ls`" + aliases="`cd $NVM_DIR/alias && command ls`" fi echo "${aliases}" } From d78722b2840caedd07a580e92095e5129c1c9a51 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 29 May 2015 11:11:40 -0700 Subject: [PATCH 0475/1426] v0.25.4 --- README.markdown | 6 +++--- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.markdown b/README.markdown index 3f98108..d8d8a37 100644 --- a/README.markdown +++ b/README.markdown @@ -16,11 +16,11 @@ Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creati To install you could use the [install script][2] using cURL: - curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.3/install.sh | bash + curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.4/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.25.3/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.25.4/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -220,7 +220,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.25.3/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.25.4/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index 624156b..2ef5f8e 100755 --- a/install.sh +++ b/install.sh @@ -13,7 +13,7 @@ if [ -z "$NVM_DIR" ]; then fi nvm_latest_version() { - echo "v0.25.3" + echo "v0.25.4" } # diff --git a/nvm.sh b/nvm.sh index f5d8c88..868165c 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1760,7 +1760,7 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" nvm_version $2 ;; "--version" ) - echo "0.25.3" + echo "0.25.4" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum \ diff --git a/package.json b/package.json index 5f40fd2..956fae0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.25.3", + "version": "0.25.4", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 3cfa1ed4e1327e02f007626bb9d7676891915b38 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 6 Jun 2015 22:39:03 -0700 Subject: [PATCH 0476/1426] Remove `$NVM_IOJS_ORG_VERSION_LISTING` env var. --- nvm.sh | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/nvm.sh b/nvm.sh index 868165c..e857577 100755 --- a/nvm.sh +++ b/nvm.sh @@ -91,9 +91,6 @@ fi if [ -z "$NVM_IOJS_ORG_MIRROR" ]; then export NVM_IOJS_ORG_MIRROR="https://iojs.org/dist" fi -if [ -z "$NVM_IOJS_ORG_VERSION_LISTING" ]; then - export NVM_IOJS_ORG_VERSION_LISTING="$NVM_IOJS_ORG_MIRROR/index.tab" -fi nvm_tree_contains_path() { local tree @@ -688,7 +685,7 @@ nvm_ls_remote_iojs() { else PATTERN=".*" fi - VERSIONS="$(nvm_download -L -s $NVM_IOJS_ORG_VERSION_LISTING -o - \ + VERSIONS="$(nvm_download -L -s "$NVM_IOJS_ORG_MIRROR/index.tab" -o - \ | command sed " 1d; s/^/$(nvm_iojs_prefix)-/; From fe044c5e3b2fdbcd0ed4ad52a946fd48f30ecb09 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 7 Jun 2015 01:10:55 -0700 Subject: [PATCH 0477/1426] `spawn-sync` now dedupes to the top level with this group of packages. --- test/slow/nvm reinstall-packages/should work as expected | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/slow/nvm reinstall-packages/should work as expected b/test/slow/nvm reinstall-packages/should work as expected index ef58297..506d5f4 100755 --- a/test/slow/nvm reinstall-packages/should work as expected +++ b/test/slow/nvm reinstall-packages/should work as expected @@ -7,7 +7,7 @@ die () { echo "$@" ; exit 1; } nvm use 0.10.28 (cd test-npmlink && npm link) -EXPECTED_PACKAGES="autoprefixer bower david eslint grunt-cli grunth-cli http-server jshint marked node-gyp npmlist recursive-blame test-npmlink uglify-js yo" +EXPECTED_PACKAGES="autoprefixer bower david eslint grunt-cli grunth-cli http-server jshint marked node-gyp npmlist recursive-blame spawn-sync test-npmlink uglify-js yo" echo "$EXPECTED_PACKAGES" | xargs npm install -g --quiet From 1f13f15620dbac11917116fee661e82417840612 Mon Sep 17 00:00:00 2001 From: lukechilds Date: Fri, 12 Jun 2015 23:36:02 +0100 Subject: [PATCH 0478/1426] Add --without-snapshot configure flag to ARM devices --- nvm.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/nvm.sh b/nvm.sh index e857577..32860a3 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1022,6 +1022,12 @@ nvm_install_node_source() { local ADDITIONAL_PARAMETERS ADDITIONAL_PARAMETERS="$2" + local NVM_ARCH + NVM_ARCH="$(nvm_get_arch)" + if [[ $NVM_ARCH = *"arm"* ]]; then + ADDITIONAL_PARAMETERS+=" --without-snapshot" + fi + if [ -n "$ADDITIONAL_PARAMETERS" ]; then echo "Additional options while compiling: $ADDITIONAL_PARAMETERS" fi From 67f2ee82ca5a84dcf8d57d6ef93b608e85604c97 Mon Sep 17 00:00:00 2001 From: lukechilds Date: Sat, 13 Jun 2015 10:13:15 +0100 Subject: [PATCH 0479/1426] POSIX compatibility --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 32860a3..1b717b1 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1024,8 +1024,8 @@ nvm_install_node_source() { local NVM_ARCH NVM_ARCH="$(nvm_get_arch)" - if [[ $NVM_ARCH = *"arm"* ]]; then - ADDITIONAL_PARAMETERS+=" --without-snapshot" + if [ $NVM_ARCH = "armv6l" ] || [ $NVM_ARCH = "armv7l" ]; then + ADDITIONAL_PARAMETERS="--without-snapshot $ADDITIONAL_PARAMETERS" fi if [ -n "$ADDITIONAL_PARAMETERS" ]; then From 3214caa4ec3bbb590a7c62bb21c523ca7e3a9767 Mon Sep 17 00:00:00 2001 From: lukechilds Date: Sat, 13 Jun 2015 15:58:27 +0100 Subject: [PATCH 0480/1426] Adding installation test for disabling V8 snapshot on ARM --- ...ll from source without V8 snapshot for ARM | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100755 test/installation/node/install from source without V8 snapshot for ARM diff --git a/test/installation/node/install from source without V8 snapshot for ARM b/test/installation/node/install from source without V8 snapshot for ARM new file mode 100755 index 0000000..9362cf0 --- /dev/null +++ b/test/installation/node/install from source without V8 snapshot for ARM @@ -0,0 +1,25 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +NVM_TEST_VERSION=v0.10.7 + +# Remove the stuff we're clobbering. +[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION + +# Fake ARM arch +nvm_get_arch() { + echo "armv7l" +} + +# Install from source +nvm install -s $NVM_TEST_VERSION || die "'nvm install -s $NVM_TEST_VERSION' failed" + +# Check Install +[ -d ../../../$NVM_TEST_VERSION ] +nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION || "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" + +# Check V8 snapshot isn't compiled +nvm run $NVM_TEST_VERSION -p process.config | grep "v8_use_snapshot: false" || "'nvm run $NVM_TEST_VERSION -p process.config | grep \"v8_use_snapshot: false\"' failed" \ No newline at end of file From 83466446cea628781344c8565c2fda43f7a90233 Mon Sep 17 00:00:00 2001 From: lukechilds Date: Sat, 13 Jun 2015 16:10:49 +0100 Subject: [PATCH 0481/1426] Added newline to end of ARM test --- .../node/install from source without V8 snapshot for ARM | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/installation/node/install from source without V8 snapshot for ARM b/test/installation/node/install from source without V8 snapshot for ARM index 9362cf0..a7a562c 100755 --- a/test/installation/node/install from source without V8 snapshot for ARM +++ b/test/installation/node/install from source without V8 snapshot for ARM @@ -22,4 +22,5 @@ nvm install -s $NVM_TEST_VERSION || die "'nvm install -s $NVM_TEST_VERSION' fail nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION || "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" # Check V8 snapshot isn't compiled -nvm run $NVM_TEST_VERSION -p process.config | grep "v8_use_snapshot: false" || "'nvm run $NVM_TEST_VERSION -p process.config | grep \"v8_use_snapshot: false\"' failed" \ No newline at end of file +nvm run $NVM_TEST_VERSION -p process.config | grep "v8_use_snapshot: false" || "'nvm run $NVM_TEST_VERSION -p process.config | grep \"v8_use_snapshot: false\"' failed" + From 3b67b3b9bb268e7082a77022c9d6a0b263fa9a34 Mon Sep 17 00:00:00 2001 From: lukechilds Date: Sat, 13 Jun 2015 18:52:54 +0100 Subject: [PATCH 0482/1426] Use node instead of nvm run and check v8_use_snapshot in node rather than shell --- .../node/install from source without V8 snapshot for ARM | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/test/installation/node/install from source without V8 snapshot for ARM b/test/installation/node/install from source without V8 snapshot for ARM index a7a562c..9fd1c89 100755 --- a/test/installation/node/install from source without V8 snapshot for ARM +++ b/test/installation/node/install from source without V8 snapshot for ARM @@ -17,10 +17,12 @@ nvm_get_arch() { # Install from source nvm install -s $NVM_TEST_VERSION || die "'nvm install -s $NVM_TEST_VERSION' failed" +# Use new version +nvm use $NVM_TEST_VERSION + # Check Install [ -d ../../../$NVM_TEST_VERSION ] -nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION || "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" +node --version | grep $NVM_TEST_VERSION || "'node --version | grep $NVM_TEST_VERSION' failed" # Check V8 snapshot isn't compiled -nvm run $NVM_TEST_VERSION -p process.config | grep "v8_use_snapshot: false" || "'nvm run $NVM_TEST_VERSION -p process.config | grep \"v8_use_snapshot: false\"' failed" - +node -p "if(! process.config.variables.v8_use_snapshot) { console.log('no-snapshot'); }" | grep "no-snapshot" || "'node -p \"if(! process.config.variables.v8_use_snapshot) { console.log('no-snapshot'); }\" | grep \"no-snapshot\"' failed" \ No newline at end of file From c1ef31df53361e94b52bcd7eaecbb7fe2b682c35 Mon Sep 17 00:00:00 2001 From: lukechilds Date: Sat, 13 Jun 2015 19:38:28 +0100 Subject: [PATCH 0483/1426] Remove unnecessary nvm use --- .../node/install from source without V8 snapshot for ARM | 3 --- 1 file changed, 3 deletions(-) diff --git a/test/installation/node/install from source without V8 snapshot for ARM b/test/installation/node/install from source without V8 snapshot for ARM index 9fd1c89..3755d71 100755 --- a/test/installation/node/install from source without V8 snapshot for ARM +++ b/test/installation/node/install from source without V8 snapshot for ARM @@ -17,9 +17,6 @@ nvm_get_arch() { # Install from source nvm install -s $NVM_TEST_VERSION || die "'nvm install -s $NVM_TEST_VERSION' failed" -# Use new version -nvm use $NVM_TEST_VERSION - # Check Install [ -d ../../../$NVM_TEST_VERSION ] node --version | grep $NVM_TEST_VERSION || "'node --version | grep $NVM_TEST_VERSION' failed" From bc3840b6f3dcdba4f118709acd661837a865e8b2 Mon Sep 17 00:00:00 2001 From: William Boman Date: Thu, 2 Jul 2015 21:21:51 +0200 Subject: [PATCH 0484/1426] nvm.sh: s/copying/reinstalling/ --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 1b717b1..f4481d7 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1744,7 +1744,7 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" local INSTALLS INSTALLS=$(echo "$NPMLIST" | command sed -e '/ -> / d' -e '/\(empty\)/ d' -e 's/^.* \(.*\)@.*/\1/' -e '/^npm$/ d' | command xargs) - echo "Copying global packages from $VERSION..." + echo "Reinstalling global packages from $VERSION..." echo "$INSTALLS" | command xargs npm install -g --quiet local LINKS From 7bce6c6c687420c54fd314157cff305b7adb98b5 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 29 Jun 2015 00:04:59 -0700 Subject: [PATCH 0485/1426] `nvm reinstall-packages` should install the same version it had before. --- nvm.sh | 10 ++++++---- .../io.js/install while reinstalling packages | 6 +++--- .../node/install while reinstalling packages | 6 +++--- .../nvm reinstall-packages/should work as expected | 5 ++++- 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/nvm.sh b/nvm.sh index f4481d7..c69690e 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1742,17 +1742,19 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" fi local INSTALLS - INSTALLS=$(echo "$NPMLIST" | command sed -e '/ -> / d' -e '/\(empty\)/ d' -e 's/^.* \(.*\)@.*/\1/' -e '/^npm$/ d' | command xargs) + INSTALLS=$(echo "$NPMLIST" | command sed -e '/ -> / d' -e '/\(empty\)/ d' -e 's/^.* \(.*@[^ ]*\).*/\1/' -e '/^npm@[^ ]*.*$/ d' | command xargs) echo "Reinstalling global packages from $VERSION..." echo "$INSTALLS" | command xargs npm install -g --quiet local LINKS - LINKS=$(echo "$NPMLIST" | command sed -n 's/.* -> \(.*\)/\1/ p') + LINKS="$(echo "$NPMLIST" | command sed -n 's/.* -> \(.*\)/\1/ p')" # | command sed -e '/^ *$/d;s/.*/"&"/') echo "Linking global packages from $VERSION..." - for LINK in $LINKS; do - (cd "$LINK" && npm link) + for LINK in "$LINKS"; do + if [ -n "$LINK" ]; then + (cd "$LINK" && npm link) + fi done ;; "clear-cache" ) diff --git a/test/installation/io.js/install while reinstalling packages b/test/installation/io.js/install while reinstalling packages index d7d4ee4..ebbb64a 100755 --- a/test/installation/io.js/install while reinstalling packages +++ b/test/installation/io.js/install while reinstalling packages @@ -16,8 +16,8 @@ nvm install iojs-v1.0.0 node --version | grep v1.0.0 > /dev/null || die "nvm install didn't use iojs-v1.0.0" -npm install -g is-nan@1.0.1 || die "npm install -g is-nan failed" -npm list --global | grep is-nan > /dev/null || die "is-nan isn't installed" +npm install -g object-is@0.0.0 || die "npm install -g object-is failed" +npm list --global | grep object-is > /dev/null || die "object-is isn't installed" nvm ls iojs-1 | grep iojs-v1.0.0 > /dev/null || die "nvm ls iojs-1 didn't show iojs-v1.0.0" @@ -28,5 +28,5 @@ nvm install iojs-v1.0.1 --reinstall-packages-from=iojs-1.0.0 || die "nvm install nvm use iojs-1 node --version | grep v1.0.1 > /dev/null || die "nvm use iojs-1 didn't use v1.0.1" -npm list --global | grep is-nan > /dev/null || die "is-nan isn't installed" +npm list --global | grep object-is > /dev/null || die "object-is isn't installed" diff --git a/test/installation/node/install while reinstalling packages b/test/installation/node/install while reinstalling packages index 9298212..c170a10 100755 --- a/test/installation/node/install while reinstalling packages +++ b/test/installation/node/install while reinstalling packages @@ -18,8 +18,8 @@ nvm use 0.9.7 node --version | grep v0.9.7 > /dev/null || die "nvm use 0.9.7 failed" -npm install -g is-nan@1.0.1 || die "npm install -g is-nan failed" -npm list --global | grep is-nan > /dev/null || die "is-nan isn't installed" +npm install -g object-is@0.0.0 || die "npm install -g object-is failed" +npm list --global | grep object-is > /dev/null || die "object-is isn't installed" nvm ls 0.9 | grep v0.9.7 > /dev/null || die "nvm ls 0.9 didn't show v0.9.7" @@ -30,5 +30,5 @@ nvm install 0.9.12 --reinstall-packages-from=0.9 || die "nvm install 0.9.12 --re nvm use 0.9 node --version | grep v0.9.12 > /dev/null || die "nvm ls 0.9 didn't use v0.9.12" -npm list --global | grep is-nan > /dev/null || die "is-nan isn't installed" +npm list --global | grep object-is > /dev/null || die "object-is isn't installed" diff --git a/test/slow/nvm reinstall-packages/should work as expected b/test/slow/nvm reinstall-packages/should work as expected index 506d5f4..e0156d4 100755 --- a/test/slow/nvm reinstall-packages/should work as expected +++ b/test/slow/nvm reinstall-packages/should work as expected @@ -4,12 +4,15 @@ die () { echo "$@" ; exit 1; } . ../../../nvm.sh +nvm exec 0.10.28 npm install -g npm@~1.4.11 # this is required because before 1.4.10, npm ls doesn't indicated linked packages +nvm exec 0.10.29 npm install -g npm@~1.4.11 # this is required because before 1.4.10, npm ls doesn't indicated linked packages + nvm use 0.10.28 (cd test-npmlink && npm link) EXPECTED_PACKAGES="autoprefixer bower david eslint grunt-cli grunth-cli http-server jshint marked node-gyp npmlist recursive-blame spawn-sync test-npmlink uglify-js yo" -echo "$EXPECTED_PACKAGES" | xargs npm install -g --quiet +echo "$EXPECTED_PACKAGES" | sed -e 's/test-npmlink //' | xargs npm install -g --quiet get_packages() { npm list -g --depth=0 | \sed -e '1 d' -e 's/^.* \(.*\)@.*/\1/' -e '/^npm$/ d' | xargs From c31b0721458410d1f0785206b50589a4898b3d25 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 28 Jun 2015 17:19:15 -0700 Subject: [PATCH 0486/1426] Fix `nvm debug` output in `zsh`. --- nvm.sh | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index c69690e..b7d9bb9 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1145,13 +1145,22 @@ nvm() { ;; "debug" ) + local ZHS_HAS_SHWORDSPLIT_UNSET + if nvm_has "setopt"; then + ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; echo $?) + setopt shwordsplit + fi echo >&2 "\$SHELL: $SHELL" echo >&2 "\$NVM_DIR: $(echo $NVM_DIR | sed "s#$HOME#\$HOME#g")" + local NVM_DEBUG_OUTPUT for NVM_DEBUG_COMMAND in 'nvm current' 'which node' 'which iojs' 'which npm' 'npm config get prefix' 'npm root -g' do - local NVM_DEBUG_OUTPUT="$($NVM_DEBUG_COMMAND | sed "s#$NVM_DIR#\$NVM_DIR#g")" - echo >&2 "$NVM_DEBUG_COMMAND: ${NVM_DEBUG_OUTPUT}" + NVM_DEBUG_OUTPUT="$($NVM_DEBUG_COMMAND 2>&1 | sed "s#$NVM_DIR#\$NVM_DIR#g")" + echo >&2 "$NVM_DEBUG_COMMAND: $NVM_DEBUG_OUTPUT" done + if [ "_$ZHS_HAS_SHWORDSPLIT_UNSET" = "_1" ] && nvm_has "unsetopt"; then + unsetopt shwordsplit + fi return 42 ;; From cc090f4476c21008f56bfc6c464293d29895daf3 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 28 Jun 2015 16:23:12 -0700 Subject: [PATCH 0487/1426] Speed up `nvm_print_npm_version`. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index b7d9bb9..e81f012 100755 --- a/nvm.sh +++ b/nvm.sh @@ -62,7 +62,7 @@ nvm_has_system_iojs() { nvm_print_npm_version() { if nvm_has "npm"; then - npm --version 2>/dev/null | command xargs printf " (npm v%s)" + echo " (npm v$(npm --version 2>/dev/null))" fi } From a21b2e69621dc1078e9843d348ed3725a401ae6e Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 28 Jun 2015 18:08:38 -0700 Subject: [PATCH 0488/1426] Refactor this `nvm use` `case` statement out into an `nvm_match_version` function. --- nvm.sh | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/nvm.sh b/nvm.sh index e81f012..1c742d6 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1094,6 +1094,24 @@ nvm_install_node_source() { return $? } +nvm_match_version() { + local NVM_IOJS_PREFIX + NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" + local PROVIDED_VERSION + PROVIDED_VERSION="$1" + case "_$PROVIDED_VERSION" in + "_$NVM_IOJS_PREFIX" | "_io.js") + echo "$(nvm_version $NVM_IOJS_PREFIX)" + ;; + "_system") + echo "system" + ;; + *) + echo "$(nvm_version "$PROVIDED_VERSION")" + ;; + esac +} + nvm() { if [ $# -lt 1 ]; then nvm help @@ -1383,22 +1401,8 @@ nvm() { VERSION="$(nvm_version "$PROVIDED_VERSION")" fi else - local NVM_IOJS_PREFIX - NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" - local NVM_NODE_PREFIX - NVM_NODE_PREFIX="$(nvm_node_prefix)" PROVIDED_VERSION="$2" - case "_$PROVIDED_VERSION" in - "_$NVM_IOJS_PREFIX" | "_io.js") - VERSION="$(nvm_version $NVM_IOJS_PREFIX)" - ;; - "_system") - VERSION="system" - ;; - *) - VERSION="$(nvm_version "$PROVIDED_VERSION")" - ;; - esac + VERSION="$(nvm_match_version "$PROVIDED_VERSION")" fi if [ -z "$VERSION" ]; then From 3ef937a64ed9b32cd889eaf76b6a1bee7ffd3e08 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 28 Jun 2015 18:15:15 -0700 Subject: [PATCH 0489/1426] Make `nvm_ensure_version_installed` slightly more efficient. --- nvm.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 1c742d6..cf9e73a 100755 --- a/nvm.sh +++ b/nvm.sh @@ -198,10 +198,14 @@ nvm_ensure_version_installed() { local PROVIDED_VERSION PROVIDED_VERSION="$1" local LOCAL_VERSION + local EXIT_CODE LOCAL_VERSION="$(nvm_version "$PROVIDED_VERSION")" + EXIT_CODE="$?" local NVM_VERSION_DIR - NVM_VERSION_DIR="$(nvm_version_path "$LOCAL_VERSION")" - if [ ! -d "$NVM_VERSION_DIR" ]; then + if [ "_$EXIT_CODE" = "_0" ]; then + NVM_VERSION_DIR="$(nvm_version_path "$LOCAL_VERSION")" + fi + if [ "_$EXIT_CODE" != "_0" ] || [ ! -d "$NVM_VERSION_DIR" ]; then VERSION="$(nvm_resolve_alias "$PROVIDED_VERSION")" if [ $? -eq 0 ]; then echo "N/A: version \"$PROVIDED_VERSION -> $VERSION\" is not yet installed" >&2 From be5e8de0c8bed35518612282e08f84e2d82e8ff5 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 2 Jul 2015 22:45:11 -0700 Subject: [PATCH 0490/1426] Fix `nvm reinstall-packages` for linked packages, broken in 7bce6c6c687420c54fd314157cff305b7adb98b5 --- nvm.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index cf9e73a..cc5f1bb 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1765,14 +1765,18 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" echo "$INSTALLS" | command xargs npm install -g --quiet local LINKS - LINKS="$(echo "$NPMLIST" | command sed -n 's/.* -> \(.*\)/\1/ p')" # | command sed -e '/^ *$/d;s/.*/"&"/') + LINKS="$(echo "$NPMLIST" | command sed -n 's/.* -> \(.*\)/\1/ p')" echo "Linking global packages from $VERSION..." - for LINK in "$LINKS"; do + set -f; IFS=' +' # necessary to turn off variable expansion except for newlines + for LINK in $LINKS; do + set +f; unset IFS # restore variable expansion if [ -n "$LINK" ]; then (cd "$LINK" && npm link) fi done + set +f; unset IFS # restore variable expansion in case $LINKS was empty ;; "clear-cache" ) command rm -f $NVM_DIR/v* "$(nvm_version_dir)" 2>/dev/null From 0b413522103878a3b84cdbd4a1c4447272e041e5 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 2 Jul 2015 23:47:29 -0700 Subject: [PATCH 0491/1426] Factor out global installs/links into `nvm_npm_global_modules` function. --- nvm.sh | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/nvm.sh b/nvm.sh index cc5f1bb..85b5091 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1116,6 +1116,25 @@ nvm_match_version() { esac } +nvm_npm_global_modules() { + local NPMLIST + local VERSION + VERSION="$1" + if [ "_$VERSION" = "_system" ]; then + NPMLIST=$(nvm use system > /dev/null && npm list -g --depth=0 | command tail -n +2) + else + NPMLIST=$(nvm use "$VERSION" > /dev/null && npm list -g --depth=0 | command tail -n +2) + fi + + local INSTALLS + INSTALLS=$(echo "$NPMLIST" | command sed -e '/ -> / d' -e '/\(empty\)/ d' -e 's/^.* \(.*@[^ ]*\).*/\1/' -e '/^npm@[^ ]*.*$/ d' | command xargs) + + local LINKS + LINKS="$(echo "$NPMLIST" | command sed -n 's/.* -> \(.*\)/\1/ p')" + + echo "$INSTALLS //// $LINKS" +} + nvm() { if [ $# -lt 1 ]; then nvm help @@ -1744,7 +1763,6 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" return 2 fi - local NPMLIST local VERSION if [ "_$PROVIDED_VERSION" = "_system" ]; then if ! nvm_has_system_node && ! nvm_has_system_iojs; then @@ -1752,21 +1770,20 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" return 3 fi VERSION="system" - NPMLIST=$(nvm deactivate > /dev/null && npm list -g --depth=0 | command tail -n +2) else VERSION="$(nvm_version "$PROVIDED_VERSION")" - NPMLIST=$(nvm use "$VERSION" > /dev/null && npm list -g --depth=0 | command tail -n +2) fi + local NPMLIST + NPMLIST="$(nvm_npm_global_modules "$VERSION")" local INSTALLS - INSTALLS=$(echo "$NPMLIST" | command sed -e '/ -> / d' -e '/\(empty\)/ d' -e 's/^.* \(.*@[^ ]*\).*/\1/' -e '/^npm@[^ ]*.*$/ d' | command xargs) + local LINKS + INSTALLS="${NPMLIST%% //// *}" + LINKS="${NPMLIST##* //// }" echo "Reinstalling global packages from $VERSION..." echo "$INSTALLS" | command xargs npm install -g --quiet - local LINKS - LINKS="$(echo "$NPMLIST" | command sed -n 's/.* -> \(.*\)/\1/ p')" - echo "Linking global packages from $VERSION..." set -f; IFS=' ' # necessary to turn off variable expansion except for newlines @@ -1796,6 +1813,7 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" nvm_ls_remote nvm_ls nvm_remote_version nvm_remote_versions \ nvm_version nvm_rc_version \ nvm_version_greater nvm_version_greater_than_or_equal_to \ + nvm_npm_global_modules \ nvm_supports_source_options > /dev/null 2>&1 unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_DIR NVM_CD_FLAGS > /dev/null 2>&1 ;; From f2d31b0458aa0dbbc8ce2c5c4f6cd74005dc4f59 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 3 Jul 2015 21:10:12 -0700 Subject: [PATCH 0492/1426] Some refactoring to clear up the path to `io.js` release candidate support. (unblocks #779) --- nvm.sh | 94 +++++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 70 insertions(+), 24 deletions(-) diff --git a/nvm.sh b/nvm.sh index 85b5091..dcca451 100755 --- a/nvm.sh +++ b/nvm.sh @@ -304,7 +304,8 @@ nvm_is_valid_version() { return 0 fi case "$1" in - "$(nvm_iojs_prefix)" | "$(nvm_node_prefix)") + "$(nvm_iojs_prefix)" | \ + "$(nvm_node_prefix)") return 0 ;; *) @@ -538,7 +539,7 @@ nvm_ls() { local NVM_NODE_PREFIX NVM_NODE_PREFIX="$(nvm_node_prefix)" local NVM_VERSION_DIR_IOJS - NVM_VERSION_DIR_IOJS="$(nvm_version_dir iojs)" + NVM_VERSION_DIR_IOJS="$(nvm_version_dir "$NVM_IOJS_PREFIX")" local NVM_VERSION_DIR_NEW NVM_VERSION_DIR_NEW="$(nvm_version_dir new)" local NVM_VERSION_DIR_OLD @@ -632,7 +633,8 @@ nvm_ls() { | command sort -s -t- -k1.1,1.1 \ | command sed " s/^\($NVM_IOJS_PREFIX\)\./\1-/; - s/^$NVM_NODE_PREFIX\.//")" + s/^$NVM_NODE_PREFIX\.//" \ + )" fi if [ $ZHS_HAS_SHWORDSPLIT_UNSET -eq 1 ] && nvm_has "unsetopt"; then @@ -681,18 +683,31 @@ nvm_ls_remote() { } nvm_ls_remote_iojs() { + nvm_ls_remote_iojs_org std "$NVM_IOJS_ORG_MIRROR" "$1" +} + +nvm_ls_remote_iojs_org() { + local PREFIX + if [ "_$1" = "_std" ]; then + PREFIX="$(nvm_iojs_prefix)" + else + echo "unknown type of io.js release" >&2 + return 4 + fi + local MIRROR + MIRROR="$2" local PATTERN - PATTERN="$1" + PATTERN="$3" local VERSIONS if [ -n "$PATTERN" ]; then PATTERN="$(nvm_ensure_version_prefix $(nvm_strip_iojs_prefix "$PATTERN"))" else PATTERN=".*" fi - VERSIONS="$(nvm_download -L -s "$NVM_IOJS_ORG_MIRROR/index.tab" -o - \ + VERSIONS="$(nvm_download -L -s "$MIRROR/index.tab" -o - \ | command sed " 1d; - s/^/$(nvm_iojs_prefix)-/; + s/^/$PREFIX-/; s/[[:blank:]].*//" \ | command grep -w "$PATTERN" \ | command sort)" @@ -769,7 +784,9 @@ nvm_print_implicit_alias() { return 1 fi - if ! nvm_validate_implicit_alias "$2"; then + local NVM_IMPLICIT + NVM_IMPLICIT="$2" + if ! nvm_validate_implicit_alias "$NVM_IMPLICIT"; then return 2 fi @@ -780,12 +797,14 @@ nvm_print_implicit_alias() { local NVM_NODE_PREFIX NVM_NODE_PREFIX="$(nvm_node_prefix)" local NVM_COMMAND + local NVM_ADD_PREFIX_COMMAND local LAST_TWO - case "$2" in - "$NVM_IOJS_PREFIX") + case "$NVM_IMPLICIT" in + "$NVM_IOJS_PREFIX" | "$NVM_IOJS_RC_PREFIX") NVM_COMMAND="nvm_ls_remote_iojs" + NVM_ADD_PREFIX_COMMAND="nvm_add_iojs_prefix" if [ "_$1" = "_local" ]; then - NVM_COMMAND="nvm_ls iojs" + NVM_COMMAND="nvm_ls "$NVM_IMPLICIT"" fi ZHS_HAS_SHWORDSPLIT_UNSET=1 @@ -795,7 +814,7 @@ nvm_print_implicit_alias() { fi local NVM_IOJS_VERSION - NVM_IOJS_VERSION="$($NVM_COMMAND | sed "s/^"$NVM_IOJS_PREFIX"-//" | command grep -e '^v' | cut -c2- | cut -d . -f 1,2 | uniq | tail -1)" + NVM_IOJS_VERSION="$($NVM_COMMAND | sed "s/^"$NVM_IMPLICIT"-//" | command grep -e '^v' | cut -c2- | cut -d . -f 1,2 | uniq | tail -1)" local EXIT_CODE EXIT_CODE="$?" @@ -803,7 +822,7 @@ nvm_print_implicit_alias() { unsetopt shwordsplit fi - echo "$(nvm_add_iojs_prefix "$NVM_IOJS_VERSION")" + echo "$($NVM_ADD_PREFIX_COMMAND "$NVM_IOJS_VERSION")" return $EXIT_CODE ;; "$NVM_NODE_PREFIX") @@ -903,10 +922,19 @@ nvm_ensure_default_set() { } nvm_install_iojs_binary() { + local NVM_IOJS_TYPE + NVM_IOJS_TYPE="$1" + local MIRROR + if [ "_$NVM_IOJS_TYPE" = "_std" ]; then + MIRROR="$NVM_IOJS_ORG_MIRROR" + else + echo "unknown type of io.js release" >&2 + return 4 + fi local PREFIXED_VERSION - PREFIXED_VERSION="$1" + PREFIXED_VERSION="$2" local REINSTALL_PACKAGES_FROM - REINSTALL_PACKAGES_FROM="$2" + REINSTALL_PACKAGES_FROM="$3" if ! nvm_is_iojs_version "$PREFIXED_VERSION"; then echo 'nvm_install_iojs_binary requires an iojs-prefixed version.' >&2 @@ -926,8 +954,8 @@ nvm_install_iojs_binary() { if [ -n "$NVM_OS" ]; then if nvm_binary_available "$VERSION"; then t="$VERSION-$NVM_OS-$(nvm_get_arch)" - url="$NVM_IOJS_ORG_MIRROR/$VERSION/$(nvm_iojs_prefix)-${t}.tar.gz" - sum="$(nvm_download -L -s $NVM_IOJS_ORG_MIRROR/$VERSION/SHASUMS256.txt -o - | command grep $(nvm_iojs_prefix)-${t}.tar.gz | command awk '{print $1}')" + url="$MIRROR/$VERSION/$(nvm_iojs_prefix)-${t}.tar.gz" + sum="$(nvm_download -L -s $MIRROR/$VERSION/SHASUMS256.txt -o - | command grep $(nvm_iojs_prefix)-${t}.tar.gz | command awk '{print $1}')" local tmpdir tmpdir="$NVM_DIR/bin/iojs-${t}" local tmptarball @@ -1308,7 +1336,7 @@ nvm() { local NVM_INSTALL_SUCCESS # skip binary install if "nobinary" option specified. if [ $nobinary -ne 1 ] && nvm_binary_available "$VERSION"; then - if [ "$NVM_IOJS" = true ] && nvm_install_iojs_binary "$VERSION" "$REINSTALL_PACKAGES_FROM"; then + if [ "$NVM_IOJS" = true ] && nvm_install_iojs_binary std "$VERSION" "$REINSTALL_PACKAGES_FROM"; then NVM_INSTALL_SUCCESS=true elif [ "$NVM_IOJS" != true ] && nvm_install_node_binary "$VERSION" "$REINSTALL_PACKAGES_FROM"; then NVM_INSTALL_SUCCESS=true @@ -1602,9 +1630,13 @@ nvm() { "ls-remote" | "list-remote" ) local PATTERN PATTERN="$2" + local NVM_IOJS_PREFIX + NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" + local NVM_NODE_PREFIX + NVM_NODE_PREFIX="$(nvm_node_prefix)" local NVM_FLAVOR case "_$PATTERN" in - "_$(nvm_iojs_prefix)" | "_$(nvm_node_prefix)" ) + "_$NVM_IOJS_PREFIX" | "_$NVM_NODE_PREFIX" ) NVM_FLAVOR="$PATTERN" PATTERN="$3" ;; @@ -1614,7 +1646,7 @@ nvm() { NVM_LS_REMOTE_EXIT_CODE=0 local NVM_LS_REMOTE_OUTPUT NVM_LS_REMOTE_OUTPUT='' - if [ "_$NVM_FLAVOR" != "_$(nvm_iojs_prefix)" ]; then + if [ "_$NVM_FLAVOR" != "_$NVM_IOJS_PREFIX" ]; then NVM_LS_REMOTE_OUTPUT=$(nvm_ls_remote "$PATTERN") NVM_LS_REMOTE_EXIT_CODE=$? fi @@ -1623,7 +1655,7 @@ nvm() { NVM_LS_REMOTE_IOJS_EXIT_CODE=0 local NVM_LS_REMOTE_IOJS_OUTPUT NVM_LS_REMOTE_IOJS_OUTPUT='' - if [ "_$NVM_FLAVOR" != "_$(nvm_node_prefix)" ]; then + if [ "_$NVM_FLAVOR" != "_$NVM_NODE_PREFIX" ]; then NVM_LS_REMOTE_IOJS_OUTPUT=$(nvm_ls_remote_iojs "$PATTERN") NVM_LS_REMOTE_IOJS_EXIT_CODE=$? fi @@ -1809,11 +1841,25 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" unset -f nvm nvm_print_versions nvm_checksum \ nvm_iojs_prefix nvm_node_prefix \ nvm_add_iojs_prefix nvm_strip_iojs_prefix \ - nvm_is_iojs_version \ - nvm_ls_remote nvm_ls nvm_remote_version nvm_remote_versions \ - nvm_version nvm_rc_version \ + nvm_is_iojs_version nvm_is_alias \ + nvm_ls_remote nvm_ls_remote_iojs nvm_ls_remote_iojs_org \ + nvm_ls nvm_remote_version nvm_remote_versions \ + nvm_install_iojs_binary nvm_install_node_binary \ + nvm_install_node_source \ + nvm_version nvm_rc_version nvm_match_version \ + nvm_ensure_default_set nvm_get_arch nvm_get_os \ + nvm_print_implicit_alias nvm_validate_implicit_alias \ + nvm_resolve_alias nvm_ls_current nvm_alias \ + nvm_binary_available nvm_prepend_path nvm_strip_path \ + nvm_num_version_groups nvm_format_version nvm_ensure_version_prefix \ + nvm_normalize_version nvm_is_valid_version \ + nvm_ensure_version_installed \ + nvm_version_path nvm_alias_path nvm_version_dir \ + nvm_find_nvmrc nvm_find_up nvm_tree_contains_path \ nvm_version_greater nvm_version_greater_than_or_equal_to \ - nvm_npm_global_modules \ + nvm_print_npm_version nvm_npm_global_modules \ + nvm_has_system_node nvm_has_system_iojs \ + nvm_download nvm_get_latest nvm_has nvm_get_latest \ nvm_supports_source_options > /dev/null 2>&1 unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_DIR NVM_CD_FLAGS > /dev/null 2>&1 ;; From b4151e1446f36d534a8a98e6876d293e05317173 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ionic=C4=83=20Biz=C4=83u?= Date: Tue, 30 Jun 2015 09:47:55 +0300 Subject: [PATCH 0493/1426] Source the nvm.sh file Fixes #775. After everything is installed, instead of restarting the terminal, just load the nvm.sh file. --- install.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 2ef5f8e..16d8fe1 100755 --- a/install.sh +++ b/install.sh @@ -227,8 +227,9 @@ nvm_do_install() { fi nvm_check_global_modules - - echo "=> Close and reopen your terminal to start using nvm" + + . $NVM_DIR/nvm.sh + echo "=> You can now start using nvm" nvm_reset } From 9419794b19b0eece249c873ebd10e2f1860da2a4 Mon Sep 17 00:00:00 2001 From: Alan Quach Date: Thu, 9 Jul 2015 09:56:26 +1000 Subject: [PATCH 0494/1426] Guarding npm version printing with NVM_SILENT flag check; when sourcing nvm.sh, a considerable amount of time is spent running npm --version only for that output to be black-holed to /dev/null --- nvm.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index dcca451..d580e13 100755 --- a/nvm.sh +++ b/nvm.sh @@ -61,7 +61,7 @@ nvm_has_system_iojs() { } nvm_print_npm_version() { - if nvm_has "npm"; then + if [ "$NVM_SILENT" != "true" ] && nvm_has "npm"; then echo " (npm v$(npm --version 2>/dev/null))" fi } @@ -1882,7 +1882,9 @@ if nvm_supports_source_options && [ "_$1" = "_--install" ]; then nvm install >/dev/null fi elif [ -n "$VERSION" ]; then + NVM_SILENT="true" nvm use "$VERSION" >/dev/null + unset NVM_SILENT elif nvm_rc_version >/dev/null 2>&1; then nvm use >/dev/null fi From 88a50780fcb57e91d212bf99b3ebaea7d98a2139 Mon Sep 17 00:00:00 2001 From: Alan Quach Date: Thu, 9 Jul 2015 17:44:09 +1000 Subject: [PATCH 0495/1426] Removing global NVM_SILENT and adding/using '--silent' option to nvm use instead --- nvm.sh | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/nvm.sh b/nvm.sh index d580e13..e116a3e 100755 --- a/nvm.sh +++ b/nvm.sh @@ -61,7 +61,7 @@ nvm_has_system_iojs() { } nvm_print_npm_version() { - if [ "$NVM_SILENT" != "true" ] && nvm_has "npm"; then + if nvm_has "npm"; then echo " (npm v$(npm --version 2>/dev/null))" fi } @@ -1187,7 +1187,7 @@ nvm() { echo " nvm --version Print out the latest released version of nvm" echo " nvm install [-s] Download and install a , [-s] from source. Uses .nvmrc if available" echo " nvm uninstall Uninstall a version" - echo " nvm use Modify PATH to use . Uses .nvmrc if available" + echo " nvm use [--silent] Modify PATH to use . Uses .nvmrc if available" echo " nvm run [] Run with as arguments. Uses .nvmrc if available for " echo " nvm current Display currently activated version" echo " nvm ls List installed versions" @@ -1445,6 +1445,13 @@ nvm() { ;; "use" ) local PROVIDED_VERSION + local silent + silent=0 + if [ "$2" = '--silent' ]; then + silent=1 + shift + fi + if [ $# -eq 1 ]; then nvm_rc_version if [ -n "$NVM_RC_VERSION" ]; then @@ -1463,10 +1470,10 @@ nvm() { if [ "_$VERSION" = '_system' ]; then if nvm_has_system_node && nvm deactivate >/dev/null 2>&1; then - echo "Now using system version of node: $(node -v 2>/dev/null)$(nvm_print_npm_version)" + [ $silent -ne 1 ] && echo "Now using system version of node: $(node -v 2>/dev/null)$(nvm_print_npm_version)" return elif nvm_has_system_iojs && nvm deactivate >/dev/null 2>&1; then - echo "Now using system version of io.js: $(iojs --version 2>/dev/null)$(nvm_print_npm_version)" + [ $silent -ne 1 ] && echo "Now using system version of io.js: $(iojs --version 2>/dev/null)$(nvm_print_npm_version)" return else echo "System version of node not found." >&2 @@ -1510,9 +1517,9 @@ nvm() { command rm -f "$NVM_DIR/current" && ln -s "$NVM_VERSION_DIR" "$NVM_DIR/current" fi if nvm_is_iojs_version "$VERSION"; then - echo "Now using io.js $(nvm_strip_iojs_prefix "$VERSION")$(nvm_print_npm_version)" + [ $silent -ne 1 ] && echo "Now using io.js $(nvm_strip_iojs_prefix "$VERSION")$(nvm_print_npm_version)" else - echo "Now using node $VERSION$(nvm_print_npm_version)" + [ $silent -ne 1 ] && echo "Now using node $VERSION$(nvm_print_npm_version)" fi ;; "run" ) @@ -1882,11 +1889,9 @@ if nvm_supports_source_options && [ "_$1" = "_--install" ]; then nvm install >/dev/null fi elif [ -n "$VERSION" ]; then - NVM_SILENT="true" - nvm use "$VERSION" >/dev/null - unset NVM_SILENT + nvm use --silent "$VERSION" >/dev/null elif nvm_rc_version >/dev/null 2>&1; then - nvm use >/dev/null + nvm use --silent >/dev/null fi } # this ensures the entire script is downloaded # From 2da44f90d2cfb4658aa3ac9cd0fb4f99969e3e9d Mon Sep 17 00:00:00 2001 From: Alan Quach Date: Thu, 9 Jul 2015 18:00:13 +1000 Subject: [PATCH 0496/1426] Silencing error outputs as well (for consistency and following after things like curl) --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index e116a3e..2377592 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1476,11 +1476,11 @@ nvm() { [ $silent -ne 1 ] && echo "Now using system version of io.js: $(iojs --version 2>/dev/null)$(nvm_print_npm_version)" return else - echo "System version of node not found." >&2 + [ $silent -ne 1 ] && echo "System version of node not found." >&2 return 127 fi elif [ "_$VERSION" = "_∞" ]; then - echo "The alias \"$PROVIDED_VERSION\" leads to an infinite loop. Aborting." >&2 + [ $silent -ne 1 ] && echo "The alias \"$PROVIDED_VERSION\" leads to an infinite loop. Aborting." >&2 return 8 fi From 98e40a8da582b49fb7dd9d4a7e178146a11f2beb Mon Sep 17 00:00:00 2001 From: Alan Quach Date: Thu, 9 Jul 2015 18:40:52 +1000 Subject: [PATCH 0497/1426] Expanding to full if statements because the shorthand results in non-zero exit codes --- nvm.sh | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/nvm.sh b/nvm.sh index 2377592..43d7795 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1470,17 +1470,25 @@ nvm() { if [ "_$VERSION" = '_system' ]; then if nvm_has_system_node && nvm deactivate >/dev/null 2>&1; then - [ $silent -ne 1 ] && echo "Now using system version of node: $(node -v 2>/dev/null)$(nvm_print_npm_version)" + if [ $silent -ne 1 ]; then + echo "Now using system version of node: $(node -v 2>/dev/null)$(nvm_print_npm_version)" + fi return elif nvm_has_system_iojs && nvm deactivate >/dev/null 2>&1; then - [ $silent -ne 1 ] && echo "Now using system version of io.js: $(iojs --version 2>/dev/null)$(nvm_print_npm_version)" + if [ $silent -ne 1 ]; then + echo "Now using system version of io.js: $(iojs --version 2>/dev/null)$(nvm_print_npm_version)" + fi return else - [ $silent -ne 1 ] && echo "System version of node not found." >&2 + if [ $silent -ne 1 ]; then + echo "System version of node not found." >&2 + fi return 127 fi elif [ "_$VERSION" = "_∞" ]; then - [ $silent -ne 1 ] && echo "The alias \"$PROVIDED_VERSION\" leads to an infinite loop. Aborting." >&2 + if [ $silent -ne 1 ]; then + echo "The alias \"$PROVIDED_VERSION\" leads to an infinite loop. Aborting." >&2 + fi return 8 fi @@ -1517,9 +1525,13 @@ nvm() { command rm -f "$NVM_DIR/current" && ln -s "$NVM_VERSION_DIR" "$NVM_DIR/current" fi if nvm_is_iojs_version "$VERSION"; then - [ $silent -ne 1 ] && echo "Now using io.js $(nvm_strip_iojs_prefix "$VERSION")$(nvm_print_npm_version)" + if [ $silent -ne 1 ]; then + echo "Now using io.js $(nvm_strip_iojs_prefix "$VERSION")$(nvm_print_npm_version)" + fi else - [ $silent -ne 1 ] && echo "Now using node $VERSION$(nvm_print_npm_version)" + if [ $silent -ne 1 ]; then + echo "Now using node $VERSION$(nvm_print_npm_version)" + fi fi ;; "run" ) From 657192dd27c0c0e39df894a82a7661bcc2e5fbc9 Mon Sep 17 00:00:00 2001 From: Alan Quach Date: Fri, 10 Jul 2015 10:27:35 +1000 Subject: [PATCH 0498/1426] Adding unit tests for --silent --- ...ning \"nvm use foo\" where \"foo\" is circular aborts" | 8 ++++++++ .../Running \"nvm use iojs\" uses latest io.js version" | 8 ++++++++ .../Running \"nvm use system\" should work as expected" | 5 +++++ .../Running \"nvm use iojs\" uses latest io.js version" | 6 ++++++ ...ning \"nvm use node\" uses latest stable node version" | 6 ++++++ ...ning \"nvm use v1.0.0\" uses iojs-v1.0.0 iojs version" | 6 ++++++ 6 files changed, 39 insertions(+) diff --git "a/test/fast/Running \"nvm use foo\" where \"foo\" is circular aborts" "b/test/fast/Running \"nvm use foo\" where \"foo\" is circular aborts" index 53f67fa..97c45eb 100755 --- "a/test/fast/Running \"nvm use foo\" where \"foo\" is circular aborts" +++ "b/test/fast/Running \"nvm use foo\" where \"foo\" is circular aborts" @@ -18,5 +18,13 @@ EXPECTED_OUTPUT='The alias "foo" leads to an infinite loop. Aborting.' EXIT_CODE="$(nvm use foo 2>/dev/null ; echo $?)" [ "_$EXIT_CODE" = "_8" ] || die "Expected exit code 8; got $EXIT_CODE" +OUTPUT="$(nvm use --silent foo 2>&1)" +EXPECTED_OUTPUT='' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ + || die "'nvm use --silent foo' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'" + +EXIT_CODE="$(nvm use --silent foo 2>/dev/null ; echo $?)" +[ "_$EXIT_CODE" = "_8" ] || die "Expected exit code 8 from 'nvm use --silent foo'; got $EXIT_CODE" + cleanup; diff --git "a/test/fast/Running \"nvm use iojs\" uses latest io.js version" "b/test/fast/Running \"nvm use iojs\" uses latest io.js version" index 53f67fa..97c45eb 100755 --- "a/test/fast/Running \"nvm use iojs\" uses latest io.js version" +++ "b/test/fast/Running \"nvm use iojs\" uses latest io.js version" @@ -18,5 +18,13 @@ EXPECTED_OUTPUT='The alias "foo" leads to an infinite loop. Aborting.' EXIT_CODE="$(nvm use foo 2>/dev/null ; echo $?)" [ "_$EXIT_CODE" = "_8" ] || die "Expected exit code 8; got $EXIT_CODE" +OUTPUT="$(nvm use --silent foo 2>&1)" +EXPECTED_OUTPUT='' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ + || die "'nvm use --silent foo' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'" + +EXIT_CODE="$(nvm use --silent foo 2>/dev/null ; echo $?)" +[ "_$EXIT_CODE" = "_8" ] || die "Expected exit code 8 from 'nvm use --silent foo'; got $EXIT_CODE" + cleanup; diff --git "a/test/fast/Running \"nvm use system\" should work as expected" "b/test/fast/Running \"nvm use system\" should work as expected" index 86a0955..4eb3319 100755 --- "a/test/fast/Running \"nvm use system\" should work as expected" +++ "b/test/fast/Running \"nvm use system\" should work as expected" @@ -8,10 +8,15 @@ nvm_has_system_node() { return 0; } nvm_print_npm_version() { return ' (npm v1.2.3)'; } EXPECTED_OUTPUT="Now using system version of node: $(node -v)$(nvm_print_npm_version)" [ "$(nvm use system 2>&1 | tail -n1)" = "$EXPECTED_OUTPUT" ] || die "Could not use system version of node" +EXPECTED_OUTPUT="" +[ "$(nvm use --silent system 2>&1 | tail -n1)" = "$EXPECTED_OUTPUT" ] || die "Could not use system version of node or --silent was not silent" nvm_has_system_node() { return 1; } nvm_print_npm_version() { return ''; } EXPECTED_OUTPUT="System version of node not found." [ "$(nvm use system 2>&1 | tail -n1)" = "$EXPECTED_OUTPUT" ] || die "Did not report error, system node not found" nvm use system 2>&1 > /dev/null || [ $? -eq 127 ] || die "Did not return error code, system node not found" +EXPECTED_OUTPUT="" +[ "$(nvm use --silent system 2>&1 | tail -n1)" = "$EXPECTED_OUTPUT" ] || die "Did not report error, system node not found or --silent was not silent" +nvm use --silent system 2>&1 > /dev/null || [ $? -eq 127 ] || die "Did not return error code, system node not found or --silent was not silent" diff --git "a/test/slow/nvm use/Running \"nvm use iojs\" uses latest io.js version" "b/test/slow/nvm use/Running \"nvm use iojs\" uses latest io.js version" index 5b867f3..506ff86 100755 --- "a/test/slow/nvm use/Running \"nvm use iojs\" uses latest io.js version" +++ "b/test/slow/nvm use/Running \"nvm use iojs\" uses latest io.js version" @@ -12,3 +12,9 @@ EXPECTED_OUTPUT="iojs-v1.0.1" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ || die "'nvm use iojs' + 'nvm current' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'" + +OUTPUT="$(nvm use --silent iojs)" +EXPECTED_OUTPUT="" + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ + || die "'nvm use --silent iojs' output was not silenced '$EXPECTED_OUTPUT'; got '$OUTPUT'" diff --git "a/test/slow/nvm use/Running \"nvm use node\" uses latest stable node version" "b/test/slow/nvm use/Running \"nvm use node\" uses latest stable node version" index 3514256..ce84bb6 100755 --- "a/test/slow/nvm use/Running \"nvm use node\" uses latest stable node version" +++ "b/test/slow/nvm use/Running \"nvm use node\" uses latest stable node version" @@ -12,3 +12,9 @@ EXPECTED_OUTPUT="$(nvm_version stable)" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ || die "'nvm use node' + 'nvm current' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'" + +OUTPUT="$(nvm use --silent node)" +EXPECTED_OUTPUT="" + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ + || die "'nvm use --silent node' output was not silenced '$EXPECTED_OUTPUT'; got '$OUTPUT'" diff --git "a/test/slow/nvm use/Running \"nvm use v1.0.0\" uses iojs-v1.0.0 iojs version" "b/test/slow/nvm use/Running \"nvm use v1.0.0\" uses iojs-v1.0.0 iojs version" index f2a2062..2416c79 100755 --- "a/test/slow/nvm use/Running \"nvm use v1.0.0\" uses iojs-v1.0.0 iojs version" +++ "b/test/slow/nvm use/Running \"nvm use v1.0.0\" uses iojs-v1.0.0 iojs version" @@ -12,3 +12,9 @@ EXPECTED_OUTPUT="$(nvm_version v1.0.0)" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ || die "'nvm use v1.0.0' + 'nvm current' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'" + +OUTPUT="$(nvm use --silent 'v1.0.0')" +EXPECTED_OUTPUT="" + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ + || die "'nvm use --silent v1.0.0' output was not silenced '$EXPECTED_OUTPUT'; got '$OUTPUT'" From 759f86f9460f84d09dec0c6e8f1ff4138152679c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 18 Jul 2015 09:31:07 -0700 Subject: [PATCH 0499/1426] Tweaking local variable name to avoid pollution under `ksh`. --- nvm.sh | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/nvm.sh b/nvm.sh index 43d7795..89dcecf 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1445,10 +1445,10 @@ nvm() { ;; "use" ) local PROVIDED_VERSION - local silent - silent=0 + local NVM_USE_SILENT + NVM_USE_SILENT=0 if [ "$2" = '--silent' ]; then - silent=1 + NVM_USE_SILENT=1 shift fi @@ -1470,23 +1470,23 @@ nvm() { if [ "_$VERSION" = '_system' ]; then if nvm_has_system_node && nvm deactivate >/dev/null 2>&1; then - if [ $silent -ne 1 ]; then + if [ $NVM_USE_SILENT -ne 1 ]; then echo "Now using system version of node: $(node -v 2>/dev/null)$(nvm_print_npm_version)" fi return elif nvm_has_system_iojs && nvm deactivate >/dev/null 2>&1; then - if [ $silent -ne 1 ]; then + if [ $NVM_USE_SILENT -ne 1 ]; then echo "Now using system version of io.js: $(iojs --version 2>/dev/null)$(nvm_print_npm_version)" fi return else - if [ $silent -ne 1 ]; then + if [ $NVM_USE_SILENT -ne 1 ]; then echo "System version of node not found." >&2 fi return 127 fi elif [ "_$VERSION" = "_∞" ]; then - if [ $silent -ne 1 ]; then + if [ $NVM_USE_SILENT -ne 1 ]; then echo "The alias \"$PROVIDED_VERSION\" leads to an infinite loop. Aborting." >&2 fi return 8 @@ -1525,11 +1525,11 @@ nvm() { command rm -f "$NVM_DIR/current" && ln -s "$NVM_VERSION_DIR" "$NVM_DIR/current" fi if nvm_is_iojs_version "$VERSION"; then - if [ $silent -ne 1 ]; then + if [ $NVM_USE_SILENT -ne 1 ]; then echo "Now using io.js $(nvm_strip_iojs_prefix "$VERSION")$(nvm_print_npm_version)" fi else - if [ $silent -ne 1 ]; then + if [ $NVM_USE_SILENT -ne 1 ]; then echo "Now using node $VERSION$(nvm_print_npm_version)" fi fi From f81b6d6b7be5fb9b997f9a7f78a2d72b96856216 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 18 Jul 2015 12:20:53 -0700 Subject: [PATCH 0500/1426] Update `semver` --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 956fae0..8cf0940 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "homepage": "https://github.com/creationix/nvm", "devDependencies": { "replace": "^0.3.0", - "semver": "^4.3.4", + "semver": "^5.0.1", "urchin": "^0.0.5" } } From c37dbbecb4881bc6030c35fa31725147f7bbe010 Mon Sep 17 00:00:00 2001 From: Cristian Consonni Date: Sun, 19 Jul 2015 02:01:06 +0200 Subject: [PATCH 0501/1426] Detect shell type from $SHELL variable instead of .$SHELLrc files --- install.sh | 42 +++++++++++++----- test/install_script/nvm_detect_profile | 60 ++++++++++++++++++++------ 2 files changed, 79 insertions(+), 23 deletions(-) diff --git a/install.sh b/install.sh index 16d8fe1..67bb71a 100755 --- a/install.sh +++ b/install.sh @@ -117,16 +117,38 @@ install_nvm_as_script() { # Otherwise, an empty string is returned # nvm_detect_profile() { - if [ -f "$PROFILE" ]; then - echo "$PROFILE" - elif [ -f "$HOME/.bashrc" ]; then - echo "$HOME/.bashrc" - elif [ -f "$HOME/.bash_profile" ]; then - echo "$HOME/.bash_profile" - elif [ -f "$HOME/.zshrc" ]; then - echo "$HOME/.zshrc" - elif [ -f "$HOME/.profile" ]; then - echo "$HOME/.profile" + + local DETECTED_PROFILE + DETECTED_PROFILE='' + local SHELLTYPE + SHELLTYPE="$(basename /$SHELL)" + + if [ $SHELLTYPE = "bash" ]; then + if [ -f "$HOME/.bashrc" ]; then + DETECTED_PROFILE="$HOME/.bashrc" + elif [ -f "$HOME/.bash_profile" ]; then + DETECTED_PROFILE="$HOME/.bash_profile" + fi + elif [ $SHELLTYPE = "zsh" ]; then + DETECTED_PROFILE="$HOME/.zshrc" + fi + + if [ -z $DETECTED_PROFILE ]; then + if [ -f "$PROFILE" ]; then + DETECTED_PROFILE="$PROFILE" + elif [ -f "$HOME/.profile" ]; then + DETECTED_PROFILE="$HOME/.profile" + elif [ -f "$HOME/.bashrc" ]; then + DETECTED_PROFILE="$HOME/.bashrc" + elif [ -f "$HOME/.bash_profile" ]; then + DETECTED_PROFILE="$HOME/.bash_profile" + elif [ -f "$HOME/.zshrc" ]; then + DETECTED_PROFILE="$HOME/.zshrc" + fi + fi + + if [ ! -z $DETECTED_PROFILE ]; then + echo "$DETECTED_PROFILE" fi } diff --git a/test/install_script/nvm_detect_profile b/test/install_script/nvm_detect_profile index 08aea82..8676bcf 100755 --- a/test/install_script/nvm_detect_profile +++ b/test/install_script/nvm_detect_profile @@ -22,46 +22,80 @@ HOME="." setup +#Let's force $SHELL to be bash +SHELL="/bin/bash" + +# $SHELL is set to bash and .bashrc is there, it must be detected +_PROFILE=$(nvm_detect_profile) +[ "_$_PROFILE" = "_$HOME/.bashrc" ] || echo "_\$HOME/.bashrc: _$HOME/.bashrc\n" \ + echo "_\$_PROFILE: _$_PROFILE\n" \ + die "nvm_detect_profile didn't pick $SHELL and $HOME/.bashrc" + +#Let's force $SHELL to be zsh +SHELL="/usr/bin/zsh" + +# $SHELL is set to zsh and .zshrc is there, it must be detected +_PROFILE=$(nvm_detect_profile) +[ "_$_PROFILE" = "_$HOME/.zshrc" ] || echo "_\$HOME/.zshrc: _$HOME/.zshrc\n" \ + echo "_\$_PROFILE: _$_PROFILE\n" \ + die "nvm_detect_profile didn't pick $SHELL and $HOME/.zshrc" + + +# if we unset shell it looks for the files +unset SHELL # $PROFILE points to a valid file, its path must be returned PROFILE="test_profile" _PROFILE=$(nvm_detect_profile) -[ "_$_PROFILE" = "_$PROFILE" ] || die "nvm_detect_profile didn't pick \$PROFILE" +[ "_$_PROFILE" = "_$PROFILE" ] || echo "_\$_PROFILE: _$_PROFILE\n" \ + echo "_\$PROFILE: _$PROFILE\n" \ + die "nvm_detect_profile didn't pick \$PROFILE" # $PROFILE doesn't point to a valid file, its path must not be returned PROFILE="invalid_profile" _PROFILE=$(nvm_detect_profile) -[ "_$_PROFILE" != "_$PROFILE" ] || die "nvm_detect_profile shouldn't pick \$PROFILE when it's not a valid file" +[ "_$_PROFILE" != "_$PROFILE" ] || echo "_\$_PROFILE: _$_PROFILE\n" \ + echo "_\$PROFILE: _$PROFILE\n" \ + die "nvm_detect_profile shouldn't pick \$PROFILE when it's not a valid file" # Below are tests for when $PROFILE is undefined rm test_profile unset PROFILE -# It should favor .bashrc if file exists +# It should favor .profile if file exists _PROFILE=$(nvm_detect_profile) -[ "_$_PROFILE" = "_$HOME/.bashrc" ] || die "nvm_detect_profile should have selected .bashrc" +[ "_$_PROFILE" = "_$HOME/.profile" ] || echo "_\$_PROFILE: _$_PROFILE\n" \ + echo "_\$PROFILE: _$PROFILE\n" \ + die "nvm_detect_profile should have selected .profile" + +rm .profile +# Otherwise, it should favor .bashrc if file exists +_PROFILE=$(nvm_detect_profile) +[ "_$_PROFILE" = "_$HOME/.bashrc" ] || echo "_\$_PROFILE: _$_PROFILE\n" \ + echo "_\$PROFILE: _$PROFILE\n" \ + die "nvm_detect_profile should have selected .bashrc" rm .bashrc # Otherwise, it should favor .bash_profile if file exists _PROFILE=$(nvm_detect_profile) -[ "_$_PROFILE" = "_$HOME/.bash_profile" ] || die "nvm_detect_profile should have selected .bash_profile" +[ "_$_PROFILE" = "_$HOME/.bash_profile" ] || echo "_\$_PROFILE: _$_PROFILE\n" \ + echo "_\$PROFILE: _$PROFILE\n" \ + die "nvm_detect_profile should have selected .bash_profile" rm .bash_profile # Otherwise, it should favor .zshrc if file exists _PROFILE=$(nvm_detect_profile) -[ "_$_PROFILE" = "_$HOME/.zshrc" ] || die "nvm_detect_profile should have selected .zshrc" +[ "_$_PROFILE" = "_$HOME/.zshrc" ] || echo "_\$_PROFILE: _$_PROFILE\n" \ + echo "_\$PROFILE: _$PROFILE\n" \ + die "nvm_detect_profile should have selected .zshrc" rm .zshrc -# Otherwise, it should favor .profile if file exists -_PROFILE=$(nvm_detect_profile) -[ "_$_PROFILE" = "_$HOME/.profile" ] || die "nvm_detect_profile should have selected .profile" - -rm .profile # It should be empty if none is found _PROFILE=$(nvm_detect_profile) -[ -z "$_PROFILE" ] || die "nvm_detect_profile should have echo'ed an empty value" +[ -z "$_PROFILE" ] || echo "_\$_PROFILE: _$_PROFILE\n" \ + echo "_\$PROFILE: _$PROFILE\n" \ + die "nvm_detect_profile should have echo'ed an empty value" cleanup - From d7035c5e61b0b9985d3280409632b09f3eef74c9 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 3 Aug 2015 16:41:47 -0700 Subject: [PATCH 0502/1426] Redirect stderr output from `npm ls -g` to /dev/null. Fixes #756. --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 89dcecf..e5b5c21 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1149,9 +1149,9 @@ nvm_npm_global_modules() { local VERSION VERSION="$1" if [ "_$VERSION" = "_system" ]; then - NPMLIST=$(nvm use system > /dev/null && npm list -g --depth=0 | command tail -n +2) + NPMLIST=$(nvm use system > /dev/null && npm list -g --depth=0 2> /dev/null | command tail -n +2) else - NPMLIST=$(nvm use "$VERSION" > /dev/null && npm list -g --depth=0 | command tail -n +2) + NPMLIST=$(nvm use "$VERSION" > /dev/null && npm list -g --depth=0 2> /dev/null | command tail -n +2) fi local INSTALLS From 3543cd5d2f1cf83e693db45b057a686c0b8b0e96 Mon Sep 17 00:00:00 2001 From: Rey Bango Date: Tue, 4 Aug 2015 15:19:38 -0400 Subject: [PATCH 0503/1426] Updated usage instructions to include --reinstall-packages-from syntax and example --- README.markdown | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.markdown b/README.markdown index d8d8a37..af4b882 100644 --- a/README.markdown +++ b/README.markdown @@ -76,6 +76,11 @@ In place of a version pointer like "0.10", you can use the special default alias nvm use stable nvm run unstable --version +If you want to install a new version of Node.js and migrate packages from a previous version: + + nvm install v0.10.40 --reinstall-packages-from=0.10.39 + nvm install v0.12.7 --reinstall-packages-from=0.12.6 + If you want to install [io.js](https://github.com/iojs/io.js/): nvm install iojs From b7a93be02e88c0020372b615dbc650c682df2531 Mon Sep 17 00:00:00 2001 From: Rey Bango Date: Tue, 4 Aug 2015 15:23:07 -0400 Subject: [PATCH 0504/1426] Updated to added npm to the text --- README.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index af4b882..d36f9ec 100644 --- a/README.markdown +++ b/README.markdown @@ -76,7 +76,7 @@ In place of a version pointer like "0.10", you can use the special default alias nvm use stable nvm run unstable --version -If you want to install a new version of Node.js and migrate packages from a previous version: +If you want to install a new version of Node.js and migrate npm packages from a previous version: nvm install v0.10.40 --reinstall-packages-from=0.10.39 nvm install v0.12.7 --reinstall-packages-from=0.12.6 From 071323847c4bc8419d28bd2cb48d3ecfb903df12 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 4 Aug 2015 14:03:57 -0700 Subject: [PATCH 0505/1426] Add `nvm version-remote`; document `nvm version` --- nvm.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index e5b5c21..cd2befd 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1193,6 +1193,8 @@ nvm() { echo " nvm ls List installed versions" echo " nvm ls List versions matching a given description" echo " nvm ls-remote List remote versions available for install" + echo " nvm version Resolve the given description to a single local version" + echo " nvm version-remote Resolve the given description to a single remote version" echo " nvm deactivate Undo effects of \`nvm\` on current shell" echo " nvm alias [] Show all aliases beginning with " echo " nvm alias Set an alias named pointing to " @@ -1851,7 +1853,10 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" echo "Cache cleared." ;; "version" ) - nvm_version $2 + nvm_version "$2" + ;; + "version-remote" ) + nvm_remote_version "$2" ;; "--version" ) echo "0.25.4" From d9662f138f713e7895babf743144764106494f55 Mon Sep 17 00:00:00 2001 From: Rey Bango Date: Tue, 4 Aug 2015 17:35:03 -0400 Subject: [PATCH 0506/1426] Updated based on feedback from @ljharb on syntax description and functionality --- README.markdown | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.markdown b/README.markdown index d36f9ec..f4efb2b 100644 --- a/README.markdown +++ b/README.markdown @@ -78,6 +78,12 @@ In place of a version pointer like "0.10", you can use the special default alias If you want to install a new version of Node.js and migrate npm packages from a previous version: + nvm install node --reinstall-packages-from=node + +This will first use "nvm version node" to identify the current version you're migrating packages from. Then it resolves the new version to install from the remote server and installs it. Lastly, it runs "nvm reinstall-packages" to reinstall the npm packages from your prior version of Node to the new one. + +You can also install and migrate npm packages from specific versions of Node like this: + nvm install v0.10.40 --reinstall-packages-from=0.10.39 nvm install v0.12.7 --reinstall-packages-from=0.12.6 @@ -85,6 +91,12 @@ If you want to install [io.js](https://github.com/iojs/io.js/): nvm install iojs +If you want to install a new version of io.js and migrate npm packages from a previous version: + + nvm install iojs --reinstall-packages-from=iojs + +The same guidelines mentioned for migrating npm packages in Node.js are applicable to io.js. + If you want to use the system-installed version of node, you can use the special default alias "system": nvm use system From fe1ed375202a7ae6c98ecf7ae583b28b073d03d9 Mon Sep 17 00:00:00 2001 From: Sequoia McDowell Date: Wed, 5 Aug 2015 22:26:17 -0400 Subject: [PATCH 0507/1426] Add usage string for --reinstall-packages-from --- nvm.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/nvm.sh b/nvm.sh index cd2befd..a62b85b 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1186,6 +1186,7 @@ nvm() { echo " nvm help Show this message" echo " nvm --version Print out the latest released version of nvm" echo " nvm install [-s] Download and install a , [-s] from source. Uses .nvmrc if available" + echo " --reinstall-packages-from= When installing, reinstall packages installed in " echo " nvm uninstall Uninstall a version" echo " nvm use [--silent] Modify PATH to use . Uses .nvmrc if available" echo " nvm run [] Run with as arguments. Uses .nvmrc if available for " From 3fcff872afbcf6a4081e1ac38a392060d555eb7f Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 5 Aug 2015 23:53:17 -0700 Subject: [PATCH 0508/1426] Add explanatory note for `` Per https://github.com/creationix/nvm/pull/797#discussion_r36379740 --- nvm.sh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/nvm.sh b/nvm.sh index a62b85b..376bf1d 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1179,9 +1179,18 @@ nvm() { case $1 in "help" ) + local NVM_IOJS_PREFIX + NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" + local NVM_NODE_PREFIX + NVM_NODE_PREFIX="$(nvm_node_prefix)" echo echo "Node Version Manager" echo + echo 'Note: refers to any version-like string nvm understands. This includes:' + echo ' - full or partial version numbers, starting with an optional "v" (0.10, v0.1.2, v1)' + echo " - default (built-in) aliases: $NVM_NODE_PREFIX, stable, unstable, $NVM_IOJS_PREFIX, system" + echo ' - custom aliases you define with `nvm alias foo`' + echo echo "Usage:" echo " nvm help Show this message" echo " nvm --version Print out the latest released version of nvm" From 17c68075e82a8fb2b67b99b940077a60f42519f2 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 5 Aug 2015 23:53:29 -0700 Subject: [PATCH 0509/1426] Use single quotes instead of double quotes for help output. --- nvm.sh | 58 +++++++++++++++++++++++++++++----------------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/nvm.sh b/nvm.sh index 376bf1d..9190fa7 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1191,37 +1191,37 @@ nvm() { echo " - default (built-in) aliases: $NVM_NODE_PREFIX, stable, unstable, $NVM_IOJS_PREFIX, system" echo ' - custom aliases you define with `nvm alias foo`' echo - echo "Usage:" - echo " nvm help Show this message" - echo " nvm --version Print out the latest released version of nvm" - echo " nvm install [-s] Download and install a , [-s] from source. Uses .nvmrc if available" - echo " --reinstall-packages-from= When installing, reinstall packages installed in " - echo " nvm uninstall Uninstall a version" - echo " nvm use [--silent] Modify PATH to use . Uses .nvmrc if available" - echo " nvm run [] Run with as arguments. Uses .nvmrc if available for " - echo " nvm current Display currently activated version" - echo " nvm ls List installed versions" - echo " nvm ls List versions matching a given description" - echo " nvm ls-remote List remote versions available for install" - echo " nvm version Resolve the given description to a single local version" - echo " nvm version-remote Resolve the given description to a single remote version" - echo " nvm deactivate Undo effects of \`nvm\` on current shell" - echo " nvm alias [] Show all aliases beginning with " - echo " nvm alias Set an alias named pointing to " - echo " nvm unalias Deletes the alias named " - echo " nvm reinstall-packages Reinstall global \`npm\` packages contained in to current version" - echo " nvm unload Unload \`nvm\` from shell" - echo " nvm which [] Display path to installed node version. Uses .nvmrc if available" + echo 'Usage:' + echo ' nvm help Show this message' + echo ' nvm --version Print out the latest released version of nvm' + echo ' nvm install [-s] Download and install a , [-s] from source. Uses .nvmrc if available' + echo ' --reinstall-packages-from= When installing, reinstall packages installed in ' + echo ' nvm uninstall Uninstall a version' + echo ' nvm use [--silent] Modify PATH to use . Uses .nvmrc if available' + echo ' nvm run [] Run with as arguments. Uses .nvmrc if available for ' + echo ' nvm current Display currently activated version' + echo ' nvm ls List installed versions' + echo ' nvm ls List versions matching a given description' + echo ' nvm ls-remote List remote versions available for install' + echo ' nvm version Resolve the given description to a single local version' + echo ' nvm version-remote Resolve the given description to a single remote version' + echo ' nvm deactivate Undo effects of `nvm` on current shell' + echo ' nvm alias [] Show all aliases beginning with ' + echo ' nvm alias Set an alias named pointing to ' + echo ' nvm unalias Deletes the alias named ' + echo ' nvm reinstall-packages Reinstall global `npm` packages contained in to current version' + echo ' nvm unload Unload `nvm` from shell' + echo ' nvm which [] Display path to installed node version. Uses .nvmrc if available' echo - echo "Example:" - echo " nvm install v0.10.32 Install a specific version number" - echo " nvm use 0.10 Use the latest available 0.10.x release" - echo " nvm run 0.10.32 app.js Run app.js using node v0.10.32" - echo " nvm exec 0.10.32 node app.js Run \`node app.js\` with the PATH pointing to node v0.10.32" - echo " nvm alias default 0.10.32 Set default node version on a shell" + echo 'Example:' + echo ' nvm install v0.10.32 Install a specific version number' + echo ' nvm use 0.10 Use the latest available 0.10.x release' + echo ' nvm run 0.10.32 app.js Run app.js using node v0.10.32' + echo ' nvm exec 0.10.32 node app.js Run `node app.js` with the PATH pointing to node v0.10.32' + echo ' nvm alias default 0.10.32 Set default node version on a shell' echo - echo "Note:" - echo " to remove, delete, or uninstall nvm - just remove ~/.nvm, ~/.npm, and ~/.bower folders" + echo 'Note:' + echo ' to remove, delete, or uninstall nvm - just remove the `$NVM_DIR` folder (usually `~/.nvm`)' echo ;; From 31e7d5b36a74c031fabb9f010951528f0ac204ed Mon Sep 17 00:00:00 2001 From: Haralan Dobrev Date: Mon, 10 Aug 2015 20:34:10 +0300 Subject: [PATCH 0510/1426] Use neither in README Correct usage of the [neither-nor](https://en.wiktionary.org/wiki/neither) construction. --- README.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.markdown b/README.markdown index f4efb2b..301172d 100644 --- a/README.markdown +++ b/README.markdown @@ -4,11 +4,11 @@ First you'll need to make sure your system has a c++ compiler. For OSX, XCode will work, for Ubuntu, the build-essential and libssl-dev packages work. -Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/nvm/issues/284)). Two alternatives exist, which are not supported nor developed by us: +Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/nvm/issues/284)). Two alternatives exist, which are neither supported nor developed by us: - [nvmw](https://github.com/hakobera/nvmw) - [nvm-windows](https://github.com/coreybutler/nvm-windows) -Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creationix/nvm/issues/303)). Two alternatives exist, which are not supported nor developed by us: +Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creationix/nvm/issues/303)). Two alternatives exist, which are neither supported nor developed by us: - [nvm-fish-wrapper](https://github.com/passcod/nvm-fish-wrapper) - [nvm-fish](https://github.com/Alex7Kom/nvm-fish) (does not support iojs) From 543b86c060b4cf30f2b1f83d5074f2966f1c53b0 Mon Sep 17 00:00:00 2001 From: Alexey Komarov Date: Thu, 13 Aug 2015 09:06:48 +0300 Subject: [PATCH 0511/1426] Replace links to nvm-fish and nvm-fish-wrapper with a link to bass --- README.markdown | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.markdown b/README.markdown index 301172d..9a302bf 100644 --- a/README.markdown +++ b/README.markdown @@ -8,9 +8,8 @@ Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/n - [nvmw](https://github.com/hakobera/nvmw) - [nvm-windows](https://github.com/coreybutler/nvm-windows) -Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creationix/nvm/issues/303)). Two alternatives exist, which are neither supported nor developed by us: - - [nvm-fish-wrapper](https://github.com/passcod/nvm-fish-wrapper) - - [nvm-fish](https://github.com/Alex7Kom/nvm-fish) (does not support iojs) +Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creationix/nvm/issues/303)). An alternative exists, which is neither supported nor developed by us: + - [bass](https://github.com/edc/bass) allows to use utilities written for Bash in fish shell ### Install script From 15876280f7c09494b661aa36e3090d9e3f3e1630 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 13 Aug 2015 17:09:22 -0700 Subject: [PATCH 0512/1426] Remove trailing whitespace. --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 67bb71a..bd4d690 100755 --- a/install.sh +++ b/install.sh @@ -249,7 +249,7 @@ nvm_do_install() { fi nvm_check_global_modules - + . $NVM_DIR/nvm.sh echo "=> You can now start using nvm" nvm_reset From 49abc9ce025757b36f3789c9234168323f2e1fe9 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 13 Aug 2015 17:10:08 -0700 Subject: [PATCH 0513/1426] v0.26.0 --- README.markdown | 6 +++--- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.markdown b/README.markdown index 9a302bf..eb9e418 100644 --- a/README.markdown +++ b/README.markdown @@ -15,11 +15,11 @@ Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creati To install you could use the [install script][2] using cURL: - curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.4/install.sh | bash + curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.26.0/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.25.4/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.26.0/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -236,7 +236,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.25.4/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.26.0/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index bd4d690..2ce9c7d 100755 --- a/install.sh +++ b/install.sh @@ -13,7 +13,7 @@ if [ -z "$NVM_DIR" ]; then fi nvm_latest_version() { - echo "v0.25.4" + echo "v0.26.0" } # diff --git a/nvm.sh b/nvm.sh index 9190fa7..82e2386 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1869,7 +1869,7 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" nvm_remote_version "$2" ;; "--version" ) - echo "0.25.4" + echo "0.26.0" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum \ diff --git a/package.json b/package.json index 8cf0940..3c1900d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.25.4", + "version": "0.26.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 58ffa407c2bcd03649d4f62504a5a4235a312657 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 15 Aug 2015 23:56:32 -0700 Subject: [PATCH 0514/1426] Prefixing more commands with `command` to bypass aliases. Related to #805 and #804. --- nvm.sh | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/nvm.sh b/nvm.sh index 82e2386..d5a62f7 100755 --- a/nvm.sh +++ b/nvm.sh @@ -24,7 +24,7 @@ nvm_get_latest() { if nvm_has "curl"; then NVM_LATEST_URL="$(curl -q -w "%{url_effective}\n" -L -s -S http://latest.nvm.sh -o /dev/null)" elif nvm_has "wget"; then - NVM_LATEST_URL="$(wget http://latest.nvm.sh --server-response -O /dev/null 2>&1 | awk '/^ Location: /{DEST=$2} END{ print DEST }')" + NVM_LATEST_URL="$(wget http://latest.nvm.sh --server-response -O /dev/null 2>&1 | command awk '/^ Location: /{DEST=$2} END{ print DEST }')" else >&2 echo 'nvm needs curl or wget to proceed.' return 1 @@ -33,7 +33,7 @@ nvm_get_latest() { >&2 echo "http://latest.nvm.sh did not redirect to the latest release on Github" return 2 else - echo "$NVM_LATEST_URL" | awk -F'/' '{print $NF}' + echo "$NVM_LATEST_URL" | command awk -F'/' '{print $NF}' fi } @@ -238,7 +238,7 @@ nvm_version() { PATTERN="stable" ;; esac - VERSION="$(nvm_ls "$PATTERN" | tail -n1)" + VERSION="$(nvm_ls "$PATTERN" | command tail -n1)" if [ -z "$VERSION" ] || [ "_$VERSION" = "_N/A" ]; then echo "N/A" return 3; @@ -254,14 +254,14 @@ nvm_remote_version() { if nvm_validate_implicit_alias "$PATTERN" 2> /dev/null ; then case "_$PATTERN" in "_$(nvm_iojs_prefix)") - VERSION="$(nvm_ls_remote_iojs | tail -n1)" + VERSION="$(nvm_ls_remote_iojs | command tail -n1)" ;; *) VERSION="$(nvm_ls_remote "$PATTERN")" ;; esac else - VERSION="$(nvm_remote_versions "$PATTERN" | tail -n1)" + VERSION="$(nvm_remote_versions "$PATTERN" | command tail -n1)" fi echo "$VERSION" if [ "_$VERSION" = '_N/A' ]; then @@ -317,7 +317,7 @@ nvm_is_valid_version() { } nvm_normalize_version() { - echo "${1#v}" | command awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }' + echo "${1#v}" | command awk -F. '{ command printf("%d%06d%06d\n", $1,$2,$3); }' } nvm_ensure_version_prefix() { @@ -441,7 +441,7 @@ nvm_resolve_alias() { fi if [ -n "$ALIAS_TEMP" ] \ - && printf "$SEEN_ALIASES" | command grep -e "^$ALIAS_TEMP$" > /dev/null; then + && command printf "$SEEN_ALIASES" | command grep -e "^$ALIAS_TEMP$" > /dev/null; then ALIAS="∞" break fi @@ -665,7 +665,7 @@ nvm_ls_remote() { local GREP_OPTIONS GREP_OPTIONS='' if nvm_validate_implicit_alias "$PATTERN" 2> /dev/null ; then - PATTERN="$(nvm_ls_remote "$(nvm_print_implicit_alias remote "$PATTERN")" | tail -n1)" + PATTERN="$(nvm_ls_remote "$(nvm_print_implicit_alias remote "$PATTERN")" | command tail -n1)" elif [ -n "$PATTERN" ]; then PATTERN="$(nvm_ensure_version_prefix "$PATTERN")" else @@ -674,7 +674,7 @@ nvm_ls_remote() { VERSIONS=`nvm_download -L -s $NVM_NODEJS_ORG_MIRROR/ -o - \ | \egrep -o 'v[0-9]+\.[0-9]+\.[0-9]+' \ | command grep -w "${PATTERN}" \ - | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n` + | command sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n` if [ -z "$VERSIONS" ]; then echo "N/A" return 3 @@ -757,7 +757,7 @@ nvm_print_versions() { else FORMAT='%15s' fi - printf "$FORMAT\n" $VERSION + command printf "$FORMAT\n" $VERSION done } @@ -814,7 +814,7 @@ nvm_print_implicit_alias() { fi local NVM_IOJS_VERSION - NVM_IOJS_VERSION="$($NVM_COMMAND | sed "s/^"$NVM_IMPLICIT"-//" | command grep -e '^v' | cut -c2- | cut -d . -f 1,2 | uniq | tail -1)" + NVM_IOJS_VERSION="$($NVM_COMMAND | sed "s/^"$NVM_IMPLICIT"-//" | command grep -e '^v' | command cut -c2- | command cut -d . -f 1,2 | uniq | command tail -1)" local EXIT_CODE EXIT_CODE="$?" @@ -841,7 +841,7 @@ nvm_print_implicit_alias() { setopt shwordsplit fi - LAST_TWO=$($NVM_COMMAND | command grep -e '^v' | cut -c2- | cut -d . -f 1,2 | uniq) + LAST_TWO=$($NVM_COMMAND | command grep -e '^v' | command cut -c2- | command cut -d . -f 1,2 | uniq) if [ $ZHS_HAS_SHWORDSPLIT_UNSET -eq 1 ] && nvm_has "unsetopt"; then unsetopt shwordsplit @@ -1693,7 +1693,7 @@ nvm() { local NVM_OUTPUT NVM_OUTPUT="$(echo "$NVM_LS_REMOTE_OUTPUT -$NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')" +$NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | command sed '/^$/d')" if [ -n "$NVM_OUTPUT" ]; then nvm_print_versions "$NVM_OUTPUT" return $NVM_LS_REMOTE_EXIT_CODE || $NVM_LS_REMOTE_IOJS_EXIT_CODE From b7e2d7d24dded00fd1870e18ce5eabaedf5efab4 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 16 Aug 2015 18:08:50 -0700 Subject: [PATCH 0515/1426] Oops, the string passed to `awk` isn't the same as a shell command. Fixes #808. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index d5a62f7..dc6ade4 100755 --- a/nvm.sh +++ b/nvm.sh @@ -317,7 +317,7 @@ nvm_is_valid_version() { } nvm_normalize_version() { - echo "${1#v}" | command awk -F. '{ command printf("%d%06d%06d\n", $1,$2,$3); }' + echo "${1#v}" | command awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }' } nvm_ensure_version_prefix() { From 8746d63041e48cac250aed752ef0bfb9a95fd1ba Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 22 Aug 2015 09:45:49 -0700 Subject: [PATCH 0516/1426] Ensure after node v4.0 is released, `stable` will simply refer to the latest node. --- nvm.sh | 14 +++++--- .../nvm_print_implicit_alias success | 36 +++++++++++++++++++ 2 files changed, 46 insertions(+), 4 deletions(-) diff --git a/nvm.sh b/nvm.sh index dc6ade4..a247d93 100755 --- a/nvm.sh +++ b/nvm.sh @@ -852,6 +852,7 @@ nvm_print_implicit_alias() { local STABLE local UNSTABLE local MOD + local NORMALIZED_VERSION ZHS_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then @@ -859,11 +860,16 @@ nvm_print_implicit_alias() { setopt shwordsplit fi for MINOR in $LAST_TWO; do - MOD=$(expr "$(nvm_normalize_version "$MINOR")" \/ 1000000 \% 2) - if [ $MOD -eq 0 ]; then + NORMALIZED_VERSION="$(nvm_normalize_version "$MINOR")" + if [ "_0${NORMALIZED_VERSION#?}" != "_$NORMALIZED_VERSION" ]; then STABLE="$MINOR" - elif [ $MOD -eq 1 ]; then - UNSTABLE="$MINOR" + else + MOD=$(expr "$NORMALIZED_VERSION" \/ 1000000 \% 2) + if [ $MOD -eq 0 ]; then + STABLE="$MINOR" + elif [ $MOD -eq 1 ]; then + UNSTABLE="$MINOR" + fi fi done if [ $ZHS_HAS_SHWORDSPLIT_UNSET -eq 1 ] && nvm_has "unsetopt"; then diff --git a/test/fast/Unit tests/nvm_print_implicit_alias success b/test/fast/Unit tests/nvm_print_implicit_alias success index 1439844..425350f 100755 --- a/test/fast/Unit tests/nvm_print_implicit_alias success +++ b/test/fast/Unit tests/nvm_print_implicit_alias success @@ -8,6 +8,8 @@ cleanup() { rm -rf ../../../v0.5.7 rm -rf ../../../v0.7.7 rm -rf ../../../versions/io.js/v0.98.0 + rm -rf ../../../versions/node/v1.0.0 + rm -rf ../../../versions/node/v1.1.0 unset -f nvm_ls_remote nvm_ls_remote_iojs } @@ -32,6 +34,17 @@ LATEST_UNSTABLE="$(nvm_print_implicit_alias local unstable)" LATEST_IOJS="$(nvm_print_implicit_alias local iojs)" [ "_$LATEST_IOJS" = "_iojs-v0.98" ] || die "local iojs is not latest iojs: expected iojs-v0.98, got $LATEST_IOJS" +## node post v1.0/io.js merger ## +mkdir -p ../../../versions/node/v1.0.0 +mkdir -p ../../../versions/node/v1.1.0 + +LATEST_STABLE="$(nvm_print_implicit_alias local stable)" +[ "_$LATEST_STABLE" = "_1.1" ] || die "local stable when post-v1.0 exists is not latest: expected 1.1, got $LATEST_STABLE" + +LATEST_UNSTABLE="$(nvm_print_implicit_alias local unstable)" +[ "_$LATEST_UNSTABLE" = "_0.7" ] || die "local unstable is not latest pre-v1.0 odd minor: expected 0.7, got $LATEST_UNSTABLE" +## ** ## + nvm_ls_remote() { echo "v0.4.3" echo "v0.5.4" @@ -65,5 +78,28 @@ LATEST_UNSTABLE="$(nvm_print_implicit_alias remote unstable)" LATEST_IOJS="$(nvm_print_implicit_alias remote iojs)" [ "_$LATEST_IOJS" = "_iojs-v0.99" ] || die "remote iojs is not latest: expected iojs-v0.99, got $LATEST_IOJS" +## node post v1.0/io.js merger ## +nvm_ls_remote() { + echo "v0.4.3" + echo "v0.5.4" + echo "v0.6.6" + echo "v0.7.7" + echo "v0.9.7" + echo "v0.4.3" + echo "v0.5.4" + echo "v0.6.6" + echo "v0.7.7" + echo "v0.9.7" + echo "v1.0.0" + echo "v1.1.0" +} + +LATEST_STABLE="$(nvm_print_implicit_alias remote stable)" +[ "_$LATEST_STABLE" = "_1.1" ] || die "remote stable when post-v1.0 exists is not latest: expected 1.1, got $LATEST_STABLE" + +LATEST_UNSTABLE="$(nvm_print_implicit_alias remote unstable)" +[ "_$LATEST_UNSTABLE" = "_0.9" ] || die "remote unstable is not latest odd pre-v1.0 minor: expected 0.9, got $LATEST_UNSTABLE" +## ** ## + cleanup From 26ee4aafc030505d668d23a0df6c44c8f1e4529e Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 22 Aug 2015 20:54:31 -0700 Subject: [PATCH 0517/1426] v0.26.1 --- README.markdown | 6 +++--- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.markdown b/README.markdown index eb9e418..e710350 100644 --- a/README.markdown +++ b/README.markdown @@ -15,11 +15,11 @@ Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creati To install you could use the [install script][2] using cURL: - curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.26.0/install.sh | bash + curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.26.1/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.26.0/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.26.1/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -236,7 +236,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.26.0/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.26.1/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index 2ce9c7d..2996b57 100755 --- a/install.sh +++ b/install.sh @@ -13,7 +13,7 @@ if [ -z "$NVM_DIR" ]; then fi nvm_latest_version() { - echo "v0.26.0" + echo "v0.26.1" } # diff --git a/nvm.sh b/nvm.sh index a247d93..9683082 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1875,7 +1875,7 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | command sed '/^$/d')" nvm_remote_version "$2" ;; "--version" ) - echo "0.26.0" + echo "0.26.1" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum \ diff --git a/package.json b/package.json index 3c1900d..99a9718 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.26.0", + "version": "0.26.1", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From f34fef96d8ab3d7e6fba3574d122177de1140a88 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 23 Aug 2015 22:09:31 -0700 Subject: [PATCH 0518/1426] Add `nvm_is_merged_node_version` --- nvm.sh | 4 ++++ test/fast/Unit tests/nvm_is_merged_node_version | 10 ++++++++++ 2 files changed, 14 insertions(+) create mode 100755 test/fast/Unit tests/nvm_is_merged_node_version diff --git a/nvm.sh b/nvm.sh index 9683082..c6123ea 100755 --- a/nvm.sh +++ b/nvm.sh @@ -927,6 +927,10 @@ nvm_ensure_default_set() { return $EXIT_CODE } +nvm_is_merged_node_version() { + nvm_version_greater_than_or_equal_to "$1" v4.0.0 +} + nvm_install_iojs_binary() { local NVM_IOJS_TYPE NVM_IOJS_TYPE="$1" diff --git a/test/fast/Unit tests/nvm_is_merged_node_version b/test/fast/Unit tests/nvm_is_merged_node_version new file mode 100755 index 0000000..7cf5334 --- /dev/null +++ b/test/fast/Unit tests/nvm_is_merged_node_version @@ -0,0 +1,10 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +nvm_is_merged_node_version '4.0' || die '"nvm_is_merged_node_version 4.0 was not true' +nvm_is_merged_node_version '5.1' || die '"nvm_is_merged_node_version 5.1 was not true' +! nvm_is_merged_node_version '3.99' || die '"nvm_is_merged_node_version 3.99 was not false' +! nvm_is_merged_node_version 'v1.0.0' || die '"nvm_is_merged_node_version v1.0.0" was not false' From 0181821b51609fe20ef72f8bf45523fe317be81a Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 22 Aug 2015 22:09:04 -0700 Subject: [PATCH 0519/1426] Add `nvm_install_merged_node_binary` --- nvm.sh | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/nvm.sh b/nvm.sh index c6123ea..e5acda4 100755 --- a/nvm.sh +++ b/nvm.sh @@ -931,6 +931,71 @@ nvm_is_merged_node_version() { nvm_version_greater_than_or_equal_to "$1" v4.0.0 } +nvm_install_merged_node_binary() { + local NVM_NODE_TYPE + NVM_NODE_TYPE="$1" + local MIRROR + if [ "_$NVM_NODE_TYPE" = "_std" ]; then + MIRROR="$NVM_NODEJS_ORG_MIRROR" + else + echo "unknown type of node.js release" >&2 + return 4 + fi + local VERSION + VERSION="$2" + local REINSTALL_PACKAGES_FROM + REINSTALL_PACKAGES_FROM="$3" + + if nvm_is_merged_node_version "$VERSION" || nvm_is_iojs_version "$VERSION"; then + echo 'nvm_install_merged_node_binary requires a node version v4.0 or greater.' >&2 + return 10 + fi + + local VERSION_PATH + VERSION_PATH="$(nvm_version_path "$VERSION")" + local NVM_OS + NVM_OS="$(nvm_get_os)" + local t + local url + local sum + local NODE_PREFIX + NODE_PREFIX="$(nvm_node_prefix)" + + if [ -n "$NVM_OS" ]; then + t="$VERSION-$NVM_OS-$(nvm_get_arch)" + url="$MIRROR/$VERSION/$NODE_PREFIX-${t}.tar.gz" + sum="$(nvm_download -L -s $MIRROR/$VERSION/SHASUMS256.txt -o - | command grep $NODE_PREFIX-${t}.tar.gz | command awk '{print $1}')" + local tmpdir + tmpdir="$NVM_DIR/bin/node-${t}" + local tmptarball + tmptarball="$tmpdir/node-${t}.tar.gz" + local NVM_INSTALL_ERRORED + command mkdir -p "$tmpdir" && \ + nvm_download -L -C - --progress-bar $url -o "$tmptarball" || \ + NVM_INSTALL_ERRORED=true + if grep '404 Not Found' "$tmptarball" >/dev/null; then + NVM_INSTALL_ERRORED=true + echo >&2 "HTTP 404 at URL $url"; + fi + if ( + [ "$NVM_INSTALL_ERRORED" != true ] && \ + echo "WARNING: checksums are currently disabled for node.js v4.0 and later" >&2 && \ + # nvm_checksum "$tmptarball" $sum && \ + command tar -xzf "$tmptarball" -C "$tmpdir" --strip-components 1 && \ + command rm -f "$tmptarball" && \ + command mkdir -p "$VERSION_PATH" && \ + command mv "$tmpdir"/* "$VERSION_PATH" + ); then + return 0 + else + echo >&2 "Binary download failed, trying source." >&2 + command rm -rf "$tmptarball" "$tmpdir" + return 1 + fi + fi + return 2 +} + nvm_install_iojs_binary() { local NVM_IOJS_TYPE NVM_IOJS_TYPE="$1" From 0d898b0aa478cf86ea7afb6a733e8d2ff6ae75dd Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 22 Aug 2015 22:10:33 -0700 Subject: [PATCH 0520/1426] When `node` version is not io.js and is v1.0 or later, on `nvm install`, run `nvm_install_merged_node_binary` --- nvm.sh | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index e5acda4..9602c04 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1398,9 +1398,12 @@ nvm() { return 5 fi + local NVM_NODE_MERGED local NVM_IOJS if nvm_is_iojs_version "$VERSION"; then NVM_IOJS=true + elif nvm_is_merged_node_version "$VERSION"; then + NVM_NODE_MERGED=true fi local VERSION_PATH @@ -1416,7 +1419,7 @@ nvm() { if [ "_$NVM_OS" = "_freebsd" ]; then # node.js and io.js do not have a FreeBSD binary nobinary=1 - elif [ "_$NVM_OS" = "_sunos" ] && [ "$NVM_IOJS" = true ]; then + elif [ "_$NVM_OS" = "_sunos" ] && [ "$NVM_IOJS" = true ] || [ "$NVM_NODE_MERGED" = true ]; then # io.js does not have a SunOS binary nobinary=1 fi @@ -1425,6 +1428,8 @@ nvm() { if [ $nobinary -ne 1 ] && nvm_binary_available "$VERSION"; then if [ "$NVM_IOJS" = true ] && nvm_install_iojs_binary std "$VERSION" "$REINSTALL_PACKAGES_FROM"; then NVM_INSTALL_SUCCESS=true + elif [ "$NVM_NODE_MERGED" = true ] && nvm_install_merged_node_binary std "$VERSION" "$REINSTALL_PACKAGES_FROM"; then + NVM_INSTALL_SUCCESS=true elif [ "$NVM_IOJS" != true ] && nvm_install_node_binary "$VERSION" "$REINSTALL_PACKAGES_FROM"; then NVM_INSTALL_SUCCESS=true fi @@ -1434,6 +1439,10 @@ nvm() { # nvm_install_iojs_source "$VERSION" "$ADDITIONAL_PARAMETERS" echo "Installing iojs from source is not currently supported" >&2 return 105 + elif [ "$NVM_NODE_MERGED" = true ]; then + # nvm_install_merged_node_source "$VERSION" "$ADDITIONAL_PARAMETERS" + echo "Installing node v1.0 and greater from source is not currently supported" >&2 + return 106 elif nvm_install_node_source "$VERSION" "$ADDITIONAL_PARAMETERS"; then NVM_INSTALL_SUCCESS=true fi From 0ef20199dcf6d4a21226a66cb8eccf23c6e16c7a Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 7 Sep 2015 21:43:21 +0900 Subject: [PATCH 0521/1426] Use `NVM_VERSION` instead of `VERSION` to be a bit less intrusive. Fixes #820. --- nvm.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/nvm.sh b/nvm.sh index 9602c04..a68a0c7 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1992,15 +1992,15 @@ nvm_supports_source_options() { [ "_$(echo 'echo $1' | . /dev/stdin yes 2> /dev/null)" = "_yes" ] } -VERSION="$(nvm_alias default 2>/dev/null || echo)" +NVM_VERSION="$(nvm_alias default 2>/dev/null || echo)" if nvm_supports_source_options && [ "_$1" = "_--install" ]; then - if [ -n "$VERSION" ]; then - nvm install "$VERSION" >/dev/null + if [ -n "$NVM_VERSION" ]; then + nvm install "$NVM_VERSION" >/dev/null elif nvm_rc_version >/dev/null 2>&1; then nvm install >/dev/null fi -elif [ -n "$VERSION" ]; then - nvm use --silent "$VERSION" >/dev/null +elif [ -n "$NVM_VERSION" ]; then + nvm use --silent "$NVM_VERSION" >/dev/null elif nvm_rc_version >/dev/null 2>&1; then nvm use --silent >/dev/null fi From d4caf9fb670435a184a40242e6c215021187b46a Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 9 Sep 2015 09:46:39 +0900 Subject: [PATCH 0522/1426] Fix some logic errors in the new "merged node" code path. --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index a68a0c7..2481f55 100755 --- a/nvm.sh +++ b/nvm.sh @@ -946,7 +946,7 @@ nvm_install_merged_node_binary() { local REINSTALL_PACKAGES_FROM REINSTALL_PACKAGES_FROM="$3" - if nvm_is_merged_node_version "$VERSION" || nvm_is_iojs_version "$VERSION"; then + if ! nvm_is_merged_node_version "$VERSION" || nvm_is_iojs_version "$VERSION"; then echo 'nvm_install_merged_node_binary requires a node version v4.0 or greater.' >&2 return 10 fi @@ -1419,7 +1419,7 @@ nvm() { if [ "_$NVM_OS" = "_freebsd" ]; then # node.js and io.js do not have a FreeBSD binary nobinary=1 - elif [ "_$NVM_OS" = "_sunos" ] && [ "$NVM_IOJS" = true ] || [ "$NVM_NODE_MERGED" = true ]; then + elif [ "_$NVM_OS" = "_sunos" ] && ([ "$NVM_IOJS" = true ] || [ "$NVM_NODE_MERGED" = true ]); then # io.js does not have a SunOS binary nobinary=1 fi From 1e2a7a8de447c9b872fbf4cbe6c959cfc8d02a55 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 9 Sep 2015 22:23:22 +0900 Subject: [PATCH 0523/1426] Sort `nvm ls-remote` output so the order is: "pre-merged", "iojs", "post-merged". --- nvm.sh | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/nvm.sh b/nvm.sh index 2481f55..06457a5 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1759,10 +1759,16 @@ nvm() { local NVM_LS_REMOTE_EXIT_CODE NVM_LS_REMOTE_EXIT_CODE=0 - local NVM_LS_REMOTE_OUTPUT - NVM_LS_REMOTE_OUTPUT='' + local NVM_LS_REMOTE_PRE_MERGED_OUTPUT + NVM_LS_REMOTE_PRE_MERGED_OUTPUT='' + local NVM_LS_REMOTE_POST_MERGED_OUTPUT + NVM_LS_REMOTE_POST_MERGED_OUTPUT='' if [ "_$NVM_FLAVOR" != "_$NVM_IOJS_PREFIX" ]; then + local NVM_LS_REMOTE_OUTPUT NVM_LS_REMOTE_OUTPUT=$(nvm_ls_remote "$PATTERN") + # split output into two + NVM_LS_REMOTE_PRE_MERGED_OUTPUT="${NVM_LS_REMOTE_OUTPUT%%v4\.0\.0*}" + NVM_LS_REMOTE_POST_MERGED_OUTPUT="${NVM_LS_REMOTE_OUTPUT#$NVM_LS_REMOTE_PRE_MERGED_OUTPUT}" NVM_LS_REMOTE_EXIT_CODE=$? fi @@ -1776,8 +1782,9 @@ nvm() { fi local NVM_OUTPUT - NVM_OUTPUT="$(echo "$NVM_LS_REMOTE_OUTPUT -$NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | command sed '/^$/d')" + NVM_OUTPUT="$(echo "$NVM_LS_REMOTE_PRE_MERGED_OUTPUT +$NVM_LS_REMOTE_IOJS_OUTPUT +$NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d')" if [ -n "$NVM_OUTPUT" ]; then nvm_print_versions "$NVM_OUTPUT" return $NVM_LS_REMOTE_EXIT_CODE || $NVM_LS_REMOTE_IOJS_EXIT_CODE From c92effc6dabe8fc85252909e24ee49cbea89f3e7 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 9 Sep 2015 22:38:54 +0900 Subject: [PATCH 0524/1426] Don't double-print *default* alias resolutions either. --- nvm.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 06457a5..d356ee7 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1868,7 +1868,11 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' DEST="$(nvm_print_implicit_alias local "$ALIAS")" if [ "_$DEST" != "_" ]; then VERSION="$(nvm_version "$DEST")" - echo "$ALIAS -> $DEST (-> $VERSION) (default)" + if [ "_$DEST" = "_$VERSION" ]; then + echo "$ALIAS -> $DEST (default)" + else + echo "$ALIAS -> $DEST (-> $VERSION) (default)" + fi fi fi fi From c9215a127feae213e9b09ca660f27801b0c52611 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 9 Sep 2015 22:37:32 +0900 Subject: [PATCH 0525/1426] When no `io.js` versions are installed, show `N/A`, not `io.js-`, as the resolved default alias. Fixes #822. --- nvm.sh | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index d356ee7..97251dd 100755 --- a/nvm.sh +++ b/nvm.sh @@ -814,15 +814,22 @@ nvm_print_implicit_alias() { fi local NVM_IOJS_VERSION - NVM_IOJS_VERSION="$($NVM_COMMAND | sed "s/^"$NVM_IMPLICIT"-//" | command grep -e '^v' | command cut -c2- | command cut -d . -f 1,2 | uniq | command tail -1)" local EXIT_CODE + NVM_IOJS_VERSION="$($NVM_COMMAND)" EXIT_CODE="$?" + if [ "_$EXIT_CODE" = "_0" ]; then + NVM_IOJS_VERSION="$(echo "$NVM_IOJS_VERSION" | sed "s/^"$NVM_IMPLICIT"-//" | command grep -e '^v' | command cut -c2- | command cut -d . -f 1,2 | uniq | command tail -1)" + fi if [ $ZHS_HAS_SHWORDSPLIT_UNSET -eq 1 ] && nvm_has "unsetopt"; then unsetopt shwordsplit fi - echo "$($NVM_ADD_PREFIX_COMMAND "$NVM_IOJS_VERSION")" + if [ "_$NVM_IOJS_VERSION" = "_N/A" ]; then + echo "N/A" + else + echo "$($NVM_ADD_PREFIX_COMMAND "$NVM_IOJS_VERSION")" + fi return $EXIT_CODE ;; "$NVM_NODE_PREFIX") From 014a44e15408ddcd6dc8c2ed9f781b2bfbd084d0 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 10 Sep 2015 22:37:50 +0900 Subject: [PATCH 0526/1426] Minor refactoring to "install from source" logic tree. --- nvm.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index 97251dd..7f69db9 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1442,7 +1442,11 @@ nvm() { fi fi if [ "$NVM_INSTALL_SUCCESS" != true ]; then - if [ "$NVM_IOJS" = true ]; then + if [ "$NVM_IOJS" != true ] && [ "$NVM_NODE_MERGED" != true ]; then + if nvm_install_node_source "$VERSION" "$ADDITIONAL_PARAMETERS"; then + NVM_INSTALL_SUCCESS=true + fi + elif [ "$NVM_IOJS" = true ]; then # nvm_install_iojs_source "$VERSION" "$ADDITIONAL_PARAMETERS" echo "Installing iojs from source is not currently supported" >&2 return 105 @@ -1450,8 +1454,6 @@ nvm() { # nvm_install_merged_node_source "$VERSION" "$ADDITIONAL_PARAMETERS" echo "Installing node v1.0 and greater from source is not currently supported" >&2 return 106 - elif nvm_install_node_source "$VERSION" "$ADDITIONAL_PARAMETERS"; then - NVM_INSTALL_SUCCESS=true fi fi From e3528b0d9e7d523b7294c9f5f67e416c85207fb8 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 11 Sep 2015 10:42:47 +0900 Subject: [PATCH 0527/1426] Fix `nvm_ensure_version_installed iojs` to not print an empty string for the version. --- nvm.sh | 4 +++- test/fast/Unit tests/nvm_ensure_version_installed | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 7f69db9..df214e9 100755 --- a/nvm.sh +++ b/nvm.sh @@ -210,7 +210,9 @@ nvm_ensure_version_installed() { if [ $? -eq 0 ]; then echo "N/A: version \"$PROVIDED_VERSION -> $VERSION\" is not yet installed" >&2 else - echo "N/A: version \"$(nvm_ensure_version_prefix "$PROVIDED_VERSION")\" is not yet installed" >&2 + local PREFIXED_VERSION + PREFIXED_VERSION="$(nvm_ensure_version_prefix "$PROVIDED_VERSION")" + echo "N/A: version \"${PREFIXED_VERSION:-$PROVIDED_VERSION}\" is not yet installed" >&2 fi return 1 fi diff --git a/test/fast/Unit tests/nvm_ensure_version_installed b/test/fast/Unit tests/nvm_ensure_version_installed index ed2d996..492cc95 100755 --- a/test/fast/Unit tests/nvm_ensure_version_installed +++ b/test/fast/Unit tests/nvm_ensure_version_installed @@ -20,4 +20,11 @@ EXIT_CODE=$? [ "_$OUTPUT" = "_" ] || die "expected 'nvm_ensure_version_installed 0.1' to have no output, got $OUTPUT" [ "_$EXIT_CODE" = "_0" ] || die "expected 'nvm_ensure_version_installed 0.1' to exit with 0, got $EXIT_CODE" +# Special case for "iojs" +OUTPUT="$(nvm_ensure_version_installed iojs 2>&1)" +EXIT_CODE=$? +EXPECTED_OUTPUT='N/A: version "iojs" is not yet installed' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "expected 'nvm_ensure_version_installed iojs' to give $EXPECTED_OUTPUT, got $OUTPUT" +[ "_$EXIT_CODE" = "_1" ] || die "expected 'nvm_ensure_version_installed iojs' to exit with 1, got $EXIT_CODE" + cleanup From bda1d2ec2903ea738413a8724df00ee30c0b398b Mon Sep 17 00:00:00 2001 From: Luke Childs Date: Sat, 12 Sep 2015 23:05:56 +0100 Subject: [PATCH 0528/1426] Revert "Source the nvm.sh file" Fixes #826 This reverts commit b4151e1446f36d534a8a98e6876d293e05317173. --- install.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 2996b57..3774bb2 100755 --- a/install.sh +++ b/install.sh @@ -250,8 +250,7 @@ nvm_do_install() { nvm_check_global_modules - . $NVM_DIR/nvm.sh - echo "=> You can now start using nvm" + echo "=> Close and reopen your terminal to start using nvm" nvm_reset } From 9e389eb9feaaeccb0ef008202315ed86faf0ec88 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 19 Sep 2015 13:37:08 +0900 Subject: [PATCH 0529/1426] Attempt to fix #829. --- nvm.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nvm.sh b/nvm.sh index df214e9..ad6e630 100755 --- a/nvm.sh +++ b/nvm.sh @@ -558,6 +558,9 @@ nvm_ls() { PATTERN=$(nvm_ensure_version_prefix $PATTERN) ;; esac + if [ "_$PATTERN" = "_N/A" ]; then + return + fi # If it looks like an explicit version, don't do anything funny local NVM_PATTERN_STARTS_WITH_V case $PATTERN in From 6e894520ec5f2323ac321d970b5781a13c63f0b6 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 19 Sep 2015 22:55:19 +0900 Subject: [PATCH 0530/1426] Use a tighter `grep` to avoid `dnvm.sh` conflicts. Fixes #838. --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 3774bb2..1738380 100755 --- a/install.sh +++ b/install.sh @@ -240,7 +240,7 @@ nvm_do_install() { printf "$SOURCE_STR" echo else - if ! grep -qc 'nvm.sh' "$NVM_PROFILE"; then + if ! command grep -qc '/nvm.sh' "$NVM_PROFILE"; then echo "=> Appending source string to $NVM_PROFILE" printf "$SOURCE_STR\n" >> "$NVM_PROFILE" else From 643365a9481b8ae10635c4a68390820ad285a0ae Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 20 Sep 2015 19:45:53 -0700 Subject: [PATCH 0531/1426] Allow `--silent` option to `nvm use` to be in any position. --- nvm.sh | 18 +++++++++++++----- ...\"nvm use iojs\" uses latest io.js version" | 8 ++++++++ 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/nvm.sh b/nvm.sh index ad6e630..eb03559 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1557,19 +1557,27 @@ nvm() { local PROVIDED_VERSION local NVM_USE_SILENT NVM_USE_SILENT=0 - if [ "$2" = '--silent' ]; then - NVM_USE_SILENT=1 + shift # remove "use" + while [ $# -ne 0 ] + do + case "$1" in + --silent) NVM_USE_SILENT=1 ;; + *) + if [ -n "$1" ]; then + PROVIDED_VERSION="$1" + fi + ;; + esac shift - fi + done - if [ $# -eq 1 ]; then + if [ -z "$PROVIDED_VERSION" ]; then nvm_rc_version if [ -n "$NVM_RC_VERSION" ]; then PROVIDED_VERSION="$NVM_RC_VERSION" VERSION="$(nvm_version "$PROVIDED_VERSION")" fi else - PROVIDED_VERSION="$2" VERSION="$(nvm_match_version "$PROVIDED_VERSION")" fi diff --git "a/test/fast/Running \"nvm use iojs\" uses latest io.js version" "b/test/fast/Running \"nvm use iojs\" uses latest io.js version" index 97c45eb..edee505 100755 --- "a/test/fast/Running \"nvm use iojs\" uses latest io.js version" +++ "b/test/fast/Running \"nvm use iojs\" uses latest io.js version" @@ -23,8 +23,16 @@ EXPECTED_OUTPUT='' [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ || die "'nvm use --silent foo' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'" +OUTPUT="$(nvm use foo --silent 2>&1)" +EXPECTED_OUTPUT='' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ + || die "'nvm use foo --silent' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'" + EXIT_CODE="$(nvm use --silent foo 2>/dev/null ; echo $?)" [ "_$EXIT_CODE" = "_8" ] || die "Expected exit code 8 from 'nvm use --silent foo'; got $EXIT_CODE" +EXIT_CODE="$(nvm use foo --silent 2>/dev/null ; echo $?)" +[ "_$EXIT_CODE" = "_8" ] || die "Expected exit code 8 from 'nvm use foo --silent'; got $EXIT_CODE" + cleanup; From c64a0343afff1825fc5fbe69596f8c4610003f6d Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 23 Sep 2015 04:51:40 -0700 Subject: [PATCH 0532/1426] [Docs] Add `nvm help` documentation for `nvm exec` --- nvm.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index eb03559..9170ef3 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1285,7 +1285,8 @@ nvm() { echo ' --reinstall-packages-from= When installing, reinstall packages installed in ' echo ' nvm uninstall Uninstall a version' echo ' nvm use [--silent] Modify PATH to use . Uses .nvmrc if available' - echo ' nvm run [] Run with as arguments. Uses .nvmrc if available for ' + echo ' nvm exec [] Run on . Uses .nvmrc if available for ' + echo ' nvm run [] Run `node` on with as arguments. Uses .nvmrc if available for ' echo ' nvm current Display currently activated version' echo ' nvm ls List installed versions' echo ' nvm ls List versions matching a given description' From 7496a24bd687131181f848b489f1f4bd74a20e8a Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 23 Sep 2015 05:02:41 -0700 Subject: [PATCH 0533/1426] Print the `npm` version when using `nvm exec` or `nvm run`. --- nvm.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index 9170ef3..dfa28b8 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1713,11 +1713,11 @@ nvm() { fi EXIT_CODE="$?" elif [ "$NVM_IOJS" = true ]; then - echo "Running io.js $(nvm_strip_iojs_prefix "$VERSION")" + echo "Running io.js $(nvm_strip_iojs_prefix "$VERSION")$(nvm_print_npm_version)" OUTPUT="$(nvm use "$VERSION" >/dev/null && iojs $ARGS)" EXIT_CODE="$?" else - echo "Running node $VERSION" + echo "Running node $VERSION$(nvm_print_npm_version)" OUTPUT="$(nvm use "$VERSION" >/dev/null && node $ARGS)" EXIT_CODE="$?" fi @@ -1751,7 +1751,7 @@ nvm() { return $EXIT_CODE fi - echo "Running node $VERSION" + echo "Running node $VERSION$(nvm_print_npm_version)" NODE_VERSION="$VERSION" $NVM_DIR/nvm-exec "$@" ;; "ls" | "list" ) From eb81fba8f7fda7342472256040597a8e59261552 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 23 Sep 2015 05:16:45 -0700 Subject: [PATCH 0534/1426] Add support for `--silent` to `nvm run` and `nvm exec`. Fixes #842. --- nvm.sh | 63 ++++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 39 insertions(+), 24 deletions(-) diff --git a/nvm.sh b/nvm.sh index dfa28b8..1ef9b08 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1279,27 +1279,27 @@ nvm() { echo ' - custom aliases you define with `nvm alias foo`' echo echo 'Usage:' - echo ' nvm help Show this message' - echo ' nvm --version Print out the latest released version of nvm' - echo ' nvm install [-s] Download and install a , [-s] from source. Uses .nvmrc if available' - echo ' --reinstall-packages-from= When installing, reinstall packages installed in ' - echo ' nvm uninstall Uninstall a version' - echo ' nvm use [--silent] Modify PATH to use . Uses .nvmrc if available' - echo ' nvm exec [] Run on . Uses .nvmrc if available for ' - echo ' nvm run [] Run `node` on with as arguments. Uses .nvmrc if available for ' - echo ' nvm current Display currently activated version' - echo ' nvm ls List installed versions' - echo ' nvm ls List versions matching a given description' - echo ' nvm ls-remote List remote versions available for install' - echo ' nvm version Resolve the given description to a single local version' - echo ' nvm version-remote Resolve the given description to a single remote version' - echo ' nvm deactivate Undo effects of `nvm` on current shell' - echo ' nvm alias [] Show all aliases beginning with ' - echo ' nvm alias Set an alias named pointing to ' - echo ' nvm unalias Deletes the alias named ' - echo ' nvm reinstall-packages Reinstall global `npm` packages contained in to current version' - echo ' nvm unload Unload `nvm` from shell' - echo ' nvm which [] Display path to installed node version. Uses .nvmrc if available' + echo ' nvm help Show this message' + echo ' nvm --version Print out the latest released version of nvm' + echo ' nvm install [-s] Download and install a , [-s] from source. Uses .nvmrc if available' + echo ' --reinstall-packages-from= When installing, reinstall packages installed in ' + echo ' nvm uninstall Uninstall a version' + echo ' nvm use [--silent] Modify PATH to use . Uses .nvmrc if available' + echo ' nvm exec [--silent] [] Run on . Uses .nvmrc if available' + echo ' nvm run [--silent] [] Run `node` on with as arguments. Uses .nvmrc if available' + echo ' nvm current Display currently activated version' + echo ' nvm ls List installed versions' + echo ' nvm ls List versions matching a given description' + echo ' nvm ls-remote List remote versions available for install' + echo ' nvm version Resolve the given description to a single local version' + echo ' nvm version-remote Resolve the given description to a single remote version' + echo ' nvm deactivate Undo effects of `nvm` on current shell' + echo ' nvm alias [] Show all aliases beginning with ' + echo ' nvm alias Set an alias named pointing to ' + echo ' nvm unalias Deletes the alias named ' + echo ' nvm reinstall-packages Reinstall global `npm` packages contained in to current version' + echo ' nvm unload Unload `nvm` from shell' + echo ' nvm which [] Display path to installed node version. Uses .nvmrc if available' echo echo 'Example:' echo ' nvm install v0.10.32 Install a specific version number' @@ -1659,6 +1659,14 @@ nvm() { has_checked_nvmrc=0 # run given version of node shift + + local NVM_SILENT + NVM_SILENT=0 + if [ "_$1" = "_--silent" ]; then + NVM_SILENT=1 + shift + fi + if [ $# -lt 1 ]; then nvm_rc_version && has_checked_nvmrc=1 if [ -n "$NVM_RC_VERSION" ]; then @@ -1713,11 +1721,11 @@ nvm() { fi EXIT_CODE="$?" elif [ "$NVM_IOJS" = true ]; then - echo "Running io.js $(nvm_strip_iojs_prefix "$VERSION")$(nvm_print_npm_version)" + [ $NVM_SILENT -eq 1 ] || echo "Running io.js $(nvm_strip_iojs_prefix "$VERSION")$(nvm_print_npm_version)" OUTPUT="$(nvm use "$VERSION" >/dev/null && iojs $ARGS)" EXIT_CODE="$?" else - echo "Running node $VERSION$(nvm_print_npm_version)" + [ $NVM_SILENT -eq 1 ] || echo "Running node $VERSION$(nvm_print_npm_version)" OUTPUT="$(nvm use "$VERSION" >/dev/null && node $ARGS)" EXIT_CODE="$?" fi @@ -1732,6 +1740,13 @@ nvm() { "exec" ) shift + local NVM_SILENT + NVM_SILENT=0 + if [ "_$1" = "_--silent" ]; then + NVM_SILENT=1 + shift + fi + local provided_version provided_version="$1" if [ -n "$provided_version" ]; then @@ -1751,7 +1766,7 @@ nvm() { return $EXIT_CODE fi - echo "Running node $VERSION$(nvm_print_npm_version)" + [ $NVM_SILENT -eq 1 ] || echo "Running node $VERSION$(nvm_print_npm_version)" NODE_VERSION="$VERSION" $NVM_DIR/nvm-exec "$@" ;; "ls" | "list" ) From a1def710628a2fc71552a9f79f9b53f3d6a3b8db Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 21 Sep 2015 04:47:30 -0700 Subject: [PATCH 0535/1426] Add `nvm_die_on_prefix` --- nvm.sh | 38 ++++++++++++++++ test/fast/Unit tests/nvm_die_on_prefix | 60 ++++++++++++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100755 test/fast/Unit tests/nvm_die_on_prefix diff --git a/nvm.sh b/nvm.sh index 1ef9b08..d19c87d 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1250,6 +1250,44 @@ nvm_npm_global_modules() { echo "$INSTALLS //// $LINKS" } +nvm_die_on_prefix() { + local NVM_DELETE_PREFIX + NVM_DELETE_PREFIX="$1" + case "$NVM_DELETE_PREFIX" in + 0|1) ;; + *) + echo >&2 'First argument "delete the prefix" must be zero or one' + return 1 + ;; + esac + local NVM_COMMAND + NVM_COMMAND="$2" + if [ -z "$NVM_COMMAND" ]; then + echo >&2 'Second argument "nvm command" must be nonempty' + return 2 + fi + + if ! nvm_has 'npm'; then + return + fi + local NVM_NPM_PREFIX + NVM_NPM_PREFIX="$(npm config get prefix)" + if ! (nvm_tree_contains_path "$NVM_DIR" "$NVM_NPM_PREFIX" >/dev/null 2>&1); then + if [ "_$NVM_DELETE_PREFIX" = "_1" ]; then + npm config delete prefix + else + nvm deactivate >/dev/null 2>&1 + echo >&2 "nvm is not compatible with the npm config \"prefix\" option: currently set to \"$NVM_NPM_PREFIX\"" + if nvm_has 'npm'; then + echo >&2 "Run \`npm config delete prefix\` or \`$NVM_COMMAND\` to unset it." + else + echo >&2 "Run \`$NVM_COMMAND\` to unset it." + fi + return 3 + fi + fi +} + nvm() { if [ $# -lt 1 ]; then nvm help diff --git a/test/fast/Unit tests/nvm_die_on_prefix b/test/fast/Unit tests/nvm_die_on_prefix new file mode 100755 index 0000000..de8bb41 --- /dev/null +++ b/test/fast/Unit tests/nvm_die_on_prefix @@ -0,0 +1,60 @@ +#!/bin/sh + +cleanup () { + alias nvm_has='\nvm_has' + alias npm='\npm' + unset -f nvm_has npm +} +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +OUTPUT="$(nvm_die_on_prefix 2>&1)" +EXPECTED_OUTPUT="First argument \"delete the prefix\" must be zero or one" +EXIT_CODE="$(nvm_die_on_prefix >/dev/null 2>&1; echo $?)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_die_on_prefix' did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" +[ "_$EXIT_CODE" = "_1" ] || die "'nvm_die_on_prefix' did not exit with 1; got "$EXIT_CODE"" + +OUTPUT="$(nvm_die_on_prefix 2 2>&1)" +EXPECTED_OUTPUT="First argument \"delete the prefix\" must be zero or one" +EXIT_CODE="$(nvm_die_on_prefix 2 >/dev/null 2>&1; echo $?)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_die_on_prefix 2' did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" +[ "_$EXIT_CODE" = "_1" ] || die "'nvm_die_on_prefix' did not exit with 1; got "$EXIT_CODE"" + +OUTPUT="$(nvm_die_on_prefix 0 2>&1)" +EXPECTED_OUTPUT="Second argument \"nvm command\" must be nonempty" +EXIT_CODE="$(nvm_die_on_prefix 0 >/dev/null 2>&1; echo $?)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_die_on_prefix 0' did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" +[ "_$EXIT_CODE" = "_2" ] || die "'nvm_die_on_prefix 0' did not exit with 2; got '$EXIT_CODE'" + +nvm_has() { return 1; } # ie, npm is not installed +OUTPUT="$(nvm_die_on_prefix 0 foo 2>&1)" +[ -z "$OUTPUT" ] || die "nvm_die_on_prefix was not a noop when nvm_has returns 1, got '$OUTPUT'" + +nvm_has() { return 0; } + +npm() { + local args + args="$@" + if [ "_$args" = "_config get prefix" ]; then + echo "$(nvm_version_dir new)/good prefix" + fi +} +OUTPUT="$(nvm_die_on_prefix 0 foo 2>&1)" +[ -z "$OUTPUT" ] || die "'nvm_die_on_prefix' was not a noop when prefix is good; got '$OUTPUT'" + +npm() { + local args + args="$@" + if [ "_$args" = "_config get prefix" ]; then + echo "./bad prefix" + fi +} +OUTPUT="$(nvm_die_on_prefix 0 foo 2>&1)" +EXPECTED_OUTPUT="nvm is not compatible with the npm config \"prefix\" option: currently set to \"./bad prefix\" +Run \`npm config delete prefix\` or \`foo\` to unset it." +EXIT_CODE="$(nvm_die_on_prefix 0 foo >/dev/null 2>&1; echo $?)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_die_on_prefix 0 foo' did not error with '$EXPECTED_OUTPUT' with bad prefix set; got '$OUTPUT'" +[ "_$EXIT_CODE" = "_3" ] || die "'nvm_die_on_prefix 0 foo' did not exit with 3 with bad prefix set; got '$EXIT_CODE'" + +cleanup From 1458de72934a33b279ac3cbb9d648295501ae74d Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 21 Sep 2015 04:47:37 -0700 Subject: [PATCH 0536/1426] Ensure that if `npm config get prefix` is set to something outside `nvm`, that `nvm use` refuses to work. Fixes #606. --- nvm.sh | 27 ++++++++++++++++++- ...ould unset the nvm environment variables." | 2 +- test/fast/Unit tests/nvm_die_on_prefix | 9 ++++++- ...g \"nvm use\" calls \"nvm_die_on_prefix\"" | 22 +++++++++++++++ 4 files changed, 57 insertions(+), 3 deletions(-) create mode 100755 "test/slow/nvm use/Running \"nvm use\" calls \"nvm_die_on_prefix\"" diff --git a/nvm.sh b/nvm.sh index d19c87d..0d9efe6 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1267,9 +1267,17 @@ nvm_die_on_prefix() { return 2 fi + if [ -n "$PREFIX" ] && ! (nvm_tree_contains_path "$NVM_DIR" "$PREFIX" >/dev/null 2>&1); then + nvm deactivate >/dev/null 2>&1 + echo >&2 "nvm is not compatible with the \"PREFIX\" environment variable: currently set to \"$PREFIX\"" + echo >&2 "Run \`unset PREFIX\` to unset it." + return 3 + fi + if ! nvm_has 'npm'; then return fi + local NVM_NPM_PREFIX NVM_NPM_PREFIX="$(npm config get prefix)" if ! (nvm_tree_contains_path "$NVM_DIR" "$NVM_NPM_PREFIX" >/dev/null 2>&1); then @@ -1283,7 +1291,7 @@ nvm_die_on_prefix() { else echo >&2 "Run \`$NVM_COMMAND\` to unset it." fi - return 3 + return 4 fi fi } @@ -1596,11 +1604,15 @@ nvm() { local PROVIDED_VERSION local NVM_USE_SILENT NVM_USE_SILENT=0 + local NVM_DELETE_PREFIX + NVM_DELETE_PREFIX=0 + shift # remove "use" while [ $# -ne 0 ] do case "$1" in --silent) NVM_USE_SILENT=1 ;; + --delete-prefix) NVM_DELETE_PREFIX=1 ;; *) if [ -n "$1" ]; then PROVIDED_VERSION="$1" @@ -1690,6 +1702,19 @@ nvm() { echo "Now using node $VERSION$(nvm_print_npm_version)" fi fi + if [ "_$VERSION" != "_system" ]; then + local NVM_USE_CMD + NVM_USE_CMD="nvm use --delete-prefix" + if [ -n "$PROVIDED_VERSION" ]; then + NVM_USE_CMD="$NVM_USE_CMD $VERSION" + fi + if [ $NVM_USE_SILENT -eq 1 ]; then + NVM_USE_CMD="$NVM_USE_CMD --silent" + fi + if ! nvm_die_on_prefix "$NVM_DELETE_PREFIX" "$NVM_USE_CMD"; then + return 11 + fi + fi ;; "run" ) local provided_version diff --git "a/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." "b/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." index 9f752a7..0ce98b6 100755 --- "a/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." +++ "b/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." @@ -7,7 +7,7 @@ die () { echo $@ ; exit 1; } [ `expr $PATH : ".*v0.2.3/.*/bin"` = 0 ] || echo "WARNING: Unexpectedly found v0.2.3 already active" >&2 . ../../nvm.sh -nvm use v0.2.3 || die "Failed to activate v0.2.3" +nvm use --delete-prefix v0.2.3 || die "Failed to activate v0.2.3" [ `expr "$PATH" : ".*v0.2.3/.*/bin"` != 0 ] || die "PATH not set up properly" [ `expr "$NODE_PATH" : ".*v0.2.3/.*/lib/node_modules"` = 0 ] || die "NODE_PATH should not contain (npm root -g)" # ^ note: NODE_PATH should not contain `npm root -g` since globals should not be requireable diff --git a/test/fast/Unit tests/nvm_die_on_prefix b/test/fast/Unit tests/nvm_die_on_prefix index de8bb41..18e89a5 100755 --- a/test/fast/Unit tests/nvm_die_on_prefix +++ b/test/fast/Unit tests/nvm_die_on_prefix @@ -43,6 +43,13 @@ npm() { OUTPUT="$(nvm_die_on_prefix 0 foo 2>&1)" [ -z "$OUTPUT" ] || die "'nvm_die_on_prefix' was not a noop when prefix is good; got '$OUTPUT'" +OUTPUT="$(PREFIX=bar nvm_die_on_prefix 0 foo 2>&1)" +EXPECTED_OUTPUT='nvm is not compatible with the "PREFIX" environment variable: currently set to "bar" +Run `unset PREFIX` to unset it.' +EXIT_CODE="$(PREFIX=bar nvm_die_on_prefix 0 foo >/dev/null 2>&1; echo $?)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'PREFIX=bar nvm_die_on_prefix 0 foo' did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" +[ "_$EXIT_CODE" = "_3" ] || die "'PREFIX=bar nvm_die_on_prefix 0 foo' did not exit with 3; got '$EXIT_CODE'" + npm() { local args args="$@" @@ -55,6 +62,6 @@ EXPECTED_OUTPUT="nvm is not compatible with the npm config \"prefix\" option: cu Run \`npm config delete prefix\` or \`foo\` to unset it." EXIT_CODE="$(nvm_die_on_prefix 0 foo >/dev/null 2>&1; echo $?)" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_die_on_prefix 0 foo' did not error with '$EXPECTED_OUTPUT' with bad prefix set; got '$OUTPUT'" -[ "_$EXIT_CODE" = "_3" ] || die "'nvm_die_on_prefix 0 foo' did not exit with 3 with bad prefix set; got '$EXIT_CODE'" +[ "_$EXIT_CODE" = "_4" ] || die "'nvm_die_on_prefix 0 foo' did not exit with 4 with bad prefix set; got '$EXIT_CODE'" cleanup diff --git "a/test/slow/nvm use/Running \"nvm use\" calls \"nvm_die_on_prefix\"" "b/test/slow/nvm use/Running \"nvm use\" calls \"nvm_die_on_prefix\"" new file mode 100755 index 0000000..faf9644 --- /dev/null +++ "b/test/slow/nvm use/Running \"nvm use\" calls \"nvm_die_on_prefix\"" @@ -0,0 +1,22 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +nvm deactivate >/dev/null 2>&1 || die 'deactivate failed' + +nvm_die_on_prefix() { + echo >&2 "| $1 | $2 |" + return 3 +} + +OUTPUT="$(nvm use --silent node)" +EXPECTED_OUTPUT="" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ + || die "'nvm use --silent node' did not call through to 'nvm_die_on_prefix' and give output '$EXPECTED_OUTPUT'; got '$OUTPUT'" + +EXIT_CODE="$(nvm use --silent node >/dev/null 2>&1; echo $?)" +EXPECTED_CODE="11" +[ "_$EXIT_CODE" = "_$EXPECTED_CODE" ] \ + || die "'nvm use --silent node' when 'nvm_die_on_prefix' fails did not return '$EXPECTED_CODE'; got '$EXIT_CODE'" From 8ee6f3035292b46fe4067a089d2b0752f4ce0e98 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 23 Sep 2015 06:25:55 -0700 Subject: [PATCH 0537/1426] Add support for `$NPM_CONFIG_PREFIX` to `nvm_die_on_prefix`. Fixes #606. --- nvm.sh | 9 ++++++++- test/fast/Unit tests/nvm_die_on_prefix | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 0d9efe6..e6a9f8d 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1274,6 +1274,13 @@ nvm_die_on_prefix() { return 3 fi + if [ -n "$NPM_CONFIG_PREFIX" ] && ! (nvm_tree_contains_path "$NVM_DIR" "$NPM_CONFIG_PREFIX" >/dev/null 2>&1); then + nvm deactivate >/dev/null 2>&1 + echo >&2 "nvm is not compatible with the \"NPM_CONFIG_PREFIX\" environment variable: currently set to \"$NPM_CONFIG_PREFIX\"" + echo >&2 "Run \`unset NPM_CONFIG_PREFIX\` to unset it." + return 4 + fi + if ! nvm_has 'npm'; then return fi @@ -1291,7 +1298,7 @@ nvm_die_on_prefix() { else echo >&2 "Run \`$NVM_COMMAND\` to unset it." fi - return 4 + return 10 fi fi } diff --git a/test/fast/Unit tests/nvm_die_on_prefix b/test/fast/Unit tests/nvm_die_on_prefix index 18e89a5..9a0260d 100755 --- a/test/fast/Unit tests/nvm_die_on_prefix +++ b/test/fast/Unit tests/nvm_die_on_prefix @@ -50,6 +50,13 @@ EXIT_CODE="$(PREFIX=bar nvm_die_on_prefix 0 foo >/dev/null 2>&1; echo $?)" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'PREFIX=bar nvm_die_on_prefix 0 foo' did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" [ "_$EXIT_CODE" = "_3" ] || die "'PREFIX=bar nvm_die_on_prefix 0 foo' did not exit with 3; got '$EXIT_CODE'" +OUTPUT="$(NPM_CONFIG_PREFIX=bar nvm_die_on_prefix 0 foo 2>&1)" +EXPECTED_OUTPUT='nvm is not compatible with the "NPM_CONFIG_PREFIX" environment variable: currently set to "bar" +Run `unset NPM_CONFIG_PREFIX` to unset it.' +EXIT_CODE="$(NPM_CONFIG_PREFIX=bar nvm_die_on_prefix 0 foo >/dev/null 2>&1; echo $?)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'NPM_CONFIG_PREFIX=bar nvm_die_on_prefix 0 foo' did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" +[ "_$EXIT_CODE" = "_4" ] || die "'NPM_CONFIG_PREFIX=bar nvm_die_on_prefix 0 foo' did not exit with 4; got '$EXIT_CODE'" + npm() { local args args="$@" @@ -62,6 +69,6 @@ EXPECTED_OUTPUT="nvm is not compatible with the npm config \"prefix\" option: cu Run \`npm config delete prefix\` or \`foo\` to unset it." EXIT_CODE="$(nvm_die_on_prefix 0 foo >/dev/null 2>&1; echo $?)" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_die_on_prefix 0 foo' did not error with '$EXPECTED_OUTPUT' with bad prefix set; got '$OUTPUT'" -[ "_$EXIT_CODE" = "_4" ] || die "'nvm_die_on_prefix 0 foo' did not exit with 4 with bad prefix set; got '$EXIT_CODE'" +[ "_$EXIT_CODE" = "_10" ] || die "'nvm_die_on_prefix 0 foo' did not exit with 10 with bad prefix set; got '$EXIT_CODE'" cleanup From 838d72688ff257e1ac1941fc6350277de71f5376 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 26 Sep 2015 10:13:10 -0700 Subject: [PATCH 0538/1426] v0.27.0 --- README.markdown | 6 +++--- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.markdown b/README.markdown index e710350..d068c26 100644 --- a/README.markdown +++ b/README.markdown @@ -15,11 +15,11 @@ Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creati To install you could use the [install script][2] using cURL: - curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.26.1/install.sh | bash + curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.27.0/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.26.1/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.27.0/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -236,7 +236,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.26.1/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.27.0/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index 1738380..35a13e6 100755 --- a/install.sh +++ b/install.sh @@ -13,7 +13,7 @@ if [ -z "$NVM_DIR" ]; then fi nvm_latest_version() { - echo "v0.26.1" + echo "v0.27.0" } # diff --git a/nvm.sh b/nvm.sh index e6a9f8d..5ab2f20 100755 --- a/nvm.sh +++ b/nvm.sh @@ -2072,7 +2072,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' nvm_remote_version "$2" ;; "--version" ) - echo "0.26.1" + echo "0.27.0" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum \ diff --git a/package.json b/package.json index 99a9718..a7831d8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.26.1", + "version": "0.27.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 39dad845cfa4175cd95f28db734aaa839c82b393 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 27 Sep 2015 06:32:00 -0700 Subject: [PATCH 0539/1426] Do not exit install.sh on errors (revert part of 0787a559). Fixes #853. --- install.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/install.sh b/install.sh index 35a13e6..3dc4b84 100755 --- a/install.sh +++ b/install.sh @@ -1,7 +1,5 @@ #!/bin/bash -set -e - { # this ensures the entire script is downloaded # nvm_has() { From 8aebf863294ef3a21e2790c01af16405213381de Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 27 Sep 2015 06:40:29 -0700 Subject: [PATCH 0540/1426] v0.27.1 --- README.markdown | 6 +++--- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.markdown b/README.markdown index d068c26..7cf2bef 100644 --- a/README.markdown +++ b/README.markdown @@ -15,11 +15,11 @@ Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creati To install you could use the [install script][2] using cURL: - curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.27.0/install.sh | bash + curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.27.1/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.27.0/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.27.1/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -236,7 +236,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.27.0/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.27.1/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index 3dc4b84..4e4c2aa 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ if [ -z "$NVM_DIR" ]; then fi nvm_latest_version() { - echo "v0.27.0" + echo "v0.27.1" } # diff --git a/nvm.sh b/nvm.sh index 5ab2f20..4e0dd33 100755 --- a/nvm.sh +++ b/nvm.sh @@ -2072,7 +2072,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' nvm_remote_version "$2" ;; "--version" ) - echo "0.27.0" + echo "0.27.1" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum \ diff --git a/package.json b/package.json index a7831d8..980d0a9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.27.0", + "version": "0.27.1", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 2d692d9d7863844d9e5c499faf423b350235f72d Mon Sep 17 00:00:00 2001 From: Julien Gilli Date: Mon, 28 Sep 2015 16:02:34 -0700 Subject: [PATCH 0541/1426] Fix support for installing node on SmartOS uname on SmartOS cannot be used to guess if 32 and/or 64 bits binaries are supported, and its output is different than other uname commands on other operating systems. This change uses pkg_info to determine what types of binaries pkgsrc would install. If pkg_info fails to run or is not present, this change falls back to using isainfo -n, which determines what the kernel supports. It allows users to install node binaries on Solaris derivatives. io.js can also be installed on Solaris derivatives starting with version v3.3.1. --- nvm.sh | 83 +++++++++++++++++-- test/common.sh | 13 +++ .../iojs_version_has_solaris_binary | 17 ++++ .../node_version_has_solaris_binary | 33 ++++++++ test/fast/Unit tests/nvm_get_arch | 80 ++++++++++++++++++ test/fast/Unit tests/nvm_has_solaris_binary | 32 +++++++ test/mocks/isainfo_amd64 | 5 ++ test/mocks/isainfo_x86 | 5 ++ test/mocks/pkg_info_amd64 | 1 + test/mocks/pkg_info_x86 | 1 + test/mocks/uname_osx_amd64 | 5 ++ test/mocks/uname_osx_x86 | 5 ++ test/mocks/uname_smartos_amd64 | 5 ++ test/mocks/uname_smartos_x86 | 5 ++ 14 files changed, 282 insertions(+), 8 deletions(-) create mode 100644 test/common.sh create mode 100755 test/fast/Unit tests/iojs_version_has_solaris_binary create mode 100755 test/fast/Unit tests/node_version_has_solaris_binary create mode 100755 test/fast/Unit tests/nvm_get_arch create mode 100755 test/fast/Unit tests/nvm_has_solaris_binary create mode 100755 test/mocks/isainfo_amd64 create mode 100755 test/mocks/isainfo_x86 create mode 100755 test/mocks/pkg_info_amd64 create mode 100755 test/mocks/pkg_info_x86 create mode 100755 test/mocks/uname_osx_amd64 create mode 100755 test/mocks/uname_osx_x86 create mode 100755 test/mocks/uname_smartos_amd64 create mode 100755 test/mocks/uname_smartos_x86 diff --git a/nvm.sh b/nvm.sh index 4e0dd33..90ab4ff 100755 --- a/nvm.sh +++ b/nvm.sh @@ -909,13 +909,30 @@ nvm_get_os() { } nvm_get_arch() { - local NVM_UNAME - NVM_UNAME="$(uname -m)" + local HOST_ARCH + local NVM_OS + local EXIT_CODE + + NVM_OS="$(nvm_get_os)" + # If the OS is SunOS, first try to use pkgsrc to guess + # the most appropriate arch. If it's not available, use + # isainfo to get the instruction set supported by the + # kernel. + if [ "_$NVM_OS" = "_sunos" ]; then + HOST_ARCH=$(pkg_info -Q MACHINE_ARCH pkg_install) + EXIT_CODE=$? + if [ $EXIT_CODE -ne 0 ]; then + HOST_ARCH=$(isainfo -n) + fi + else + HOST_ARCH="$(uname -m)" + fi + local NVM_ARCH - case "$NVM_UNAME" in - x86_64) NVM_ARCH="x64" ;; + case "$HOST_ARCH" in + x86_64 | amd64) NVM_ARCH="x64" ;; i*86) NVM_ARCH="x86" ;; - *) NVM_ARCH="$NVM_UNAME" ;; + *) NVM_ARCH="$HOST_ARCH" ;; esac echo "$NVM_ARCH" } @@ -1303,6 +1320,54 @@ nvm_die_on_prefix() { fi } +# Succeeds if $IOJS_VERSION represents an io.js version that has a +# Solaris binary, fails otherwise. +# Currently, only io.js 3.3.1 has a Solaris binary available, and it's the +# latest io.js version available. The expectation is that any potential io.js +# version later than v3.3.1 will also have Solaris binaries. +iojs_version_has_solaris_binary() { + local IOJS_VERSION=$1 + local STRIPPED_IOJS_VERSION="$(nvm_strip_iojs_prefix $IOJS_VERSION)" + if [ "_$STRIPPED_IOJS_VERSION" = "$IOJS_VERSION" ]; then + return 1 + fi + + # io.js started shipping Solaris binaries with io.js v3.3.1 + nvm_version_greater_than_or_equal_to "$STRIPPED_IOJS_VERSION" v3.3.1 +} + +# Succeeds if $NODE_VERSION represents a node version that has a +# Solaris binary, fails otherwise. +# Currently, node versions starting from v0.8.6 have a Solaris binary +# avaliable. +node_version_has_solaris_binary() { + local NODE_VERSION=$1 + # Error out if $NODE_VERSION is actually an io.js version + local STRIPPED_IOJS_VERSION="$(nvm_strip_iojs_prefix $NODE_VERSION)" + if [ "_$STRIPPED_IOJS_VERSION" != "_$NODE_VERSION" ]; then + return 1 + fi + + # node (unmerged) started shipping Solaris binaries with v0.8.6 and + # node versions v1.0.0 or greater are not considered valid "unmerged" node + # versions. + nvm_version_greater_than_or_equal_to "$NODE_VERSION" v0.8.6 && + ! nvm_version_greater_than_or_equal_to "$NODE_VERSION" v1.0.0 +} + +# Succeeds if $VERSION represents a version (node, io.js or merged) that has a +# Solaris binary, fails otherwise. +nvm_has_solaris_binary() { + local VERSION=$1 + if nvm_is_merged_node_version "$VERSION"; then + return 0 # All merged node versions have a Solaris binary + elif nvm_is_iojs_version "$VERSION"; then + iojs_version_has_solaris_binary "$VERSION" + else + node_version_has_solaris_binary "$VERSION" + fi +} + nvm() { if [ $# -lt 1 ]; then nvm help @@ -1485,9 +1550,11 @@ nvm() { if [ "_$NVM_OS" = "_freebsd" ]; then # node.js and io.js do not have a FreeBSD binary nobinary=1 - elif [ "_$NVM_OS" = "_sunos" ] && ([ "$NVM_IOJS" = true ] || [ "$NVM_NODE_MERGED" = true ]); then - # io.js does not have a SunOS binary - nobinary=1 + elif [ "_$NVM_OS" = "_sunos" ]; then + # Not all node/io.js versions have a Solaris binary + if ! nvm_has_solaris_binary "$VERSION"; then + nobinary=1 + fi fi local NVM_INSTALL_SUCCESS # skip binary install if "nobinary" option specified. diff --git a/test/common.sh b/test/common.sh new file mode 100644 index 0000000..7d09064 --- /dev/null +++ b/test/common.sh @@ -0,0 +1,13 @@ +assert_ok() { + local FUNCTION=$1 + shift + + $($FUNCTION $@) || die '"'"$FUNCTION $@"'" should have succeeded, but failed' +} + +assert_not_ok() { + local FUNCTION=$1 + shift + + ! $($FUNCTION $@) || die '"'"$FUNCTION $@"'" should have failed, but succeeded' +} diff --git a/test/fast/Unit tests/iojs_version_has_solaris_binary b/test/fast/Unit tests/iojs_version_has_solaris_binary new file mode 100755 index 0000000..7a797cb --- /dev/null +++ b/test/fast/Unit tests/iojs_version_has_solaris_binary @@ -0,0 +1,17 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh +. ../../common.sh + +assert_not_ok iojs_version_has_solaris_binary "" +assert_not_ok iojs_version_has_solaris_binary "foo" +assert_not_ok iojs_version_has_solaris_binary "v1.1.0" + +assert_ok iojs_version_has_solaris_binary "v3.3.1" +assert_ok iojs_version_has_solaris_binary "iojs-v3.3.1" +assert_ok iojs_version_has_solaris_binary "v3.3.2" +assert_ok iojs_version_has_solaris_binary "iojs-v3.3.2" +assert_ok iojs_version_has_solaris_binary "v3.4.1" +assert_ok iojs_version_has_solaris_binary "iojs-v3.4.1" diff --git a/test/fast/Unit tests/node_version_has_solaris_binary b/test/fast/Unit tests/node_version_has_solaris_binary new file mode 100755 index 0000000..db62d59 --- /dev/null +++ b/test/fast/Unit tests/node_version_has_solaris_binary @@ -0,0 +1,33 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh +. ../../common.sh + +# Invalid version numbers fail +assert_not_ok node_version_has_solaris_binary "" +assert_not_ok node_version_has_solaris_binary "foo" + +# "Invalid" node version numbers fail +assert_not_ok node_version_has_solaris_binary "v1.0.0" +assert_not_ok node_version_has_solaris_binary "v3.3.1" + +# Valid io.js version numbers that have a Solaris binary fail +assert_not_ok node_version_has_solaris_binary "iojs-v3.3.1" + +# Invvalid io.js version numbers fail +assert_not_ok node_version_has_solaris_binary "iojs-v0.12.7" + +# Valid node version numbers that don't have a Solaris binary fail +assert_not_ok node_version_has_solaris_binary "v0.8.5" + +# Valid node version numbers that have a Solaris binary succeed +assert_ok node_version_has_solaris_binary "v0.8.6" +assert_ok node_version_has_solaris_binary "v0.10.0" +assert_ok node_version_has_solaris_binary "v0.12.7" + +# Valid "merged" version numbers fail, because they're not +# considered node version numbers +assert_not_ok node_version_has_solaris_binary "v4.0.0" +assert_not_ok node_version_has_solaris_binary "v4.1.1" diff --git a/test/fast/Unit tests/nvm_get_arch b/test/fast/Unit tests/nvm_get_arch new file mode 100755 index 0000000..b3fd51b --- /dev/null +++ b/test/fast/Unit tests/nvm_get_arch @@ -0,0 +1,80 @@ +#!/bin/sh + +# Save the PATH as it was when the test started to restore it when it +# finishes +ORIG_PATH=$PATH + +cleanup() { + # Restore the PATH as it was when the test started + export PATH=ORIG_PATH +} + +die () { cleanup; echo $@ ; exit 1; } + +. ../../../nvm.sh + +# Directory where mocked binaries used by nvm_get_arch for each OS/arch are +# located +MOCKS_DIR=`pwd`/../../mocks +# Sets the PATH for these tests to include the symlinks to the mocked +# binaries +export PATH=.:${PATH} + +# Setups mock binaries for a given OS and arch that mimic +# the output of the real binaries used by nvm_get_arch to guess +# the architecture of a given system. +setup_mock_arch() { + local OS=$1 + local ARCH=$2 + local OPT=$3 + + if [ "_$OS" = "_solaris" ] || [ "_$OS" = "_smartos" ]; then + ln -sf "${MOCKS_DIR}/isainfo_${ARCH}" ./isainfo + if [ "_$OPT" != "_no_pkg_info" ]; then + ln -sf "${MOCKS_DIR}/pkg_info_${ARCH}" ./pkg_info + fi + fi + + ln -sf "${MOCKS_DIR}/uname_${OS}_${ARCH}" ./uname +} + +# Cleans up the setup done by setup_mock_arch. +cleanup_mock_arch() { + local OS=$1 + local ARCH=$2 + + if [ "_$OS" = "_solaris" ] || [ "_$OS" = "_smartos" ]; then + rm -f ./isainfo + rm -f ./pkg_info + fi + + rm -f ./uname +} + +# Runs nvm_get_arch for architecture $ARCH and OS $OS, and compares the +# expected output $EXPECTED_OUTPUT with the actual output. Does nothing +# and exits cleanly if they match, dies otherwise. +run_test() { + local ARCH=$1 + local OS=$2 + local EXPECTED_OUTPUT=$3 + local OPT=$4 + + setup_mock_arch $OS $ARCH $OPT + local OUTPUT="$(nvm_get_arch)" + cleanup_mock_arch $OS $ARCH + [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || + die "nvm_get_arch for OS \"$OS\" and arch \"$ARCH\" with OPT \"$OPT\" did + not return \"$EXPECTED_OUTPUT\"; got \"$OUTPUT\"" +} + +run_test x86 smartos x86 +run_test x86 smartos x86 no_pkg_info + +run_test amd64 smartos x64 +run_test amd64 smartos x64 no_pkg_info + +run_test x86 osx x86 +run_test amd64 osx x64 + +cleanup diff --git a/test/fast/Unit tests/nvm_has_solaris_binary b/test/fast/Unit tests/nvm_has_solaris_binary new file mode 100755 index 0000000..5a29112 --- /dev/null +++ b/test/fast/Unit tests/nvm_has_solaris_binary @@ -0,0 +1,32 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh +. ../../common.sh + +# Invalid version numbers fail +assert_not_ok nvm_has_solaris_binary "" +assert_not_ok nvm_has_solaris_binary "foo" + +# "Invalid" node version numbers fail +assert_not_ok nvm_has_solaris_binary "v1.0.0" +assert_not_ok nvm_has_solaris_binary "v3.3.1" + +# Valid io.js version numbers that have a Solaris binary succeed +assert_ok nvm_has_solaris_binary "iojs-v3.3.1" + +# Invvalid io.js version numbers fail +assert_not_ok nvm_has_solaris_binary "iojs-v0.12.7" + +# Valid node version numbers that don't have a Solaris binary fail +assert_not_ok nvm_has_solaris_binary "v0.8.5" + +# Valid node version numbers that have a Solaris binary succeed +assert_ok nvm_has_solaris_binary "v0.8.6" +assert_ok nvm_has_solaris_binary "v0.10.0" +assert_ok nvm_has_solaris_binary "v0.12.7" + +# Valid "merged" version numbers succeed +assert_ok nvm_has_solaris_binary "v4.0.0" +assert_ok nvm_has_solaris_binary "v4.1.1" diff --git a/test/mocks/isainfo_amd64 b/test/mocks/isainfo_amd64 new file mode 100755 index 0000000..37f805b --- /dev/null +++ b/test/mocks/isainfo_amd64 @@ -0,0 +1,5 @@ +if [ "_$1" = "_-n" ]; then + echo "amd64" +else + echo "amd64 i386" +fi diff --git a/test/mocks/isainfo_x86 b/test/mocks/isainfo_x86 new file mode 100755 index 0000000..4658d2a --- /dev/null +++ b/test/mocks/isainfo_x86 @@ -0,0 +1,5 @@ +if [ "_$1" = "_-n" ]; then + echo "i386" +else + echo "i386" +fi diff --git a/test/mocks/pkg_info_amd64 b/test/mocks/pkg_info_amd64 new file mode 100755 index 0000000..8437c2b --- /dev/null +++ b/test/mocks/pkg_info_amd64 @@ -0,0 +1 @@ +echo "x86_64" diff --git a/test/mocks/pkg_info_x86 b/test/mocks/pkg_info_x86 new file mode 100755 index 0000000..a555469 --- /dev/null +++ b/test/mocks/pkg_info_x86 @@ -0,0 +1 @@ +echo "i386" diff --git a/test/mocks/uname_osx_amd64 b/test/mocks/uname_osx_amd64 new file mode 100755 index 0000000..8552d1d --- /dev/null +++ b/test/mocks/uname_osx_amd64 @@ -0,0 +1,5 @@ +if [ "_$1" = "_-m" ]; then + echo "x86_64" +else + echo "Darwin foo.local 13.4.0 Darwin Kernel Version 13.4.0: Sun Aug 17 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_X86_64 x86_64" + fi diff --git a/test/mocks/uname_osx_x86 b/test/mocks/uname_osx_x86 new file mode 100755 index 0000000..0d91a7e --- /dev/null +++ b/test/mocks/uname_osx_x86 @@ -0,0 +1,5 @@ +if [ "_$1" = "_-m" ]; then + echo "i386" +else + echo "Darwin foo.local 13.4.0 Darwin Kernel Version 13.4.0: Sun Aug 17 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_I386 i386" + fi diff --git a/test/mocks/uname_smartos_amd64 b/test/mocks/uname_smartos_amd64 new file mode 100755 index 0000000..452f3bc --- /dev/null +++ b/test/mocks/uname_smartos_amd64 @@ -0,0 +1,5 @@ +if [ "_$1" = "_-m" ]; then + echo "i86pc" +else + echo "SunOS dev 5.11 joyent_20150219T102159Z i86pc i386 i86pc Solaris" +fi diff --git a/test/mocks/uname_smartos_x86 b/test/mocks/uname_smartos_x86 new file mode 100755 index 0000000..452f3bc --- /dev/null +++ b/test/mocks/uname_smartos_x86 @@ -0,0 +1,5 @@ +if [ "_$1" = "_-m" ]; then + echo "i86pc" +else + echo "SunOS dev 5.11 joyent_20150219T102159Z i86pc i386 i86pc Solaris" +fi From 3d1ccfec7011eb5945feb146455eba217abc2c54 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 30 Sep 2015 22:05:18 -0700 Subject: [PATCH 0542/1426] Sort `nvm ls` results by semver version, so the order goes: "unmerged node", "iojs", "merged node". --- nvm.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 90ab4ff..dc8fb5a 100755 --- a/nvm.sh +++ b/nvm.sh @@ -635,7 +635,6 @@ nvm_ls() { s#^\($NVM_IOJS_PREFIX\)[-/]v#\1.v#; s#^\($NVM_NODE_PREFIX\)[-/]v#\1.v#" \ | command sort -t. -u -k 2.2,2n -k 3,3n -k 4,4n \ - | command sort -s -t- -k1.1,1.1 \ | command sed " s/^\($NVM_IOJS_PREFIX\)\./\1-/; s/^$NVM_NODE_PREFIX\.//" \ From 44f416d58f723ba7d326c031b07f0ce830ba50f5 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 1 Oct 2015 09:41:34 -0700 Subject: [PATCH 0543/1426] Create and use `nvm_sanitize_path` for `nvm debug` --- nvm.sh | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index dc8fb5a..fce3dc8 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1367,6 +1367,15 @@ nvm_has_solaris_binary() { fi } +nvm_sanitize_path() { + local SANITIZED_PATH + SANITIZED_PATH="$1" + if [ "_$1" != "_$NVM_DIR" ]; then + SANITIZED_PATH="$(echo "$SANITIZED_PATH" | sed "s#$NVM_DIR#\$NVM_DIR#g")" + fi + echo "$SANITIZED_PATH" | sed "s#$HOME#\$HOME#g" +} + nvm() { if [ $# -lt 1 ]; then nvm help @@ -1437,12 +1446,12 @@ nvm() { setopt shwordsplit fi echo >&2 "\$SHELL: $SHELL" - echo >&2 "\$NVM_DIR: $(echo $NVM_DIR | sed "s#$HOME#\$HOME#g")" + echo >&2 "\$NVM_DIR: $(nvm_sanitize_path "$NVM_DIR")" local NVM_DEBUG_OUTPUT for NVM_DEBUG_COMMAND in 'nvm current' 'which node' 'which iojs' 'which npm' 'npm config get prefix' 'npm root -g' do - NVM_DEBUG_OUTPUT="$($NVM_DEBUG_COMMAND 2>&1 | sed "s#$NVM_DIR#\$NVM_DIR#g")" - echo >&2 "$NVM_DEBUG_COMMAND: $NVM_DEBUG_OUTPUT" + NVM_DEBUG_OUTPUT="$($NVM_DEBUG_COMMAND 2>&1)" + echo >&2 "$NVM_DEBUG_COMMAND: $(nvm_sanitize_path "$NVM_DEBUG_OUTPUT")" done if [ "_$ZHS_HAS_SHWORDSPLIT_UNSET" = "_1" ] && nvm_has "unsetopt"; then unsetopt shwordsplit From b805de80cb8058f09fecb11786d4d2aec0dac35c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 1 Oct 2015 10:05:13 -0700 Subject: [PATCH 0544/1426] Add `PREFIX` and `NPM_CONFIG_PREFIX` env vars to `nvm debug` --- nvm.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index fce3dc8..d148997 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1446,7 +1446,9 @@ nvm() { setopt shwordsplit fi echo >&2 "\$SHELL: $SHELL" - echo >&2 "\$NVM_DIR: $(nvm_sanitize_path "$NVM_DIR")" + echo >&2 "\$NVM_DIR: '$(nvm_sanitize_path "$NVM_DIR")'" + echo >&2 "\$PREFIX: '$(nvm_sanitize_path "$PREFIX")'" + echo >&2 "\$NPM_CONFIG_PREFIX: '$(nvm_sanitize_path "$NPM_CONFIG_PREFIX")'" local NVM_DEBUG_OUTPUT for NVM_DEBUG_COMMAND in 'nvm current' 'which node' 'which iojs' 'which npm' 'npm config get prefix' 'npm root -g' do From ebdcdc43631506c4e76dbaf3f6739f337af4c9b4 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 2 Oct 2015 01:50:44 -0700 Subject: [PATCH 0545/1426] v0.28.0 --- README.markdown | 6 +++--- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.markdown b/README.markdown index 7cf2bef..aa9a6e5 100644 --- a/README.markdown +++ b/README.markdown @@ -15,11 +15,11 @@ Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creati To install you could use the [install script][2] using cURL: - curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.27.1/install.sh | bash + curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.28.0/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.27.1/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.28.0/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -236,7 +236,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.27.1/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.28.0/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index 4e4c2aa..9cb087d 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ if [ -z "$NVM_DIR" ]; then fi nvm_latest_version() { - echo "v0.27.1" + echo "v0.28.0" } # diff --git a/nvm.sh b/nvm.sh index d148997..ce73a06 100755 --- a/nvm.sh +++ b/nvm.sh @@ -2149,7 +2149,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' nvm_remote_version "$2" ;; "--version" ) - echo "0.27.1" + echo "0.28.0" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum \ diff --git a/package.json b/package.json index 980d0a9..7e9d368 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.27.1", + "version": "0.28.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 06a21284ed200aea7cee4d7a9c78e356184356b8 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 4 Oct 2015 11:58:05 -0700 Subject: [PATCH 0546/1426] Protect against `cat` clobbering. Fixes #858. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index ce73a06..1877749 100755 --- a/nvm.sh +++ b/nvm.sh @@ -398,7 +398,7 @@ nvm_alias() { return 2 fi - cat "$NVM_ALIAS_PATH" + command cat "$NVM_ALIAS_PATH" } nvm_ls_current() { From 49f2c950134631c18427387f89471ae42609e89e Mon Sep 17 00:00:00 2001 From: fresheneesz Date: Mon, 5 Oct 2015 15:56:41 -0700 Subject: [PATCH 0547/1426] Install OR update --- README.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index aa9a6e5..7d1c41e 100644 --- a/README.markdown +++ b/README.markdown @@ -13,7 +13,7 @@ Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creati ### Install script -To install you could use the [install script][2] using cURL: +To install or update nvm, you can use the [install script][2] using cURL: curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.28.0/install.sh | bash From 8541e2e1ee9c77d3ed1fec7402c959e4cd9e1c9e Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 7 Oct 2015 13:57:13 -0700 Subject: [PATCH 0548/1426] Properly quote some possible variables with spaces. --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 1877749..2064640 100755 --- a/nvm.sh +++ b/nvm.sh @@ -78,7 +78,7 @@ if [ -z "$NVM_DIR" ]; then if [ -n "$BASH_SOURCE" ]; then NVM_SCRIPT_SOURCE="${BASH_SOURCE[0]}" fi - export NVM_DIR=$(cd $NVM_CD_FLAGS $(dirname "${NVM_SCRIPT_SOURCE:-$0}") > /dev/null && \pwd) + export NVM_DIR="$(cd $NVM_CD_FLAGS $(dirname "${NVM_SCRIPT_SOURCE:-$0}") > /dev/null && \pwd)" fi unset NVM_SCRIPT_SOURCE 2> /dev/null @@ -221,7 +221,7 @@ nvm_ensure_version_installed() { # Expand a version using the version cache nvm_version() { local PATTERN - PATTERN=$1 + PATTERN="$1" local VERSION # The default version is the current one if [ -z "$PATTERN" ]; then From 6b3c34313caa5d87bec66e7b94d24e67c20523a5 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 7 Oct 2015 13:57:29 -0700 Subject: [PATCH 0549/1426] Fix `nvm_ls` when `$NVM_DIR` has spaces in it. Mostly fixes #861. --- nvm.sh | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/nvm.sh b/nvm.sh index 2064640..5e3d9f7 100755 --- a/nvm.sh +++ b/nvm.sh @@ -592,39 +592,51 @@ nvm_ls() { setopt shwordsplit fi - local NVM_DIRS_TO_TEST_AND_SEARCH - local NVM_DIRS_TO_SEARCH + local NVM_DIRS_TO_SEARCH1 + NVM_DIRS_TO_SEARCH1='' + local NVM_DIRS_TO_SEARCH2 + NVM_DIRS_TO_SEARCH2='' + local NVM_DIRS_TO_SEARCH3 + NVM_DIRS_TO_SEARCH3='' local NVM_ADD_SYSTEM NVM_ADD_SYSTEM=false if nvm_is_iojs_version "$PATTERN"; then - NVM_DIRS_TO_TEST_AND_SEARCH="$NVM_VERSION_DIR_IOJS" + NVM_DIRS_TO_SEARCH1="$NVM_VERSION_DIR_IOJS" PATTERN="$(nvm_strip_iojs_prefix "$PATTERN")" if nvm_has_system_iojs; then NVM_ADD_SYSTEM=true fi elif [ "_$PATTERN" = "_$NVM_NODE_PREFIX-" ]; then - NVM_DIRS_TO_TEST_AND_SEARCH="$NVM_VERSION_DIR_OLD $NVM_VERSION_DIR_NEW" + NVM_DIRS_TO_SEARCH1="$NVM_VERSION_DIR_OLD" + NVM_DIRS_TO_SEARCH2="$NVM_VERSION_DIR_NEW" PATTERN='' if nvm_has_system_node; then NVM_ADD_SYSTEM=true fi else - NVM_DIRS_TO_TEST_AND_SEARCH="$NVM_VERSION_DIR_OLD $NVM_VERSION_DIR_NEW $NVM_VERSION_DIR_IOJS" + NVM_DIRS_TO_SEARCH1="$NVM_VERSION_DIR_OLD" + NVM_DIRS_TO_SEARCH2="$NVM_VERSION_DIR_NEW" + NVM_DIRS_TO_SEARCH3="$NVM_VERSION_DIR_IOJS" if nvm_has_system_iojs || nvm_has_system_node; then NVM_ADD_SYSTEM=true fi fi - for NVM_VERSION_DIR in $NVM_DIRS_TO_TEST_AND_SEARCH; do - if [ -d "$NVM_VERSION_DIR" ]; then - NVM_DIRS_TO_SEARCH="$NVM_VERSION_DIR $NVM_DIRS_TO_SEARCH" - fi - done + + if ! [ -d "$NVM_DIRS_TO_SEARCH1" ]; then + NVM_DIRS_TO_SEARCH1='' + fi + if ! [ -d "$NVM_DIRS_TO_SEARCH2" ]; then + NVM_DIRS_TO_SEARCH2="$NVM_DIRS_TO_SEARCH1" + fi + if ! [ -d "$NVM_DIRS_TO_SEARCH3" ]; then + NVM_DIRS_TO_SEARCH3="$NVM_DIRS_TO_SEARCH2" + fi if [ -z "$PATTERN" ]; then PATTERN='v' fi - if [ -n "$NVM_DIRS_TO_SEARCH" ]; then - VERSIONS="$(command find $NVM_DIRS_TO_SEARCH -maxdepth 1 -type d -name "$PATTERN*" \ + if [ -n "$NVM_DIRS_TO_SEARCH1$NVM_DIRS_TO_SEARCH2$NVM_DIRS_TO_SEARCH3" ]; then + VERSIONS="$(command find "$NVM_DIRS_TO_SEARCH1" "$NVM_DIRS_TO_SEARCH2" "$NVM_DIRS_TO_SEARCH3" -maxdepth 1 -type d -name "$PATTERN*" \ | command sed " s#$NVM_VERSION_DIR_IOJS/#$NVM_IOJS_PREFIX-#; \#$NVM_VERSION_DIR_IOJS# d; From 41153e207db05f3fe3cf01278cbbc5fac66ea321 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 7 Oct 2015 14:40:31 -0700 Subject: [PATCH 0550/1426] Ensure `nvm use` output shows up *after* `prefix` check passes. --- nvm.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 5e3d9f7..b76655d 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1789,13 +1789,14 @@ nvm() { if [ "$NVM_SYMLINK_CURRENT" = true ]; then command rm -f "$NVM_DIR/current" && ln -s "$NVM_VERSION_DIR" "$NVM_DIR/current" fi + local NVM_USE_OUTPUT if nvm_is_iojs_version "$VERSION"; then if [ $NVM_USE_SILENT -ne 1 ]; then - echo "Now using io.js $(nvm_strip_iojs_prefix "$VERSION")$(nvm_print_npm_version)" + NVM_USE_OUTPUT="Now using io.js $(nvm_strip_iojs_prefix "$VERSION")$(nvm_print_npm_version)" fi else if [ $NVM_USE_SILENT -ne 1 ]; then - echo "Now using node $VERSION$(nvm_print_npm_version)" + NVM_USE_OUTPUT="Now using node $VERSION$(nvm_print_npm_version)" fi fi if [ "_$VERSION" != "_system" ]; then @@ -1811,6 +1812,9 @@ nvm() { return 11 fi fi + if [ -n "$NVM_USE_OUTPUT" ]; then + echo "$NVM_USE_OUTPUT" + fi ;; "run" ) local provided_version From 20f4acdd25d64bd31ddc277184ec471ab2b68ea4 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 7 Oct 2015 20:27:44 -0700 Subject: [PATCH 0551/1426] [installing] echo the URL that the tarball is being downloaded from. --- nvm.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nvm.sh b/nvm.sh index b76655d..0f96c5d 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1011,6 +1011,7 @@ nvm_install_merged_node_binary() { tmptarball="$tmpdir/node-${t}.tar.gz" local NVM_INSTALL_ERRORED command mkdir -p "$tmpdir" && \ + echo "Downloading $url..." && \ nvm_download -L -C - --progress-bar $url -o "$tmptarball" || \ NVM_INSTALL_ERRORED=true if grep '404 Not Found' "$tmptarball" >/dev/null; then @@ -1077,6 +1078,7 @@ nvm_install_iojs_binary() { tmptarball="$tmpdir/iojs-${t}.tar.gz" local NVM_INSTALL_ERRORED command mkdir -p "$tmpdir" && \ + echo "Downloading $url..." && \ nvm_download -L -C - --progress-bar $url -o "$tmptarball" || \ NVM_INSTALL_ERRORED=true if grep '404 Not Found' "$tmptarball" >/dev/null; then @@ -1209,6 +1211,7 @@ nvm_install_node_source() { if ( [ -n "$tarball" ] && \ command mkdir -p "$tmpdir" && \ + echo "Downloading $tarball..." && \ nvm_download -L --progress-bar $tarball -o "$tmptarball" && \ nvm_checksum "$tmptarball" $sum && \ command tar -xzf "$tmptarball" -C "$tmpdir" && \ From cb033adc6f8fa0987ab4268b6298b7161c972c52 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 7 Oct 2015 18:08:48 -0700 Subject: [PATCH 0552/1426] nvm run: use common code path for "ensure version installed" --- nvm.sh | 17 ++++++++++++----- ...rror out sensibly when 0.x is not installed" | 4 ++-- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/nvm.sh b/nvm.sh index 0f96c5d..4db7319 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1846,7 +1846,7 @@ nvm() { fi fi - provided_version=$1 + provided_version="$1" if [ -n "$provided_version" ]; then VERSION="$(nvm_version "$provided_version")" if [ "_$VERSION" = "_N/A" ] && ! nvm_is_valid_version "$provided_version"; then @@ -1860,6 +1860,16 @@ nvm() { fi fi + if [ -n "$NVM_RC_VERSION" ]; then + nvm_ensure_version_installed "$NVM_RC_VERSION" + else + nvm_ensure_version_installed "$provided_version" + fi + EXIT_CODE=$? + if [ "$EXIT_CODE" != "0" ]; then + return $EXIT_CODE + fi + local NVM_IOJS if nvm_is_iojs_version "$VERSION"; then NVM_IOJS=true @@ -1876,10 +1886,7 @@ nvm() { ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; echo $?) setopt shwordsplit fi - if [ "_$VERSION" = "_N/A" ]; then - echo "$(nvm_ensure_version_prefix "$provided_version") is not installed yet" >&2 - EXIT_CODE=1 - elif [ -z "$ARGS" ]; then + if [ -z "$ARGS" ]; then if [ "$NVM_IOJS" = true ]; then nvm exec "$VERSION" iojs else diff --git "a/test/slow/nvm run/Running \"nvm run 0.x\" should error out sensibly when 0.x is not installed" "b/test/slow/nvm run/Running \"nvm run 0.x\" should error out sensibly when 0.x is not installed" index 744ac81..bde5867 100755 --- "a/test/slow/nvm run/Running \"nvm run 0.x\" should error out sensibly when 0.x is not installed" +++ "b/test/slow/nvm run/Running \"nvm run 0.x\" should error out sensibly when 0.x is not installed" @@ -5,5 +5,5 @@ die () { echo $@ ; exit 1; } . ../../../nvm.sh -[ "$(nvm run 0.2 --version 2>&1)" = "v0.2 is not installed yet" ] || die "\`nvm run\` with an uninstalled node version failed to error out correctly" -[ "$(nvm run iojs-0.2 --version 2>&1)" = "iojs-v0.2 is not installed yet" ] || die "\`nvm run\` with an uninstalled iojs version failed to error out correctly" +[ "$(nvm run 0.2 --version 2>&1)" = 'N/A: version "v0.2" is not yet installed' ] || die "\`nvm run\` with an uninstalled node version failed to error out correctly" +[ "$(nvm run iojs-0.2 --version 2>&1)" = 'N/A: version "iojs-v0.2" is not yet installed' ] || die "\`nvm run\` with an uninstalled iojs version failed to error out correctly" From b8e49176469e90c93d6d202839edc403b8721731 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johan=20Bergstr=C3=B6m?= Date: Wed, 9 Sep 2015 12:15:38 +1000 Subject: [PATCH 0553/1426] Use `xz` tarballs if available Saves us ~25% bandwidth while downloading the payload. This only applies to hosts that has the `xz` binary and attempts to use iojs 2.3.2 or newer (this includes nodejs 4.0+ as well). Older targets are unaffected. --- nvm.sh | 43 +++++++++++++++++++++------- test/fast/Unit tests/nvm_supports_xz | 36 +++++++++++++++++++++++ test/fast/teardown | 2 +- 3 files changed, 69 insertions(+), 12 deletions(-) create mode 100755 test/fast/Unit tests/nvm_supports_xz diff --git a/nvm.sh b/nvm.sh index 4db7319..d49acdb 100755 --- a/nvm.sh +++ b/nvm.sh @@ -999,16 +999,24 @@ nvm_install_merged_node_binary() { local url local sum local NODE_PREFIX + local compression + compression="gz" + local tar_compression_flag + tar_compression_flag="x" + if nvm_supports_xz "$VERSION"; then + compression="xz" + tar_compression_flag="J" + fi NODE_PREFIX="$(nvm_node_prefix)" if [ -n "$NVM_OS" ]; then t="$VERSION-$NVM_OS-$(nvm_get_arch)" - url="$MIRROR/$VERSION/$NODE_PREFIX-${t}.tar.gz" - sum="$(nvm_download -L -s $MIRROR/$VERSION/SHASUMS256.txt -o - | command grep $NODE_PREFIX-${t}.tar.gz | command awk '{print $1}')" + url="$MIRROR/$VERSION/$NODE_PREFIX-${t}.tar.${compression}" + sum="$(nvm_download -L -s $MIRROR/$VERSION/SHASUMS256.txt -o - | command grep $NODE_PREFIX-${t}.tar.${compression} | command awk '{print $1}')" local tmpdir tmpdir="$NVM_DIR/bin/node-${t}" local tmptarball - tmptarball="$tmpdir/node-${t}.tar.gz" + tmptarball="$tmpdir/node-${t}.tar.${compression}" local NVM_INSTALL_ERRORED command mkdir -p "$tmpdir" && \ echo "Downloading $url..." && \ @@ -1022,7 +1030,7 @@ nvm_install_merged_node_binary() { [ "$NVM_INSTALL_ERRORED" != true ] && \ echo "WARNING: checksums are currently disabled for node.js v4.0 and later" >&2 && \ # nvm_checksum "$tmptarball" $sum && \ - command tar -xzf "$tmptarball" -C "$tmpdir" --strip-components 1 && \ + command tar -x${tar_compression_flag}f "$tmptarball" -C "$tmpdir" --strip-components 1 && \ command rm -f "$tmptarball" && \ command mkdir -p "$VERSION_PATH" && \ command mv "$tmpdir"/* "$VERSION_PATH" @@ -1066,16 +1074,24 @@ nvm_install_iojs_binary() { local t local url local sum + local compression + compression="gz" + local tar_compression_flag + tar_compression_flag="x" + if nvm_supports_xz "$VERSION"; then + compression="xz" + tar_compression_flag="J" + fi if [ -n "$NVM_OS" ]; then if nvm_binary_available "$VERSION"; then t="$VERSION-$NVM_OS-$(nvm_get_arch)" - url="$MIRROR/$VERSION/$(nvm_iojs_prefix)-${t}.tar.gz" - sum="$(nvm_download -L -s $MIRROR/$VERSION/SHASUMS256.txt -o - | command grep $(nvm_iojs_prefix)-${t}.tar.gz | command awk '{print $1}')" + url="$MIRROR/$VERSION/$(nvm_iojs_prefix)-${t}.tar.${compression}" + sum="$(nvm_download -L -s $MIRROR/$VERSION/SHASUMS256.txt -o - | command grep $(nvm_iojs_prefix)-${t}.tar.${compression} | command awk '{print $1}')" local tmpdir tmpdir="$NVM_DIR/bin/iojs-${t}" local tmptarball - tmptarball="$tmpdir/iojs-${t}.tar.gz" + tmptarball="$tmpdir/iojs-${t}.tar.${compression}" local NVM_INSTALL_ERRORED command mkdir -p "$tmpdir" && \ echo "Downloading $url..." && \ @@ -1089,7 +1105,7 @@ nvm_install_iojs_binary() { [ "$NVM_INSTALL_ERRORED" != true ] && \ echo "WARNING: checksums are currently disabled for io.js" >&2 && \ # nvm_checksum "$tmptarball" $sum && \ - command tar -xzf "$tmptarball" -C "$tmpdir" --strip-components 1 && \ + command tar -x${tar_compression_flag}f "$tmptarball" -C "$tmpdir" --strip-components 1 && \ command rm -f "$tmptarball" && \ command mkdir -p "$VERSION_PATH" && \ command mv "$tmpdir"/* "$VERSION_PATH" @@ -1662,9 +1678,9 @@ nvm() { fi # Delete all files related to target version. command rm -rf "$NVM_DIR/src/$NVM_PREFIX-$VERSION" \ - "$NVM_DIR/src/$NVM_PREFIX-$VERSION.tar.gz" \ + "$NVM_DIR/src/$NVM_PREFIX-$VERSION.tar.*" \ "$NVM_DIR/bin/$NVM_PREFIX-${t}" \ - "$NVM_DIR/bin/$NVM_PREFIX-${t}.tar.gz" \ + "$NVM_DIR/bin/$NVM_PREFIX-${t}.tar.*" \ "$VERSION_PATH" 2>/dev/null echo "$NVM_SUCCESS_MSG" @@ -2200,7 +2216,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' nvm_print_npm_version nvm_npm_global_modules \ nvm_has_system_node nvm_has_system_iojs \ nvm_download nvm_get_latest nvm_has nvm_get_latest \ - nvm_supports_source_options > /dev/null 2>&1 + nvm_supports_source_options nvm_supports_xz > /dev/null 2>&1 unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_DIR NVM_CD_FLAGS > /dev/null 2>&1 ;; * ) @@ -2214,6 +2230,11 @@ nvm_supports_source_options() { [ "_$(echo 'echo $1' | . /dev/stdin yes 2> /dev/null)" = "_yes" ] } +nvm_supports_xz() { + command which xz 2>&1 >/dev/null && \ + nvm_version_greater_than_or_equal_to "$1" "2.3.2" +} + NVM_VERSION="$(nvm_alias default 2>/dev/null || echo)" if nvm_supports_source_options && [ "_$1" = "_--install" ]; then if [ -n "$NVM_VERSION" ]; then diff --git a/test/fast/Unit tests/nvm_supports_xz b/test/fast/Unit tests/nvm_supports_xz new file mode 100755 index 0000000..c7e5a36 --- /dev/null +++ b/test/fast/Unit tests/nvm_supports_xz @@ -0,0 +1,36 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +OLDPATH=$PATH +TEST_PATH=../../xz-test + +mkdir $TEST_PATH +touch ../../xz-test/xz +chmod +x ../../xz-test/xz + +export PATH=$TEST_PATH:$PATH + +$(nvm_supports_xz "v2.3.2") || \ + die "expected 'nvm_supports_xz v2.3.2' to exit with 0" + +$(nvm_supports_xz "v0.12.7") && \ + die "expected 'nvm_supports_xz v0.12.7' to exit with 1" + + +# set up for a failure by having a minimal toolset available +# but remove xz +ln -s /usr/bin/which $TEST_PATH/which +ln -s /usr/bin/command $TEST_PATH/command +ln -s /usr/bin/awk $TEST_PATH/awk +ln -s $(which rm) $TEST_PATH/rm + +export PATH=$TEST_PATH +rm $TEST_PATH/xz + +$(nvm_supports_xz "v2.3.2") && \ + die "expected 'nvm_supports_xz v2.3.2' with a missing xz binary to exit with 1" + +export PATH=$OLDPATH diff --git a/test/fast/teardown b/test/fast/teardown index bd269eb..a1c73df 100755 --- a/test/fast/teardown +++ b/test/fast/teardown @@ -6,5 +6,5 @@ type setopt >/dev/null 2>&1 && setopt NULL_GLOB type shopt >/dev/null 2>&1 && shopt -s nullglob - rm -fR v* src alias + rm -fR v* src alias test/test-xz ) From a0e94e16de60570912432dff50f6359d40306663 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 8 Oct 2015 00:19:53 -0700 Subject: [PATCH 0554/1426] Make sure `nvm debug` doesn't use an overridden `sed` --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index d49acdb..b59922b 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1402,9 +1402,9 @@ nvm_sanitize_path() { local SANITIZED_PATH SANITIZED_PATH="$1" if [ "_$1" != "_$NVM_DIR" ]; then - SANITIZED_PATH="$(echo "$SANITIZED_PATH" | sed "s#$NVM_DIR#\$NVM_DIR#g")" + SANITIZED_PATH="$(echo "$SANITIZED_PATH" | command sed "s#$NVM_DIR#\$NVM_DIR#g")" fi - echo "$SANITIZED_PATH" | sed "s#$HOME#\$HOME#g" + echo "$SANITIZED_PATH" | command sed "s#$HOME#\$HOME#g" } nvm() { From 937c29c95ace2489c0b99bc98b4de27cf0ec9078 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 8 Oct 2015 16:46:16 -0700 Subject: [PATCH 0555/1426] nvm run: use common code path for "ensure version installed" Better than cb033adc6f8fa0987ab4268b6298b7161c972c52 --- nvm.sh | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/nvm.sh b/nvm.sh index b59922b..6bb4ecc 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1876,16 +1876,6 @@ nvm() { fi fi - if [ -n "$NVM_RC_VERSION" ]; then - nvm_ensure_version_installed "$NVM_RC_VERSION" - else - nvm_ensure_version_installed "$provided_version" - fi - EXIT_CODE=$? - if [ "$EXIT_CODE" != "0" ]; then - return $EXIT_CODE - fi - local NVM_IOJS if nvm_is_iojs_version "$VERSION"; then NVM_IOJS=true @@ -1902,7 +1892,10 @@ nvm() { ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; echo $?) setopt shwordsplit fi - if [ -z "$ARGS" ]; then + if [ "_$VERSION" = "_N/A" ]; then + nvm_ensure_version_installed "$provided_version" + EXIT_CODE=$? + elif [ -z "$ARGS" ]; then if [ "$NVM_IOJS" = true ]; then nvm exec "$VERSION" iojs else From a928a8f1810bb3d41e0e2e44b9900def363fe628 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 8 Oct 2015 17:37:53 -0700 Subject: [PATCH 0556/1426] nvm exec: don't fall back to `.nvmrc` when the provided version is not installed. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 6bb4ecc..10b62b6 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1933,7 +1933,7 @@ nvm() { provided_version="$1" if [ -n "$provided_version" ]; then VERSION="$(nvm_version "$provided_version")" - if [ "_$VERSION" = "_N/A" ]; then + if [ "_$VERSION" = "_N/A" ] && ! nvm_is_valid_version "$provided_version"; then nvm_rc_version provided_version="$NVM_RC_VERSION" VERSION="$(nvm_version "$provided_version")" From e1c84bae37afae282f39b91025435c3717e6d0ab Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 9 Oct 2015 01:52:19 -0700 Subject: [PATCH 0557/1426] v0.29.0 --- README.markdown | 6 +++--- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.markdown b/README.markdown index 7d1c41e..5e351d1 100644 --- a/README.markdown +++ b/README.markdown @@ -15,11 +15,11 @@ Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creati To install or update nvm, you can use the [install script][2] using cURL: - curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.28.0/install.sh | bash + curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.28.0/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -236,7 +236,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.28.0/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.29.0/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index 9cb087d..6ea8d36 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ if [ -z "$NVM_DIR" ]; then fi nvm_latest_version() { - echo "v0.28.0" + echo "v0.29.0" } # diff --git a/nvm.sh b/nvm.sh index 10b62b6..2adb33d 100755 --- a/nvm.sh +++ b/nvm.sh @@ -2184,7 +2184,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' nvm_remote_version "$2" ;; "--version" ) - echo "0.28.0" + echo "0.29.0" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum \ diff --git a/package.json b/package.json index 7e9d368..8fe5621 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.28.0", + "version": "0.29.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From affe0baa95104d53d464e1c74f560cf0486a64d9 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Fri, 9 Oct 2015 11:01:07 -0700 Subject: [PATCH 0558/1426] Note compatibility issue with `set -e` See discussion in #865. --- README.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.markdown b/README.markdown index 5e351d1..9ea0e85 100644 --- a/README.markdown +++ b/README.markdown @@ -216,6 +216,10 @@ Environment Variables: $NPM_CONFIG_PREFIX $PREFIX ``` +Shell settings: +``` +set -e +``` ## Problems From c957989fa96ca28994e130cc3682eee87eb40a9f Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 10 Oct 2015 14:27:00 -0700 Subject: [PATCH 0559/1426] Add `nvm --version` and `$HOME` to `nvm debug` --- nvm.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nvm.sh b/nvm.sh index 2adb33d..4dd189a 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1476,7 +1476,9 @@ nvm() { ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; echo $?) setopt shwordsplit fi + echo >&2 "nvm --version: v$(nvm --version)" echo >&2 "\$SHELL: $SHELL" + echo >&2 "\$HOME: $HOME" echo >&2 "\$NVM_DIR: '$(nvm_sanitize_path "$NVM_DIR")'" echo >&2 "\$PREFIX: '$(nvm_sanitize_path "$PREFIX")'" echo >&2 "\$NPM_CONFIG_PREFIX: '$(nvm_sanitize_path "$NPM_CONFIG_PREFIX")'" From bf284203cbc1062f3bf70a43708736ed15b8514b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 12 Oct 2015 16:02:35 -0700 Subject: [PATCH 0560/1426] [shellcheck] Declare and assign separately to avoid masking return values https://github.com/koalaman/shellcheck/wiki/SC2155 --- nvm.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 4dd189a..9a0669b 100755 --- a/nvm.sh +++ b/nvm.sh @@ -78,7 +78,8 @@ if [ -z "$NVM_DIR" ]; then if [ -n "$BASH_SOURCE" ]; then NVM_SCRIPT_SOURCE="${BASH_SOURCE[0]}" fi - export NVM_DIR="$(cd $NVM_CD_FLAGS $(dirname "${NVM_SCRIPT_SOURCE:-$0}") > /dev/null && \pwd)" + NVM_DIR="$(cd $NVM_CD_FLAGS $(dirname "${NVM_SCRIPT_SOURCE:-$0}") > /dev/null && \pwd)" + export NVM_DIR fi unset NVM_SCRIPT_SOURCE 2> /dev/null From 9407f850f1ab16224fc9f80d6fd2e4ccf2cfec47 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 12 Oct 2015 16:05:55 -0700 Subject: [PATCH 0561/1426] [shellcheck] read without -r will mangle backslashes. http://pubs.opengroup.org/onlinepubs/009695399/utilities/read.html / https://github.com/koalaman/shellcheck/wiki/SC2162 --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 9a0669b..bfc8d2f 100755 --- a/nvm.sh +++ b/nvm.sh @@ -137,7 +137,7 @@ nvm_rc_version() { local NVMRC_PATH NVMRC_PATH="$(nvm_find_nvmrc)" if [ -e "$NVMRC_PATH" ]; then - read NVM_RC_VERSION < "$NVMRC_PATH" + read -r NVM_RC_VERSION < "$NVMRC_PATH" echo "Found '$NVMRC_PATH' with version <$NVM_RC_VERSION>" else >&2 echo "No .nvmrc file found" @@ -764,7 +764,7 @@ nvm_print_versions() { local FORMAT local NVM_CURRENT NVM_CURRENT=$(nvm_ls_current) - echo "$1" | while read VERSION; do + echo "$1" | while read -r VERSION; do if [ "_$VERSION" = "_$NVM_CURRENT" ]; then FORMAT='\033[0;32m-> %12s\033[0m' elif [ "$VERSION" = "system" ]; then From 46833efd79f3c2dcc49789f2048b0e2afc2ff34d Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 12 Oct 2015 16:10:43 -0700 Subject: [PATCH 0562/1426] [shellcheck] Remove useless `echo` --- nvm.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nvm.sh b/nvm.sh index bfc8d2f..a393e6d 100755 --- a/nvm.sh +++ b/nvm.sh @@ -327,7 +327,7 @@ nvm_ensure_version_prefix() { local NVM_VERSION NVM_VERSION="$(nvm_strip_iojs_prefix "$1" | command sed -e 's/^\([0-9]\)/v\1/g')" if nvm_is_iojs_version "$1"; then - echo "$(nvm_add_iojs_prefix "$NVM_VERSION")" + nvm_add_iojs_prefix "$NVM_VERSION" else echo "$NVM_VERSION" fi @@ -408,7 +408,7 @@ nvm_ls_current() { if [ $? -ne 0 ]; then echo 'none' elif nvm_tree_contains_path "$(nvm_version_dir iojs)" "$NVM_LS_CURRENT_NODE_PATH"; then - echo "$(nvm_add_iojs_prefix $(iojs --version 2>/dev/null))" + nvm_add_iojs_prefix "$(iojs --version 2>/dev/null)" elif nvm_tree_contains_path "$NVM_DIR" "$NVM_LS_CURRENT_NODE_PATH"; then local VERSION VERSION="$(node --version 2>/dev/null)" @@ -1268,13 +1268,13 @@ nvm_match_version() { PROVIDED_VERSION="$1" case "_$PROVIDED_VERSION" in "_$NVM_IOJS_PREFIX" | "_io.js") - echo "$(nvm_version $NVM_IOJS_PREFIX)" + nvm_version "$NVM_IOJS_PREFIX" ;; "_system") echo "system" ;; *) - echo "$(nvm_version "$PROVIDED_VERSION")" + nvm_version "$PROVIDED_VERSION" ;; esac } From 032fab7172710086cafc44731fed0609d2216e52 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 12 Oct 2015 16:30:59 -0700 Subject: [PATCH 0563/1426] `local`s need to be declared and assigned separately, for `ksh`. --- nvm.sh | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/nvm.sh b/nvm.sh index a393e6d..d18728e 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1357,8 +1357,10 @@ nvm_die_on_prefix() { # latest io.js version available. The expectation is that any potential io.js # version later than v3.3.1 will also have Solaris binaries. iojs_version_has_solaris_binary() { - local IOJS_VERSION=$1 - local STRIPPED_IOJS_VERSION="$(nvm_strip_iojs_prefix $IOJS_VERSION)" + local IOJS_VERSION + IOJS_VERSION="$1" + local STRIPPED_IOJS_VERSION + STRIPPED_IOJS_VERSION="$(nvm_strip_iojs_prefix "$IOJS_VERSION")" if [ "_$STRIPPED_IOJS_VERSION" = "$IOJS_VERSION" ]; then return 1 fi @@ -1372,9 +1374,11 @@ iojs_version_has_solaris_binary() { # Currently, node versions starting from v0.8.6 have a Solaris binary # avaliable. node_version_has_solaris_binary() { - local NODE_VERSION=$1 + local NODE_VERSION + NODE_VERSION="$1" # Error out if $NODE_VERSION is actually an io.js version - local STRIPPED_IOJS_VERSION="$(nvm_strip_iojs_prefix $NODE_VERSION)" + local STRIPPED_IOJS_VERSION + STRIPPED_IOJS_VERSION="$(nvm_strip_iojs_prefix $NODE_VERSION)" if [ "_$STRIPPED_IOJS_VERSION" != "_$NODE_VERSION" ]; then return 1 fi From 8f3ee2339006ae7abbf6dc1a7833940c9fc10c19 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 12 Oct 2015 16:48:12 -0700 Subject: [PATCH 0564/1426] [shellcheck] Correct redirection order: we want both stdout and stderr sent to /dev/null here. --- nvm.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index d18728e..edbc54a 100755 --- a/nvm.sh +++ b/nvm.sh @@ -2231,8 +2231,7 @@ nvm_supports_source_options() { } nvm_supports_xz() { - command which xz 2>&1 >/dev/null && \ - nvm_version_greater_than_or_equal_to "$1" "2.3.2" + command which xz >/dev/null 2>&1 && nvm_version_greater_than_or_equal_to "$1" "2.3.2" } NVM_VERSION="$(nvm_alias default 2>/dev/null || echo)" From 84aad508f778d89d89d37a38d20210a946cf6fd0 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 12 Oct 2015 16:57:45 -0700 Subject: [PATCH 0565/1426] Check `$#` before trying to check `$1`. Avoids failure due to `nounset` bash option. Partially fixes #868. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index edbc54a..b5206d2 100755 --- a/nvm.sh +++ b/nvm.sh @@ -2235,7 +2235,7 @@ nvm_supports_xz() { } NVM_VERSION="$(nvm_alias default 2>/dev/null || echo)" -if nvm_supports_source_options && [ "_$1" = "_--install" ]; then +if nvm_supports_source_options && [ "$#" -gt 0 ] && [ "_$1" = "_--install" ]; then if [ -n "$NVM_VERSION" ]; then nvm install "$NVM_VERSION" >/dev/null elif nvm_rc_version >/dev/null 2>&1; then From e7e28f436ebbee79ba09bf2d452bd1aecd080db4 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 12 Oct 2015 16:07:29 -0700 Subject: [PATCH 0566/1426] [shellcheck] double-quote vars in more places --- nvm.sh | 90 +++++++++++++++++++++++++++++----------------------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/nvm.sh b/nvm.sh index b5206d2..92dcd6e 100755 --- a/nvm.sh +++ b/nvm.sh @@ -33,7 +33,7 @@ nvm_get_latest() { >&2 echo "http://latest.nvm.sh did not redirect to the latest release on Github" return 2 else - echo "$NVM_LATEST_URL" | command awk -F'/' '{print $NF}' + echo "$NVM_LATEST_URL" | command awk -F '/' '{print $NF}' fi } @@ -78,7 +78,7 @@ if [ -z "$NVM_DIR" ]; then if [ -n "$BASH_SOURCE" ]; then NVM_SCRIPT_SOURCE="${BASH_SOURCE[0]}" fi - NVM_DIR="$(cd $NVM_CD_FLAGS $(dirname "${NVM_SCRIPT_SOURCE:-$0}") > /dev/null && \pwd)" + NVM_DIR="$(cd $NVM_CD_FLAGS "$(dirname "${NVM_SCRIPT_SOURCE:-$0}")" > /dev/null && \pwd)" export NVM_DIR fi unset NVM_SCRIPT_SOURCE 2> /dev/null @@ -147,18 +147,18 @@ nvm_rc_version() { nvm_version_greater() { local LHS - LHS=$(nvm_normalize_version "$1") + LHS="$(nvm_normalize_version "$1")" local RHS - RHS=$(nvm_normalize_version "$2") - [ $LHS -gt $RHS ]; + RHS="$(nvm_normalize_version "$2")" + [ "$LHS" -gt "$RHS" ]; } nvm_version_greater_than_or_equal_to() { local LHS - LHS=$(nvm_normalize_version "$1") + LHS="$(nvm_normalize_version "$1")" local RHS - RHS=$(nvm_normalize_version "$2") - [ $LHS -ge $RHS ]; + RHS="$(nvm_normalize_version "$2")" + [ "$LHS" -ge "$RHS" ]; } nvm_version_dir() { @@ -381,7 +381,7 @@ nvm_binary_available() { # binaries started with node 0.8.6 local FIRST_VERSION_WITH_BINARY FIRST_VERSION_WITH_BINARY="0.8.6" - nvm_version_greater_than_or_equal_to "$(nvm_strip_iojs_prefix $1)" "$FIRST_VERSION_WITH_BINARY" + nvm_version_greater_than_or_equal_to "$(nvm_strip_iojs_prefix "$1")" "$FIRST_VERSION_WITH_BINARY" } nvm_alias() { @@ -556,7 +556,7 @@ nvm_ls() { if nvm_resolve_local_alias "$PATTERN"; then return fi - PATTERN=$(nvm_ensure_version_prefix $PATTERN) + PATTERN="$(nvm_ensure_version_prefix "$PATTERN")" ;; esac if [ "_$PATTERN" = "_N/A" ]; then @@ -654,7 +654,7 @@ nvm_ls() { )" fi - if [ $ZHS_HAS_SHWORDSPLIT_UNSET -eq 1 ] && nvm_has "unsetopt"; then + if [ "$ZHS_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then unsetopt shwordsplit fi fi @@ -717,7 +717,7 @@ nvm_ls_remote_iojs_org() { PATTERN="$3" local VERSIONS if [ -n "$PATTERN" ]; then - PATTERN="$(nvm_ensure_version_prefix $(nvm_strip_iojs_prefix "$PATTERN"))" + PATTERN="$(nvm_ensure_version_prefix "$(nvm_strip_iojs_prefix "$PATTERN")")" else PATTERN=".*" fi @@ -774,7 +774,7 @@ nvm_print_versions() { else FORMAT='%15s' fi - command printf "$FORMAT\n" $VERSION + command printf "$FORMAT\n" "$VERSION" done } @@ -821,7 +821,7 @@ nvm_print_implicit_alias() { NVM_COMMAND="nvm_ls_remote_iojs" NVM_ADD_PREFIX_COMMAND="nvm_add_iojs_prefix" if [ "_$1" = "_local" ]; then - NVM_COMMAND="nvm_ls "$NVM_IMPLICIT"" + NVM_COMMAND="nvm_ls $NVM_IMPLICIT" fi ZHS_HAS_SHWORDSPLIT_UNSET=1 @@ -835,10 +835,10 @@ nvm_print_implicit_alias() { NVM_IOJS_VERSION="$($NVM_COMMAND)" EXIT_CODE="$?" if [ "_$EXIT_CODE" = "_0" ]; then - NVM_IOJS_VERSION="$(echo "$NVM_IOJS_VERSION" | sed "s/^"$NVM_IMPLICIT"-//" | command grep -e '^v' | command cut -c2- | command cut -d . -f 1,2 | uniq | command tail -1)" + NVM_IOJS_VERSION="$(echo "$NVM_IOJS_VERSION" | sed "s/^$NVM_IMPLICIT-//" | command grep -e '^v' | command cut -c2- | command cut -d . -f 1,2 | uniq | command tail -1)" fi - if [ $ZHS_HAS_SHWORDSPLIT_UNSET -eq 1 ] && nvm_has "unsetopt"; then + if [ "$ZHS_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then unsetopt shwordsplit fi @@ -867,7 +867,7 @@ nvm_print_implicit_alias() { LAST_TWO=$($NVM_COMMAND | command grep -e '^v' | command cut -c2- | command cut -d . -f 1,2 | uniq) - if [ $ZHS_HAS_SHWORDSPLIT_UNSET -eq 1 ] && nvm_has "unsetopt"; then + if [ "$ZHS_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then unsetopt shwordsplit fi ;; @@ -889,21 +889,21 @@ nvm_print_implicit_alias() { STABLE="$MINOR" else MOD=$(expr "$NORMALIZED_VERSION" \/ 1000000 \% 2) - if [ $MOD -eq 0 ]; then + if [ "$MOD" -eq 0 ]; then STABLE="$MINOR" - elif [ $MOD -eq 1 ]; then + elif [ "$MOD" -eq 1 ]; then UNSTABLE="$MINOR" fi fi done - if [ $ZHS_HAS_SHWORDSPLIT_UNSET -eq 1 ] && nvm_has "unsetopt"; then + if [ "$ZHS_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then unsetopt shwordsplit fi - if [ "_$2" = "_stable" ]; then - echo $STABLE - elif [ "_$2" = "_unstable" ]; then - echo $UNSTABLE + if [ "_$2" = '_stable' ]; then + echo "${STABLE}" + elif [ "_$2" = '_unstable' ]; then + echo "${UNSTABLE}" fi } @@ -1013,7 +1013,7 @@ nvm_install_merged_node_binary() { if [ -n "$NVM_OS" ]; then t="$VERSION-$NVM_OS-$(nvm_get_arch)" url="$MIRROR/$VERSION/$NODE_PREFIX-${t}.tar.${compression}" - sum="$(nvm_download -L -s $MIRROR/$VERSION/SHASUMS256.txt -o - | command grep $NODE_PREFIX-${t}.tar.${compression} | command awk '{print $1}')" + sum="$(nvm_download -L -s "$MIRROR/$VERSION/SHASUMS256.txt" -o - | command grep "${NODE_PREFIX}-${t}.tar.${compression}" | command awk '{print $1}')" local tmpdir tmpdir="$NVM_DIR/bin/node-${t}" local tmptarball @@ -1021,7 +1021,7 @@ nvm_install_merged_node_binary() { local NVM_INSTALL_ERRORED command mkdir -p "$tmpdir" && \ echo "Downloading $url..." && \ - nvm_download -L -C - --progress-bar $url -o "$tmptarball" || \ + nvm_download -L -C - --progress-bar "$url" -o "$tmptarball" || \ NVM_INSTALL_ERRORED=true if grep '404 Not Found' "$tmptarball" >/dev/null; then NVM_INSTALL_ERRORED=true @@ -1030,7 +1030,7 @@ nvm_install_merged_node_binary() { if ( [ "$NVM_INSTALL_ERRORED" != true ] && \ echo "WARNING: checksums are currently disabled for node.js v4.0 and later" >&2 && \ - # nvm_checksum "$tmptarball" $sum && \ + # nvm_checksum "$tmptarball" "$sum" && \ command tar -x${tar_compression_flag}f "$tmptarball" -C "$tmpdir" --strip-components 1 && \ command rm -f "$tmptarball" && \ command mkdir -p "$VERSION_PATH" && \ @@ -1088,7 +1088,7 @@ nvm_install_iojs_binary() { if nvm_binary_available "$VERSION"; then t="$VERSION-$NVM_OS-$(nvm_get_arch)" url="$MIRROR/$VERSION/$(nvm_iojs_prefix)-${t}.tar.${compression}" - sum="$(nvm_download -L -s $MIRROR/$VERSION/SHASUMS256.txt -o - | command grep $(nvm_iojs_prefix)-${t}.tar.${compression} | command awk '{print $1}')" + sum="$(nvm_download -L -s "$MIRROR/$VERSION/SHASUMS256.txt" -o - | command grep "$(nvm_iojs_prefix)-${t}.tar.${compression}" | command awk '{print $1}')" local tmpdir tmpdir="$NVM_DIR/bin/iojs-${t}" local tmptarball @@ -1096,7 +1096,7 @@ nvm_install_iojs_binary() { local NVM_INSTALL_ERRORED command mkdir -p "$tmpdir" && \ echo "Downloading $url..." && \ - nvm_download -L -C - --progress-bar $url -o "$tmptarball" || \ + nvm_download -L -C - --progress-bar "$url" -o "$tmptarball" || \ NVM_INSTALL_ERRORED=true if grep '404 Not Found' "$tmptarball" >/dev/null; then NVM_INSTALL_ERRORED=true @@ -1105,7 +1105,7 @@ nvm_install_iojs_binary() { if ( [ "$NVM_INSTALL_ERRORED" != true ] && \ echo "WARNING: checksums are currently disabled for io.js" >&2 && \ - # nvm_checksum "$tmptarball" $sum && \ + # nvm_checksum "$tmptarball" "$sum" && \ command tar -x${tar_compression_flag}f "$tmptarball" -C "$tmpdir" --strip-components 1 && \ command rm -f "$tmptarball" && \ command mkdir -p "$VERSION_PATH" && \ @@ -1145,19 +1145,19 @@ nvm_install_node_binary() { if nvm_binary_available "$VERSION"; then local NVM_ARCH NVM_ARCH="$(nvm_get_arch)" - if [ $NVM_ARCH = "armv6l" ] || [ $NVM_ARCH = "armv7l" ]; then + if [ "_$NVM_ARCH" = '_armv6l' ] || [ "_$NVM_ARCH" = 'armv7l' ]; then NVM_ARCH="arm-pi" fi t="$VERSION-$NVM_OS-$NVM_ARCH" url="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-${t}.tar.gz" - sum=`nvm_download -L -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt -o - | command grep node-${t}.tar.gz | command awk '{print $1}'` + sum=`nvm_download -L -s "$NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt" -o - | command grep "node-${t}.tar.gz" | command awk '{print $1}'` local tmpdir tmpdir="$NVM_DIR/bin/node-${t}" local tmptarball tmptarball="$tmpdir/node-${t}.tar.gz" local NVM_INSTALL_ERRORED command mkdir -p "$tmpdir" && \ - nvm_download -L -C - --progress-bar $url -o "$tmptarball" || \ + nvm_download -L -C - --progress-bar "$url" -o "$tmptarball" || \ NVM_INSTALL_ERRORED=true if grep '404 Not Found' "$tmptarball" >/dev/null; then NVM_INSTALL_ERRORED=true @@ -1165,7 +1165,7 @@ nvm_install_node_binary() { fi if ( [ "$NVM_INSTALL_ERRORED" != true ] && \ - nvm_checksum "$tmptarball" $sum && \ + nvm_checksum "$tmptarball" "$sum" && \ command tar -xzf "$tmptarball" -C "$tmpdir" --strip-components 1 && \ command rm -f "$tmptarball" && \ command mkdir -p "$VERSION_PATH" && \ @@ -1190,7 +1190,7 @@ nvm_install_node_source() { local NVM_ARCH NVM_ARCH="$(nvm_get_arch)" - if [ $NVM_ARCH = "armv6l" ] || [ $NVM_ARCH = "armv7l" ]; then + if [ "_$NVM_ARCH" = '_armv6l' ] || [ "_$NVM_ARCH" = '_armv7l' ]; then ADDITIONAL_PARAMETERS="--without-snapshot $ADDITIONAL_PARAMETERS" fi @@ -1220,7 +1220,7 @@ nvm_install_node_source() { if [ "`nvm_download -L -s -I "$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" -o - 2>&1 | command grep '200 OK'`" != '' ]; then tarball="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" - sum=`nvm_download -L -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt -o - | command grep "node-$VERSION.tar.gz" | command awk '{print $1}'` + sum=`nvm_download -L -s "$NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt" -o - | command grep "node-${VERSION}.tar.gz" | command awk '{print $1}'` elif [ "`nvm_download -L -s -I "$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" -o - | command grep '200 OK'`" != '' ]; then tarball="$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" fi @@ -1229,8 +1229,8 @@ nvm_install_node_source() { [ -n "$tarball" ] && \ command mkdir -p "$tmpdir" && \ echo "Downloading $tarball..." && \ - nvm_download -L --progress-bar $tarball -o "$tmptarball" && \ - nvm_checksum "$tmptarball" $sum && \ + nvm_download -L --progress-bar "$tarball" -o "$tmptarball" && \ + nvm_checksum "$tmptarball" "$sum" && \ command tar -xzf "$tmptarball" -C "$tmpdir" && \ cd "$tmpdir/node-$VERSION" && \ ./configure --prefix="$VERSION_PATH" $ADDITIONAL_PARAMETERS && \ @@ -1378,7 +1378,7 @@ node_version_has_solaris_binary() { NODE_VERSION="$1" # Error out if $NODE_VERSION is actually an io.js version local STRIPPED_IOJS_VERSION - STRIPPED_IOJS_VERSION="$(nvm_strip_iojs_prefix $NODE_VERSION)" + STRIPPED_IOJS_VERSION="$(nvm_strip_iojs_prefix "$NODE_VERSION")" if [ "_$STRIPPED_IOJS_VERSION" != "_$NODE_VERSION" ]; then return 1 fi @@ -1493,7 +1493,7 @@ nvm() { NVM_DEBUG_OUTPUT="$($NVM_DEBUG_COMMAND 2>&1)" echo >&2 "$NVM_DEBUG_COMMAND: $(nvm_sanitize_path "$NVM_DEBUG_OUTPUT")" done - if [ "_$ZHS_HAS_SHWORDSPLIT_UNSET" = "_1" ] && nvm_has "unsetopt"; then + if [ "$ZHS_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then unsetopt shwordsplit fi return 42 @@ -1678,7 +1678,7 @@ nvm() { local NVM_SUCCESS_MSG if nvm_is_iojs_version "$VERSION"; then NVM_PREFIX="$(nvm_iojs_prefix)" - NVM_SUCCESS_MSG="Uninstalled io.js $(nvm_strip_iojs_prefix $VERSION)" + NVM_SUCCESS_MSG="Uninstalled io.js $(nvm_strip_iojs_prefix "$VERSION")" else NVM_PREFIX="$(nvm_node_prefix)" NVM_SUCCESS_MSG="Uninstalled node $VERSION" @@ -1692,7 +1692,7 @@ nvm() { echo "$NVM_SUCCESS_MSG" # rm any aliases that point to uninstalled version. - for ALIAS in `command grep -l $VERSION "$(nvm_alias_path)/*" 2>/dev/null` + for ALIAS in `command grep -l "$VERSION" "$(nvm_alias_path)/*" 2>/dev/null` do nvm unalias "$(command basename "$ALIAS")" done @@ -1918,7 +1918,7 @@ nvm() { OUTPUT="$(nvm use "$VERSION" >/dev/null && node $ARGS)" EXIT_CODE="$?" fi - if [ $ZHS_HAS_SHWORDSPLIT_UNSET -eq 1 ] && nvm_has "unsetopt"; then + if [ "$ZHS_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then unsetopt shwordsplit fi if [ -n "$OUTPUT" ]; then @@ -1956,7 +1956,7 @@ nvm() { fi [ $NVM_SILENT -eq 1 ] || echo "Running node $VERSION$(nvm_print_npm_version)" - NODE_VERSION="$VERSION" $NVM_DIR/nvm-exec "$@" + NODE_VERSION="$VERSION" "$NVM_DIR/nvm-exec" "$@" ;; "ls" | "list" ) local NVM_LS_OUTPUT @@ -2181,7 +2181,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' set +f; unset IFS # restore variable expansion in case $LINKS was empty ;; "clear-cache" ) - command rm -f $NVM_DIR/v* "$(nvm_version_dir)" 2>/dev/null + command rm -f "$NVM_DIR/v*" "$(nvm_version_dir)" 2>/dev/null echo "Cache cleared." ;; "version" ) From 2a0316f80d7dfb2d9066c0cffc7fc3799429d2a8 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 13 Oct 2015 01:26:43 -0700 Subject: [PATCH 0567/1426] [shellcheck] Remove useless `echo` --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 92dcd6e..948d8b3 100755 --- a/nvm.sh +++ b/nvm.sh @@ -845,7 +845,7 @@ nvm_print_implicit_alias() { if [ "_$NVM_IOJS_VERSION" = "_N/A" ]; then echo "N/A" else - echo "$($NVM_ADD_PREFIX_COMMAND "$NVM_IOJS_VERSION")" + $NVM_ADD_PREFIX_COMMAND "$NVM_IOJS_VERSION" fi return $EXIT_CODE ;; From 016e7dfdab9999fdb205ebd3507ebd99dcb2c63a Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 13 Oct 2015 21:58:35 -0700 Subject: [PATCH 0568/1426] [nvm run / nvm exec]: Silence "find nvmrc" output when `--silent` is provided. Per https://github.com/creationix/nvm/issues/846#issuecomment-147588453 --- nvm.sh | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index 948d8b3..7084e4c 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1857,7 +1857,11 @@ nvm() { fi if [ $# -lt 1 ]; then - nvm_rc_version && has_checked_nvmrc=1 + if [ "$NVM_SILENT" -eq 1 ]; then + nvm_rc_version >/dev/null 2>&1 && has_checked_nvmrc=1 + else + nvm_rc_version && has_checked_nvmrc=1 + fi if [ -n "$NVM_RC_VERSION" ]; then VERSION="$(nvm_version "$NVM_RC_VERSION")" else @@ -1875,7 +1879,11 @@ nvm() { if [ "_$VERSION" = "_N/A" ] && ! nvm_is_valid_version "$provided_version"; then provided_version='' if [ $has_checked_nvmrc -ne 1 ]; then - nvm_rc_version && has_checked_nvmrc=1 + if [ "$NVM_SILENT" -eq 1 ]; then + nvm_rc_version >/dev/null 2>&1 && has_checked_nvmrc=1 + else + nvm_rc_version && has_checked_nvmrc=1 + fi fi VERSION="$(nvm_version "$NVM_RC_VERSION")" else @@ -1941,7 +1949,11 @@ nvm() { if [ -n "$provided_version" ]; then VERSION="$(nvm_version "$provided_version")" if [ "_$VERSION" = "_N/A" ] && ! nvm_is_valid_version "$provided_version"; then - nvm_rc_version + if [ "$NVM_SILENT" -eq 1 ]; then + nvm_rc_version >/dev/null 2>&1 + else + nvm_rc_version + fi provided_version="$NVM_RC_VERSION" VERSION="$(nvm_version "$provided_version")" else From 0b9526e3b4a4ff554d2d20a9a72d945bf7565068 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 14 Oct 2015 22:06:47 -0700 Subject: [PATCH 0569/1426] Don't check `$1` unless `$#` is >= 1. Fixes #873. Partially fixes #868. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 7084e4c..2dae812 100755 --- a/nvm.sh +++ b/nvm.sh @@ -2239,7 +2239,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' } nvm_supports_source_options() { - [ "_$(echo 'echo $1' | . /dev/stdin yes 2> /dev/null)" = "_yes" ] + [ "_$(echo '[ $# -gt 0 ] && echo $1' | . /dev/stdin yes 2> /dev/null)" = "_yes" ] } nvm_supports_xz() { From 84c2d6a91f2f7aab8f90f4ebf125ddf0d0e1b4cf Mon Sep 17 00:00:00 2001 From: Derek Willian Stavis Date: Thu, 15 Oct 2015 20:53:04 -0300 Subject: [PATCH 0570/1426] README: Add link to a dedicated nvm wrapper for fish shell Includes references to `nvm` plugin for Oh My Fish framework, which implements not only a fish wrapper to official `nvm` script, but also provides completions. --- README.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index 9ea0e85..6f9f254 100644 --- a/README.markdown +++ b/README.markdown @@ -8,7 +8,8 @@ Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/n - [nvmw](https://github.com/hakobera/nvmw) - [nvm-windows](https://github.com/coreybutler/nvm-windows) -Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creationix/nvm/issues/303)). An alternative exists, which is neither supported nor developed by us: +Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creationix/nvm/issues/303)). Alternatives exist, which are neither supported nor developed by us: + - [nvm](https://github.com/derekstavis/plugin-nvm) plugin for [Oh My Fish](https://github.com/oh-my-fish/oh-my-fish), which makes nvm and its completions available in fish shell - [bass](https://github.com/edc/bass) allows to use utilities written for Bash in fish shell ### Install script From 690543d6ad291d58bb6f000926cfedb00030e773 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 17 Oct 2015 10:19:39 -0700 Subject: [PATCH 0571/1426] =?UTF-8?q?Rename=20nvm=5Fls=5Fremote=5Fiojs=5Fo?= =?UTF-8?q?rg=20=E2=86=92=20nvm=5Fls=5Fremote=5Findex=5Ftab=20and=20make?= =?UTF-8?q?=20it=20generic.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nvm.sh | 41 +++++++++++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/nvm.sh b/nvm.sh index 2dae812..8dae1ae 100755 --- a/nvm.sh +++ b/nvm.sh @@ -700,34 +700,47 @@ nvm_ls_remote() { } nvm_ls_remote_iojs() { - nvm_ls_remote_iojs_org std "$NVM_IOJS_ORG_MIRROR" "$1" + nvm_ls_remote_index_tab iojs std "$NVM_IOJS_ORG_MIRROR" "$1" } -nvm_ls_remote_iojs_org() { - local PREFIX - if [ "_$1" = "_std" ]; then - PREFIX="$(nvm_iojs_prefix)" - else - echo "unknown type of io.js release" >&2 - return 4 +nvm_ls_remote_index_tab() { + if [ "$#" -lt 4 ]; then + echo "not enough arguments" >&2 + return 5 fi + local TYPE + TYPE="$1" + local PREFIX + case "$TYPE-$2" in + iojs-std) PREFIX="$(nvm_iojs_prefix)-" ;; + iojs-*) + echo "unknown type of io.js release" >&2 + return 4 + ;; + esac + local SORT_COMMAND + SORT_COMMAND='sort' local MIRROR - MIRROR="$2" + MIRROR="$3" local PATTERN - PATTERN="$3" + PATTERN="$4" local VERSIONS if [ -n "$PATTERN" ]; then - PATTERN="$(nvm_ensure_version_prefix "$(nvm_strip_iojs_prefix "$PATTERN")")" + if [ "_$TYPE" = "_iojs" ]; then + PATTERN="$(nvm_ensure_version_prefix "$(nvm_strip_iojs_prefix "$PATTERN")")" + else + PATTERN="$(nvm_ensure_version_prefix "$PATTERN")" + fi else PATTERN=".*" fi VERSIONS="$(nvm_download -L -s "$MIRROR/index.tab" -o - \ | command sed " 1d; - s/^/$PREFIX-/; + s/^/$PREFIX/; s/[[:blank:]].*//" \ | command grep -w "$PATTERN" \ - | command sort)" + | $SORT_COMMAND)" if [ -z "$VERSIONS" ]; then echo "N/A" return 3 @@ -2210,7 +2223,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' nvm_iojs_prefix nvm_node_prefix \ nvm_add_iojs_prefix nvm_strip_iojs_prefix \ nvm_is_iojs_version nvm_is_alias \ - nvm_ls_remote nvm_ls_remote_iojs nvm_ls_remote_iojs_org \ + nvm_ls_remote nvm_ls_remote_iojs nvm_ls_remote_index_tab \ nvm_ls nvm_remote_version nvm_remote_versions \ nvm_install_iojs_binary nvm_install_node_binary \ nvm_install_node_source \ From 114f27a075edbf7243e947f59d6f7776e3df1e37 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 17 Oct 2015 10:34:42 -0700 Subject: [PATCH 0572/1426] Use `nvm_ls_remote_index_tab` for listing nodejs.org versions. Enabled by https://github.com/nodejs/build/issues/218, unblocks #870. --- nvm.sh | 29 +- .../fast/Unit tests/nodejs.org-dist-index.tab | 225 +++++++++ test/fast/Unit tests/nvm_ls_remote | 438 +----------------- 3 files changed, 247 insertions(+), 445 deletions(-) create mode 100644 test/fast/Unit tests/nodejs.org-dist-index.tab diff --git a/nvm.sh b/nvm.sh index 8dae1ae..504d629 100755 --- a/nvm.sh +++ b/nvm.sh @@ -678,9 +678,6 @@ nvm_ls() { nvm_ls_remote() { local PATTERN PATTERN="$1" - local VERSIONS - local GREP_OPTIONS - GREP_OPTIONS='' if nvm_validate_implicit_alias "$PATTERN" 2> /dev/null ; then PATTERN="$(nvm_ls_remote "$(nvm_print_implicit_alias remote "$PATTERN")" | command tail -n1)" elif [ -n "$PATTERN" ]; then @@ -688,15 +685,7 @@ nvm_ls_remote() { else PATTERN=".*" fi - VERSIONS=`nvm_download -L -s $NVM_NODEJS_ORG_MIRROR/ -o - \ - | \egrep -o 'v[0-9]+\.[0-9]+\.[0-9]+' \ - | command grep -w "${PATTERN}" \ - | command sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n` - if [ -z "$VERSIONS" ]; then - echo "N/A" - return 3 - fi - echo "$VERSIONS" + nvm_ls_remote_index_tab node std "$NVM_NODEJS_ORG_MIRROR" "$PATTERN" } nvm_ls_remote_iojs() { @@ -713,13 +702,21 @@ nvm_ls_remote_index_tab() { local PREFIX case "$TYPE-$2" in iojs-std) PREFIX="$(nvm_iojs_prefix)-" ;; + node-std) PREFIX='' ;; iojs-*) echo "unknown type of io.js release" >&2 return 4 ;; + node-*) + echo "unknown type of node.js release" >&2 + return 4 + ;; esac local SORT_COMMAND SORT_COMMAND='sort' + case "$TYPE" in + node) SORT_COMMAND='sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n' ;; + esac local MIRROR MIRROR="$3" local PATTERN @@ -734,6 +731,11 @@ nvm_ls_remote_index_tab() { else PATTERN=".*" fi + ZHS_HAS_SHWORDSPLIT_UNSET=1 + if nvm_has "setopt"; then + ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; echo $?) + setopt shwordsplit + fi VERSIONS="$(nvm_download -L -s "$MIRROR/index.tab" -o - \ | command sed " 1d; @@ -741,6 +743,9 @@ nvm_ls_remote_index_tab() { s/[[:blank:]].*//" \ | command grep -w "$PATTERN" \ | $SORT_COMMAND)" + if [ "$ZHS_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then + unsetopt shwordsplit + fi if [ -z "$VERSIONS" ]; then echo "N/A" return 3 diff --git a/test/fast/Unit tests/nodejs.org-dist-index.tab b/test/fast/Unit tests/nodejs.org-dist-index.tab new file mode 100644 index 0000000..354c6a7 --- /dev/null +++ b/test/fast/Unit tests/nodejs.org-dist-index.tab @@ -0,0 +1,225 @@ +version date files npm v8 uv zlib openssl modules lts +v4.2.1 2015-10-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 Argon +v4.2.0 2015-10-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 Argon +v4.1.2 2015-10-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.4 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 - +v4.1.1 2015-09-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.4 4.5.103.33 1.7.4 1.2.8 1.0.2d 46 - +v4.1.0 2015-09-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.3 4.5.103.33 1.7.4 1.2.8 1.0.2d 46 - +v4.0.0 2015-09-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.2 4.5.103.30 1.7.3 1.2.8 1.0.2d 46 - +v0.12.7 2015-07-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.11.3 3.28.71.19 1.6.1 1.2.8 1.0.1p 14 - +v0.12.6 2015-07-04 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.11.2 3.28.71.19 1.6.1 1.2.8 1.0.1o 14 - +v0.12.5 2015-06-22 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.11.2 3.28.71.19 1.6.1 1.2.8 1.0.1o 14 - +v0.12.4 2015-05-23 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.10.1 3.28.71.19 1.5.0 1.2.8 1.0.1m 14 - +v0.12.3 2015-05-14 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.9.1 3.28.71.19 1.5.0 1.2.8 1.0.1m 14 - +v0.12.2 2015-03-31 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.7.4 3.28.73.0 1.4.2 1.2.8 1.0.1m 14 - +v0.12.1 2015-03-24 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.5.1 3.28.73.0 1.0.2 1.2.8 1.0.1m 14 - +v0.12.0 2015-02-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.5.1 3.28.73.0 1.0.2 1.2.8 1.0.1l 14 - +v0.11.16 2015-01-30 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.3.0 3.28.73.0 1.0.2 1.2.8 1.0.1l 14 - +v0.11.15 2015-01-20 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.1.6 3.28.73.0 1.0.2 1.2.8 1.0.1j 14 - +v0.11.14 2015-01-16 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.0.0 3.26.33.0 1.0.0 1.2.3 1.0.1i 14 - +v0.11.13 2014-05-02 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.9 3.25.30.0 0.11.25 1.2.3 1.0.1g 14 - +v0.11.12 2014-04-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.3 3.22.24.19 0.11.22 1.2.3 1.0.1f 14 - +v0.11.11 2014-04-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.25 3.22.24.19 0.11.18 1.2.3 1.0.1f 14 - +v0.11.10 2014-04-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.22 3.22.24.10 0.11.17 1.2.3 1.0.1e 13 - +v0.11.9 2013-12-02 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.15 3.22.24.5 0.11.15 1.2.3 1.0.1e 13 - +v0.11.8 2013-12-02 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.13 3.21.18.3 0.11.14 1.2.3 1.0.1e 13 - +v0.11.7 2013-10-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.8 3.20.17.0 0.11.13 1.2.3 1.0.1e 0x000C - +v0.11.6 2013-08-22 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x86-msi 1.3.8 3.20.14.1 0.11.8 1.2.3 1.0.1e 0x000C - +v0.11.5 2013-08-12 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.6 3.20.11.0 0.11.7 1.2.3 1.0.1e 0x000C - +v0.11.4 2013-07-12 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x86-msi 1.3.4 3.20.2.0 0.11.5 1.2.3 1.0.1e 0x000C - +v0.11.3 2013-06-26 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.25 3.19.13.0 0.11.5 1.2.3 1.0.1e 0x000C - +v0.11.2 2013-05-13 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.21 3.19.0.0 0.11.2 1.2.3 1.0.1e 0x000C - +v0.11.1 2013-04-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.18 3.18.0.0 0.11.1 1.2.3 1.0.1e 0x000C - +v0.11.0 2013-04-01 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.15 3.17.13.0 0.10.3 1.2.3 1.0.1e 0x000C - +v0.10.40 2015-07-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.36 1.2.8 1.0.1p 11 - +v0.10.39 2015-06-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.36 1.2.8 1.0.1o 11 - +v0.10.38 2015-03-23 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.36 1.2.8 1.0.1m 11 - +v0.10.37 2015-03-12 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.36 1.2.8 1.0.1l 11 - +v0.10.36 2015-01-30 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.30 1.2.8 1.0.1l 11 - +v0.10.35 2014-12-22 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.30 1.2.8 1.0.1j 11 - +v0.10.34 2014-12-17 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.30 1.2.8 1.0.1j 11 - +v0.10.33 2014-10-21 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.29 1.2.3 1.0.1j 11 - +v0.10.32 2014-09-16 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.28 1.2.3 1.0.1i 11 - +v0.10.31 2014-08-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.23 3.14.5.9 0.10.28 1.2.3 1.0.1i 11 - +v0.10.30 2014-07-31 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.21 3.14.5.9 0.10.28 1.2.3 1.0.1h 11 - +v0.10.29 2014-06-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.14 3.14.5.9 0.10.27 1.2.3 1.0.1h 11 - +v0.10.28 2014-06-13 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.9 3.14.5.9 0.10.27 1.2.3 1.0.1g 11 - +v0.10.27 2014-08-07 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.8 3.14.5.9 0.10.27 1.2.3 1.0.1g 11 - +v0.10.26 2014-04-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.3 3.14.5.9 0.10.25 1.2.3 1.0.1e 11 - +v0.10.25 2014-04-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.24 3.14.5.9 0.10.23 1.2.3 1.0.1e 11 - +v0.10.24 2013-12-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.21 3.14.5.9 0.10.21 1.2.3 1.0.1e 11 - +v0.10.23 2013-12-12 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.17 3.14.5.9 0.10.20 1.2.3 1.0.1e 11 - +v0.10.22 2013-12-02 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.14 3.14.5.9 0.10.19 1.2.3 1.0.1e 11 - +v0.10.21 2013-10-18 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.11 3.14.5.9 0.10.18 1.2.3 1.0.1e 11 - +v0.10.20 2013-09-30 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.11 3.14.5.9 0.10.17 1.2.3 1.0.1e 11 - +v0.10.19 2013-09-26 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.11 3.14.5.9 0.10.17 1.2.3 1.0.1e 11 - +v0.10.18 2013-10-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.8 3.14.5.9 0.10.15 1.2.3 1.0.1e 11 - +v0.10.17 2013-08-25 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.8 3.14.5.9 0.10.14 1.2.3 1.0.1e 11 - +v0.10.16 2013-08-16 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.8 3.14.5.9 0.10.13 1.2.3 1.0.1e 11 - +v0.10.15 2013-08-12 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.5 3.14.5.9 0.10.13 1.2.3 1.0.1e 11 - +v0.10.14 2013-08-12 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.5 3.14.5.9 0.10.13 1.2.3 1.0.1e 11 - +v0.10.13 2013-07-13 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.2 3.14.5.9 0.10.12 1.2.3 1.0.1e 11 - +v0.10.12 2013-06-18 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.32 3.14.5.9 0.10.11 1.2.3 1.0.1e 11 - +v0.10.11 2013-06-13 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.30 3.14.5.9 0.10.11 1.2.3 1.0.1e 11 - +v0.10.10 2013-06-04 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.25 3.14.5.9 0.10.10 1.2.3 1.0.1e 11 - +v0.10.9 2013-06-02 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.24 3.14.5.9 0.10.9 1.2.3 1.0.1e 11 - +v0.10.8 2013-05-24 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.23 3.14.5.9 0.10.8 1.2.3 1.0.1e 11 - +v0.10.7 2013-05-17 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.21 3.14.5.8 0.10.7 1.2.3 1.0.1e 11 - +v0.10.6 2013-05-14 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.18 3.14.5.8 0.10.5 1.2.3 1.0.1e 11 - +v0.10.5 2013-04-26 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.18 3.14.5.8 0.10.5 1.2.3 1.0.1e 11 - +v0.10.4 2013-04-26 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.18 3.14.5.8 0.10.4 1.2.3 1.0.1e 11 - +v0.10.3 2013-04-26 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.17 3.14.5.8 0.10.3 1.2.3 1.0.1e 0x000B - +v0.10.2 2013-03-28 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.15 3.14.5.8 0.10.3 1.2.3 1.0.1e 0x000B - +v0.10.1 2013-03-21 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.15 3.14.5.8 0.10 1.2.3 1.0.1e 0x000B - +v0.10.0 2013-03-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.14 3.14.5.8 0.9 1.2.3 1.0.1e 0x000B - +v0.9.12 2013-03-07 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.12 3.14.5.8 0.9 1.2.3 1.0.1e 0x000B - +v0.9.11 2013-03-01 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.12 3.14.5.0 0.9 1.2.3 1.0.1e 0x000B - +v0.9.10 2013-02-25 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.12 3.15.11.15 0.9 1.2.3 1.0.1c 0x000B - +v0.9.9 2013-02-07 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.10 3.15.11.10 0.9 1.2.3 1.0.1c 0x000B - +v0.9.8 2013-02-02 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.3 3.15.11.10 0.9 1.2.3 1.0.1c 0x000A - +v0.9.7 2013-01-18 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.2 3.15.11.7 0.9 1.2.3 1.0.1c 0x000A - +v0.9.6 2013-01-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.0 3.15.11.5 0.9 1.2.3 1.0.1c 0x000A - +v0.9.5 2012-12-30 linux-x64,linux-x86,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.70 3.13.7.4 0.9 1.2.3 1.0.1c 0x000A - +v0.9.4 2012-12-21 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.70 3.13.7.4 0.9 1.2.3 1.0.1c 0x000A - +v0.9.3 2015-10-14 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.64 3.13.7.4 0.9 1.2.3 1.0.1c 0x000A - +v0.9.2 2012-09-17 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.61 3.11.10.22 0.9 1.2.3 1.0.1c 0x000A - +v0.9.1 2012-09-13 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.59 3.11.10.19 0.9 1.2.3 1.0.0f 0x000A - +v0.9.0 2012-07-20 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.44 3.11.10.15 0.9 1.2.3 1.0.0f 1 - +v0.8.28 2014-07-31 linux-x64,linux-x86,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.30 3.11.10.26 0.8 1.2.3 1.0.0f 1 - +v0.8.27 2014-06-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x86-msi 1.2.30 3.11.10.26 0.8 1.2.3 1.0.0f 1 - +v0.8.26 2013-10-18 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.30 3.11.10.26 0.8 1.2.3 1.0.0f 1 - +v0.8.25 2013-06-13 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.30 3.11.10.25 0.8 1.2.3 1.0.0f 1 - +v0.8.24 2013-06-03 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.24 3.11.10.25 0.8 1.2.3 1.0.0f 1 - +v0.8.23 2013-04-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.18 3.11.10.25 0.8 1.2.3 1.0.0f 1 - +v0.8.22 2015-09-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.14 3.11.10.25 0.8 1.2.3 1.0.0f 1 - +v0.8.21 2013-02-25 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.11 3.11.10.25 0.8 1.2.3 1.0.0f 1 - +v0.8.20 2013-02-15 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.11 3.11.10.25 0.8 1.2.3 1.0.0f 1 - +v0.8.19 2015-09-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.10 3.11.10.25 0.8 1.2.3 1.0.0f 1 - +v0.8.18 2013-01-18 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.2 3.11.10.25 0.8 1.2.3 1.0.0f 1 - +v0.8.17 2013-01-13 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.0 3.11.10.25 0.8 1.2.3 1.0.0f 1 - +v0.8.16 2015-09-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.69 3.11.10.25 0.8 1.2.3 1.0.0f 1 - +v0.8.15 2012-11-26 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.66 3.11.10.25 0.8 1.2.3 1.0.0f 1 - +v0.8.14 2015-09-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.65 3.11.10.25 0.8 1.2.3 1.0.0f 1 - +v0.8.13 2015-09-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.65 3.11.10.25 0.8 1.2.3 1.0.0f 1 - +v0.8.12 2015-09-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.63 3.11.10.22 0.8 1.2.3 1.0.0f 1 - +v0.8.11 2015-09-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.62 3.11.10.22 0.8 1.2.3 1.0.0f 1 - +v0.8.10 2015-09-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.62 3.11.10.22 0.8 1.2.3 1.0.0f 1 - +v0.8.9 2015-09-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.61 3.11.10.22 0.8 1.2.3 1.0.0f 1 - +v0.8.8 2015-09-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 1.1.59 3.11.10.19 0.8 1.2.3 1.0.0f 1 - +v0.8.7 2015-09-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.49 3.11.10.17 0.8 1.2.3 1.0.0f 1 - +v0.8.6 2012-08-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.48 3.11.10.17 0.8 1.2.3 1.0.0f 1 - +v0.8.5 2015-09-06 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.46 3.11.10.17 0.8 1.2.3 1.0.0f 1 - +v0.8.4 2015-09-06 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.45 3.11.10.17 0.8 1.2.3 1.0.0f 1 - +v0.8.3 2015-09-06 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.43 3.11.10.15 0.8 1.2.3 1.0.0f 1 - +v0.8.2 2012-07-09 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.36 3.11.10.14 0.8 1.2.3 1.0.0f 1 - +v0.8.1 2012-06-29 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.33 3.11.10.12 0.8 1.2.3 1.0.0f 1 - +v0.8.0 2012-06-22 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.32 3.11.10.10 0.8 1.2.3 1.0.0f 1 - +v0.7.12 2012-06-19 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.30 3.11.10.0 0.6 1.2.3 1.0.0f 1 - +v0.7.11 2012-06-15 osx-x64-pkg,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 1.1.26 3.11.10.0 0.6 1.2.3 1.0.0f 1 - +v0.7.10 2012-06-11 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.25 3.9.24.31 0.6 1.2.3 1.0.0f 1 - +v0.7.9 2012-05-29 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.23 3.11.1.0 0.6 1.2.3 1.0.0f 1 - +v0.7.8 2012-04-18 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.18 3.9.24.9 0.6 1.2.3 1.0.0f 1 - +v0.7.7 2012-03-30 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.15 3.9.24.7 0.6 1.2.3 0.9.8r 1 - +v0.7.6 2012-03-31 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.8 3.9.17.0 0.6 1.2.3 0.9.8r 1 - +v0.7.5 2012-03-31 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.1 3.9.5.0 0.6 1.2.3 0.9.8r 1 - +v0.7.4 2012-03-31 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.1 3.9.5.0 0.6 1.2.3 0.9.8r 1 - +v0.7.3 2012-03-31 osx-x64-pkg,src,win-x86-exe 1.1.0-3 3.9.2.0 0.6 1.2.3 0.9.8r 1 - +v0.7.2 2012-03-31 osx-x64-pkg,src,win-x86-exe 1.1.0-3 3.8.9.0 0.6 1.2.3 0.9.8r 1 - +v0.7.1 2012-01-23 osx-x64-pkg,src,win-x86-exe 1.1.0-2 3.8.8.0 0.6 1.2.3 0.9.8r 1 - +v0.7.0 2012-01-17 osx-x64-pkg,src,win-x86-exe 1.1.0-2 3.8.6.0 0.6 1.2.3 0.9.8r 1 - +v0.6.21 2012-08-03 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.37 3.6.6.25 0.6 1.2.3 0.9.8r 1 - +v0.6.20 2012-07-10 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.37 3.6.6.25 0.6 1.2.3 0.9.8r 1 - +v0.6.19 2012-06-08 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.24 3.6.6.25 0.6 1.2.3 0.9.8r 1 - +v0.6.18 2012-05-14 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.21 3.6.6.25 0.6 1.2.3 0.9.8r 1 - +v0.6.17 2012-05-04 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.21 3.6.6.25 0.6 1.2.3 0.9.8r 1 - +v0.6.16 2012-04-27 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.19 3.6.6.25 0.6 1.2.3 0.9.8r 1 - +v0.6.15 2012-04-09 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.16 3.6.6.24 0.6 1.2.3 0.9.8r 1 - +v0.6.14 2012-03-23 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.12 3.6.6.24 0.6 1.2.3 0.9.8r 1 - +v0.6.13 2012-03-31 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.9 3.6.6.24 0.6 1.2.3 0.9.8r 1 - +v0.6.12 2012-03-02 osx-x64-pkg,src,win-x86-exe 1.1.4 3.6.6.24 0.6 1.2.3 0.9.8r 1 - +v0.6.11 2012-02-17 osx-x64-pkg,src,win-x86-exe 1.1.1 3.6.6.20 0.6 1.2.3 0.9.8r 1 - +v0.6.10 2012-02-04 osx-x64-pkg,src,win-x86-exe 1.1.0-3 3.6.6.20 0.6 1.2.3 0.9.8r 1 - +v0.6.9 2012-01-27 osx-x64-pkg,src,win-x86-exe 1.1.0-3 3.6.6.19 0.6 1.2.3 0.9.8r 1 - +v0.6.8 2012-01-23 osx-x64-pkg,src,win-x86-exe 1.1.0-2 3.6.6.19 0.6 1.2.3 0.9.8r 1 - +v0.6.7 2012-01-07 osx-x64-pkg,src,win-x86-exe 1.1.0-beta-10 3.6.6.15 0.6 1.2.3 0.9.8r 1 - +v0.6.6 2012-03-31 osx-x64-pkg,src,win-x86-exe 1.1.0-beta-4 3.6.6.14 0.6 1.2.3 0.9.8r 1 - +v0.6.5 2012-03-31 osx-x64-pkg,src,win-x86-exe 1.1.0-alpha-6 3.6.6.11 0.6 1.2.3 0.9.8r 1 - +v0.6.4 2011-12-03 osx-x64-pkg,src,win-x86-exe 1.1.0-alpha-6 3.6.6.8 0.6 1.2.3 0.9.8r 1 - +v0.6.3 2011-11-25 osx-x64-pkg,src,win-x86-exe 1.1.0-alpha-2 3.6.6.8 0.6 1.2.3 0.9.8r 1 - +v0.6.2 2011-11-18 osx-x64-pkg,src,win-x86-exe - 3.6.6.8 0.6 1.2.3 0.9.8r 1 - +v0.6.1 2011-11-11 osx-x64-pkg,src,win-x86-exe - 3.6.6.7 0.1 1.2.3 0.9.8r 1 - +v0.6.0 2011-11-04 src,win-x86-exe - 3.6.6.6 0.1 1.2.3 0.9.8r 1 - +v0.5.10 2011-10-22 src,win-x86-exe - 3.7.0.0 0.1 1.2.3 0.9.8r 1 - +v0.5.9 2011-10-11 src,win-x86-exe - 3.6.4.0 0.1 1.2.3 0.9.8r 1 - +v0.5.8 2011-09-30 src,win-x86-exe - 3.6.4.0 0.1 1.2.3 0.9.8r 1 - +v0.5.7 2011-09-16 src,win-x86-exe - 3.6.4.0 0.1 - 0.9.8r 1 - +v0.5.6 2011-08-26 src,win-x86-exe - 3.6.2.0 0.1 - 0.9.8r 1 - +v0.5.5 2011-08-26 src,win-x86-exe - 3.5.8.0 0.1 - 0.9.8r 1 - +v0.5.4 2011-08-26 src,win-x86-exe - 3.5.4.3 0.1 - - 1 - +v0.5.3 2011-08-26 src,win-x86-exe - 3.4.14.0 0.1 - - 1 - +v0.5.2 2011-08-26 src,win-x86-exe - 3.4.14.0 0.1 - - 1 - +v0.5.1 2011-08-26 src,win-x86-exe - 3.4.10.0 0.1 - - 1 - +v0.5.0 2011-08-26 src - 3.1.8.25 - - - 1 - +v0.4.12 2015-10-17 src - 3.1.8.26 - - - 1 - +v0.4.11 2011-08-26 src - 3.1.8.26 - - - 1 - +v0.4.10 2011-08-26 src - 3.1.8.26 - - - 1 - +v0.4.9 2011-08-26 src - 3.1.8.25 - - - 1 - +v0.4.8 2011-08-26 src - 3.1.8.16 - - - 1 - +v0.4.7 2011-08-26 src - 3.1.8.10 - - - 1 - +v0.4.6 2011-08-26 src - 3.1.8.10 - - - 1 - +v0.4.5 2011-08-26 src - 3.1.8.8 - - - 1 - +v0.4.4 2011-08-26 src - 3.1.8.5 - - - 1 - +v0.4.3 2011-08-26 src - 3.1.8.3 - - - 1 - +v0.4.2 2011-08-26 src - 3.1.8.0 - - - 1 - +v0.4.1 2011-08-26 src - 3.1.5.0 - - - 1 - +v0.4.0 2011-08-26 src - 3.1.2.0 - - - 1 - +v0.3.8 2011-08-26 src - 3.1.1.0 - - - 1 - +v0.3.7 2011-08-26 src - 3.0.10.0 - - - 1 - +v0.3.6 2011-08-26 src - 3.0.9.0 - - - 1 - +v0.3.5 2011-08-26 src - 3.0.4.1 - - - 1 - +v0.3.4 2011-08-26 src - 3.0.4.1 - - - 1 - +v0.3.3 2011-08-26 src - 3.0.4.1 - - - 1 - +v0.3.2 2011-08-26 src - 3.0.3.0 - - - 1 - +v0.3.1 2011-08-26 src - 2.5.3.0 - - - 1 - +v0.3.0 2011-08-26 src - 2.5.1.0 - - - 1 - +v0.2.6 2011-08-26 src - 2.3.8.0 - - - 1 - +v0.2.5 2011-08-26 src - 2.3.8.0 - - - 1 - +v0.2.4 2011-08-26 src - 2.3.8.0 - - - 1 - +v0.2.3 2011-08-26 src - 2.3.8.0 - - - 1 - +v0.2.2 2011-08-26 src - 2.3.8.0 - - - 1 - +v0.2.1 2011-08-26 src - 2.3.8.0 - - - 1 - +v0.2.0 2011-08-26 src - 2.3.8.0 - - - 1 - +v0.1.104 2011-08-26 src - 2.3.6.1 - - - 1 - +v0.1.103 2011-08-26 src - 2.3.5.0 - - - 1 - +v0.1.102 2011-08-26 src - 2.3.2.0 - - - 1 - +v0.1.101 2011-08-26 src - 2.3.0.0 - - - 1 - +v0.1.100 2011-08-26 src - 2.2.21.0 - - - - - +v0.1.99 2011-08-26 src - 2.2.18.0 - - - - - +v0.1.98 2011-08-26 src - 2.2.16.0 - - - - - +v0.1.97 2011-08-26 src - 2.2.12.0 - - - - - +v0.1.96 2011-08-26 src - 2.2.0 - - - - - +v0.1.95 2011-08-26 src - 2.2.0 - - - - - +v0.1.94 2011-08-26 src - 2.2.8.0 - - - - - +v0.1.93 2011-08-26 src - 2.2.6.0 - - - - - +v0.1.92 2011-08-26 src - 2.2.4.2 - - - - - +v0.1.91 2011-08-26 src - 2.2.3.1 - - - - - +v0.1.90 2011-08-26 src - 2.2.0.3 - - - - - +v0.1.33 2011-08-26 src - 2.1.6.0 - - - - - +v0.1.32 2011-08-26 src - 2.1.3.0 - - - - - +v0.1.31 2011-08-26 src - 2.1.2.0 - - - - - +v0.1.30 2011-08-26 src - 2.1.1.1 - - - - - +v0.1.29 2011-08-26 src - 2.1.0.0 - - - - - +v0.1.28 2011-08-26 src - 2.1.0.0 - - - - - +v0.1.27 2011-08-26 src - 2.1.0.0 - - - - - +v0.1.26 2011-08-26 src - 2.0.6.1 - - - - - +v0.1.25 2011-08-26 src - 2.0.5.4 - - - - - +v0.1.24 2011-08-26 src - 2.0.5.4 - - - - - +v0.1.23 2011-08-26 src - 2.0.0 - - - - - +v0.1.22 2011-08-26 src - 2.0.0 - - - - - +v0.1.21 2011-08-26 src - 2.0.0 - - - - - +v0.1.20 2011-08-26 src - 2.0.2.0 - - - - - +v0.1.19 2011-08-26 src - 2.0.2.0 - - - - - +v0.1.18 2011-08-26 src - 1.3.18.0 - - - - - +v0.1.17 2011-08-26 src - 1.3.18.0 - - - - - +v0.1.16 2011-08-26 src - 1.3.18.0 - - - - - +v0.1.15 2011-08-26 src - 1.3.16.0 - - - - - +v0.1.14 2011-08-26 src - 1.3.15.0 - - - - - diff --git a/test/fast/Unit tests/nvm_ls_remote b/test/fast/Unit tests/nvm_ls_remote index 8b7da02..76b9f54 100755 --- a/test/fast/Unit tests/nvm_ls_remote +++ b/test/fast/Unit tests/nvm_ls_remote @@ -9,437 +9,9 @@ cleanup() { . ../../../nvm.sh # sample output at the time the test was written +TAB_PATH="$PWD/nodejs.org-dist-index.tab" nvm_download() { - echo 'foo "v0.10.0' - echo 'foo "v0.10.0' - echo 'foo "v0.10.1' - echo 'foo "v0.10.1' - echo 'foo "v0.10.10' - echo 'foo "v0.10.10' - echo 'foo "v0.10.11' - echo 'foo "v0.10.11' - echo 'foo "v0.10.12' - echo 'foo "v0.10.12' - echo 'foo "v0.10.13' - echo 'foo "v0.10.13' - echo 'foo "v0.10.14' - echo 'foo "v0.10.14' - echo 'foo "v0.10.15' - echo 'foo "v0.10.15' - echo 'foo "v0.10.16' - echo 'foo "v0.10.16' - echo 'foo "v0.10.16' - echo 'foo "v0.10.16' - echo 'foo "v0.10.17' - echo 'foo "v0.10.17' - echo 'foo "v0.10.18' - echo 'foo "v0.10.18' - echo 'foo "v0.10.19' - echo 'foo "v0.10.19' - echo 'foo "v0.10.2' - echo 'foo "v0.10.2' - echo 'foo "v0.10.20' - echo 'foo "v0.10.20' - echo 'foo "v0.10.21' - echo 'foo "v0.10.21' - echo 'foo "v0.10.22' - echo 'foo "v0.10.22' - echo 'foo "v0.10.23' - echo 'foo "v0.10.23' - echo 'foo "v0.10.24' - echo 'foo "v0.10.24' - echo 'foo "v0.10.25' - echo 'foo "v0.10.25' - echo 'foo "v0.10.26' - echo 'foo "v0.10.26' - echo 'foo "v0.10.27' - echo 'foo "v0.10.27' - echo 'foo "v0.10.28' - echo 'foo "v0.10.28' - echo 'foo "v0.10.29' - echo 'foo "v0.10.29' - echo 'foo "v0.10.3' - echo 'foo "v0.10.3' - echo 'foo "v0.10.30' - echo 'foo "v0.10.30' - echo 'foo "v0.10.31' - echo 'foo "v0.10.31' - echo 'foo "v0.10.32' - echo 'foo "v0.10.32' - echo 'foo "v0.10.4' - echo 'foo "v0.10.4' - echo 'foo "v0.10.5' - echo 'foo "v0.10.5' - echo 'foo "v0.10.6' - echo 'foo "v0.10.6' - echo 'foo "v0.10.7' - echo 'foo "v0.10.7' - echo 'foo "v0.10.8' - echo 'foo "v0.10.8' - echo 'foo "v0.10.9' - echo 'foo "v0.10.9' - echo 'foo "v0.11.0' - echo 'foo "v0.11.0' - echo 'foo "v0.11.1' - echo 'foo "v0.11.1' - echo 'foo "v0.11.10' - echo 'foo "v0.11.10' - echo 'foo "v0.11.11' - echo 'foo "v0.11.11' - echo 'foo "v0.11.12' - echo 'foo "v0.11.12' - echo 'foo "v0.11.13' - echo 'foo "v0.11.13' - echo 'foo "v0.11.14' - echo 'foo "v0.11.14' - echo 'foo "v0.11.2' - echo 'foo "v0.11.2' - echo 'foo "v0.11.3' - echo 'foo "v0.11.3' - echo 'foo "v0.11.4' - echo 'foo "v0.11.4' - echo 'foo "v0.11.5' - echo 'foo "v0.11.5' - echo 'foo "v0.11.6' - echo 'foo "v0.11.6' - echo 'foo "v0.11.7' - echo 'foo "v0.11.7' - echo 'foo "v0.11.8' - echo 'foo "v0.11.8' - echo 'foo "v0.11.9' - echo 'foo "v0.11.9' - echo 'foo "v0.5.1' - echo 'foo "v0.5.1' - echo 'foo "v0.5.10' - echo 'foo "v0.5.10' - echo 'foo "v0.5.2' - echo 'foo "v0.5.2' - echo 'foo "v0.5.3' - echo 'foo "v0.5.3' - echo 'foo "v0.5.4' - echo 'foo "v0.5.4' - echo 'foo "v0.5.5' - echo 'foo "v0.5.5' - echo 'foo "v0.5.6' - echo 'foo "v0.5.6' - echo 'foo "v0.5.7' - echo 'foo "v0.5.7' - echo 'foo "v0.5.8' - echo 'foo "v0.5.8' - echo 'foo "v0.5.9' - echo 'foo "v0.5.9' - echo 'foo "v0.6.0' - echo 'foo "v0.6.0' - echo 'foo "v0.6.1' - echo 'foo "v0.6.1' - echo 'foo "v0.6.10' - echo 'foo "v0.6.10' - echo 'foo "v0.6.11' - echo 'foo "v0.6.11' - echo 'foo "v0.6.12' - echo 'foo "v0.6.12' - echo 'foo "v0.6.13' - echo 'foo "v0.6.13' - echo 'foo "v0.6.14' - echo 'foo "v0.6.14' - echo 'foo "v0.6.15' - echo 'foo "v0.6.15' - echo 'foo "v0.6.16' - echo 'foo "v0.6.16' - echo 'foo "v0.6.17' - echo 'foo "v0.6.17' - echo 'foo "v0.6.18' - echo 'foo "v0.6.18' - echo 'foo "v0.6.19' - echo 'foo "v0.6.19' - echo 'foo "v0.6.2' - echo 'foo "v0.6.2' - echo 'foo "v0.6.20' - echo 'foo "v0.6.20' - echo 'foo "v0.6.21' - echo 'foo "v0.6.21' - echo 'foo "v0.6.3' - echo 'foo "v0.6.3' - echo 'foo "v0.6.4' - echo 'foo "v0.6.4' - echo 'foo "v0.6.5' - echo 'foo "v0.6.5' - echo 'foo "v0.6.6' - echo 'foo "v0.6.6' - echo 'foo "v0.6.7' - echo 'foo "v0.6.7' - echo 'foo "v0.6.8' - echo 'foo "v0.6.8' - echo 'foo "v0.6.9' - echo 'foo "v0.6.9' - echo 'foo "v0.7.0' - echo 'foo "v0.7.0' - echo 'foo "v0.7.1' - echo 'foo "v0.7.1' - echo 'foo "v0.7.10' - echo 'foo "v0.7.10' - echo 'foo "v0.7.11' - echo 'foo "v0.7.11' - echo 'foo "v0.7.12' - echo 'foo "v0.7.12' - echo 'foo "v0.7.2' - echo 'foo "v0.7.2' - echo 'foo "v0.7.3' - echo 'foo "v0.7.3' - echo 'foo "v0.7.4' - echo 'foo "v0.7.4' - echo 'foo "v0.7.5' - echo 'foo "v0.7.5' - echo 'foo "v0.7.6' - echo 'foo "v0.7.6' - echo 'foo "v0.7.7' - echo 'foo "v0.7.7' - echo 'foo "v0.7.8' - echo 'foo "v0.7.8' - echo 'foo "v0.7.9' - echo 'foo "v0.7.9' - echo 'foo "v0.8.0' - echo 'foo "v0.8.0' - echo 'foo "v0.8.1' - echo 'foo "v0.8.1' - echo 'foo "v0.8.10' - echo 'foo "v0.8.10' - echo 'foo "v0.8.11' - echo 'foo "v0.8.11' - echo 'foo "v0.8.12' - echo 'foo "v0.8.12' - echo 'foo "v0.8.13' - echo 'foo "v0.8.13' - echo 'foo "v0.8.14' - echo 'foo "v0.8.14' - echo 'foo "v0.8.15' - echo 'foo "v0.8.15' - echo 'foo "v0.8.16' - echo 'foo "v0.8.16' - echo 'foo "v0.8.17' - echo 'foo "v0.8.17' - echo 'foo "v0.8.18' - echo 'foo "v0.8.18' - echo 'foo "v0.8.19' - echo 'foo "v0.8.19' - echo 'foo "v0.8.2' - echo 'foo "v0.8.2' - echo 'foo "v0.8.20' - echo 'foo "v0.8.20' - echo 'foo "v0.8.21' - echo 'foo "v0.8.21' - echo 'foo "v0.8.22' - echo 'foo "v0.8.22' - echo 'foo "v0.8.23' - echo 'foo "v0.8.23' - echo 'foo "v0.8.24' - echo 'foo "v0.8.24' - echo 'foo "v0.8.25' - echo 'foo "v0.8.25' - echo 'foo "v0.8.26' - echo 'foo "v0.8.26' - echo 'foo "v0.8.27' - echo 'foo "v0.8.27' - echo 'foo "v0.8.28' - echo 'foo "v0.8.28' - echo 'foo "v0.8.3' - echo 'foo "v0.8.3' - echo 'foo "v0.8.4' - echo 'foo "v0.8.4' - echo 'foo "v0.8.5' - echo 'foo "v0.8.5' - echo 'foo "v0.8.6' - echo 'foo "v0.8.6' - echo 'foo "v0.8.7' - echo 'foo "v0.8.7' - echo 'foo "v0.8.8' - echo 'foo "v0.8.8' - echo 'foo "v0.8.9' - echo 'foo "v0.8.9' - echo 'foo "v0.9.0' - echo 'foo "v0.9.0' - echo 'foo "v0.9.1' - echo 'foo "v0.9.1' - echo 'foo "v0.9.10' - echo 'foo "v0.9.10' - echo 'foo "v0.9.11' - echo 'foo "v0.9.11' - echo 'foo "v0.9.12' - echo 'foo "v0.9.12' - echo 'foo "v0.9.2' - echo 'foo "v0.9.2' - echo 'foo "v0.9.3' - echo 'foo "v0.9.3' - echo 'foo "v0.9.4' - echo 'foo "v0.9.4' - echo 'foo "v0.9.5' - echo 'foo "v0.9.5' - echo 'foo "v0.9.6' - echo 'foo "v0.9.6' - echo 'foo "v0.9.7' - echo 'foo "v0.9.7' - echo 'foo "v0.9.8' - echo 'foo "v0.9.8' - echo 'foo "v0.9.9' - echo 'foo "v0.9.9' - echo 'foo "v0.1.100' - echo 'foo "v0.1.100' - echo 'foo "v0.1.101' - echo 'foo "v0.1.101' - echo 'foo "v0.1.102' - echo 'foo "v0.1.102' - echo 'foo "v0.1.103' - echo 'foo "v0.1.103' - echo 'foo "v0.1.104' - echo 'foo "v0.1.104' - echo 'foo "v0.1.14' - echo 'foo "v0.1.14' - echo 'foo "v0.1.15' - echo 'foo "v0.1.15' - echo 'foo "v0.1.16' - echo 'foo "v0.1.16' - echo 'foo "v0.1.17' - echo 'foo "v0.1.17' - echo 'foo "v0.1.18' - echo 'foo "v0.1.18' - echo 'foo "v0.1.19' - echo 'foo "v0.1.19' - echo 'foo "v0.1.20' - echo 'foo "v0.1.20' - echo 'foo "v0.1.21' - echo 'foo "v0.1.21' - echo 'foo "v0.1.22' - echo 'foo "v0.1.22' - echo 'foo "v0.1.23' - echo 'foo "v0.1.23' - echo 'foo "v0.1.24' - echo 'foo "v0.1.24' - echo 'foo "v0.1.25' - echo 'foo "v0.1.25' - echo 'foo "v0.1.26' - echo 'foo "v0.1.26' - echo 'foo "v0.1.27' - echo 'foo "v0.1.27' - echo 'foo "v0.1.28' - echo 'foo "v0.1.28' - echo 'foo "v0.1.29' - echo 'foo "v0.1.29' - echo 'foo "v0.1.30' - echo 'foo "v0.1.30' - echo 'foo "v0.1.31' - echo 'foo "v0.1.31' - echo 'foo "v0.1.32' - echo 'foo "v0.1.32' - echo 'foo "v0.1.33' - echo 'foo "v0.1.33' - echo 'foo "v0.1.90' - echo 'foo "v0.1.90' - echo 'foo "v0.1.91' - echo 'foo "v0.1.91' - echo 'foo "v0.1.92' - echo 'foo "v0.1.92' - echo 'foo "v0.1.93' - echo 'foo "v0.1.93' - echo 'foo "v0.1.94' - echo 'foo "v0.1.94' - echo 'foo "v0.1.95' - echo 'foo "v0.1.95' - echo 'foo "v0.1.96' - echo 'foo "v0.1.96' - echo 'foo "v0.1.97' - echo 'foo "v0.1.97' - echo 'foo "v0.1.98' - echo 'foo "v0.1.98' - echo 'foo "v0.1.99' - echo 'foo "v0.1.99' - echo 'foo "v0.10.14' - echo 'foo "v0.10.14' - echo 'foo "v0.2.0' - echo 'foo "v0.2.0' - echo 'foo "v0.2.1' - echo 'foo "v0.2.1' - echo 'foo "v0.2.2' - echo 'foo "v0.2.2' - echo 'foo "v0.2.3' - echo 'foo "v0.2.3' - echo 'foo "v0.2.4' - echo 'foo "v0.2.4' - echo 'foo "v0.2.5' - echo 'foo "v0.2.5' - echo 'foo "v0.2.6' - echo 'foo "v0.2.6' - echo 'foo "v0.3.0' - echo 'foo "v0.3.0' - echo 'foo "v0.3.1' - echo 'foo "v0.3.1' - echo 'foo "v0.3.2' - echo 'foo "v0.3.2' - echo 'foo "v0.3.3' - echo 'foo "v0.3.3' - echo 'foo "v0.3.4' - echo 'foo "v0.3.4' - echo 'foo "v0.3.5' - echo 'foo "v0.3.5' - echo 'foo "v0.3.6' - echo 'foo "v0.3.6' - echo 'foo "v0.3.7' - echo 'foo "v0.3.7' - echo 'foo "v0.3.8' - echo 'foo "v0.3.8' - echo 'foo "v0.4.0' - echo 'foo "v0.4.0' - echo 'foo "v0.4.1' - echo 'foo "v0.4.1' - echo 'foo "v0.4.10' - echo 'foo "v0.4.10' - echo 'foo "v0.4.11' - echo 'foo "v0.4.11' - echo 'foo "v0.4.12' - echo 'foo "v0.4.12' - echo 'foo "v0.4.2' - echo 'foo "v0.4.2' - echo 'foo "v0.4.3' - echo 'foo "v0.4.3' - echo 'foo "v0.4.4' - echo 'foo "v0.4.4' - echo 'foo "v0.4.5' - echo 'foo "v0.4.5' - echo 'foo "v0.4.6' - echo 'foo "v0.4.6' - echo 'foo "v0.4.7' - echo 'foo "v0.4.7' - echo 'foo "v0.4.8' - echo 'foo "v0.4.8' - echo 'foo "v0.4.9' - echo 'foo "v0.4.9' - echo 'foo "v0.5.0' - echo 'foo "v0.5.0' - echo 'foo "v0.6.1' - echo 'foo "v0.6.1' - echo 'foo "v0.6.10' - echo 'foo "v0.6.10' - echo 'foo "v0.6.11' - echo 'foo "v0.6.11' - echo 'foo "v0.6.12' - echo 'foo "v0.6.12' - echo 'foo "v0.6.13' - echo 'foo "v0.6.13' - echo 'foo "v0.6.2' - echo 'foo "v0.6.2' - echo 'foo "v0.6.3' - echo 'foo "v0.6.3' - echo 'foo "v0.6.4' - echo 'foo "v0.6.4' - echo 'foo "v0.6.5' - echo 'foo "v0.6.5' - echo 'foo "v0.6.6' - echo 'foo "v0.6.6' - echo 'foo "v0.6.7' - echo 'foo "v0.6.7' - echo 'foo "v0.6.8' - echo 'foo "v0.6.8' - echo 'foo "v0.6.9' - echo 'foo "v0.6.9' + cat "$TAB_PATH" } OUTPUT="$(nvm_ls_remote foo)" @@ -466,7 +38,7 @@ v0.3.8" # Sanity checks OUTPUT="$(nvm_print_implicit_alias remote stable)" -EXPECTED_OUTPUT="0.10" +EXPECTED_OUTPUT="4.2" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_print_implicit_alias remote stable did not output $EXPECTED_OUTPUT; got $OUTPUT" OUTPUT="$(nvm_print_implicit_alias remote unstable)" @@ -474,11 +46,11 @@ EXPECTED_OUTPUT="0.11" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_print_implicit_alias remote unstable did not output $EXPECTED_OUTPUT; got $OUTPUT" OUTPUT="$(nvm_ls_remote stable)" -EXPECTED_OUTPUT="v0.10.32" +EXPECTED_OUTPUT="v4.2.1" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote stable did not output $EXPECTED_OUTPUT; got $OUTPUT" OUTPUT="$(nvm_ls_remote unstable)" -EXPECTED_OUTPUT="v0.11.14" +EXPECTED_OUTPUT="v0.11.16" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote unstable did not output $EXPECTED_OUTPUT; got $OUTPUT" cleanup From 149e5d483df6661aec72ad5004f121acf6717487 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 17 Oct 2015 12:05:44 -0700 Subject: [PATCH 0573/1426] Use real snapshot of iojs.org data for `nvm_ls_remote_iojs` tests. --- test/fast/Unit tests/iojs.org-dist-index.tab | 42 ++++++++++++++++++++ test/fast/Unit tests/nvm_ls_remote_iojs | 10 +++-- 2 files changed, 48 insertions(+), 4 deletions(-) create mode 100644 test/fast/Unit tests/iojs.org-dist-index.tab diff --git a/test/fast/Unit tests/iojs.org-dist-index.tab b/test/fast/Unit tests/iojs.org-dist-index.tab new file mode 100644 index 0000000..8589bb9 --- /dev/null +++ b/test/fast/Unit tests/iojs.org-dist-index.tab @@ -0,0 +1,42 @@ +version date files npm v8 uv zlib openssl modules +v3.3.1 2015-09-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.3 4.4.63.30 1.7.4 1.2.8 1.0.2d 45 +v3.3.0 2015-09-02 headers,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.13.3 4.4.63.30 1.7.3 1.2.8 1.0.2d 45 +v3.2.0 2015-08-25 headers,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.13.3 4.4.63.26 1.6.1 1.2.8 1.0.2d 45 +v3.1.0 2015-08-19 headers,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.13.3 4.4.63.26 1.6.1 1.2.8 1.0.2d 45 +v3.0.0 2015-08-04 headers,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.13.3 4.4.63.26 1.6.1 1.2.8 1.0.2d 45 +v2.5.0 2015-07-28 headers,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.13.2 4.2.77.21 1.6.1 1.2.8 1.0.2d 44 +v2.4.0 2015-07-17 headers,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.13.0 4.2.77.20 1.6.1 1.2.8 1.0.2d 44 +v2.3.4 2015-07-12 headers,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.12.1 4.2.77.20 1.6.1 1.2.8 1.0.2d 44 +v2.3.3 2015-07-04 headers,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.11.3 4.2.77.20 1.6.1 1.2.8 1.0.2c 44 +v2.3.2 2015-07-02 headers,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.11.3 4.2.77.20 1.6.1 1.2.8 1.0.2c 44 +v2.3.1 2015-06-23 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.11.3 4.2.77.20 1.6.1 1.2.8 1.0.2c 44 +v2.3.0 2015-06-13 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.11.1 4.2.77.20 1.6.1 1.2.8 1.0.2c 44 +v2.2.1 2015-06-01 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.11.0 4.2.77.20 1.5.0 1.2.8 1.0.2a 44 +v2.2.0 2015-06-01 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.11.0 4.2.77.20 1.5.0 1.2.8 1.0.2a 44 +v2.1.0 2015-05-24 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.10.1 4.2.77.20 1.5.0 1.2.8 1.0.2a 44 +v2.0.2 2015-05-15 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.9.0 4.2.77.20 1.5.0 1.2.8 1.0.2a 44 +v2.0.1 2015-05-08 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.9.0 4.2.77.20 1.5.0 1.2.8 1.0.2a 44 +v2.0.0 2015-05-04 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.9.0 4.2.77.18 1.4.2 1.2.8 1.0.2a 44 +v1.8.4 2015-07-12 headers,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.9.0 4.1.0.27 1.4.2 1.2.8 1.0.2d 43 +v1.8.3 2015-07-04 headers,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.9.0 4.1.0.27 1.4.2 1.2.8 1.0.2c 43 +v1.8.2 2015-05-18 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.9.0 4.1.0.27 1.4.2 1.2.8 1.0.2a 43 +v1.8.1 2015-04-21 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.8.3 4.1.0.27 1.4.2 1.2.8 1.0.2a 43 +v1.7.1 2015-04-17 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.7.6 4.1.0.27 1.4.2 1.2.8 1.0.1m 43 +v1.6.4 2015-04-06 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.7.5 4.1.0.27 1.4.2 1.2.8 1.0.1m 43 +v1.6.3 2015-03-31 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.7.4 4.1.0.27 1.4.2 1.2.8 1.0.1m 43 +v1.6.2 2015-03-23 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.7.1 4.1.0.25 1.4.2 1.2.8 1.0.1m 43 +v1.6.1 2015-03-20 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.7.1 4.1.0.21 1.4.2 1.2.8 1.0.1m 43 +v1.6.0 2015-03-20 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.7.1 4.1.0.21 1.4.2 1.2.8 1.0.1m 43 +v1.5.1 2015-03-09 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.7.0 4.1.0.21 1.4.2 1.2.8 1.0.1k 43 +v1.5.0 2015-03-06 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.7.0 4.1.0.21 1.4.2 1.2.8 1.0.1k 43 +v1.4.3 2015-03-03 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.6.1 4.1.0.21 1.4.2 1.2.8 1.0.1k 43 +v1.4.2 2015-02-28 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.6.1 4.1.0.21 1.4.2 1.2.8 1.0.1k 43 +v1.4.1 2015-02-27 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.6.0 4.1.0.21 1.4.2 1.2.8 1.0.1k 43 +v1.3.0 2015-02-20 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.5.1 4.1.0.14 1.4.0 1.2.8 1.0.1k 43 +v1.2.0 2015-02-11 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.5.1 4.1.0.14 1.4.0 1.2.8 1.0.1k 43 +v1.1.0 2015-02-03 linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.4.1 4.1.0.14 1.3.0 1.2.8 1.0.1k 43 +v1.0.4 2015-01-24 linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.3.0 4.1.0.12 1.2.1 1.2.8 1.0.1k 42 +v1.0.3 2015-01-20 linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.2.0 4.1.0.7 1.2.1 1.2.8 1.0.1k 42 +v1.0.2 2015-01-16 linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.1.18 3.31.74.1 1.2.1 1.2.8 1.0.1k 42 +v1.0.1 2015-01-14 linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.1.18 3.31.74.1 1.2.0 1.2.8 1.0.1k 42 +v1.0.0 2015-01-14 linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.1.18 3.31.74.1 1.2.0 1.2.8 1.0.1k 42 diff --git a/test/fast/Unit tests/nvm_ls_remote_iojs b/test/fast/Unit tests/nvm_ls_remote_iojs index bd104f1..d93e077 100755 --- a/test/fast/Unit tests/nvm_ls_remote_iojs +++ b/test/fast/Unit tests/nvm_ls_remote_iojs @@ -9,10 +9,9 @@ cleanup() { . ../../../nvm.sh # sample output at the time the test was written +TAB_PATH="$PWD/iojs.org-dist-index.tab" nvm_download() { - echo 'version date files npm v8 uv zlib openssl modules' - echo 'v1.0.1 2015-01-14 linux-armv7l,linux-x64,linux-x86,osx-x64-tar,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi' - echo 'v1.0.0 2015-01-14 linux-armv7l,linux-x64,linux-x86,osx-x64-tar,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi' + cat "$TAB_PATH" } OUTPUT="$(nvm_ls_remote_iojs foo)" @@ -26,7 +25,10 @@ EXPECTED_OUTPUT="$(nvm_download | \egrep -o 'v[0-9]+\.[0-9]+\.[0-9]+' | sort -t. OUTPUT="$(nvm_ls_remote_iojs 1.0)" EXPECTED_OUTPUT="iojs-v1.0.0 -iojs-v1.0.1" +iojs-v1.0.1 +iojs-v1.0.2 +iojs-v1.0.3 +iojs-v1.0.4" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote_iojs 1.0 did not output 1.0.x versions; got $OUTPUT" From a43ff7c9d958482e81e89c084d268a2c02df9806 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 23 Oct 2015 00:12:14 -0700 Subject: [PATCH 0574/1426] Ensure that `npm` doesn't print out excess data, regardless of the user's log level. Fixes #881. --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 504d629..aaeb357 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1352,10 +1352,10 @@ nvm_die_on_prefix() { fi local NVM_NPM_PREFIX - NVM_NPM_PREFIX="$(npm config get prefix)" + NVM_NPM_PREFIX="$(NPM_CONFIG_LOGLEVEL=warn npm config get prefix)" if ! (nvm_tree_contains_path "$NVM_DIR" "$NVM_NPM_PREFIX" >/dev/null 2>&1); then if [ "_$NVM_DELETE_PREFIX" = "_1" ]; then - npm config delete prefix + NPM_CONFIG_LOGLEVEL=warn npm config delete prefix else nvm deactivate >/dev/null 2>&1 echo >&2 "nvm is not compatible with the npm config \"prefix\" option: currently set to \"$NVM_NPM_PREFIX\"" From 1adcabf5e8f274b9817c429730b99219c0184f59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20R=C3=BCger?= Date: Wed, 28 Oct 2015 20:53:15 +0100 Subject: [PATCH 0575/1426] Replace backticks with $() command substitution --- nvm.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/nvm.sh b/nvm.sh index aaeb357..ed35b90 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1168,7 +1168,7 @@ nvm_install_node_binary() { fi t="$VERSION-$NVM_OS-$NVM_ARCH" url="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-${t}.tar.gz" - sum=`nvm_download -L -s "$NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt" -o - | command grep "node-${t}.tar.gz" | command awk '{print $1}'` + sum=$(nvm_download -L -s "$NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt" -o - | command grep "node-${t}.tar.gz" | command awk '{print $1}') local tmpdir tmpdir="$NVM_DIR/bin/node-${t}" local tmptarball @@ -1236,10 +1236,10 @@ nvm_install_node_source() { local tmptarball tmptarball="$tmpdir/node-$VERSION.tar.gz" - if [ "`nvm_download -L -s -I "$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" -o - 2>&1 | command grep '200 OK'`" != '' ]; then + if [ "$(nvm_download -L -s -I "$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" -o - 2>&1 | command grep '200 OK')" != '' ]; then tarball="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" - sum=`nvm_download -L -s "$NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt" -o - | command grep "node-${VERSION}.tar.gz" | command awk '{print $1}'` - elif [ "`nvm_download -L -s -I "$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" -o - | command grep '200 OK'`" != '' ]; then + sum=$(nvm_download -L -s "$NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt" -o - | command grep "node-${VERSION}.tar.gz" | command awk '{print $1}') + elif [ "$(nvm_download -L -s -I "$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" -o - | command grep '200 OK')" != '' ]; then tarball="$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" fi @@ -1710,7 +1710,7 @@ nvm() { echo "$NVM_SUCCESS_MSG" # rm any aliases that point to uninstalled version. - for ALIAS in `command grep -l "$VERSION" "$(nvm_alias_path)/*" 2>/dev/null` + for ALIAS in $(command grep -l "$VERSION" "$(nvm_alias_path)/*" 2>/dev/null) do nvm unalias "$(command basename "$ALIAS")" done From 9cceded178a6ee74a0d3a492bfda62e167f0b649 Mon Sep 17 00:00:00 2001 From: Whitney Young Date: Tue, 3 Nov 2015 10:44:07 -0800 Subject: [PATCH 0576/1426] Updated docs for alias default. --- README.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index 6f9f254..e165a17 100644 --- a/README.markdown +++ b/README.markdown @@ -116,7 +116,7 @@ To restore your PATH, you can deactivate it. To set a default Node version to be used in any new shell, use the alias 'default': - nvm alias default stable + nvm alias default node To use a mirror of the node binaries, set `$NVM_NODEJS_ORG_MIRROR`: From 45e4387ce366c62567ce1fbbd4eb2363a75ec4ec Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 2 Nov 2015 00:50:40 -0800 Subject: [PATCH 0577/1426] [Tests] Print out `curl` and `wget` versions inside `travis-ci` --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index 48b4876..072eb74 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,6 +3,9 @@ addons: apt_packages: - zsh - ksh +before_install: + - curl --version + - wget --version install: - (mkdir /tmp/urchin && cd /tmp/urchin && curl -s "$(curl -s https://registry.npmjs.com/urchin | grep -Eo '"tarball":\s*"[^"]+"' | tail -n 1 | awk -F\" '{ print $4 }')" -O && tar -x -f urchin*) - chmod +x /tmp/urchin/package/urchin From 9972de6dece866a8c5baccca40fbbb04a3650e5f Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 4 Nov 2015 21:19:32 -0800 Subject: [PATCH 0578/1426] [Docs] update version numbers in the readme; add default alias info --- README.markdown | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/README.markdown b/README.markdown index e165a17..cb5715a 100644 --- a/README.markdown +++ b/README.markdown @@ -49,32 +49,32 @@ Often I also put in a line to use a specific version of node. You can create an `.nvmrc` file containing version number in the project root directory (or any parent directory). `nvm use`, `nvm install`, `nvm exec`, `nvm run`, and `nvm which` will all respect an `.nvmrc` file when a version is not supplied. -To download, compile, and install the latest v0.10.x release of node, do this: +To download, compile, and install the latest v5.0.x release of node, do this: - nvm install 0.10 + nvm install 5.0 And then in any new shell just use the installed version: - nvm use 0.10 + nvm use 5.0 Or you can just run it: - nvm run 0.10 --version + nvm run 5.0 --version Or, you can run any arbitrary command in a subshell with the desired version of node: - nvm exec 0.10 node --version + nvm exec 4.2 node --version You can also get the path to the executable to where it was installed: - nvm which 0.10 + nvm which 5.0 -In place of a version pointer like "0.10", you can use the special default aliases "stable" and "unstable": +In place of a version pointer like "0.10" or "5.0" or "4.2.1", you can use the following special default aliases with `nvm install`, `nvm use`, `nvm run`, `nvm exec`, `nvm which`, etc: - nvm install stable - nvm install unstable - nvm use stable - nvm run unstable --version + - `node`: this installs the latest version of [`node`](https://nodejs.org/en/) + - `iojs`: this installs the latest version of [`io.js`](https://iojs.org/en/) + - `stable`: this alias is deprecated, and only truly applies to `node` `v0.12` and earlier. Currently, this is an alias for `node`. + - `unstable`: this alias points to `node` `v0.11` - the last "unstable" node release, since post-1.0, all node versions are stable. (in semver, versions communicate breakage, not stability). If you want to install a new version of Node.js and migrate npm packages from a previous version: @@ -84,8 +84,8 @@ This will first use "nvm version node" to identify the current version you're mi You can also install and migrate npm packages from specific versions of Node like this: - nvm install v0.10.40 --reinstall-packages-from=0.10.39 - nvm install v0.12.7 --reinstall-packages-from=0.12.6 + nvm install v5.0 --reinstall-packages-from=4.2 + nvm install v4.2 --reinstall-packages-from=iojs If you want to install [io.js](https://github.com/iojs/io.js/): @@ -121,9 +121,9 @@ To set a default Node version to be used in any new shell, use the alias 'defaul To use a mirror of the node binaries, set `$NVM_NODEJS_ORG_MIRROR`: export NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist - nvm install 0.10 + nvm install node - NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist nvm install 0.10 + NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist nvm install 4.2 To use a mirror of the iojs binaries, set `$NVM_IOJS_ORG_MIRROR`: From e10705b896ee417e03512403df82e22d7a9b25ca Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 9 Nov 2015 11:36:30 -0800 Subject: [PATCH 0579/1426] [Docs] improve manual install instructions --- README.markdown | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.markdown b/README.markdown index cb5715a..fb6bedf 100644 --- a/README.markdown +++ b/README.markdown @@ -31,7 +31,7 @@ Eg: `curl ... | NVM_DIR=/usr/local/nvm bash` for a global install. ### Manual install -For manual install create a folder somewhere in your filesystem with the `nvm.sh` file inside it. I put mine in a folder called `nvm`. +For manual install create a folder somewhere in your filesystem with the `nvm.sh` file inside it. I put mine in `~/.nvm`. Or if you have `git` installed, then just clone it, and check out the latest version: @@ -41,8 +41,10 @@ To activate nvm, you need to source it from your shell: . ~/.nvm/nvm.sh -I always add this line to my `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it automatically sourced upon login. -Often I also put in a line to use a specific version of node. +Add these lines to your `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it automatically sourced upon login: + + export NVM_DIR="$HOME/.nvm" + [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm ## Usage From c742ab7e66d8b5c432907efd74e8b5bc7be8385e Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 10 Nov 2015 23:31:16 -0800 Subject: [PATCH 0580/1426] Fix `npm` version output for `nvm run` and `nvm exec` --- nvm.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index ed35b90..c3034b9 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1936,11 +1936,11 @@ nvm() { fi EXIT_CODE="$?" elif [ "$NVM_IOJS" = true ]; then - [ $NVM_SILENT -eq 1 ] || echo "Running io.js $(nvm_strip_iojs_prefix "$VERSION")$(nvm_print_npm_version)" + [ $NVM_SILENT -eq 1 ] || echo "Running io.js $(nvm_strip_iojs_prefix "$VERSION")$(nvm use --silent "$VERSION" && nvm_print_npm_version)" OUTPUT="$(nvm use "$VERSION" >/dev/null && iojs $ARGS)" EXIT_CODE="$?" else - [ $NVM_SILENT -eq 1 ] || echo "Running node $VERSION$(nvm_print_npm_version)" + [ $NVM_SILENT -eq 1 ] || echo "Running node $VERSION$(nvm use --silent "$VERSION" && nvm_print_npm_version)" OUTPUT="$(nvm use "$VERSION" >/dev/null && node $ARGS)" EXIT_CODE="$?" fi @@ -1985,7 +1985,7 @@ nvm() { return $EXIT_CODE fi - [ $NVM_SILENT -eq 1 ] || echo "Running node $VERSION$(nvm_print_npm_version)" + [ $NVM_SILENT -eq 1 ] || echo "Running node $VERSION$(nvm use --silent "$VERSION" && nvm_print_npm_version)" NODE_VERSION="$VERSION" "$NVM_DIR/nvm-exec" "$@" ;; "ls" | "list" ) From 720087b009be535a0b3abf8f0795a6f618050215 Mon Sep 17 00:00:00 2001 From: Bryan Tong Date: Wed, 18 Nov 2015 20:18:55 -0700 Subject: [PATCH 0581/1426] Add another Windows alternative. Nodist is a similar CLI interface providing similar functionality. Nodist also recently added a Windows install wizard. --- README.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index fb6bedf..f6b2425 100644 --- a/README.markdown +++ b/README.markdown @@ -4,9 +4,10 @@ First you'll need to make sure your system has a c++ compiler. For OSX, XCode will work, for Ubuntu, the build-essential and libssl-dev packages work. -Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/nvm/issues/284)). Two alternatives exist, which are neither supported nor developed by us: +Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/nvm/issues/284)). Three alternatives exist, which are neither supported nor developed by us: - [nvmw](https://github.com/hakobera/nvmw) - [nvm-windows](https://github.com/coreybutler/nvm-windows) + - [nodist](https://github.com/marcelklehr/nodist) Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creationix/nvm/issues/303)). Alternatives exist, which are neither supported nor developed by us: - [nvm](https://github.com/derekstavis/plugin-nvm) plugin for [Oh My Fish](https://github.com/oh-my-fish/oh-my-fish), which makes nvm and its completions available in fish shell From 6d2c9a95b0d8d6bcbfa486c817202c8f9609eecb Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 2 Dec 2015 22:14:08 -0800 Subject: [PATCH 0582/1426] [Docs] remove note about "global install", since `nvm` is not intended for multiuser installs. Per https://github.com/creationix/nvm/issues/918#issuecomment-161527422 --- README.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index fb6bedf..811ecd7 100644 --- a/README.markdown +++ b/README.markdown @@ -25,7 +25,7 @@ or Wget: The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). You can customize the install source, directory and profile using the `NVM_SOURCE`, `NVM_DIR`, and `PROFILE` variables. -Eg: `curl ... | NVM_DIR=/usr/local/nvm bash` for a global install. +Eg: `curl ... | NVM_DIR="path/to/nvm" bash` *NB. The installer can use `git`, `curl`, or `wget` to download `nvm`, whatever is available.* From 803be3a4ebc216e95d2d6323116188002c867d78 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 2 Dec 2015 22:49:38 -0800 Subject: [PATCH 0583/1426] [Tests] temporarily disable WITHOUT_CURL tests. Blocked by https://github.com/nodejs/build/issues/233 --- .travis.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 072eb74..a6f5626 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,12 +30,12 @@ env: - SHELL=zsh TEST_SUITE=sourcing # - SHELL=ksh TEST_SUITE=sourcing - SHELL=sh TEST_SUITE=installation - - SHELL=sh TEST_SUITE=installation WITHOUT_CURL=1 +# - SHELL=sh TEST_SUITE=installation WITHOUT_CURL=1 - SHELL=dash TEST_SUITE=installation - - SHELL=dash TEST_SUITE=installation WITHOUT_CURL=1 +# - SHELL=dash TEST_SUITE=installation WITHOUT_CURL=1 - SHELL=bash TEST_SUITE=installation - - SHELL=bash TEST_SUITE=installation WITHOUT_CURL=1 +# - SHELL=bash TEST_SUITE=installation WITHOUT_CURL=1 - SHELL=zsh TEST_SUITE=installation - - SHELL=zsh TEST_SUITE=installation WITHOUT_CURL=1 +# - SHELL=zsh TEST_SUITE=installation WITHOUT_CURL=1 # - SHELL=ksh TEST_SUITE=installation # - SHELL=ksh TEST_SUITE=installation WITHOUT_CURL=1 From 2a174d03d8fa8eadae8becd2977321859a83dc31 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 9 Nov 2015 23:32:22 +0800 Subject: [PATCH 0584/1426] Update nvm.sh Add prompt when there is no binary for node version greater than v1.0.0 Currently, on FreeBSD, if we try `nvm install 4.2`, we will only get: > Installing node v1.0 and greater from source is not currently supported In fact I had no idea what's wrong because I didn't use `-s` parameter for it, and then I found that there are two reasons: 1. There was no pre-built nodejs binary from official for FreeBSD, which means we need to build from source. 2. nvm doesn't support build for v1.0 and greater version from source yet. So I think there should be a prompt message to tell the user about the reason why nvm will go to build from source, no matter it will succeed or fail. --- nvm.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nvm.sh b/nvm.sh index c3034b9..c6b8f83 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1616,10 +1616,12 @@ nvm() { if [ "_$NVM_OS" = "_freebsd" ]; then # node.js and io.js do not have a FreeBSD binary nobinary=1 + echo "Currently, there is no binary for $NVM_OS" >&2 elif [ "_$NVM_OS" = "_sunos" ]; then # Not all node/io.js versions have a Solaris binary if ! nvm_has_solaris_binary "$VERSION"; then nobinary=1 + echo "Currently, there is no binary of version $VERSION for $NVM_OS" >&2 fi fi local NVM_INSTALL_SUCCESS From 4ef9e1583c0dca9558a3d735bdfcd22db30a181a Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Tue, 10 Nov 2015 05:07:12 +0800 Subject: [PATCH 0585/1426] Update README.markdown Talk about FreeBSD support. Hope user can easily know that earlier, and also hope we can get much more help about this topic. --- README.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.markdown b/README.markdown index 811ecd7..bd85589 100644 --- a/README.markdown +++ b/README.markdown @@ -12,6 +12,10 @@ Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creati - [nvm](https://github.com/derekstavis/plugin-nvm) plugin for [Oh My Fish](https://github.com/oh-my-fish/oh-my-fish), which makes nvm and its completions available in fish shell - [bass](https://github.com/edc/bass) allows to use utilities written for Bash in fish shell +Note: We still have some problems with FreeBSD, because there is no pre-built binary from official for FreeBSD, and building from source may need [patches](https://www.freshports.org/www/node/files/patch-deps_v8_src_base_platform_platform-posix.cc), see the issue ticket: + - [[#900] [Bug] nodejs on FreeBSD need to be patched ](https://github.com/creationix/nvm/issues/900) + - [nodejs/node#3716](https://github.com/nodejs/node/issues/3716) + ### Install script To install or update nvm, you can use the [install script][2] using cURL: From dbe2a1b2b40ab59692ab772f434af5802707c75c Mon Sep 17 00:00:00 2001 From: Riyadh Al Nur Date: Sat, 5 Dec 2015 13:52:30 +0600 Subject: [PATCH 0586/1426] Updated README Updated README to inform OSX users that XCode doesn't need to be installed in order to get stsrted using `nvm`. Fixes #921 --- README.markdown | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index d706ad7..c029551 100644 --- a/README.markdown +++ b/README.markdown @@ -15,7 +15,10 @@ Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creati Note: We still have some problems with FreeBSD, because there is no pre-built binary from official for FreeBSD, and building from source may need [patches](https://www.freshports.org/www/node/files/patch-deps_v8_src_base_platform_platform-posix.cc), see the issue ticket: - [[#900] [Bug] nodejs on FreeBSD need to be patched ](https://github.com/creationix/nvm/issues/900) - - [nodejs/node#3716](https://github.com/nodejs/node/issues/3716) + - [nodejs/node#3716](https://github.com/nodejs/node/issues/3716) + +Note: On OSX, if you do not have XCode installed and you do not wish to download the ~4.3GB file, you can install the `Command Line Tools`. You can check out this blog post on how to just that: + - [How to Install Command Line Tools in OS X Mavericks & Yosemite (Without Xcode)](http://osxdaily.com/2014/02/12/install-command-line-tools-mac-os-x/) ### Install script From 896199facc8ea24730a1519b7392ccc42a353cd5 Mon Sep 17 00:00:00 2001 From: Daniel Kmak Date: Sat, 12 Dec 2015 20:00:49 +0100 Subject: [PATCH 0587/1426] Update README.markdown and LICENSE.md --- LICENSE.md | 2 +- README.markdown | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/LICENSE.md b/LICENSE.md index d79df5f..336298e 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2010-2014 Tim Caswell +Copyright (c) 2010-2016 Tim Caswell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in diff --git a/README.markdown b/README.markdown index c029551..849d0b3 100644 --- a/README.markdown +++ b/README.markdown @@ -149,7 +149,7 @@ To use a mirror of the iojs binaries, set `$NVM_IOJS_ORG_MIRROR`: nvm is released under the MIT license. -Copyright (C) 2010-2014 Tim Caswell +Copyright (C) 2010-2016 Tim Caswell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: From 2a8caf48e858a79ebbdb672a7c0da342dab3b594 Mon Sep 17 00:00:00 2001 From: Tom Byrer Date: Sun, 13 Dec 2015 18:16:14 -0700 Subject: [PATCH 0588/1426] del nvmw link Seems to be abandoned: - https://github.com/hakobera/nvmw/issues/67 - https://github.com/hakobera/nvmw/issues/66 - https://github.com/hakobera/nvmw/issues/69 --- README.markdown | 1 - 1 file changed, 1 deletion(-) diff --git a/README.markdown b/README.markdown index 849d0b3..d5ac794 100644 --- a/README.markdown +++ b/README.markdown @@ -5,7 +5,6 @@ First you'll need to make sure your system has a c++ compiler. For OSX, XCode will work, for Ubuntu, the build-essential and libssl-dev packages work. Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/nvm/issues/284)). Three alternatives exist, which are neither supported nor developed by us: - - [nvmw](https://github.com/hakobera/nvmw) - [nvm-windows](https://github.com/coreybutler/nvm-windows) - [nodist](https://github.com/marcelklehr/nodist) From 04c5e3540eda71360470c6bd0ef850fefed7190c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 13 Dec 2015 21:34:28 -0800 Subject: [PATCH 0589/1426] `nvm unalias`: Provide a restore command when unaliasing. Fixes #916. --- nvm.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index c6b8f83..45a6a9d 100755 --- a/nvm.sh +++ b/nvm.sh @@ -2163,8 +2163,10 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' return 127 fi [ ! -f "$NVM_ALIAS_DIR/$2" ] && echo "Alias $2 doesn't exist!" >&2 && return + local NVM_ALIAS_ORIGINAL + NVM_ALIAS_ORIGINAL="$(nvm_alias "$2")" command rm -f "$NVM_ALIAS_DIR/$2" - echo "Deleted alias $2" + echo "Deleted alias $2 - restore it with \`nvm alias $2 "$NVM_ALIAS_ORIGINAL"\`" ;; "reinstall-packages" | "copy-packages" ) if [ $# -ne 2 ]; then From ec9232bb0618048ae09664286131d4e73fa2fe46 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 21 Dec 2015 17:40:01 +0800 Subject: [PATCH 0590/1426] update nodejs.org-dist-index.tab and related test Src: https://iojs.org/dist/index.tab --- test/fast/Unit tests/nodejs.org-dist-index.tab | 10 ++++++++++ test/fast/Unit tests/nvm_ls_remote | 4 ++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/test/fast/Unit tests/nodejs.org-dist-index.tab b/test/fast/Unit tests/nodejs.org-dist-index.tab index 354c6a7..030ddb9 100644 --- a/test/fast/Unit tests/nodejs.org-dist-index.tab +++ b/test/fast/Unit tests/nodejs.org-dist-index.tab @@ -1,10 +1,19 @@ version date files npm v8 uv zlib openssl modules lts +v5.3.0 2015-12-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - +v5.2.0 2015-12-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 - +v5.1.1 2015-12-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 - +v5.1.0 2015-11-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2d 47 - +v5.0.0 2015-10-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.6 4.6.85.28 1.7.5 1.2.8 1.0.2d 47 - +v4.2.3 2015-12-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2e 46 Argon +v4.2.2 2015-11-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 Argon v4.2.1 2015-10-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 Argon v4.2.0 2015-10-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 Argon v4.1.2 2015-10-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.4 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 - v4.1.1 2015-09-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.4 4.5.103.33 1.7.4 1.2.8 1.0.2d 46 - v4.1.0 2015-09-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.3 4.5.103.33 1.7.4 1.2.8 1.0.2d 46 - v4.0.0 2015-09-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.2 4.5.103.30 1.7.3 1.2.8 1.0.2d 46 - +v0.12.9 2015-12-03 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.14.9 3.28.71.19 1.6.1 1.2.8 1.0.1p 14 - +v0.12.8 2015-11-24 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.14.9 3.28.71.19 1.6.1 1.2.8 1.0.1p 14 - v0.12.7 2015-07-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.11.3 3.28.71.19 1.6.1 1.2.8 1.0.1p 14 - v0.12.6 2015-07-04 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.11.2 3.28.71.19 1.6.1 1.2.8 1.0.1o 14 - v0.12.5 2015-06-22 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.11.2 3.28.71.19 1.6.1 1.2.8 1.0.1o 14 - @@ -30,6 +39,7 @@ v0.11.3 2013-06-26 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,s v0.11.2 2013-05-13 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.21 3.19.0.0 0.11.2 1.2.3 1.0.1e 0x000C - v0.11.1 2013-04-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.18 3.18.0.0 0.11.1 1.2.3 1.0.1e 0x000C - v0.11.0 2013-04-01 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.15 3.17.13.0 0.10.3 1.2.3 1.0.1e 0x000C - +v0.10.41 2015-12-03 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.29 3.14.5.9 0.10.36 1.2.8 1.0.1p 11 - v0.10.40 2015-07-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.36 1.2.8 1.0.1p 11 - v0.10.39 2015-06-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.36 1.2.8 1.0.1o 11 - v0.10.38 2015-03-23 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.36 1.2.8 1.0.1m 11 - diff --git a/test/fast/Unit tests/nvm_ls_remote b/test/fast/Unit tests/nvm_ls_remote index 76b9f54..dbb6358 100755 --- a/test/fast/Unit tests/nvm_ls_remote +++ b/test/fast/Unit tests/nvm_ls_remote @@ -38,7 +38,7 @@ v0.3.8" # Sanity checks OUTPUT="$(nvm_print_implicit_alias remote stable)" -EXPECTED_OUTPUT="4.2" +EXPECTED_OUTPUT="5.3" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_print_implicit_alias remote stable did not output $EXPECTED_OUTPUT; got $OUTPUT" OUTPUT="$(nvm_print_implicit_alias remote unstable)" @@ -46,7 +46,7 @@ EXPECTED_OUTPUT="0.11" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_print_implicit_alias remote unstable did not output $EXPECTED_OUTPUT; got $OUTPUT" OUTPUT="$(nvm_ls_remote stable)" -EXPECTED_OUTPUT="v4.2.1" +EXPECTED_OUTPUT="v5.3.0" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote stable did not output $EXPECTED_OUTPUT; got $OUTPUT" OUTPUT="$(nvm_ls_remote unstable)" From 605a30530048931af889bab458a374230610a6e6 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 21 Dec 2015 17:43:29 +0800 Subject: [PATCH 0591/1426] add iojs as one of the keywords in package.json --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 8fe5621..8be586a 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "keywords": [ "nvm", "node", + "iojs", "version", "manager" ], From 6638ac3318d09a6c1bac35797b5a5f4b99e8e5a5 Mon Sep 17 00:00:00 2001 From: Kilian Ciuffolo Date: Sun, 6 Dec 2015 23:52:40 -0800 Subject: [PATCH 0592/1426] [refactor] improved bootstrap time Fixes #860, closes #927. --- nvm.sh | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/nvm.sh b/nvm.sh index 45a6a9d..2abcc39 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1836,12 +1836,10 @@ nvm() { command rm -f "$NVM_DIR/current" && ln -s "$NVM_VERSION_DIR" "$NVM_DIR/current" fi local NVM_USE_OUTPUT - if nvm_is_iojs_version "$VERSION"; then - if [ $NVM_USE_SILENT -ne 1 ]; then + if [ $NVM_USE_SILENT -ne 1 ]; then + if nvm_is_iojs_version "$VERSION"; then NVM_USE_OUTPUT="Now using io.js $(nvm_strip_iojs_prefix "$VERSION")$(nvm_print_npm_version)" - fi - else - if [ $NVM_USE_SILENT -ne 1 ]; then + else NVM_USE_OUTPUT="Now using node $VERSION$(nvm_print_npm_version)" fi fi From 91ce41b7022345b595c387ec2d9b27eb08385253 Mon Sep 17 00:00:00 2001 From: emparq Date: Fri, 30 Oct 2015 18:48:08 -0700 Subject: [PATCH 0593/1426] [Fix: Install] incorrect check for `"$NVM_DIR/nvm.sh"` Should be using `-f` if checking for a file. Closes #887. --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 6ea8d36..5d92310 100755 --- a/install.sh +++ b/install.sh @@ -89,7 +89,7 @@ install_nvm_as_script() { # Downloading to $NVM_DIR mkdir -p "$NVM_DIR" - if [ -d "$NVM_DIR/nvm.sh" ]; then + if [ -f "$NVM_DIR/nvm.sh" ]; then echo "=> nvm is already installed in $NVM_DIR, trying to update the script" else echo "=> Downloading nvm as script to '$NVM_DIR'" From b76d43e9f8f0fa5fc1ef6a4934da36d763e80dae Mon Sep 17 00:00:00 2001 From: Keiichiro Ui Date: Thu, 24 Dec 2015 19:16:13 +0900 Subject: [PATCH 0594/1426] Fix `nvm-exec` for the commands includes white-spaces --- nvm-exec | 2 +- "test/slow/nvm exec/Running \"nvm exec 0.x\" should work" | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/nvm-exec b/nvm-exec index 3573a12..29633a3 100755 --- a/nvm-exec +++ b/nvm-exec @@ -10,4 +10,4 @@ else nvm use > /dev/null || (echo "No .nvmrc file found" >&2 && exit 127) fi -exec $@ +exec "$@" diff --git "a/test/slow/nvm exec/Running \"nvm exec 0.x\" should work" "b/test/slow/nvm exec/Running \"nvm exec 0.x\" should work" index 7798d79..bf036cf 100755 --- "a/test/slow/nvm exec/Running \"nvm exec 0.x\" should work" +++ "b/test/slow/nvm exec/Running \"nvm exec 0.x\" should work" @@ -6,8 +6,10 @@ die () { echo $@ ; exit 1; } nvm use 0.10 NPM_VERSION_TEN="$(npm --version)" +TEST_STRING="foo bar" nvm use 0.11.7 && [ "$(node --version)" = "v0.11.7" ] || die "\`nvm use\` failed!" [ "$(nvm exec 0.10 npm --version | tail -1)" = "$NPM_VERSION_TEN" ] || die "`nvm exec` failed to run with the correct version" +[ "$(nvm exec 0.10 bash -c "printf '$TEST_STRING'" | tail -1)" = "$TEST_STRING" ] || die "`nvm exec` failed to run with the command include white-spaces" From f85171660190147ba66a733c3769ef45cf07c8d4 Mon Sep 17 00:00:00 2001 From: Mathias Meyer Date: Tue, 22 Dec 2015 11:28:25 +0100 Subject: [PATCH 0595/1426] Add workaround for Travis CI environment issue. Per https://github.com/travis-ci/travis-ci/issues/5363 --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index a6f5626..1b17b9f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,6 +11,7 @@ install: - chmod +x /tmp/urchin/package/urchin - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' script: + - export PATH=$(echo $PATH | sed 's/::/:/') - NVM_DIR=$TRAVIS_BUILD_DIR make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin/package/urchin test-$SHELL env: - SHELL=bash TEST_SUITE=install_script From a8e6fee001085c52fd1084bd4bf00a8c0a027cac Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sat, 5 Dec 2015 15:06:01 +0800 Subject: [PATCH 0596/1426] Enable multiple jobs for when build from source --- nvm.sh | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 2abcc39..d919e06 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1231,6 +1231,30 @@ nvm_install_node_source() { make='gmake' MAKE_CXX="CXX=c++" fi + + if [ "_$NVM_OS" = "_linux" ]; then + CPU_THREADS="$(grep -c 'core id' /proc/cpuinfo)" + elif [ "_$NVM_OS" = "_freebsd" ] || [ "_$NVM_OS" = "_darwin" ]; then + CPU_THREADS="$(sysctl -n hw.ncpu)" + elif [ "_$NVM_OS" = "_sunos" ]; then + CPU_THREADS="$(psrinfo | wc -l)" + fi + local CPU_THREAD_VALID + CPU_THREAD_VALID=$(nvm_is_natural_num $CPU_THREADS) + if [ -z "$CPU_THREADS" ] || [ "$CPU_THREAD_VALID" != "true" ] ; then + echo "Can not determine how many thread(s) we can use, set to only 1 now." 1>&2 + echo "Please report an issue on GitHub to help us make it better and run it faster on your computer!" 1>&2 + MAKE_JOBS="1" + else + echo "Detected that you have $CPU_THREADS CPU thread(s)" + if [ $CPU_THREADS -gt 2 ]; then + MAKE_JOBS=$(($CPU_THREADS - 1)) + echo "Set the number of jobs to $CPU_THREADS - 1 = $MAKE_JOBS jobs to speed up the build" + else + MAKE_JOBS=1 + echo "Number of CPU thread(s) less or equal to 2 will have only one job a time for 'make'" + fi + fi local tmpdir tmpdir="$NVM_DIR/src" local tmptarball @@ -1252,9 +1276,9 @@ nvm_install_node_source() { command tar -xzf "$tmptarball" -C "$tmpdir" && \ cd "$tmpdir/node-$VERSION" && \ ./configure --prefix="$VERSION_PATH" $ADDITIONAL_PARAMETERS && \ - $make $MAKE_CXX && \ + $make -j $MAKE_JOBS $MAKE_CXX && \ command rm -f "$VERSION_PATH" 2>/dev/null && \ - $make $MAKE_CXX install + $make -j $MAKE_JOBS $MAKE_CXX install ) then if ! nvm_has "npm" ; then @@ -1430,6 +1454,16 @@ nvm_sanitize_path() { echo "$SANITIZED_PATH" | command sed "s#$HOME#\$HOME#g" } +nvm_is_natural_num() { + echo $1 | command egrep -q '^[0-9]{1,}$' &> /dev/null + local IS_NATURAL_NUM=$? + if [ "$IS_NATURAL_NUM" = "0" ]; then + echo true + else + echo false + fi +} + nvm() { if [ $# -lt 1 ]; then nvm help From 6320719dd893914f575c60279b71a0796f5644f4 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sat, 5 Dec 2015 15:22:06 +0800 Subject: [PATCH 0597/1426] Support parameter -j to set jobs for make --- nvm.sh | 57 +++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 37 insertions(+), 20 deletions(-) diff --git a/nvm.sh b/nvm.sh index d919e06..7f7ddf2 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1232,27 +1232,29 @@ nvm_install_node_source() { MAKE_CXX="CXX=c++" fi - if [ "_$NVM_OS" = "_linux" ]; then - CPU_THREADS="$(grep -c 'core id' /proc/cpuinfo)" - elif [ "_$NVM_OS" = "_freebsd" ] || [ "_$NVM_OS" = "_darwin" ]; then - CPU_THREADS="$(sysctl -n hw.ncpu)" - elif [ "_$NVM_OS" = "_sunos" ]; then - CPU_THREADS="$(psrinfo | wc -l)" - fi - local CPU_THREAD_VALID - CPU_THREAD_VALID=$(nvm_is_natural_num $CPU_THREADS) - if [ -z "$CPU_THREADS" ] || [ "$CPU_THREAD_VALID" != "true" ] ; then - echo "Can not determine how many thread(s) we can use, set to only 1 now." 1>&2 - echo "Please report an issue on GitHub to help us make it better and run it faster on your computer!" 1>&2 - MAKE_JOBS="1" - else - echo "Detected that you have $CPU_THREADS CPU thread(s)" - if [ $CPU_THREADS -gt 2 ]; then - MAKE_JOBS=$(($CPU_THREADS - 1)) - echo "Set the number of jobs to $CPU_THREADS - 1 = $MAKE_JOBS jobs to speed up the build" + if [ -z "$MAKE_JOBS" ]; then + if [ "_$NVM_OS" = "_linux" ]; then + CPU_THREADS="$(grep -c 'core id' /proc/cpuinfo)" + elif [ "_$NVM_OS" = "_freebsd" ] || [ "_$NVM_OS" = "_darwin" ]; then + CPU_THREADS="$(sysctl -n hw.ncpu)" + elif [ "_$NVM_OS" = "_sunos" ]; then + CPU_THREADS="$(psrinfo | wc -l)" + fi + local CPU_THREAD_VALID + CPU_THREAD_VALID=$(nvm_is_natural_num $CPU_THREADS) + if [ -z "$CPU_THREADS" ] || [ "$CPU_THREAD_VALID" != "true" ] ; then + echo "Can not determine how many thread(s) we can use, set to only 1 now." 1>&2 + echo "Please report an issue on GitHub to help us make it better and run it faster on your computer!" 1>&2 + MAKE_JOBS="1" else - MAKE_JOBS=1 - echo "Number of CPU thread(s) less or equal to 2 will have only one job a time for 'make'" + echo "Detected that you have $CPU_THREADS CPU thread(s)" + if [ $CPU_THREADS -gt 2 ]; then + MAKE_JOBS=$(($CPU_THREADS - 1)) + echo "Set the number of jobs to $CPU_THREADS - 1 = $MAKE_JOBS jobs to speed up the build" + else + MAKE_JOBS=1 + echo "Number of CPU thread(s) less or equal to 2 will have only one job a time for 'make'" + fi fi fi local tmpdir @@ -1579,6 +1581,21 @@ nvm() { if [ "_$1" = "_-s" ]; then nobinary=1 shift + if [ "_$1" = "_-j" ]; then + shift + local CPU_THREAD_VALID + CPU_THREAD_VALID=$(nvm_is_natural_num $1) + if [ "$CPU_THREAD_VALID" = "true" ]; then + MAKE_JOBS=$1 + echo "Set number of jobs to $MAKE_JOBS for 'make' utility" + else + unset MAKE_JOBS + echo >&2 "$1 is invalid for CPU threads, should be a natural number" + fi + shift + else + unset MAKE_JOBS + fi fi provided_version="$1" From e78dc5110e36954f5701f77ea93b6c0601b9adde Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sat, 5 Dec 2015 15:32:36 +0800 Subject: [PATCH 0598/1426] fix CPU_THREADS/CPU_THREAD_VALID/MAKE_JOBS prefix --- nvm.sh | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/nvm.sh b/nvm.sh index 7f7ddf2..51f9a64 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1232,27 +1232,27 @@ nvm_install_node_source() { MAKE_CXX="CXX=c++" fi - if [ -z "$MAKE_JOBS" ]; then + if [ -z "$NVM_MAKE_JOBS" ]; then if [ "_$NVM_OS" = "_linux" ]; then - CPU_THREADS="$(grep -c 'core id' /proc/cpuinfo)" + NVM_CPU_THREADS="$(grep -c 'core id' /proc/cpuinfo)" elif [ "_$NVM_OS" = "_freebsd" ] || [ "_$NVM_OS" = "_darwin" ]; then - CPU_THREADS="$(sysctl -n hw.ncpu)" + NVM_CPU_THREADS="$(sysctl -n hw.ncpu)" elif [ "_$NVM_OS" = "_sunos" ]; then - CPU_THREADS="$(psrinfo | wc -l)" + NVM_CPU_THREADS="$(psrinfo | wc -l)" fi - local CPU_THREAD_VALID - CPU_THREAD_VALID=$(nvm_is_natural_num $CPU_THREADS) - if [ -z "$CPU_THREADS" ] || [ "$CPU_THREAD_VALID" != "true" ] ; then + local NVM_CPU_THREAD_VALID + NVM_CPU_THREAD_VALID=$(nvm_is_natural_num $NVM_CPU_THREADS) + if [ -z "$NVM_CPU_THREADS" ] || [ "$NVM_CPU_THREAD_VALID" != "true" ] ; then echo "Can not determine how many thread(s) we can use, set to only 1 now." 1>&2 echo "Please report an issue on GitHub to help us make it better and run it faster on your computer!" 1>&2 - MAKE_JOBS="1" + NVM_MAKE_JOBS="1" else - echo "Detected that you have $CPU_THREADS CPU thread(s)" - if [ $CPU_THREADS -gt 2 ]; then - MAKE_JOBS=$(($CPU_THREADS - 1)) - echo "Set the number of jobs to $CPU_THREADS - 1 = $MAKE_JOBS jobs to speed up the build" + echo "Detected that you have $NVM_CPU_THREADS CPU thread(s)" + if [ $NVM_CPU_THREADS -gt 2 ]; then + NVM_MAKE_JOBS=$(($NVM_CPU_THREADS - 1)) + echo "Set the number of jobs to $NVM_CPU_THREADS - 1 = $NVM_MAKE_JOBS jobs to speed up the build" else - MAKE_JOBS=1 + NVM_MAKE_JOBS=1 echo "Number of CPU thread(s) less or equal to 2 will have only one job a time for 'make'" fi fi @@ -1278,9 +1278,9 @@ nvm_install_node_source() { command tar -xzf "$tmptarball" -C "$tmpdir" && \ cd "$tmpdir/node-$VERSION" && \ ./configure --prefix="$VERSION_PATH" $ADDITIONAL_PARAMETERS && \ - $make -j $MAKE_JOBS $MAKE_CXX && \ + $make -j $NVM_MAKE_JOBS $MAKE_CXX && \ command rm -f "$VERSION_PATH" 2>/dev/null && \ - $make -j $MAKE_JOBS $MAKE_CXX install + $make -j $NVM_MAKE_JOBS $MAKE_CXX install ) then if ! nvm_has "npm" ; then @@ -1583,18 +1583,18 @@ nvm() { shift if [ "_$1" = "_-j" ]; then shift - local CPU_THREAD_VALID - CPU_THREAD_VALID=$(nvm_is_natural_num $1) - if [ "$CPU_THREAD_VALID" = "true" ]; then - MAKE_JOBS=$1 + local NVM_CPU_THREAD_VALID + NVM_CPU_THREAD_VALID=$(nvm_is_natural_num $1) + if [ "$NVM_CPU_THREAD_VALID" = "true" ]; then + NVM_MAKE_JOBS=$1 echo "Set number of jobs to $MAKE_JOBS for 'make' utility" else - unset MAKE_JOBS + unset NVM_MAKE_JOBS echo >&2 "$1 is invalid for CPU threads, should be a natural number" fi shift else - unset MAKE_JOBS + unset NVM_MAKE_JOBS fi fi From cfccf03b3d3f9166905aa6fac754b815a17bb3e3 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 21 Dec 2015 16:56:29 +0800 Subject: [PATCH 0599/1426] add test for install from source --- .../install from source with thread parameter | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100755 test/installation/node/install from source with thread parameter diff --git a/test/installation/node/install from source with thread parameter b/test/installation/node/install from source with thread parameter new file mode 100755 index 0000000..473107e --- /dev/null +++ b/test/installation/node/install from source with thread parameter @@ -0,0 +1,33 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +NVM_TEST_VERSION=v0.10.41 + +# STAGE 1 # + +# Remove the stuff we're clobbering. +[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION + +# Install from source with 1 CPU thread parameter +nvm install -s -j 1 $NVM_TEST_VERSION || die "'nvm install -s $NVM_TEST_VERSION' failed" + +# Check +[ -d ../../../$NVM_TEST_VERSION ] +nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION || "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" + + + +# STAGE 2 # + +# Remove the stuff we're clobbering. +[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION + +# Install from source with 2 CPU threads parameter +nvm install -s -j 2 $NVM_TEST_VERSION || die "'nvm install -s $NVM_TEST_VERSION' failed" + +# Check +[ -d ../../../$NVM_TEST_VERSION ] +nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION || "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" From 1a6f85da469b2a4f42333ddb43ce92b3f0c078f8 Mon Sep 17 00:00:00 2001 From: thelostspore Date: Fri, 25 Dec 2015 11:53:40 -0800 Subject: [PATCH 0600/1426] README: troubleshooting scenario and homebrew unsupported note --- README.markdown | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.markdown b/README.markdown index d5ac794..d240532 100644 --- a/README.markdown +++ b/README.markdown @@ -14,11 +14,13 @@ Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creati Note: We still have some problems with FreeBSD, because there is no pre-built binary from official for FreeBSD, and building from source may need [patches](https://www.freshports.org/www/node/files/patch-deps_v8_src_base_platform_platform-posix.cc), see the issue ticket: - [[#900] [Bug] nodejs on FreeBSD need to be patched ](https://github.com/creationix/nvm/issues/900) - - [nodejs/node#3716](https://github.com/nodejs/node/issues/3716) + - [nodejs/node#3716](https://github.com/nodejs/node/issues/3716) -Note: On OSX, if you do not have XCode installed and you do not wish to download the ~4.3GB file, you can install the `Command Line Tools`. You can check out this blog post on how to just that: +Note: On OSX, if you do not have XCode installed and you do not wish to download the ~4.3GB file, you can install the `Command Line Tools`. You can check out this blog post on how to just that: - [How to Install Command Line Tools in OS X Mavericks & Yosemite (Without Xcode)](http://osxdaily.com/2014/02/12/install-command-line-tools-mac-os-x/) +Homebrew installation is not supported. + ### Install script To install or update nvm, you can use the [install script][2] using cURL: @@ -249,6 +251,8 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But nvm install -s 0.8.6 +If setting the `default` alias does not establish the node version in new shells (i.e. `nvm current` yields `system`), ensure that the system's node PATH is set before the `nvm.sh` source line in your shell profile (see [#658](https://github.com/creationix/nvm/issues/658)) + [1]: https://github.com/creationix/nvm.git [2]: https://github.com/creationix/nvm/blob/v0.29.0/install.sh [3]: https://travis-ci.org/creationix/nvm From 31457fec3fab50729adc4a7a4aadd80a61a5007b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 27 Dec 2015 12:52:01 -0800 Subject: [PATCH 0601/1426] [Refactor] `nvm install`: make `-j` and `-s` order-independent. --- nvm.sh | 48 +++++++++++-------- .../install from source with thread parameter | 6 +-- 2 files changed, 30 insertions(+), 24 deletions(-) diff --git a/nvm.sh b/nvm.sh index 51f9a64..bbac633 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1554,10 +1554,8 @@ nvm() { ;; "install" | "i" ) - local nobinary local version_not_provided version_not_provided=0 - local provided_version local NVM_OS NVM_OS="$(nvm_get_os)" @@ -1577,27 +1575,35 @@ nvm() { shift + local nobinary nobinary=0 - if [ "_$1" = "_-s" ]; then - nobinary=1 - shift - if [ "_$1" = "_-j" ]; then - shift - local NVM_CPU_THREAD_VALID - NVM_CPU_THREAD_VALID=$(nvm_is_natural_num $1) - if [ "$NVM_CPU_THREAD_VALID" = "true" ]; then - NVM_MAKE_JOBS=$1 - echo "Set number of jobs to $MAKE_JOBS for 'make' utility" - else - unset NVM_MAKE_JOBS - echo >&2 "$1 is invalid for CPU threads, should be a natural number" - fi - shift - else - unset NVM_MAKE_JOBS - fi - fi + while [ $# -ne 0 ] + do + case "$1" in + -s) + shift # consume "-s" + nobinary=1 + ;; + -j) + shift # consume "-j" + local NVM_CPU_THREAD_VALID + NVM_CPU_THREAD_VALID=$(nvm_is_natural_num $1) + if [ "$NVM_CPU_THREAD_VALID" = "true" ]; then + NVM_MAKE_JOBS=$1 + echo "number of \`make\` jobs: $NVM_MAKE_JOBS" + else + unset NVM_MAKE_JOBS + echo >&2 "$1 is invalid for number of \`make\` jobs, must be a natural number" + fi + shift # consume job count + ;; + *) + break # stop parsing args + ;; + esac + done + local provided_version provided_version="$1" if [ -z "$provided_version" ]; then diff --git a/test/installation/node/install from source with thread parameter b/test/installation/node/install from source with thread parameter index 473107e..84af8ad 100755 --- a/test/installation/node/install from source with thread parameter +++ b/test/installation/node/install from source with thread parameter @@ -11,7 +11,7 @@ NVM_TEST_VERSION=v0.10.41 # Remove the stuff we're clobbering. [ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION -# Install from source with 1 CPU thread parameter +# Install from source with 1 make job nvm install -s -j 1 $NVM_TEST_VERSION || die "'nvm install -s $NVM_TEST_VERSION' failed" # Check @@ -25,8 +25,8 @@ nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION || "'nvm run $NVM_T # Remove the stuff we're clobbering. [ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION -# Install from source with 2 CPU threads parameter -nvm install -s -j 2 $NVM_TEST_VERSION || die "'nvm install -s $NVM_TEST_VERSION' failed" +# Install from source with 2 make jobs (and swapped arg order) +nvm install -j 2 -s $NVM_TEST_VERSION || die "'nvm install -s $NVM_TEST_VERSION' failed" # Check [ -d ../../../$NVM_TEST_VERSION ] From 32d184099cd7ba2d11d816c1c70696e965592b3f Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 27 Dec 2015 13:18:28 -0800 Subject: [PATCH 0602/1426] [Tests] fix cleanup in nvm_supports_xz unit test --- test/fast/Unit tests/nvm_supports_xz | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/test/fast/Unit tests/nvm_supports_xz b/test/fast/Unit tests/nvm_supports_xz index c7e5a36..5a9e4f7 100755 --- a/test/fast/Unit tests/nvm_supports_xz +++ b/test/fast/Unit tests/nvm_supports_xz @@ -1,13 +1,19 @@ #!/bin/sh -die () { echo $@ ; exit 1; } - -. ../../../nvm.sh - OLDPATH=$PATH TEST_PATH=../../xz-test -mkdir $TEST_PATH +cleanup() { + rm -rf $TEST_PATH/{xz,which,awk,rm,command} + export PATH=$OLDPATH +} +die () { echo $@ ; cleanup ; exit 1; } + +. ../../../nvm.sh + +OLDPATH=$PATH + +mkdir -p $TEST_PATH touch ../../xz-test/xz chmod +x ../../xz-test/xz @@ -33,4 +39,4 @@ rm $TEST_PATH/xz $(nvm_supports_xz "v2.3.2") && \ die "expected 'nvm_supports_xz v2.3.2' with a missing xz binary to exit with 1" -export PATH=$OLDPATH +cleanup From f279837d5c08d1e6ae8192dfdbb87ea031926b6e Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 27 Dec 2015 13:15:53 -0800 Subject: [PATCH 0603/1426] [Refactor] fix some bugs in `nvm_is_natural_num`, add unit tests. --- nvm.sh | 23 +++++++++++------------ test/fast/Unit tests/nvm_is_natural_num | 17 +++++++++++++++++ 2 files changed, 28 insertions(+), 12 deletions(-) create mode 100755 test/fast/Unit tests/nvm_is_natural_num diff --git a/nvm.sh b/nvm.sh index bbac633..5ccca49 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1240,9 +1240,7 @@ nvm_install_node_source() { elif [ "_$NVM_OS" = "_sunos" ]; then NVM_CPU_THREADS="$(psrinfo | wc -l)" fi - local NVM_CPU_THREAD_VALID - NVM_CPU_THREAD_VALID=$(nvm_is_natural_num $NVM_CPU_THREADS) - if [ -z "$NVM_CPU_THREADS" ] || [ "$NVM_CPU_THREAD_VALID" != "true" ] ; then + if [ ! nvm_is_natural_num "$NVM_CPU_THREADS" ] ; then echo "Can not determine how many thread(s) we can use, set to only 1 now." 1>&2 echo "Please report an issue on GitHub to help us make it better and run it faster on your computer!" 1>&2 NVM_MAKE_JOBS="1" @@ -1457,13 +1455,16 @@ nvm_sanitize_path() { } nvm_is_natural_num() { - echo $1 | command egrep -q '^[0-9]{1,}$' &> /dev/null - local IS_NATURAL_NUM=$? - if [ "$IS_NATURAL_NUM" = "0" ]; then - echo true - else - echo false + if [ -z "$1" ]; then + return 4 fi + case "$1" in + 0) return 1 ;; + -*) return 3 ;; # some BSDs return false positives for double-negated args + *) + [ $1 -eq $1 2> /dev/null ] # returns 2 if it doesn't match + ;; + esac } nvm() { @@ -1586,9 +1587,7 @@ nvm() { ;; -j) shift # consume "-j" - local NVM_CPU_THREAD_VALID - NVM_CPU_THREAD_VALID=$(nvm_is_natural_num $1) - if [ "$NVM_CPU_THREAD_VALID" = "true" ]; then + if [ nvm_is_natural_num "$1" ]; then NVM_MAKE_JOBS=$1 echo "number of \`make\` jobs: $NVM_MAKE_JOBS" else diff --git a/test/fast/Unit tests/nvm_is_natural_num b/test/fast/Unit tests/nvm_is_natural_num new file mode 100755 index 0000000..e9b0668 --- /dev/null +++ b/test/fast/Unit tests/nvm_is_natural_num @@ -0,0 +1,17 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +! nvm_is_natural_num || die 'no args is not false' +! nvm_is_natural_num '' || die 'empty string is not false' +! nvm_is_natural_num a || die 'a is not false' +! nvm_is_natural_num -1 || 'negative number is not false' +! nvm_is_natural_num --1 || 'double negative number is not false' +! nvm_is_natural_num 1.2 || 'decimal number is not false' +! nvm_is_natural_num 0 || die 'zero is not false' + +nvm_is_natural_num 1 || die '1 is not true' +nvm_is_natural_num 2 || die '2 is not true' +nvm_is_natural_num 1234 || die '1234 is not true' From f113c5d030c98306ab25bfe6d5b3f2232b3bdcfb Mon Sep 17 00:00:00 2001 From: Dave May Date: Mon, 28 Dec 2015 00:34:38 -0500 Subject: [PATCH 0604/1426] fix quoting for usernames with space --- install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 5d92310..55f0068 100755 --- a/install.sh +++ b/install.sh @@ -131,7 +131,7 @@ nvm_detect_profile() { DETECTED_PROFILE="$HOME/.zshrc" fi - if [ -z $DETECTED_PROFILE ]; then + if [ -z "$DETECTED_PROFILE" ]; then if [ -f "$PROFILE" ]; then DETECTED_PROFILE="$PROFILE" elif [ -f "$HOME/.profile" ]; then @@ -145,7 +145,7 @@ nvm_detect_profile() { fi fi - if [ ! -z $DETECTED_PROFILE ]; then + if [ ! -z "$DETECTED_PROFILE" ]; then echo "$DETECTED_PROFILE" fi } From 8ec056f7684681e9366e374df0784500cf2c9aa3 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 27 Dec 2015 23:19:14 -0800 Subject: [PATCH 0605/1426] v0.30.0 --- README.markdown | 6 +++--- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.markdown b/README.markdown index d240532..e9f1b9e 100644 --- a/README.markdown +++ b/README.markdown @@ -25,11 +25,11 @@ Homebrew installation is not supported. To install or update nvm, you can use the [install script][2] using cURL: - curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash + curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.30.0/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.30.0/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -254,7 +254,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But If setting the `default` alias does not establish the node version in new shells (i.e. `nvm current` yields `system`), ensure that the system's node PATH is set before the `nvm.sh` source line in your shell profile (see [#658](https://github.com/creationix/nvm/issues/658)) [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.29.0/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.30.0/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index 5d92310..2f98414 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ if [ -z "$NVM_DIR" ]; then fi nvm_latest_version() { - echo "v0.29.0" + echo "v0.30.0" } # diff --git a/nvm.sh b/nvm.sh index 5ccca49..098cb51 100755 --- a/nvm.sh +++ b/nvm.sh @@ -2279,7 +2279,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' nvm_remote_version "$2" ;; "--version" ) - echo "0.29.0" + echo "0.30.0" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum \ diff --git a/package.json b/package.json index 8be586a..0495258 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.29.0", + "version": "0.30.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From dc8b63cb2540628574c65192a8aa2182d5b8d7dc Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 28 Dec 2015 12:19:50 -0800 Subject: [PATCH 0606/1426] [Fix] `nvm install -s`: fix syntax errors. --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 098cb51..27dce9c 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1240,7 +1240,7 @@ nvm_install_node_source() { elif [ "_$NVM_OS" = "_sunos" ]; then NVM_CPU_THREADS="$(psrinfo | wc -l)" fi - if [ ! nvm_is_natural_num "$NVM_CPU_THREADS" ] ; then + if ! nvm_is_natural_num "$NVM_CPU_THREADS" ; then echo "Can not determine how many thread(s) we can use, set to only 1 now." 1>&2 echo "Please report an issue on GitHub to help us make it better and run it faster on your computer!" 1>&2 NVM_MAKE_JOBS="1" @@ -1587,7 +1587,7 @@ nvm() { ;; -j) shift # consume "-j" - if [ nvm_is_natural_num "$1" ]; then + if nvm_is_natural_num "$1"; then NVM_MAKE_JOBS=$1 echo "number of \`make\` jobs: $NVM_MAKE_JOBS" else From 2541baaf7d5a2ce1d299af2e3f5cd9945b3f26e0 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 28 Dec 2015 12:20:14 -0800 Subject: [PATCH 0607/1426] =?UTF-8?q?[Refactor]=20Create=20`nvm=5Fget=5Fma?= =?UTF-8?q?ke=5Fjobs`=20to=20abstract=20out=20=E2=80=9C-j=E2=80=9D=20logic?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nvm.sh | 77 ++++++++++++++++++++++++++++++++-------------------------- 1 file changed, 43 insertions(+), 34 deletions(-) diff --git a/nvm.sh b/nvm.sh index 27dce9c..98f03bf 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1200,11 +1200,48 @@ nvm_install_node_binary() { return 2 } +nvm_get_make_jobs() { + if nvm_is_natural_num "$1"; then + NVM_MAKE_JOBS="$1" + echo "number of \`make\` jobs: $NVM_MAKE_JOBS" + return + elif [ -n "$1" ]; then + unset NVM_MAKE_JOBS + echo >&2 "$1 is invalid for number of \`make\` jobs, must be a natural number" + fi + local NVM_OS + NVM_OS="$(nvm_get_os)" + local NVM_CPU_THREADS + if [ "_$NVM_OS" = "_linux" ]; then + NVM_CPU_THREADS="$(grep -c 'core id' /proc/cpuinfo)" + elif [ "_$NVM_OS" = "_freebsd" ] || [ "_$NVM_OS" = "_darwin" ]; then + NVM_CPU_THREADS="$(sysctl -n hw.ncpu)" + elif [ "_$NVM_OS" = "_sunos" ]; then + NVM_CPU_THREADS="$(psrinfo | wc -l)" + fi + if ! nvm_is_natural_num "$NVM_CPU_THREADS" ; then + echo "Can not determine how many thread(s) we can use, set to only 1 now." >&2 + echo "Please report an issue on GitHub to help us make it better and run it faster on your computer!" >&2 + NVM_MAKE_JOBS=1 + else + echo "Detected that you have $NVM_CPU_THREADS CPU thread(s)" + if [ $NVM_CPU_THREADS -gt 2 ]; then + NVM_MAKE_JOBS=$(($NVM_CPU_THREADS - 1)) + echo "Set the number of jobs to $NVM_CPU_THREADS - 1 = $NVM_MAKE_JOBS jobs to speed up the build" + else + NVM_MAKE_JOBS=1 + echo "Number of CPU thread(s) less or equal to 2 will have only one job a time for 'make'" + fi + fi +} + nvm_install_node_source() { local VERSION VERSION="$1" + local NVM_MAKE_JOBS + NVM_MAKE_JOBS="$2" local ADDITIONAL_PARAMETERS - ADDITIONAL_PARAMETERS="$2" + ADDITIONAL_PARAMETERS="$3" local NVM_ARCH NVM_ARCH="$(nvm_get_arch)" @@ -1232,29 +1269,6 @@ nvm_install_node_source() { MAKE_CXX="CXX=c++" fi - if [ -z "$NVM_MAKE_JOBS" ]; then - if [ "_$NVM_OS" = "_linux" ]; then - NVM_CPU_THREADS="$(grep -c 'core id' /proc/cpuinfo)" - elif [ "_$NVM_OS" = "_freebsd" ] || [ "_$NVM_OS" = "_darwin" ]; then - NVM_CPU_THREADS="$(sysctl -n hw.ncpu)" - elif [ "_$NVM_OS" = "_sunos" ]; then - NVM_CPU_THREADS="$(psrinfo | wc -l)" - fi - if ! nvm_is_natural_num "$NVM_CPU_THREADS" ; then - echo "Can not determine how many thread(s) we can use, set to only 1 now." 1>&2 - echo "Please report an issue on GitHub to help us make it better and run it faster on your computer!" 1>&2 - NVM_MAKE_JOBS="1" - else - echo "Detected that you have $NVM_CPU_THREADS CPU thread(s)" - if [ $NVM_CPU_THREADS -gt 2 ]; then - NVM_MAKE_JOBS=$(($NVM_CPU_THREADS - 1)) - echo "Set the number of jobs to $NVM_CPU_THREADS - 1 = $NVM_MAKE_JOBS jobs to speed up the build" - else - NVM_MAKE_JOBS=1 - echo "Number of CPU thread(s) less or equal to 2 will have only one job a time for 'make'" - fi - fi - fi local tmpdir tmpdir="$NVM_DIR/src" local tmptarball @@ -1578,6 +1592,7 @@ nvm() { local nobinary nobinary=0 + local make_jobs while [ $# -ne 0 ] do case "$1" in @@ -1587,13 +1602,7 @@ nvm() { ;; -j) shift # consume "-j" - if nvm_is_natural_num "$1"; then - NVM_MAKE_JOBS=$1 - echo "number of \`make\` jobs: $NVM_MAKE_JOBS" - else - unset NVM_MAKE_JOBS - echo >&2 "$1 is invalid for number of \`make\` jobs, must be a natural number" - fi + nvm_get_make_jobs "$1" shift # consume job count ;; *) @@ -1693,15 +1702,15 @@ nvm() { fi if [ "$NVM_INSTALL_SUCCESS" != true ]; then if [ "$NVM_IOJS" != true ] && [ "$NVM_NODE_MERGED" != true ]; then - if nvm_install_node_source "$VERSION" "$ADDITIONAL_PARAMETERS"; then + if nvm_install_node_source "$VERSION" "$NVM_MAKE_JOBS" "$ADDITIONAL_PARAMETERS"; then NVM_INSTALL_SUCCESS=true fi elif [ "$NVM_IOJS" = true ]; then - # nvm_install_iojs_source "$VERSION" "$ADDITIONAL_PARAMETERS" + # nvm_install_iojs_source "$VERSION" "$NVM_MAKE_JOBS" "$ADDITIONAL_PARAMETERS" echo "Installing iojs from source is not currently supported" >&2 return 105 elif [ "$NVM_NODE_MERGED" = true ]; then - # nvm_install_merged_node_source "$VERSION" "$ADDITIONAL_PARAMETERS" + # nvm_install_merged_node_source "$VERSION" "$NVM_MAKE_JOBS" "$ADDITIONAL_PARAMETERS" echo "Installing node v1.0 and greater from source is not currently supported" >&2 return 106 fi From 0aa3118de3786fd1fc4e8cf53b924715b2354c5f Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 28 Dec 2015 12:46:41 -0800 Subject: [PATCH 0608/1426] v0.30.1 --- README.markdown | 6 +++--- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.markdown b/README.markdown index e9f1b9e..00937c0 100644 --- a/README.markdown +++ b/README.markdown @@ -25,11 +25,11 @@ Homebrew installation is not supported. To install or update nvm, you can use the [install script][2] using cURL: - curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.30.0/install.sh | bash + curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.30.1/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.30.0/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.30.1/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -254,7 +254,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But If setting the `default` alias does not establish the node version in new shells (i.e. `nvm current` yields `system`), ensure that the system's node PATH is set before the `nvm.sh` source line in your shell profile (see [#658](https://github.com/creationix/nvm/issues/658)) [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.30.0/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.30.1/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index 9035708..cd78a12 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ if [ -z "$NVM_DIR" ]; then fi nvm_latest_version() { - echo "v0.30.0" + echo "v0.30.1" } # diff --git a/nvm.sh b/nvm.sh index 98f03bf..c9afed3 100755 --- a/nvm.sh +++ b/nvm.sh @@ -2288,7 +2288,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' nvm_remote_version "$2" ;; "--version" ) - echo "0.30.0" + echo "0.30.1" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum \ diff --git a/package.json b/package.json index 0495258..9ea9b02 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.30.0", + "version": "0.30.1", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 6094dac1c1a3222d25289a5b26ba83593bdcaa88 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 30 Dec 2015 09:45:13 -0800 Subject: [PATCH 0609/1426] [Fix] `nvm debug` was printing a red herring error message in non-zsh. --- nvm.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/nvm.sh b/nvm.sh index c9afed3..9980515 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1546,6 +1546,7 @@ nvm() { "debug" ) local ZHS_HAS_SHWORDSPLIT_UNSET + ZHS_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; echo $?) setopt shwordsplit From cb138a1815ca6c8136193018bf3cc2284100ef38 Mon Sep 17 00:00:00 2001 From: David Mankin Date: Tue, 15 Sep 2015 23:27:51 +0000 Subject: [PATCH 0610/1426] Fix error messages in tests --- test/install_script/nvm_detect_profile | 55 +++++++++++++------------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/test/install_script/nvm_detect_profile b/test/install_script/nvm_detect_profile index 8676bcf..da185e3 100755 --- a/test/install_script/nvm_detect_profile +++ b/test/install_script/nvm_detect_profile @@ -27,19 +27,18 @@ SHELL="/bin/bash" # $SHELL is set to bash and .bashrc is there, it must be detected _PROFILE=$(nvm_detect_profile) -[ "_$_PROFILE" = "_$HOME/.bashrc" ] || echo "_\$HOME/.bashrc: _$HOME/.bashrc\n" \ - echo "_\$_PROFILE: _$_PROFILE\n" \ - die "nvm_detect_profile didn't pick $SHELL and $HOME/.bashrc" +[ "_$_PROFILE" = "_$HOME/.bashrc" ] || ( echo "_\$HOME/.bashrc: _$HOME/.bashrc" && + echo "_\$_PROFILE: _$_PROFILE" && + die "nvm_detect_profile didn't pick $SHELL and $HOME/.bashrc" ) #Let's force $SHELL to be zsh SHELL="/usr/bin/zsh" # $SHELL is set to zsh and .zshrc is there, it must be detected _PROFILE=$(nvm_detect_profile) -[ "_$_PROFILE" = "_$HOME/.zshrc" ] || echo "_\$HOME/.zshrc: _$HOME/.zshrc\n" \ - echo "_\$_PROFILE: _$_PROFILE\n" \ - die "nvm_detect_profile didn't pick $SHELL and $HOME/.zshrc" - +[ "_$_PROFILE" = "_$HOME/.zshrc" ] || ( echo "_\$HOME/.zshrc: _$HOME/.zshrc" && + echo "_\$_PROFILE: _$_PROFILE" && + die "nvm_detect_profile didn't pick $SHELL and $HOME/.zshrc" ) # if we unset shell it looks for the files unset SHELL @@ -47,16 +46,16 @@ unset SHELL # $PROFILE points to a valid file, its path must be returned PROFILE="test_profile" _PROFILE=$(nvm_detect_profile) -[ "_$_PROFILE" = "_$PROFILE" ] || echo "_\$_PROFILE: _$_PROFILE\n" \ - echo "_\$PROFILE: _$PROFILE\n" \ - die "nvm_detect_profile didn't pick \$PROFILE" +[ "_$_PROFILE" = "_$PROFILE" ] || ( echo "_\$_PROFILE: _$_PROFILE" && + echo "_\$PROFILE: _$PROFILE" && + die "nvm_detect_profile didn't pick \$PROFILE" ) # $PROFILE doesn't point to a valid file, its path must not be returned PROFILE="invalid_profile" _PROFILE=$(nvm_detect_profile) -[ "_$_PROFILE" != "_$PROFILE" ] || echo "_\$_PROFILE: _$_PROFILE\n" \ - echo "_\$PROFILE: _$PROFILE\n" \ - die "nvm_detect_profile shouldn't pick \$PROFILE when it's not a valid file" +[ "_$_PROFILE" != "_$PROFILE" ] || ( echo "_\$_PROFILE: _$_PROFILE" && + echo "_\$PROFILE: _$PROFILE" && + die "nvm_detect_profile shouldn't pick \$PROFILE when it's not a valid file" ) # Below are tests for when $PROFILE is undefined @@ -65,37 +64,37 @@ unset PROFILE # It should favor .profile if file exists _PROFILE=$(nvm_detect_profile) -[ "_$_PROFILE" = "_$HOME/.profile" ] || echo "_\$_PROFILE: _$_PROFILE\n" \ - echo "_\$PROFILE: _$PROFILE\n" \ - die "nvm_detect_profile should have selected .profile" +[ "_$_PROFILE" = "_$HOME/.profile" ] || ( echo "_\$_PROFILE: _$_PROFILE" && + echo "_\$PROFILE: _$PROFILE" && + die "nvm_detect_profile should have selected .profile" ) rm .profile # Otherwise, it should favor .bashrc if file exists _PROFILE=$(nvm_detect_profile) -[ "_$_PROFILE" = "_$HOME/.bashrc" ] || echo "_\$_PROFILE: _$_PROFILE\n" \ - echo "_\$PROFILE: _$PROFILE\n" \ - die "nvm_detect_profile should have selected .bashrc" +[ "_$_PROFILE" = "_$HOME/.bashrc" ] || ( echo "_\$_PROFILE: _$_PROFILE" && + echo "_\$PROFILE: _$PROFILE" && + die "nvm_detect_profile should have selected .bashrc" ) rm .bashrc # Otherwise, it should favor .bash_profile if file exists _PROFILE=$(nvm_detect_profile) -[ "_$_PROFILE" = "_$HOME/.bash_profile" ] || echo "_\$_PROFILE: _$_PROFILE\n" \ - echo "_\$PROFILE: _$PROFILE\n" \ - die "nvm_detect_profile should have selected .bash_profile" +[ "_$_PROFILE" = "_$HOME/.bash_profile" ] || ( echo "_\$_PROFILE: _$_PROFILE" && + echo "_\$PROFILE: _$PROFILE" && + die "nvm_detect_profile should have selected .bash_profile" ) rm .bash_profile # Otherwise, it should favor .zshrc if file exists _PROFILE=$(nvm_detect_profile) -[ "_$_PROFILE" = "_$HOME/.zshrc" ] || echo "_\$_PROFILE: _$_PROFILE\n" \ - echo "_\$PROFILE: _$PROFILE\n" \ - die "nvm_detect_profile should have selected .zshrc" +[ "_$_PROFILE" = "_$HOME/.zshrc" ] || ( echo "_\$_PROFILE: _$_PROFILE" && + echo "_\$PROFILE: _$PROFILE" && + die "nvm_detect_profile should have selected .zshrc" ) rm .zshrc # It should be empty if none is found _PROFILE=$(nvm_detect_profile) -[ -z "$_PROFILE" ] || echo "_\$_PROFILE: _$_PROFILE\n" \ - echo "_\$PROFILE: _$PROFILE\n" \ - die "nvm_detect_profile should have echo'ed an empty value" +[ -z "$_PROFILE" ] || ( echo "_\$_PROFILE: _$_PROFILE" && + echo "_\$PROFILE: _$PROFILE" && + die "nvm_detect_profile should have echo'ed an empty value" ) cleanup From 918fcb4bd27d80f7b16e2512e7ca499b7a78ddc0 Mon Sep 17 00:00:00 2001 From: David Mankin Date: Tue, 15 Sep 2015 23:34:02 +0000 Subject: [PATCH 0611/1426] PROFILE env var should override detected profile Add tests for PROFILE overriding detected files --- install.sh | 8 +++++--- test/install_script/nvm_detect_profile | 17 +++++++++++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index cd78a12..b055eee 100755 --- a/install.sh +++ b/install.sh @@ -115,6 +115,10 @@ install_nvm_as_script() { # Otherwise, an empty string is returned # nvm_detect_profile() { + if [ -n "$PROFILE" -a -f "$PROFILE" ]; then + echo "$PROFILE" + return + fi local DETECTED_PROFILE DETECTED_PROFILE='' @@ -132,9 +136,7 @@ nvm_detect_profile() { fi if [ -z "$DETECTED_PROFILE" ]; then - if [ -f "$PROFILE" ]; then - DETECTED_PROFILE="$PROFILE" - elif [ -f "$HOME/.profile" ]; then + if [ -f "$HOME/.profile" ]; then DETECTED_PROFILE="$HOME/.profile" elif [ -f "$HOME/.bashrc" ]; then DETECTED_PROFILE="$HOME/.bashrc" diff --git a/test/install_script/nvm_detect_profile b/test/install_script/nvm_detect_profile index da185e3..4ec8e43 100755 --- a/test/install_script/nvm_detect_profile +++ b/test/install_script/nvm_detect_profile @@ -31,6 +31,15 @@ _PROFILE=$(nvm_detect_profile) echo "_\$_PROFILE: _$_PROFILE" && die "nvm_detect_profile didn't pick $SHELL and $HOME/.bashrc" ) +# But $PROFILE should override +PROFILE=test_profile +_PROFILE=$(nvm_detect_profile) +[ "_$_PROFILE" = "_$PROFILE" ] || ( echo "_\$_PROFILE: _$_PROFILE" && + echo "_\$PROFILE: _$PROFILE" && + die "nvm_detect_profile didn't pick \$PROFILE" ) +unset PROFILE + + #Let's force $SHELL to be zsh SHELL="/usr/bin/zsh" @@ -40,6 +49,14 @@ _PROFILE=$(nvm_detect_profile) echo "_\$_PROFILE: _$_PROFILE" && die "nvm_detect_profile didn't pick $SHELL and $HOME/.zshrc" ) +# But $PROFILE should override +PROFILE=test_profile +_PROFILE=$(nvm_detect_profile) +[ "_$_PROFILE" = "_$PROFILE" ] || ( echo "_\$_PROFILE: _$_PROFILE" && + echo "_\$PROFILE: _$PROFILE" && + die "nvm_detect_profile didn't pick \$PROFILE" ) +unset PROFILE + # if we unset shell it looks for the files unset SHELL From 645bda4987be74a0aa2bc10c26e932a5d3b08a45 Mon Sep 17 00:00:00 2001 From: Matthew Campbell Date: Fri, 1 Jan 2016 14:09:35 -0500 Subject: [PATCH 0612/1426] Addresses comments to close #833 --- test/install_script/nvm_detect_profile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/install_script/nvm_detect_profile b/test/install_script/nvm_detect_profile index 4ec8e43..e25572e 100755 --- a/test/install_script/nvm_detect_profile +++ b/test/install_script/nvm_detect_profile @@ -32,7 +32,7 @@ _PROFILE=$(nvm_detect_profile) die "nvm_detect_profile didn't pick $SHELL and $HOME/.bashrc" ) # But $PROFILE should override -PROFILE=test_profile +_PROFILE="$(PROFILE=test_profile nvm_detect_profile)" _PROFILE=$(nvm_detect_profile) [ "_$_PROFILE" = "_$PROFILE" ] || ( echo "_\$_PROFILE: _$_PROFILE" && echo "_\$PROFILE: _$PROFILE" && @@ -50,7 +50,7 @@ _PROFILE=$(nvm_detect_profile) die "nvm_detect_profile didn't pick $SHELL and $HOME/.zshrc" ) # But $PROFILE should override -PROFILE=test_profile +_PROFILE="$(PROFILE=test_profile nvm_detect_profile)" _PROFILE=$(nvm_detect_profile) [ "_$_PROFILE" = "_$PROFILE" ] || ( echo "_\$_PROFILE: _$_PROFILE" && echo "_\$PROFILE: _$PROFILE" && From 8dc53d4dd553bdb37224d70db14baa6e15607e63 Mon Sep 17 00:00:00 2001 From: Matthew Campbell Date: Fri, 1 Jan 2016 20:45:36 -0500 Subject: [PATCH 0613/1426] Refactor and fix nvm_detect_profile tests close #833 close #957 --- test/install_script/nvm_detect_profile | 174 ++++++++++++------------- 1 file changed, 84 insertions(+), 90 deletions(-) diff --git a/test/install_script/nvm_detect_profile b/test/install_script/nvm_detect_profile index e25572e..4a15efa 100755 --- a/test/install_script/nvm_detect_profile +++ b/test/install_script/nvm_detect_profile @@ -1,117 +1,111 @@ #!/bin/sh -cleanup () { - unset -f setup cleanup die - unset _PROFILE - rm -f .bashrc .bash_profile .zshrc .profile test_profile > /dev/null 2>&1 -} -die () { echo $@ ; cleanup ; exit 1; } - -NVM_ENV=testing . ../../install.sh - setup () { - touch .bashrc - touch .bash_profile - touch .zshrc - touch .profile - touch test_profile + HOME="." + NVM_ENV=testing . ../../install.sh + touch ".bashrc" + touch ".bash_profile" + touch ".zshrc" + touch ".profile" + touch "test_profile" } -#Let's hack $HOME -HOME="." +cleanup () { + unset HOME + unset NVM_ENV + unset NVM_DETECT_PROFILE + unset -f setup cleanup die + rm -f ".bashrc" ".bash_profile" ".zshrc" ".profile" "test_profile" > "/dev/null" 2>&1 +} + +die () { echo "$@"; cleanup; exit 1; } setup -#Let's force $SHELL to be bash -SHELL="/bin/bash" +# +# Confirm profile detection via $SHELL works and that $PROFILE overrides profile detection +# -# $SHELL is set to bash and .bashrc is there, it must be detected -_PROFILE=$(nvm_detect_profile) -[ "_$_PROFILE" = "_$HOME/.bashrc" ] || ( echo "_\$HOME/.bashrc: _$HOME/.bashrc" && - echo "_\$_PROFILE: _$_PROFILE" && - die "nvm_detect_profile didn't pick $SHELL and $HOME/.bashrc" ) +# .bashrc should be detected for bash +NVM_DETECT_PROFILE="$(declare SHELL="/bin/bash"; unset PROFILE; nvm_detect_profile)" +if [ "$NVM_DETECT_PROFILE" != "$HOME/.bashrc" ]; then + die "nvm_detect_profile didn't pick \$HOME/.bashrc for bash" +fi -# But $PROFILE should override -_PROFILE="$(PROFILE=test_profile nvm_detect_profile)" -_PROFILE=$(nvm_detect_profile) -[ "_$_PROFILE" = "_$PROFILE" ] || ( echo "_\$_PROFILE: _$_PROFILE" && - echo "_\$PROFILE: _$PROFILE" && - die "nvm_detect_profile didn't pick \$PROFILE" ) -unset PROFILE +# $PROFILE should override .bashrc profile detection +NVM_DETECT_PROFILE="$(declare SHELL="/bin/bash"; declare PROFILE="test_profile"; nvm_detect_profile)" +if [ "$NVM_DETECT_PROFILE" != "test_profile" ]; then + die "nvm_detect_profile ignored \$PROFILE" +fi + +# .zshrc should be detected for zsh +NVM_DETECT_PROFILE="$(declare SHELL="/usr/bin/zsh"; unset PROFILE; nvm_detect_profile)" +if [ "$NVM_DETECT_PROFILE" != "$HOME/.zshrc" ]; then + die "nvm_detect_profile didn't pick \$HOME/.zshrc for zsh" +fi + +# $PROFILE should override .zshrc profile detection +NVM_DETECT_PROFILE="$(declare SHELL="/usr/bin/zsh"; declare PROFILE="test_profile"; nvm_detect_profile)" +if [ "$NVM_DETECT_PROFILE" != "test_profile" ]; then + die "nvm_detect_profile ignored \$PROFILE" +fi -#Let's force $SHELL to be zsh -SHELL="/usr/bin/zsh" +# +# Confirm $PROFILE is only returned when it points to a valid file +# -# $SHELL is set to zsh and .zshrc is there, it must be detected -_PROFILE=$(nvm_detect_profile) -[ "_$_PROFILE" = "_$HOME/.zshrc" ] || ( echo "_\$HOME/.zshrc: _$HOME/.zshrc" && - echo "_\$_PROFILE: _$_PROFILE" && - die "nvm_detect_profile didn't pick $SHELL and $HOME/.zshrc" ) +# $PROFILE is a valid file +NVM_DETECT_PROFILE="$(declare PROFILE="test_profile"; nvm_detect_profile)" +if [ "$NVM_DETECT_PROFILE" != "test_profile" ]; then + die "nvm_detect_profile didn't pick \$PROFILE when it was a valid file" +fi -# But $PROFILE should override -_PROFILE="$(PROFILE=test_profile nvm_detect_profile)" -_PROFILE=$(nvm_detect_profile) -[ "_$_PROFILE" = "_$PROFILE" ] || ( echo "_\$_PROFILE: _$_PROFILE" && - echo "_\$PROFILE: _$PROFILE" && - die "nvm_detect_profile didn't pick \$PROFILE" ) -unset PROFILE +# $PROFILE is not a valid file +rm "test_profile" +NVM_DETECT_PROFILE="$(declare PROFILE="test_profile"; nvm_detect_profile)" +if [ "$NVM_DETECT_PROFILE" = "test_profile" ]; then + die "nvm_detect_profile picked \$PROFILE when it was an invalid file" +fi -# if we unset shell it looks for the files -unset SHELL - -# $PROFILE points to a valid file, its path must be returned -PROFILE="test_profile" -_PROFILE=$(nvm_detect_profile) -[ "_$_PROFILE" = "_$PROFILE" ] || ( echo "_\$_PROFILE: _$_PROFILE" && - echo "_\$PROFILE: _$PROFILE" && - die "nvm_detect_profile didn't pick \$PROFILE" ) - -# $PROFILE doesn't point to a valid file, its path must not be returned -PROFILE="invalid_profile" -_PROFILE=$(nvm_detect_profile) -[ "_$_PROFILE" != "_$PROFILE" ] || ( echo "_\$_PROFILE: _$_PROFILE" && - echo "_\$PROFILE: _$PROFILE" && - die "nvm_detect_profile shouldn't pick \$PROFILE when it's not a valid file" ) - - -# Below are tests for when $PROFILE is undefined -rm test_profile -unset PROFILE +# +# When profile detection fails via both $PROFILE and $SHELL, profile detection should select based on the existence of +# one of the following files is the following order: .profile, .bashrc, .bash_profile, .zshrc and +# return an empty value if everything fails +# # It should favor .profile if file exists -_PROFILE=$(nvm_detect_profile) -[ "_$_PROFILE" = "_$HOME/.profile" ] || ( echo "_\$_PROFILE: _$_PROFILE" && - echo "_\$PROFILE: _$PROFILE" && - die "nvm_detect_profile should have selected .profile" ) +NVM_DETECT_PROFILE="$(unset SHELL; nvm_detect_profile)" +if [ "$NVM_DETECT_PROFILE" != "$HOME/.profile" ]; then + die "nvm_detect_profile should have selected .profile ($NVM_DETECT_PROFILE) ($SHELL)" +fi -rm .profile # Otherwise, it should favor .bashrc if file exists -_PROFILE=$(nvm_detect_profile) -[ "_$_PROFILE" = "_$HOME/.bashrc" ] || ( echo "_\$_PROFILE: _$_PROFILE" && - echo "_\$PROFILE: _$PROFILE" && - die "nvm_detect_profile should have selected .bashrc" ) +rm ".profile" +NVM_DETECT_PROFILE="$(unset SHELL; nvm_detect_profile)" +if [ "$NVM_DETECT_PROFILE" != "$HOME/.bashrc" ]; then + die "nvm_detect_profile should have selected .bashrc" +fi -rm .bashrc # Otherwise, it should favor .bash_profile if file exists -_PROFILE=$(nvm_detect_profile) -[ "_$_PROFILE" = "_$HOME/.bash_profile" ] || ( echo "_\$_PROFILE: _$_PROFILE" && - echo "_\$PROFILE: _$PROFILE" && - die "nvm_detect_profile should have selected .bash_profile" ) +rm ".bashrc" +NVM_DETECT_PROFILE="$(unset SHELL; nvm_detect_profile)" +if [ "$NVM_DETECT_PROFILE" != "$HOME/.bash_profile" ]; then + die "nvm_detect_profile should have selected .bash_profile" +fi -rm .bash_profile # Otherwise, it should favor .zshrc if file exists -_PROFILE=$(nvm_detect_profile) -[ "_$_PROFILE" = "_$HOME/.zshrc" ] || ( echo "_\$_PROFILE: _$_PROFILE" && - echo "_\$PROFILE: _$PROFILE" && - die "nvm_detect_profile should have selected .zshrc" ) +rm ".bash_profile" +NVM_DETECT_PROFILE="$(unset SHELL; nvm_detect_profile)" +if [ "$NVM_DETECT_PROFILE" != "$HOME/.zshrc" ]; then + die "nvm_detect_profile should have selected .zshrc" +fi -rm .zshrc # It should be empty if none is found -_PROFILE=$(nvm_detect_profile) -[ -z "$_PROFILE" ] || ( echo "_\$_PROFILE: _$_PROFILE" && - echo "_\$PROFILE: _$PROFILE" && - die "nvm_detect_profile should have echo'ed an empty value" ) - +rm ".zshrc" +NVM_DETECT_PROFILE="$(unset SHELL; nvm_detect_profile)" +if [ ! -z "$NVM_DETECT_PROFILE" ]; then + die "nvm_detect_profile should have returned an empty value" +fi cleanup From 78fee866f53df567b79c6028d0cca04c584a46dd Mon Sep 17 00:00:00 2001 From: Matthew Campbell Date: Fri, 1 Jan 2016 22:33:45 -0500 Subject: [PATCH 0614/1426] Remove usage of declare --- test/install_script/nvm_detect_profile | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/test/install_script/nvm_detect_profile b/test/install_script/nvm_detect_profile index 4a15efa..b459afc 100755 --- a/test/install_script/nvm_detect_profile +++ b/test/install_script/nvm_detect_profile @@ -27,25 +27,25 @@ setup # # .bashrc should be detected for bash -NVM_DETECT_PROFILE="$(declare SHELL="/bin/bash"; unset PROFILE; nvm_detect_profile)" +NVM_DETECT_PROFILE="$(SHELL="/bin/bash"; unset PROFILE; nvm_detect_profile)" if [ "$NVM_DETECT_PROFILE" != "$HOME/.bashrc" ]; then die "nvm_detect_profile didn't pick \$HOME/.bashrc for bash" fi # $PROFILE should override .bashrc profile detection -NVM_DETECT_PROFILE="$(declare SHELL="/bin/bash"; declare PROFILE="test_profile"; nvm_detect_profile)" +NVM_DETECT_PROFILE="$(SHELL="/bin/bash"; PROFILE="test_profile"; nvm_detect_profile)" if [ "$NVM_DETECT_PROFILE" != "test_profile" ]; then die "nvm_detect_profile ignored \$PROFILE" fi # .zshrc should be detected for zsh -NVM_DETECT_PROFILE="$(declare SHELL="/usr/bin/zsh"; unset PROFILE; nvm_detect_profile)" +NVM_DETECT_PROFILE="$(SHELL="/usr/bin/zsh"; unset PROFILE; nvm_detect_profile)" if [ "$NVM_DETECT_PROFILE" != "$HOME/.zshrc" ]; then die "nvm_detect_profile didn't pick \$HOME/.zshrc for zsh" fi # $PROFILE should override .zshrc profile detection -NVM_DETECT_PROFILE="$(declare SHELL="/usr/bin/zsh"; declare PROFILE="test_profile"; nvm_detect_profile)" +NVM_DETECT_PROFILE="$(SHELL="/usr/bin/zsh"; PROFILE="test_profile"; nvm_detect_profile)" if [ "$NVM_DETECT_PROFILE" != "test_profile" ]; then die "nvm_detect_profile ignored \$PROFILE" fi @@ -56,14 +56,14 @@ fi # # $PROFILE is a valid file -NVM_DETECT_PROFILE="$(declare PROFILE="test_profile"; nvm_detect_profile)" +NVM_DETECT_PROFILE="$(PROFILE="test_profile"; nvm_detect_profile)" if [ "$NVM_DETECT_PROFILE" != "test_profile" ]; then die "nvm_detect_profile didn't pick \$PROFILE when it was a valid file" fi # $PROFILE is not a valid file rm "test_profile" -NVM_DETECT_PROFILE="$(declare PROFILE="test_profile"; nvm_detect_profile)" +NVM_DETECT_PROFILE="$(PROFILE="test_profile"; nvm_detect_profile)" if [ "$NVM_DETECT_PROFILE" = "test_profile" ]; then die "nvm_detect_profile picked \$PROFILE when it was an invalid file" fi From 4f4ff208eb82b45bfea07e12a21f5eff4bf2de95 Mon Sep 17 00:00:00 2001 From: Matthew Campbell Date: Sat, 2 Jan 2016 11:16:50 -0500 Subject: [PATCH 0615/1426] Improve error messages --- test/install_script/nvm_detect_profile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/install_script/nvm_detect_profile b/test/install_script/nvm_detect_profile index b459afc..92da1d2 100755 --- a/test/install_script/nvm_detect_profile +++ b/test/install_script/nvm_detect_profile @@ -18,7 +18,7 @@ cleanup () { rm -f ".bashrc" ".bash_profile" ".zshrc" ".profile" "test_profile" > "/dev/null" 2>&1 } -die () { echo "$@"; cleanup; exit 1; } +die () { echo "$@" '$NVM_DETECT_PROFILE:' "$NVM_DETECT_PROFILE"; cleanup; exit 1; } setup @@ -77,7 +77,7 @@ fi # It should favor .profile if file exists NVM_DETECT_PROFILE="$(unset SHELL; nvm_detect_profile)" if [ "$NVM_DETECT_PROFILE" != "$HOME/.profile" ]; then - die "nvm_detect_profile should have selected .profile ($NVM_DETECT_PROFILE) ($SHELL)" + die "nvm_detect_profile should have selected .profile" fi # Otherwise, it should favor .bashrc if file exists From 1e1a005a53725d6d8dc912de9fe32133838c06c4 Mon Sep 17 00:00:00 2001 From: Dwayne Crooks Date: Fri, 15 Jan 2016 05:51:51 -0400 Subject: [PATCH 0616/1426] [Docs] Add manual upgrade instructions to README.markdown --- README.markdown | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.markdown b/README.markdown index 00937c0..52d63c1 100644 --- a/README.markdown +++ b/README.markdown @@ -55,6 +55,12 @@ Add these lines to your `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm +### Manual upgrade + +For manual upgrade with `git`, change to the `$NVM_DIR`, pull down the latest changes, and check out the latest version: + + cd "$NVM_DIR" && git pull origin master && git checkout `git describe --abbrev=0 --tags` + ## Usage You can create an `.nvmrc` file containing version number in the project root directory (or any parent directory). From 00a8b36b78a7c99fe96ec0416fcc2a3b00f20dae Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 17 Jan 2016 15:12:02 -0800 Subject: [PATCH 0617/1426] [Fix] handle unbound shell variables. Fixes #868. --- nvm.sh | 65 ++++++++++++++++++++++++++++++++++------------------------ 1 file changed, 38 insertions(+), 27 deletions(-) diff --git a/nvm.sh b/nvm.sh index 9980515..ef593cb 100755 --- a/nvm.sh +++ b/nvm.sh @@ -68,13 +68,16 @@ nvm_print_npm_version() { # Make zsh glob matching behave same as bash # This fixes the "zsh: no matches found" errors +if [ -z "${NVM_CD_FLAGS-}"]; then + export NVM_CD_FLAGS='' +fi if nvm_has "unsetopt"; then unsetopt nomatch 2>/dev/null NVM_CD_FLAGS="-q" fi # Auto detect the NVM_DIR when not set -if [ -z "$NVM_DIR" ]; then +if [ -z "${NVM_DIR-}" ]; then if [ -n "$BASH_SOURCE" ]; then NVM_SCRIPT_SOURCE="${BASH_SOURCE[0]}" fi @@ -85,7 +88,7 @@ unset NVM_SCRIPT_SOURCE 2> /dev/null # Setup mirror location if not already set -if [ -z "$NVM_NODEJS_ORG_MIRROR" ]; then +if [ -z "${NVM_NODEJS_ORG_MIRROR-}" ]; then export NVM_NODEJS_ORG_MIRROR="https://nodejs.org/dist" fi @@ -529,7 +532,7 @@ nvm_strip_iojs_prefix() { nvm_ls() { local PATTERN - PATTERN="$1" + PATTERN="${1-}" local VERSIONS VERSIONS='' if [ "$PATTERN" = 'current' ]; then @@ -659,7 +662,7 @@ nvm_ls() { fi fi - if [ "$NVM_ADD_SYSTEM" = true ]; then + if [ "${NVM_ADD_SYSTEM-}" = true ]; then if [ -z "$PATTERN" ] || [ "_$PATTERN" = "_v" ]; then VERSIONS="$VERSIONS$(command printf '\n%s' 'system')" elif [ "$PATTERN" = 'system' ]; then @@ -700,6 +703,7 @@ nvm_ls_remote_index_tab() { local TYPE TYPE="$1" local PREFIX + PREFIX='' case "$TYPE-$2" in iojs-std) PREFIX="$(nvm_iojs_prefix)-" ;; node-std) PREFIX='' ;; @@ -835,7 +839,7 @@ nvm_print_implicit_alias() { local NVM_ADD_PREFIX_COMMAND local LAST_TWO case "$NVM_IMPLICIT" in - "$NVM_IOJS_PREFIX" | "$NVM_IOJS_RC_PREFIX") + "$NVM_IOJS_PREFIX") NVM_COMMAND="nvm_ls_remote_iojs" NVM_ADD_PREFIX_COMMAND="nvm_add_iojs_prefix" if [ "_$1" = "_local" ]; then @@ -1146,7 +1150,7 @@ nvm_install_node_binary() { local REINSTALL_PACKAGES_FROM REINSTALL_PACKAGES_FROM="$2" - if nvm_is_iojs_version "$PREFIXED_VERSION"; then + if nvm_is_iojs_version "$VERSION"; then echo 'nvm_install_node_binary does not allow an iojs-prefixed version.' >&2 return 10 fi @@ -1201,11 +1205,11 @@ nvm_install_node_binary() { } nvm_get_make_jobs() { - if nvm_is_natural_num "$1"; then + if nvm_is_natural_num "${1-}"; then NVM_MAKE_JOBS="$1" echo "number of \`make\` jobs: $NVM_MAKE_JOBS" return - elif [ -n "$1" ]; then + elif [ -n "${1-}" ]; then unset NVM_MAKE_JOBS echo >&2 "$1 is invalid for number of \`make\` jobs, must be a natural number" fi @@ -1290,9 +1294,9 @@ nvm_install_node_source() { command tar -xzf "$tmptarball" -C "$tmpdir" && \ cd "$tmpdir/node-$VERSION" && \ ./configure --prefix="$VERSION_PATH" $ADDITIONAL_PARAMETERS && \ - $make -j $NVM_MAKE_JOBS $MAKE_CXX && \ + $make -j $NVM_MAKE_JOBS ${MAKE_CXX-} && \ command rm -f "$VERSION_PATH" 2>/dev/null && \ - $make -j $NVM_MAKE_JOBS $MAKE_CXX install + $make -j $NVM_MAKE_JOBS ${MAKE_CXX-} install ) then if ! nvm_has "npm" ; then @@ -1371,14 +1375,14 @@ nvm_die_on_prefix() { return 2 fi - if [ -n "$PREFIX" ] && ! (nvm_tree_contains_path "$NVM_DIR" "$PREFIX" >/dev/null 2>&1); then + if [ -n "${PREFIX-}" ] && ! (nvm_tree_contains_path "$NVM_DIR" "$PREFIX" >/dev/null 2>&1); then nvm deactivate >/dev/null 2>&1 echo >&2 "nvm is not compatible with the \"PREFIX\" environment variable: currently set to \"$PREFIX\"" echo >&2 "Run \`unset PREFIX\` to unset it." return 3 fi - if [ -n "$NPM_CONFIG_PREFIX" ] && ! (nvm_tree_contains_path "$NVM_DIR" "$NPM_CONFIG_PREFIX" >/dev/null 2>&1); then + if [ -n "${NPM_CONFIG_PREFIX-}" ] && ! (nvm_tree_contains_path "$NVM_DIR" "$NPM_CONFIG_PREFIX" >/dev/null 2>&1); then nvm deactivate >/dev/null 2>&1 echo >&2 "nvm is not compatible with the \"NPM_CONFIG_PREFIX\" environment variable: currently set to \"$NPM_CONFIG_PREFIX\"" echo >&2 "Run \`unset NPM_CONFIG_PREFIX\` to unset it." @@ -1702,6 +1706,9 @@ nvm() { fi fi if [ "$NVM_INSTALL_SUCCESS" != true ]; then + if [ -z "${NVM_MAKE_JOBS-}" ]; then + nvm_get_make_jobs + fi if [ "$NVM_IOJS" != true ] && [ "$NVM_NODE_MERGED" != true ]; then if nvm_install_node_source "$VERSION" "$NVM_MAKE_JOBS" "$ADDITIONAL_PARAMETERS"; then NVM_INSTALL_SUCCESS=true @@ -1794,18 +1801,22 @@ nvm() { echo "$NVM_DIR/*/bin removed from \$PATH" fi - NEWPATH="$(nvm_strip_path "$MANPATH" "/share/man")" - if [ "_$MANPATH" = "_$NEWPATH" ]; then - echo "Could not find $NVM_DIR/*/share/man in \$MANPATH" >&2 - else - export MANPATH="$NEWPATH" - echo "$NVM_DIR/*/share/man removed from \$MANPATH" + if [ -n "${MANPATH-}" ]; then + NEWPATH="$(nvm_strip_path "$MANPATH" "/share/man")" + if [ "_$MANPATH" = "_$NEWPATH" ]; then + echo "Could not find $NVM_DIR/*/share/man in \$MANPATH" >&2 + else + export MANPATH="$NEWPATH" + echo "$NVM_DIR/*/share/man removed from \$MANPATH" + fi fi - NEWPATH="$(nvm_strip_path "$NODE_PATH" "/lib/node_modules")" - if [ "_$NODE_PATH" != "_$NEWPATH" ]; then - export NODE_PATH="$NEWPATH" - echo "$NVM_DIR/*/lib/node_modules removed from \$NODE_PATH" + if [ -n "${NODE_PATH-}" ]; then + NEWPATH="$(nvm_strip_path "$NODE_PATH" "/lib/node_modules")" + if [ "_$NODE_PATH" != "_$NEWPATH" ]; then + export NODE_PATH="$NEWPATH" + echo "$NVM_DIR/*/lib/node_modules removed from \$NODE_PATH" + fi fi ;; "use" ) @@ -1898,7 +1909,7 @@ nvm() { hash -r export NVM_PATH="$NVM_VERSION_DIR/lib/node" export NVM_BIN="$NVM_VERSION_DIR/bin" - if [ "$NVM_SYMLINK_CURRENT" = true ]; then + if [ "${NVM_SYMLINK_CURRENT-}" = true ]; then command rm -f "$NVM_DIR/current" && ln -s "$NVM_VERSION_DIR" "$NVM_DIR/current" fi local NVM_USE_OUTPUT @@ -2057,7 +2068,7 @@ nvm() { "ls" | "list" ) local NVM_LS_OUTPUT local NVM_LS_EXIT_CODE - NVM_LS_OUTPUT=$(nvm_ls "$2") + NVM_LS_OUTPUT=$(nvm_ls "${2-}") NVM_LS_EXIT_CODE=$? nvm_print_versions "$NVM_LS_OUTPUT" if [ $# -eq 1 ]; then @@ -2067,7 +2078,7 @@ nvm() { ;; "ls-remote" | "list-remote" ) local PATTERN - PATTERN="$2" + PATTERN="${2-}" local NVM_IOJS_PREFIX NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" local NVM_NODE_PREFIX @@ -2172,7 +2183,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' command mkdir -p "$NVM_ALIAS_DIR" if [ $# -le 2 ]; then local DEST - for ALIAS_PATH in "$NVM_ALIAS_DIR"/"$2"*; do + for ALIAS_PATH in "$NVM_ALIAS_DIR"/"${2-}"*; do ALIAS="$(command basename "$ALIAS_PATH")" DEST="$(nvm_alias "$ALIAS" 2> /dev/null)" if [ -n "$DEST" ]; then @@ -2202,7 +2213,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' done return fi - if [ -z "$3" ]; then + if [ -z "${3-}" ]; then command rm -f "$NVM_ALIAS_DIR/$2" echo "$2 -> *poof*" return From e76fe61d95e02382f8d97215f290d1245867c9f5 Mon Sep 17 00:00:00 2001 From: Nick Hwang Date: Tue, 19 Jan 2016 13:03:11 -0500 Subject: [PATCH 0618/1426] Add missing space before closing bracket --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index ef593cb..5a83d15 100755 --- a/nvm.sh +++ b/nvm.sh @@ -68,7 +68,7 @@ nvm_print_npm_version() { # Make zsh glob matching behave same as bash # This fixes the "zsh: no matches found" errors -if [ -z "${NVM_CD_FLAGS-}"]; then +if [ -z "${NVM_CD_FLAGS-}" ]; then export NVM_CD_FLAGS='' fi if nvm_has "unsetopt"; then From 4fcf37fa299b85da46bbb3d87f44ff6b9202013a Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 20 Jan 2016 12:50:45 -0800 Subject: [PATCH 0619/1426] [New] support `--no-use` on sourcing, in supported shells. Fixes #972. --- nvm-exec | 2 +- nvm.sh | 46 ++++++++++++++----- ...m.sh with --no-use should not use anything | 32 +++++++++++++ 3 files changed, 68 insertions(+), 12 deletions(-) create mode 100755 test/sourcing/Sourcing nvm.sh with --no-use should not use anything diff --git a/nvm-exec b/nvm-exec index 29633a3..57067af 100755 --- a/nvm-exec +++ b/nvm-exec @@ -2,7 +2,7 @@ DIR="$(command cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -source "$DIR/nvm.sh" +. "$DIR/nvm.sh" --no-use if [ -n "$NODE_VERSION" ]; then nvm use $NODE_VERSION > /dev/null || (echo "NODE_VERSION not set" >&2 && exit 127) diff --git a/nvm.sh b/nvm.sh index 5a83d15..5ec26aa 100755 --- a/nvm.sh +++ b/nvm.sh @@ -2325,7 +2325,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' nvm_print_npm_version nvm_npm_global_modules \ nvm_has_system_node nvm_has_system_iojs \ nvm_download nvm_get_latest nvm_has nvm_get_latest \ - nvm_supports_source_options nvm_supports_xz > /dev/null 2>&1 + nvm_supports_source_options nvm_auto nvm_supports_xz > /dev/null 2>&1 unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_DIR NVM_CD_FLAGS > /dev/null 2>&1 ;; * ) @@ -2343,17 +2343,41 @@ nvm_supports_xz() { command which xz >/dev/null 2>&1 && nvm_version_greater_than_or_equal_to "$1" "2.3.2" } -NVM_VERSION="$(nvm_alias default 2>/dev/null || echo)" -if nvm_supports_source_options && [ "$#" -gt 0 ] && [ "_$1" = "_--install" ]; then - if [ -n "$NVM_VERSION" ]; then - nvm install "$NVM_VERSION" >/dev/null - elif nvm_rc_version >/dev/null 2>&1; then - nvm install >/dev/null +nvm_auto() { + local NVM_MODE + NVM_MODE="${1-}" + local VERSION + if [ "_$NVM_MODE" = '_install' ]; then + VERSION="$(nvm_alias default 2>/dev/null || echo)" + if [ -n "$VERSION" ]; then + nvm install "$VERSION" >/dev/null + elif nvm_rc_version >/dev/null 2>&1; then + nvm install >/dev/null + fi + elif [ "_$NVM_MODE" = '_use' ]; then + VERSION="$(nvm_alias default 2>/dev/null || echo)" + if [ -n "$VERSION" ]; then + nvm use --silent "$VERSION" >/dev/null + elif nvm_rc_version >/dev/null 2>&1; then + nvm use --silent >/dev/null + fi + elif [ "_$NVM_MODE" != '_none' ]; then + echo >&2 'Invalid auto mode supplied.' + return 1 fi -elif [ -n "$NVM_VERSION" ]; then - nvm use --silent "$NVM_VERSION" >/dev/null -elif nvm_rc_version >/dev/null 2>&1; then - nvm use --silent >/dev/null +} + +NVM_AUTO_MODE='use' +if nvm_supports_source_options; then + while [ $# -ne 0 ] + do + case "$1" in + --install) NVM_AUTO_MODE='install' ;; + --no-use) NVM_AUTO_MODE='none' ;; + esac + shift + done fi +nvm_auto "$NVM_AUTO_MODE" } # this ensures the entire script is downloaded # diff --git a/test/sourcing/Sourcing nvm.sh with --no-use should not use anything b/test/sourcing/Sourcing nvm.sh with --no-use should not use anything new file mode 100755 index 0000000..c0b6533 --- /dev/null +++ b/test/sourcing/Sourcing nvm.sh with --no-use should not use anything @@ -0,0 +1,32 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } +supports_source_options () { + [ "_$(echo 'echo $1' | . /dev/stdin yes)" = "_yes" ] +} + +if ! supports_source_options; then + echo 'this shell does not support passing options on sourcing' + exit 0; +fi + +. ../../nvm.sh +nvm install 4.1.0 || die 'install of v4.1.0 failed' +nvm_version 4.1.0 >/dev/null 2>&1 || die "v4.1.0 not installed: $(nvm ls)" +nvm deactivate || die 'nvm deactivate failed' + +NVM_CURRENT="$(nvm current)" +[ "_$NVM_CURRENT" = '_none' ] || [ "_$NVM_CURRENT" = '_system' ] || die "'nvm current' did not return 'none' or 'system', got '$NVM_CURRENT' `nvm ls`" + +nvm unload || die 'nvm unload failed' + +. ../../nvm.sh --no-use +EXIT_CODE="$(echo $?)" + +echo 'sourcing complete.' + +[ "_$EXIT_CODE" = "_0" ] || die "sourcing returned nonzero exit code: $EXIT_CODE" + +NVM_CURRENT="$(nvm current)" +[ "_$NVM_CURRENT" = '_none' ] || [ "_$NVM_CURRENT" = '_system' ] || die "'nvm current' did not return 'none' or 'system', got '$NVM_CURRENT' `nvm ls`" + From 21c37279556a0576a411ca01124487784105d4b4 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 21 Jan 2016 00:23:01 -0800 Subject: [PATCH 0620/1426] v0.30.2 --- README.markdown | 6 +++--- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.markdown b/README.markdown index 52d63c1..daa29b8 100644 --- a/README.markdown +++ b/README.markdown @@ -25,11 +25,11 @@ Homebrew installation is not supported. To install or update nvm, you can use the [install script][2] using cURL: - curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.30.1/install.sh | bash + curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.30.2/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.30.1/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.30.2/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -260,7 +260,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But If setting the `default` alias does not establish the node version in new shells (i.e. `nvm current` yields `system`), ensure that the system's node PATH is set before the `nvm.sh` source line in your shell profile (see [#658](https://github.com/creationix/nvm/issues/658)) [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.30.1/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.30.2/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index b055eee..15824c4 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ if [ -z "$NVM_DIR" ]; then fi nvm_latest_version() { - echo "v0.30.1" + echo "v0.30.2" } # diff --git a/nvm.sh b/nvm.sh index 5ec26aa..d4250dd 100755 --- a/nvm.sh +++ b/nvm.sh @@ -2300,7 +2300,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' nvm_remote_version "$2" ;; "--version" ) - echo "0.30.1" + echo "0.30.2" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum \ diff --git a/package.json b/package.json index 9ea9b02..2f76685 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.30.1", + "version": "0.30.2", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 560c8c9500cb2d920527d6889e37f4d3fd1fb361 Mon Sep 17 00:00:00 2001 From: Brandon Wood Date: Sat, 23 Jan 2016 21:25:03 -0600 Subject: [PATCH 0621/1426] Added support for sha256 checksums --- nvm.sh | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/nvm.sh b/nvm.sh index d4250dd..0d68e45 100755 --- a/nvm.sh +++ b/nvm.sh @@ -759,15 +759,28 @@ nvm_ls_remote_index_tab() { nvm_checksum() { local NVM_CHECKSUM - if nvm_has "sha1sum" && ! nvm_is_alias "sha1sum"; then - NVM_CHECKSUM="$(command sha1sum "$1" | command awk '{print $1}')" - elif nvm_has "sha1" && ! nvm_is_alias "sha1"; then - NVM_CHECKSUM="$(command sha1 -q "$1")" - elif nvm_has "shasum" && ! nvm_is_alias "shasum"; then - NVM_CHECKSUM="$(shasum "$1" | command awk '{print $1}')" + if [ -z "$3" ] || [ "$3" == "sha1" ]; then + if nvm_has "sha1sum" && ! nvm_is_alias "sha1sum"; then + NVM_CHECKSUM="$(command sha1sum "$1" | command awk '{print $1}')" + elif nvm_has "sha1" && ! nvm_is_alias "sha1"; then + NVM_CHECKSUM="$(command sha1 -q "$1")" + elif nvm_has "shasum" && ! nvm_is_alias "shasum"; then + NVM_CHECKSUM="$(shasum "$1" | command awk '{print $1}')" + else + echo "Unaliased sha1sum, sha1, or shasum not found." >&2 + return 2 + fi else - echo "Unaliased sha1sum, sha1, or shasum not found." >&2 - return 2 + if nvm_has "sha256sum" && ! nvm_is_alias "sha256sum"; then + NVM_CHECKSUM="$(command sha256sum "$1" | command awk '{print $1}')" + elif nvm_has "sha256" && ! nvm_is_alias "sha256"; then + NVM_CHECKSUM="$(command sha256 -q "$1")" + elif nvm_has "gsha256sum" && ! nvm_is_alias "gsha256sum"; then + NVM_CHECKSUM="$(gsha256sum "$1" | command awk '{print $1}')" + else + echo "Unaliased sha256sum, sha256, or gsha256sum not found." >&2 + return 2 + fi fi if [ "_$NVM_CHECKSUM" = "_$2" ]; then @@ -1051,8 +1064,7 @@ nvm_install_merged_node_binary() { fi if ( [ "$NVM_INSTALL_ERRORED" != true ] && \ - echo "WARNING: checksums are currently disabled for node.js v4.0 and later" >&2 && \ - # nvm_checksum "$tmptarball" "$sum" && \ + nvm_checksum "$tmptarball" "$sum" "sha256" && \ command tar -x${tar_compression_flag}f "$tmptarball" -C "$tmpdir" --strip-components 1 && \ command rm -f "$tmptarball" && \ command mkdir -p "$VERSION_PATH" && \ @@ -1126,8 +1138,7 @@ nvm_install_iojs_binary() { fi if ( [ "$NVM_INSTALL_ERRORED" != true ] && \ - echo "WARNING: checksums are currently disabled for io.js" >&2 && \ - # nvm_checksum "$tmptarball" "$sum" && \ + nvm_checksum "$tmptarball" "$sum" "sha256" && \ command tar -x${tar_compression_flag}f "$tmptarball" -C "$tmpdir" --strip-components 1 && \ command rm -f "$tmptarball" && \ command mkdir -p "$VERSION_PATH" && \ From f1bca106a8f5fc6a4b88b5ef30603cf31ea531f1 Mon Sep 17 00:00:00 2001 From: Brandon Wood Date: Sat, 23 Jan 2016 22:17:43 -0600 Subject: [PATCH 0622/1426] Added (optional) support for sha256 checksum utils This commit adds (optional) support for additional sha256 checksum utilities for newer versions of node.js and io.js that use sha256 checksums rather than sha1. If nothing is found to do a sha256 checksum on the client machine, a warning is printed and things continue on as normal. Following comments from @ljharb on incorporating some of @DomT4's PR creationix/nvm#664, and making this checksum optional. If I could I would gladly include this as an addon to the now closed PR creationix/nvm#664. I am choosing not to file it onto that PR because it's closed and (currently) significantly behind the master branch. @DomT4 did the hard work of actually finding all the different ways in which one could verify a sha256 checksum, I've just included those here in an effort to move forward with sha256 checksum support. --- nvm.sh | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/nvm.sh b/nvm.sh index 0d68e45..f5dd8bd 100755 --- a/nvm.sh +++ b/nvm.sh @@ -772,14 +772,23 @@ nvm_checksum() { fi else if nvm_has "sha256sum" && ! nvm_is_alias "sha256sum"; then - NVM_CHECKSUM="$(command sha256sum "$1" | command awk '{print $1}')" + NVM_CHECKSUM="$(sha256sum "$1" | awk '{print $1}')" + elif nvm_has "shasum" && ! nvm_is_alias "shasum"; then + NVM_CHECKSUM="$(shasum -a 256 "$1" | awk '{print $1}')" elif nvm_has "sha256" && ! nvm_is_alias "sha256"; then - NVM_CHECKSUM="$(command sha256 -q "$1")" + NVM_CHECKSUM="$(sha256 -q "$1" | awk '{print $1}')" elif nvm_has "gsha256sum" && ! nvm_is_alias "gsha256sum"; then - NVM_CHECKSUM="$(gsha256sum "$1" | command awk '{print $1}')" + NVM_CHECKSUM="$(gsha256sum "$1" | awk '{print $1}')" + elif nvm_has "openssl" && ! nvm_is_alias "openssl"; then + NVM_CHECKSUM="$(openssl dgst -sha256 "$1" | rev | awk '{print $1}' | rev)" + elif nvm_has "libressl" && ! nvm_is_alias "libressl"; then + NVM_CHECKSUM="$(libressl dgst -sha256 "$1" | rev | awk '{print $1}' | rev)" + elif nvm_has "bssl" && ! nvm_is_alias "bssl"; then + NVM_CHECKSUM="$(bssl sha256sum "$1" | awk '{print $1}')" else echo "Unaliased sha256sum, sha256, or gsha256sum not found." >&2 - return 2 + echo "WARNING: Continuing *without checksum verification*" >&2 + return fi fi From f73bfb65780709b181cc4f53bff554f67f26a2b3 Mon Sep 17 00:00:00 2001 From: Brandon Wood Date: Sun, 24 Jan 2016 11:53:19 -0600 Subject: [PATCH 0623/1426] Updated warning message when sha256sum utility not found Relates to @ljharb's comment on the warning message not including all of the utilties searched for. https://github.com/creationix/nvm/pull/981#discussion_r50638351 --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index f5dd8bd..b8ffb0d 100755 --- a/nvm.sh +++ b/nvm.sh @@ -786,7 +786,7 @@ nvm_checksum() { elif nvm_has "bssl" && ! nvm_is_alias "bssl"; then NVM_CHECKSUM="$(bssl sha256sum "$1" | awk '{print $1}')" else - echo "Unaliased sha256sum, sha256, or gsha256sum not found." >&2 + echo "Unaliased sha256sum, shasum, sha256, gsha256sum, openssl, libressl, or bssl not found." >&2 echo "WARNING: Continuing *without checksum verification*" >&2 return fi From 649e416017827575904d95b5d1dc7b7472deafb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Larivi=C3=A8re?= Date: Sat, 30 Jan 2016 20:46:25 -0500 Subject: [PATCH 0624/1426] [Refactor]Double quote to prevent globbing and word splitting. --- install.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/install.sh b/install.sh index 15824c4..c1da5b5 100755 --- a/install.sh +++ b/install.sh @@ -69,7 +69,7 @@ install_nvm_from_git() { mkdir -p "$NVM_DIR" command git clone "$(nvm_source git)" "$NVM_DIR" fi - cd "$NVM_DIR" && command git checkout --quiet $(nvm_latest_version) + cd "$NVM_DIR" && command git checkout --quiet "$(nvm_latest_version)" if [ ! -z "$(cd "$NVM_DIR" && git show-ref refs/heads/master)" ]; then if git branch --quiet 2>/dev/null; then cd "$NVM_DIR" && command git branch --quiet -D master >/dev/null 2>&1 @@ -123,15 +123,15 @@ nvm_detect_profile() { local DETECTED_PROFILE DETECTED_PROFILE='' local SHELLTYPE - SHELLTYPE="$(basename /$SHELL)" + SHELLTYPE="$(basename "/$SHELL")" - if [ $SHELLTYPE = "bash" ]; then + if [ "$SHELLTYPE" = "bash" ]; then if [ -f "$HOME/.bashrc" ]; then DETECTED_PROFILE="$HOME/.bashrc" elif [ -f "$HOME/.bash_profile" ]; then DETECTED_PROFILE="$HOME/.bash_profile" fi - elif [ $SHELLTYPE = "zsh" ]; then + elif [ "$SHELLTYPE" = "zsh" ]; then DETECTED_PROFILE="$HOME/.zshrc" fi From 77e0449c89d470a0f6b76fa64601fee291570542 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 4 Feb 2016 11:19:34 -0800 Subject: [PATCH 0625/1426] [Fix] `nvm-exec`: properly exit when failing; improve error messages, suppress `nvm use --help` output Fixes #997. --- nvm-exec | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/nvm-exec b/nvm-exec index 57067af..e92d4aa 100755 --- a/nvm-exec +++ b/nvm-exec @@ -5,9 +5,10 @@ DIR="$(command cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" . "$DIR/nvm.sh" --no-use if [ -n "$NODE_VERSION" ]; then - nvm use $NODE_VERSION > /dev/null || (echo "NODE_VERSION not set" >&2 && exit 127) -else - nvm use > /dev/null || (echo "No .nvmrc file found" >&2 && exit 127) + nvm use $NODE_VERSION > /dev/null || exit 127 +elif ! nvm use >/dev/null 2>&1; then + echo "No NODE_VERSION provided; no .nvmrc file found" >&2 + exit 127 fi exec "$@" From de64a2d95f66a6fd17f8619d59ca6047d79aaee5 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 6 Feb 2016 22:34:49 -0800 Subject: [PATCH 0626/1426] [Fix] `nvm_format_version` should only return 3 version groups --- nvm.sh | 6 ++++-- test/fast/Unit tests/nvm_format_version | 15 +++++++++++---- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/nvm.sh b/nvm.sh index b8ffb0d..a74414d 100755 --- a/nvm.sh +++ b/nvm.sh @@ -339,10 +339,12 @@ nvm_ensure_version_prefix() { nvm_format_version() { local VERSION VERSION="$(nvm_ensure_version_prefix "$1")" - if [ "_$(nvm_num_version_groups "$VERSION")" != "_3" ]; then + local NUM_GROUPS + NUM_GROUPS="$(nvm_num_version_groups "$VERSION")" + if [ $NUM_GROUPS -lt 3 ]; then nvm_format_version "${VERSION%.}.0" else - echo "$VERSION" + echo "$VERSION" | cut -f1-3 -d. fi } diff --git a/test/fast/Unit tests/nvm_format_version b/test/fast/Unit tests/nvm_format_version index 134ca75..e77b3da 100755 --- a/test/fast/Unit tests/nvm_format_version +++ b/test/fast/Unit tests/nvm_format_version @@ -4,11 +4,18 @@ die () { echo $@ ; exit 1; } . ../../../nvm.sh -OUTPUT="$(nvm_format_version 0.1.2)" +INPUT="0.1.2" +OUTPUT="$(nvm_format_version "$INPUT")" EXPECTED_OUTPUT="v0.1.2" -[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_format_version 0.1.2 did not return $EXPECTED_OUTPUT; got $OUTPUT" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_format_version $INPUT did not return $EXPECTED_OUTPUT; got $OUTPUT" -OUTPUT="$(nvm_format_version 0.1)" +INPUT="0.1" +OUTPUT="$(nvm_format_version "$INPUT")" EXPECTED_OUTPUT="v0.1.0" -[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_format_version 0.1.0 did not return $EXPECTED_OUTPUT; got $OUTPUT" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_format_version $INPUT did not return $EXPECTED_OUTPUT; got $OUTPUT" + +INPUT="1.2.3.4.5" +OUTPUT="$(nvm_format_version "$INPUT")" +EXPECTED_OUTPUT="v1.2.3" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_format_version $INPUT did not return $EXPECTED_OUTPUT; got $OUTPUT" From 731c2f3f70aa6fca1fa999967e072aeeeb76ee9d Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 4 Feb 2016 11:16:09 -0800 Subject: [PATCH 0627/1426] Add `nvm_get_minor_version` --- nvm.sh | 28 ++++++++++++++ test/fast/Unit tests/nvm_get_minor_version | 45 ++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100755 test/fast/Unit tests/nvm_get_minor_version diff --git a/nvm.sh b/nvm.sh index a74414d..2f3dc30 100755 --- a/nvm.sh +++ b/nvm.sh @@ -995,6 +995,34 @@ nvm_get_arch() { echo "$NVM_ARCH" } +nvm_get_minor_version() { + local VERSION + VERSION="$1" + + if [ -z "$VERSION" ]; then + echo 'a version is required' >&2 + return 1 + fi + + case "$VERSION" in + v | .* | *..* | v*[!.0123456789]* | [!v]*[!.0123456789]* | [!v0123456789]* | v[!0123456789]*) + echo 'invalid version number' >&2 + return 2 + ;; + esac + + local PREFIXED_VERSION + PREFIXED_VERSION="$(nvm_format_version "$VERSION")" + + local MINOR + MINOR="$(echo "$PREFIXED_VERSION" | command grep -e '^v' | command cut -c2- | command cut -d . -f 1,2)" + if [ -z "$MINOR" ]; then + echo 'invalid version number! (please report this)' >&2 + return 3 + fi + echo "$MINOR" +} + nvm_ensure_default_set() { local VERSION VERSION="$1" diff --git a/test/fast/Unit tests/nvm_get_minor_version b/test/fast/Unit tests/nvm_get_minor_version new file mode 100755 index 0000000..ebb63b3 --- /dev/null +++ b/test/fast/Unit tests/nvm_get_minor_version @@ -0,0 +1,45 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +expect () { + INPUT="$1" + EXPECTED_OUTPUT="$2" + + OUTPUT="$(nvm_get_minor_version "$INPUT")" + [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_get_minor_version $INPUT did not return $EXPECTED_OUTPUT; got $OUTPUT" + + V_OUTPUT="$(nvm_get_minor_version "v$INPUT")" + [ "_$V_OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_get_minor_version v$INPUT did not return $EXPECTED_OUTPUT; got $V_OUTPUT" +} + +fail_with () { + INPUT="$1" + EXPECTED_CODE="$2" + + EXIT_CODE="$(nvm_get_minor_version "$INPUT" >/dev/null 2>&1; echo $?)" + [ "_$EXIT_CODE" = "_$EXPECTED_CODE" ] || die "nvm_get_minor_version "$INPUT" did not fail with code "$EXPECTED_CODE"; got $EXIT_CODE" +} + +expect 1 1.0 +expect 1. 1.0 +expect 1.2 1.2 +expect 1.2. 1.2 +expect 1.2.3 1.2 +expect 1.2.3. 1.2 +expect 1.2.3.4 1.2 + +fail_with '' 1 +fail_with '.' 2 +fail_with '..' 2 +fail_with v 2 +fail_with .a 2 +fail_with .1 2 +fail_with v.1 2 +fail_with a.b 2 +fail_with 1.a 2 +fail_with a.1 2 +fail_with v1.a 2 +fail_with va.1 2 From 44541b416fa35aa88f627caa0bf67a2a99c6948a Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 4 Feb 2016 00:26:33 -0800 Subject: [PATCH 0628/1426] [New] After installing, ensure that the default is set. --- nvm.sh | 2 ++ test/installation/node/install from binary | 5 +++++ test/installation/node/install from source | 5 +++++ test/sourcing/setup | 2 ++ 4 files changed, 14 insertions(+) diff --git a/nvm.sh b/nvm.sh index 2f3dc30..1f168d4 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1730,6 +1730,7 @@ nvm() { if nvm use "$VERSION" && [ ! -z "$REINSTALL_PACKAGES_FROM" ] && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then nvm reinstall-packages "$REINSTALL_PACKAGES_FROM" fi + nvm_ensure_default_set "$provided_version" return $? fi @@ -1775,6 +1776,7 @@ nvm() { fi if [ "$NVM_INSTALL_SUCCESS" = true ] && nvm use "$VERSION"; then + nvm_ensure_default_set "$provided_version" if [ ! -z "$REINSTALL_PACKAGES_FROM" ] \ && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then nvm reinstall-packages "$REINSTALL_PACKAGES_FROM" diff --git a/test/installation/node/install from binary b/test/installation/node/install from binary index 3e17e8e..8b9ac48 100755 --- a/test/installation/node/install from binary +++ b/test/installation/node/install from binary @@ -4,6 +4,8 @@ die () { echo $@ ; exit 1; } . ../../../nvm.sh +nvm unalias default || die 'unable to unalias default' + NVM_TEST_VERSION=v0.10.7 # Remove the stuff we're clobbering. @@ -16,3 +18,6 @@ nvm install $NVM_TEST_VERSION || die "install $NVM_TEST_VERSION failed" [ -d ../../../$NVM_TEST_VERSION ] nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION || die "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" +# ensure default is set +NVM_CURRENT_DEFAULT="$(nvm_alias default)" +[ "$NVM_CURRENT_DEFAULT" = "$NVM_TEST_VERSION" ] || die "wrong default alias: $(nvm alias)" diff --git a/test/installation/node/install from source b/test/installation/node/install from source index 3cf0389..150aa87 100755 --- a/test/installation/node/install from source +++ b/test/installation/node/install from source @@ -4,6 +4,8 @@ die () { echo $@ ; exit 1; } . ../../../nvm.sh +nvm unalias default || die 'unable to unalias default' + NVM_TEST_VERSION=v0.10.7 # Remove the stuff we're clobbering. @@ -16,3 +18,6 @@ nvm install -s $NVM_TEST_VERSION || die "'nvm install -s $NVM_TEST_VERSION' fail [ -d ../../../$NVM_TEST_VERSION ] nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION || "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" +# ensure default is set +NVM_CURRENT_DEFAULT="$(nvm_alias default)" +[ "$NVM_CURRENT_DEFAULT" = "$NVM_TEST_VERSION" ] || die "wrong default alias: $(nvm alias)" diff --git a/test/sourcing/setup b/test/sourcing/setup index 4d5a97b..201b9c1 100755 --- a/test/sourcing/setup +++ b/test/sourcing/setup @@ -1,6 +1,7 @@ #!/bin/sh mkdir -p ../../alias +rm -rf ../../alias/default rm -f ../../.nvmrc rm -rf ../../v0.10.7 rm -rf ../../v0.9.7 @@ -8,5 +9,6 @@ rm -rf ../../v0.9.12 . ../../nvm.sh nvm install 0.10.1 || echo >&2 'nvm install 0.10.1 failed' +nvm unalias default || 'removing default alias failed' nvm unload || echo >&2 'nvm unload failed' From 8a20234586646a242af08ea68a727314f36c9f39 Mon Sep 17 00:00:00 2001 From: gmisra Date: Tue, 9 Feb 2016 17:53:26 -0800 Subject: [PATCH 0629/1426] Document how to reload nvm after upgrading --- README.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.markdown b/README.markdown index daa29b8..d88d884 100644 --- a/README.markdown +++ b/README.markdown @@ -60,6 +60,10 @@ Add these lines to your `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it For manual upgrade with `git`, change to the `$NVM_DIR`, pull down the latest changes, and check out the latest version: cd "$NVM_DIR" && git pull origin master && git checkout `git describe --abbrev=0 --tags` + +After upgrading, don't forget to activate the new version: + + . "$NVM_DIR/nvm.sh" ## Usage From 06b81f0f367d15c9782a25631b81ceb88904af18 Mon Sep 17 00:00:00 2001 From: Thomas Levine <_@thomaslevine.com> Date: Mon, 8 Feb 2016 15:29:09 +0000 Subject: [PATCH 0630/1426] use env bash rather than /bin/bash My bash is not installed in /bin/bash. --- ...vm use x\" should create and change the \"current\" symlink" | 2 +- ...te the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git "a/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" "b/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" index d5fda3c..fcc4acb 100755 --- "a/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" +++ "b/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash export NVM_SYMLINK_CURRENT=true . ../../nvm.sh diff --git "a/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" "b/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" index 4ac8b4b..3603e04 100755 --- "a/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" +++ "b/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash . ../../nvm.sh From 0eaa7e0bdedf2f2340c1cf4bd342da361abc2585 Mon Sep 17 00:00:00 2001 From: Thomas Levine <_@thomaslevine.com> Date: Sun, 14 Feb 2016 10:07:10 +0000 Subject: [PATCH 0631/1426] use env bash in nvm-exec and install.sh --- install.sh | 2 +- nvm-exec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index c1da5b5..27b6333 100755 --- a/install.sh +++ b/install.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash { # this ensures the entire script is downloaded # diff --git a/nvm-exec b/nvm-exec index e92d4aa..0d28870 100755 --- a/nvm-exec +++ b/nvm-exec @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash DIR="$(command cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" From 7135873f800f07327a366016320838dba49036c3 Mon Sep 17 00:00:00 2001 From: Jonas Dohse Date: Mon, 15 Feb 2016 12:49:56 +0100 Subject: [PATCH 0632/1426] Do not modify parameters of sourcing script in zsh When sourcing a script without parameters in zsh the sourced scripts gets the same parameters as the sourcing file and is able to modify these parameters. Prevent nvm from removing all parameters of sourcing script by processing a copy of the parameters in a function. --- nvm.sh | 32 +++++++++++-------- ....sh should not modify parameters of caller | 5 +++ 2 files changed, 24 insertions(+), 13 deletions(-) create mode 100755 test/fast/Sourcing nvm.sh should not modify parameters of caller diff --git a/nvm.sh b/nvm.sh index 1f168d4..71a3c17 100755 --- a/nvm.sh +++ b/nvm.sh @@ -2377,7 +2377,8 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' nvm_print_npm_version nvm_npm_global_modules \ nvm_has_system_node nvm_has_system_iojs \ nvm_download nvm_get_latest nvm_has nvm_get_latest \ - nvm_supports_source_options nvm_auto nvm_supports_xz > /dev/null 2>&1 + nvm_supports_source_options nvm_auto nvm_supports_xz \ + nvm_process_parameters > /dev/null 2>&1 unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_DIR NVM_CD_FLAGS > /dev/null 2>&1 ;; * ) @@ -2419,17 +2420,22 @@ nvm_auto() { fi } -NVM_AUTO_MODE='use' -if nvm_supports_source_options; then - while [ $# -ne 0 ] - do - case "$1" in - --install) NVM_AUTO_MODE='install' ;; - --no-use) NVM_AUTO_MODE='none' ;; - esac - shift - done -fi -nvm_auto "$NVM_AUTO_MODE" +nvm_process_parameters() { + local NVM_AUTO_MODE + NVM_AUTO_MODE='use' + if nvm_supports_source_options; then + while [ $# -ne 0 ] + do + case "$1" in + --install) NVM_AUTO_MODE='install' ;; + --no-use) NVM_AUTO_MODE='none' ;; + esac + shift + done + fi + nvm_auto "$NVM_AUTO_MODE" +} + +nvm_process_parameters "$@" } # this ensures the entire script is downloaded # diff --git a/test/fast/Sourcing nvm.sh should not modify parameters of caller b/test/fast/Sourcing nvm.sh should not modify parameters of caller new file mode 100755 index 0000000..67e88cf --- /dev/null +++ b/test/fast/Sourcing nvm.sh should not modify parameters of caller @@ -0,0 +1,5 @@ +#!/bin/sh + +set -- yes +. ../../nvm.sh +[ "$1" = yes ] From 2176894a5be5da17a362bf3f20678641a78f4b69 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 15 Feb 2016 09:18:15 -0800 Subject: [PATCH 0633/1426] v0.31.0 --- README.markdown | 6 +++--- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.markdown b/README.markdown index d88d884..e29d44f 100644 --- a/README.markdown +++ b/README.markdown @@ -25,11 +25,11 @@ Homebrew installation is not supported. To install or update nvm, you can use the [install script][2] using cURL: - curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.30.2/install.sh | bash + curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.30.2/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). @@ -264,7 +264,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But If setting the `default` alias does not establish the node version in new shells (i.e. `nvm current` yields `system`), ensure that the system's node PATH is set before the `nvm.sh` source line in your shell profile (see [#658](https://github.com/creationix/nvm/issues/658)) [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.30.2/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.31.0/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index 27b6333..cfb6c29 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ if [ -z "$NVM_DIR" ]; then fi nvm_latest_version() { - echo "v0.30.2" + echo "v0.31.0" } # diff --git a/nvm.sh b/nvm.sh index 71a3c17..b4e871f 100755 --- a/nvm.sh +++ b/nvm.sh @@ -2352,7 +2352,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' nvm_remote_version "$2" ;; "--version" ) - echo "0.30.2" + echo "0.31.0" ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum \ diff --git a/package.json b/package.json index 2f76685..16c16ad 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.30.2", + "version": "0.31.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From e76221fd1516bed5a5ffffb6c91de7f4e3ca8aec Mon Sep 17 00:00:00 2001 From: Adam Patridge Date: Thu, 3 Mar 2016 14:01:23 -0700 Subject: [PATCH 0634/1426] Added note about OSX's missing .bash_profile file. --- README.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.markdown b/README.markdown index e29d44f..a160f56 100644 --- a/README.markdown +++ b/README.markdown @@ -38,6 +38,8 @@ Eg: `curl ... | NVM_DIR="path/to/nvm" bash` *NB. The installer can use `git`, `curl`, or `wget` to download `nvm`, whatever is available.* +Note: On OSX, if you get `nvm: command not found` after running the install script, your system may not have a [.bash_profile file] where the command is set up. Simple create one with `touch ~/.bash_profile` and run the install script again. + ### Manual install For manual install create a folder somewhere in your filesystem with the `nvm.sh` file inside it. I put mine in `~/.nvm`. From ae70d558cbb791eb498a2c088a89842be890169d Mon Sep 17 00:00:00 2001 From: Tobias Witt Date: Tue, 8 Mar 2016 18:30:14 +0100 Subject: [PATCH 0635/1426] Add section about "Deeper shell integration" Also adds a snippet for zsh user to auto-issue `nvm use` when entering a directory. --- README.markdown | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/README.markdown b/README.markdown index a160f56..c46956a 100644 --- a/README.markdown +++ b/README.markdown @@ -157,6 +157,28 @@ To use a mirror of the iojs binaries, set `$NVM_IOJS_ORG_MIRROR`: `nvm use` will not, by default, create a "current" symlink. Set `$NVM_SYMLINK_CURRENT` to "true" to enable this behavior, which is sometimes useful for IDEs. +### Deeper Shell Integration + +Those options are all optional and not supported. We are accepting pull requests for more examples. + + +#### Zsh + +##### Calling `nvm use` automatically in a directory with a `.nvmrc` file + +Put this into your `$HOME/.zshrc` to call `nvm use` automatically whenever you enter a directory that contains an +`.nvmrc` file with a string telling nvm which node to `use`: + +```zsh +autoload -U add-zsh-hook +load-nvmrc() { + if [[ -f .nvmrc && -r .nvmrc ]]; then + nvm use + fi +} +add-zsh-hook chpwd load-nvmrc +``` + ## License nvm is released under the MIT license. From 972be30a1a5b96e9435d1bbe3a9d71b46f3cc8ba Mon Sep 17 00:00:00 2001 From: Whitney Young Date: Tue, 8 Mar 2016 13:46:36 -0800 Subject: [PATCH 0636/1426] Add link to avn Also, clarified the existing shell integration intro text. --- README.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index c46956a..ac95f4a 100644 --- a/README.markdown +++ b/README.markdown @@ -159,8 +159,9 @@ To use a mirror of the iojs binaries, set `$NVM_IOJS_ORG_MIRROR`: ### Deeper Shell Integration -Those options are all optional and not supported. We are accepting pull requests for more examples. +You can use [`avn`](https://github.com/wbyoung/avn) to deeply integrate into your shell and automatically invoke `nvm` when changing directories. `avn` is **not** supported by the `nvm` development team. Please [report issues to the `avn` team](https://github.com/wbyoung/avn/issues/new). +If you prefer a lighter-weight solution, the recipes below have been contributed by `nvm` users. They are **not** supported by the `nvm` development team. We are, however, accepting pull requests for more examples. #### Zsh From d8a3b074a6a89f446d68718f3de1648db5e43b25 Mon Sep 17 00:00:00 2001 From: flowmemo Date: Fri, 11 Mar 2016 23:31:28 +0800 Subject: [PATCH 0637/1426] fixed the number of alternatives in Windows in README.markdown --- README.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index ac95f4a..4639c2d 100644 --- a/README.markdown +++ b/README.markdown @@ -4,7 +4,7 @@ First you'll need to make sure your system has a c++ compiler. For OSX, XCode will work, for Ubuntu, the build-essential and libssl-dev packages work. -Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/nvm/issues/284)). Three alternatives exist, which are neither supported nor developed by us: +Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/nvm/issues/284)). Two alternatives exist, which are neither supported nor developed by us: - [nvm-windows](https://github.com/coreybutler/nvm-windows) - [nodist](https://github.com/marcelklehr/nodist) From 8fb4ee07892621897fe392a5b39ecd68915654e8 Mon Sep 17 00:00:00 2001 From: Robson Peixoto Date: Thu, 10 Mar 2016 19:37:51 -0300 Subject: [PATCH 0638/1426] Unset unnecessary environment variables --- nvm.sh | 1 + ... deactivate\" should unset the nvm environment variables." | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/nvm.sh b/nvm.sh index b4e871f..97d4845 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1870,6 +1870,7 @@ nvm() { echo "$NVM_DIR/*/lib/node_modules removed from \$NODE_PATH" fi fi + unset NVM_BIN NVM_PATH ;; "use" ) local PROVIDED_VERSION diff --git "a/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." "b/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." index 0ce98b6..0356276 100755 --- "a/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." +++ "b/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." @@ -10,8 +10,12 @@ die () { echo $@ ; exit 1; } nvm use --delete-prefix v0.2.3 || die "Failed to activate v0.2.3" [ `expr "$PATH" : ".*v0.2.3/.*/bin"` != 0 ] || die "PATH not set up properly" [ `expr "$NODE_PATH" : ".*v0.2.3/.*/lib/node_modules"` = 0 ] || die "NODE_PATH should not contain (npm root -g)" +[ `expr "$NVM_BIN" : ".*v0.2.3/bin"` != 0 ] || die "NODE_BIN should contain bin directory path" +[ `expr "$NVM_PATH" : ".*v0.2.3/lib/node"` != 0 ] || die "NODE_PATH should contain lib node directory path" # ^ note: NODE_PATH should not contain `npm root -g` since globals should not be requireable nvm deactivate || die "Failed to deactivate v0.2.3" [ `expr "$PATH" : ".*v0.2.3/.*/bin"` = 0 ] || die "PATH not cleaned properly" [ `expr "$NODE_PATH" : ".*v0.2.3/.*/lib/node_modules"` = 0 ] || die "NODE_PATH not cleaned properly" +[ "_$NVM_BIN" = "_" ] || die "NVM_BIN should be unset: got '$NVM_BIN'" +[ "_$NVM_PATH" = "_" ] || die "NVM_PATH should be unset: got '$NVM_PATH'" From d03f5754464a4ce1b23bdbe1145d473831d3e190 Mon Sep 17 00:00:00 2001 From: Frankie Bagnardi Date: Thu, 17 Mar 2016 14:14:21 -0700 Subject: [PATCH 0639/1426] Adds fast-nvm-fish to README --- README.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/README.markdown b/README.markdown index 4639c2d..671a603 100644 --- a/README.markdown +++ b/README.markdown @@ -11,6 +11,7 @@ Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/n Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creationix/nvm/issues/303)). Alternatives exist, which are neither supported nor developed by us: - [nvm](https://github.com/derekstavis/plugin-nvm) plugin for [Oh My Fish](https://github.com/oh-my-fish/oh-my-fish), which makes nvm and its completions available in fish shell - [bass](https://github.com/edc/bass) allows to use utilities written for Bash in fish shell + - [fast-nvm-fish](https://github.com/brigand/fast-nvm-fish) only works with version numbers (not aliases) but doesn't significantly slow your shell startup Note: We still have some problems with FreeBSD, because there is no pre-built binary from official for FreeBSD, and building from source may need [patches](https://www.freshports.org/www/node/files/patch-deps_v8_src_base_platform_platform-posix.cc), see the issue ticket: - [[#900] [Bug] nodejs on FreeBSD need to be patched ](https://github.com/creationix/nvm/issues/900) From 273ebedc55a66de0ac361886270ab2539da17f7f Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 18 Mar 2016 00:28:30 -0700 Subject: [PATCH 0640/1426] [Fix] avoid an unbound variable when `nounset` bash option is set. Per https://github.com/creationix/nvm/issues/868#issuecomment-198232952 --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 97d4845..21f3b89 100755 --- a/nvm.sh +++ b/nvm.sh @@ -92,7 +92,7 @@ if [ -z "${NVM_NODEJS_ORG_MIRROR-}" ]; then export NVM_NODEJS_ORG_MIRROR="https://nodejs.org/dist" fi -if [ -z "$NVM_IOJS_ORG_MIRROR" ]; then +if [ -z "${NVM_IOJS_ORG_MIRROR-}" ]; then export NVM_IOJS_ORG_MIRROR="https://iojs.org/dist" fi From b6f160a7b315c4d5007a34f80e1bdb227ac8f005 Mon Sep 17 00:00:00 2001 From: Vincent Tunru Date: Sat, 26 Mar 2016 12:48:28 +0100 Subject: [PATCH 0641/1426] Fixes #995: Add example .nvmrc to the README --- README.markdown | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/README.markdown b/README.markdown index 671a603..39a95a7 100644 --- a/README.markdown +++ b/README.markdown @@ -70,9 +70,6 @@ After upgrading, don't forget to activate the new version: ## Usage -You can create an `.nvmrc` file containing version number in the project root directory (or any parent directory). -`nvm use`, `nvm install`, `nvm exec`, `nvm run`, and `nvm which` will all respect an `.nvmrc` file when a version is not supplied. - To download, compile, and install the latest v5.0.x release of node, do this: nvm install 5.0 @@ -158,6 +155,21 @@ To use a mirror of the iojs binaries, set `$NVM_IOJS_ORG_MIRROR`: `nvm use` will not, by default, create a "current" symlink. Set `$NVM_SYMLINK_CURRENT` to "true" to enable this behavior, which is sometimes useful for IDEs. +### .nvmrc + +You can create a `.nvmrc` file containing version number in the project root directory (or any parent directory). +`nvm use`, `nvm install`, `nvm exec`, `nvm run`, and `nvm which` will all respect an `.nvmrc` file when a version is not supplied. + +For example, to make nvm default to the latest 5.9 release for the current directory: + + $ echo "5.9" > .nvmrc + +Then when you run nvm: + + $ nvm use + Found '/path/to/project/.nvmrc' with version <5.9> + Now using node v5.9.1 (npm v3.7.3) + ### Deeper Shell Integration You can use [`avn`](https://github.com/wbyoung/avn) to deeply integrate into your shell and automatically invoke `nvm` when changing directories. `avn` is **not** supported by the `nvm` development team. Please [report issues to the `avn` team](https://github.com/wbyoung/avn/issues/new). From 6299cba467e647988b75646e61fc7b1be6d1a191 Mon Sep 17 00:00:00 2001 From: igrayson Date: Sat, 2 Apr 2016 16:48:37 -0700 Subject: [PATCH 0642/1426] Update README.markdown Add mention for ~/.bashrc --- README.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index 39a95a7..42b1558 100644 --- a/README.markdown +++ b/README.markdown @@ -32,7 +32,7 @@ or Wget: wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash -The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`). +The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). You can customize the install source, directory and profile using the `NVM_SOURCE`, `NVM_DIR`, and `PROFILE` variables. Eg: `curl ... | NVM_DIR="path/to/nvm" bash` From d3e334d86d1ee680c6af9ea32b1020ebaadbf48b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 4 Apr 2016 22:08:36 -0700 Subject: [PATCH 0643/1426] [Fix] `read` exits 1 when `.nvmrc` lacks a trailing newline - avoid that. Per https://github.com/creationix/nvm/issues/993#issuecomment-205399603 --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 21f3b89..0e1c9dc 100755 --- a/nvm.sh +++ b/nvm.sh @@ -140,7 +140,7 @@ nvm_rc_version() { local NVMRC_PATH NVMRC_PATH="$(nvm_find_nvmrc)" if [ -e "$NVMRC_PATH" ]; then - read -r NVM_RC_VERSION < "$NVMRC_PATH" + read -r NVM_RC_VERSION < "$NVMRC_PATH" || printf '' echo "Found '$NVMRC_PATH' with version <$NVM_RC_VERSION>" else >&2 echo "No .nvmrc file found" From 9d8841a46c3d055813f89d3938ec0728497767de Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 18 Apr 2016 01:00:55 -0700 Subject: [PATCH 0644/1426] Ensure only the version string is printed out in relevant places. --- nvm.sh | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index 2042a24..7b4559f 100644 --- a/nvm.sh +++ b/nvm.sh @@ -317,7 +317,14 @@ nvm_remote_version() { else VERSION="$(nvm_remote_versions "$PATTERN" | command tail -1)" fi - nvm_echo "$VERSION" + if [ -n "${NVM_VERSION_ONLY-}" ]; then + command awk 'BEGIN { + n = split(ARGV[1], a); + print a[1] + }' "${VERSION}" + else + nvm_echo "${VERSION}" + fi if [ "_$VERSION" = '_N/A' ]; then return 3 fi @@ -1867,7 +1874,7 @@ nvm() { shift fi - VERSION="$(nvm_remote_version "$provided_version")" + VERSION="$(NVM_VERSION_ONLY=true nvm_remote_version "$provided_version")" if [ "_$VERSION" = "_N/A" ]; then nvm_err "Version '$provided_version' not found - try \`nvm ls-remote\` to browse available versions." @@ -2549,7 +2556,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" nvm_version "$2" ;; "version-remote" ) - nvm_remote_version "$2" + NVM_VERSION_ONLY=true nvm_remote_version "$2" ;; "--version" ) nvm_echo '0.31.2' From 865d2fe3d6dacec99cd3d61b87992f9a91c89733 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 17 Apr 2016 23:39:27 -0700 Subject: [PATCH 0645/1426] Include LTS version in `nvm_ls_remote` output. --- nvm.sh | 10 +++++++--- test/fast/Unit tests/mocks/nvm_ls_remote.txt | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/nvm.sh b/nvm.sh index 7b4559f..622ff69 100644 --- a/nvm.sh +++ b/nvm.sh @@ -903,7 +903,7 @@ nvm_ls_remote_index_tab() { PATTERN="$(nvm_ensure_version_prefix "$PATTERN")" fi else - PATTERN=".*" + unset PATTERN fi ZSH_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then @@ -914,8 +914,12 @@ nvm_ls_remote_index_tab() { | command sed " 1d; s/^/$PREFIX/; - s/[[:blank:]].*//" \ - | nvm_grep -w "$PATTERN" \ + " \ + | command awk -v pattern="${PATTERN-}" '{ + if (!$1) { next } + if (pattern && tolower($1) !~ tolower(pattern)) { next } + if ($10 !~ /^\-?$/ && ! a[$10]++) print $1, $10; else print $1 + }' \ | $SORT_COMMAND)" if [ "$ZSH_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then unsetopt shwordsplit diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote.txt b/test/fast/Unit tests/mocks/nvm_ls_remote.txt index 0c98561..c6f2e8f 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote.txt @@ -251,7 +251,7 @@ v4.4.3 v4.4.4 v4.4.5 v4.4.6 -v4.4.7 +v4.4.7 Argon v5.0.0 v5.1.0 v5.1.1 From 01c8b04fd5e73c9c39e5b73220b1485d22a56432 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 18 Apr 2016 00:42:56 -0700 Subject: [PATCH 0646/1426] Format LTS version when present. --- nvm.sh | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 622ff69..973ea7a 100644 --- a/nvm.sh +++ b/nvm.sh @@ -979,6 +979,7 @@ nvm_checksum() { nvm_print_versions() { local VERSION + local LTS local FORMAT local NVM_CURRENT NVM_CURRENT=$(nvm_ls_current) @@ -986,7 +987,11 @@ nvm_print_versions() { if nvm_has_colors; then NVM_HAS_COLORS=1 fi - nvm_echo "$1" | while read -r VERSION; do + local LTS_LENGTH + local LTS_FORMAT + nvm_echo "$1" | while read -r VERSION_LINE; do + VERSION="${VERSION_LINE% *}" + LTS="${VERSION_LINE#* }" FORMAT='%15s' if [ "_$VERSION" = "_$NVM_CURRENT" ]; then if [ "${NVM_HAS_COLORS-}" = '1' ]; then @@ -1005,7 +1010,18 @@ nvm_print_versions() { FORMAT='%15s *' fi fi - command printf -- "$FORMAT\n" "$VERSION" + if [ "$LTS" != "$VERSION" ]; then + LTS=" (Latest LTS: $LTS)" + LTS_LENGTH="${#LTS}" + if [ "${NVM_HAS_COLORS-}" = '1' ]; then + LTS_FORMAT="\033[1;32m%${LTS_LENGTH}s\033[0m" + else + LTS_FORMAT="%${LTS_LENGTH}s" + fi + command printf -- "${FORMAT}${LTS_FORMAT}\n" "$VERSION" "$LTS" + else + command printf -- "${FORMAT}\n" "$VERSION" + fi done } From 005e29a22382c5fbc0edbaa8278614c52da88f74 Mon Sep 17 00:00:00 2001 From: Luke Childs Date: Sun, 17 Apr 2016 22:22:37 +0100 Subject: [PATCH 0647/1426] Check dir permissions before attempting to nvm uninstall --- nvm.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/nvm.sh b/nvm.sh index 0e1c9dc..b712838 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1828,6 +1828,17 @@ nvm() { NVM_PREFIX="$(nvm_node_prefix)" NVM_SUCCESS_MSG="Uninstalled node $VERSION" fi + + # Check version dir permissions + local FILES_WITHOUT_WRITE_PERMISIONS="$(find "$VERSION_PATH" -exec [ ! -w "{}" ] \; -exec echo "{}" \;)" + if [ "$FILES_WITHOUT_WRITE_PERMISIONS" ]; then + >&2 echo 'Cannot uninstall, incorrect permissions on installation folder.' + >&2 echo 'This is usually caused by running `npm install -g` as root. Run the following command as root to fix the permissions and then try again.' + >&2 echo + >&2 echo " chown -R $(whoami) \"$VERSION_PATH\"" + return 1 + fi + # Delete all files related to target version. command rm -rf "$NVM_DIR/src/$NVM_PREFIX-$VERSION" \ "$NVM_DIR/src/$NVM_PREFIX-$VERSION.tar.*" \ From 6fb528f4e49a673103ad669f0e49bd5acb919f16 Mon Sep 17 00:00:00 2001 From: Luke Childs Date: Sun, 17 Apr 2016 22:23:56 +0100 Subject: [PATCH 0648/1426] Add slow test to check nvm uninstall --- ...nvm uninstall 0.12.6\" uninstalls v0.12.6" | 28 +++++++++++++++++++ test/slow/nvm uninstall/setup_dir | 4 +++ test/slow/nvm uninstall/teardown_dir | 5 ++++ 3 files changed, 37 insertions(+) create mode 100755 "test/slow/nvm uninstall/Running \"nvm uninstall 0.12.6\" uninstalls v0.12.6" create mode 100755 test/slow/nvm uninstall/setup_dir create mode 100755 test/slow/nvm uninstall/teardown_dir diff --git "a/test/slow/nvm uninstall/Running \"nvm uninstall 0.12.6\" uninstalls v0.12.6" "b/test/slow/nvm uninstall/Running \"nvm uninstall 0.12.6\" uninstalls v0.12.6" new file mode 100755 index 0000000..9af0171 --- /dev/null +++ "b/test/slow/nvm uninstall/Running \"nvm uninstall 0.12.6\" uninstalls v0.12.6" @@ -0,0 +1,28 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +# Source nvm +. ../../../nvm.sh + +# Version to install/uninstall +NVM_TEST_VERSION=0.12.6 + +# Make sure it's not already here +[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION + +# Install it +nvm install $NVM_TEST_VERSION + +# Make sure it installed +nvm ls | grep "$NVM_TEST_VERSION" || die "Failed to install node" + +# Switch to another version so we can uninstall +nvm use 0.12.7 + +# Uninstall it +nvm uninstall $NVM_TEST_VERSION + +# Make sure it uninstalled +nvm ls | grep "$NVM_TEST_VERSION" +[ "$?" != "0" ] || die "Failed to uninstall node" diff --git a/test/slow/nvm uninstall/setup_dir b/test/slow/nvm uninstall/setup_dir new file mode 100755 index 0000000..f385d98 --- /dev/null +++ b/test/slow/nvm uninstall/setup_dir @@ -0,0 +1,4 @@ +#!/bin/sh + +. ../../../nvm.sh +nvm install 0.12.7 diff --git a/test/slow/nvm uninstall/teardown_dir b/test/slow/nvm uninstall/teardown_dir new file mode 100755 index 0000000..f505f21 --- /dev/null +++ b/test/slow/nvm uninstall/teardown_dir @@ -0,0 +1,5 @@ +#!/bin/sh + +. ../../../nvm.sh +nvm uninstall 0.12.7 +nvm deactivate From dff4f80f325146783162f57f6f26629bf240ef8d Mon Sep 17 00:00:00 2001 From: Luke Childs Date: Sun, 17 Apr 2016 22:26:09 +0100 Subject: [PATCH 0649/1426] Add fast test to check nvm uninstall with file permission error --- ..." with incorrect file permissions fails nicely" | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100755 "test/fast/Running \"nvm uninstall\" with incorrect file permissions fails nicely" diff --git "a/test/fast/Running \"nvm uninstall\" with incorrect file permissions fails nicely" "b/test/fast/Running \"nvm uninstall\" with incorrect file permissions fails nicely" new file mode 100755 index 0000000..1fad640 --- /dev/null +++ "b/test/fast/Running \"nvm uninstall\" with incorrect file permissions fails nicely" @@ -0,0 +1,14 @@ +#!/bin/sh + +cd ../.. +mkdir v0.0.1 +mkdir src/node-v0.0.1 + +sudo touch v0.0.1/sudo + +. ./nvm.sh + +RETURN_MESSAGE="$(nvm uninstall v0.0.1 2>&1)" +CHECK_FOR="Cannot uninstall, incorrect permissions on installation folder" + +test "${RETURN_MESSAGE#*$CHECK_FOR}" != "$RETURN_MESSAGE" || exit 1 From 5970a06b197085a7104121f0d78beedd33313d0e Mon Sep 17 00:00:00 2001 From: Luke Childs Date: Mon, 18 Apr 2016 22:08:40 +0100 Subject: [PATCH 0650/1426] Add slow test to check nvm uninstall with file permission error --- ...h incorrect file permissions fails nicely" | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100755 "test/slow/nvm uninstall/Running \"nvm uninstall\" with incorrect file permissions fails nicely" diff --git "a/test/slow/nvm uninstall/Running \"nvm uninstall\" with incorrect file permissions fails nicely" "b/test/slow/nvm uninstall/Running \"nvm uninstall\" with incorrect file permissions fails nicely" new file mode 100755 index 0000000..eff2bc4 --- /dev/null +++ "b/test/slow/nvm uninstall/Running \"nvm uninstall\" with incorrect file permissions fails nicely" @@ -0,0 +1,30 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +# Source nvm +. ../../../nvm.sh + +# Version to install/uninstall +NVM_TEST_VERSION=5.10.1 + +# Make sure it's not already here +[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION + +# Install it +nvm install $NVM_TEST_VERSION + +# Make sure it installed +nvm ls | grep "$NVM_TEST_VERSION" || die "Failed to install node" + +# Install global module as root +npm_path=$(which npm) +sudo "$npm_path" install jspm -g + +# Switch to another version so we can uninstall +nvm use 0.12.7 + +# Attempt to uninstall it +RETURN_MESSAGE="$(nvm uninstall $NVM_TEST_VERSION 2>&1)" +CHECK_FOR="Cannot uninstall, incorrect permissions on installation folder" +test "${RETURN_MESSAGE#*$CHECK_FOR}" != "$RETURN_MESSAGE" || die "Failed to show error message" From 3a2d35f1670f170167c773cc1f6a23196d58be5e Mon Sep 17 00:00:00 2001 From: Luke Childs Date: Tue, 19 Apr 2016 01:40:16 +0100 Subject: [PATCH 0651/1426] Check permissions in shell rather than using find -exec --- nvm.sh | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index b712838..926ca35 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1830,8 +1830,18 @@ nvm() { fi # Check version dir permissions - local FILES_WITHOUT_WRITE_PERMISIONS="$(find "$VERSION_PATH" -exec [ ! -w "{}" ] \; -exec echo "{}" \;)" - if [ "$FILES_WITHOUT_WRITE_PERMISIONS" ]; then + local PERMISSIONS_OK=true + check_file_permissions() { + for FILE in $1/* $1/.[!.]* $1/..?* ; do + if [ -d "$FILE" ]; then + check_file_permissions "$FILE" + elif [ -e "$FILE" ]; then + [ ! -w "$FILE" ] && PERMISSIONS_OK=false + fi + done + } + check_file_permissions "$VERSION_PATH" + if [ "$PERMISSIONS_OK" = false ]; then >&2 echo 'Cannot uninstall, incorrect permissions on installation folder.' >&2 echo 'This is usually caused by running `npm install -g` as root. Run the following command as root to fix the permissions and then try again.' >&2 echo From 755c39209e484f4f4bd3a2e197c66e6df0bc0b6f Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 18 Apr 2016 18:23:24 -0700 Subject: [PATCH 0652/1426] [Refactor] make `check_file_permissions` be pure instead of relying on a closure. Also, make it return early, to be a bit more efficient. (from #847) --- nvm.sh | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/nvm.sh b/nvm.sh index 926ca35..2b933bc 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1535,6 +1535,20 @@ nvm_is_natural_num() { esac } +# Check version dir permissions +nvm_check_file_permissions() { + for FILE in $1/* $1/.[!.]* $1/..?* ; do + if [ -d "$FILE" ]; then + if ! nvm_check_file_permissions "$FILE"; then + return 2 + fi + elif [ -e "$FILE" ] && [ ! -w "$FILE" ]; then + return 1 + fi + done + return 0 +} + nvm() { if [ $# -lt 1 ]; then nvm help @@ -1829,19 +1843,7 @@ nvm() { NVM_SUCCESS_MSG="Uninstalled node $VERSION" fi - # Check version dir permissions - local PERMISSIONS_OK=true - check_file_permissions() { - for FILE in $1/* $1/.[!.]* $1/..?* ; do - if [ -d "$FILE" ]; then - check_file_permissions "$FILE" - elif [ -e "$FILE" ]; then - [ ! -w "$FILE" ] && PERMISSIONS_OK=false - fi - done - } - check_file_permissions "$VERSION_PATH" - if [ "$PERMISSIONS_OK" = false ]; then + if ! nvm_check_file_permissions "$VERSION_PATH"; then >&2 echo 'Cannot uninstall, incorrect permissions on installation folder.' >&2 echo 'This is usually caused by running `npm install -g` as root. Run the following command as root to fix the permissions and then try again.' >&2 echo @@ -2384,7 +2386,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' nvm_ls_remote nvm_ls_remote_iojs nvm_ls_remote_index_tab \ nvm_ls nvm_remote_version nvm_remote_versions \ nvm_install_iojs_binary nvm_install_node_binary \ - nvm_install_node_source \ + nvm_install_node_source nvm_check_file_permissions \ nvm_version nvm_rc_version nvm_match_version \ nvm_ensure_default_set nvm_get_arch nvm_get_os \ nvm_print_implicit_alias nvm_validate_implicit_alias \ From ac18d018548efe4371064b02f69158e9cebc5f6e Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 18 Apr 2016 20:43:08 -0700 Subject: [PATCH 0653/1426] [Tests] update index.tab data mocks. --- .../fast/Unit tests/nodejs.org-dist-index.tab | 166 ++++++++++-------- test/fast/Unit tests/nvm_ls_remote | 5 +- 2 files changed, 99 insertions(+), 72 deletions(-) diff --git a/test/fast/Unit tests/nodejs.org-dist-index.tab b/test/fast/Unit tests/nodejs.org-dist-index.tab index 030ddb9..073bac7 100644 --- a/test/fast/Unit tests/nodejs.org-dist-index.tab +++ b/test/fast/Unit tests/nodejs.org-dist-index.tab @@ -1,18 +1,43 @@ version date files npm v8 uv zlib openssl modules lts +v5.10.1 2016-04-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.10.0 2016-04-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.9.1 2016-03-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.7.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.9.0 2016-03-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.7.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.8.0 2016-03-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.7.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.7.1 2016-03-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.7.0 2016-02-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - +v5.6.0 2016-02-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - +v5.5.0 2016-01-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - +v5.4.1 2016-01-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - +v5.4.0 2016-01-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - v5.3.0 2015-12-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - v5.2.0 2015-12-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 - v5.1.1 2015-12-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 - v5.1.0 2015-11-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2d 47 - v5.0.0 2015-10-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.6 4.6.85.28 1.7.5 1.2.8 1.0.2d 47 - +v4.4.3 2016-04-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.15.1 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon +v4.4.2 2016-04-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.15.0 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon +v4.4.1 2016-03-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.20 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon +v4.4.0 2016-03-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.20 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon +v4.3.2 2016-03-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon +v4.3.1 2016-02-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2f 46 Argon +v4.3.0 2016-02-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2f 46 Argon +v4.2.6 2016-01-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2e 46 Argon +v4.2.5 2016-01-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2e 46 Argon +v4.2.4 2015-12-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.12 4.5.103.35 1.7.5 1.2.8 1.0.2e 46 Argon v4.2.3 2015-12-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2e 46 Argon v4.2.2 2015-11-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 Argon v4.2.1 2015-10-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 Argon v4.2.0 2015-10-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 Argon v4.1.2 2015-10-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.4 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 - v4.1.1 2015-09-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.4 4.5.103.33 1.7.4 1.2.8 1.0.2d 46 - -v4.1.0 2015-09-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.3 4.5.103.33 1.7.4 1.2.8 1.0.2d 46 - +v4.1.0 2015-09-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.3 4.5.103.33 1.7.4 1.2.8 1.0.2d 46 - v4.0.0 2015-09-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.2 4.5.103.30 1.7.3 1.2.8 1.0.2d 46 - -v0.12.9 2015-12-03 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.14.9 3.28.71.19 1.6.1 1.2.8 1.0.1p 14 - +v0.12.13 2016-03-31 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.0 3.28.71.19 1.6.1 1.2.8 1.0.1s 14 - +v0.12.12 2016-03-08 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.14.9 3.28.71.19 1.6.1 1.2.8 1.0.1s 14 - +v0.12.11 2016-03-03 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.14.9 3.28.71.19 1.6.1 1.2.8 1.0.1s 14 - +v0.12.10 2016-02-09 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.14.9 3.28.71.19 1.6.1 1.2.8 1.0.1r 14 - +v0.12.9 2015-12-03 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.14.9 3.28.71.19 1.6.1 1.2.8 1.0.1q 14 - v0.12.8 2015-11-24 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.14.9 3.28.71.19 1.6.1 1.2.8 1.0.1p 14 - v0.12.7 2015-07-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.11.3 3.28.71.19 1.6.1 1.2.8 1.0.1p 14 - v0.12.6 2015-07-04 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.11.2 3.28.71.19 1.6.1 1.2.8 1.0.1o 14 - @@ -24,27 +49,30 @@ v0.12.1 2015-03-24 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,s v0.12.0 2015-02-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.5.1 3.28.73.0 1.0.2 1.2.8 1.0.1l 14 - v0.11.16 2015-01-30 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.3.0 3.28.73.0 1.0.2 1.2.8 1.0.1l 14 - v0.11.15 2015-01-20 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.1.6 3.28.73.0 1.0.2 1.2.8 1.0.1j 14 - -v0.11.14 2015-01-16 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.0.0 3.26.33.0 1.0.0 1.2.3 1.0.1i 14 - +v0.11.14 2014-08-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.0.0 3.26.33.0 1.0.0 1.2.3 1.0.1i 14 - v0.11.13 2014-05-02 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.9 3.25.30.0 0.11.25 1.2.3 1.0.1g 14 - -v0.11.12 2014-04-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.3 3.22.24.19 0.11.22 1.2.3 1.0.1f 14 - -v0.11.11 2014-04-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.25 3.22.24.19 0.11.18 1.2.3 1.0.1f 14 - -v0.11.10 2014-04-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.22 3.22.24.10 0.11.17 1.2.3 1.0.1e 13 - -v0.11.9 2013-12-02 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.15 3.22.24.5 0.11.15 1.2.3 1.0.1e 13 - -v0.11.8 2013-12-02 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.13 3.21.18.3 0.11.14 1.2.3 1.0.1e 13 - -v0.11.7 2013-10-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.8 3.20.17.0 0.11.13 1.2.3 1.0.1e 0x000C - -v0.11.6 2013-08-22 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x86-msi 1.3.8 3.20.14.1 0.11.8 1.2.3 1.0.1e 0x000C - -v0.11.5 2013-08-12 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.6 3.20.11.0 0.11.7 1.2.3 1.0.1e 0x000C - +v0.11.12 2014-03-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.3 3.22.24.19 0.11.22 1.2.3 1.0.1f 14 - +v0.11.11 2014-01-29 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.25 3.22.24.19 0.11.18 1.2.3 1.0.1f 14 - +v0.11.10 2013-12-31 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.22 3.22.24.10 0.11.17 1.2.3 1.0.1e 13 - +v0.11.9 2013-11-21 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.15 3.22.24.5 0.11.15 1.2.3 1.0.1e 13 - +v0.11.8 2013-10-30 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.13 3.21.18.3 0.11.14 1.2.3 1.0.1e 13 - +v0.11.7 2013-09-04 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.8 3.20.17.0 0.11.13 1.2.3 1.0.1e 0x000C - +v0.11.6 2013-08-21 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x86-msi 1.3.8 3.20.14.1 0.11.8 1.2.3 1.0.1e 0x000C - +v0.11.5 2013-08-07 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.6 3.20.11.0 0.11.7 1.2.3 1.0.1e 0x000C - v0.11.4 2013-07-12 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x86-msi 1.3.4 3.20.2.0 0.11.5 1.2.3 1.0.1e 0x000C - v0.11.3 2013-06-26 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.25 3.19.13.0 0.11.5 1.2.3 1.0.1e 0x000C - v0.11.2 2013-05-13 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.21 3.19.0.0 0.11.2 1.2.3 1.0.1e 0x000C - v0.11.1 2013-04-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.18 3.18.0.0 0.11.1 1.2.3 1.0.1e 0x000C - -v0.11.0 2013-04-01 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.15 3.17.13.0 0.10.3 1.2.3 1.0.1e 0x000C - -v0.10.41 2015-12-03 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.29 3.14.5.9 0.10.36 1.2.8 1.0.1p 11 - +v0.11.0 2013-03-28 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.15 3.17.13.0 0.10.3 1.2.3 1.0.1e 0x000C - +v0.10.44 2016-03-31 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.0 3.14.5.9 0.10.36 1.2.8 1.0.1s 11 - +v0.10.43 2016-03-03 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.29 3.14.5.9 0.10.36 1.2.8 1.0.1s 11 - +v0.10.42 2016-02-09 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.29 3.14.5.9 0.10.36 1.2.8 1.0.1r 11 - +v0.10.41 2015-12-03 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.29 3.14.5.9 0.10.36 1.2.8 1.0.1q 11 - v0.10.40 2015-07-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.36 1.2.8 1.0.1p 11 - v0.10.39 2015-06-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.36 1.2.8 1.0.1o 11 - v0.10.38 2015-03-23 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.36 1.2.8 1.0.1m 11 - -v0.10.37 2015-03-12 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.36 1.2.8 1.0.1l 11 - -v0.10.36 2015-01-30 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.30 1.2.8 1.0.1l 11 - +v0.10.37 2015-03-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.36 1.2.8 1.0.1l 11 - +v0.10.36 2015-01-26 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.30 1.2.8 1.0.1l 11 - v0.10.35 2014-12-22 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.30 1.2.8 1.0.1j 11 - v0.10.34 2014-12-17 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.30 1.2.8 1.0.1j 11 - v0.10.33 2014-10-21 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.29 1.2.3 1.0.1j 11 - @@ -52,47 +80,47 @@ v0.10.32 2014-09-16 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src, v0.10.31 2014-08-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.23 3.14.5.9 0.10.28 1.2.3 1.0.1i 11 - v0.10.30 2014-07-31 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.21 3.14.5.9 0.10.28 1.2.3 1.0.1h 11 - v0.10.29 2014-06-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.14 3.14.5.9 0.10.27 1.2.3 1.0.1h 11 - -v0.10.28 2014-06-13 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.9 3.14.5.9 0.10.27 1.2.3 1.0.1g 11 - -v0.10.27 2014-08-07 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.8 3.14.5.9 0.10.27 1.2.3 1.0.1g 11 - -v0.10.26 2014-04-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.3 3.14.5.9 0.10.25 1.2.3 1.0.1e 11 - -v0.10.25 2014-04-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.24 3.14.5.9 0.10.23 1.2.3 1.0.1e 11 - +v0.10.28 2014-05-02 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.9 3.14.5.9 0.10.27 1.2.3 1.0.1g 11 - +v0.10.27 2014-05-01 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.8 3.14.5.9 0.10.27 1.2.3 1.0.1g 11 - +v0.10.26 2014-02-18 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.3 3.14.5.9 0.10.25 1.2.3 1.0.1e 11 - +v0.10.25 2014-01-23 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.24 3.14.5.9 0.10.23 1.2.3 1.0.1e 11 - v0.10.24 2013-12-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.21 3.14.5.9 0.10.21 1.2.3 1.0.1e 11 - v0.10.23 2013-12-12 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.17 3.14.5.9 0.10.20 1.2.3 1.0.1e 11 - -v0.10.22 2013-12-02 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.14 3.14.5.9 0.10.19 1.2.3 1.0.1e 11 - +v0.10.22 2013-11-12 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.14 3.14.5.9 0.10.19 1.2.3 1.0.1e 11 - v0.10.21 2013-10-18 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.11 3.14.5.9 0.10.18 1.2.3 1.0.1e 11 - v0.10.20 2013-09-30 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.11 3.14.5.9 0.10.17 1.2.3 1.0.1e 11 - -v0.10.19 2013-09-26 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.11 3.14.5.9 0.10.17 1.2.3 1.0.1e 11 - -v0.10.18 2013-10-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.8 3.14.5.9 0.10.15 1.2.3 1.0.1e 11 - -v0.10.17 2013-08-25 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.8 3.14.5.9 0.10.14 1.2.3 1.0.1e 11 - +v0.10.19 2013-09-24 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.11 3.14.5.9 0.10.17 1.2.3 1.0.1e 11 - +v0.10.18 2013-09-04 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.8 3.14.5.9 0.10.15 1.2.3 1.0.1e 11 - +v0.10.17 2013-08-21 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.8 3.14.5.9 0.10.14 1.2.3 1.0.1e 11 - v0.10.16 2013-08-16 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.8 3.14.5.9 0.10.13 1.2.3 1.0.1e 11 - -v0.10.15 2013-08-12 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.5 3.14.5.9 0.10.13 1.2.3 1.0.1e 11 - -v0.10.14 2013-08-12 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.5 3.14.5.9 0.10.13 1.2.3 1.0.1e 11 - -v0.10.13 2013-07-13 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.2 3.14.5.9 0.10.12 1.2.3 1.0.1e 11 - +v0.10.15 2013-07-25 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.5 3.14.5.9 0.10.13 1.2.3 1.0.1e 11 - +v0.10.14 2013-07-25 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.5 3.14.5.9 0.10.13 1.2.3 1.0.1e 11 - +v0.10.13 2013-07-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.2 3.14.5.9 0.10.12 1.2.3 1.0.1e 11 - v0.10.12 2013-06-18 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.32 3.14.5.9 0.10.11 1.2.3 1.0.1e 11 - v0.10.11 2013-06-13 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.30 3.14.5.9 0.10.11 1.2.3 1.0.1e 11 - v0.10.10 2013-06-04 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.25 3.14.5.9 0.10.10 1.2.3 1.0.1e 11 - -v0.10.9 2013-06-02 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.24 3.14.5.9 0.10.9 1.2.3 1.0.1e 11 - +v0.10.9 2013-05-30 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.24 3.14.5.9 0.10.9 1.2.3 1.0.1e 11 - v0.10.8 2013-05-24 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.23 3.14.5.9 0.10.8 1.2.3 1.0.1e 11 - v0.10.7 2013-05-17 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.21 3.14.5.8 0.10.7 1.2.3 1.0.1e 11 - v0.10.6 2013-05-14 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.18 3.14.5.8 0.10.5 1.2.3 1.0.1e 11 - -v0.10.5 2013-04-26 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.18 3.14.5.8 0.10.5 1.2.3 1.0.1e 11 - -v0.10.4 2013-04-26 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.18 3.14.5.8 0.10.4 1.2.3 1.0.1e 11 - -v0.10.3 2013-04-26 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.17 3.14.5.8 0.10.3 1.2.3 1.0.1e 0x000B - +v0.10.5 2013-04-23 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.18 3.14.5.8 0.10.5 1.2.3 1.0.1e 11 - +v0.10.4 2013-04-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.18 3.14.5.8 0.10.4 1.2.3 1.0.1e 11 - +v0.10.3 2013-04-03 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.17 3.14.5.8 0.10.3 1.2.3 1.0.1e 0x000B - v0.10.2 2013-03-28 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.15 3.14.5.8 0.10.3 1.2.3 1.0.1e 0x000B - v0.10.1 2013-03-21 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.15 3.14.5.8 0.10 1.2.3 1.0.1e 0x000B - v0.10.0 2013-03-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.14 3.14.5.8 0.9 1.2.3 1.0.1e 0x000B - -v0.9.12 2013-03-07 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.12 3.14.5.8 0.9 1.2.3 1.0.1e 0x000B - +v0.9.12 2013-03-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.12 3.14.5.8 0.9 1.2.3 1.0.1e 0x000B - v0.9.11 2013-03-01 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.12 3.14.5.0 0.9 1.2.3 1.0.1e 0x000B - -v0.9.10 2013-02-25 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.12 3.15.11.15 0.9 1.2.3 1.0.1c 0x000B - +v0.9.10 2013-02-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.12 3.15.11.15 0.9 1.2.3 1.0.1c 0x000B - v0.9.9 2013-02-07 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.10 3.15.11.10 0.9 1.2.3 1.0.1c 0x000B - -v0.9.8 2013-02-02 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.3 3.15.11.10 0.9 1.2.3 1.0.1c 0x000A - +v0.9.8 2013-01-24 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.3 3.15.11.10 0.9 1.2.3 1.0.1c 0x000A - v0.9.7 2013-01-18 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.2 3.15.11.7 0.9 1.2.3 1.0.1c 0x000A - v0.9.6 2013-01-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.0 3.15.11.5 0.9 1.2.3 1.0.1c 0x000A - v0.9.5 2012-12-30 linux-x64,linux-x86,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.70 3.13.7.4 0.9 1.2.3 1.0.1c 0x000A - v0.9.4 2012-12-21 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.70 3.13.7.4 0.9 1.2.3 1.0.1c 0x000A - -v0.9.3 2015-10-14 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.64 3.13.7.4 0.9 1.2.3 1.0.1c 0x000A - +v0.9.3 2012-10-24 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.64 3.13.7.4 0.9 1.2.3 1.0.1c 0x000A - v0.9.2 2012-09-17 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.61 3.11.10.22 0.9 1.2.3 1.0.1c 0x000A - -v0.9.1 2012-09-13 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.59 3.11.10.19 0.9 1.2.3 1.0.0f 0x000A - +v0.9.1 2012-08-28 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.59 3.11.10.19 0.9 1.2.3 1.0.0f 0x000A - v0.9.0 2012-07-20 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.44 3.11.10.15 0.9 1.2.3 1.0.0f 1 - v0.8.28 2014-07-31 linux-x64,linux-x86,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.30 3.11.10.26 0.8 1.2.3 1.0.0f 1 - v0.8.27 2014-06-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x86-msi 1.2.30 3.11.10.26 0.8 1.2.3 1.0.0f 1 - @@ -100,26 +128,26 @@ v0.8.26 2013-10-18 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,s v0.8.25 2013-06-13 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.30 3.11.10.25 0.8 1.2.3 1.0.0f 1 - v0.8.24 2013-06-03 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.24 3.11.10.25 0.8 1.2.3 1.0.0f 1 - v0.8.23 2013-04-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.18 3.11.10.25 0.8 1.2.3 1.0.0f 1 - -v0.8.22 2015-09-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.14 3.11.10.25 0.8 1.2.3 1.0.0f 1 - +v0.8.22 2013-03-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.14 3.11.10.25 0.8 1.2.3 1.0.0f 1 - v0.8.21 2013-02-25 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.11 3.11.10.25 0.8 1.2.3 1.0.0f 1 - v0.8.20 2013-02-15 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.11 3.11.10.25 0.8 1.2.3 1.0.0f 1 - -v0.8.19 2015-09-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.10 3.11.10.25 0.8 1.2.3 1.0.0f 1 - +v0.8.19 2013-02-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.10 3.11.10.25 0.8 1.2.3 1.0.0f 1 - v0.8.18 2013-01-18 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.2 3.11.10.25 0.8 1.2.3 1.0.0f 1 - -v0.8.17 2013-01-13 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.0 3.11.10.25 0.8 1.2.3 1.0.0f 1 - -v0.8.16 2015-09-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.69 3.11.10.25 0.8 1.2.3 1.0.0f 1 - +v0.8.17 2013-01-10 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.0 3.11.10.25 0.8 1.2.3 1.0.0f 1 - +v0.8.16 2012-12-12 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.69 3.11.10.25 0.8 1.2.3 1.0.0f 1 - v0.8.15 2012-11-26 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.66 3.11.10.25 0.8 1.2.3 1.0.0f 1 - -v0.8.14 2015-09-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.65 3.11.10.25 0.8 1.2.3 1.0.0f 1 - -v0.8.13 2015-09-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.65 3.11.10.25 0.8 1.2.3 1.0.0f 1 - -v0.8.12 2015-09-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.63 3.11.10.22 0.8 1.2.3 1.0.0f 1 - -v0.8.11 2015-09-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.62 3.11.10.22 0.8 1.2.3 1.0.0f 1 - -v0.8.10 2015-09-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.62 3.11.10.22 0.8 1.2.3 1.0.0f 1 - -v0.8.9 2015-09-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.61 3.11.10.22 0.8 1.2.3 1.0.0f 1 - -v0.8.8 2015-09-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 1.1.59 3.11.10.19 0.8 1.2.3 1.0.0f 1 - -v0.8.7 2015-09-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.49 3.11.10.17 0.8 1.2.3 1.0.0f 1 - +v0.8.14 2012-10-25 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.65 3.11.10.25 0.8 1.2.3 1.0.0f 1 - +v0.8.13 2012-10-25 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.65 3.11.10.25 0.8 1.2.3 1.0.0f 1 - +v0.8.12 2012-10-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.63 3.11.10.22 0.8 1.2.3 1.0.0f 1 - +v0.8.11 2012-09-27 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.62 3.11.10.22 0.8 1.2.3 1.0.0f 1 - +v0.8.10 2012-09-25 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.62 3.11.10.22 0.8 1.2.3 1.0.0f 1 - +v0.8.9 2012-09-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.61 3.11.10.22 0.8 1.2.3 1.0.0f 1 - +v0.8.8 2012-08-22 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 1.1.59 3.11.10.19 0.8 1.2.3 1.0.0f 1 - +v0.8.7 2012-08-15 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.49 3.11.10.17 0.8 1.2.3 1.0.0f 1 - v0.8.6 2012-08-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.48 3.11.10.17 0.8 1.2.3 1.0.0f 1 - -v0.8.5 2015-09-06 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.46 3.11.10.17 0.8 1.2.3 1.0.0f 1 - -v0.8.4 2015-09-06 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.45 3.11.10.17 0.8 1.2.3 1.0.0f 1 - -v0.8.3 2015-09-06 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.43 3.11.10.15 0.8 1.2.3 1.0.0f 1 - +v0.8.5 2012-08-02 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.46 3.11.10.17 0.8 1.2.3 1.0.0f 1 - +v0.8.4 2012-07-24 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.45 3.11.10.17 0.8 1.2.3 1.0.0f 1 - +v0.8.3 2012-07-17 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.43 3.11.10.15 0.8 1.2.3 1.0.0f 1 - v0.8.2 2012-07-09 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.36 3.11.10.14 0.8 1.2.3 1.0.0f 1 - v0.8.1 2012-06-29 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.33 3.11.10.12 0.8 1.2.3 1.0.0f 1 - v0.8.0 2012-06-22 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.32 3.11.10.10 0.8 1.2.3 1.0.0f 1 - @@ -129,31 +157,31 @@ v0.7.10 2012-06-11 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.25 3.9.24.31 0.6 v0.7.9 2012-05-29 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.23 3.11.1.0 0.6 1.2.3 1.0.0f 1 - v0.7.8 2012-04-18 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.18 3.9.24.9 0.6 1.2.3 1.0.0f 1 - v0.7.7 2012-03-30 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.15 3.9.24.7 0.6 1.2.3 0.9.8r 1 - -v0.7.6 2012-03-31 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.8 3.9.17.0 0.6 1.2.3 0.9.8r 1 - -v0.7.5 2012-03-31 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.1 3.9.5.0 0.6 1.2.3 0.9.8r 1 - -v0.7.4 2012-03-31 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.1 3.9.5.0 0.6 1.2.3 0.9.8r 1 - -v0.7.3 2012-03-31 osx-x64-pkg,src,win-x86-exe 1.1.0-3 3.9.2.0 0.6 1.2.3 0.9.8r 1 - -v0.7.2 2012-03-31 osx-x64-pkg,src,win-x86-exe 1.1.0-3 3.8.9.0 0.6 1.2.3 0.9.8r 1 - +v0.7.6 2012-03-13 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.8 3.9.17.0 0.6 1.2.3 0.9.8r 1 - +v0.7.5 2012-02-23 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.1 3.9.5.0 0.6 1.2.3 0.9.8r 1 - +v0.7.4 2012-02-14 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.1 3.9.5.0 0.6 1.2.3 0.9.8r 1 - +v0.7.3 2012-02-07 osx-x64-pkg,src,win-x86-exe 1.1.0-3 3.9.2.0 0.6 1.2.3 0.9.8r 1 - +v0.7.2 2012-02-01 osx-x64-pkg,src,win-x86-exe 1.1.0-3 3.8.9.0 0.6 1.2.3 0.9.8r 1 - v0.7.1 2012-01-23 osx-x64-pkg,src,win-x86-exe 1.1.0-2 3.8.8.0 0.6 1.2.3 0.9.8r 1 - v0.7.0 2012-01-17 osx-x64-pkg,src,win-x86-exe 1.1.0-2 3.8.6.0 0.6 1.2.3 0.9.8r 1 - v0.6.21 2012-08-03 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.37 3.6.6.25 0.6 1.2.3 0.9.8r 1 - v0.6.20 2012-07-10 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.37 3.6.6.25 0.6 1.2.3 0.9.8r 1 - -v0.6.19 2012-06-08 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.24 3.6.6.25 0.6 1.2.3 0.9.8r 1 - +v0.6.19 2012-06-06 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.24 3.6.6.25 0.6 1.2.3 0.9.8r 1 - v0.6.18 2012-05-14 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.21 3.6.6.25 0.6 1.2.3 0.9.8r 1 - v0.6.17 2012-05-04 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.21 3.6.6.25 0.6 1.2.3 0.9.8r 1 - v0.6.16 2012-04-27 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.19 3.6.6.25 0.6 1.2.3 0.9.8r 1 - -v0.6.15 2012-04-09 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.16 3.6.6.24 0.6 1.2.3 0.9.8r 1 - +v0.6.15 2012-04-08 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.16 3.6.6.24 0.6 1.2.3 0.9.8r 1 - v0.6.14 2012-03-23 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.12 3.6.6.24 0.6 1.2.3 0.9.8r 1 - -v0.6.13 2012-03-31 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.9 3.6.6.24 0.6 1.2.3 0.9.8r 1 - +v0.6.13 2012-03-15 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.9 3.6.6.24 0.6 1.2.3 0.9.8r 1 - v0.6.12 2012-03-02 osx-x64-pkg,src,win-x86-exe 1.1.4 3.6.6.24 0.6 1.2.3 0.9.8r 1 - -v0.6.11 2012-02-17 osx-x64-pkg,src,win-x86-exe 1.1.1 3.6.6.20 0.6 1.2.3 0.9.8r 1 - -v0.6.10 2012-02-04 osx-x64-pkg,src,win-x86-exe 1.1.0-3 3.6.6.20 0.6 1.2.3 0.9.8r 1 - +v0.6.11 2012-02-08 osx-x64-pkg,src,win-x86-exe 1.1.1 3.6.6.20 0.6 1.2.3 0.9.8r 1 - +v0.6.10 2012-02-03 osx-x64-pkg,src,win-x86-exe 1.1.0-3 3.6.6.20 0.6 1.2.3 0.9.8r 1 - v0.6.9 2012-01-27 osx-x64-pkg,src,win-x86-exe 1.1.0-3 3.6.6.19 0.6 1.2.3 0.9.8r 1 - -v0.6.8 2012-01-23 osx-x64-pkg,src,win-x86-exe 1.1.0-2 3.6.6.19 0.6 1.2.3 0.9.8r 1 - +v0.6.8 2012-01-20 osx-x64-pkg,src,win-x86-exe 1.1.0-2 3.6.6.19 0.6 1.2.3 0.9.8r 1 - v0.6.7 2012-01-07 osx-x64-pkg,src,win-x86-exe 1.1.0-beta-10 3.6.6.15 0.6 1.2.3 0.9.8r 1 - -v0.6.6 2012-03-31 osx-x64-pkg,src,win-x86-exe 1.1.0-beta-4 3.6.6.14 0.6 1.2.3 0.9.8r 1 - -v0.6.5 2012-03-31 osx-x64-pkg,src,win-x86-exe 1.1.0-alpha-6 3.6.6.11 0.6 1.2.3 0.9.8r 1 - -v0.6.4 2011-12-03 osx-x64-pkg,src,win-x86-exe 1.1.0-alpha-6 3.6.6.8 0.6 1.2.3 0.9.8r 1 - +v0.6.6 2011-12-15 osx-x64-pkg,src,win-x86-exe 1.1.0-beta-4 3.6.6.14 0.6 1.2.3 0.9.8r 1 - +v0.6.5 2011-12-04 osx-x64-pkg,src,win-x86-exe 1.1.0-alpha-6 3.6.6.11 0.6 1.2.3 0.9.8r 1 - +v0.6.4 2011-12-02 osx-x64-pkg,src,win-x86-exe 1.1.0-alpha-6 3.6.6.8 0.6 1.2.3 0.9.8r 1 - v0.6.3 2011-11-25 osx-x64-pkg,src,win-x86-exe 1.1.0-alpha-2 3.6.6.8 0.6 1.2.3 0.9.8r 1 - v0.6.2 2011-11-18 osx-x64-pkg,src,win-x86-exe - 3.6.6.8 0.6 1.2.3 0.9.8r 1 - v0.6.1 2011-11-11 osx-x64-pkg,src,win-x86-exe - 3.6.6.7 0.1 1.2.3 0.9.8r 1 - @@ -169,7 +197,7 @@ v0.5.3 2011-08-26 src,win-x86-exe - 3.4.14.0 0.1 - - 1 - v0.5.2 2011-08-26 src,win-x86-exe - 3.4.14.0 0.1 - - 1 - v0.5.1 2011-08-26 src,win-x86-exe - 3.4.10.0 0.1 - - 1 - v0.5.0 2011-08-26 src - 3.1.8.25 - - - 1 - -v0.4.12 2015-10-17 src - 3.1.8.26 - - - 1 - +v0.4.12 2011-09-15 src - 3.1.8.26 - - - 1 - v0.4.11 2011-08-26 src - 3.1.8.26 - - - 1 - v0.4.10 2011-08-26 src - 3.1.8.26 - - - 1 - v0.4.9 2011-08-26 src - 3.1.8.25 - - - 1 - @@ -198,10 +226,10 @@ v0.2.3 2011-08-26 src - 2.3.8.0 - - - 1 - v0.2.2 2011-08-26 src - 2.3.8.0 - - - 1 - v0.2.1 2011-08-26 src - 2.3.8.0 - - - 1 - v0.2.0 2011-08-26 src - 2.3.8.0 - - - 1 - -v0.1.104 2011-08-26 src - 2.3.6.1 - - - 1 - -v0.1.103 2011-08-26 src - 2.3.5.0 - - - 1 - -v0.1.102 2011-08-26 src - 2.3.2.0 - - - 1 - -v0.1.101 2011-08-26 src - 2.3.0.0 - - - 1 - +v0.1.104 2011-08-26 src - 2.3.6.1 - - - - - +v0.1.103 2011-08-26 src - 2.3.5.0 - - - - - +v0.1.102 2011-08-26 src - 2.3.2.0 - - - - - +v0.1.101 2011-08-26 src - 2.3.0.0 - - - - - v0.1.100 2011-08-26 src - 2.2.21.0 - - - - - v0.1.99 2011-08-26 src - 2.2.18.0 - - - - - v0.1.98 2011-08-26 src - 2.2.16.0 - - - - - diff --git a/test/fast/Unit tests/nvm_ls_remote b/test/fast/Unit tests/nvm_ls_remote index dbb6358..95759e1 100755 --- a/test/fast/Unit tests/nvm_ls_remote +++ b/test/fast/Unit tests/nvm_ls_remote @@ -38,7 +38,7 @@ v0.3.8" # Sanity checks OUTPUT="$(nvm_print_implicit_alias remote stable)" -EXPECTED_OUTPUT="5.3" +EXPECTED_OUTPUT="5.10" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_print_implicit_alias remote stable did not output $EXPECTED_OUTPUT; got $OUTPUT" OUTPUT="$(nvm_print_implicit_alias remote unstable)" @@ -46,7 +46,7 @@ EXPECTED_OUTPUT="0.11" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_print_implicit_alias remote unstable did not output $EXPECTED_OUTPUT; got $OUTPUT" OUTPUT="$(nvm_ls_remote stable)" -EXPECTED_OUTPUT="v5.3.0" +EXPECTED_OUTPUT="v5.10.1" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote stable did not output $EXPECTED_OUTPUT; got $OUTPUT" OUTPUT="$(nvm_ls_remote unstable)" @@ -54,4 +54,3 @@ EXPECTED_OUTPUT="v0.11.16" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote unstable did not output $EXPECTED_OUTPUT; got $OUTPUT" cleanup - From 96afff7af2c3bd20bc9d0aa610ba888b20f163ea Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 19 Apr 2016 22:49:49 -0700 Subject: [PATCH 0654/1426] =?UTF-8?q?[Tests]=20Set=20up=20=E2=80=9Cmocks?= =?UTF-8?q?=E2=80=9D=20directory,=20and=20updater=20script.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{ => mocks}/iojs.org-dist-index.tab | 0 .../{ => mocks}/nodejs.org-dist-index.tab | 0 test/fast/Unit tests/nvm_ls_remote | 2 +- test/fast/Unit tests/nvm_ls_remote_iojs | 2 +- update_test_mocks.sh | 17 +++++++++++++++++ 5 files changed, 19 insertions(+), 2 deletions(-) rename test/fast/Unit tests/{ => mocks}/iojs.org-dist-index.tab (100%) rename test/fast/Unit tests/{ => mocks}/nodejs.org-dist-index.tab (100%) create mode 100755 update_test_mocks.sh diff --git a/test/fast/Unit tests/iojs.org-dist-index.tab b/test/fast/Unit tests/mocks/iojs.org-dist-index.tab similarity index 100% rename from test/fast/Unit tests/iojs.org-dist-index.tab rename to test/fast/Unit tests/mocks/iojs.org-dist-index.tab diff --git a/test/fast/Unit tests/nodejs.org-dist-index.tab b/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab similarity index 100% rename from test/fast/Unit tests/nodejs.org-dist-index.tab rename to test/fast/Unit tests/mocks/nodejs.org-dist-index.tab diff --git a/test/fast/Unit tests/nvm_ls_remote b/test/fast/Unit tests/nvm_ls_remote index 95759e1..ed4e2c1 100755 --- a/test/fast/Unit tests/nvm_ls_remote +++ b/test/fast/Unit tests/nvm_ls_remote @@ -9,7 +9,7 @@ cleanup() { . ../../../nvm.sh # sample output at the time the test was written -TAB_PATH="$PWD/nodejs.org-dist-index.tab" +TAB_PATH="$PWD/mocks/nodejs.org-dist-index.tab" nvm_download() { cat "$TAB_PATH" } diff --git a/test/fast/Unit tests/nvm_ls_remote_iojs b/test/fast/Unit tests/nvm_ls_remote_iojs index d93e077..03bb417 100755 --- a/test/fast/Unit tests/nvm_ls_remote_iojs +++ b/test/fast/Unit tests/nvm_ls_remote_iojs @@ -9,7 +9,7 @@ cleanup() { . ../../../nvm.sh # sample output at the time the test was written -TAB_PATH="$PWD/iojs.org-dist-index.tab" +TAB_PATH="$PWD/mocks/iojs.org-dist-index.tab" nvm_download() { cat "$TAB_PATH" } diff --git a/update_test_mocks.sh b/update_test_mocks.sh new file mode 100755 index 0000000..7f42195 --- /dev/null +++ b/update_test_mocks.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +set -e + +echo 'Updating test mocks...' + +MOCKS_DIR="$PWD/test/fast/Unit tests/mocks" + +echo "creating $MOCKS_DIR" +mkdir -p MOCKS_DIR + +. "$NVM_DIR/nvm.sh" + +nvm_download -L -s "$NVM_NODEJS_ORG_MIRROR/index.tab" -o - > "$MOCKS_DIR/nodejs.org-dist-index.tab" +nvm_download -L -s "$NVM_IOJS_ORG_MIRROR/index.tab" -o - > "$MOCKS_DIR/iojs.org-dist-index.tab" + +echo "done! Don't forget to git commit them." From cb326cb19d27f366cd8ba1bc2b18cdb790d1d053 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 22 Apr 2016 10:25:47 -0700 Subject: [PATCH 0655/1426] For now, keep the grep to do proper filtering --- nvm.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/nvm.sh b/nvm.sh index 973ea7a..4a33cf8 100644 --- a/nvm.sh +++ b/nvm.sh @@ -920,6 +920,7 @@ nvm_ls_remote_index_tab() { if (pattern && tolower($1) !~ tolower(pattern)) { next } if ($10 !~ /^\-?$/ && ! a[$10]++) print $1, $10; else print $1 }' \ + | nvm_grep -w "${PATTERN:-.*}" \ | $SORT_COMMAND)" if [ "$ZSH_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then unsetopt shwordsplit From ae07c3c3450586f26c2fee925413e94e6533c392 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 23 Apr 2016 23:47:25 -0700 Subject: [PATCH 0656/1426] Add support for `nvm ls-remote --lts` --- nvm.sh | 57 +++- .../mocks/nvm_ls_remote LTS argon.txt | 278 ++++++++++++++++++ .../Unit tests/mocks/nvm_ls_remote LTS.txt | 18 ++ test/fast/Unit tests/mocks/nvm_ls_remote.txt | 34 +-- test/fast/Unit tests/nvm_ls_remote | 17 +- update_test_mocks.sh | 2 + 6 files changed, 371 insertions(+), 35 deletions(-) create mode 100644 test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt create mode 100644 test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt diff --git a/nvm.sh b/nvm.sh index 4a33cf8..6c72cae 100644 --- a/nvm.sh +++ b/nvm.sh @@ -858,14 +858,16 @@ nvm_ls_remote() { else PATTERN=".*" fi - nvm_ls_remote_index_tab node std "$NVM_NODEJS_ORG_MIRROR" "$PATTERN" + NVM_LTS="${NVM_LTS-}" nvm_ls_remote_index_tab node std "$NVM_NODEJS_ORG_MIRROR" "$PATTERN" } nvm_ls_remote_iojs() { - nvm_ls_remote_index_tab iojs std "$NVM_IOJS_ORG_MIRROR" "$1" + NVM_LTS="${NVM_LTS-}" nvm_ls_remote_index_tab iojs std "$NVM_IOJS_ORG_MIRROR" "$1" } nvm_ls_remote_index_tab() { + local LTS + LTS="${NVM_LTS-}" if [ "$#" -lt 4 ]; then nvm_err 'not enough arguments' return 5 @@ -915,10 +917,11 @@ nvm_ls_remote_index_tab() { 1d; s/^/$PREFIX/; " \ - | command awk -v pattern="${PATTERN-}" '{ + | command awk -v pattern="${PATTERN-}" -v lts="${LTS-}" '{ if (!$1) { next } if (pattern && tolower($1) !~ tolower(pattern)) { next } - if ($10 !~ /^\-?$/ && ! a[$10]++) print $1, $10; else print $1 + if (lts == "*" && $10 ~ /^\-?$/) { next } + if ($10 !~ /^\-?$/) print $1, $10; else print $1 }' \ | nvm_grep -w "${PATTERN:-.*}" \ | $SORT_COMMAND)" @@ -1012,7 +1015,7 @@ nvm_print_versions() { fi fi if [ "$LTS" != "$VERSION" ]; then - LTS=" (Latest LTS: $LTS)" + LTS=" (LTS: $LTS)" LTS_LENGTH="${#LTS}" if [ "${NVM_HAS_COLORS-}" = '1' ]; then LTS_FORMAT="\033[1;32m%${LTS_LENGTH}s\033[0m" @@ -1791,9 +1794,11 @@ nvm() { nvm_echo ' nvm run [--silent] [] Run `node` on with as arguments. Uses .nvmrc if available' nvm_echo ' nvm current Display currently activated version' nvm_echo ' nvm ls List installed versions' - nvm_echo ' nvm ls List versions matching a given description' + nvm_echo ' nvm ls List versions matching a given ' nvm_echo ' nvm ls-remote List remote versions available for install' + nvm_echo ' --lts When listing, only show LTS (long-term support) versions' nvm_echo ' nvm ls-remote List remote versions available for install, matching a given ' + nvm_echo ' --lts When listing, only show LTS (long-term support) versions' nvm_echo ' nvm version Resolve the given description to a single local version' nvm_echo ' nvm version-remote Resolve the given description to a single remote version' nvm_echo ' nvm deactivate Undo effects of `nvm` on current shell' @@ -2370,19 +2375,39 @@ nvm() { return $NVM_LS_EXIT_CODE ;; "ls-remote" | "list-remote" ) - local PATTERN - PATTERN="${2-}" + local LTS local NVM_IOJS_PREFIX NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" local NVM_NODE_PREFIX NVM_NODE_PREFIX="$(nvm_node_prefix)" + local PATTERN local NVM_FLAVOR - case "_$PATTERN" in - "_$NVM_IOJS_PREFIX" | "_$NVM_NODE_PREFIX" ) - NVM_FLAVOR="$PATTERN" - PATTERN="$3" - ;; - esac + while [ $# -gt 1 ] + do + case "$2" in + --lts) + LTS='*' + ;; + --*) + nvm_err "Unsupported option \"$2\"." + return 55; + ;; + *) + if [ -z "$PATTERN" ]; then + PATTERN="${2-}" + if [ -z "$NVM_FLAVOR" ]; then + case "_$PATTERN" in + "_$NVM_IOJS_PREFIX" | "_$NVM_NODE_PREFIX") + NVM_FLAVOR="$PATTERN" + PATTERN="" + ;; + esac + fi + fi + ;; + esac + shift + done local NVM_LS_REMOTE_EXIT_CODE NVM_LS_REMOTE_EXIT_CODE=0 @@ -2392,7 +2417,7 @@ nvm() { NVM_LS_REMOTE_POST_MERGED_OUTPUT='' if [ "_$NVM_FLAVOR" != "_$NVM_IOJS_PREFIX" ]; then local NVM_LS_REMOTE_OUTPUT - NVM_LS_REMOTE_OUTPUT=$(nvm_ls_remote "$PATTERN") + NVM_LS_REMOTE_OUTPUT=$(NVM_LTS="${LTS-}" nvm_ls_remote "$PATTERN") # split output into two NVM_LS_REMOTE_PRE_MERGED_OUTPUT="${NVM_LS_REMOTE_OUTPUT%%v4\.0\.0*}" NVM_LS_REMOTE_POST_MERGED_OUTPUT="${NVM_LS_REMOTE_OUTPUT#$NVM_LS_REMOTE_PRE_MERGED_OUTPUT}" @@ -2404,7 +2429,7 @@ nvm() { local NVM_LS_REMOTE_IOJS_OUTPUT NVM_LS_REMOTE_IOJS_OUTPUT='' if [ "_$NVM_FLAVOR" != "_$NVM_NODE_PREFIX" ]; then - NVM_LS_REMOTE_IOJS_OUTPUT=$(nvm_ls_remote_iojs "$PATTERN") + NVM_LS_REMOTE_IOJS_OUTPUT=$(NVM_LTS="${LTS-}" nvm_ls_remote_iojs "$PATTERN") NVM_LS_REMOTE_IOJS_EXIT_CODE=$? fi diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt b/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt new file mode 100644 index 0000000..e8c3e5f --- /dev/null +++ b/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt @@ -0,0 +1,278 @@ +v0.1.14 +v0.1.15 +v0.1.16 +v0.1.17 +v0.1.18 +v0.1.19 +v0.1.20 +v0.1.21 +v0.1.22 +v0.1.23 +v0.1.24 +v0.1.25 +v0.1.26 +v0.1.27 +v0.1.28 +v0.1.29 +v0.1.30 +v0.1.31 +v0.1.32 +v0.1.33 +v0.1.90 +v0.1.91 +v0.1.92 +v0.1.93 +v0.1.94 +v0.1.95 +v0.1.96 +v0.1.97 +v0.1.98 +v0.1.99 +v0.1.100 +v0.1.101 +v0.1.102 +v0.1.103 +v0.1.104 +v0.2.0 +v0.2.1 +v0.2.2 +v0.2.3 +v0.2.4 +v0.2.5 +v0.2.6 +v0.3.0 +v0.3.1 +v0.3.2 +v0.3.3 +v0.3.4 +v0.3.5 +v0.3.6 +v0.3.7 +v0.3.8 +v0.4.0 +v0.4.1 +v0.4.2 +v0.4.3 +v0.4.4 +v0.4.5 +v0.4.6 +v0.4.7 +v0.4.8 +v0.4.9 +v0.4.10 +v0.4.11 +v0.4.12 +v0.5.0 +v0.5.1 +v0.5.2 +v0.5.3 +v0.5.4 +v0.5.5 +v0.5.6 +v0.5.7 +v0.5.8 +v0.5.9 +v0.5.10 +v0.6.0 +v0.6.1 +v0.6.2 +v0.6.3 +v0.6.4 +v0.6.5 +v0.6.6 +v0.6.7 +v0.6.8 +v0.6.9 +v0.6.10 +v0.6.11 +v0.6.12 +v0.6.13 +v0.6.14 +v0.6.15 +v0.6.16 +v0.6.17 +v0.6.18 +v0.6.19 +v0.6.20 +v0.6.21 +v0.7.0 +v0.7.1 +v0.7.2 +v0.7.3 +v0.7.4 +v0.7.5 +v0.7.6 +v0.7.7 +v0.7.8 +v0.7.9 +v0.7.10 +v0.7.11 +v0.7.12 +v0.8.0 +v0.8.1 +v0.8.2 +v0.8.3 +v0.8.4 +v0.8.5 +v0.8.6 +v0.8.7 +v0.8.8 +v0.8.9 +v0.8.10 +v0.8.11 +v0.8.12 +v0.8.13 +v0.8.14 +v0.8.15 +v0.8.16 +v0.8.17 +v0.8.18 +v0.8.19 +v0.8.20 +v0.8.21 +v0.8.22 +v0.8.23 +v0.8.24 +v0.8.25 +v0.8.26 +v0.8.27 +v0.8.28 +v0.9.0 +v0.9.1 +v0.9.2 +v0.9.3 +v0.9.4 +v0.9.5 +v0.9.6 +v0.9.7 +v0.9.8 +v0.9.9 +v0.9.10 +v0.9.11 +v0.9.12 +v0.10.0 +v0.10.1 +v0.10.2 +v0.10.3 +v0.10.4 +v0.10.5 +v0.10.6 +v0.10.7 +v0.10.8 +v0.10.9 +v0.10.10 +v0.10.11 +v0.10.12 +v0.10.13 +v0.10.14 +v0.10.15 +v0.10.16 +v0.10.17 +v0.10.18 +v0.10.19 +v0.10.20 +v0.10.21 +v0.10.22 +v0.10.23 +v0.10.24 +v0.10.25 +v0.10.26 +v0.10.27 +v0.10.28 +v0.10.29 +v0.10.30 +v0.10.31 +v0.10.32 +v0.10.33 +v0.10.34 +v0.10.35 +v0.10.36 +v0.10.37 +v0.10.38 +v0.10.39 +v0.10.40 +v0.10.41 +v0.10.42 +v0.10.43 +v0.10.44 +v0.10.45 +v0.10.46 +v0.11.0 +v0.11.1 +v0.11.2 +v0.11.3 +v0.11.4 +v0.11.5 +v0.11.6 +v0.11.7 +v0.11.8 +v0.11.9 +v0.11.10 +v0.11.11 +v0.11.12 +v0.11.13 +v0.11.14 +v0.11.15 +v0.11.16 +v0.12.0 +v0.12.1 +v0.12.2 +v0.12.3 +v0.12.4 +v0.12.5 +v0.12.6 +v0.12.7 +v0.12.8 +v0.12.9 +v0.12.10 +v0.12.11 +v0.12.12 +v0.12.13 +v0.12.14 +v0.12.15 +v4.0.0 +v4.1.0 +v4.1.1 +v4.1.2 +v4.2.0 Argon +v4.2.1 Argon +v4.2.2 Argon +v4.2.3 Argon +v4.2.4 Argon +v4.2.5 Argon +v4.2.6 Argon +v4.3.0 Argon +v4.3.1 Argon +v4.3.2 Argon +v4.4.0 Argon +v4.4.1 Argon +v4.4.2 Argon +v4.4.3 Argon +v4.4.4 Argon +v4.4.5 Argon +v4.4.6 Argon +v4.4.7 Argon +v5.0.0 +v5.1.0 +v5.1.1 +v5.2.0 +v5.3.0 +v5.4.0 +v5.4.1 +v5.5.0 +v5.6.0 +v5.7.0 +v5.7.1 +v5.8.0 +v5.9.0 +v5.9.1 +v5.10.0 +v5.10.1 +v5.11.0 +v5.11.1 +v5.12.0 +v6.0.0 +v6.1.0 +v6.2.0 +v6.2.1 +v6.2.2 diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt b/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt new file mode 100644 index 0000000..f46b35a --- /dev/null +++ b/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt @@ -0,0 +1,18 @@ +v4.2.0 Argon +v4.2.1 Argon +v4.2.2 Argon +v4.2.3 Argon +v4.2.4 Argon +v4.2.5 Argon +v4.2.6 Argon +v4.3.0 Argon +v4.3.1 Argon +v4.3.2 Argon +v4.4.0 Argon +v4.4.1 Argon +v4.4.2 Argon +v4.4.3 Argon +v4.4.4 Argon +v4.4.5 Argon +v4.4.6 Argon +v4.4.7 Argon diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote.txt b/test/fast/Unit tests/mocks/nvm_ls_remote.txt index c6f2e8f..e8c3e5f 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote.txt @@ -234,23 +234,23 @@ v4.0.0 v4.1.0 v4.1.1 v4.1.2 -v4.2.0 -v4.2.1 -v4.2.2 -v4.2.3 -v4.2.4 -v4.2.5 -v4.2.6 -v4.3.0 -v4.3.1 -v4.3.2 -v4.4.0 -v4.4.1 -v4.4.2 -v4.4.3 -v4.4.4 -v4.4.5 -v4.4.6 +v4.2.0 Argon +v4.2.1 Argon +v4.2.2 Argon +v4.2.3 Argon +v4.2.4 Argon +v4.2.5 Argon +v4.2.6 Argon +v4.3.0 Argon +v4.3.1 Argon +v4.3.2 Argon +v4.4.0 Argon +v4.4.1 Argon +v4.4.2 Argon +v4.4.3 Argon +v4.4.4 Argon +v4.4.5 Argon +v4.4.6 Argon v4.4.7 Argon v5.0.0 v5.1.0 diff --git a/test/fast/Unit tests/nvm_ls_remote b/test/fast/Unit tests/nvm_ls_remote index c824dd4..52dd1f3 100755 --- a/test/fast/Unit tests/nvm_ls_remote +++ b/test/fast/Unit tests/nvm_ls_remote @@ -8,13 +8,15 @@ cleanup() { . ../../../nvm.sh +MOCKS_DIR="$PWD/mocks" + # sample output at the time the test was written -TAB_PATH="$PWD/mocks/nodejs.org-dist-index.tab" +TAB_PATH="$MOCKS_DIR/nodejs.org-dist-index.tab" nvm_download() { cat "$TAB_PATH" } -EXPECTED_OUTPUT_PATH="$PWD/mocks/nvm_ls_remote.txt" +EXPECTED_OUTPUT_PATH="$MOCKS_DIR/nvm_ls_remote.txt" OUTPUT="$(nvm_ls_remote foo)" EXIT_CODE="$(nvm_ls_remote foo >/dev/null 2>&1 ; echo $?)" @@ -55,4 +57,15 @@ OUTPUT="$(nvm_ls_remote unstable)" EXPECTED_OUTPUT="v0.11.16" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote unstable did not output $EXPECTED_OUTPUT; got $OUTPUT" +EXPECTED_OUTPUT_PATH="$MOCKS_DIR/nvm_ls_remote LTS.txt" +EXPECTED_OUTPUT="$(cat "$EXPECTED_OUTPUT_PATH")" +OUTPUT="$(NVM_LTS='*' nvm_ls_remote)" + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "\`NVM_LTS='*' nvm_ls_remote\` did not output >$EXPECTED_OUTPUT<; got >$OUTPUT<" + +EXPECTED_OUTPUT_PATH="$MOCKS_DIR/nvm_ls_remote LTS argon.txt" +EXPECTED_OUTPUT="$(cat "$EXPECTED_OUTPUT_PATH")" +OUTPUT="$(NVM_LTS=argon nvm_ls_remote)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "\`NVM_LTS=argon nvm_ls_remote\` did not output >$EXPECTED_OUTPUT<; got >$OUTPUT<" + cleanup diff --git a/update_test_mocks.sh b/update_test_mocks.sh index ee08915..571b870 100755 --- a/update_test_mocks.sh +++ b/update_test_mocks.sh @@ -13,6 +13,8 @@ mkdir -p "$MOCKS_DIR" nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote.txt" nvm_ls_remote_iojs > "$MOCKS_DIR/nvm_ls_remote_iojs.txt" +NVM_LTS=* nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote LTS.txt" +NVM_LTS=argon nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote LTS argon.txt" nvm_download -L -s "$NVM_NODEJS_ORG_MIRROR/index.tab" -o - > "$MOCKS_DIR/nodejs.org-dist-index.tab" nvm_download -L -s "$NVM_IOJS_ORG_MIRROR/index.tab" -o - > "$MOCKS_DIR/iojs.org-dist-index.tab" From 584bdd8ba31006e5c1153b44d44a7f70e5924f22 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 24 Apr 2016 10:55:30 -0700 Subject: [PATCH 0657/1426] Print the LTS version on all versions with that info, but put the non-latest in gray. --- nvm.sh | 46 +++++++++++++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 15 deletions(-) diff --git a/nvm.sh b/nvm.sh index 6c72cae..9d9f962 100644 --- a/nvm.sh +++ b/nvm.sh @@ -993,36 +993,52 @@ nvm_print_versions() { fi local LTS_LENGTH local LTS_FORMAT - nvm_echo "$1" | while read -r VERSION_LINE; do - VERSION="${VERSION_LINE% *}" + nvm_echo "$1" \ + | command sed '1!G;h;$!d' \ + | command awk '{ if ($2 && a[$2]++) { print $1, "(LTS: " $2 ")" } else if ($2) { print $1, "(Latest LTS: " $2 ")" } else { print $0 } }' \ + | command sed '1!G;h;$!d' \ + | while read -r VERSION_LINE; do + VERSION="${VERSION_LINE%% *}" LTS="${VERSION_LINE#* }" - FORMAT='%15s' + FORMAT='%15s ' if [ "_$VERSION" = "_$NVM_CURRENT" ]; then if [ "${NVM_HAS_COLORS-}" = '1' ]; then - FORMAT='\033[0;32m-> %12s\033[0m' + FORMAT='\033[0;32m-> %12s\033[0m ' else FORMAT='-> %12s *' fi elif [ "$VERSION" = "system" ]; then if [ "${NVM_HAS_COLORS-}" = '1' ]; then - FORMAT='\033[0;33m%15s\033[0m' + FORMAT='\033[0;33m%15s\033[0m ' fi elif nvm_is_version_installed "$VERSION"; then if [ "${NVM_HAS_COLORS-}" = '1' ]; then - FORMAT='\033[0;34m%15s\033[0m' + FORMAT='\033[0;34m%15s\033[0m ' else FORMAT='%15s *' fi fi - if [ "$LTS" != "$VERSION" ]; then - LTS=" (LTS: $LTS)" - LTS_LENGTH="${#LTS}" - if [ "${NVM_HAS_COLORS-}" = '1' ]; then - LTS_FORMAT="\033[1;32m%${LTS_LENGTH}s\033[0m" - else - LTS_FORMAT="%${LTS_LENGTH}s" - fi - command printf -- "${FORMAT}${LTS_FORMAT}\n" "$VERSION" "$LTS" + if [ "${LTS}" != "${VERSION}" ]; then + case "${LTS}" in + *Latest*) + LTS="${LTS##Latest }" + LTS_LENGTH="${#LTS}" + if [ "${NVM_HAS_COLORS-}" = '1' ]; then + LTS_FORMAT="\033[1;32m%${LTS_LENGTH}s\033[0m" + else + LTS_FORMAT="%${LTS_LENGTH}s" + fi + ;; + *) + LTS_LENGTH="${#LTS}" + if [ "${NVM_HAS_COLORS-}" = '1' ]; then + LTS_FORMAT="\033[0;37m%${LTS_LENGTH}s\033[0m" + else + LTS_FORMAT="%${LTS_LENGTH}s" + fi + ;; + esac + command printf -- "${FORMAT}${LTS_FORMAT}\n" "$VERSION" " $LTS" else command printf -- "${FORMAT}\n" "$VERSION" fi From 1d908d82568c458ff8d88e80a2068a7957390e00 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 24 Apr 2016 16:26:32 -0700 Subject: [PATCH 0658/1426] Add `--lts` support to `nvm version-remote` --- nvm.sh | 41 ++++++++++++++++++------- test/fast/Unit tests/nvm_remote_version | 20 ++++++------ 2 files changed, 40 insertions(+), 21 deletions(-) diff --git a/nvm.sh b/nvm.sh index 9d9f962..9704194 100644 --- a/nvm.sh +++ b/nvm.sh @@ -308,14 +308,14 @@ nvm_remote_version() { if nvm_validate_implicit_alias "$PATTERN" 2> /dev/null ; then case "_$PATTERN" in "_$(nvm_iojs_prefix)") - VERSION="$(nvm_ls_remote_iojs | command tail -1)" + VERSION="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote_iojs | command tail -1)" ;; *) - VERSION="$(nvm_ls_remote "$PATTERN")" + VERSION="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote "$PATTERN")" ;; esac else - VERSION="$(nvm_remote_versions "$PATTERN" | command tail -1)" + VERSION="$(NVM_LTS="${NVM_LTS-}" nvm_remote_versions "$PATTERN" | command tail -1)" fi if [ -n "${NVM_VERSION_ONLY-}" ]; then command awk 'BEGIN { @@ -337,18 +337,18 @@ nvm_remote_versions() { PATTERN="$1" case "_$PATTERN" in "_$NVM_IOJS_PREFIX" | "_io.js") - VERSIONS="$(nvm_ls_remote_iojs)" + VERSIONS="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote_iojs)" ;; "_$(nvm_node_prefix)") - VERSIONS="$(nvm_ls_remote)" + VERSIONS="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote)" ;; *) if nvm_validate_implicit_alias "$PATTERN" 2> /dev/null ; then nvm_err 'Implicit aliases are not supported in nvm_remote_versions.' return 1 fi - VERSIONS="$(nvm_echo "$(nvm_ls_remote "$PATTERN") -$(nvm_ls_remote_iojs "$PATTERN")" | nvm_grep -v "N/A" | command sed '/^$/d')" + VERSIONS="$(nvm_echo "$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote "$PATTERN") +$(NVM_LTS=${NVM_LTS-} nvm_ls_remote_iojs "$PATTERN")" | nvm_grep -v "N/A" | command sed '/^$/d')" ;; esac @@ -852,7 +852,7 @@ nvm_ls_remote() { local PATTERN PATTERN="$1" if nvm_validate_implicit_alias "$PATTERN" 2> /dev/null ; then - PATTERN="$(nvm_ls_remote "$(nvm_print_implicit_alias remote "$PATTERN")" | command tail -1)" + PATTERN="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote "$(nvm_print_implicit_alias remote "$PATTERN")" | command awk '{ print $1 }' | command tail -1)" elif [ -n "$PATTERN" ]; then PATTERN="$(nvm_ensure_version_prefix "$PATTERN")" else @@ -1817,6 +1817,7 @@ nvm() { nvm_echo ' --lts When listing, only show LTS (long-term support) versions' nvm_echo ' nvm version Resolve the given description to a single local version' nvm_echo ' nvm version-remote Resolve the given description to a single remote version' + nvm_echo ' --lts When listing, only select from LTS (long-term support) versions' nvm_echo ' nvm deactivate Undo effects of `nvm` on current shell' nvm_echo ' nvm alias [] Show all aliases beginning with ' nvm_echo ' nvm alias Set an alias named pointing to ' @@ -2444,8 +2445,8 @@ nvm() { NVM_LS_REMOTE_IOJS_EXIT_CODE=0 local NVM_LS_REMOTE_IOJS_OUTPUT NVM_LS_REMOTE_IOJS_OUTPUT='' - if [ "_$NVM_FLAVOR" != "_$NVM_NODE_PREFIX" ]; then - NVM_LS_REMOTE_IOJS_OUTPUT=$(NVM_LTS="${LTS-}" nvm_ls_remote_iojs "$PATTERN") + if [ "_$NVM_FLAVOR" != "_$NVM_NODE_PREFIX" ] && [ -z "${LTS-}" ]; then + NVM_LS_REMOTE_IOJS_OUTPUT=$(nvm_ls_remote_iojs "$PATTERN") NVM_LS_REMOTE_IOJS_EXIT_CODE=$? fi @@ -2618,7 +2619,25 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" nvm_version "$2" ;; "version-remote" ) - NVM_VERSION_ONLY=true nvm_remote_version "$2" + local NVM_LTS + local PATTERN + while [ $# -gt 1 ] + do + case "$2" in + --lts) + NVM_LTS='*' + ;; + --*) + nvm_err "Unsupported option \"$2\"." + return 55; + ;; + *) + PATTERN="${PATTERN:-$2}" + ;; + esac + shift + done + NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; "--version" ) nvm_echo '0.31.2' diff --git a/test/fast/Unit tests/nvm_remote_version b/test/fast/Unit tests/nvm_remote_version index 39fa34d..0c17591 100755 --- a/test/fast/Unit tests/nvm_remote_version +++ b/test/fast/Unit tests/nvm_remote_version @@ -26,34 +26,34 @@ EXIT_CODE="$(nvm_remote_version iojs-foo >/dev/null 2>&1 ; echo $?)" nvm_ls_remote() { - if ! nvm_is_iojs_version "$1"; then - echo "test output" - echo "more test output" - echo "pattern received: _$1_" + if [ -z "$1" ] || ! nvm_is_iojs_version "$1"; then + echo "test_output" + echo "more_test_output" + echo "pattern_received:_$1_" fi } nvm_ls_remote_iojs() { if [ -z "$1" ] || nvm_is_iojs_version "$1"; then - echo "test iojs output" - echo "more iojs test output" - echo "iojs pattern received: _$1_" + echo "test_iojs_output" + echo "more_iojs_test_output" + echo "iojs_pattern_received:_$1_" fi } OUTPUT="$(nvm_remote_version foo)" EXIT_CODE="$(nvm_remote_version foo >/dev/null 2>&1 ; echo $?)" -[ "_$OUTPUT" = "_pattern received: _foo_" ] \ +[ "_$OUTPUT" = "_pattern_received:_foo_" ] \ || die "nvm_remote_version foo did not return last line only of nvm_ls_remote foo; got $OUTPUT" [ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_version foo did not exit with 0, got $EXIT_CODE" OUTPUT="$(nvm_remote_version iojs-foo)" EXIT_CODE="$(nvm_remote_version iojs-foo >/dev/null 2>&1 ; echo $?)" -[ "_$OUTPUT" = "_iojs pattern received: _iojs-foo_" ] \ +[ "_$OUTPUT" = "_iojs_pattern_received:_iojs-foo_" ] \ || die "nvm_remote_version iojs-foo did not return last line only of nvm_ls_remote_iojs foo; got $OUTPUT" [ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_version iojs-foo did not exit with 0, got $EXIT_CODE" OUTPUT="$(nvm_remote_version iojs)" EXIT_CODE="$(nvm_remote_version iojs >/dev/null 2>&1 ; echo $?)" -[ "_$OUTPUT" = "_iojs pattern received: __" ] \ +[ "_$OUTPUT" = "_iojs_pattern_received:__" ] \ || die "nvm_remote_version iojs did not return last line only of nvm_ls_remote_iojs; got $OUTPUT" [ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_version iojs did not exit with 0, got $EXIT_CODE" From 4699657e98e55c2127ee2ba2d50e32335e00ffc8 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 25 Apr 2016 00:55:35 -0700 Subject: [PATCH 0659/1426] Add `--lts=argon` etc, so the LTS line can be targeted. --- nvm.sh | 9 + .../mocks/nvm_ls_remote LTS argon.txt | 260 ------------------ 2 files changed, 9 insertions(+), 260 deletions(-) diff --git a/nvm.sh b/nvm.sh index 9704194..5090a5d 100644 --- a/nvm.sh +++ b/nvm.sh @@ -921,6 +921,7 @@ nvm_ls_remote_index_tab() { if (!$1) { next } if (pattern && tolower($1) !~ tolower(pattern)) { next } if (lts == "*" && $10 ~ /^\-?$/) { next } + if (lts && lts != "*" && tolower($10) !~ tolower(lts)) { next } if ($10 !~ /^\-?$/) print $1, $10; else print $1 }' \ | nvm_grep -w "${PATTERN:-.*}" \ @@ -1815,9 +1816,11 @@ nvm() { nvm_echo ' --lts When listing, only show LTS (long-term support) versions' nvm_echo ' nvm ls-remote List remote versions available for install, matching a given ' nvm_echo ' --lts When listing, only show LTS (long-term support) versions' + nvm_echo ' --lts= When listing, only show versions for a specific LTS line' nvm_echo ' nvm version Resolve the given description to a single local version' nvm_echo ' nvm version-remote Resolve the given description to a single remote version' nvm_echo ' --lts When listing, only select from LTS (long-term support) versions' + nvm_echo ' --lts= When listing, only select from versions for a specific LTS line' nvm_echo ' nvm deactivate Undo effects of `nvm` on current shell' nvm_echo ' nvm alias [] Show all aliases beginning with ' nvm_echo ' nvm alias Set an alias named pointing to ' @@ -2405,6 +2408,9 @@ nvm() { --lts) LTS='*' ;; + --lts=*) + LTS="${2##--lts=}" + ;; --*) nvm_err "Unsupported option \"$2\"." return 55; @@ -2627,6 +2633,9 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" --lts) NVM_LTS='*' ;; + --lts=*) + NVM_LTS="${2##--lts=}" + ;; --*) nvm_err "Unsupported option \"$2\"." return 55; diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt b/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt index e8c3e5f..f46b35a 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt @@ -1,239 +1,3 @@ -v0.1.14 -v0.1.15 -v0.1.16 -v0.1.17 -v0.1.18 -v0.1.19 -v0.1.20 -v0.1.21 -v0.1.22 -v0.1.23 -v0.1.24 -v0.1.25 -v0.1.26 -v0.1.27 -v0.1.28 -v0.1.29 -v0.1.30 -v0.1.31 -v0.1.32 -v0.1.33 -v0.1.90 -v0.1.91 -v0.1.92 -v0.1.93 -v0.1.94 -v0.1.95 -v0.1.96 -v0.1.97 -v0.1.98 -v0.1.99 -v0.1.100 -v0.1.101 -v0.1.102 -v0.1.103 -v0.1.104 -v0.2.0 -v0.2.1 -v0.2.2 -v0.2.3 -v0.2.4 -v0.2.5 -v0.2.6 -v0.3.0 -v0.3.1 -v0.3.2 -v0.3.3 -v0.3.4 -v0.3.5 -v0.3.6 -v0.3.7 -v0.3.8 -v0.4.0 -v0.4.1 -v0.4.2 -v0.4.3 -v0.4.4 -v0.4.5 -v0.4.6 -v0.4.7 -v0.4.8 -v0.4.9 -v0.4.10 -v0.4.11 -v0.4.12 -v0.5.0 -v0.5.1 -v0.5.2 -v0.5.3 -v0.5.4 -v0.5.5 -v0.5.6 -v0.5.7 -v0.5.8 -v0.5.9 -v0.5.10 -v0.6.0 -v0.6.1 -v0.6.2 -v0.6.3 -v0.6.4 -v0.6.5 -v0.6.6 -v0.6.7 -v0.6.8 -v0.6.9 -v0.6.10 -v0.6.11 -v0.6.12 -v0.6.13 -v0.6.14 -v0.6.15 -v0.6.16 -v0.6.17 -v0.6.18 -v0.6.19 -v0.6.20 -v0.6.21 -v0.7.0 -v0.7.1 -v0.7.2 -v0.7.3 -v0.7.4 -v0.7.5 -v0.7.6 -v0.7.7 -v0.7.8 -v0.7.9 -v0.7.10 -v0.7.11 -v0.7.12 -v0.8.0 -v0.8.1 -v0.8.2 -v0.8.3 -v0.8.4 -v0.8.5 -v0.8.6 -v0.8.7 -v0.8.8 -v0.8.9 -v0.8.10 -v0.8.11 -v0.8.12 -v0.8.13 -v0.8.14 -v0.8.15 -v0.8.16 -v0.8.17 -v0.8.18 -v0.8.19 -v0.8.20 -v0.8.21 -v0.8.22 -v0.8.23 -v0.8.24 -v0.8.25 -v0.8.26 -v0.8.27 -v0.8.28 -v0.9.0 -v0.9.1 -v0.9.2 -v0.9.3 -v0.9.4 -v0.9.5 -v0.9.6 -v0.9.7 -v0.9.8 -v0.9.9 -v0.9.10 -v0.9.11 -v0.9.12 -v0.10.0 -v0.10.1 -v0.10.2 -v0.10.3 -v0.10.4 -v0.10.5 -v0.10.6 -v0.10.7 -v0.10.8 -v0.10.9 -v0.10.10 -v0.10.11 -v0.10.12 -v0.10.13 -v0.10.14 -v0.10.15 -v0.10.16 -v0.10.17 -v0.10.18 -v0.10.19 -v0.10.20 -v0.10.21 -v0.10.22 -v0.10.23 -v0.10.24 -v0.10.25 -v0.10.26 -v0.10.27 -v0.10.28 -v0.10.29 -v0.10.30 -v0.10.31 -v0.10.32 -v0.10.33 -v0.10.34 -v0.10.35 -v0.10.36 -v0.10.37 -v0.10.38 -v0.10.39 -v0.10.40 -v0.10.41 -v0.10.42 -v0.10.43 -v0.10.44 -v0.10.45 -v0.10.46 -v0.11.0 -v0.11.1 -v0.11.2 -v0.11.3 -v0.11.4 -v0.11.5 -v0.11.6 -v0.11.7 -v0.11.8 -v0.11.9 -v0.11.10 -v0.11.11 -v0.11.12 -v0.11.13 -v0.11.14 -v0.11.15 -v0.11.16 -v0.12.0 -v0.12.1 -v0.12.2 -v0.12.3 -v0.12.4 -v0.12.5 -v0.12.6 -v0.12.7 -v0.12.8 -v0.12.9 -v0.12.10 -v0.12.11 -v0.12.12 -v0.12.13 -v0.12.14 -v0.12.15 -v4.0.0 -v4.1.0 -v4.1.1 -v4.1.2 v4.2.0 Argon v4.2.1 Argon v4.2.2 Argon @@ -252,27 +16,3 @@ v4.4.4 Argon v4.4.5 Argon v4.4.6 Argon v4.4.7 Argon -v5.0.0 -v5.1.0 -v5.1.1 -v5.2.0 -v5.3.0 -v5.4.0 -v5.4.1 -v5.5.0 -v5.6.0 -v5.7.0 -v5.7.1 -v5.8.0 -v5.9.0 -v5.9.1 -v5.10.0 -v5.10.1 -v5.11.0 -v5.11.1 -v5.12.0 -v6.0.0 -v6.1.0 -v6.2.0 -v6.2.1 -v6.2.2 From 44f4817f7db7f22d273074ceea039dee0928d3c4 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 25 Apr 2016 00:44:24 -0700 Subject: [PATCH 0660/1426] Prevent attempts to `nvm install --lts` --- nvm.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nvm.sh b/nvm.sh index 5090a5d..4fa223c 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1902,6 +1902,10 @@ nvm() { nvm_get_make_jobs "$1" shift # consume job count ;; + --lts*) + nvm_err 'installing based on LTS filtering is not yet supported.' + return 12 + ;; *) break # stop parsing args ;; From 9bd743e0be4eaa0effff33e7c2ee4c8bf7f1a528 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 25 Apr 2016 00:44:24 -0700 Subject: [PATCH 0661/1426] `nvm install`: Add support for `--lts` and `--lts=argon` --- nvm.sh | 63 ++++++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 48 insertions(+), 15 deletions(-) diff --git a/nvm.sh b/nvm.sh index 4fa223c..f2918e0 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1805,6 +1805,8 @@ nvm() { nvm_echo ' nvm --version Print out the latest released version of nvm' nvm_echo ' nvm install [-s] Download and install a , [-s] from source. Uses .nvmrc if available' nvm_echo ' --reinstall-packages-from= When installing, reinstall packages installed in ' + nvm_echo ' --lts When installing, only select from LTS (long-term support) versions' + nvm_echo ' --lts= When installing, only select from versions for a specific LTS line' nvm_echo ' nvm uninstall Uninstall a version' nvm_echo ' nvm use [--silent] Modify PATH to use . Uses .nvmrc if available' nvm_echo ' nvm exec [--silent] [] Run on . Uses .nvmrc if available' @@ -1879,17 +1881,13 @@ nvm() { if [ $# -lt 2 ]; then version_not_provided=1 - nvm_rc_version - if [ -z "$NVM_RC_VERSION" ]; then - >&2 nvm --help - return 127 - fi fi shift local nobinary nobinary=0 + local LTS while [ $# -ne 0 ] do case "$1" in @@ -1902,9 +1900,13 @@ nvm() { nvm_get_make_jobs "$1" shift # consume job count ;; - --lts*) - nvm_err 'installing based on LTS filtering is not yet supported.' - return 12 + --lts) + LTS='*' + shift + ;; + --lts=*) + LTS="${1##--lts=}" + shift ;; *) break # stop parsing args @@ -1913,21 +1915,48 @@ nvm() { done local provided_version - provided_version="$1" + provided_version="${1-}" if [ -z "$provided_version" ]; then - if [ $version_not_provided -ne 1 ]; then + if [ "_${LTS-}" = '_*' ]; then + nvm_echo 'Installing latest LTS version.' + if [ $# -gt 0 ]; then + shift + fi + elif [ "_${LTS-}" != '_' ]; then + nvm_echo "Installing with latest version of LTS line: $LTS" + if [ $# -gt 0 ]; then + shift + fi + else nvm_rc_version + if [ $version_not_provided -eq 1 ]; then + if [ -z "$NVM_RC_VERSION" ]; then + >&2 nvm --help + return 127 + fi + fi + provided_version="$NVM_RC_VERSION" fi - provided_version="$NVM_RC_VERSION" - else + elif [ $# -gt 0 ]; then shift fi - VERSION="$(NVM_VERSION_ONLY=true nvm_remote_version "$provided_version")" + VERSION="$(NVM_VERSION_ONLY=true NVM_LTS="${LTS-}" nvm_remote_version "$provided_version")" if [ "_$VERSION" = "_N/A" ]; then - nvm_err "Version '$provided_version' not found - try \`nvm ls-remote\` to browse available versions." + local LTS_MSG + local REMOTE_CMD + if [ "${LTS-}" = '*' ]; then + LTS_MSG='(with LTS filter) ' + REMOTE_CMD='nvm ls-remote --lts' + elif [ -n "${LTS-}" ]; then + LTS_MSG="(with LTS filter '$LTS') " + REMOTE_CMD="nvm ls-remote --lts=${LTS}" + else + REMOTE_CMD='nvm ls-remote' + fi + nvm_err "Version '$provided_version' ${LTS_MSG-}not found - try \`${REMOTE_CMD}\` to browse available versions." return 3 fi @@ -1974,7 +2003,11 @@ nvm() { if nvm use "$VERSION" && [ ! -z "$REINSTALL_PACKAGES_FROM" ] && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then nvm reinstall-packages "$REINSTALL_PACKAGES_FROM" fi - nvm_ensure_default_set "$provided_version" + if [ -n "${LTS-}" ]; then + nvm_ensure_default_set "lts/${LTS}" + else + nvm_ensure_default_set "$provided_version" + fi return $? fi From b0693f2d6a1a11bd5b95d412bdb17d69346ae680 Mon Sep 17 00:00:00 2001 From: Jorge Bucaran Date: Wed, 27 Apr 2016 11:24:59 +0900 Subject: [PATCH 0662/1426] Add fin https://github.com/fisherman/fin. fin is a pure fish, node version manager for fish-shell. --- README.markdown | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index 42b1558..9566b30 100644 --- a/README.markdown +++ b/README.markdown @@ -9,9 +9,12 @@ Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/n - [nodist](https://github.com/marcelklehr/nodist) Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creationix/nvm/issues/303)). Alternatives exist, which are neither supported nor developed by us: - - [nvm](https://github.com/derekstavis/plugin-nvm) plugin for [Oh My Fish](https://github.com/oh-my-fish/oh-my-fish), which makes nvm and its completions available in fish shell - [bass](https://github.com/edc/bass) allows to use utilities written for Bash in fish shell - [fast-nvm-fish](https://github.com/brigand/fast-nvm-fish) only works with version numbers (not aliases) but doesn't significantly slow your shell startup + - [fin](https://github.com/fisherman/fin) is a pure fish node version manager for fish shell + - [nvm](https://github.com/derekstavis/plugin-nvm) plugin for [Oh My Fish](https://github.com/oh-my-fish/oh-my-fish), which makes nvm and its completions available in fish shell + + Note: We still have some problems with FreeBSD, because there is no pre-built binary from official for FreeBSD, and building from source may need [patches](https://www.freshports.org/www/node/files/patch-deps_v8_src_base_platform_platform-posix.cc), see the issue ticket: - [[#900] [Bug] nodejs on FreeBSD need to be patched ](https://github.com/creationix/nvm/issues/900) From 804eae30fb253e6f0575e724b7ae93eb78d119c4 Mon Sep 17 00:00:00 2001 From: Oskar Eriksson Date: Wed, 27 Apr 2016 08:12:53 +0200 Subject: [PATCH 0663/1426] Added section about verifying nvm install using the command util --- README.markdown | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.markdown b/README.markdown index 9566b30..654dfa8 100644 --- a/README.markdown +++ b/README.markdown @@ -44,6 +44,14 @@ Eg: `curl ... | NVM_DIR="path/to/nvm" bash` Note: On OSX, if you get `nvm: command not found` after running the install script, your system may not have a [.bash_profile file] where the command is set up. Simple create one with `touch ~/.bash_profile` and run the install script again. +### Verify installation + +To verify that nvm has been installed, do + + command -v nvm + +which should output 'nvm' if the installation was successful. Please note that `which nvm` will not work, since `nvm` is a sourced shell function, not an executable binary. + ### Manual install For manual install create a folder somewhere in your filesystem with the `nvm.sh` file inside it. I put mine in `~/.nvm`. From 886cde7da5e772e21d6127790a0b9c18baff4444 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 27 Apr 2016 01:08:20 -0700 Subject: [PATCH 0664/1426] Readme: Clean up trailing whitespace --- README.markdown | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.markdown b/README.markdown index 654dfa8..69b970d 100644 --- a/README.markdown +++ b/README.markdown @@ -12,8 +12,8 @@ Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creati - [bass](https://github.com/edc/bass) allows to use utilities written for Bash in fish shell - [fast-nvm-fish](https://github.com/brigand/fast-nvm-fish) only works with version numbers (not aliases) but doesn't significantly slow your shell startup - [fin](https://github.com/fisherman/fin) is a pure fish node version manager for fish shell - - [nvm](https://github.com/derekstavis/plugin-nvm) plugin for [Oh My Fish](https://github.com/oh-my-fish/oh-my-fish), which makes nvm and its completions available in fish shell - + - [plugin-nvm](https://github.com/derekstavis/plugin-nvm) plugin for [Oh My Fish](https://github.com/oh-my-fish/oh-my-fish), which makes nvm and its completions available in fish shell + Note: We still have some problems with FreeBSD, because there is no pre-built binary from official for FreeBSD, and building from source may need [patches](https://www.freshports.org/www/node/files/patch-deps_v8_src_base_platform_platform-posix.cc), see the issue ticket: @@ -46,10 +46,10 @@ Note: On OSX, if you get `nvm: command not found` after running the install scri ### Verify installation -To verify that nvm has been installed, do - +To verify that nvm has been installed, do + command -v nvm - + which should output 'nvm' if the installation was successful. Please note that `which nvm` will not work, since `nvm` is a sourced shell function, not an executable binary. ### Manual install @@ -74,7 +74,7 @@ Add these lines to your `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it For manual upgrade with `git`, change to the `$NVM_DIR`, pull down the latest changes, and check out the latest version: cd "$NVM_DIR" && git pull origin master && git checkout `git describe --abbrev=0 --tags` - + After upgrading, don't forget to activate the new version: . "$NVM_DIR/nvm.sh" From 7b1a4e5126d08352fc8ee0c1512a3ea341222954 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 26 Apr 2016 22:21:57 -0700 Subject: [PATCH 0665/1426] `nvm alias`: slightly speed up alias resolution. --- nvm.sh | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/nvm.sh b/nvm.sh index 2b933bc..c999484 100755 --- a/nvm.sh +++ b/nvm.sh @@ -391,7 +391,7 @@ nvm_binary_available() { nvm_alias() { local ALIAS - ALIAS="$1" + ALIAS="${1-}" if [ -z "$ALIAS" ]; then echo >&2 'An alias is required.' return 1 @@ -2259,8 +2259,10 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' command mkdir -p "$NVM_ALIAS_DIR" if [ $# -le 2 ]; then local DEST - for ALIAS_PATH in "$NVM_ALIAS_DIR"/"${2-}"*; do - ALIAS="$(command basename "$ALIAS_PATH")" + local ALIAS + local ALIAS_PATH + for ALIAS_PATH in "$NVM_ALIAS_DIR/${2-}"*; do + ALIAS="${ALIAS_PATH/$NVM_ALIAS_DIR\//}" DEST="$(nvm_alias "$ALIAS" 2> /dev/null)" if [ -n "$DEST" ]; then VERSION="$(nvm_version "$DEST")" @@ -2291,18 +2293,18 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' fi if [ -z "${3-}" ]; then command rm -f "$NVM_ALIAS_DIR/$2" - echo "$2 -> *poof*" + echo "${2-} -> *poof*" return fi - VERSION="$(nvm_version "$3")" + VERSION="$(nvm_version "${3-}")" if [ $? -ne 0 ]; then - echo "! WARNING: Version '$3' does not exist." >&2 + echo "! WARNING: Version '${3-}' does not exist." >&2 fi - echo "$3" | tee "$NVM_ALIAS_DIR/$2" >/dev/null + echo "$3" | tee "$NVM_ALIAS_DIR/${2-}" >/dev/null if [ ! "_$3" = "_$VERSION" ]; then - echo "$2 -> $3 (-> $VERSION)" + echo "${2-} -> ${3-} (-> $VERSION)" else - echo "$2 -> $3" + echo "${2-} -> ${3-}" fi ;; "unalias" ) From 4df2a7fca95b49b77143c1f337f79cd63aed4ebf Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 26 Apr 2016 22:29:55 -0700 Subject: [PATCH 0666/1426] `nvm alias`: factor out alias printing logic to functions --- nvm.sh | 73 +++++++++++++------- test/fast/Unit tests/nvm_print_alias_path | 43 ++++++++++++ test/fast/Unit tests/nvm_print_default_alias | 33 +++++++++ 3 files changed, 124 insertions(+), 25 deletions(-) create mode 100755 test/fast/Unit tests/nvm_print_alias_path create mode 100755 test/fast/Unit tests/nvm_print_default_alias diff --git a/nvm.sh b/nvm.sh index c999484..6b42333 100755 --- a/nvm.sh +++ b/nvm.sh @@ -389,6 +389,50 @@ nvm_binary_available() { nvm_version_greater_than_or_equal_to "$(nvm_strip_iojs_prefix "$1")" "$FIRST_VERSION_WITH_BINARY" } +nvm_print_alias_path() { + local NVM_ALIAS_DIR + NVM_ALIAS_DIR="${1-}" + if [ -z "$NVM_ALIAS_DIR" ]; then + >&2 echo 'An alias dir is required.' + return 1 + fi + local ALIAS_PATH + ALIAS_PATH="${2-}" + if [ -z "$ALIAS_PATH" ]; then + >&2 echo 'An alias path is required.' + return 2 + fi + local ALIAS + ALIAS="${ALIAS_PATH##$NVM_ALIAS_DIR\/}" + local DEST + DEST="$(nvm_alias "$ALIAS" 2> /dev/null)" + if [ -n "$DEST" ]; then + local VERSION + VERSION="$(nvm_version "$DEST")" + if [ "_$DEST" = "_$VERSION" ]; then + echo "$ALIAS -> $DEST" + else + echo "$ALIAS -> $DEST (-> $VERSION)" + fi + fi +} + +nvm_print_default_alias() { + local ALIAS + ALIAS="${1-}" + local DEST + DEST="$(nvm_print_implicit_alias local "$ALIAS")" + if [ "_$DEST" != '_' ]; then + local VERSION + VERSION="$(nvm_version "$DEST")" + if [ "_$DEST" = "_$VERSION" ]; then + echo "$ALIAS -> $DEST (default)" + else + echo "$ALIAS -> $DEST (-> $VERSION) (default)" + fi + fi +} + nvm_alias() { local ALIAS ALIAS="${1-}" @@ -1561,7 +1605,6 @@ nvm() { # initialize local variables local VERSION local ADDITIONAL_PARAMETERS - local ALIAS case $1 in "help" ) @@ -2258,35 +2301,15 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' NVM_ALIAS_DIR="$(nvm_alias_path)" command mkdir -p "$NVM_ALIAS_DIR" if [ $# -le 2 ]; then - local DEST - local ALIAS local ALIAS_PATH for ALIAS_PATH in "$NVM_ALIAS_DIR/${2-}"*; do - ALIAS="${ALIAS_PATH/$NVM_ALIAS_DIR\//}" - DEST="$(nvm_alias "$ALIAS" 2> /dev/null)" - if [ -n "$DEST" ]; then - VERSION="$(nvm_version "$DEST")" - if [ "_$DEST" = "_$VERSION" ]; then - echo "$ALIAS -> $DEST" - else - echo "$ALIAS -> $DEST (-> $VERSION)" - fi - fi + nvm_print_alias_path "$NVM_ALIAS_DIR" "$ALIAS_PATH" done + local ALIAS for ALIAS in "$(nvm_node_prefix)" "stable" "unstable" "$(nvm_iojs_prefix)"; do - if [ ! -f "$NVM_ALIAS_DIR/$ALIAS" ]; then - if [ $# -lt 2 ] || [ "~$ALIAS" = "~$2" ]; then - DEST="$(nvm_print_implicit_alias local "$ALIAS")" - if [ "_$DEST" != "_" ]; then - VERSION="$(nvm_version "$DEST")" - if [ "_$DEST" = "_$VERSION" ]; then - echo "$ALIAS -> $DEST (default)" - else - echo "$ALIAS -> $DEST (-> $VERSION) (default)" - fi - fi - fi + if [ ! -f "$NVM_ALIAS_DIR/$ALIAS" ] && ([ $# -lt 2 ] || [ "~$ALIAS" = "~${2-}" ]); then + nvm_print_default_alias "$ALIAS" fi done return diff --git a/test/fast/Unit tests/nvm_print_alias_path b/test/fast/Unit tests/nvm_print_alias_path new file mode 100755 index 0000000..1711ead --- /dev/null +++ b/test/fast/Unit tests/nvm_print_alias_path @@ -0,0 +1,43 @@ +#!/bin/sh + +die () { echo $@ ; cleanup ; exit 1; } + +cleanup () { + unset -f nvm_alias nvm_version +} + +. ../../../nvm.sh + +NVM_ALIAS_DIR='path/to/the alias/dir' + +OUTPUT="$(nvm_print_alias_path 2>&1)" +EXPECTED_OUTPUT='An alias dir is required.' +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "'nvm_print_alias_path' produced wrong output; got '$OUTPUT', expected '$EXPECTED_OUTPUT'" + +OUTPUT="$(nvm_print_alias_path "$NVM_ALIAS_DIR" 2>&1)" +EXPECTED_OUTPUT='An alias path is required.' +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "'nvm_print_alias_path \"\$NVM_ALIAS_DIR\"' produced wrong output; got '$OUTPUT', expected '$EXPECTED_OUTPUT'" + +nvm_alias() { + echo '' +} + +OUTPUT="$(nvm_print_alias_path "$NVM_ALIAS_DIR" foo)" +EXPECTED_OUTPUT='' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_print_alias_path \"\$NVM_ALIAS_DIR\" foo' should produce no output when nvm_alias does not; got '$OUTPUT'" + +EXIT_CODE="$(nvm_print_alias_path "$NVM_ALIAS_DIR" foo >/dev/null 2>&1 ; echo $?)" +[ "$EXIT_CODE" = '0' ] || die "'nvm_print_alias_path \"\$NVM_ALIAS_DIR\" foo' should exit zero when nvm_alias produces no output; got $EXIT_CODE" + +nvm_alias() { + echo "\"$1\"" +} +nvm_version() { + echo "v$1" +} + +OUTPUT="$(nvm_print_alias_path "$NVM_ALIAS_DIR" "$NVM_ALIAS_DIR/blah")" +EXPECTED_OUTPUT='blah -> "blah" (-> v"blah")' +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "'nvm_print_alias_path \"\$NVM_ALIAS_DIR\" \"\$NVM_ALIAS_DIR/blah\"' should strip alias dir and print nvm_alias output; got '$OUTPUT', expected '$EXPECTED_OUTPUT'" + +cleanup diff --git a/test/fast/Unit tests/nvm_print_default_alias b/test/fast/Unit tests/nvm_print_default_alias new file mode 100755 index 0000000..932c1aa --- /dev/null +++ b/test/fast/Unit tests/nvm_print_default_alias @@ -0,0 +1,33 @@ +#!/bin/sh + +die () { echo $@ ; cleanup ; exit 1; } + +cleanup () { + unset -f nvm_print_implicit_alias nvm_version +} + +. ../../../nvm.sh + +nvm_print_implicit_alias() { + echo '' +} + +OUTPUT="$(nvm_print_default_alias foo)" +EXPECTED_OUTPUT='' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_print_default_alias foo' should produce no output when nvm_print_implicit_alias does not; got '$OUTPUT'" + +EXIT_CODE="$(nvm_print_default_alias foo >/dev/null 2>&1 ; echo $?)" +[ "$EXIT_CODE" = '0' ] || die "'nvm_print_default_alias foo' should exit zero when nvm_print_implicit_alias produces no output; got $EXIT_CODE" + +nvm_print_implicit_alias() { + echo "\"$1-$2\"" +} +nvm_version() { + echo "v$1" +} + +OUTPUT="$(nvm_print_default_alias blah)" +EXPECTED_OUTPUT='blah -> "local-blah" (-> v"local-blah") (default)' +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "'nvm_print_default_alias blah' should strip alias dir and print nvm_print_implicit_alias output; got '$OUTPUT', expected '$EXPECTED_OUTPUT'" + +cleanup From 1eb4d482e09c0d30d31f7fd4cab2329e3e0d6544 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 26 Apr 2016 22:58:31 -0700 Subject: [PATCH 0667/1426] `nvm alias`: If the alias target is empty, call into `nvm unalias` --- nvm.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index 6b42333..f3689e4 100755 --- a/nvm.sh +++ b/nvm.sh @@ -2315,9 +2315,8 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' return fi if [ -z "${3-}" ]; then - command rm -f "$NVM_ALIAS_DIR/$2" - echo "${2-} -> *poof*" - return + nvm unalias "${2-}" + return $? fi VERSION="$(nvm_version "${3-}")" if [ $? -ne 0 ]; then From 677c69dda012414dab143d23651c4dfc9a63003e Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 26 Apr 2016 23:07:10 -0700 Subject: [PATCH 0668/1426] `nvm alias`: explicitly forbid user aliases in subdirs. --- nvm.sh | 8 ++++++ ...\" should not accept aliases with slashes" | 27 +++++++++++++++++++ ...\" should not accept aliases with slashes" | 27 +++++++++++++++++++ 3 files changed, 62 insertions(+) create mode 100755 "test/fast/Aliases/\"nvm alias\" should not accept aliases with slashes" create mode 100755 "test/fast/Aliases/\"nvm unalias\" should not accept aliases with slashes" diff --git a/nvm.sh b/nvm.sh index f3689e4..81e4ccb 100755 --- a/nvm.sh +++ b/nvm.sh @@ -2318,6 +2318,10 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' nvm unalias "${2-}" return $? fi + if [ "${2#*\/}" != "${2-}" ]; then + >&2 echo "Aliases in subdirectories are not supported." + return 1 + fi VERSION="$(nvm_version "${3-}")" if [ $? -ne 0 ]; then echo "! WARNING: Version '${3-}' does not exist." >&2 @@ -2337,6 +2341,10 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' >&2 nvm help return 127 fi + if [ "${2#*\/}" != "${2-}" ]; then + >&2 echo "Aliases in subdirectories are not supported." + return 1 + fi [ ! -f "$NVM_ALIAS_DIR/$2" ] && echo "Alias $2 doesn't exist!" >&2 && return local NVM_ALIAS_ORIGINAL NVM_ALIAS_ORIGINAL="$(nvm_alias "$2")" diff --git "a/test/fast/Aliases/\"nvm alias\" should not accept aliases with slashes" "b/test/fast/Aliases/\"nvm alias\" should not accept aliases with slashes" new file mode 100755 index 0000000..f5b1d0f --- /dev/null +++ "b/test/fast/Aliases/\"nvm alias\" should not accept aliases with slashes" @@ -0,0 +1,27 @@ +#!/bin/sh + +. ../../../nvm.sh + +die () { echo $@ ; exit 1; } + +OUTPUT="$(nvm alias foo/bar baz 2>&1)" +EXPECTED_OUTPUT="Aliases in subdirectories are not supported." +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "trying to create an alias with a slash should fail with '$EXPECTED_OUTPUT', got '$OUTPUT'" + +EXIT_CODE="$(nvm alias foo/bar baz >/dev/null 2>&1 ; echo $?)" +[ "$EXIT_CODE" = "1" ] || die "trying to create an alias with a slash should fail with code 1, got '$EXIT_CODE'" + +OUTPUT="$(nvm alias foo/ baz 2>&1)" +EXPECTED_OUTPUT="Aliases in subdirectories are not supported." +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "trying to create an alias ending with a slash should fail with '$EXPECTED_OUTPUT', got '$OUTPUT'" + +EXIT_CODE="$(nvm alias foo/ baz >/dev/null 2>&1 ; echo $?)" +[ "$EXIT_CODE" = "1" ] || die "trying to create an alias ending with a slash should fail with code 1, got '$EXIT_CODE'" + +OUTPUT="$(nvm alias /bar baz 2>&1)" +EXPECTED_OUTPUT="Aliases in subdirectories are not supported." +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "trying to create an alias starting with a slash should fail with '$EXPECTED_OUTPUT', got '$OUTPUT'" + +EXIT_CODE="$(nvm alias /bar baz >/dev/null 2>&1 ; echo $?)" +[ "$EXIT_CODE" = "1" ] || die "trying to create an alias starting with a slash should fail with code 1, got '$EXIT_CODE'" + diff --git "a/test/fast/Aliases/\"nvm unalias\" should not accept aliases with slashes" "b/test/fast/Aliases/\"nvm unalias\" should not accept aliases with slashes" new file mode 100755 index 0000000..ff0a304 --- /dev/null +++ "b/test/fast/Aliases/\"nvm unalias\" should not accept aliases with slashes" @@ -0,0 +1,27 @@ +#!/bin/sh + +. ../../../nvm.sh + +die () { echo $@ ; exit 1; } + +OUTPUT="$(nvm unalias foo/bar 2>&1)" +EXPECTED_OUTPUT="Aliases in subdirectories are not supported." +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "trying to remove an alias with a slash should fail with '$EXPECTED_OUTPUT', got '$OUTPUT'" + +EXIT_CODE="$(nvm unalias foo/bar >/dev/null 2>&1 ; echo $?)" +[ "$EXIT_CODE" = "1" ] || die "trying to remove an alias with a slash should fail with code 1, got '$EXIT_CODE'" + +OUTPUT="$(nvm unalias foo/ 2>&1)" +EXPECTED_OUTPUT="Aliases in subdirectories are not supported." +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "trying to remove an alias ending with a slash should fail with '$EXPECTED_OUTPUT', got '$OUTPUT'" + +EXIT_CODE="$(nvm unalias foo/ >/dev/null 2>&1 ; echo $?)" +[ "$EXIT_CODE" = "1" ] || die "trying to remove an alias ending with a slash should fail with code 1, got '$EXIT_CODE'" + +OUTPUT="$(nvm unalias /bar 2>&1)" +EXPECTED_OUTPUT="Aliases in subdirectories are not supported." +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "trying to remove an alias starting with a slash should fail with '$EXPECTED_OUTPUT', got '$OUTPUT'" + +EXIT_CODE="$(nvm unalias /bar >/dev/null 2>&1 ; echo $?)" +[ "$EXIT_CODE" = "1" ] || die "trying to remove an alias starting with a slash should fail with code 1, got '$EXIT_CODE'" + From 17c9bef4aaed746c2acd5b2f14aee2367b575c10 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 26 Apr 2016 23:07:22 -0700 Subject: [PATCH 0669/1426] `nvm alias`: add `lts/` support. --- nvm.sh | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index f2918e0..d8d248e 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2558,7 +2558,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" "alias" ) local NVM_ALIAS_DIR NVM_ALIAS_DIR="$(nvm_alias_path)" - command mkdir -p "$NVM_ALIAS_DIR" + command mkdir -p "$NVM_ALIAS_DIR/lts" local NVM_CURRENT NVM_CURRENT="$(nvm_ls_current)" if [ $# -le 2 ]; then @@ -2573,6 +2573,14 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" NVM_CURRENT="${NVM_CURRENT}" nvm_print_default_alias "$ALIAS" fi done + + local LTS_ALIAS + for ALIAS_PATH in "$NVM_ALIAS_DIR/lts/${2-}"*; do + LTS_ALIAS="$(nvm_print_alias_path "$NVM_ALIAS_DIR" "$ALIAS_PATH")" + if [ -n "$LTS_ALIAS" ]; then + nvm_echo "${LTS_ALIAS-}" + fi + done return fi if [ -z "${3-}" ]; then From ec54c925c13ae4b5469a5b6cb965fa8018c32b45 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 27 Apr 2016 01:25:56 -0700 Subject: [PATCH 0670/1426] [Tests] use mocks for `nvm_ls_remote`/`nvm_ls_remote_iojs` tests. --- .../mocks/nodejs.org-dist-index.tab | 2 + test/fast/Unit tests/mocks/nvm_ls_remote.txt | 264 ++++++++++++++++++ .../Unit tests/mocks/nvm_ls_remote_iojs.txt | 41 +++ test/fast/Unit tests/nvm_ls_remote | 10 +- test/fast/Unit tests/nvm_ls_remote_iojs | 6 +- update_test_mocks.sh | 2 + 6 files changed, 319 insertions(+), 6 deletions(-) create mode 100644 test/fast/Unit tests/mocks/nvm_ls_remote.txt create mode 100644 test/fast/Unit tests/mocks/nvm_ls_remote_iojs.txt diff --git a/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab b/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab index 073bac7..c7c6bd3 100644 --- a/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab +++ b/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab @@ -1,4 +1,6 @@ version date files npm v8 uv zlib openssl modules lts +v6.0.0 2016-04-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - +v5.11.0 2016-04-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - v5.10.1 2016-04-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - v5.10.0 2016-04-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - v5.9.1 2016-03-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.7.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote.txt b/test/fast/Unit tests/mocks/nvm_ls_remote.txt new file mode 100644 index 0000000..a46cb95 --- /dev/null +++ b/test/fast/Unit tests/mocks/nvm_ls_remote.txt @@ -0,0 +1,264 @@ +v0.1.14 +v0.1.15 +v0.1.16 +v0.1.17 +v0.1.18 +v0.1.19 +v0.1.20 +v0.1.21 +v0.1.22 +v0.1.23 +v0.1.24 +v0.1.25 +v0.1.26 +v0.1.27 +v0.1.28 +v0.1.29 +v0.1.30 +v0.1.31 +v0.1.32 +v0.1.33 +v0.1.90 +v0.1.91 +v0.1.92 +v0.1.93 +v0.1.94 +v0.1.95 +v0.1.96 +v0.1.97 +v0.1.98 +v0.1.99 +v0.1.100 +v0.1.101 +v0.1.102 +v0.1.103 +v0.1.104 +v0.2.0 +v0.2.1 +v0.2.2 +v0.2.3 +v0.2.4 +v0.2.5 +v0.2.6 +v0.3.0 +v0.3.1 +v0.3.2 +v0.3.3 +v0.3.4 +v0.3.5 +v0.3.6 +v0.3.7 +v0.3.8 +v0.4.0 +v0.4.1 +v0.4.2 +v0.4.3 +v0.4.4 +v0.4.5 +v0.4.6 +v0.4.7 +v0.4.8 +v0.4.9 +v0.4.10 +v0.4.11 +v0.4.12 +v0.5.0 +v0.5.1 +v0.5.2 +v0.5.3 +v0.5.4 +v0.5.5 +v0.5.6 +v0.5.7 +v0.5.8 +v0.5.9 +v0.5.10 +v0.6.0 +v0.6.1 +v0.6.2 +v0.6.3 +v0.6.4 +v0.6.5 +v0.6.6 +v0.6.7 +v0.6.8 +v0.6.9 +v0.6.10 +v0.6.11 +v0.6.12 +v0.6.13 +v0.6.14 +v0.6.15 +v0.6.16 +v0.6.17 +v0.6.18 +v0.6.19 +v0.6.20 +v0.6.21 +v0.7.0 +v0.7.1 +v0.7.2 +v0.7.3 +v0.7.4 +v0.7.5 +v0.7.6 +v0.7.7 +v0.7.8 +v0.7.9 +v0.7.10 +v0.7.11 +v0.7.12 +v0.8.0 +v0.8.1 +v0.8.2 +v0.8.3 +v0.8.4 +v0.8.5 +v0.8.6 +v0.8.7 +v0.8.8 +v0.8.9 +v0.8.10 +v0.8.11 +v0.8.12 +v0.8.13 +v0.8.14 +v0.8.15 +v0.8.16 +v0.8.17 +v0.8.18 +v0.8.19 +v0.8.20 +v0.8.21 +v0.8.22 +v0.8.23 +v0.8.24 +v0.8.25 +v0.8.26 +v0.8.27 +v0.8.28 +v0.9.0 +v0.9.1 +v0.9.2 +v0.9.3 +v0.9.4 +v0.9.5 +v0.9.6 +v0.9.7 +v0.9.8 +v0.9.9 +v0.9.10 +v0.9.11 +v0.9.12 +v0.10.0 +v0.10.1 +v0.10.2 +v0.10.3 +v0.10.4 +v0.10.5 +v0.10.6 +v0.10.7 +v0.10.8 +v0.10.9 +v0.10.10 +v0.10.11 +v0.10.12 +v0.10.13 +v0.10.14 +v0.10.15 +v0.10.16 +v0.10.17 +v0.10.18 +v0.10.19 +v0.10.20 +v0.10.21 +v0.10.22 +v0.10.23 +v0.10.24 +v0.10.25 +v0.10.26 +v0.10.27 +v0.10.28 +v0.10.29 +v0.10.30 +v0.10.31 +v0.10.32 +v0.10.33 +v0.10.34 +v0.10.35 +v0.10.36 +v0.10.37 +v0.10.38 +v0.10.39 +v0.10.40 +v0.10.41 +v0.10.42 +v0.10.43 +v0.10.44 +v0.11.0 +v0.11.1 +v0.11.2 +v0.11.3 +v0.11.4 +v0.11.5 +v0.11.6 +v0.11.7 +v0.11.8 +v0.11.9 +v0.11.10 +v0.11.11 +v0.11.12 +v0.11.13 +v0.11.14 +v0.11.15 +v0.11.16 +v0.12.0 +v0.12.1 +v0.12.2 +v0.12.3 +v0.12.4 +v0.12.5 +v0.12.6 +v0.12.7 +v0.12.8 +v0.12.9 +v0.12.10 +v0.12.11 +v0.12.12 +v0.12.13 +v4.0.0 +v4.1.0 +v4.1.1 +v4.1.2 +v4.2.0 +v4.2.1 +v4.2.2 +v4.2.3 +v4.2.4 +v4.2.5 +v4.2.6 +v4.3.0 +v4.3.1 +v4.3.2 +v4.4.0 +v4.4.1 +v4.4.2 +v4.4.3 +v5.0.0 +v5.1.0 +v5.1.1 +v5.2.0 +v5.3.0 +v5.4.0 +v5.4.1 +v5.5.0 +v5.6.0 +v5.7.0 +v5.7.1 +v5.8.0 +v5.9.0 +v5.9.1 +v5.10.0 +v5.10.1 +v5.11.0 +v6.0.0 diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote_iojs.txt b/test/fast/Unit tests/mocks/nvm_ls_remote_iojs.txt new file mode 100644 index 0000000..d263a73 --- /dev/null +++ b/test/fast/Unit tests/mocks/nvm_ls_remote_iojs.txt @@ -0,0 +1,41 @@ +iojs-v1.0.0 +iojs-v1.0.1 +iojs-v1.0.2 +iojs-v1.0.3 +iojs-v1.0.4 +iojs-v1.1.0 +iojs-v1.2.0 +iojs-v1.3.0 +iojs-v1.4.1 +iojs-v1.4.2 +iojs-v1.4.3 +iojs-v1.5.0 +iojs-v1.5.1 +iojs-v1.6.0 +iojs-v1.6.1 +iojs-v1.6.2 +iojs-v1.6.3 +iojs-v1.6.4 +iojs-v1.7.1 +iojs-v1.8.1 +iojs-v1.8.2 +iojs-v1.8.3 +iojs-v1.8.4 +iojs-v2.0.0 +iojs-v2.0.1 +iojs-v2.0.2 +iojs-v2.1.0 +iojs-v2.2.0 +iojs-v2.2.1 +iojs-v2.3.0 +iojs-v2.3.1 +iojs-v2.3.2 +iojs-v2.3.3 +iojs-v2.3.4 +iojs-v2.4.0 +iojs-v2.5.0 +iojs-v3.0.0 +iojs-v3.1.0 +iojs-v3.2.0 +iojs-v3.3.0 +iojs-v3.3.1 diff --git a/test/fast/Unit tests/nvm_ls_remote b/test/fast/Unit tests/nvm_ls_remote index ed4e2c1..d8f7d3d 100755 --- a/test/fast/Unit tests/nvm_ls_remote +++ b/test/fast/Unit tests/nvm_ls_remote @@ -14,14 +14,16 @@ nvm_download() { cat "$TAB_PATH" } +EXPECTED_OUTPUT_PATH="$PWD/mocks/nvm_ls_remote.txt" + OUTPUT="$(nvm_ls_remote foo)" EXIT_CODE="$(nvm_ls_remote foo >/dev/null 2>&1 ; echo $?)" [ "_$OUTPUT" = "_N/A" ] || die "nonexistent version did not report N/A" [ "_$EXIT_CODE" = "_3" ] || die "nonexistent version did not exit with code 3, got $EXIT_CODE" OUTPUT="$(nvm_ls_remote)" -EXPECTED_OUTPUT="$(nvm_download | \egrep -o 'v[0-9]+\.[0-9]+\.[0-9]+' | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n)" -[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "bare nvm_ls_remote did not output expected sorted versions; got $(echo "$OUTPUT") expected $(echo "$EXPECTED_OUTPUT")" +EXPECTED_OUTPUT="$(cat "$EXPECTED_OUTPUT_PATH")" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "bare nvm_ls_remote did not output expected sorted versions; got $(echo ">$OUTPUT<") expected $(echo ">$EXPECTED_OUTPUT<")" OUTPUT="$(nvm_ls_remote 0.3)" EXPECTED_OUTPUT="v0.3.0 @@ -38,7 +40,7 @@ v0.3.8" # Sanity checks OUTPUT="$(nvm_print_implicit_alias remote stable)" -EXPECTED_OUTPUT="5.10" +EXPECTED_OUTPUT="6.0" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_print_implicit_alias remote stable did not output $EXPECTED_OUTPUT; got $OUTPUT" OUTPUT="$(nvm_print_implicit_alias remote unstable)" @@ -46,7 +48,7 @@ EXPECTED_OUTPUT="0.11" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_print_implicit_alias remote unstable did not output $EXPECTED_OUTPUT; got $OUTPUT" OUTPUT="$(nvm_ls_remote stable)" -EXPECTED_OUTPUT="v5.10.1" +EXPECTED_OUTPUT="v6.0.0" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote stable did not output $EXPECTED_OUTPUT; got $OUTPUT" OUTPUT="$(nvm_ls_remote unstable)" diff --git a/test/fast/Unit tests/nvm_ls_remote_iojs b/test/fast/Unit tests/nvm_ls_remote_iojs index 03bb417..1f909c7 100755 --- a/test/fast/Unit tests/nvm_ls_remote_iojs +++ b/test/fast/Unit tests/nvm_ls_remote_iojs @@ -14,14 +14,16 @@ nvm_download() { cat "$TAB_PATH" } +EXPECTED_OUTPUT_PATH="$PWD/mocks/nvm_ls_remote_iojs.txt" + OUTPUT="$(nvm_ls_remote_iojs foo)" EXIT_CODE="$(nvm_ls_remote_iojs foo >/dev/null 2>&1 ; echo $?)" [ "_$OUTPUT" = "_N/A" ] || die "nonexistent version did not report N/A" [ "_$EXIT_CODE" = "_3" ] || die "nonexistent version did not exit with code 3, got $EXIT_CODE" OUTPUT="$(nvm_ls_remote_iojs)" -EXPECTED_OUTPUT="$(nvm_download | \egrep -o 'v[0-9]+\.[0-9]+\.[0-9]+' | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n | sed -e 's/^/iojs-/')" -[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "bare nvm_ls_remote_iojs did not output expected sorted versions; got $(echo "$OUTPUT") expected $(echo "$EXPECTED_OUTPUT")" +EXPECTED_OUTPUT="$(cat "$EXPECTED_OUTPUT_PATH")" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "bare nvm_ls_remote_iojs did not output expected sorted versions; got $(echo ">$OUTPUT<") expected $(echo ">$EXPECTED_OUTPUT<")" OUTPUT="$(nvm_ls_remote_iojs 1.0)" EXPECTED_OUTPUT="iojs-v1.0.0 diff --git a/update_test_mocks.sh b/update_test_mocks.sh index 7f42195..10eaed6 100755 --- a/update_test_mocks.sh +++ b/update_test_mocks.sh @@ -11,6 +11,8 @@ mkdir -p MOCKS_DIR . "$NVM_DIR/nvm.sh" +nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote.txt" +nvm_ls_remote_iojs > "$MOCKS_DIR/nvm_ls_remote_iojs.txt" nvm_download -L -s "$NVM_NODEJS_ORG_MIRROR/index.tab" -o - > "$MOCKS_DIR/nodejs.org-dist-index.tab" nvm_download -L -s "$NVM_IOJS_ORG_MIRROR/index.tab" -o - > "$MOCKS_DIR/iojs.org-dist-index.tab" From 91c77c6ba8318af451cd7272fa55d2959f4fd34b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 27 Apr 2016 17:34:53 -0700 Subject: [PATCH 0671/1426] [Tests] fix shebangs --- ...ich foo\" should return a nonzero exit code when not found" | 2 +- ...unning \"nvm ls 0.0.2\" should display only version 0.0.2." | 1 - ... ls foo\" should return a nonzero exit code when not found" | 3 +-- .../Listing versions/Running \"nvm ls io\" should return NA" | 3 +-- ...s node_\" should return a nonzero exit code when not found" | 3 +-- ...ls unstable\" should return the appropriate implicit alias" | 3 +-- ...nvm ls system\" should include \"system\" when appropriate" | 1 - .../Running \"nvm ls\" should filter out \"versions\"" | 1 - ...ning \"nvm ls\" should include \"system\" when appropriate" | 1 - ...vm ls\" should list versions in the \"versions\" directory" | 1 - ...-like versioning vx.x.x should only list a matched version" | 1 - 11 files changed, 5 insertions(+), 15 deletions(-) diff --git "a/test/fast/Listing paths/Running \"nvm which foo\" should return a nonzero exit code when not found" "b/test/fast/Listing paths/Running \"nvm which foo\" should return a nonzero exit code when not found" index 4c4a301..0c1e30b 100755 --- "a/test/fast/Listing paths/Running \"nvm which foo\" should return a nonzero exit code when not found" +++ "b/test/fast/Listing paths/Running \"nvm which foo\" should return a nonzero exit code when not found" @@ -1,4 +1,4 @@ - #!/bin/sh +#!/bin/sh . ../../../nvm.sh diff --git "a/test/fast/Listing versions/Running \"nvm ls 0.0.2\" should display only version 0.0.2." "b/test/fast/Listing versions/Running \"nvm ls 0.0.2\" should display only version 0.0.2." index c2b7a63..45a2d1a 100755 --- "a/test/fast/Listing versions/Running \"nvm ls 0.0.2\" should display only version 0.0.2." +++ "b/test/fast/Listing versions/Running \"nvm ls 0.0.2\" should display only version 0.0.2." @@ -18,4 +18,3 @@ nvm ls 0.0.2 | grep 'v0.0.20' > /dev/null if [ $? -eq 0 ]; then die '"nvm ls 0.0.2" contained v0.0.20' fi - diff --git "a/test/fast/Listing versions/Running \"nvm ls foo\" should return a nonzero exit code when not found" "b/test/fast/Listing versions/Running \"nvm ls foo\" should return a nonzero exit code when not found" index d3f6974..19e0f96 100755 --- "a/test/fast/Listing versions/Running \"nvm ls foo\" should return a nonzero exit code when not found" +++ "b/test/fast/Listing versions/Running \"nvm ls foo\" should return a nonzero exit code when not found" @@ -1,7 +1,6 @@ - #!/bin/sh +#!/bin/sh . ../../../nvm.sh nvm ls nonexistent_version [ "$?" = "3" ] - diff --git "a/test/fast/Listing versions/Running \"nvm ls io\" should return NA" "b/test/fast/Listing versions/Running \"nvm ls io\" should return NA" index ddd1123..2c61b66 100755 --- "a/test/fast/Listing versions/Running \"nvm ls io\" should return NA" +++ "b/test/fast/Listing versions/Running \"nvm ls io\" should return NA" @@ -1,7 +1,6 @@ - #!/bin/sh +#!/bin/sh . ../../../nvm.sh nvm ls io [ "$?" = "3" ] - diff --git "a/test/fast/Listing versions/Running \"nvm ls node_\" should return a nonzero exit code when not found" "b/test/fast/Listing versions/Running \"nvm ls node_\" should return a nonzero exit code when not found" index 2d6b012..b4ad7a2 100755 --- "a/test/fast/Listing versions/Running \"nvm ls node_\" should return a nonzero exit code when not found" +++ "b/test/fast/Listing versions/Running \"nvm ls node_\" should return a nonzero exit code when not found" @@ -1,7 +1,6 @@ - #!/bin/sh +#!/bin/sh . ../../../nvm.sh nvm ls node_ [ "$?" = "3" ] - diff --git "a/test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" "b/test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" index a5ab151..79051bd 100755 --- "a/test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" +++ "b/test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" @@ -1,4 +1,4 @@ - #!/bin/sh +#!/bin/sh . ../../../nvm.sh @@ -26,4 +26,3 @@ nvm ls stable | \grep -v "$STABLE_VERSION" >/dev/null \ || die "'nvm ls stable' contained $STABLE_VERSION instead of v0.1.2" nvm ls stable | \grep v0.1.2 >/dev/null \ || die "'nvm ls stable' did not contain v0.1.2" - diff --git "a/test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" "b/test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" index f1e5ef6..d24cb3c 100755 --- "a/test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" +++ "b/test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" @@ -18,4 +18,3 @@ nvm ls system | grep system 2>&1 > /dev/null nvm_has_system_node() { return 1; } nvm ls system | grep system 2>&1 > /dev/null [ $? -ne 0 ] || die '"nvm ls system" contained "system" when system node is not present' - diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" "b/test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" index c4d61bd..d63066d 100755 --- "a/test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" +++ "b/test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" @@ -8,4 +8,3 @@ mkdir -p ../../../versions/node [ -z "$(nvm ls | \grep 'versions')" ] # The result should contain only the appropriate version numbers. - diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should include \"system\" when appropriate" "b/test/fast/Listing versions/Running \"nvm ls\" should include \"system\" when appropriate" index 9afd40a..e8554f0 100755 --- "a/test/fast/Listing versions/Running \"nvm ls\" should include \"system\" when appropriate" +++ "b/test/fast/Listing versions/Running \"nvm ls\" should include \"system\" when appropriate" @@ -18,4 +18,3 @@ nvm ls | grep system 2>&1 > /dev/null nvm_has_system_node() { return 1; } nvm ls | grep system 2>&1 > /dev/null [ $? -ne 0 ] || die '"nvm ls" contained "system" when system node is not present' - diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" "b/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" index 8368b1e..488e991 100755 --- "a/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" +++ "b/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" @@ -9,4 +9,3 @@ mkdir ../../../v0.1.3 nvm ls 0.12 | grep v0.12.1 || die '"nvm ls" did not list a version in the versions/ directory' nvm ls 0.1 | grep v0.1.3 || die '"nvm ls" did not list a version not in the versions/ directory' - diff --git "a/test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" "b/test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" index 43c77d8..eeebea5 100755 --- "a/test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" +++ "b/test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" @@ -8,4 +8,3 @@ nvm ls v0.1 | grep v0.1.2 && nvm ls v0.1.2 | grep v0.1.2 && nvm ls v0.1. | grep v0.1.2 && nvm ls v0.1.1 | grep N/A - From 9106cc25a43d3eb8a81284225fb1b9e54432287a Mon Sep 17 00:00:00 2001 From: Philip Ingrey Date: Wed, 27 Apr 2016 11:29:18 +0100 Subject: [PATCH 0672/1426] Switch from pull to fetch in the manual update guide --- README.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index 69b970d..4999302 100644 --- a/README.markdown +++ b/README.markdown @@ -73,7 +73,7 @@ Add these lines to your `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it For manual upgrade with `git`, change to the `$NVM_DIR`, pull down the latest changes, and check out the latest version: - cd "$NVM_DIR" && git pull origin master && git checkout `git describe --abbrev=0 --tags` + cd "$NVM_DIR" && git fetch origin && git checkout `git describe --abbrev=0 --tags` After upgrading, don't forget to activate the new version: From 379d079c30530dbc459fe919fb917711c2ca111d Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 27 Apr 2016 17:05:33 -0700 Subject: [PATCH 0673/1426] [Tests] Ensure color codes are stripped in alias tests. --- test/common.sh | 6 ++ ...\" again should change the target" | 15 ++-- ...s implicit aliases when they do not exist" | 19 +++-- ... instead of implicit aliases when present" | 20 ++--- ...ng \"nvm alias\" should list all aliases." | 84 +++++++++---------- test/fast/Aliases/circular/nvm_resolve_alias | 22 ++--- .../Aliases/circular/nvm_resolve_local_alias | 22 ++--- test/fast/Unit tests/nvm_print_alias_path | 5 +- test/fast/Unit tests/nvm_print_default_alias | 5 +- ...nvm.sh should use the default if available | 5 +- ... with --install should install the default | 5 +- 11 files changed, 111 insertions(+), 97 deletions(-) diff --git a/test/common.sh b/test/common.sh index 7d09064..f87cc5c 100644 --- a/test/common.sh +++ b/test/common.sh @@ -11,3 +11,9 @@ assert_not_ok() { ! $($FUNCTION $@) || die '"'"$FUNCTION $@"'" should have failed, but succeeded' } + +strip_colors() { + while read -r line; do + echo "$line" | LC_ALL=C command sed 's/\[[ -?]*[@-~]//g' + done +} diff --git "a/test/fast/Aliases/Running \"nvm alias \" again should change the target" "b/test/fast/Aliases/Running \"nvm alias \" again should change the target" index d4a8a2d..8c8bb68 100755 --- "a/test/fast/Aliases/Running \"nvm alias \" again should change the target" +++ "b/test/fast/Aliases/Running \"nvm alias \" again should change the target" @@ -1,6 +1,7 @@ #!/bin/sh . ../../../nvm.sh +. ../../common.sh die () { echo $@ ; exit 1; } @@ -10,12 +11,14 @@ if [ -n "$ZSH_VERSION" ]; then setopt noclobber fi -nvm alias test-stable-1 0.0.2 +nvm alias test-stable-1 0.0.2 || die '`nvm alias test-stable-1 0.0.2` failed' -nvm alias test-stable-1 | \grep -e "test-stable-1 -> 0.0.2 (-> v0.0.2)" \ - || die "nvm alias test-stable-1 0.0.2 did not set test-stable-1 to 0.0.2" +OUTPUT="$(nvm alias test-stable-1 | strip_colors)" +EXPECTED_OUTPUT='test-stable-1 -> 0.0.2 (-> v0.0.2)' +echo "$OUTPUT" | \grep -F "$EXPECTED_OUTPUT" || die "nvm alias test-stable-1 0.0.2 did not set test-stable-1 to 0.0.2: got '$OUTPUT'" -nvm alias test-stable-1 0.0.1 +nvm alias test-stable-1 0.0.1 || die '`nvm alias test-stable-1 0.0.1` failed' -nvm alias test-stable-1 | \grep -e "test-stable-1 -> 0.0.1 (-> v0.0.1)" \ - || die "nvm alias test-stable-1 0.0.1 did not set test-stable-1 to 0.0.1" +OUTPUT="$(nvm alias test-stable-1 | strip_colors)" +EXPECTED_OUTPUT='test-stable-1 -> 0.0.1 (-> v0.0.1)' +echo "$OUTPUT" | \grep -F "$EXPECTED_OUTPUT" || die "nvm alias test-stable-1 0.0.1 did not set test-stable-1 to 0.0.1: got '$OUTPUT'" diff --git "a/test/fast/Aliases/Running \"nvm alias\" lists implicit aliases when they do not exist" "b/test/fast/Aliases/Running \"nvm alias\" lists implicit aliases when they do not exist" index 8fd73d8..2c27ad1 100755 --- "a/test/fast/Aliases/Running \"nvm alias\" lists implicit aliases when they do not exist" +++ "b/test/fast/Aliases/Running \"nvm alias\" lists implicit aliases when they do not exist" @@ -1,26 +1,27 @@ #!/bin/sh . ../../../nvm.sh +. ../../common.sh die () { echo $@ ; exit 1; } -NVM_ALIAS_OUTPUT=$(nvm alias) +NVM_ALIAS_OUTPUT=$(nvm alias | strip_colors) EXPECTED_STABLE="$(nvm_print_implicit_alias local stable)" STABLE_VERSION="$(nvm_version "$EXPECTED_STABLE")" -echo "$NVM_ALIAS_OUTPUT" | \grep -e "^stable -> $EXPECTED_STABLE (-> $STABLE_VERSION) (default)$" \ - || die "nvm alias did not contain the default local stable node version" +echo "$NVM_ALIAS_OUTPUT" | \grep -F "stable -> $EXPECTED_STABLE (-> $STABLE_VERSION) (default)" \ + || die "nvm alias did not contain the default local stable node version; got '$NVM_ALIAS_OUTPUT'" -echo "$NVM_ALIAS_OUTPUT" | \grep -e "^node -> stable (-> $STABLE_VERSION) (default)$" \ - || die "nvm alias did not contain the default local stable node version under 'node'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F "node -> stable (-> $STABLE_VERSION) (default)" \ + || die "nvm alias did not contain the default local stable node version under 'node'; got '$NVM_ALIAS_OUTPUT'" EXPECTED_UNSTABLE="$(nvm_print_implicit_alias local unstable)" UNSTABLE_VERSION="$(nvm_version "$EXPECTED_UNSTABLE")" -echo "$NVM_ALIAS_OUTPUT" | \grep -e "^unstable -> $EXPECTED_UNSTABLE (-> $UNSTABLE_VERSION) (default)$" \ - || die "nvm alias did not contain the default local unstable node version" +echo "$NVM_ALIAS_OUTPUT" | \grep -F "unstable -> $EXPECTED_UNSTABLE (-> $UNSTABLE_VERSION) (default)" \ + || die "nvm alias did not contain the default local unstable node version; got '$NVM_ALIAS_OUTPUT'" EXPECTED_IOJS="$(nvm_print_implicit_alias local iojs)" IOJS_VERSION="$(nvm_version "$EXPECTED_IOJS")" -echo "$NVM_ALIAS_OUTPUT" | \grep -e "^iojs -> $EXPECTED_IOJS (-> $IOJS_VERSION) (default)$" \ - || die "nvm alias did not contain the default local iojs version" +echo "$NVM_ALIAS_OUTPUT" | \grep -F "iojs -> $EXPECTED_IOJS (-> $IOJS_VERSION) (default)" \ + || die "nvm alias did not contain the default local iojs version; got '$NVM_ALIAS_OUTPUT'" diff --git "a/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" "b/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" index 6c0fa99..45346bd 100755 --- "a/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" +++ "b/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" @@ -1,6 +1,7 @@ #!/bin/sh . ../../../nvm.sh +. ../../common.sh die () { echo $@ ; cleanup ; exit 1; } cleanup () { @@ -31,19 +32,18 @@ nvm alias unstable "$EXPECTED_STABLE" nvm alias node stable nvm alias iojs unstable -NVM_ALIAS_OUTPUT=$(nvm alias) +NVM_ALIAS_OUTPUT=$(nvm alias | strip_colors) -echo "$NVM_ALIAS_OUTPUT" | command grep -e "^stable -> $EXPECTED_UNSTABLE (-> $UNSTABLE_VERSION)$" \ - || die "nvm alias did not contain the overridden 'stable' alias" +echo "$NVM_ALIAS_OUTPUT" | command grep -F "stable -> $EXPECTED_UNSTABLE (-> $UNSTABLE_VERSION)" \ + || die "nvm alias did not contain the overridden 'stable' alias; got '$NVM_ALIAS_OUTPUT'" -echo "$NVM_ALIAS_OUTPUT" | command grep -e "^unstable -> $EXPECTED_STABLE (-> $STABLE_VERSION)$" \ - || die "nvm alias did not contain the overridden 'unstable' alias" +echo "$NVM_ALIAS_OUTPUT" | command grep -F "unstable -> $EXPECTED_STABLE (-> $STABLE_VERSION)" \ + || die "nvm alias did not contain the overridden 'unstable' alias; got '$NVM_ALIAS_OUTPUT'" -echo "$NVM_ALIAS_OUTPUT" | command grep -e "^node -> stable (-> $UNSTABLE_VERSION)$" \ - || die "nvm alias did not contain the overridden 'node' alias" +echo "$NVM_ALIAS_OUTPUT" | command grep -F "node -> stable (-> $UNSTABLE_VERSION)" \ + || die "nvm alias did not contain the overridden 'node' alias; got '$NVM_ALIAS_OUTPUT'" -echo "$NVM_ALIAS_OUTPUT" | command grep -e "^iojs -> unstable (-> $STABLE_VERSION)$" \ - || die "nvm alias did not contain the overridden 'iojs' alias" +echo "$NVM_ALIAS_OUTPUT" | command grep -F "iojs -> unstable (-> $STABLE_VERSION)" \ + || die "nvm alias did not contain the overridden 'iojs' alias; got '$NVM_ALIAS_OUTPUT'" cleanup - diff --git "a/test/fast/Aliases/Running \"nvm alias\" should list all aliases." "b/test/fast/Aliases/Running \"nvm alias\" should list all aliases." index 1a7cac1..1135388 100755 --- "a/test/fast/Aliases/Running \"nvm alias\" should list all aliases." +++ "b/test/fast/Aliases/Running \"nvm alias\" should list all aliases." @@ -1,48 +1,48 @@ #!/bin/sh . ../../../nvm.sh +. ../../common.sh die () { echo $@ ; exit 1; } -NVM_ALIAS_OUTPUT=$(nvm alias) -echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-1 -> 0.0.1 (-> v0.0.1)$' \ - || die "did not find test-stable-1 alias" -echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-2 -> 0.0.2 (-> v0.0.2)$' \ - || die "did not find test-stable-2 alias" -echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-3 -> 0.0.3 (-> v0.0.3)$' \ - || die "did not find test-stable-3 alias" -echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-4 -> 0.0.4 (-> v0.0.4)$' \ - || die "did not find test-stable-4 alias" -echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-5 -> 0.0.5 (-> v0.0.5)$' \ - || die "did not find test-stable-5 alias" -echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-6 -> 0.0.6 (-> v0.0.6)$' \ - || die "did not find test-stable-6 alias" -echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-7 -> 0.0.7 (-> v0.0.7)$' \ - || die "did not find test-stable-7 alias" -echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-8 -> 0.0.8 (-> v0.0.8)$' \ - || die "did not find test-stable-8 alias" -echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-9 -> 0.0.9 (-> v0.0.9)$' \ - || die "did not find test-stable-9 alias" -echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-10 -> 0.0.10 (-> v0.0.10)$' \ - || die "did not find test-stable-10 alias" -echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-1 -> 0.1.1 (-> v0.1.1)$' \ - || die "did not find test-unstable-1 alias" -echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-2 -> 0.1.2 (-> v0.1.2)$' \ - || die "did not find test-unstable-2 alias" -echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-3 -> 0.1.3 (-> v0.1.3)$' \ - || die "did not find test-unstable-3 alias" -echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-4 -> 0.1.4 (-> v0.1.4)$' \ - || die "did not find test-unstable-4 alias" -echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-5 -> 0.1.5 (-> v0.1.5)$' \ - || die "did not find test-unstable-5 alias" -echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-6 -> 0.1.6 (-> v0.1.6)$' \ - || die "did not find test-unstable-6 alias" -echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-7 -> 0.1.7 (-> v0.1.7)$' \ - || die "did not find test-unstable-7 alias" -echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-8 -> 0.1.8 (-> v0.1.8)$' \ - || die "did not find test-unstable-8 alias" -echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-9 -> 0.1.9 (-> v0.1.9)$' \ - || die "did not find test-unstable-9 alias" -echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-10 -> 0.1.10 (-> v0.1.10)$' \ - || die "did not find test-unstable-10 alias" - +NVM_ALIAS_OUTPUT="$(nvm alias | strip_colors)" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-1 -> 0.0.1 (-> v0.0.1)' \ + || die "did not find test-stable-1 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-2 -> 0.0.2 (-> v0.0.2)' \ + || die "did not find test-stable-2 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-3 -> 0.0.3 (-> v0.0.3)' \ + || die "did not find test-stable-3 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-4 -> 0.0.4 (-> v0.0.4)' \ + || die "did not find test-stable-4 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-5 -> 0.0.5 (-> v0.0.5)' \ + || die "did not find test-stable-5 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-6 -> 0.0.6 (-> v0.0.6)' \ + || die "did not find test-stable-6 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-7 -> 0.0.7 (-> v0.0.7)' \ + || die "did not find test-stable-7 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-8 -> 0.0.8 (-> v0.0.8)' \ + || die "did not find test-stable-8 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-9 -> 0.0.9 (-> v0.0.9)' \ + || die "did not find test-stable-9 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-10 -> 0.0.10 (-> v0.0.10)' \ + || die "did not find test-stable-10 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-1 -> 0.1.1 (-> v0.1.1)' \ + || die "did not find test-unstable-1 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-2 -> 0.1.2 (-> v0.1.2)' \ + || die "did not find test-unstable-2 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-3 -> 0.1.3 (-> v0.1.3)' \ + || die "did not find test-unstable-3 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-4 -> 0.1.4 (-> v0.1.4)' \ + || die "did not find test-unstable-4 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-5 -> 0.1.5 (-> v0.1.5)' \ + || die "did not find test-unstable-5 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-6 -> 0.1.6 (-> v0.1.6)' \ + || die "did not find test-unstable-6 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-7 -> 0.1.7 (-> v0.1.7)' \ + || die "did not find test-unstable-7 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-8 -> 0.1.8 (-> v0.1.8)' \ + || die "did not find test-unstable-8 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-9 -> 0.1.9 (-> v0.1.9)' \ + || die "did not find test-unstable-9 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-10 -> 0.1.10 (-> v0.1.10)' \ + || die "did not find test-unstable-10 alias; got '$NVM_ALIAS_OUTPUT'" diff --git a/test/fast/Aliases/circular/nvm_resolve_alias b/test/fast/Aliases/circular/nvm_resolve_alias index 4b5dab9..e481826 100755 --- a/test/fast/Aliases/circular/nvm_resolve_alias +++ b/test/fast/Aliases/circular/nvm_resolve_alias @@ -1,36 +1,36 @@ #!/bin/sh +. ../../../common.sh die () { echo $@ ; exit 1; } . ../../../../nvm.sh -ALIAS="$(nvm_resolve_alias loopback)" +ALIAS="$(nvm_resolve_alias loopback | strip_colors)" [ "_$ALIAS" = "_∞" ] || die "nvm_resolve_alias loopback was not ∞; got $ALIAS" -OUTPUT="$(nvm alias loopback)" +OUTPUT="$(nvm alias loopback | strip_colors)" EXPECTED_OUTPUT="loopback -> loopback (-> ∞)" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias loopback was not $EXPECTED_OUTPUT; got $OUTPUT" -ALIAS="$(nvm_resolve_alias one)" +ALIAS="$(nvm_resolve_alias one | strip_colors)" [ "_$ALIAS" = "_∞" ] || die "nvm_resolve_alias one was not ∞; got $ALIAS" -OUTPUT="$(nvm alias one)" +OUTPUT="$(nvm alias one | strip_colors)" EXPECTED_OUTPUT="one -> two (-> ∞)" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias one was not $EXPECTED_OUTPUT; got $OUTPUT" -ALIAS="$(nvm_resolve_alias two)" +ALIAS="$(nvm_resolve_alias two | strip_colors)" [ "_$ALIAS" = "_∞" ] || die "nvm_resolve_alias two was not ∞; got $ALIAS" -OUTPUT="$(nvm alias two)" +OUTPUT="$(nvm alias two | strip_colors)" EXPECTED_OUTPUT="two -> three (-> ∞)" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias two was not $EXPECTED_OUTPUT; got $OUTPUT" -ALIAS="$(nvm_resolve_alias three)" +ALIAS="$(nvm_resolve_alias three | strip_colors)" [ "_$ALIAS" = "_∞" ] || die "nvm_resolve_alias three was not ∞; got $ALIAS" -OUTPUT="$(nvm alias three)" +OUTPUT="$(nvm alias three | strip_colors)" EXPECTED_OUTPUT="three -> one (-> ∞)" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias three was not $EXPECTED_OUTPUT; got $OUTPUT" -ALIAS="$(nvm_resolve_alias four)" +ALIAS="$(nvm_resolve_alias four | strip_colors)" [ "_$ALIAS" = "_∞" ] || die "nvm_resolve_alias four was not ∞; got $ALIAS" -OUTPUT="$(nvm alias four)" +OUTPUT="$(nvm alias four | strip_colors)" EXPECTED_OUTPUT="four -> two (-> ∞)" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias four was not $EXPECTED_OUTPUT; got $OUTPUT" - diff --git a/test/fast/Aliases/circular/nvm_resolve_local_alias b/test/fast/Aliases/circular/nvm_resolve_local_alias index 1d25054..dace4d0 100755 --- a/test/fast/Aliases/circular/nvm_resolve_local_alias +++ b/test/fast/Aliases/circular/nvm_resolve_local_alias @@ -1,36 +1,36 @@ #!/bin/sh +. ../../../common.sh die () { echo $@ ; exit 1; } . ../../../../nvm.sh -ALIAS="$(nvm_resolve_local_alias loopback)" +ALIAS="$(nvm_resolve_local_alias loopback | strip_colors)" [ "_$ALIAS" = "_∞" ] || die "nvm_resolve_local_alias loopback was not ∞; got $ALIAS" -OUTPUT="$(nvm alias loopback)" +OUTPUT="$(nvm alias loopback | strip_colors)" EXPECTED_OUTPUT="loopback -> loopback (-> ∞)" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias loopback was not $EXPECTED_OUTPUT; got $OUTPUT" -ALIAS="$(nvm_resolve_local_alias one)" +ALIAS="$(nvm_resolve_local_alias one | strip_colors)" [ "_$ALIAS" = "_∞" ] || die "nvm_resolve_local_alias one was not ∞; got $ALIAS" -OUTPUT="$(nvm alias one)" +OUTPUT="$(nvm alias one | strip_colors)" EXPECTED_OUTPUT="one -> two (-> ∞)" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias one was not $EXPECTED_OUTPUT; got $OUTPUT" -ALIAS="$(nvm_resolve_local_alias two)" +ALIAS="$(nvm_resolve_local_alias two | strip_colors)" [ "_$ALIAS" = "_∞" ] || die "nvm_resolve_local_alias two was not ∞; got $ALIAS" -OUTPUT="$(nvm alias two)" +OUTPUT="$(nvm alias two | strip_colors)" EXPECTED_OUTPUT="two -> three (-> ∞)" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias two was not $EXPECTED_OUTPUT; got $OUTPUT" -ALIAS="$(nvm_resolve_local_alias three)" +ALIAS="$(nvm_resolve_local_alias three | strip_colors)" [ "_$ALIAS" = "_∞" ] || die "nvm_resolve_local_alias three was not ∞; got $ALIAS" -OUTPUT="$(nvm alias three)" +OUTPUT="$(nvm alias three | strip_colors)" EXPECTED_OUTPUT="three -> one (-> ∞)" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias three was not $EXPECTED_OUTPUT; got $OUTPUT" -ALIAS="$(nvm_resolve_local_alias four)" +ALIAS="$(nvm_resolve_local_alias four | strip_colors)" [ "_$ALIAS" = "_∞" ] || die "nvm_resolve_local_alias four was not ∞; got $ALIAS" -OUTPUT="$(nvm alias four)" +OUTPUT="$(nvm alias four | strip_colors)" EXPECTED_OUTPUT="four -> two (-> ∞)" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias four was not $EXPECTED_OUTPUT; got $OUTPUT" - diff --git a/test/fast/Unit tests/nvm_print_alias_path b/test/fast/Unit tests/nvm_print_alias_path index 1711ead..14f439a 100755 --- a/test/fast/Unit tests/nvm_print_alias_path +++ b/test/fast/Unit tests/nvm_print_alias_path @@ -1,4 +1,5 @@ #!/bin/sh +. ../../common.sh die () { echo $@ ; cleanup ; exit 1; } @@ -22,7 +23,7 @@ nvm_alias() { echo '' } -OUTPUT="$(nvm_print_alias_path "$NVM_ALIAS_DIR" foo)" +OUTPUT="$(nvm_print_alias_path "$NVM_ALIAS_DIR" foo | strip_colors)" EXPECTED_OUTPUT='' [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_print_alias_path \"\$NVM_ALIAS_DIR\" foo' should produce no output when nvm_alias does not; got '$OUTPUT'" @@ -36,7 +37,7 @@ nvm_version() { echo "v$1" } -OUTPUT="$(nvm_print_alias_path "$NVM_ALIAS_DIR" "$NVM_ALIAS_DIR/blah")" +OUTPUT="$(nvm_print_alias_path "$NVM_ALIAS_DIR" "$NVM_ALIAS_DIR/blah" | strip_colors)" EXPECTED_OUTPUT='blah -> "blah" (-> v"blah")' [ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "'nvm_print_alias_path \"\$NVM_ALIAS_DIR\" \"\$NVM_ALIAS_DIR/blah\"' should strip alias dir and print nvm_alias output; got '$OUTPUT', expected '$EXPECTED_OUTPUT'" diff --git a/test/fast/Unit tests/nvm_print_default_alias b/test/fast/Unit tests/nvm_print_default_alias index 932c1aa..a2e0e55 100755 --- a/test/fast/Unit tests/nvm_print_default_alias +++ b/test/fast/Unit tests/nvm_print_default_alias @@ -1,4 +1,5 @@ #!/bin/sh +. ../../common.sh die () { echo $@ ; cleanup ; exit 1; } @@ -12,7 +13,7 @@ nvm_print_implicit_alias() { echo '' } -OUTPUT="$(nvm_print_default_alias foo)" +OUTPUT="$(nvm_print_default_alias foo | strip_colors)" EXPECTED_OUTPUT='' [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_print_default_alias foo' should produce no output when nvm_print_implicit_alias does not; got '$OUTPUT'" @@ -26,7 +27,7 @@ nvm_version() { echo "v$1" } -OUTPUT="$(nvm_print_default_alias blah)" +OUTPUT="$(nvm_print_default_alias blah | strip_colors)" EXPECTED_OUTPUT='blah -> "local-blah" (-> v"local-blah") (default)' [ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "'nvm_print_default_alias blah' should strip alias dir and print nvm_print_implicit_alias output; got '$OUTPUT', expected '$EXPECTED_OUTPUT'" diff --git a/test/sourcing/Sourcing nvm.sh should use the default if available b/test/sourcing/Sourcing nvm.sh should use the default if available index 57cb839..03b2fe3 100755 --- a/test/sourcing/Sourcing nvm.sh should use the default if available +++ b/test/sourcing/Sourcing nvm.sh should use the default if available @@ -5,13 +5,14 @@ die () { echo $@ ; exit 1; } echo '0.10.1' > ../../alias/default || die 'creation of default alias failed' . ../../nvm.sh || die 'sourcing returned nonzero exit code' +. ../common.sh -NVM_LS_CURRENT="$(nvm ls current | \grep -o v0.10.1)" +NVM_LS_CURRENT="$(nvm ls current | strip_colors | \grep -o v0.10.1)" [ "_$NVM_LS_CURRENT" = '_v0.10.1' ] || die "'nvm ls current' did not return '-> v0.10.1', got '$NVM_LS_CURRENT'" # NVM_LS_CURRENT_COLORED="$(nvm ls current | sed -n l)" -NVM_ALIAS_DEFAULT="$(nvm alias default)" +NVM_ALIAS_DEFAULT="$(nvm alias default | strip_colors)" [ "_$NVM_ALIAS_DEFAULT" = "_default -> 0.10.1 (-> v0.10.1)" ] \ || die "'nvm alias default did not return 'default -> 0.10.1 (-> v0.10.1)', got '$NVM_ALIAS_DEFAULT'" diff --git a/test/sourcing/Sourcing nvm.sh with --install should install the default b/test/sourcing/Sourcing nvm.sh with --install should install the default index e25ddf0..3b6fbaf 100755 --- a/test/sourcing/Sourcing nvm.sh with --install should install the default +++ b/test/sourcing/Sourcing nvm.sh with --install should install the default @@ -1,4 +1,5 @@ #!/bin/sh +. ../common.sh die () { echo $@ ; exit 1; } supports_source_options () { @@ -23,10 +24,10 @@ nvm_version 0.10.2 >/dev/null 2>&1 || die "v0.10.2 not installed: $(nvm ls)" [ "_$EXIT_CODE" = "_0" ] || die "sourcing returned nonzero exit code: $EXIT_CODE" -NVM_LS_CURRENT="$(nvm ls current | \grep -o v0.10.2)" +NVM_LS_CURRENT="$(nvm ls current | strip_colors | command grep -o v0.10.2)" [ "_$NVM_LS_CURRENT" = '_v0.10.2' ] || die "'nvm ls current' did not return '-> v0.10.2', got '$NVM_LS_CURRENT'" -NVM_ALIAS_DEFAULT="$(nvm alias default)" +NVM_ALIAS_DEFAULT="$(nvm alias default | strip_colors)" [ "_$NVM_ALIAS_DEFAULT" = "_default -> 0.10.2 (-> v0.10.2)" ] \ || die "'nvm alias default did not return 'default -> 0.10.2 (-> v0.10.2)', got '$NVM_ALIAS_DEFAULT'" From fc68e615b2c43a6d9f942c8530c38598427531a3 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 27 Apr 2016 22:35:14 -0700 Subject: [PATCH 0674/1426] `nvm alias`: colorize output to match `nvm ls` --- nvm.sh | 66 +++++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 49 insertions(+), 17 deletions(-) diff --git a/nvm.sh b/nvm.sh index 81e4ccb..cefa9a3 100755 --- a/nvm.sh +++ b/nvm.sh @@ -389,6 +389,44 @@ nvm_binary_available() { nvm_version_greater_than_or_equal_to "$(nvm_strip_iojs_prefix "$1")" "$FIRST_VERSION_WITH_BINARY" } +nvm_print_formatted_alias() { + local ALIAS + ALIAS="${1-}" + local DEST + DEST="${2-}" + local VERSION + local VERSION_FORMAT + local ALIAS_FORMAT + local DEST_FORMAT + VERSION="$(nvm_version "$DEST")" + ALIAS_FORMAT='%s' + DEST_FORMAT='%s' + VERSION_FORMAT='%s' + if [ "_$VERSION" = "_${NVM_CURRENT-}" ]; then + ALIAS_FORMAT='\033[0;32m%s\033[0m' + DEST_FORMAT='\033[0;32m%s\033[0m' + VERSION_FORMAT='\033[0;32m%s\033[0m' + elif [ -d "$(nvm_version_path "$VERSION" 2> /dev/null)" ]; then + ALIAS_FORMAT='\033[0;34m%s\033[0m' + DEST_FORMAT='\033[0;34m%s\033[0m' + VERSION_FORMAT='\033[0;34m%s\033[0m' + elif [ "_$VERSION" = '_∞' ] || [ "_$VERSION" = '_N/A' ]; then + ALIAS_FORMAT='\033[1;31m%s\033[0m' + DEST_FORMAT='\033[1;31m%s\033[0m' + VERSION_FORMAT='\033[1;31m%s\033[0m' + fi + local NEWLINE + NEWLINE="\n" + if [ "_$DEFAULT" = '_true' ]; then + NEWLINE=" \033[0;37m(default)\033[0m\n" + fi + if [ "_$DEST" = "_$VERSION" ]; then + command printf "${ALIAS_FORMAT} \033[0;90m->\033[0m ${VERSION_FORMAT}${NEWLINE}" "$ALIAS" "$DEST" + else + command printf "${ALIAS_FORMAT} \033[0;90m->\033[0m ${DEST_FORMAT} (\033[0;90m->\033[0m ${VERSION_FORMAT})${NEWLINE}" "$ALIAS" "$DEST" "$VERSION" + fi +} + nvm_print_alias_path() { local NVM_ALIAS_DIR NVM_ALIAS_DIR="${1-}" @@ -407,29 +445,21 @@ nvm_print_alias_path() { local DEST DEST="$(nvm_alias "$ALIAS" 2> /dev/null)" if [ -n "$DEST" ]; then - local VERSION - VERSION="$(nvm_version "$DEST")" - if [ "_$DEST" = "_$VERSION" ]; then - echo "$ALIAS -> $DEST" - else - echo "$ALIAS -> $DEST (-> $VERSION)" - fi + DEFAULT=false nvm_print_formatted_alias "$ALIAS" "$DEST" fi } nvm_print_default_alias() { local ALIAS ALIAS="${1-}" + if [ -z "$ALIAS" ]; then + >&2 echo 'A default alias is required.' + return 1 + fi local DEST DEST="$(nvm_print_implicit_alias local "$ALIAS")" - if [ "_$DEST" != '_' ]; then - local VERSION - VERSION="$(nvm_version "$DEST")" - if [ "_$DEST" = "_$VERSION" ]; then - echo "$ALIAS -> $DEST (default)" - else - echo "$ALIAS -> $DEST (-> $VERSION) (default)" - fi + if [ -n "$DEST" ]; then + DEFAULT=true nvm_print_formatted_alias "$ALIAS" "$DEST" fi } @@ -2301,15 +2331,17 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' NVM_ALIAS_DIR="$(nvm_alias_path)" command mkdir -p "$NVM_ALIAS_DIR" if [ $# -le 2 ]; then + local NVM_CURRENT + NVM_CURRENT="$(nvm_ls_current)" local ALIAS_PATH for ALIAS_PATH in "$NVM_ALIAS_DIR/${2-}"*; do - nvm_print_alias_path "$NVM_ALIAS_DIR" "$ALIAS_PATH" + NVM_CURRENT="${NVM_CURRENT}" nvm_print_alias_path "$NVM_ALIAS_DIR" "$ALIAS_PATH" done local ALIAS for ALIAS in "$(nvm_node_prefix)" "stable" "unstable" "$(nvm_iojs_prefix)"; do if [ ! -f "$NVM_ALIAS_DIR/$ALIAS" ] && ([ $# -lt 2 ] || [ "~$ALIAS" = "~${2-}" ]); then - nvm_print_default_alias "$ALIAS" + NVM_CURRENT="${NVM_CURRENT}" nvm_print_default_alias "$ALIAS" fi done return From 1f336ffbfe76e3a1dec89661494c75103be29cc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C4=83t=C4=83lin=20Mari=C8=99?= Date: Thu, 28 Apr 2016 12:27:13 +0300 Subject: [PATCH 0675/1426] Use `language: generic` in `.travis.yml` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since the tests don't rely on / fall into any of the language categories¹ defined by Travis CI, `language: generic`² can be used. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ¹ https://docs.travis-ci.com/user/languages/ ² https://github.com/travis-ci/travis-ci/issues/4895#issuecomment-150703192 --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 1b17b9f..510a86e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,4 @@ -language: c # defaults to ruby +language: generic addons: apt_packages: - zsh From 09f86b0e6ef61ef4e7af2e58fa9b56a79df80c69 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 27 Apr 2016 17:11:16 -0700 Subject: [PATCH 0676/1426] [Refactor] Create and use `nvm_is_version_installed` --- nvm.sh | 27 +++++++++---------- ...h incorrect file permissions fails nicely" | 2 +- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/nvm.sh b/nvm.sh index cefa9a3..0caddb3 100755 --- a/nvm.sh +++ b/nvm.sh @@ -60,6 +60,10 @@ nvm_has_system_iojs() { [ "$(nvm deactivate >/dev/null 2>&1 && command -v iojs)" != '' ] } +nvm_is_version_installed() { + [ -n "${1-}" ] && [ -d "$(nvm_version_path "${1-}" 2> /dev/null)" ] +} + nvm_print_npm_version() { if nvm_has "npm"; then echo " (npm v$(npm --version 2>/dev/null))" @@ -206,10 +210,7 @@ nvm_ensure_version_installed() { LOCAL_VERSION="$(nvm_version "$PROVIDED_VERSION")" EXIT_CODE="$?" local NVM_VERSION_DIR - if [ "_$EXIT_CODE" = "_0" ]; then - NVM_VERSION_DIR="$(nvm_version_path "$LOCAL_VERSION")" - fi - if [ "_$EXIT_CODE" != "_0" ] || [ ! -d "$NVM_VERSION_DIR" ]; then + if [ "_$EXIT_CODE" != "_0" ] || ! nvm_is_version_installed "$LOCAL_VERSION"; then VERSION="$(nvm_resolve_alias "$PROVIDED_VERSION")" if [ $? -eq 0 ]; then echo "N/A: version \"$PROVIDED_VERSION -> $VERSION\" is not yet installed" >&2 @@ -406,7 +407,7 @@ nvm_print_formatted_alias() { ALIAS_FORMAT='\033[0;32m%s\033[0m' DEST_FORMAT='\033[0;32m%s\033[0m' VERSION_FORMAT='\033[0;32m%s\033[0m' - elif [ -d "$(nvm_version_path "$VERSION" 2> /dev/null)" ]; then + elif nvm_is_version_installed "$VERSION"; then ALIAS_FORMAT='\033[0;34m%s\033[0m' DEST_FORMAT='\033[0;34m%s\033[0m' VERSION_FORMAT='\033[0;34m%s\033[0m' @@ -648,9 +649,9 @@ nvm_ls() { *) NVM_PATTERN_STARTS_WITH_V=false ;; esac if [ $NVM_PATTERN_STARTS_WITH_V = true ] && [ "_$(nvm_num_version_groups "$PATTERN")" = "_3" ]; then - if [ -d "$(nvm_version_path "$PATTERN")" ]; then + if nvm_is_version_installed "$PATTERN"; then VERSIONS="$PATTERN" - elif [ -d "$(nvm_version_path "$(nvm_add_iojs_prefix "$PATTERN")")" ]; then + elif nvm_is_version_installed "$(nvm_add_iojs_prefix "$PATTERN")"; then VERSIONS="$(nvm_add_iojs_prefix "$PATTERN")" fi else @@ -889,7 +890,7 @@ nvm_print_versions() { FORMAT='\033[0;32m-> %12s\033[0m' elif [ "$VERSION" = "system" ]; then FORMAT='\033[0;33m%15s\033[0m' - elif [ -d "$(nvm_version_path "$VERSION" 2> /dev/null)" ]; then + elif nvm_is_version_installed "$VERSION"; then FORMAT='\033[0;34m%15s\033[0m' else FORMAT='%15s' @@ -1810,9 +1811,7 @@ nvm() { NVM_NODE_MERGED=true fi - local VERSION_PATH - VERSION_PATH="$(nvm_version_path "$VERSION")" - if [ -d "$VERSION_PATH" ]; then + if nvm_is_version_installed "$VERSION"; then echo "$VERSION is already installed." >&2 if nvm use "$VERSION" && [ ! -z "$REINSTALL_PACKAGES_FROM" ] && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then nvm reinstall-packages "$REINSTALL_PACKAGES_FROM" @@ -1897,9 +1896,7 @@ nvm() { return 1 fi - local VERSION_PATH - VERSION_PATH="$(nvm_version_path "$VERSION")" - if [ ! -d "$VERSION_PATH" ]; then + if ! nvm_is_version_installed "$VERSION"; then echo "$VERSION version is not installed..." >&2 return; fi @@ -1916,6 +1913,8 @@ nvm() { NVM_SUCCESS_MSG="Uninstalled node $VERSION" fi + local VERSION_PATH + VERSION_PATH="$(nvm_version_path "$VERSION")" if ! nvm_check_file_permissions "$VERSION_PATH"; then >&2 echo 'Cannot uninstall, incorrect permissions on installation folder.' >&2 echo 'This is usually caused by running `npm install -g` as root. Run the following command as root to fix the permissions and then try again.' diff --git "a/test/slow/nvm uninstall/Running \"nvm uninstall\" with incorrect file permissions fails nicely" "b/test/slow/nvm uninstall/Running \"nvm uninstall\" with incorrect file permissions fails nicely" index eff2bc4..0939d95 100755 --- "a/test/slow/nvm uninstall/Running \"nvm uninstall\" with incorrect file permissions fails nicely" +++ "b/test/slow/nvm uninstall/Running \"nvm uninstall\" with incorrect file permissions fails nicely" @@ -19,7 +19,7 @@ nvm ls | grep "$NVM_TEST_VERSION" || die "Failed to install node" # Install global module as root npm_path=$(which npm) -sudo "$npm_path" install jspm -g +sudo -n "$npm_path" install jspm -g || die 'either sudo failed, or `npm install jspm -g` failed`' # Switch to another version so we can uninstall nvm use 0.12.7 From d705ec7ebf9a886d88892f827bb8908952b43e99 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 30 Apr 2016 00:33:28 -0700 Subject: [PATCH 0677/1426] [refactor] run through shellcheck --- nvm.sh | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/nvm.sh b/nvm.sh index 0caddb3..a42334e 100755 --- a/nvm.sh +++ b/nvm.sh @@ -342,7 +342,7 @@ nvm_format_version() { VERSION="$(nvm_ensure_version_prefix "$1")" local NUM_GROUPS NUM_GROUPS="$(nvm_num_version_groups "$VERSION")" - if [ $NUM_GROUPS -lt 3 ]; then + if [ "$NUM_GROUPS" -lt 3 ]; then nvm_format_version "${VERSION%.}.0" else echo "$VERSION" | cut -f1-3 -d. @@ -1354,7 +1354,7 @@ nvm_get_make_jobs() { NVM_MAKE_JOBS=1 else echo "Detected that you have $NVM_CPU_THREADS CPU thread(s)" - if [ $NVM_CPU_THREADS -gt 2 ]; then + if [ "$NVM_CPU_THREADS" -gt 2 ]; then NVM_MAKE_JOBS=$(($NVM_CPU_THREADS - 1)) echo "Set the number of jobs to $NVM_CPU_THREADS - 1 = $NVM_MAKE_JOBS jobs to speed up the build" else @@ -1419,9 +1419,9 @@ nvm_install_node_source() { command tar -xzf "$tmptarball" -C "$tmpdir" && \ cd "$tmpdir/node-$VERSION" && \ ./configure --prefix="$VERSION_PATH" $ADDITIONAL_PARAMETERS && \ - $make -j $NVM_MAKE_JOBS ${MAKE_CXX-} && \ + $make -j "$NVM_MAKE_JOBS" ${MAKE_CXX-} && \ command rm -f "$VERSION_PATH" 2>/dev/null && \ - $make -j $NVM_MAKE_JOBS ${MAKE_CXX-} install + $make -j "$NVM_MAKE_JOBS" ${MAKE_CXX-} install ) then if ! nvm_has "npm" ; then @@ -1605,7 +1605,7 @@ nvm_is_natural_num() { 0) return 1 ;; -*) return 3 ;; # some BSDs return false positives for double-negated args *) - [ $1 -eq $1 2> /dev/null ] # returns 2 if it doesn't match + [ "$1" -eq "$1" ] 2> /dev/null # returns 2 if it doesn't match ;; esac } @@ -1735,7 +1735,6 @@ nvm() { local nobinary nobinary=0 - local make_jobs while [ $# -ne 0 ] do case "$1" in @@ -2380,7 +2379,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' local NVM_ALIAS_ORIGINAL NVM_ALIAS_ORIGINAL="$(nvm_alias "$2")" command rm -f "$NVM_ALIAS_DIR/$2" - echo "Deleted alias $2 - restore it with \`nvm alias $2 "$NVM_ALIAS_ORIGINAL"\`" + echo "Deleted alias $2 - restore it with \`nvm alias \"$2\" \"$NVM_ALIAS_ORIGINAL\"\`" ;; "reinstall-packages" | "copy-packages" ) if [ $# -ne 2 ]; then From 2d50606a78e15ba3c527f636ba8aa79792311ec6 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 30 Apr 2016 00:38:49 -0700 Subject: [PATCH 0678/1426] [Tests] flesh out `nvm_print_default_alias` tests --- test/fast/Unit tests/nvm_print_default_alias | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/fast/Unit tests/nvm_print_default_alias b/test/fast/Unit tests/nvm_print_default_alias index a2e0e55..1785756 100755 --- a/test/fast/Unit tests/nvm_print_default_alias +++ b/test/fast/Unit tests/nvm_print_default_alias @@ -13,6 +13,10 @@ nvm_print_implicit_alias() { echo '' } +OUTPUT="$(nvm_print_default_alias 2>&1)" +EXPECTED_OUTPUT='A default alias is required.' +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "'nvm_print_default_alias' produced wrong output; got '$OUTPUT', expected '$EXPECTED_OUTPUT'" + OUTPUT="$(nvm_print_default_alias foo | strip_colors)" EXPECTED_OUTPUT='' [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_print_default_alias foo' should produce no output when nvm_print_implicit_alias does not; got '$OUTPUT'" From 1c3f8da6c38bdfecf3dbf01c6753a6fd27032b9d Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 27 Apr 2016 14:23:34 -0700 Subject: [PATCH 0679/1426] `nvm alias`: factor out alias creation to `nvm_make_alias` --- nvm.sh | 24 ++++++++++++++++++++---- test/fast/Unit tests/nvm_make_alias | 19 +++++++++++++++++++ 2 files changed, 39 insertions(+), 4 deletions(-) create mode 100755 test/fast/Unit tests/nvm_make_alias diff --git a/nvm.sh b/nvm.sh index a42334e..6135a1f 100755 --- a/nvm.sh +++ b/nvm.sh @@ -464,6 +464,22 @@ nvm_print_default_alias() { fi } +nvm_make_alias() { + local ALIAS + ALIAS="${1-}" + if [ -z "$ALIAS" ]; then + >&2 echo "an alias name is required" + return 1 + fi + local VERSION + VERSION="${2-}" + if [ -z "$VERSION" ]; then + >&2 echo "an alias target version is required" + return 2 + fi + echo "$VERSION" | tee "$(nvm_alias_path)/${ALIAS}" >/dev/null +} + nvm_alias() { local ALIAS ALIAS="${1-}" @@ -2356,11 +2372,11 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' if [ $? -ne 0 ]; then echo "! WARNING: Version '${3-}' does not exist." >&2 fi - echo "$3" | tee "$NVM_ALIAS_DIR/${2-}" >/dev/null - if [ ! "_$3" = "_$VERSION" ]; then - echo "${2-} -> ${3-} (-> $VERSION)" - else + nvm_make_alias "${2-}" "${3-}" + if [ "_$3" = "_$VERSION" ]; then echo "${2-} -> ${3-}" + else + echo "${2-} -> ${3-} (-> $VERSION)" fi ;; "unalias" ) diff --git a/test/fast/Unit tests/nvm_make_alias b/test/fast/Unit tests/nvm_make_alias new file mode 100755 index 0000000..c57906d --- /dev/null +++ b/test/fast/Unit tests/nvm_make_alias @@ -0,0 +1,19 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +OUTPUT="$(nvm_make_alias 2>&1)" +EXIT_CODE="$(nvm_make_alias >/dev/null 2>&1 ; echo $?)" +EXPECTED_OUTPUT='an alias name is required' + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "\`nvm_make_alias\` did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" +[ "$EXIT_CODE" -eq 1 ] || die "\`nvm_make_alias\` did not exit with 1, got '$EXIT_CODE'" + +OUTPUT="$(nvm_make_alias foo 2>&1)" +EXIT_CODE="$(nvm_make_alias foo >/dev/null 2>&1 ; echo $?)" +EXPECTED_OUTPUT='an alias target version is required' + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "\`nvm_make_alias foo\` did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" +[ "$EXIT_CODE" -eq 2 ] || die "\`nvm_make_alias foo\` did not exit with 2, got '$EXIT_CODE'" From c83664960e058ae984617667a56325e1230ec089 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 27 Apr 2016 15:20:22 -0700 Subject: [PATCH 0680/1426] Automatically create LTS aliases every time we talk to nodejs.org/dist --- nvm.sh | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index d8d248e..541e4e3 100644 --- a/nvm.sh +++ b/nvm.sh @@ -912,11 +912,37 @@ nvm_ls_remote_index_tab() { ZSH_HAS_SHWORDSPLIT_UNSET="$(setopt | nvm_grep shwordsplit > /dev/null && nvm_echo $? || nvm_echo $?)" setopt shwordsplit fi - VERSIONS="$(nvm_download -L -s "$MIRROR/index.tab" -o - \ + local VERSION_LIST + VERSION_LIST="$(nvm_download -L -s "$MIRROR/index.tab" -o - \ | command sed " 1d; s/^/$PREFIX/; " \ + )" + local LTS_ALIAS + local LTS_VERSION + nvm_echo "$VERSION_LIST" \ + | awk '{ + if ($10 ~ /^\-?$/) { next } + if ($10 && !a[tolower($10)]++) { + if (alias) { print alias, version } + alias = "lts/" tolower($10) + version = $1 + } + } + END { + if (alias) { + print alias, version + print "lts/*", alias + } + }' \ + | while read -r LTS_ALIAS_LINE; do + LTS_ALIAS="${LTS_ALIAS_LINE%% *}" + LTS_VERSION="${LTS_ALIAS_LINE#* }" + nvm_make_alias "$LTS_ALIAS" "$LTS_VERSION" >/dev/null 2>&1 + done + + VERSIONS="$(nvm_echo "$VERSION_LIST" \ | command awk -v pattern="${PATTERN-}" -v lts="${LTS-}" '{ if (!$1) { next } if (pattern && tolower($1) !~ tolower(pattern)) { next } From bf683272ea5f4075be1030f460761ac51b653586 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 30 Apr 2016 12:50:59 -0700 Subject: [PATCH 0681/1426] `nvm alias`: colorize LTS aliases. --- nvm.sh | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/nvm.sh b/nvm.sh index 541e4e3..adf79ec 100644 --- a/nvm.sh +++ b/nvm.sh @@ -491,11 +491,17 @@ nvm_print_formatted_alias() { DEST_FORMAT='\033[1;31m%s\033[0m' VERSION_FORMAT='\033[1;31m%s\033[0m' fi + if [ "_${NVM_LTS-}" = '_true' ]; then + ALIAS_FORMAT='\033[1;33m%s\033[0m' + fi + if [ "_${DEST%/*}" = "_lts" ]; then + DEST_FORMAT='\033[1;33m%s\033[0m' + fi fi if [ "_$DEST" = "_$VERSION" ]; then - command printf "${ALIAS_FORMAT} ${ARROW} ${VERSION_FORMAT}${NEWLINE}" "$ALIAS" "$DEST" + command printf -- "${ALIAS_FORMAT} ${ARROW} ${VERSION_FORMAT}${NEWLINE}" "$ALIAS" "$DEST" else - command printf "${ALIAS_FORMAT} ${ARROW} ${DEST_FORMAT} (${ARROW} ${VERSION_FORMAT})${NEWLINE}" "$ALIAS" "$DEST" "$VERSION" + command printf -- "${ALIAS_FORMAT} ${ARROW} ${DEST_FORMAT} (${ARROW} ${VERSION_FORMAT})${NEWLINE}" "$ALIAS" "$DEST" "$VERSION" fi } @@ -517,7 +523,7 @@ nvm_print_alias_path() { local DEST DEST="$(nvm_alias "$ALIAS" 2> /dev/null || return 0)" if [ -n "$DEST" ]; then - DEFAULT=false nvm_print_formatted_alias "$ALIAS" "$DEST" + NVM_LTS="${NVM_LTS-}" DEFAULT=false nvm_print_formatted_alias "$ALIAS" "$DEST" fi } @@ -2602,7 +2608,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" local LTS_ALIAS for ALIAS_PATH in "$NVM_ALIAS_DIR/lts/${2-}"*; do - LTS_ALIAS="$(nvm_print_alias_path "$NVM_ALIAS_DIR" "$ALIAS_PATH")" + LTS_ALIAS="$(NVM_LTS=true nvm_print_alias_path "$NVM_ALIAS_DIR" "$ALIAS_PATH")" if [ -n "$LTS_ALIAS" ]; then nvm_echo "${LTS_ALIAS-}" fi From d1e51f361c0b1d9b74d002ef552e6973f1831dbf Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 1 May 2016 23:41:39 -0700 Subject: [PATCH 0682/1426] `nvm use`: Add `--lts`/`--lts=argon` support --- nvm.sh | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index adf79ec..de6ae28 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1841,6 +1841,8 @@ nvm() { nvm_echo ' --lts= When installing, only select from versions for a specific LTS line' nvm_echo ' nvm uninstall Uninstall a version' nvm_echo ' nvm use [--silent] Modify PATH to use . Uses .nvmrc if available' + nvm_echo ' --lts Uses automatic LTS (long-term support) alias `lts/*`, if available.' + nvm_echo ' --lts= Uses automatic alias for provided LTS line, if available.' nvm_echo ' nvm exec [--silent] [] Run on . Uses .nvmrc if available' nvm_echo ' nvm run [--silent] [] Run `node` on with as arguments. Uses .nvmrc if available' nvm_echo ' nvm current Display currently activated version' @@ -2202,6 +2204,7 @@ nvm() { NVM_USE_SILENT=0 local NVM_DELETE_PREFIX NVM_DELETE_PREFIX=0 + local NVM_LTS shift # remove "use" while [ $# -ne 0 ] @@ -2209,8 +2212,11 @@ nvm() { case "$1" in --silent) NVM_USE_SILENT=1 ;; --delete-prefix) NVM_DELETE_PREFIX=1 ;; + --lts) NVM_LTS='*' ;; + --lts=*) NVM_LTS="${1##--lts=}" ;; + --*) ;; *) - if [ -n "$1" ]; then + if [ -n "${1-}" ]; then PROVIDED_VERSION="$1" fi ;; @@ -2218,7 +2224,9 @@ nvm() { shift done - if [ -z "$PROVIDED_VERSION" ]; then + if [ -n "${NVM_LTS-}" ]; then + VERSION="$(nvm_match_version "lts/${NVM_LTS:-*}")" + elif [ -z "$PROVIDED_VERSION" ]; then nvm_rc_version if [ -n "$NVM_RC_VERSION" ]; then PROVIDED_VERSION="$NVM_RC_VERSION" @@ -2259,7 +2267,7 @@ nvm() { # This nvm_ensure_version_installed call can be a performance bottleneck # on shell startup. Perhaps we can optimize it away or make it faster. - nvm_ensure_version_installed "$PROVIDED_VERSION" + nvm_ensure_version_installed "${VERSION}" EXIT_CODE=$? if [ "$EXIT_CODE" != "0" ]; then return $EXIT_CODE From 45627d0a40a0974c4eab5cf9372b33160789ee8a Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 3 May 2016 23:18:44 -0700 Subject: [PATCH 0683/1426] `nvm exec`: add `--lts`/`--lts=argon` support. --- nvm.sh | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index de6ae28..2140dcc 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1844,6 +1844,8 @@ nvm() { nvm_echo ' --lts Uses automatic LTS (long-term support) alias `lts/*`, if available.' nvm_echo ' --lts= Uses automatic alias for provided LTS line, if available.' nvm_echo ' nvm exec [--silent] [] Run on . Uses .nvmrc if available' + nvm_echo ' --lts Uses automatic LTS (long-term support) alias `lts/*`, if available.' + nvm_echo ' --lts= Uses automatic alias for provided LTS line, if available.' nvm_echo ' nvm run [--silent] [] Run `node` on with as arguments. Uses .nvmrc if available' nvm_echo ' nvm current Display currently activated version' nvm_echo ' nvm ls List installed versions' @@ -2409,10 +2411,13 @@ nvm() { shift local NVM_SILENT + local NVM_LTS while [ $# -gt 0 ] do case "$1" in --silent) NVM_SILENT='--silent' ; shift ;; + --lts) NVM_LTS='*' ; shift ;; + --lts=*) NVM_LTS="${1##--lts=}" ; shift ;; --) break ;; --*) nvm_err "Unsupported option \"$1\"." @@ -2430,9 +2435,12 @@ nvm() { local provided_version provided_version="$1" - if [ -n "$provided_version" ]; then + if [ "${NVM_LTS-}" != '' ]; then + provided_version="lts/${NVM_LTS:-*}" + VERSION="$provided_version" + elif [ -n "$provided_version" ]; then VERSION="$(nvm_version "$provided_version" || return 0)" - if [ "_$VERSION" = "_N/A" ] && ! nvm_is_valid_version "$provided_version"; then + if [ "_$VERSION" = '_N/A' ] && ! nvm_is_valid_version "$provided_version"; then if [ -n "${NVM_SILENT-}" ]; then nvm_rc_version >/dev/null 2>&1 else @@ -2452,7 +2460,11 @@ nvm() { fi if [ -z "${NVM_SILENT-}" ]; then - if nvm_is_iojs_version "$VERSION"; then + if [ "${NVM_LTS-}" = '*' ]; then + nvm_echo "Running node latest LTS -> $(nvm_version "$VERSION")$(nvm use --silent "$VERSION" && nvm_print_npm_version)" + elif [ -n "${NVM_LTS-}" ]; then + nvm_echo "Running node LTS \"${NVM_LTS-}\" -> $(nvm_version "$VERSION")$(nvm use --silent "$VERSION" && nvm_print_npm_version)" + elif nvm_is_iojs_version "$VERSION"; then nvm_echo "Running io.js $(nvm_strip_iojs_prefix "$VERSION")$(nvm use --silent "$VERSION" && nvm_print_npm_version)" else nvm_echo "Running node $VERSION$(nvm use --silent "$VERSION" && nvm_print_npm_version)" From 859be3f6a118858391dbab04dca7f60a1b1b2c70 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 4 May 2016 00:29:37 -0700 Subject: [PATCH 0684/1426] `nvm run`: add `--lts`/`--lts=argon` support --- nvm.sh | 46 ++++++++++++++++++++++++++++------------------ 1 file changed, 28 insertions(+), 18 deletions(-) diff --git a/nvm.sh b/nvm.sh index 2140dcc..9b956c6 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1847,6 +1847,8 @@ nvm() { nvm_echo ' --lts Uses automatic LTS (long-term support) alias `lts/*`, if available.' nvm_echo ' --lts= Uses automatic alias for provided LTS line, if available.' nvm_echo ' nvm run [--silent] [] Run `node` on with as arguments. Uses .nvmrc if available' + nvm_echo ' --lts Uses automatic LTS (long-term support) alias `lts/*`, if available.' + nvm_echo ' --lts= Uses automatic alias for provided LTS line, if available.' nvm_echo ' nvm current Display currently activated version' nvm_echo ' nvm ls List installed versions' nvm_echo ' nvm ls List versions matching a given ' @@ -2332,10 +2334,13 @@ nvm() { shift local NVM_SILENT + local NVM_LTS while [ $# -gt 0 ] do case "$1" in --silent) NVM_SILENT='--silent' ; shift ;; + --lts) NVM_LTS='*' ; shift ;; + --lts=*) NVM_LTS="${1##--lts=}" ; shift ;; *) if [ -n "$1" ]; then break @@ -2346,7 +2351,7 @@ nvm() { esac done - if [ $# -lt 1 ]; then + if [ $# -lt 1 ] && [ -z "${NVM_LTS-}" ]; then if [ -n "${NVM_SILENT-}" ]; then nvm_rc_version >/dev/null 2>&1 && has_checked_nvmrc=1 else @@ -2354,30 +2359,30 @@ nvm() { fi if [ -n "$NVM_RC_VERSION" ]; then VERSION="$(nvm_version "$NVM_RC_VERSION" || return 0)" - else - VERSION='N/A' fi - if [ $VERSION = "N/A" ]; then + if [ "${VERSION:-N/A}" = 'N/A' ]; then >&2 nvm --help return 127 fi fi - provided_version="$1" - if [ -n "$provided_version" ]; then - VERSION="$(nvm_version "$provided_version" || return 0)" - if [ "_$VERSION" = "_N/A" ] && ! nvm_is_valid_version "$provided_version"; then - provided_version='' - if [ $has_checked_nvmrc -ne 1 ]; then + if [ -z "${NVM_LTS-}" ]; then + provided_version="$1" + if [ -n "$provided_version" ]; then + VERSION="$(nvm_version "$provided_version" || return 0)" + if [ "_${VERSION:-N/A}" = '_N/A' ] && ! nvm_is_valid_version "$provided_version"; then + provided_version='' + if [ $has_checked_nvmrc -ne 1 ]; then if [ -n "${NVM_SILENT-}" ]; then - nvm_rc_version >/dev/null 2>&1 && has_checked_nvmrc=1 - else - nvm_rc_version && has_checked_nvmrc=1 + nvm_rc_version >/dev/null 2>&1 && has_checked_nvmrc=1 + else + nvm_rc_version && has_checked_nvmrc=1 + fi fi + VERSION="$(nvm_version "$NVM_RC_VERSION" || return 0)" + else + shift fi - VERSION="$(nvm_version "$NVM_RC_VERSION" || return 0)" - else - shift fi fi @@ -2394,12 +2399,17 @@ nvm() { ZSH_HAS_SHWORDSPLIT_UNSET="$(setopt | nvm_grep shwordsplit > /dev/null && nvm_echo $? || nvm_echo $?)" setopt shwordsplit fi + local LTS_ARG + if [ -n "${NVM_LTS-}" ]; then + LTS_ARG="--lts=${NVM_LTS-}" + VERSION='' + fi if [ "_$VERSION" = "_N/A" ]; then nvm_ensure_version_installed "$provided_version" elif [ "$NVM_IOJS" = true ]; then - nvm exec "${NVM_SILENT-}" "$VERSION" iojs "$@" + nvm exec "${NVM_SILENT-}" "${LTS_ARG-}" "$VERSION" iojs "$@" else - nvm exec "${NVM_SILENT-}" "$VERSION" node "$@" + nvm exec "${NVM_SILENT-}" "${LTS_ARG-}" "$VERSION" node "$@" fi EXIT_CODE="$?" if [ "$ZSH_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then From 0dd28462156f124ceec13c876e7b5408a9cfd94b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 4 May 2016 01:03:14 -0700 Subject: [PATCH 0685/1426] =?UTF-8?q?[fix]=20`set=20-e`:=20ensure=20`nvm?= =?UTF-8?q?=5Fversion`=20returning=203,=20and=20`nvm=5Falias`=20returning?= =?UTF-8?q?=202,=20doesn=E2=80=99t=20terminate=20the=20process.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nvm.sh | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/nvm.sh b/nvm.sh index 6135a1f..c6ee43c 100755 --- a/nvm.sh +++ b/nvm.sh @@ -399,7 +399,7 @@ nvm_print_formatted_alias() { local VERSION_FORMAT local ALIAS_FORMAT local DEST_FORMAT - VERSION="$(nvm_version "$DEST")" + VERSION="$(nvm_version "$DEST" || return 0)" ALIAS_FORMAT='%s' DEST_FORMAT='%s' VERSION_FORMAT='%s' @@ -444,7 +444,7 @@ nvm_print_alias_path() { local ALIAS ALIAS="${ALIAS_PATH##$NVM_ALIAS_DIR\/}" local DEST - DEST="$(nvm_alias "$ALIAS" 2> /dev/null)" + DEST="$(nvm_alias "$ALIAS" 2> /dev/null || return 0)" if [ -n "$DEST" ]; then DEFAULT=false nvm_print_formatted_alias "$ALIAS" "$DEST" fi @@ -1797,11 +1797,11 @@ nvm() { case "$1" in --reinstall-packages-from=*) PROVIDED_REINSTALL_PACKAGES_FROM="$(echo "$1" | command cut -c 27-)" - REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM")" + REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM" || return 0)" ;; --copy-packages-from=*) PROVIDED_REINSTALL_PACKAGES_FROM="$(echo "$1" | command cut -c 22-)" - REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM")" + REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM" || return 0)" ;; *) ADDITIONAL_PARAMETERS="$ADDITIONAL_PARAMETERS $1" @@ -2121,7 +2121,7 @@ nvm() { nvm_rc_version && has_checked_nvmrc=1 fi if [ -n "$NVM_RC_VERSION" ]; then - VERSION="$(nvm_version "$NVM_RC_VERSION")" + VERSION="$(nvm_version "$NVM_RC_VERSION" || return 0)" else VERSION='N/A' fi @@ -2133,7 +2133,7 @@ nvm() { provided_version="$1" if [ -n "$provided_version" ]; then - VERSION="$(nvm_version "$provided_version")" + VERSION="$(nvm_version "$provided_version" || return 0)" if [ "_$VERSION" = "_N/A" ] && ! nvm_is_valid_version "$provided_version"; then provided_version='' if [ $has_checked_nvmrc -ne 1 ]; then @@ -2143,7 +2143,7 @@ nvm() { nvm_rc_version && has_checked_nvmrc=1 fi fi - VERSION="$(nvm_version "$NVM_RC_VERSION")" + VERSION="$(nvm_version "$NVM_RC_VERSION" || return 0)" else shift fi @@ -2205,7 +2205,7 @@ nvm() { local provided_version provided_version="$1" if [ -n "$provided_version" ]; then - VERSION="$(nvm_version "$provided_version")" + VERSION="$(nvm_version "$provided_version" || return 0)" if [ "_$VERSION" = "_N/A" ] && ! nvm_is_valid_version "$provided_version"; then if [ "$NVM_SILENT" -eq 1 ]; then nvm_rc_version >/dev/null 2>&1 @@ -2213,7 +2213,7 @@ nvm() { nvm_rc_version fi provided_version="$NVM_RC_VERSION" - VERSION="$(nvm_version "$provided_version")" + VERSION="$(nvm_version "$provided_version" || return 0)" else shift fi @@ -2300,10 +2300,10 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' nvm_rc_version if [ -n "$NVM_RC_VERSION" ]; then provided_version="$NVM_RC_VERSION" - VERSION=$(nvm_version "$NVM_RC_VERSION") + VERSION=$(nvm_version "$NVM_RC_VERSION" || return 0) fi elif [ "_$2" != '_system' ]; then - VERSION="$(nvm_version "$provided_version")" + VERSION="$(nvm_version "$provided_version" || return 0)" else VERSION="$2" fi @@ -2368,8 +2368,8 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' >&2 echo "Aliases in subdirectories are not supported." return 1 fi - VERSION="$(nvm_version "${3-}")" - if [ $? -ne 0 ]; then + VERSION="$(nvm_version "${3-}" || return 0)" + if [ "$VERSION" = 'N/A' ]; then echo "! WARNING: Version '${3-}' does not exist." >&2 fi nvm_make_alias "${2-}" "${3-}" @@ -2406,7 +2406,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' local PROVIDED_VERSION PROVIDED_VERSION="$2" - if [ "$PROVIDED_VERSION" = "$(nvm_ls_current)" ] || [ "$(nvm_version "$PROVIDED_VERSION")" = "$(nvm_ls_current)" ]; then + if [ "$PROVIDED_VERSION" = "$(nvm_ls_current)" ] || [ "$(nvm_version "$PROVIDED_VERSION" || return 0)" = "$(nvm_ls_current)" ]; then echo 'Can not reinstall packages from the current version of node.' >&2 return 2 fi @@ -2419,7 +2419,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' fi VERSION="system" else - VERSION="$(nvm_version "$PROVIDED_VERSION")" + VERSION="$(nvm_version "$PROVIDED_VERSION" || return 0)" fi local NPMLIST From 6fb94e0dab013b8964f7ad6ecc8c49f93117e28c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 4 May 2016 00:33:56 -0700 Subject: [PATCH 0686/1426] =?UTF-8?q?[fix]=20`nvm=20exec`:=20show=20?= =?UTF-8?q?=E2=80=9Cio.js=E2=80=9D=20for=20io.js=20versions.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nvm.sh | 8 ++++- ...eamble works and respects \"silent\" flag" | 31 +++++++++++++++++++ .../Running \"nvm exec 0.x\" should work" | 2 +- ..."nvm exec\" should pick up .nvmrc version" | 2 +- test/slow/nvm exec/setup_dir | 2 +- test/slow/nvm exec/teardown_dir | 2 +- 6 files changed, 42 insertions(+), 5 deletions(-) create mode 100755 "test/slow/nvm exec/Preamble works and respects \"silent\" flag" diff --git a/nvm.sh b/nvm.sh index c6ee43c..9796582 100755 --- a/nvm.sh +++ b/nvm.sh @@ -2225,7 +2225,13 @@ nvm() { return $EXIT_CODE fi - [ $NVM_SILENT -eq 1 ] || echo "Running node $VERSION$(nvm use --silent "$VERSION" && nvm_print_npm_version)" + if [ "${NVM_SILENT:-0}" != '1' ]; then + if nvm_is_iojs_version "$VERSION"; then + echo "Running io.js $(nvm_strip_iojs_prefix "$VERSION")$(nvm use --silent "$VERSION" && nvm_print_npm_version)" + else + echo "Running node $VERSION$(nvm use --silent "$VERSION" && nvm_print_npm_version)" + fi + fi NODE_VERSION="$VERSION" "$NVM_DIR/nvm-exec" "$@" ;; "ls" | "list" ) diff --git "a/test/slow/nvm exec/Preamble works and respects \"silent\" flag" "b/test/slow/nvm exec/Preamble works and respects \"silent\" flag" new file mode 100755 index 0000000..a4153ab --- /dev/null +++ "b/test/slow/nvm exec/Preamble works and respects \"silent\" flag" @@ -0,0 +1,31 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +nvm use 0.10 +NPM_VERSION_TEN="$(npm --version)" +NODE_VERSION_TEN="$(node --version)" + +nvm use 1.0.0 && [ "$(node --version)" = "v1.0.0" ] || die "\`nvm use\` failed!" +NPM_VERSION_ONE="$(npm --version)" + +OUTPUT="$(nvm exec 0.10 npm --version)" +EXPECTED_OUTPUT="Running node ${NODE_VERSION_TEN} (npm v${NPM_VERSION_TEN}) +${NPM_VERSION_TEN}" +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "\`nvm exec\` failed to report node preamble; expected '$EXPECTED_OUTPUT', got '$OUTPUT'" + +OUTPUT="$(nvm exec --silent 0.10 npm --version | head -1)" +EXPECTED_OUTPUT="${NPM_VERSION_TEN}" +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "\`nvm exec --silent\` failed to node suppress preamble; expected '$EXPECTED_OUTPUT', got '$OUTPUT'" + +OUTPUT="$(nvm exec 1 npm --version)" +EXPECTED_OUTPUT="Running io.js v1.0.0 (npm v${NPM_VERSION_ONE}) +${NPM_VERSION_ONE}" +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "\`nvm exec\` failed to report io.js preamble; expected '$EXPECTED_OUTPUT', got '$OUTPUT'" + +OUTPUT="$(nvm exec --silent 1 npm --version | head -1)" +EXPECTED_OUTPUT="${NPM_VERSION_ONE}" +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "\`nvm exec --silent\` failed to suppress io.js preamble; expected '$EXPECTED_OUTPUT', got '$OUTPUT'" + diff --git "a/test/slow/nvm exec/Running \"nvm exec 0.x\" should work" "b/test/slow/nvm exec/Running \"nvm exec 0.x\" should work" index bf036cf..537fafe 100755 --- "a/test/slow/nvm exec/Running \"nvm exec 0.x\" should work" +++ "b/test/slow/nvm exec/Running \"nvm exec 0.x\" should work" @@ -8,7 +8,7 @@ nvm use 0.10 NPM_VERSION_TEN="$(npm --version)" TEST_STRING="foo bar" -nvm use 0.11.7 && [ "$(node --version)" = "v0.11.7" ] || die "\`nvm use\` failed!" +nvm use 1.0.0 && [ "$(node --version)" = "v1.0.0" ] || die "\`nvm use\` failed!" [ "$(nvm exec 0.10 npm --version | tail -1)" = "$NPM_VERSION_TEN" ] || die "`nvm exec` failed to run with the correct version" diff --git "a/test/slow/nvm exec/Running \"nvm exec\" should pick up .nvmrc version" "b/test/slow/nvm exec/Running \"nvm exec\" should pick up .nvmrc version" index 203cd9a..3cc0cb8 100755 --- "a/test/slow/nvm exec/Running \"nvm exec\" should pick up .nvmrc version" +++ "b/test/slow/nvm exec/Running \"nvm exec\" should pick up .nvmrc version" @@ -7,7 +7,7 @@ die () { echo $@ ; exit 1; } nvm use 0.10.7 NPM_VERSION_TEN="$(npm --version)" -nvm use 0.11.7 && [ "$(node --version)" = "v0.11.7" ] || die "\`nvm use\` failed!" +nvm use 1.0.0 && [ "$(node --version)" = "v1.0.0" ] || die "\`nvm use\` failed!" echo "0.10.7" > .nvmrc diff --git a/test/slow/nvm exec/setup_dir b/test/slow/nvm exec/setup_dir index a5fc4bc..d858b23 100755 --- a/test/slow/nvm exec/setup_dir +++ b/test/slow/nvm exec/setup_dir @@ -2,7 +2,7 @@ . ../../../nvm.sh nvm install 0.10.7 -nvm install 0.11.7 +nvm install 1.0.0 if [ -f ".nvmrc" ]; then mv .nvmrc .nvmrc.bak diff --git a/test/slow/nvm exec/teardown_dir b/test/slow/nvm exec/teardown_dir index 789456c..d9e0dc6 100755 --- a/test/slow/nvm exec/teardown_dir +++ b/test/slow/nvm exec/teardown_dir @@ -3,7 +3,7 @@ . ../../../nvm.sh nvm deactivate nvm uninstall v0.10.7 -nvm uninstall v0.11.7 +nvm uninstall v1.0.0 rm .nvmrc From 0d62626ac666fce56ce371864630087d07d9bebd Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 4 May 2016 00:34:07 -0700 Subject: [PATCH 0687/1426] [refactor] `nvm exec`: refactor argument parsing. --- nvm.sh | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/nvm.sh b/nvm.sh index 9796582..37434e4 100755 --- a/nvm.sh +++ b/nvm.sh @@ -2196,18 +2196,31 @@ nvm() { shift local NVM_SILENT - NVM_SILENT=0 - if [ "_$1" = "_--silent" ]; then - NVM_SILENT=1 - shift - fi + while [ $# -gt 0 ] + do + case "$1" in + --silent) NVM_SILENT='--silent' ; shift ;; + --) break ;; + --*) + >&2 echo "Unsupported option "$1"." + return 55 + ;; + *) + if [ -n "$1" ]; then + break + else + shift + fi + ;; # stop processing arguments + esac + done local provided_version provided_version="$1" if [ -n "$provided_version" ]; then VERSION="$(nvm_version "$provided_version" || return 0)" if [ "_$VERSION" = "_N/A" ] && ! nvm_is_valid_version "$provided_version"; then - if [ "$NVM_SILENT" -eq 1 ]; then + if [ -n "${NVM_SILENT-}" ]; then nvm_rc_version >/dev/null 2>&1 else nvm_rc_version @@ -2225,7 +2238,7 @@ nvm() { return $EXIT_CODE fi - if [ "${NVM_SILENT:-0}" != '1' ]; then + if [ -z "${NVM_SILENT-}" ]; then if nvm_is_iojs_version "$VERSION"; then echo "Running io.js $(nvm_strip_iojs_prefix "$VERSION")$(nvm use --silent "$VERSION" && nvm_print_npm_version)" else From e8355e31899b020e20c859eff0345eb6633b6e40 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 4 May 2016 00:35:43 -0700 Subject: [PATCH 0688/1426] [refactor] `nvm run`: refactor argument parsing. --- nvm.sh | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/nvm.sh b/nvm.sh index 37434e4..07adb83 100755 --- a/nvm.sh +++ b/nvm.sh @@ -2108,14 +2108,22 @@ nvm() { shift local NVM_SILENT - NVM_SILENT=0 - if [ "_$1" = "_--silent" ]; then - NVM_SILENT=1 - shift - fi + while [ $# -gt 0 ] + do + case "$1" in + --silent) NVM_SILENT='--silent' ; shift ;; + *) + if [ -n "$1" ]; then + break + else + shift + fi + ;; # stop processing arguments + esac + done if [ $# -lt 1 ]; then - if [ "$NVM_SILENT" -eq 1 ]; then + if [ -n "${NVM_SILENT-}" ]; then nvm_rc_version >/dev/null 2>&1 && has_checked_nvmrc=1 else nvm_rc_version && has_checked_nvmrc=1 @@ -2137,7 +2145,7 @@ nvm() { if [ "_$VERSION" = "_N/A" ] && ! nvm_is_valid_version "$provided_version"; then provided_version='' if [ $has_checked_nvmrc -ne 1 ]; then - if [ "$NVM_SILENT" -eq 1 ]; then + if [ -n "${NVM_SILENT-}" ]; then nvm_rc_version >/dev/null 2>&1 && has_checked_nvmrc=1 else nvm_rc_version && has_checked_nvmrc=1 @@ -2176,11 +2184,11 @@ nvm() { fi EXIT_CODE="$?" elif [ "$NVM_IOJS" = true ]; then - [ $NVM_SILENT -eq 1 ] || echo "Running io.js $(nvm_strip_iojs_prefix "$VERSION")$(nvm use --silent "$VERSION" && nvm_print_npm_version)" + [ -n "${NVM_SILENT-}" ] || echo "Running io.js $(nvm_strip_iojs_prefix "$VERSION")$(nvm use --silent "$VERSION" && nvm_print_npm_version)" OUTPUT="$(nvm use "$VERSION" >/dev/null && iojs $ARGS)" EXIT_CODE="$?" else - [ $NVM_SILENT -eq 1 ] || echo "Running node $VERSION$(nvm use --silent "$VERSION" && nvm_print_npm_version)" + [ -n "${NVM_SILENT-}" ] || echo "Running node $VERSION$(nvm use --silent "$VERSION" && nvm_print_npm_version)" OUTPUT="$(nvm use "$VERSION" >/dev/null && node $ARGS)" EXIT_CODE="$?" fi From a69f9a8898166c97db787b1e8f06fc021157b9e5 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 4 May 2016 00:58:08 -0700 Subject: [PATCH 0689/1426] [fix] `nvm run`: pass through `--silent` on bare `nvm run` --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 07adb83..29390a3 100755 --- a/nvm.sh +++ b/nvm.sh @@ -2178,9 +2178,9 @@ nvm() { EXIT_CODE=$? elif [ -z "$ARGS" ]; then if [ "$NVM_IOJS" = true ]; then - nvm exec "$VERSION" iojs + nvm exec "${NVM_SILENT-}" "$VERSION" iojs else - nvm exec "$VERSION" node + nvm exec "${NVM_SILENT-}" "$VERSION" node fi EXIT_CODE="$?" elif [ "$NVM_IOJS" = true ]; then From ab49a5b0c3bd7971d5d2e64f3b6ded4ecdb6d08c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 4 May 2016 00:58:12 -0700 Subject: [PATCH 0690/1426] [refactor] `nvm run`: call through to `nvm exec` to remove redundant code --- nvm.sh | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/nvm.sh b/nvm.sh index 29390a3..80a71de 100755 --- a/nvm.sh +++ b/nvm.sh @@ -2164,7 +2164,6 @@ nvm() { local ARGS ARGS="$@" - local OUTPUT local EXIT_CODE local ZHS_HAS_SHWORDSPLIT_UNSET @@ -2175,29 +2174,15 @@ nvm() { fi if [ "_$VERSION" = "_N/A" ]; then nvm_ensure_version_installed "$provided_version" - EXIT_CODE=$? - elif [ -z "$ARGS" ]; then - if [ "$NVM_IOJS" = true ]; then - nvm exec "${NVM_SILENT-}" "$VERSION" iojs - else - nvm exec "${NVM_SILENT-}" "$VERSION" node - fi - EXIT_CODE="$?" elif [ "$NVM_IOJS" = true ]; then - [ -n "${NVM_SILENT-}" ] || echo "Running io.js $(nvm_strip_iojs_prefix "$VERSION")$(nvm use --silent "$VERSION" && nvm_print_npm_version)" - OUTPUT="$(nvm use "$VERSION" >/dev/null && iojs $ARGS)" - EXIT_CODE="$?" + nvm exec "${NVM_SILENT-}" "$VERSION" iojs $ARGS else - [ -n "${NVM_SILENT-}" ] || echo "Running node $VERSION$(nvm use --silent "$VERSION" && nvm_print_npm_version)" - OUTPUT="$(nvm use "$VERSION" >/dev/null && node $ARGS)" - EXIT_CODE="$?" + nvm exec "${NVM_SILENT-}" "$VERSION" node $ARGS fi + EXIT_CODE="$?" if [ "$ZHS_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then unsetopt shwordsplit fi - if [ -n "$OUTPUT" ]; then - echo "$OUTPUT" - fi return $EXIT_CODE ;; "exec" ) From 62cca4e6d85305ead1a151f5a124c87cd28e6fe9 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 5 May 2016 00:14:12 -0700 Subject: [PATCH 0691/1426] Prefer `nvm --help` over `nvm help` --- nvm.sh | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/nvm.sh b/nvm.sh index 80a71de..de6c621 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1642,7 +1642,7 @@ nvm_check_file_permissions() { nvm() { if [ $# -lt 1 ]; then - nvm help + nvm --help return fi @@ -1654,7 +1654,7 @@ nvm() { local ADDITIONAL_PARAMETERS case $1 in - "help" ) + 'help' | '--help' ) local NVM_IOJS_PREFIX NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" local NVM_NODE_PREFIX @@ -1742,7 +1742,7 @@ nvm() { version_not_provided=1 nvm_rc_version if [ -z "$NVM_RC_VERSION" ]; then - >&2 nvm help + >&2 nvm --help return 127 fi fi @@ -1887,7 +1887,7 @@ nvm() { ;; "uninstall" ) if [ $# -ne 2 ]; then - >&2 nvm help + >&2 nvm --help return 127 fi @@ -2015,7 +2015,7 @@ nvm() { fi if [ -z "$VERSION" ]; then - >&2 nvm help + >&2 nvm --help return 127 fi @@ -2134,7 +2134,7 @@ nvm() { VERSION='N/A' fi if [ $VERSION = "N/A" ]; then - >&2 nvm help + >&2 nvm --help return 127 fi fi @@ -2320,7 +2320,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' VERSION="$2" fi if [ -z "$VERSION" ]; then - >&2 nvm help + >&2 nvm --help return 127 fi @@ -2396,7 +2396,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' NVM_ALIAS_DIR="$(nvm_alias_path)" command mkdir -p "$NVM_ALIAS_DIR" if [ $# -ne 2 ]; then - >&2 nvm help + >&2 nvm --help return 127 fi if [ "${2#*\/}" != "${2-}" ]; then @@ -2411,7 +2411,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' ;; "reinstall-packages" | "copy-packages" ) if [ $# -ne 2 ]; then - >&2 nvm help + >&2 nvm --help return 127 fi @@ -2496,7 +2496,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_DIR NVM_CD_FLAGS > /dev/null 2>&1 ;; * ) - >&2 nvm help + >&2 nvm --help return 127 ;; esac From 4842641e78cfb9b9af0fff1d96c49a5016c6a8d1 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 5 May 2016 00:17:35 -0700 Subject: [PATCH 0692/1426] [Refactor] create `nvm_echo` and `nvm_err` --- nvm.sh | 489 +++++++++++++++++++++++++++++---------------------------- 1 file changed, 251 insertions(+), 238 deletions(-) diff --git a/nvm.sh b/nvm.sh index de6c621..5c41c3a 100755 --- a/nvm.sh +++ b/nvm.sh @@ -10,6 +10,19 @@ NVM_SCRIPT_SOURCE="$_" +nvm_echo() { + command printf %s\\n "$*" 2>/dev/null || { + nvm_echo() { + \printf %s\\n "$*" # on zsh, `command printf` sometimes fails + } + nvm_echo "$*" + } +} + +nvm_err() { + >&2 nvm_echo "$*" +} + nvm_has() { type "$1" > /dev/null 2>&1 } @@ -26,14 +39,14 @@ nvm_get_latest() { elif nvm_has "wget"; then NVM_LATEST_URL="$(wget http://latest.nvm.sh --server-response -O /dev/null 2>&1 | command awk '/^ Location: /{DEST=$2} END{ print DEST }')" else - >&2 echo 'nvm needs curl or wget to proceed.' + nvm_err 'nvm needs curl or wget to proceed.' return 1 fi if [ "_$NVM_LATEST_URL" = "_" ]; then - >&2 echo "http://latest.nvm.sh did not redirect to the latest release on Github" + nvm_err "http://latest.nvm.sh did not redirect to the latest release on Github" return 2 else - echo "$NVM_LATEST_URL" | command awk -F '/' '{print $NF}' + nvm_echo "$NVM_LATEST_URL" | command awk -F '/' '{print $NF}' fi } @@ -42,7 +55,7 @@ nvm_download() { curl -q $* elif nvm_has "wget"; then # Emulate curl with wget - ARGS=$(echo "$*" | command sed -e 's/--progress-bar /--progress=bar /' \ + ARGS=$(nvm_echo "$*" | command sed -e 's/--progress-bar /--progress=bar /' \ -e 's/-L //' \ -e 's/-I /--server-response /' \ -e 's/-s /-q /' \ @@ -66,7 +79,7 @@ nvm_is_version_installed() { nvm_print_npm_version() { if nvm_has "npm"; then - echo " (npm v$(npm --version 2>/dev/null))" + command printf " (npm v$(npm --version 2>/dev/null))" fi } @@ -107,7 +120,7 @@ nvm_tree_contains_path() { node_path="$2" if [ "@$tree@" = "@@" ] || [ "@$node_path@" = "@@" ]; then - >&2 echo "both the tree and the node path are required" + nvm_err "both the tree and the node path are required" return 2 fi @@ -122,11 +135,11 @@ nvm_tree_contains_path() { # Traverse up in directory tree to find containing folder nvm_find_up() { local path - path=$PWD + path="$PWD" while [ "$path" != "" ] && [ ! -f "$path/$1" ]; do path=${path%/*} done - echo "$path" + nvm_echo "$path" } @@ -134,7 +147,7 @@ nvm_find_nvmrc() { local dir dir="$(nvm_find_up '.nvmrc')" if [ -e "$dir/.nvmrc" ]; then - echo "$dir/.nvmrc" + nvm_echo "$dir/.nvmrc" fi } @@ -145,9 +158,9 @@ nvm_rc_version() { NVMRC_PATH="$(nvm_find_nvmrc)" if [ -e "$NVMRC_PATH" ]; then read -r NVM_RC_VERSION < "$NVMRC_PATH" || printf '' - echo "Found '$NVMRC_PATH' with version <$NVM_RC_VERSION>" + nvm_echo "Found '$NVMRC_PATH' with version <$NVM_RC_VERSION>" else - >&2 echo "No .nvmrc file found" + nvm_err "No .nvmrc file found" return 1 fi } @@ -172,33 +185,33 @@ nvm_version_dir() { local NVM_WHICH_DIR NVM_WHICH_DIR="$1" if [ -z "$NVM_WHICH_DIR" ] || [ "_$NVM_WHICH_DIR" = "_new" ]; then - echo "$NVM_DIR/versions/node" + nvm_echo "$NVM_DIR/versions/node" elif [ "_$NVM_WHICH_DIR" = "_iojs" ]; then - echo "$NVM_DIR/versions/io.js" + nvm_echo "$NVM_DIR/versions/io.js" elif [ "_$NVM_WHICH_DIR" = "_old" ]; then - echo "$NVM_DIR" + nvm_echo "$NVM_DIR" else - echo "unknown version dir" >&2 + nvm_err 'unknown version dir' return 3 fi } nvm_alias_path() { - echo "$(nvm_version_dir old)/alias" + nvm_echo "$(nvm_version_dir old)/alias" } nvm_version_path() { local VERSION VERSION="$1" if [ -z "$VERSION" ]; then - echo "version is required" >&2 + nvm_err 'version is required' return 3 elif nvm_is_iojs_version "$VERSION"; then - echo "$(nvm_version_dir iojs)/$(nvm_strip_iojs_prefix "$VERSION")" + nvm_echo "$(nvm_version_dir iojs)/$(nvm_strip_iojs_prefix "$VERSION")" elif nvm_version_greater 0.12.0 "$VERSION"; then - echo "$(nvm_version_dir old)/$VERSION" + nvm_echo "$(nvm_version_dir old)/$VERSION" else - echo "$(nvm_version_dir new)/$VERSION" + nvm_echo "$(nvm_version_dir new)/$VERSION" fi } @@ -213,11 +226,11 @@ nvm_ensure_version_installed() { if [ "_$EXIT_CODE" != "_0" ] || ! nvm_is_version_installed "$LOCAL_VERSION"; then VERSION="$(nvm_resolve_alias "$PROVIDED_VERSION")" if [ $? -eq 0 ]; then - echo "N/A: version \"$PROVIDED_VERSION -> $VERSION\" is not yet installed" >&2 + nvm_err "N/A: version \"$PROVIDED_VERSION -> $VERSION\" is not yet installed" else local PREFIXED_VERSION PREFIXED_VERSION="$(nvm_ensure_version_prefix "$PROVIDED_VERSION")" - echo "N/A: version \"${PREFIXED_VERSION:-$PROVIDED_VERSION}\" is not yet installed" >&2 + nvm_err "N/A: version \"${PREFIXED_VERSION:-$PROVIDED_VERSION}\" is not yet installed" fi return 1 fi @@ -247,10 +260,10 @@ nvm_version() { esac VERSION="$(nvm_ls "$PATTERN" | command tail -n1)" if [ -z "$VERSION" ] || [ "_$VERSION" = "_N/A" ]; then - echo "N/A" + nvm_echo "N/A" return 3; else - echo "$VERSION" + nvm_echo "$VERSION" fi } @@ -270,7 +283,7 @@ nvm_remote_version() { else VERSION="$(nvm_remote_versions "$PATTERN" | command tail -n1)" fi - echo "$VERSION" + nvm_echo "$VERSION" if [ "_$VERSION" = '_N/A' ]; then return 3 fi @@ -290,19 +303,19 @@ nvm_remote_versions() { ;; *) if nvm_validate_implicit_alias "$PATTERN" 2> /dev/null ; then - echo >&2 "Implicit aliases are not supported in nvm_remote_versions." + nvm_err 'Implicit aliases are not supported in nvm_remote_versions.' return 1 fi - VERSIONS="$(echo "$(nvm_ls_remote "$PATTERN") + VERSIONS="$(nvm_echo "$(nvm_ls_remote "$PATTERN") $(nvm_ls_remote_iojs "$PATTERN")" | command grep -v "N/A" | command sed '/^$/d')" ;; esac if [ -z "$VERSIONS" ]; then - echo "N/A" + nvm_echo 'N/A' return 3 else - echo "$VERSIONS" + nvm_echo "$VERSIONS" fi } @@ -324,7 +337,7 @@ nvm_is_valid_version() { } nvm_normalize_version() { - echo "${1#v}" | command awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }' + nvm_echo "${1#v}" | command awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }' } nvm_ensure_version_prefix() { @@ -333,7 +346,7 @@ nvm_ensure_version_prefix() { if nvm_is_iojs_version "$1"; then nvm_add_iojs_prefix "$NVM_VERSION" else - echo "$NVM_VERSION" + nvm_echo "$NVM_VERSION" fi } @@ -345,7 +358,7 @@ nvm_format_version() { if [ "$NUM_GROUPS" -lt 3 ]; then nvm_format_version "${VERSION%.}.0" else - echo "$VERSION" | cut -f1-3 -d. + nvm_echo "$VERSION" | cut -f1-3 -d. fi } @@ -355,18 +368,18 @@ nvm_num_version_groups() { VERSION="${VERSION#v}" VERSION="${VERSION%.}" if [ -z "$VERSION" ]; then - echo "0" + nvm_echo "0" return fi local NVM_NUM_DOTS - NVM_NUM_DOTS=$(echo "$VERSION" | command sed -e 's/[^\.]//g') + NVM_NUM_DOTS=$(nvm_echo "$VERSION" | command sed -e 's/[^\.]//g') local NVM_NUM_GROUPS NVM_NUM_GROUPS=".$NVM_NUM_DOTS" # add extra dot, since it's (n - 1) dots at this point - echo "${#NVM_NUM_GROUPS}" + nvm_echo "${#NVM_NUM_GROUPS}" } nvm_strip_path() { - echo "$1" | command sed \ + nvm_echo "$1" | command sed \ -e "s#$NVM_DIR/[^/]*$2[^:]*:##g" \ -e "s#:$NVM_DIR/[^/]*$2[^:]*##g" \ -e "s#$NVM_DIR/[^/]*$2[^:]*##g" \ @@ -377,9 +390,9 @@ nvm_strip_path() { nvm_prepend_path() { if [ -z "$1" ]; then - echo "$2" + nvm_echo "$2" else - echo "$2:$1" + nvm_echo "$2:$1" fi } @@ -432,13 +445,13 @@ nvm_print_alias_path() { local NVM_ALIAS_DIR NVM_ALIAS_DIR="${1-}" if [ -z "$NVM_ALIAS_DIR" ]; then - >&2 echo 'An alias dir is required.' + nvm_err 'An alias dir is required.' return 1 fi local ALIAS_PATH ALIAS_PATH="${2-}" if [ -z "$ALIAS_PATH" ]; then - >&2 echo 'An alias path is required.' + nvm_err 'An alias path is required.' return 2 fi local ALIAS @@ -454,7 +467,7 @@ nvm_print_default_alias() { local ALIAS ALIAS="${1-}" if [ -z "$ALIAS" ]; then - >&2 echo 'A default alias is required.' + nvm_err 'A default alias is required.' return 1 fi local DEST @@ -468,30 +481,30 @@ nvm_make_alias() { local ALIAS ALIAS="${1-}" if [ -z "$ALIAS" ]; then - >&2 echo "an alias name is required" + nvm_err "an alias name is required" return 1 fi local VERSION VERSION="${2-}" if [ -z "$VERSION" ]; then - >&2 echo "an alias target version is required" + nvm_err "an alias target version is required" return 2 fi - echo "$VERSION" | tee "$(nvm_alias_path)/${ALIAS}" >/dev/null + nvm_echo "$VERSION" | tee "$(nvm_alias_path)/${ALIAS}" >/dev/null } nvm_alias() { local ALIAS ALIAS="${1-}" if [ -z "$ALIAS" ]; then - echo >&2 'An alias is required.' + nvm_err 'An alias is required.' return 1 fi local NVM_ALIAS_PATH NVM_ALIAS_PATH="$(nvm_alias_path)/$ALIAS" if [ ! -f "$NVM_ALIAS_PATH" ]; then - echo >&2 'Alias does not exist.' + nvm_err 'Alias does not exist.' return 2 fi @@ -502,19 +515,19 @@ nvm_ls_current() { local NVM_LS_CURRENT_NODE_PATH NVM_LS_CURRENT_NODE_PATH="$(command which node 2> /dev/null)" if [ $? -ne 0 ]; then - echo 'none' + nvm_echo 'none' elif nvm_tree_contains_path "$(nvm_version_dir iojs)" "$NVM_LS_CURRENT_NODE_PATH"; then nvm_add_iojs_prefix "$(iojs --version 2>/dev/null)" elif nvm_tree_contains_path "$NVM_DIR" "$NVM_LS_CURRENT_NODE_PATH"; then local VERSION VERSION="$(node --version 2>/dev/null)" if [ "$VERSION" = "v0.6.21-pre" ]; then - echo "v0.6.21" + nvm_echo 'v0.6.21' else - echo "$VERSION" + nvm_echo "$VERSION" fi else - echo 'system' + nvm_echo 'system' fi } @@ -558,7 +571,7 @@ nvm_resolve_alias() { "_∞" | \ "_$NVM_IOJS_PREFIX" | "_$NVM_IOJS_PREFIX-" | \ "_$NVM_NODE_PREFIX" ) - echo "$ALIAS" + nvm_echo "$ALIAS" ;; *) nvm_ensure_version_prefix "$ALIAS" @@ -593,15 +606,15 @@ nvm_resolve_local_alias() { if [ "_$VERSION" != "_∞" ]; then nvm_version "$VERSION" else - echo "$VERSION" + nvm_echo "$VERSION" fi } nvm_iojs_prefix() { - echo "iojs" + nvm_echo 'iojs' } nvm_node_prefix() { - echo "node" + nvm_echo 'node' } nvm_is_iojs_version() { @@ -610,16 +623,16 @@ nvm_is_iojs_version() { } nvm_add_iojs_prefix() { - command echo "$(nvm_iojs_prefix)-$(nvm_ensure_version_prefix "$(nvm_strip_iojs_prefix "$1")")" + nvm_echo "$(nvm_iojs_prefix)-$(nvm_ensure_version_prefix "$(nvm_strip_iojs_prefix "$1")")" } nvm_strip_iojs_prefix() { local NVM_IOJS_PREFIX NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" if [ "_$1" = "_$NVM_IOJS_PREFIX" ]; then - echo + nvm_echo else - echo "${1#"$NVM_IOJS_PREFIX"-}" + nvm_echo "${1#"$NVM_IOJS_PREFIX"-}" fi } @@ -685,7 +698,7 @@ nvm_ls() { local ZHS_HAS_SHWORDSPLIT_UNSET ZHS_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; echo $?) + ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; nvm_echo $?) setopt shwordsplit fi @@ -764,11 +777,11 @@ nvm_ls() { fi if [ -z "$VERSIONS" ]; then - echo "N/A" + nvm_echo 'N/A' return 3 fi - echo "$VERSIONS" + nvm_echo "$VERSIONS" } nvm_ls_remote() { @@ -790,7 +803,7 @@ nvm_ls_remote_iojs() { nvm_ls_remote_index_tab() { if [ "$#" -lt 4 ]; then - echo "not enough arguments" >&2 + nvm_err 'not enough arguments' return 5 fi local TYPE @@ -801,11 +814,11 @@ nvm_ls_remote_index_tab() { iojs-std) PREFIX="$(nvm_iojs_prefix)-" ;; node-std) PREFIX='' ;; iojs-*) - echo "unknown type of io.js release" >&2 + nvm_err 'unknown type of io.js release' return 4 ;; node-*) - echo "unknown type of node.js release" >&2 + nvm_err 'unknown type of node.js release' return 4 ;; esac @@ -830,7 +843,7 @@ nvm_ls_remote_index_tab() { fi ZHS_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; echo $?) + ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; nvm_echo $?) setopt shwordsplit fi VERSIONS="$(nvm_download -L -s "$MIRROR/index.tab" -o - \ @@ -844,10 +857,10 @@ nvm_ls_remote_index_tab() { unsetopt shwordsplit fi if [ -z "$VERSIONS" ]; then - echo "N/A" + nvm_echo 'N/A' return 3 fi - echo "$VERSIONS" + nvm_echo "$VERSIONS" } nvm_checksum() { @@ -860,7 +873,7 @@ nvm_checksum() { elif nvm_has "shasum" && ! nvm_is_alias "shasum"; then NVM_CHECKSUM="$(shasum "$1" | command awk '{print $1}')" else - echo "Unaliased sha1sum, sha1, or shasum not found." >&2 + nvm_err 'Unaliased sha1sum, sha1, or shasum not found.' return 2 fi else @@ -879,8 +892,8 @@ nvm_checksum() { elif nvm_has "bssl" && ! nvm_is_alias "bssl"; then NVM_CHECKSUM="$(bssl sha256sum "$1" | awk '{print $1}')" else - echo "Unaliased sha256sum, shasum, sha256, gsha256sum, openssl, libressl, or bssl not found." >&2 - echo "WARNING: Continuing *without checksum verification*" >&2 + nvm_err 'Unaliased sha256sum, shasum, sha256, gsha256sum, openssl, libressl, or bssl not found.' + nvm_err 'WARNING: Continuing *without checksum verification*' return fi fi @@ -888,10 +901,10 @@ nvm_checksum() { if [ "_$NVM_CHECKSUM" = "_$2" ]; then return elif [ -z "$2" ]; then - echo 'Checksums empty' #missing in raspberry pi binary + nvm_echo 'Checksums empty' #missing in raspberry pi binary return else - echo 'Checksums do not match.' >&2 + nvm_err 'Checksums do not match.' return 1 fi } @@ -901,7 +914,7 @@ nvm_print_versions() { local FORMAT local NVM_CURRENT NVM_CURRENT=$(nvm_ls_current) - echo "$1" | while read -r VERSION; do + nvm_echo "$1" | while read -r VERSION; do if [ "_$VERSION" = "_$NVM_CURRENT" ]; then FORMAT='\033[0;32m-> %12s\033[0m' elif [ "$VERSION" = "system" ]; then @@ -926,7 +939,7 @@ nvm_validate_implicit_alias() { return ;; *) - echo "Only implicit aliases 'stable', 'unstable', '$NVM_IOJS_PREFIX', and '$NVM_NODE_PREFIX' are supported." >&2 + nvm_err "Only implicit aliases 'stable', 'unstable', '$NVM_IOJS_PREFIX', and '$NVM_NODE_PREFIX' are supported." return 1 ;; esac @@ -934,7 +947,7 @@ nvm_validate_implicit_alias() { nvm_print_implicit_alias() { if [ "_$1" != "_local" ] && [ "_$1" != "_remote" ]; then - echo "nvm_print_implicit_alias must be specified with local or remote as the first argument." >&2 + nvm_err "nvm_print_implicit_alias must be specified with local or remote as the first argument." return 1 fi @@ -963,7 +976,7 @@ nvm_print_implicit_alias() { ZHS_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; echo $?) + ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; nvm_echo $?) setopt shwordsplit fi @@ -972,7 +985,7 @@ nvm_print_implicit_alias() { NVM_IOJS_VERSION="$($NVM_COMMAND)" EXIT_CODE="$?" if [ "_$EXIT_CODE" = "_0" ]; then - NVM_IOJS_VERSION="$(echo "$NVM_IOJS_VERSION" | sed "s/^$NVM_IMPLICIT-//" | command grep -e '^v' | command cut -c2- | command cut -d . -f 1,2 | uniq | command tail -1)" + NVM_IOJS_VERSION="$(nvm_echo "$NVM_IOJS_VERSION" | sed "s/^$NVM_IMPLICIT-//" | command grep -e '^v' | command cut -c2- | command cut -d . -f 1,2 | uniq | command tail -1)" fi if [ "$ZHS_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then @@ -980,14 +993,14 @@ nvm_print_implicit_alias() { fi if [ "_$NVM_IOJS_VERSION" = "_N/A" ]; then - echo "N/A" + nvm_echo 'N/A' else $NVM_ADD_PREFIX_COMMAND "$NVM_IOJS_VERSION" fi return $EXIT_CODE ;; "$NVM_NODE_PREFIX") - echo "stable" + nvm_echo 'stable' return ;; *) @@ -998,7 +1011,7 @@ nvm_print_implicit_alias() { ZHS_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; echo $?) + ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; nvm_echo $?) setopt shwordsplit fi @@ -1017,7 +1030,7 @@ nvm_print_implicit_alias() { ZHS_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; echo $?) + ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; nvm_echo $?) setopt shwordsplit fi for MINOR in $LAST_TWO; do @@ -1038,9 +1051,9 @@ nvm_print_implicit_alias() { fi if [ "_$2" = '_stable' ]; then - echo "${STABLE}" + nvm_echo "${STABLE}" elif [ "_$2" = '_unstable' ]; then - echo "${UNSTABLE}" + nvm_echo "${UNSTABLE}" fi } @@ -1054,7 +1067,7 @@ nvm_get_os() { SunOS\ *) NVM_OS=sunos ;; FreeBSD\ *) NVM_OS=freebsd ;; esac - echo "$NVM_OS" + nvm_echo "${NVM_OS-}" } nvm_get_arch() { @@ -1083,7 +1096,7 @@ nvm_get_arch() { i*86) NVM_ARCH="x86" ;; *) NVM_ARCH="$HOST_ARCH" ;; esac - echo "$NVM_ARCH" + nvm_echo "${NVM_ARCH}" } nvm_get_minor_version() { @@ -1091,13 +1104,13 @@ nvm_get_minor_version() { VERSION="$1" if [ -z "$VERSION" ]; then - echo 'a version is required' >&2 + nvm_err 'a version is required' return 1 fi case "$VERSION" in v | .* | *..* | v*[!.0123456789]* | [!v]*[!.0123456789]* | [!v0123456789]* | v[!0123456789]*) - echo 'invalid version number' >&2 + nvm_err 'invalid version number' return 2 ;; esac @@ -1106,19 +1119,19 @@ nvm_get_minor_version() { PREFIXED_VERSION="$(nvm_format_version "$VERSION")" local MINOR - MINOR="$(echo "$PREFIXED_VERSION" | command grep -e '^v' | command cut -c2- | command cut -d . -f 1,2)" + MINOR="$(nvm_echo "$PREFIXED_VERSION" | command grep -e '^v' | command cut -c2- | command cut -d . -f 1,2)" if [ -z "$MINOR" ]; then - echo 'invalid version number! (please report this)' >&2 + nvm_err 'invalid version number! (please report this)' return 3 fi - echo "$MINOR" + nvm_echo "${MINOR}" } nvm_ensure_default_set() { local VERSION VERSION="$1" if [ -z "$VERSION" ]; then - echo 'nvm_ensure_default_set: a version is required' >&2 + nvm_err 'nvm_ensure_default_set: a version is required' return 1 fi if nvm_alias default >/dev/null 2>&1; then @@ -1129,7 +1142,7 @@ nvm_ensure_default_set() { OUTPUT="$(nvm alias default "$VERSION")" local EXIT_CODE EXIT_CODE="$?" - echo "Creating default alias: $OUTPUT" + nvm_echo "Creating default alias: $OUTPUT" return $EXIT_CODE } @@ -1144,7 +1157,7 @@ nvm_install_merged_node_binary() { if [ "_$NVM_NODE_TYPE" = "_std" ]; then MIRROR="$NVM_NODEJS_ORG_MIRROR" else - echo "unknown type of node.js release" >&2 + nvm_err 'unknown type of node.js release' return 4 fi local VERSION @@ -1153,7 +1166,7 @@ nvm_install_merged_node_binary() { REINSTALL_PACKAGES_FROM="$3" if ! nvm_is_merged_node_version "$VERSION" || nvm_is_iojs_version "$VERSION"; then - echo 'nvm_install_merged_node_binary requires a node version v4.0 or greater.' >&2 + nvm_err 'nvm_install_merged_node_binary requires a node version v4.0 or greater.' return 10 fi @@ -1185,12 +1198,12 @@ nvm_install_merged_node_binary() { tmptarball="$tmpdir/node-${t}.tar.${compression}" local NVM_INSTALL_ERRORED command mkdir -p "$tmpdir" && \ - echo "Downloading $url..." && \ + nvm_echo "Downloading $url..." && \ nvm_download -L -C - --progress-bar "$url" -o "$tmptarball" || \ NVM_INSTALL_ERRORED=true if grep '404 Not Found' "$tmptarball" >/dev/null; then NVM_INSTALL_ERRORED=true - echo >&2 "HTTP 404 at URL $url"; + nvm_err "HTTP 404 at URL $url"; fi if ( [ "$NVM_INSTALL_ERRORED" != true ] && \ @@ -1202,7 +1215,7 @@ nvm_install_merged_node_binary() { ); then return 0 else - echo >&2 "Binary download failed, trying source." >&2 + nvm_err 'Binary download failed, trying source.' command rm -rf "$tmptarball" "$tmpdir" return 1 fi @@ -1217,7 +1230,7 @@ nvm_install_iojs_binary() { if [ "_$NVM_IOJS_TYPE" = "_std" ]; then MIRROR="$NVM_IOJS_ORG_MIRROR" else - echo "unknown type of io.js release" >&2 + nvm_err 'unknown type of io.js release' return 4 fi local PREFIXED_VERSION @@ -1226,7 +1239,7 @@ nvm_install_iojs_binary() { REINSTALL_PACKAGES_FROM="$3" if ! nvm_is_iojs_version "$PREFIXED_VERSION"; then - echo 'nvm_install_iojs_binary requires an iojs-prefixed version.' >&2 + nvm_err 'nvm_install_iojs_binary requires an iojs-prefixed version.' return 10 fi @@ -1259,12 +1272,12 @@ nvm_install_iojs_binary() { tmptarball="$tmpdir/iojs-${t}.tar.${compression}" local NVM_INSTALL_ERRORED command mkdir -p "$tmpdir" && \ - echo "Downloading $url..." && \ + nvm_echo "Downloading $url..." && \ nvm_download -L -C - --progress-bar "$url" -o "$tmptarball" || \ NVM_INSTALL_ERRORED=true if grep '404 Not Found' "$tmptarball" >/dev/null; then NVM_INSTALL_ERRORED=true - echo >&2 "HTTP 404 at URL $url"; + nvm_err "HTTP 404 at URL $url"; fi if ( [ "$NVM_INSTALL_ERRORED" != true ] && \ @@ -1276,7 +1289,7 @@ nvm_install_iojs_binary() { ); then return 0 else - echo >&2 "Binary download failed, trying source." >&2 + nvm_err 'Binary download failed, trying source.' command rm -rf "$tmptarball" "$tmpdir" return 1 fi @@ -1292,7 +1305,7 @@ nvm_install_node_binary() { REINSTALL_PACKAGES_FROM="$2" if nvm_is_iojs_version "$VERSION"; then - echo 'nvm_install_node_binary does not allow an iojs-prefixed version.' >&2 + nvm_err 'nvm_install_node_binary does not allow an iojs-prefixed version.' return 10 fi @@ -1324,7 +1337,7 @@ nvm_install_node_binary() { NVM_INSTALL_ERRORED=true if grep '404 Not Found' "$tmptarball" >/dev/null; then NVM_INSTALL_ERRORED=true - echo >&2 "HTTP 404 at URL $url"; + nvm_err "HTTP 404 at URL $url"; fi if ( [ "$NVM_INSTALL_ERRORED" != true ] && \ @@ -1336,7 +1349,7 @@ nvm_install_node_binary() { ); then return 0 else - echo >&2 "Binary download failed, trying source." + nvm_err 'Binary download failed, trying source.' command rm -rf "$tmptarball" "$tmpdir" return 1 fi @@ -1348,11 +1361,11 @@ nvm_install_node_binary() { nvm_get_make_jobs() { if nvm_is_natural_num "${1-}"; then NVM_MAKE_JOBS="$1" - echo "number of \`make\` jobs: $NVM_MAKE_JOBS" + nvm_echo "number of \`make\` jobs: $NVM_MAKE_JOBS" return elif [ -n "${1-}" ]; then unset NVM_MAKE_JOBS - echo >&2 "$1 is invalid for number of \`make\` jobs, must be a natural number" + nvm_err "$1 is invalid for number of \`make\` jobs, must be a natural number" fi local NVM_OS NVM_OS="$(nvm_get_os)" @@ -1365,17 +1378,17 @@ nvm_get_make_jobs() { NVM_CPU_THREADS="$(psrinfo | wc -l)" fi if ! nvm_is_natural_num "$NVM_CPU_THREADS" ; then - echo "Can not determine how many thread(s) we can use, set to only 1 now." >&2 - echo "Please report an issue on GitHub to help us make it better and run it faster on your computer!" >&2 + nvm_err 'Can not determine how many thread(s) we can use, set to only 1 now.' + nvm_err 'Please report an issue on GitHub to help us make it better and run it faster on your computer!' NVM_MAKE_JOBS=1 else - echo "Detected that you have $NVM_CPU_THREADS CPU thread(s)" + nvm_echo "Detected that you have $NVM_CPU_THREADS CPU thread(s)" if [ "$NVM_CPU_THREADS" -gt 2 ]; then NVM_MAKE_JOBS=$(($NVM_CPU_THREADS - 1)) - echo "Set the number of jobs to $NVM_CPU_THREADS - 1 = $NVM_MAKE_JOBS jobs to speed up the build" + nvm_echo "Set the number of jobs to $NVM_CPU_THREADS - 1 = $NVM_MAKE_JOBS jobs to speed up the build" else NVM_MAKE_JOBS=1 - echo "Number of CPU thread(s) less or equal to 2 will have only one job a time for 'make'" + nvm_echo 'Number of CPU thread(s) less or equal to 2 will have only one job a time for `make`' fi fi } @@ -1395,7 +1408,7 @@ nvm_install_node_source() { fi if [ -n "$ADDITIONAL_PARAMETERS" ]; then - echo "Additional options while compiling: $ADDITIONAL_PARAMETERS" + nvm_echo "Additional options while compiling: $ADDITIONAL_PARAMETERS" fi local VERSION_PATH @@ -1429,7 +1442,7 @@ nvm_install_node_source() { if ( [ -n "$tarball" ] && \ command mkdir -p "$tmpdir" && \ - echo "Downloading $tarball..." && \ + nvm_echo "Downloading $tarball..." && \ nvm_download -L --progress-bar "$tarball" -o "$tmptarball" && \ nvm_checksum "$tmptarball" "$sum" && \ command tar -xzf "$tmptarball" -C "$tmpdir" && \ @@ -1441,12 +1454,12 @@ nvm_install_node_source() { ) then if ! nvm_has "npm" ; then - echo "Installing npm..." + nvm_echo 'Installing npm...' if nvm_version_greater 0.2.0 "$VERSION"; then - echo "npm requires node v0.2.3 or higher" >&2 + nvm_err 'npm requires node v0.2.3 or higher' elif nvm_version_greater_than_or_equal_to "$VERSION" 0.2.0; then if nvm_version_greater 0.2.3 "$VERSION"; then - echo "npm requires node v0.2.3 or higher" >&2 + nvm_err 'npm requires node v0.2.3 or higher' else nvm_download -L https://npmjs.org/install.sh -o - | clean=yes npm_install=0.2.19 sh fi @@ -1455,7 +1468,7 @@ nvm_install_node_source() { fi fi else - echo "nvm: install $VERSION failed!" >&2 + nvm_err "nvm: install $VERSION failed!" return 1 fi @@ -1468,11 +1481,11 @@ nvm_match_version() { local PROVIDED_VERSION PROVIDED_VERSION="$1" case "_$PROVIDED_VERSION" in - "_$NVM_IOJS_PREFIX" | "_io.js") + "_$NVM_IOJS_PREFIX" | '_io.js') nvm_version "$NVM_IOJS_PREFIX" ;; - "_system") - echo "system" + '_system') + nvm_echo 'system' ;; *) nvm_version "$PROVIDED_VERSION" @@ -1491,12 +1504,12 @@ nvm_npm_global_modules() { fi local INSTALLS - INSTALLS=$(echo "$NPMLIST" | command sed -e '/ -> / d' -e '/\(empty\)/ d' -e 's/^.* \(.*@[^ ]*\).*/\1/' -e '/^npm@[^ ]*.*$/ d' | command xargs) + INSTALLS=$(nvm_echo "$NPMLIST" | command sed -e '/ -> / d' -e '/\(empty\)/ d' -e 's/^.* \(.*@[^ ]*\).*/\1/' -e '/^npm@[^ ]*.*$/ d' | command xargs) local LINKS - LINKS="$(echo "$NPMLIST" | command sed -n 's/.* -> \(.*\)/\1/ p')" + LINKS="$(nvm_echo "$NPMLIST" | command sed -n 's/.* -> \(.*\)/\1/ p')" - echo "$INSTALLS //// $LINKS" + nvm_echo "$INSTALLS //// $LINKS" } nvm_die_on_prefix() { @@ -1505,28 +1518,28 @@ nvm_die_on_prefix() { case "$NVM_DELETE_PREFIX" in 0|1) ;; *) - echo >&2 'First argument "delete the prefix" must be zero or one' + nvm_err 'First argument "delete the prefix" must be zero or one' return 1 ;; esac local NVM_COMMAND NVM_COMMAND="$2" if [ -z "$NVM_COMMAND" ]; then - echo >&2 'Second argument "nvm command" must be nonempty' + nvm_err 'Second argument "nvm command" must be nonempty' return 2 fi if [ -n "${PREFIX-}" ] && ! (nvm_tree_contains_path "$NVM_DIR" "$PREFIX" >/dev/null 2>&1); then nvm deactivate >/dev/null 2>&1 - echo >&2 "nvm is not compatible with the \"PREFIX\" environment variable: currently set to \"$PREFIX\"" - echo >&2 "Run \`unset PREFIX\` to unset it." + nvm_err "nvm is not compatible with the \"PREFIX\" environment variable: currently set to \"$PREFIX\"" + nvm_err 'Run `unset PREFIX` to unset it.' return 3 fi if [ -n "${NPM_CONFIG_PREFIX-}" ] && ! (nvm_tree_contains_path "$NVM_DIR" "$NPM_CONFIG_PREFIX" >/dev/null 2>&1); then nvm deactivate >/dev/null 2>&1 - echo >&2 "nvm is not compatible with the \"NPM_CONFIG_PREFIX\" environment variable: currently set to \"$NPM_CONFIG_PREFIX\"" - echo >&2 "Run \`unset NPM_CONFIG_PREFIX\` to unset it." + nvm_err "nvm is not compatible with the \"NPM_CONFIG_PREFIX\" environment variable: currently set to \"$NPM_CONFIG_PREFIX\"" + nvm_err 'Run `unset NPM_CONFIG_PREFIX` to unset it.' return 4 fi @@ -1541,11 +1554,11 @@ nvm_die_on_prefix() { NPM_CONFIG_LOGLEVEL=warn npm config delete prefix else nvm deactivate >/dev/null 2>&1 - echo >&2 "nvm is not compatible with the npm config \"prefix\" option: currently set to \"$NVM_NPM_PREFIX\"" + nvm_err "nvm is not compatible with the npm config \"prefix\" option: currently set to \"$NVM_NPM_PREFIX\"" if nvm_has 'npm'; then - echo >&2 "Run \`npm config delete prefix\` or \`$NVM_COMMAND\` to unset it." + nvm_err "Run \`npm config delete prefix\` or \`$NVM_COMMAND\` to unset it." else - echo >&2 "Run \`$NVM_COMMAND\` to unset it." + nvm_err "Run \`$NVM_COMMAND\` to unset it." fi return 10 fi @@ -1608,9 +1621,9 @@ nvm_sanitize_path() { local SANITIZED_PATH SANITIZED_PATH="$1" if [ "_$1" != "_$NVM_DIR" ]; then - SANITIZED_PATH="$(echo "$SANITIZED_PATH" | command sed "s#$NVM_DIR#\$NVM_DIR#g")" + SANITIZED_PATH="$(nvm_echo "$SANITIZED_PATH" | command sed "s#$NVM_DIR#\$NVM_DIR#g")" fi - echo "$SANITIZED_PATH" | command sed "s#$HOME#\$HOME#g" + nvm_echo "$SANITIZED_PATH" | command sed "s#$HOME#\$HOME#g" } nvm_is_natural_num() { @@ -1659,67 +1672,67 @@ nvm() { NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" local NVM_NODE_PREFIX NVM_NODE_PREFIX="$(nvm_node_prefix)" - echo - echo "Node Version Manager" - echo - echo 'Note: refers to any version-like string nvm understands. This includes:' - echo ' - full or partial version numbers, starting with an optional "v" (0.10, v0.1.2, v1)' - echo " - default (built-in) aliases: $NVM_NODE_PREFIX, stable, unstable, $NVM_IOJS_PREFIX, system" - echo ' - custom aliases you define with `nvm alias foo`' - echo - echo 'Usage:' - echo ' nvm help Show this message' - echo ' nvm --version Print out the latest released version of nvm' - echo ' nvm install [-s] Download and install a , [-s] from source. Uses .nvmrc if available' - echo ' --reinstall-packages-from= When installing, reinstall packages installed in ' - echo ' nvm uninstall Uninstall a version' - echo ' nvm use [--silent] Modify PATH to use . Uses .nvmrc if available' - echo ' nvm exec [--silent] [] Run on . Uses .nvmrc if available' - echo ' nvm run [--silent] [] Run `node` on with as arguments. Uses .nvmrc if available' - echo ' nvm current Display currently activated version' - echo ' nvm ls List installed versions' - echo ' nvm ls List versions matching a given description' - echo ' nvm ls-remote List remote versions available for install' - echo ' nvm version Resolve the given description to a single local version' - echo ' nvm version-remote Resolve the given description to a single remote version' - echo ' nvm deactivate Undo effects of `nvm` on current shell' - echo ' nvm alias [] Show all aliases beginning with ' - echo ' nvm alias Set an alias named pointing to ' - echo ' nvm unalias Deletes the alias named ' - echo ' nvm reinstall-packages Reinstall global `npm` packages contained in to current version' - echo ' nvm unload Unload `nvm` from shell' - echo ' nvm which [] Display path to installed node version. Uses .nvmrc if available' - echo - echo 'Example:' - echo ' nvm install v0.10.32 Install a specific version number' - echo ' nvm use 0.10 Use the latest available 0.10.x release' - echo ' nvm run 0.10.32 app.js Run app.js using node v0.10.32' - echo ' nvm exec 0.10.32 node app.js Run `node app.js` with the PATH pointing to node v0.10.32' - echo ' nvm alias default 0.10.32 Set default node version on a shell' - echo - echo 'Note:' - echo ' to remove, delete, or uninstall nvm - just remove the `$NVM_DIR` folder (usually `~/.nvm`)' - echo + nvm_echo + nvm_echo "Node Version Manager" + nvm_echo + nvm_echo 'Note: refers to any version-like string nvm understands. This includes:' + nvm_echo ' - full or partial version numbers, starting with an optional "v" (0.10, v0.1.2, v1)' + nvm_echo " - default (built-in) aliases: $NVM_NODE_PREFIX, stable, unstable, $NVM_IOJS_PREFIX, system" + nvm_echo ' - custom aliases you define with `nvm alias foo`' + nvm_echo + nvm_echo 'Usage:' + nvm_echo ' nvm --help Show this message' + nvm_echo ' nvm --version Print out the latest released version of nvm' + nvm_echo ' nvm install [-s] Download and install a , [-s] from source. Uses .nvmrc if available' + nvm_echo ' --reinstall-packages-from= When installing, reinstall packages installed in ' + nvm_echo ' nvm uninstall Uninstall a version' + nvm_echo ' nvm use [--silent] Modify PATH to use . Uses .nvmrc if available' + nvm_echo ' nvm exec [--silent] [] Run on . Uses .nvmrc if available' + nvm_echo ' nvm run [--silent] [] Run `node` on with as arguments. Uses .nvmrc if available' + nvm_echo ' nvm current Display currently activated version' + nvm_echo ' nvm ls List installed versions' + nvm_echo ' nvm ls List versions matching a given description' + nvm_echo ' nvm ls-remote List remote versions available for install' + nvm_echo ' nvm version Resolve the given description to a single local version' + nvm_echo ' nvm version-remote Resolve the given description to a single remote version' + nvm_echo ' nvm deactivate Undo effects of `nvm` on current shell' + nvm_echo ' nvm alias [] Show all aliases beginning with ' + nvm_echo ' nvm alias Set an alias named pointing to ' + nvm_echo ' nvm unalias Deletes the alias named ' + nvm_echo ' nvm reinstall-packages Reinstall global `npm` packages contained in to current version' + nvm_echo ' nvm unload Unload `nvm` from shell' + nvm_echo ' nvm which [] Display path to installed node version. Uses .nvmrc if available' + nvm_echo + nvm_echo 'Example:' + nvm_echo ' nvm install v0.10.32 Install a specific version number' + nvm_echo ' nvm use 0.10 Use the latest available 0.10.x release' + nvm_echo ' nvm run 0.10.32 app.js Run app.js using node v0.10.32' + nvm_echo ' nvm exec 0.10.32 node app.js Run `node app.js` with the PATH pointing to node v0.10.32' + nvm_echo ' nvm alias default 0.10.32 Set default node version on a shell' + nvm_echo + nvm_echo 'Note:' + nvm_echo ' to remove, delete, or uninstall nvm - just remove the `$NVM_DIR` folder (usually `~/.nvm`)' + nvm_echo ;; "debug" ) local ZHS_HAS_SHWORDSPLIT_UNSET ZHS_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; echo $?) + ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; nvm_echo $?) setopt shwordsplit fi - echo >&2 "nvm --version: v$(nvm --version)" - echo >&2 "\$SHELL: $SHELL" - echo >&2 "\$HOME: $HOME" - echo >&2 "\$NVM_DIR: '$(nvm_sanitize_path "$NVM_DIR")'" - echo >&2 "\$PREFIX: '$(nvm_sanitize_path "$PREFIX")'" - echo >&2 "\$NPM_CONFIG_PREFIX: '$(nvm_sanitize_path "$NPM_CONFIG_PREFIX")'" + nvm_err "nvm --version: v$(nvm --version)" + nvm_err "\$SHELL: $SHELL" + nvm_err "\$HOME: $HOME" + nvm_err "\$NVM_DIR: '$(nvm_sanitize_path "$NVM_DIR")'" + nvm_err "\$PREFIX: '$(nvm_sanitize_path "$PREFIX")'" + nvm_err "\$NPM_CONFIG_PREFIX: '$(nvm_sanitize_path "$NPM_CONFIG_PREFIX")'" local NVM_DEBUG_OUTPUT for NVM_DEBUG_COMMAND in 'nvm current' 'which node' 'which iojs' 'which npm' 'npm config get prefix' 'npm root -g' do NVM_DEBUG_OUTPUT="$($NVM_DEBUG_COMMAND 2>&1)" - echo >&2 "$NVM_DEBUG_COMMAND: $(nvm_sanitize_path "$NVM_DEBUG_OUTPUT")" + nvm_err "$NVM_DEBUG_COMMAND: $(nvm_sanitize_path "$NVM_DEBUG_OUTPUT")" done if [ "$ZHS_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then unsetopt shwordsplit @@ -1734,7 +1747,7 @@ nvm() { NVM_OS="$(nvm_get_os)" if ! nvm_has "curl" && ! nvm_has "wget"; then - echo 'nvm needs curl or wget to proceed.' >&2; + nvm_err 'nvm needs curl or wget to proceed.' return 1 fi @@ -1784,7 +1797,7 @@ nvm() { VERSION="$(nvm_remote_version "$provided_version")" if [ "_$VERSION" = "_N/A" ]; then - echo "Version '$provided_version' not found - try \`nvm ls-remote\` to browse available versions." >&2 + nvm_err "Version '$provided_version' not found - try \`nvm ls-remote\` to browse available versions." return 3 fi @@ -1796,11 +1809,11 @@ nvm() { do case "$1" in --reinstall-packages-from=*) - PROVIDED_REINSTALL_PACKAGES_FROM="$(echo "$1" | command cut -c 27-)" + PROVIDED_REINSTALL_PACKAGES_FROM="$(nvm_echo "$1" | command cut -c 27-)" REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM" || return 0)" ;; --copy-packages-from=*) - PROVIDED_REINSTALL_PACKAGES_FROM="$(echo "$1" | command cut -c 22-)" + PROVIDED_REINSTALL_PACKAGES_FROM="$(nvm_echo "$1" | command cut -c 22-)" REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM" || return 0)" ;; *) @@ -1811,10 +1824,10 @@ nvm() { done if [ "_$(nvm_ensure_version_prefix "$PROVIDED_REINSTALL_PACKAGES_FROM")" = "_$VERSION" ]; then - echo "You can't reinstall global packages from the same version of node you're installing." >&2 + nvm_err "You can't reinstall global packages from the same version of node you're installing." return 4 elif [ ! -z "$PROVIDED_REINSTALL_PACKAGES_FROM" ] && [ "_$REINSTALL_PACKAGES_FROM" = "_N/A" ]; then - echo "If --reinstall-packages-from is provided, it must point to an installed version of node." >&2 + nvm_err "If --reinstall-packages-from is provided, it must point to an installed version of node." return 5 fi @@ -1827,7 +1840,7 @@ nvm() { fi if nvm_is_version_installed "$VERSION"; then - echo "$VERSION is already installed." >&2 + nvm_err "$VERSION is already installed." if nvm use "$VERSION" && [ ! -z "$REINSTALL_PACKAGES_FROM" ] && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then nvm reinstall-packages "$REINSTALL_PACKAGES_FROM" fi @@ -1838,12 +1851,12 @@ nvm() { if [ "_$NVM_OS" = "_freebsd" ]; then # node.js and io.js do not have a FreeBSD binary nobinary=1 - echo "Currently, there is no binary for $NVM_OS" >&2 + nvm_err "Currently, there is no binary for $NVM_OS" elif [ "_$NVM_OS" = "_sunos" ]; then # Not all node/io.js versions have a Solaris binary if ! nvm_has_solaris_binary "$VERSION"; then nobinary=1 - echo "Currently, there is no binary of version $VERSION for $NVM_OS" >&2 + nvm_err "Currently, there is no binary of version $VERSION for $NVM_OS" fi fi local NVM_INSTALL_SUCCESS @@ -1867,11 +1880,11 @@ nvm() { fi elif [ "$NVM_IOJS" = true ]; then # nvm_install_iojs_source "$VERSION" "$NVM_MAKE_JOBS" "$ADDITIONAL_PARAMETERS" - echo "Installing iojs from source is not currently supported" >&2 + nvm_err 'Installing iojs from source is not currently supported' return 105 elif [ "$NVM_NODE_MERGED" = true ]; then # nvm_install_merged_node_source "$VERSION" "$NVM_MAKE_JOBS" "$ADDITIONAL_PARAMETERS" - echo "Installing node v1.0 and greater from source is not currently supported" >&2 + nvm_err 'Installing node v1.0 and greater from source is not currently supported' return 106 fi fi @@ -1904,15 +1917,15 @@ nvm() { esac if [ "_$VERSION" = "_$(nvm_ls_current)" ]; then if nvm_is_iojs_version "$VERSION"; then - echo "nvm: Cannot uninstall currently-active io.js version, $VERSION (inferred from $PATTERN)." >&2 + nvm_err "nvm: Cannot uninstall currently-active io.js version, $VERSION (inferred from $PATTERN)." else - echo "nvm: Cannot uninstall currently-active node version, $VERSION (inferred from $PATTERN)." >&2 + nvm_err "nvm: Cannot uninstall currently-active node version, $VERSION (inferred from $PATTERN)." fi return 1 fi if ! nvm_is_version_installed "$VERSION"; then - echo "$VERSION version is not installed..." >&2 + nvm_err "$VERSION version is not installed..." return; fi @@ -1931,10 +1944,10 @@ nvm() { local VERSION_PATH VERSION_PATH="$(nvm_version_path "$VERSION")" if ! nvm_check_file_permissions "$VERSION_PATH"; then - >&2 echo 'Cannot uninstall, incorrect permissions on installation folder.' - >&2 echo 'This is usually caused by running `npm install -g` as root. Run the following command as root to fix the permissions and then try again.' - >&2 echo - >&2 echo " chown -R $(whoami) \"$VERSION_PATH\"" + nvm_err 'Cannot uninstall, incorrect permissions on installation folder.' + nvm_err 'This is usually caused by running `npm install -g` as root. Run the following command as root to fix the permissions and then try again.' + nvm_err + nvm_err " chown -R $(whoami) \"$VERSION_PATH\"" return 1 fi @@ -1944,7 +1957,7 @@ nvm() { "$NVM_DIR/bin/$NVM_PREFIX-${t}" \ "$NVM_DIR/bin/$NVM_PREFIX-${t}.tar.*" \ "$VERSION_PATH" 2>/dev/null - echo "$NVM_SUCCESS_MSG" + nvm_echo "$NVM_SUCCESS_MSG" # rm any aliases that point to uninstalled version. for ALIAS in $(command grep -l "$VERSION" "$(nvm_alias_path)/*" 2>/dev/null) @@ -1956,20 +1969,20 @@ nvm() { local NEWPATH NEWPATH="$(nvm_strip_path "$PATH" "/bin")" if [ "_$PATH" = "_$NEWPATH" ]; then - echo "Could not find $NVM_DIR/*/bin in \$PATH" >&2 + nvm_err "Could not find $NVM_DIR/*/bin in \$PATH" else export PATH="$NEWPATH" hash -r - echo "$NVM_DIR/*/bin removed from \$PATH" + nvm_echo "$NVM_DIR/*/bin removed from \$PATH" fi if [ -n "${MANPATH-}" ]; then NEWPATH="$(nvm_strip_path "$MANPATH" "/share/man")" if [ "_$MANPATH" = "_$NEWPATH" ]; then - echo "Could not find $NVM_DIR/*/share/man in \$MANPATH" >&2 + nvm_err "Could not find $NVM_DIR/*/share/man in \$MANPATH" else export MANPATH="$NEWPATH" - echo "$NVM_DIR/*/share/man removed from \$MANPATH" + nvm_echo "$NVM_DIR/*/share/man removed from \$MANPATH" fi fi @@ -1977,7 +1990,7 @@ nvm() { NEWPATH="$(nvm_strip_path "$NODE_PATH" "/lib/node_modules")" if [ "_$NODE_PATH" != "_$NEWPATH" ]; then export NODE_PATH="$NEWPATH" - echo "$NVM_DIR/*/lib/node_modules removed from \$NODE_PATH" + nvm_echo "$NVM_DIR/*/lib/node_modules removed from \$NODE_PATH" fi fi unset NVM_BIN NVM_PATH @@ -2022,23 +2035,23 @@ nvm() { if [ "_$VERSION" = '_system' ]; then if nvm_has_system_node && nvm deactivate >/dev/null 2>&1; then if [ $NVM_USE_SILENT -ne 1 ]; then - echo "Now using system version of node: $(node -v 2>/dev/null)$(nvm_print_npm_version)" + nvm_echo "Now using system version of node: $(node -v 2>/dev/null)$(nvm_print_npm_version)" fi return elif nvm_has_system_iojs && nvm deactivate >/dev/null 2>&1; then if [ $NVM_USE_SILENT -ne 1 ]; then - echo "Now using system version of io.js: $(iojs --version 2>/dev/null)$(nvm_print_npm_version)" + nvm_echo "Now using system version of io.js: $(iojs --version 2>/dev/null)$(nvm_print_npm_version)" fi return else if [ $NVM_USE_SILENT -ne 1 ]; then - echo "System version of node not found." >&2 + nvm_err 'System version of node not found.' fi return 127 fi elif [ "_$VERSION" = "_∞" ]; then if [ $NVM_USE_SILENT -ne 1 ]; then - echo "The alias \"$PROVIDED_VERSION\" leads to an infinite loop. Aborting." >&2 + nvm_err "The alias \"$PROVIDED_VERSION\" leads to an infinite loop. Aborting." fi return 8 fi @@ -2097,7 +2110,7 @@ nvm() { fi fi if [ -n "$NVM_USE_OUTPUT" ]; then - echo "$NVM_USE_OUTPUT" + nvm_echo "$NVM_USE_OUTPUT" fi ;; "run" ) @@ -2169,7 +2182,7 @@ nvm() { local ZHS_HAS_SHWORDSPLIT_UNSET ZHS_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; echo $?) + ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; nvm_echo $?) setopt shwordsplit fi if [ "_$VERSION" = "_N/A" ]; then @@ -2195,7 +2208,7 @@ nvm() { --silent) NVM_SILENT='--silent' ; shift ;; --) break ;; --*) - >&2 echo "Unsupported option "$1"." + nvm_err "Unsupported option \"$1\"." return 55 ;; *) @@ -2233,9 +2246,9 @@ nvm() { if [ -z "${NVM_SILENT-}" ]; then if nvm_is_iojs_version "$VERSION"; then - echo "Running io.js $(nvm_strip_iojs_prefix "$VERSION")$(nvm use --silent "$VERSION" && nvm_print_npm_version)" + nvm_echo "Running io.js $(nvm_strip_iojs_prefix "$VERSION")$(nvm use --silent "$VERSION" && nvm_print_npm_version)" else - echo "Running node $VERSION$(nvm use --silent "$VERSION" && nvm_print_npm_version)" + nvm_echo "Running node $VERSION$(nvm use --silent "$VERSION" && nvm_print_npm_version)" fi fi NODE_VERSION="$VERSION" "$NVM_DIR/nvm-exec" "$@" @@ -2291,7 +2304,7 @@ nvm() { fi local NVM_OUTPUT - NVM_OUTPUT="$(echo "$NVM_LS_REMOTE_PRE_MERGED_OUTPUT + NVM_OUTPUT="$(nvm_echo "$NVM_LS_REMOTE_PRE_MERGED_OUTPUT $NVM_LS_REMOTE_IOJS_OUTPUT $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d')" if [ -n "$NVM_OUTPUT" ]; then @@ -2329,17 +2342,17 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' local NVM_BIN NVM_BIN="$(nvm use system >/dev/null 2>&1 && command which node)" if [ -n "$NVM_BIN" ]; then - echo "$NVM_BIN" + nvm_echo "$NVM_BIN" return else return 1 fi else - echo "System version of node not found." >&2 + nvm_err 'System version of node not found.' return 127 fi elif [ "_$VERSION" = "_∞" ]; then - echo "The alias \"$2\" leads to an infinite loop. Aborting." >&2 + nvm_err "The alias \"$2\" leads to an infinite loop. Aborting." return 8 fi @@ -2350,7 +2363,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' fi local NVM_VERSION_DIR NVM_VERSION_DIR="$(nvm_version_path "$VERSION")" - echo "$NVM_VERSION_DIR/bin/node" + nvm_echo "$NVM_VERSION_DIR/bin/node" ;; "alias" ) local NVM_ALIAS_DIR @@ -2377,18 +2390,18 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' return $? fi if [ "${2#*\/}" != "${2-}" ]; then - >&2 echo "Aliases in subdirectories are not supported." + nvm_err 'Aliases in subdirectories are not supported.' return 1 fi VERSION="$(nvm_version "${3-}" || return 0)" if [ "$VERSION" = 'N/A' ]; then - echo "! WARNING: Version '${3-}' does not exist." >&2 + nvm_err "! WARNING: Version '${3-}' does not exist." fi nvm_make_alias "${2-}" "${3-}" if [ "_$3" = "_$VERSION" ]; then - echo "${2-} -> ${3-}" + nvm_echo "${2-} -> ${3-}" else - echo "${2-} -> ${3-} (-> $VERSION)" + nvm_echo "${2-} -> ${3-} (-> $VERSION)" fi ;; "unalias" ) @@ -2400,14 +2413,14 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' return 127 fi if [ "${2#*\/}" != "${2-}" ]; then - >&2 echo "Aliases in subdirectories are not supported." + nvm_err 'Aliases in subdirectories are not supported.' return 1 fi - [ ! -f "$NVM_ALIAS_DIR/$2" ] && echo "Alias $2 doesn't exist!" >&2 && return + [ ! -f "$NVM_ALIAS_DIR/$2" ] && nvm_err "Alias $2 doesn't exist!" && return local NVM_ALIAS_ORIGINAL NVM_ALIAS_ORIGINAL="$(nvm_alias "$2")" command rm -f "$NVM_ALIAS_DIR/$2" - echo "Deleted alias $2 - restore it with \`nvm alias \"$2\" \"$NVM_ALIAS_ORIGINAL\"\`" + nvm_echo "Deleted alias $2 - restore it with \`nvm alias \"$2\" \"$NVM_ALIAS_ORIGINAL\"\`" ;; "reinstall-packages" | "copy-packages" ) if [ $# -ne 2 ]; then @@ -2419,14 +2432,14 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' PROVIDED_VERSION="$2" if [ "$PROVIDED_VERSION" = "$(nvm_ls_current)" ] || [ "$(nvm_version "$PROVIDED_VERSION" || return 0)" = "$(nvm_ls_current)" ]; then - echo 'Can not reinstall packages from the current version of node.' >&2 + nvm_err 'Can not reinstall packages from the current version of node.' return 2 fi local VERSION if [ "_$PROVIDED_VERSION" = "_system" ]; then if ! nvm_has_system_node && ! nvm_has_system_iojs; then - echo 'No system version of node or io.js detected.' >&2 + nvm_err 'No system version of node or io.js detected.' return 3 fi VERSION="system" @@ -2441,10 +2454,10 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' INSTALLS="${NPMLIST%% //// *}" LINKS="${NPMLIST##* //// }" - echo "Reinstalling global packages from $VERSION..." - echo "$INSTALLS" | command xargs npm install -g --quiet + nvm_echo "Reinstalling global packages from $VERSION..." + nvm_echo "$INSTALLS" | command xargs npm install -g --quiet - echo "Linking global packages from $VERSION..." + nvm_echo "Linking global packages from $VERSION..." set -f; IFS=' ' # necessary to turn off variable expansion except for newlines for LINK in $LINKS; do @@ -2457,7 +2470,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' ;; "clear-cache" ) command rm -f "$NVM_DIR/v*" "$(nvm_version_dir)" 2>/dev/null - echo "Cache cleared." + nvm_echo 'Cache cleared.' ;; "version" ) nvm_version "$2" @@ -2466,7 +2479,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' nvm_remote_version "$2" ;; "--version" ) - echo "0.31.0" + nvm_echo '0.31.0' ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum \ @@ -2515,21 +2528,21 @@ nvm_auto() { NVM_MODE="${1-}" local VERSION if [ "_$NVM_MODE" = '_install' ]; then - VERSION="$(nvm_alias default 2>/dev/null || echo)" + VERSION="$(nvm_alias default 2>/dev/null || nvm_echo)" if [ -n "$VERSION" ]; then nvm install "$VERSION" >/dev/null elif nvm_rc_version >/dev/null 2>&1; then nvm install >/dev/null fi elif [ "_$NVM_MODE" = '_use' ]; then - VERSION="$(nvm_alias default 2>/dev/null || echo)" + VERSION="$(nvm_alias default 2>/dev/null || nvm_echo)" if [ -n "$VERSION" ]; then nvm use --silent "$VERSION" >/dev/null elif nvm_rc_version >/dev/null 2>&1; then nvm use --silent >/dev/null fi elif [ "_$NVM_MODE" != '_none' ]; then - echo >&2 'Invalid auto mode supplied.' + nvm_err 'Invalid auto mode supplied.' return 1 fi } From 8a138d98ed40403f4fde70c80c677dc6bb04cac2 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 5 May 2016 01:27:17 -0700 Subject: [PATCH 0693/1426] [Refactor] Use `awk` to improve version comparison performance --- nvm.sh | 39 +++++++++++++++++---------- test/fast/Unit tests/nvm_version_path | 5 +++- 2 files changed, 29 insertions(+), 15 deletions(-) diff --git a/nvm.sh b/nvm.sh index 5c41c3a..a802dc7 100755 --- a/nvm.sh +++ b/nvm.sh @@ -166,19 +166,32 @@ nvm_rc_version() { } nvm_version_greater() { - local LHS - LHS="$(nvm_normalize_version "$1")" - local RHS - RHS="$(nvm_normalize_version "$2")" - [ "$LHS" -gt "$RHS" ]; + command awk 'BEGIN { + if (ARGV[1] == "" || ARGV[2] == "") exit(1) + split(ARGV[1], a, /\./); + split(ARGV[2], b, /\./); + for (i=1; i<=3; i++) { + if (a[i] && a[i] !~ /^[0-9]+$/) exit(2); + if (b[i] && b[i] !~ /^[0-9]+$/) { exit(0); } + if (a[i] < b[i]) exit(3); + else if (a[i] > b[i]) exit(0); + } + exit(4) + }' "${1#v}" "${2#v}"; } nvm_version_greater_than_or_equal_to() { - local LHS - LHS="$(nvm_normalize_version "$1")" - local RHS - RHS="$(nvm_normalize_version "$2")" - [ "$LHS" -ge "$RHS" ]; + command awk 'BEGIN { + if (ARGV[1] == "" || ARGV[2] == "") exit(1) + split(ARGV[1], a, /\./); + split(ARGV[2], b, /\./); + for (i=1; i<=3; i++) { + if (a[i] && a[i] !~ /^[0-9]+$/) exit(2); + if (a[i] < b[i]) exit(3); + else if (a[i] > b[i]) exit(0); + } + exit(0) + }' "${1#v}" "${2#v}"; } nvm_version_dir() { @@ -331,7 +344,7 @@ nvm_is_valid_version() { *) local VERSION VERSION="$(nvm_strip_iojs_prefix "$1")" - nvm_version_greater "$VERSION" + nvm_version_greater_than_or_equal_to "$VERSION" 0 ;; esac } @@ -398,9 +411,7 @@ nvm_prepend_path() { nvm_binary_available() { # binaries started with node 0.8.6 - local FIRST_VERSION_WITH_BINARY - FIRST_VERSION_WITH_BINARY="0.8.6" - nvm_version_greater_than_or_equal_to "$(nvm_strip_iojs_prefix "$1")" "$FIRST_VERSION_WITH_BINARY" + nvm_version_greater_than_or_equal_to "$(nvm_strip_iojs_prefix "${1-}")" v0.8.6 } nvm_print_formatted_alias() { diff --git a/test/fast/Unit tests/nvm_version_path b/test/fast/Unit tests/nvm_version_path index 547ceb8..b8ae685 100755 --- a/test/fast/Unit tests/nvm_version_path +++ b/test/fast/Unit tests/nvm_version_path @@ -4,7 +4,10 @@ die () { echo $@ ; exit 1; } . ../../../nvm.sh -[ "$(nvm_version_path foo)" = "$NVM_DIR/foo" ] || die '"nvm_version_path foo" did not return correct location' +OUTPUT="$(nvm_version_path foo)" +EXPECTED_OUTPUT="$NVM_DIR/foo" +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "'nvm_version_path foo' did not return correct location; expected '$EXPECTED_OUTPUT', got '$OUTPUT'" + [ "$(nvm_version_path 2>&1)" = "version is required" ] || die '"nvm_version_path" did not error out' [ "$(nvm_version_path v0.11.0)" = "$NVM_DIR/v0.11.0" ] || die 'old version has the wrong path' [ "$(nvm_version_path v0.12.0)" = "$NVM_DIR/versions/node/v0.12.0" ] || die 'new version has the wrong path' From 06c1cfcd85e75c23b5ff06a132c1a277a2f97e02 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 5 May 2016 01:30:38 -0700 Subject: [PATCH 0694/1426] [Refactor] avoid some pipes to `awk` --- nvm.sh | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) mode change 100755 => 100644 nvm.sh diff --git a/nvm.sh b/nvm.sh old mode 100755 new mode 100644 index a802dc7..a92df60 --- a/nvm.sh +++ b/nvm.sh @@ -42,12 +42,11 @@ nvm_get_latest() { nvm_err 'nvm needs curl or wget to proceed.' return 1 fi - if [ "_$NVM_LATEST_URL" = "_" ]; then + if [ -z "$NVM_LATEST_URL" ]; then nvm_err "http://latest.nvm.sh did not redirect to the latest release on Github" return 2 - else - nvm_echo "$NVM_LATEST_URL" | command awk -F '/' '{print $NF}' fi + nvm_echo "${NVM_LATEST_URL##*/}" } nvm_download() { @@ -350,7 +349,11 @@ nvm_is_valid_version() { } nvm_normalize_version() { - nvm_echo "${1#v}" | command awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }' + command awk 'BEGIN { + split(ARGV[1], a, /\./); + printf "%d%06d%06d\n", a[1], a[2], a[3]; + exit; + }' "${1#v}" } nvm_ensure_version_prefix() { @@ -889,19 +892,19 @@ nvm_checksum() { fi else if nvm_has "sha256sum" && ! nvm_is_alias "sha256sum"; then - NVM_CHECKSUM="$(sha256sum "$1" | awk '{print $1}')" + NVM_CHECKSUM="$(sha256sum "$1" | command awk '{print $1}')" elif nvm_has "shasum" && ! nvm_is_alias "shasum"; then - NVM_CHECKSUM="$(shasum -a 256 "$1" | awk '{print $1}')" + NVM_CHECKSUM="$(shasum -a 256 "$1" | command awk '{print $1}')" elif nvm_has "sha256" && ! nvm_is_alias "sha256"; then - NVM_CHECKSUM="$(sha256 -q "$1" | awk '{print $1}')" + NVM_CHECKSUM="$(sha256 -q "$1" | command awk '{print $1}')" elif nvm_has "gsha256sum" && ! nvm_is_alias "gsha256sum"; then - NVM_CHECKSUM="$(gsha256sum "$1" | awk '{print $1}')" + NVM_CHECKSUM="$(gsha256sum "$1" | command awk '{print $1}')" elif nvm_has "openssl" && ! nvm_is_alias "openssl"; then - NVM_CHECKSUM="$(openssl dgst -sha256 "$1" | rev | awk '{print $1}' | rev)" + NVM_CHECKSUM="$(openssl dgst -sha256 "$1" | rev | command awk '{print $1}' | rev)" elif nvm_has "libressl" && ! nvm_is_alias "libressl"; then - NVM_CHECKSUM="$(libressl dgst -sha256 "$1" | rev | awk '{print $1}' | rev)" + NVM_CHECKSUM="$(libressl dgst -sha256 "$1" | rev | command awk '{print $1}' | rev)" elif nvm_has "bssl" && ! nvm_is_alias "bssl"; then - NVM_CHECKSUM="$(bssl sha256sum "$1" | awk '{print $1}')" + NVM_CHECKSUM="$(bssl sha256sum "$1" | command awk '{print $1}')" else nvm_err 'Unaliased sha256sum, shasum, sha256, gsha256sum, openssl, libressl, or bssl not found.' nvm_err 'WARNING: Continuing *without checksum verification*' From d1962c67422a24568586a9fa4e360275e23d2905 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 5 May 2016 23:52:26 -0700 Subject: [PATCH 0695/1426] [Refactor] clean up `nvm_sanitize_path` --- nvm.sh | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/nvm.sh b/nvm.sh index a92df60..d741f1c 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1633,11 +1633,14 @@ nvm_has_solaris_binary() { nvm_sanitize_path() { local SANITIZED_PATH - SANITIZED_PATH="$1" - if [ "_$1" != "_$NVM_DIR" ]; then - SANITIZED_PATH="$(nvm_echo "$SANITIZED_PATH" | command sed "s#$NVM_DIR#\$NVM_DIR#g")" + SANITIZED_PATH="${1-}" + if [ "_$SANITIZED_PATH" != "_$NVM_DIR" ]; then + SANITIZED_PATH="${SANITIZED_PATH/#$NVM_DIR/\$NVM_DIR}" fi - nvm_echo "$SANITIZED_PATH" | command sed "s#$HOME#\$HOME#g" + if [ "_$SANITIZED_PATH" != "_$HOME" ]; then + SANITIZED_PATH="${SANITIZED_PATH/#$HOME/\$HOME}" + fi + nvm_echo "$SANITIZED_PATH" } nvm_is_natural_num() { From f49eb61f8e2ff9c6f12ab4d027b06eba36929bfe Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 5 May 2016 23:52:51 -0700 Subject: [PATCH 0696/1426] [Improvement] Use `nvm_sanitize_path` in `nvm_check_file_permissions`. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index d741f1c..517356f 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1964,7 +1964,7 @@ nvm() { nvm_err 'Cannot uninstall, incorrect permissions on installation folder.' nvm_err 'This is usually caused by running `npm install -g` as root. Run the following command as root to fix the permissions and then try again.' nvm_err - nvm_err " chown -R $(whoami) \"$VERSION_PATH\"" + nvm_err " chown -R $(whoami) \"$(nvm_sanitize_path "$VERSION_PATH")\"" return 1 fi From 1ca2aa648fe867e68d50cfc664f0de27c7fbbbab Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 5 May 2016 23:53:13 -0700 Subject: [PATCH 0697/1426] [minor] Echo nonwritable file path to stderr. --- nvm.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/nvm.sh b/nvm.sh index 517356f..48fa1bf 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1664,6 +1664,7 @@ nvm_check_file_permissions() { return 2 fi elif [ -e "$FILE" ] && [ ! -w "$FILE" ]; then + nvm_err "file is not writable: $(nvm_sanitize_path "$FILE")" return 1 fi done From eb329ae7a9540355ef5aea0a6de11ae9c8c55783 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 5 May 2016 23:58:27 -0700 Subject: [PATCH 0698/1426] [minor] display `chmod` command as well to fix file permissions. --- nvm.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 48fa1bf..41bf416 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1963,9 +1963,10 @@ nvm() { VERSION_PATH="$(nvm_version_path "$VERSION")" if ! nvm_check_file_permissions "$VERSION_PATH"; then nvm_err 'Cannot uninstall, incorrect permissions on installation folder.' - nvm_err 'This is usually caused by running `npm install -g` as root. Run the following command as root to fix the permissions and then try again.' + nvm_err 'This is usually caused by running `npm install -g` as root. Run the following commands as root to fix the permissions and then try again.' nvm_err nvm_err " chown -R $(whoami) \"$(nvm_sanitize_path "$VERSION_PATH")\"" + nvm_err " chmod -R u+w \"$(nvm_sanitize_path "$VERSION_PATH")\"" return 1 fi From a94ade8ec2ae0b2422063208d172b3d903a66fb5 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 6 May 2016 01:00:56 -0700 Subject: [PATCH 0699/1426] =?UTF-8?q?[Fix]=20don=E2=80=99t=20use=20bash=20?= =?UTF-8?q?`=3D=3D`=20in=20conditionals?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 41bf416..17b504f 100644 --- a/nvm.sh +++ b/nvm.sh @@ -879,7 +879,7 @@ nvm_ls_remote_index_tab() { nvm_checksum() { local NVM_CHECKSUM - if [ -z "$3" ] || [ "$3" == "sha1" ]; then + if [ -z "$3" ] || [ "$3" = "sha1" ]; then if nvm_has "sha1sum" && ! nvm_is_alias "sha1sum"; then NVM_CHECKSUM="$(command sha1sum "$1" | command awk '{print $1}')" elif nvm_has "sha1" && ! nvm_is_alias "sha1"; then From 05a2d986a439c77122d4d4def70d5b539bc1cb18 Mon Sep 17 00:00:00 2001 From: "Edward J. Jinotti" Date: Thu, 28 Apr 2016 10:49:13 -0400 Subject: [PATCH 0700/1426] Improve zsh script to revert to default node version when exiting a .nvmrc directory. --- README.markdown | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.markdown b/README.markdown index 4999302..007ecfc 100644 --- a/README.markdown +++ b/README.markdown @@ -199,6 +199,9 @@ autoload -U add-zsh-hook load-nvmrc() { if [[ -f .nvmrc && -r .nvmrc ]]; then nvm use + elif [[ $(nvm version) != $(nvm version default) ]]; then + echo "Reverting to nvm default version" + nvm use default fi } add-zsh-hook chpwd load-nvmrc From d4d879e6223a6473cecb5f47fb34d49e053d8e1c Mon Sep 17 00:00:00 2001 From: "Edward J. Jinotti" Date: Thu, 28 Apr 2016 11:14:23 -0400 Subject: [PATCH 0701/1426] zsh script: Check version / .nvmrc on new shell also. --- README.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.markdown b/README.markdown index 007ecfc..27a143c 100644 --- a/README.markdown +++ b/README.markdown @@ -195,6 +195,7 @@ Put this into your `$HOME/.zshrc` to call `nvm use` automatically whenever you e `.nvmrc` file with a string telling nvm which node to `use`: ```zsh +# place this after nvm initialization! autoload -U add-zsh-hook load-nvmrc() { if [[ -f .nvmrc && -r .nvmrc ]]; then @@ -205,6 +206,7 @@ load-nvmrc() { fi } add-zsh-hook chpwd load-nvmrc +load-nvmrc ``` ## License From fc82742a8b5ccce3aefac966cb2af30e129432d2 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 6 May 2016 12:29:01 -0700 Subject: [PATCH 0702/1426] [Robustness] add a missing `command` to a `sed` call --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 17b504f..7696a09 100644 --- a/nvm.sh +++ b/nvm.sh @@ -999,7 +999,7 @@ nvm_print_implicit_alias() { NVM_IOJS_VERSION="$($NVM_COMMAND)" EXIT_CODE="$?" if [ "_$EXIT_CODE" = "_0" ]; then - NVM_IOJS_VERSION="$(nvm_echo "$NVM_IOJS_VERSION" | sed "s/^$NVM_IMPLICIT-//" | command grep -e '^v' | command cut -c2- | command cut -d . -f 1,2 | uniq | command tail -1)" + NVM_IOJS_VERSION="$(nvm_echo "$NVM_IOJS_VERSION" | command sed "s/^$NVM_IMPLICIT-//" | command grep -e '^v' | command cut -c2- | command cut -d . -f 1,2 | uniq | command tail -1)" fi if [ "$ZHS_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then From bc3d028152e1b8a4e6b2c992aef789d78159ccb7 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 7 May 2016 18:14:11 -0700 Subject: [PATCH 0703/1426] `nvm alias`: colorize output when creating aliases. --- nvm.sh | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/nvm.sh b/nvm.sh index 7696a09..6376c22 100644 --- a/nvm.sh +++ b/nvm.sh @@ -423,10 +423,13 @@ nvm_print_formatted_alias() { local DEST DEST="${2-}" local VERSION + VERSION="${3-}" + if [ -z "$VERSION" ]; then + VERSION="$(nvm_version "$DEST" || return 0)" + fi local VERSION_FORMAT local ALIAS_FORMAT local DEST_FORMAT - VERSION="$(nvm_version "$DEST" || return 0)" ALIAS_FORMAT='%s' DEST_FORMAT='%s' VERSION_FORMAT='%s' @@ -2388,9 +2391,9 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' local NVM_ALIAS_DIR NVM_ALIAS_DIR="$(nvm_alias_path)" command mkdir -p "$NVM_ALIAS_DIR" + local NVM_CURRENT + NVM_CURRENT="$(nvm_ls_current)" if [ $# -le 2 ]; then - local NVM_CURRENT - NVM_CURRENT="$(nvm_ls_current)" local ALIAS_PATH for ALIAS_PATH in "$NVM_ALIAS_DIR/${2-}"*; do NVM_CURRENT="${NVM_CURRENT}" nvm_print_alias_path "$NVM_ALIAS_DIR" "$ALIAS_PATH" @@ -2417,11 +2420,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' nvm_err "! WARNING: Version '${3-}' does not exist." fi nvm_make_alias "${2-}" "${3-}" - if [ "_$3" = "_$VERSION" ]; then - nvm_echo "${2-} -> ${3-}" - else - nvm_echo "${2-} -> ${3-} (-> $VERSION)" - fi + NVM_CURRENT="${NVM_CURRENT-}" DEFAULT=false nvm_print_formatted_alias "${2-}" "${3-}" "$VERSION" ;; "unalias" ) local NVM_ALIAS_DIR From 6311a0e9c465ba19bd487952c58a5b4484642e49 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 7 May 2016 18:51:21 -0700 Subject: [PATCH 0704/1426] `nvm ls`/`nvm alias`/`nvm ls-remote`: only colorize when colors are supported. --- nvm.sh | 75 ++++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 52 insertions(+), 23 deletions(-) diff --git a/nvm.sh b/nvm.sh index 6376c22..075f884 100644 --- a/nvm.sh +++ b/nvm.sh @@ -32,6 +32,14 @@ nvm_is_alias() { \alias "$1" > /dev/null 2>&1 } +nvm_has_colors() { + local NVM_COLORS + if test -t 1; then + NVM_COLORS="$(tput -T "${TERM:-vt100}" colors)" + fi + [ "${NVM_COLORS:--1}" -ge 8 ] +} + nvm_get_latest() { local NVM_LATEST_URL if nvm_has "curl"; then @@ -433,28 +441,36 @@ nvm_print_formatted_alias() { ALIAS_FORMAT='%s' DEST_FORMAT='%s' VERSION_FORMAT='%s' - if [ "_$VERSION" = "_${NVM_CURRENT-}" ]; then - ALIAS_FORMAT='\033[0;32m%s\033[0m' - DEST_FORMAT='\033[0;32m%s\033[0m' - VERSION_FORMAT='\033[0;32m%s\033[0m' - elif nvm_is_version_installed "$VERSION"; then - ALIAS_FORMAT='\033[0;34m%s\033[0m' - DEST_FORMAT='\033[0;34m%s\033[0m' - VERSION_FORMAT='\033[0;34m%s\033[0m' - elif [ "_$VERSION" = '_∞' ] || [ "_$VERSION" = '_N/A' ]; then - ALIAS_FORMAT='\033[1;31m%s\033[0m' - DEST_FORMAT='\033[1;31m%s\033[0m' - VERSION_FORMAT='\033[1;31m%s\033[0m' - fi local NEWLINE NEWLINE="\n" if [ "_$DEFAULT" = '_true' ]; then - NEWLINE=" \033[0;37m(default)\033[0m\n" + NEWLINE=" (default)\n" + fi + local ARROW + ARROW='->' + if nvm_has_colors; then + ARROW='\033[0;90m->\033[0m' + if [ "_$DEFAULT" = '_true' ]; then + NEWLINE=" \033[0;37m(default)\033[0m\n" + fi + if [ "_$VERSION" = "_${NVM_CURRENT-}" ]; then + ALIAS_FORMAT='\033[0;32m%s\033[0m' + DEST_FORMAT='\033[0;32m%s\033[0m' + VERSION_FORMAT='\033[0;32m%s\033[0m' + elif nvm_is_version_installed "$VERSION"; then + ALIAS_FORMAT='\033[0;34m%s\033[0m' + DEST_FORMAT='\033[0;34m%s\033[0m' + VERSION_FORMAT='\033[0;34m%s\033[0m' + elif [ "_$VERSION" = '_∞' ] || [ "_$VERSION" = '_N/A' ]; then + ALIAS_FORMAT='\033[1;31m%s\033[0m' + DEST_FORMAT='\033[1;31m%s\033[0m' + VERSION_FORMAT='\033[1;31m%s\033[0m' + fi fi if [ "_$DEST" = "_$VERSION" ]; then - command printf "${ALIAS_FORMAT} \033[0;90m->\033[0m ${VERSION_FORMAT}${NEWLINE}" "$ALIAS" "$DEST" + command printf "${ALIAS_FORMAT} ${ARROW} ${VERSION_FORMAT}${NEWLINE}" "$ALIAS" "$DEST" else - command printf "${ALIAS_FORMAT} \033[0;90m->\033[0m ${DEST_FORMAT} (\033[0;90m->\033[0m ${VERSION_FORMAT})${NEWLINE}" "$ALIAS" "$DEST" "$VERSION" + command printf "${ALIAS_FORMAT} ${ARROW} ${DEST_FORMAT} (${ARROW} ${VERSION_FORMAT})${NEWLINE}" "$ALIAS" "$DEST" "$VERSION" fi } @@ -931,17 +947,30 @@ nvm_print_versions() { local FORMAT local NVM_CURRENT NVM_CURRENT=$(nvm_ls_current) + local NVM_HAS_COLORS + if nvm_has_colors; then + NVM_HAS_COLORS=1 + fi nvm_echo "$1" | while read -r VERSION; do + FORMAT='%15s' if [ "_$VERSION" = "_$NVM_CURRENT" ]; then - FORMAT='\033[0;32m-> %12s\033[0m' + if [ "${NVM_HAS_COLORS-}" = '1' ]; then + FORMAT='\033[0;32m-> %12s\033[0m' + else + FORMAT='-> %12s *' + fi elif [ "$VERSION" = "system" ]; then - FORMAT='\033[0;33m%15s\033[0m' + if [ "${NVM_HAS_COLORS-}" = '1' ]; then + FORMAT='\033[0;33m%15s\033[0m' + fi elif nvm_is_version_installed "$VERSION"; then - FORMAT='\033[0;34m%15s\033[0m' - else - FORMAT='%15s' + if [ "${NVM_HAS_COLORS-}" = '1' ]; then + FORMAT='\033[0;34m%15s\033[0m' + else + FORMAT='%15s *' + fi fi - command printf "$FORMAT\n" "$VERSION" + command printf -- "$FORMAT\n" "$VERSION" done } @@ -2523,7 +2552,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' nvm_has_system_node nvm_has_system_iojs \ nvm_download nvm_get_latest nvm_has nvm_get_latest \ nvm_supports_source_options nvm_auto nvm_supports_xz \ - nvm_process_parameters > /dev/null 2>&1 + nvm_has_colors nvm_process_parameters > /dev/null 2>&1 unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_DIR NVM_CD_FLAGS > /dev/null 2>&1 ;; * ) From 08805399729e3e17a96c4ff1ae53c243d81272c5 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 8 May 2016 20:05:59 -0700 Subject: [PATCH 0705/1426] `nvm_strip_path`: Error out when `$NVM_DIR` is not set. Per https://github.com/creationix/nvm/issues/1083#issuecomment-217752185 --- nvm.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nvm.sh b/nvm.sh index 075f884..010801e 100644 --- a/nvm.sh +++ b/nvm.sh @@ -403,6 +403,10 @@ nvm_num_version_groups() { } nvm_strip_path() { + if [ -z "${NVM_DIR-}" ]; then + nvm_err '$NVM_DIR not set!' + return 1 + fi nvm_echo "$1" | command sed \ -e "s#$NVM_DIR/[^/]*$2[^:]*:##g" \ -e "s#:$NVM_DIR/[^/]*$2[^:]*##g" \ From eeaddf9ab0c42e9135d7968cc429a26e92e6380d Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 8 May 2016 17:10:02 -0700 Subject: [PATCH 0706/1426] =?UTF-8?q?Don=E2=80=99t=20restrict=20colors=20t?= =?UTF-8?q?o=20TTYs.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This restriction prevents subcommands from producing colors and passing them up the tree to the actual TTY. --- nvm.sh | 4 +--- test/fast/Aliases/nvm_ensure_default_set | 4 +++- test/fast/Unit tests/nvm_ensure_default_set | 4 +++- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/nvm.sh b/nvm.sh index 010801e..2ba9d9b 100644 --- a/nvm.sh +++ b/nvm.sh @@ -34,9 +34,7 @@ nvm_is_alias() { nvm_has_colors() { local NVM_COLORS - if test -t 1; then - NVM_COLORS="$(tput -T "${TERM:-vt100}" colors)" - fi + NVM_COLORS="$(tput -T "${TERM:-vt100}" colors)" [ "${NVM_COLORS:--1}" -ge 8 ] } diff --git a/test/fast/Aliases/nvm_ensure_default_set b/test/fast/Aliases/nvm_ensure_default_set index c719e4b..602ceba 100755 --- a/test/fast/Aliases/nvm_ensure_default_set +++ b/test/fast/Aliases/nvm_ensure_default_set @@ -1,5 +1,7 @@ #!/bin/sh +. ../../common.sh + die () { echo $@ ; exit 1; } . ../../../nvm.sh @@ -14,5 +16,5 @@ OUTPUT="$(nvm_ensure_default_set 0.2)" EXPECTED_OUTPUT="Creating default alias: default -> 0.2 (-> iojs-v0.2.10)" EXIT_CODE="$?" -[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_ensure_default_set 0.2' did not output '$EXPECTED_OUTPUT', got '$OUTPUT'" +[ "_$(echo "$OUTPUT" | strip_colors)" = "_$EXPECTED_OUTPUT" ] || die "'nvm_ensure_default_set 0.2' did not output '$EXPECTED_OUTPUT', got '$OUTPUT'" [ "_$EXIT_CODE" = "_0" ] || die "'nvm_ensure_default_set 0.2' did not exit with 0, got $EXIT_CODE" diff --git a/test/fast/Unit tests/nvm_ensure_default_set b/test/fast/Unit tests/nvm_ensure_default_set index edd926c..fb0461b 100755 --- a/test/fast/Unit tests/nvm_ensure_default_set +++ b/test/fast/Unit tests/nvm_ensure_default_set @@ -1,5 +1,7 @@ #!/bin/sh +. ../../common.sh + die () { echo $@ ; exit 1; } . ../../../nvm.sh @@ -7,7 +9,7 @@ die () { echo $@ ; exit 1; } EXPECTED_OUTPUT="nvm_ensure_default_set: a version is required" OUTPUT="$(nvm_ensure_default_set 2>&1 >/dev/null)" EXIT_CODE="$?" -[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_ensure_default_set' did not output "$EXPECTED_OUTPUT", got "$OUTPUT"" +[ "_$(echo "$OUTPUT" | strip_colors)" = "_$EXPECTED_OUTPUT" ] || die "'nvm_ensure_default_set' did not output "$EXPECTED_OUTPUT", got "$OUTPUT"" [ "_$EXIT_CODE" = "_1" ] || die "'nvm_ensure_default_set' did not exit with 1, got "$EXIT_CODE"" # see test/fast/Aliases for remaining nvm_ensure_default_set tests From ec2f450b6e9e64e469cc9e7aeaaa418ab82ca607 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 9 May 2016 22:06:43 -0700 Subject: [PATCH 0707/1426] v0.31.1 --- README.markdown | 6 +++--- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.markdown b/README.markdown index 27a143c..3d65739 100644 --- a/README.markdown +++ b/README.markdown @@ -29,11 +29,11 @@ Homebrew installation is not supported. To install or update nvm, you can use the [install script][2] using cURL: - curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash + curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). @@ -318,7 +318,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But If setting the `default` alias does not establish the node version in new shells (i.e. `nvm current` yields `system`), ensure that the system's node PATH is set before the `nvm.sh` source line in your shell profile (see [#658](https://github.com/creationix/nvm/issues/658)) [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.31.0/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.31.1/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index cfb6c29..a1aaa1c 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ if [ -z "$NVM_DIR" ]; then fi nvm_latest_version() { - echo "v0.31.0" + echo "v0.31.1" } # diff --git a/nvm.sh b/nvm.sh index 2ba9d9b..ce5c6b5 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2528,7 +2528,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' nvm_remote_version "$2" ;; "--version" ) - nvm_echo '0.31.0' + nvm_echo '0.31.1' ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum \ diff --git a/package.json b/package.json index 16c16ad..4a6052b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.31.0", + "version": "0.31.1", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 36c65d7115c4cbdac9ae8e72b7062d72271a4970 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 10 May 2016 01:11:17 -0700 Subject: [PATCH 0708/1426] [shellcheck] add spellcheck override comments --- nvm.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nvm.sh b/nvm.sh index ce5c6b5..30c6afd 100644 --- a/nvm.sh +++ b/nvm.sh @@ -6,6 +6,8 @@ # Implemented by Tim Caswell # with much bash help from Matthew Ranney +# "local" warning, quote expansion warning +# shellcheck disable=SC2039,SC2016 { # this ensures the entire script is downloaded # NVM_SCRIPT_SOURCE="$_" @@ -100,6 +102,7 @@ fi # Auto detect the NVM_DIR when not set if [ -z "${NVM_DIR-}" ]; then + # shellcheck disable=SC2128 if [ -n "$BASH_SOURCE" ]; then NVM_SCRIPT_SOURCE="${BASH_SOURCE[0]}" fi @@ -2565,6 +2568,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' } nvm_supports_source_options() { + # shellcheck disable=SC1091 [ "_$(echo '[ $# -gt 0 ] && echo $1' | . /dev/stdin yes 2> /dev/null)" = "_yes" ] } From 6dd6a0d213703a516df545970f4d8964319ede47 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 10 May 2016 01:17:31 -0700 Subject: [PATCH 0709/1426] [Fix] `dash` does not support string substitution :-( --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 30c6afd..45e6b28 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1672,10 +1672,10 @@ nvm_sanitize_path() { local SANITIZED_PATH SANITIZED_PATH="${1-}" if [ "_$SANITIZED_PATH" != "_$NVM_DIR" ]; then - SANITIZED_PATH="${SANITIZED_PATH/#$NVM_DIR/\$NVM_DIR}" + SANITIZED_PATH="$(nvm_echo "$SANITIZED_PATH" | command sed -e "s#$NVM_DIR#\$NVM_DIR#g")" fi if [ "_$SANITIZED_PATH" != "_$HOME" ]; then - SANITIZED_PATH="${SANITIZED_PATH/#$HOME/\$HOME}" + SANITIZED_PATH="$(nvm_echo "$SANITIZED_PATH" | command sed -e "s#$HOME#\$HOME#g")" fi nvm_echo "$SANITIZED_PATH" } From 6e18d959c77eb218b0d512601e5a40cc98adb2a7 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 11 May 2016 15:37:21 -0700 Subject: [PATCH 0710/1426] [shellcheck] clean up unquoted args etc --- nvm.sh | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/nvm.sh b/nvm.sh index 45e6b28..c67ccd8 100644 --- a/nvm.sh +++ b/nvm.sh @@ -17,12 +17,12 @@ nvm_echo() { nvm_echo() { \printf %s\\n "$*" # on zsh, `command printf` sometimes fails } - nvm_echo "$*" + nvm_echo "$@" } } nvm_err() { - >&2 nvm_echo "$*" + >&2 nvm_echo "$@" } nvm_has() { @@ -59,10 +59,10 @@ nvm_get_latest() { nvm_download() { if nvm_has "curl"; then - curl -q $* + curl -q "$@" elif nvm_has "wget"; then # Emulate curl with wget - ARGS=$(nvm_echo "$*" | command sed -e 's/--progress-bar /--progress=bar /' \ + ARGS=$(nvm_echo "$@" | command sed -e 's/--progress-bar /--progress=bar /' \ -e 's/-L //' \ -e 's/-I /--server-response /' \ -e 's/-s /-q /' \ @@ -1435,7 +1435,7 @@ nvm_get_make_jobs() { else nvm_echo "Detected that you have $NVM_CPU_THREADS CPU thread(s)" if [ "$NVM_CPU_THREADS" -gt 2 ]; then - NVM_MAKE_JOBS=$(($NVM_CPU_THREADS - 1)) + NVM_MAKE_JOBS=$((NVM_CPU_THREADS - 1)) nvm_echo "Set the number of jobs to $NVM_CPU_THREADS - 1 = $NVM_MAKE_JOBS jobs to speed up the build" else NVM_MAKE_JOBS=1 @@ -2231,8 +2231,6 @@ nvm() { NVM_IOJS=true fi - local ARGS - ARGS="$@" local EXIT_CODE local ZHS_HAS_SHWORDSPLIT_UNSET @@ -2244,9 +2242,9 @@ nvm() { if [ "_$VERSION" = "_N/A" ]; then nvm_ensure_version_installed "$provided_version" elif [ "$NVM_IOJS" = true ]; then - nvm exec "${NVM_SILENT-}" "$VERSION" iojs $ARGS + nvm exec "${NVM_SILENT-}" "$VERSION" iojs "$@" else - nvm exec "${NVM_SILENT-}" "$VERSION" node $ARGS + nvm exec "${NVM_SILENT-}" "$VERSION" node "$@" fi EXIT_CODE="$?" if [ "$ZHS_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then From ccde2898f8bc992639140aec4a5dee573ec8e343 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 13 May 2016 10:14:12 -0500 Subject: [PATCH 0711/1426] [help] Add `nvm ls-remote `. Fixes #1094. --- nvm.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/nvm.sh b/nvm.sh index c67ccd8..7e9d1d0 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1748,6 +1748,7 @@ nvm() { nvm_echo ' nvm ls List installed versions' nvm_echo ' nvm ls List versions matching a given description' nvm_echo ' nvm ls-remote List remote versions available for install' + nvm_echo ' nvm ls-remote List remote versions available for install, matching a given ' nvm_echo ' nvm version Resolve the given description to a single local version' nvm_echo ' nvm version-remote Resolve the given description to a single remote version' nvm_echo ' nvm deactivate Undo effects of `nvm` on current shell' From 74f9674a5d142c826cb2f140ef6cdba053d0d671 Mon Sep 17 00:00:00 2001 From: Dayton Date: Tue, 17 May 2016 16:49:18 -0500 Subject: [PATCH 0712/1426] Update README.markdown with some stylistic changes --- README.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.markdown b/README.markdown index 3d65739..d086b0f 100644 --- a/README.markdown +++ b/README.markdown @@ -2,7 +2,7 @@ ## Installation -First you'll need to make sure your system has a c++ compiler. For OSX, XCode will work, for Ubuntu, the build-essential and libssl-dev packages work. +First you'll need to make sure your system has a c++ compiler. For OS X, Xcode will work, for Ubuntu, the build-essential and libssl-dev packages work. Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/nvm/issues/284)). Two alternatives exist, which are neither supported nor developed by us: - [nvm-windows](https://github.com/coreybutler/nvm-windows) @@ -20,7 +20,7 @@ Note: We still have some problems with FreeBSD, because there is no pre-built bi - [[#900] [Bug] nodejs on FreeBSD need to be patched ](https://github.com/creationix/nvm/issues/900) - [nodejs/node#3716](https://github.com/nodejs/node/issues/3716) -Note: On OSX, if you do not have XCode installed and you do not wish to download the ~4.3GB file, you can install the `Command Line Tools`. You can check out this blog post on how to just that: +Note: On OS X, if you do not have Xcode installed and you do not wish to download the ~4.3GB file, you can install the `Command Line Tools`. You can check out this blog post on how to just that: - [How to Install Command Line Tools in OS X Mavericks & Yosemite (Without Xcode)](http://osxdaily.com/2014/02/12/install-command-line-tools-mac-os-x/) Homebrew installation is not supported. @@ -42,7 +42,7 @@ Eg: `curl ... | NVM_DIR="path/to/nvm" bash` *NB. The installer can use `git`, `curl`, or `wget` to download `nvm`, whatever is available.* -Note: On OSX, if you get `nvm: command not found` after running the install script, your system may not have a [.bash_profile file] where the command is set up. Simple create one with `touch ~/.bash_profile` and run the install script again. +Note: On OS X, if you get `nvm: command not found` after running the install script, your system may not have a [.bash_profile file] where the command is set up. Simple create one with `touch ~/.bash_profile` and run the install script again. ### Verify installation From f62747c29ca2b49ba1dafc8351e0096b19f717d9 Mon Sep 17 00:00:00 2001 From: Stephan DONIN Date: Fri, 20 May 2016 10:49:02 +0900 Subject: [PATCH 0713/1426] [Fix] `set -u`: is variable set test --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 7e9d1d0..78374e0 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2166,7 +2166,7 @@ nvm() { return 11 fi fi - if [ -n "$NVM_USE_OUTPUT" ]; then + if [ -n "${NVM_USE_OUTPUT-}" ]; then nvm_echo "$NVM_USE_OUTPUT" fi ;; From a2111c735ed49f2ada266475db623971fe357368 Mon Sep 17 00:00:00 2001 From: Rudolph Sand Date: Wed, 25 May 2016 02:16:57 +0200 Subject: [PATCH 0714/1426] Update README.markdown Added notes for OS X users regarding globally installed modules. --- README.markdown | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.markdown b/README.markdown index d086b0f..058f57b 100644 --- a/README.markdown +++ b/README.markdown @@ -23,6 +23,11 @@ Note: We still have some problems with FreeBSD, because there is no pre-built bi Note: On OS X, if you do not have Xcode installed and you do not wish to download the ~4.3GB file, you can install the `Command Line Tools`. You can check out this blog post on how to just that: - [How to Install Command Line Tools in OS X Mavericks & Yosemite (Without Xcode)](http://osxdaily.com/2014/02/12/install-command-line-tools-mac-os-x/) +Note: On OS X, if you have/had a "system" node installed and want to install modules globally, keep in mind that: + - When using nvm you do not need `sudo` to globally install a module with `npm -g`, so instead of doing `sudo npm install -g grunt`, do instead `npm install -g grunt` + - If you have an `~/.npmrc` file, make sure it does not contain any `prefix` settings (which is not compatible with nvm) + - You can (but should not?) keep your previous "system" node install, but nvm will only be available to your user account (the one used to install nvm). This might cause version mismatches, as other users will be using `/usr/local/lib/node_modules/*` VS your user account using `~/.nvm/versions/node/vX.X.X/lib/node_modules/*` + Homebrew installation is not supported. ### Install script From 251a2f340954de499fcca65d234d0367e05b0fe4 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 30 May 2016 18:06:33 -0700 Subject: [PATCH 0715/1426] [Fix] ensure `uname` is unaliased. Closes #1105 --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 78374e0..a572e2a 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1110,7 +1110,7 @@ nvm_print_implicit_alias() { nvm_get_os() { local NVM_UNAME - NVM_UNAME="$(uname -a)" + NVM_UNAME="$(command uname -a)" local NVM_OS case "$NVM_UNAME" in Linux\ *) NVM_OS=linux ;; @@ -1138,7 +1138,7 @@ nvm_get_arch() { HOST_ARCH=$(isainfo -n) fi else - HOST_ARCH="$(uname -m)" + HOST_ARCH="$(command uname -m)" fi local NVM_ARCH From 337ddbac161198a9ac9e9005daf17d3cb5e541d6 Mon Sep 17 00:00:00 2001 From: Neil Craig Date: Wed, 1 Jun 2016 13:33:16 +0100 Subject: [PATCH 0716/1426] Lowercase NVM Lowercase NPM Ref @mhart Add information WRT installling on Alpine Linux --- README.markdown | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index 058f57b..318d8e7 100644 --- a/README.markdown +++ b/README.markdown @@ -255,7 +255,7 @@ To activate, you need to source `bash_completion`: [[ -r $NVM_DIR/bash_completion ]] && . $NVM_DIR/bash_completion -Put the above sourcing line just below the sourcing line for NVM in your profile (`.bashrc`, `.bash_profile`). +Put the above sourcing line just below the sourcing line for nvm in your profile (`.bashrc`, `.bash_profile`). ### Usage @@ -302,6 +302,25 @@ Shell settings: set -e ``` +## Installing nvm on Alpine Linux +In order to provide the best performance (and other optimisations), nvm will download and install pre-compiled binaries for Node (and npm) when you run `nvm install X`. The Node project compiles, tests and hosts/provides pre-these compiled binaries which are built for mainstream/traditional Linux distributions (such as Debian, Ubuntu, CentOS, RedHat et al). + +Alpine Linux, unlike mainstream/traditional Linux distributions, is based on [busybox](https://www.busybox.net/), a very compact (~5MB) Linux distribution. Busybox (and thus Alpine Linux) uses a different C/C++ stack to most mainstream/traditional Linux distributions - [musl](https://www.musl-libc.org/). This makes binary programs built for such mainstream/traditional incompatible with Alpine Linux, thus we cannot simply `nvm install X` on Alpine Linux and expect the downloaded binary to run correctly - you'll likely see "...does not exist" errors if you try that. + +There is a `-s` flag for `nvm install` which requests nvm download Node source and compile it locally but currently (May 2016), this is not available for Node versions newer than v0.10 so unless you need an older Node version, this won't help you. Work is in progress on source-builds for newer Node versions but is not yet complete. + +If installing nvm on Alpine Linux *is* still what you want or need to do, you should be able to achieve this by running the following from you Alpine Linux shell: + +``` +apk add bash +wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | /bin/bash +``` + +The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. + +As a potential alternative, @mhart (a Node contributor) has some [Docker images for Alpine Linux with Node and optionally, npm, pre-installed](https://github.com/mhart/alpine-node). + + ## Problems If you try to install a node version and the installation fails, be sure to delete the node downloads from src (~/.nvm/src/) or you might get an error when trying to reinstall them again or you might get an error like the following: From 9327e49ab5b3e4adee98dcc09067f237ad9579cf Mon Sep 17 00:00:00 2001 From: chriskohlbrenner Date: Wed, 1 Jun 2016 14:20:57 -0400 Subject: [PATCH 0717/1426] [docs] replace "simple" with "simply", revise to consistent colon usage --- README.markdown | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/README.markdown b/README.markdown index 058f57b..059ac9b 100644 --- a/README.markdown +++ b/README.markdown @@ -47,11 +47,11 @@ Eg: `curl ... | NVM_DIR="path/to/nvm" bash` *NB. The installer can use `git`, `curl`, or `wget` to download `nvm`, whatever is available.* -Note: On OS X, if you get `nvm: command not found` after running the install script, your system may not have a [.bash_profile file] where the command is set up. Simple create one with `touch ~/.bash_profile` and run the install script again. +Note: On OS X, if you get `nvm: command not found` after running the install script, your system may not have a [.bash_profile file] where the command is set up. Simply create one with `touch ~/.bash_profile` and run the install script again. ### Verify installation -To verify that nvm has been installed, do +To verify that nvm has been installed, do: command -v nvm @@ -147,7 +147,7 @@ If you want to see what versions are available to install: nvm ls-remote -To restore your PATH, you can deactivate it. +To restore your PATH, you can deactivate it: nvm deactivate @@ -235,15 +235,15 @@ Tests are written in [Urchin]. Install Urchin (and other dependencies) like so: There are slow tests and fast tests. The slow tests do things like install node and check that the right versions are used. The fast tests fake this to test things like aliases and uninstalling. From the root of the nvm git repository, -run the fast tests like this. +run the fast tests like this: npm run test/fast -Run the slow tests like this. +Run the slow tests like this: npm run test/slow -Run all of the tests like this +Run all of the tests like this: npm test @@ -259,14 +259,14 @@ Put the above sourcing line just below the sourcing line for NVM in your profile ### Usage -nvm +nvm: $ nvm [tab][tab] alias deactivate install ls run unload clear-cache exec list ls-remote unalias use current help list-remote reinstall-packages uninstall version -nvm alias +nvm alias: $ nvm alias [tab][tab] default @@ -274,12 +274,12 @@ nvm alias $ nvm alias my_alias [tab][tab] v0.6.21 v0.8.26 v0.10.28 -nvm use +nvm use: $ nvm use [tab][tab] my_alias default v0.6.21 v0.8.26 v0.10.28 -nvm uninstall +nvm uninstall: $ nvm uninstall [tab][tab] my_alias default v0.6.21 v0.8.26 v0.10.28 @@ -288,7 +288,7 @@ nvm uninstall `nvm` will encounter some issues if you have some non-default settings set. (see [#606](/../../issues/606)) The following are known to cause issues: -Inside `~/.npmrc` +Inside `~/.npmrc`: ``` prefix='some/path' ``` @@ -312,7 +312,7 @@ Where's my 'sudo node'? Check out this link: https://github.com/creationix/nvm/issues/43 -On Arch Linux and other systems using python3 by default, before running *install* you need to +On Arch Linux and other systems using python3 by default, before running *install* you need to: export PYTHON=python2 From 03cf6950ce3da4fe52f3462c6cf62f74b2a7f0fa Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 6 Jun 2016 17:55:06 -0700 Subject: [PATCH 0718/1426] [shellcheck] remove use of `expr` --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index a572e2a..a667554 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1089,7 +1089,7 @@ nvm_print_implicit_alias() { if [ "_0${NORMALIZED_VERSION#?}" != "_$NORMALIZED_VERSION" ]; then STABLE="$MINOR" else - MOD=$(expr "$NORMALIZED_VERSION" \/ 1000000 \% 2) + MOD="$(awk 'BEGIN { print int(ARGV[1] / 1000000) % 2 ; exit(0) }' "$NORMALIZED_VERSION")" if [ "$MOD" -eq 0 ]; then STABLE="$MINOR" elif [ "$MOD" -eq 1 ]; then From b6481583af96f21d560220e9dc827b400440a33f Mon Sep 17 00:00:00 2001 From: ra100 Date: Fri, 27 May 2016 00:19:48 +0200 Subject: [PATCH 0719/1426] On aarch64 use arm64 packages --- nvm.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/nvm.sh b/nvm.sh index a667554..d322091 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1145,6 +1145,7 @@ nvm_get_arch() { case "$HOST_ARCH" in x86_64 | amd64) NVM_ARCH="x64" ;; i*86) NVM_ARCH="x86" ;; + aarch64) NVM_ARCH="arm64" ;; *) NVM_ARCH="$HOST_ARCH" ;; esac nvm_echo "${NVM_ARCH}" From d50272040d33703a326f570c994b3e1b66f26dfc Mon Sep 17 00:00:00 2001 From: Braj Date: Sat, 11 Jun 2016 17:56:11 +0530 Subject: [PATCH 0720/1426] Slightly elaborated the instruction for manual install --- README.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/README.markdown b/README.markdown index 7dff06e..8c91956 100644 --- a/README.markdown +++ b/README.markdown @@ -70,6 +70,7 @@ To activate nvm, you need to source it from your shell: . ~/.nvm/nvm.sh Add these lines to your `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it automatically sourced upon login: +(you may have to add to more than one of the above files) export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm From 45ae48df2d2db54bea32e430e501df89f80aa761 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 13 Jun 2016 08:41:17 -0700 Subject: [PATCH 0721/1426] =?UTF-8?q?[Fix]=20`nvm=20install=20-s`:=20when?= =?UTF-8?q?=20=E2=80=9Ccore=20id=E2=80=9D=20doesn=E2=80=99t=20appear=20in?= =?UTF-8?q?=20/proc/cpuinfo,=20fall=20back=20to=20counting=20=E2=80=9Cproc?= =?UTF-8?q?essor=E2=80=9D=20lines.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #1115. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index d322091..502f409 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1423,7 +1423,7 @@ nvm_get_make_jobs() { NVM_OS="$(nvm_get_os)" local NVM_CPU_THREADS if [ "_$NVM_OS" = "_linux" ]; then - NVM_CPU_THREADS="$(grep -c 'core id' /proc/cpuinfo)" + NVM_CPU_THREADS="$(command grep -c -E '^processor.+: [0-9]+' /proc/cpuinfo)" elif [ "_$NVM_OS" = "_freebsd" ] || [ "_$NVM_OS" = "_darwin" ]; then NVM_CPU_THREADS="$(sysctl -n hw.ncpu)" elif [ "_$NVM_OS" = "_sunos" ]; then From 36b1ea9236a3e210b1cb905f6fb26b24a0b88aa0 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 14 Jun 2016 09:57:37 -0700 Subject: [PATCH 0722/1426] [Fix] do not print help text on sourcing when an empty .nvmrc file is found. Fixes #1113. --- nvm.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 502f409..affa15b 100644 --- a/nvm.sh +++ b/nvm.sh @@ -166,7 +166,12 @@ nvm_rc_version() { NVMRC_PATH="$(nvm_find_nvmrc)" if [ -e "$NVMRC_PATH" ]; then read -r NVM_RC_VERSION < "$NVMRC_PATH" || printf '' - nvm_echo "Found '$NVMRC_PATH' with version <$NVM_RC_VERSION>" + if [ -n "$NVM_RC_VERSION" ]; then + nvm_echo "Found '$NVMRC_PATH' with version <$NVM_RC_VERSION>" + else + nvm_err "Warning: empty .nvmrc file found at \"$NVMRC_PATH\"" + return 2 + fi else nvm_err "No .nvmrc file found" return 1 From c9b7ccdaea267db81a35b12e68d49ae99f0efab0 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 8 May 2016 22:21:33 -0700 Subject: [PATCH 0723/1426] Run `node` and `io.js` installation test suites separately. --- .travis.yml | 30 ++++++++++++------- package.json | 4 ++- .../install already installed uses it | 2 +- .../install from binary | 2 +- ...nstall two versions and use the latest one | 10 +++---- ...ll version specified in .nvmrc from binary | 4 +-- .../install while reinstalling packages | 10 +++---- .../nvm install v1 works | 6 ++-- .../io.js => installation_iojs}/setup_dir | 0 .../io.js => installation_iojs}/teardown_dir | 2 +- .../install already installed uses it | 6 ++-- .../install from binary | 6 ++-- .../install from source | 6 ++-- .../install from source implicitly | 6 ++-- .../install from source with thread parameter | 10 +++---- ...ll from source without V8 snapshot for ARM | 6 ++-- ...nstall two versions and use the latest one | 10 +++---- ...ll version specified in .nvmrc from binary | 6 ++-- ...ll version specified in .nvmrc from source | 6 ++-- .../install while reinstalling packages | 10 +++---- .../node => installation_node}/setup_dir | 0 .../node => installation_node}/teardown_dir | 2 +- 22 files changed, 78 insertions(+), 66 deletions(-) rename test/{installation/io.js => installation_iojs}/install already installed uses it (98%) rename test/{installation/io.js => installation_iojs}/install from binary (96%) rename test/{installation/io.js => installation_iojs}/install two versions and use the latest one (64%) rename test/{installation/io.js => installation_iojs}/install version specified in .nvmrc from binary (87%) rename test/{installation/io.js => installation_iojs}/install while reinstalling packages (69%) rename test/{installation/io.js => installation_iojs}/nvm install v1 works (79%) rename test/{installation/io.js => installation_iojs}/setup_dir (100%) rename test/{installation/io.js => installation_iojs}/teardown_dir (89%) rename test/{installation/node => installation_node}/install already installed uses it (83%) rename test/{installation/node => installation_node}/install from binary (82%) rename test/{installation/node => installation_node}/install from source (82%) rename test/{installation/node => installation_node}/install from source implicitly (76%) rename test/{installation/node => installation_node}/install from source with thread parameter (76%) rename test/{installation/node => installation_node}/install from source without V8 snapshot for ARM (84%) rename test/{installation/node => installation_node}/install two versions and use the latest one (66%) rename test/{installation/node => installation_node}/install version specified in .nvmrc from binary (68%) rename test/{installation/node => installation_node}/install version specified in .nvmrc from source (68%) rename test/{installation/node => installation_node}/install while reinstalling packages (74%) rename test/{installation/node => installation_node}/setup_dir (100%) rename test/{installation/node => installation_node}/teardown_dir (89%) diff --git a/.travis.yml b/.travis.yml index 510a86e..00f8d4a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,13 +30,23 @@ env: - SHELL=bash TEST_SUITE=sourcing - SHELL=zsh TEST_SUITE=sourcing # - SHELL=ksh TEST_SUITE=sourcing - - SHELL=sh TEST_SUITE=installation -# - SHELL=sh TEST_SUITE=installation WITHOUT_CURL=1 - - SHELL=dash TEST_SUITE=installation -# - SHELL=dash TEST_SUITE=installation WITHOUT_CURL=1 - - SHELL=bash TEST_SUITE=installation -# - SHELL=bash TEST_SUITE=installation WITHOUT_CURL=1 - - SHELL=zsh TEST_SUITE=installation -# - SHELL=zsh TEST_SUITE=installation WITHOUT_CURL=1 -# - SHELL=ksh TEST_SUITE=installation -# - SHELL=ksh TEST_SUITE=installation WITHOUT_CURL=1 + - SHELL=sh TEST_SUITE=installation_node +# - SHELL=sh TEST_SUITE=installation_node WITHOUT_CURL=1 + - SHELL=dash TEST_SUITE=installation_node +# - SHELL=dash TEST_SUITE=installation_node WITHOUT_CURL=1 + - SHELL=bash TEST_SUITE=installation_node +# - SHELL=bash TEST_SUITE=installation_node WITHOUT_CURL=1 + - SHELL=zsh TEST_SUITE=installation_node +# - SHELL=zsh TEST_SUITE=installation_node WITHOUT_CURL=1 +# - SHELL=ksh TEST_SUITE=installation_node +# - SHELL=ksh TEST_SUITE=installation_node WITHOUT_CURL=1 + - SHELL=sh TEST_SUITE=installation_iojs +# - SHELL=sh TEST_SUITE=installation_iojs WITHOUT_CURL=1 + - SHELL=dash TEST_SUITE=installation_iojs +# - SHELL=dash TEST_SUITE=installation_iojs WITHOUT_CURL=1 + - SHELL=bash TEST_SUITE=installation_iojs +# - SHELL=bash TEST_SUITE=installation_iojs WITHOUT_CURL=1 + - SHELL=zsh TEST_SUITE=installation_iojs +# - SHELL=zsh TEST_SUITE=installation_iojs WITHOUT_CURL=1 +# - SHELL=ksh TEST_SUITE=installation_iojs +# - SHELL=ksh TEST_SUITE=installation_iojs WITHOUT_CURL=1 diff --git a/package.json b/package.json index 4a6052b..89995f2 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,9 @@ "test/fast": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=fast test-$shell", "test/slow": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=slow test-$shell", "test/install_script": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=install_script test-$shell", - "test/installation": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=installation test-$shell", + "test/installation": "npm run --silent test/installation/node && npm run --silent test/installation/iojs", + "test/installation/node": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=installation_node test-$shell", + "test/installation/iojs": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=installation_iojs test-$shell", "test/sourcing": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=sourcing test-$shell" }, "repository": { diff --git a/test/installation/io.js/install already installed uses it b/test/installation_iojs/install already installed uses it similarity index 98% rename from test/installation/io.js/install already installed uses it rename to test/installation_iojs/install already installed uses it index 07e5487..7065e78 100755 --- a/test/installation/io.js/install already installed uses it +++ b/test/installation_iojs/install already installed uses it @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +. ../../nvm.sh [ "$(nvm install invalid.invalid 2>&1)" = "Version 'invalid.invalid' not found - try \`nvm ls-remote\` to browse available versions." ] || die "nvm installing an invalid version did not print a nice error message" diff --git a/test/installation/io.js/install from binary b/test/installation_iojs/install from binary similarity index 96% rename from test/installation/io.js/install from binary rename to test/installation_iojs/install from binary index 12cf963..93c65cd 100755 --- a/test/installation/io.js/install from binary +++ b/test/installation_iojs/install from binary @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +. ../../nvm.sh NVM_TEST_VERSION="v1.0.0" NVM_PREFIXED_TEST_VERSION="iojs-$NVM_TEST_VERSION" diff --git a/test/installation/io.js/install two versions and use the latest one b/test/installation_iojs/install two versions and use the latest one similarity index 64% rename from test/installation/io.js/install two versions and use the latest one rename to test/installation_iojs/install two versions and use the latest one index 7b60d74..69c5869 100755 --- a/test/installation/io.js/install two versions and use the latest one +++ b/test/installation_iojs/install two versions and use the latest one @@ -2,19 +2,19 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +. ../../nvm.sh # Remove the stuff we're clobbering. -[ -e ../../../versions/io.js/v1.0.0 ] && rm -R ../../../versions/io.js/v1.0.0 -[ -e ../../../versions/io.js/v1.0.1 ] && rm -R ../../../versions/io.js/v1.0.1 +[ -e ../../versions/io.js/v1.0.0 ] && rm -R ../../versions/io.js/v1.0.0 +[ -e ../../versions/io.js/v1.0.1 ] && rm -R ../../versions/io.js/v1.0.1 # Install from binary nvm install iojs-v1.0.0 || die "'nvm install iojs-v1.0.0' failed" nvm i iojs-v1.0.1 || die "'nvm i iojs-v1.0.1' failed" # Check -[ -d ../../../versions/io.js/v1.0.0 ] || die "iojs v1.0.0 didn't exist" -[ -d ../../../versions/io.js/v1.0.1 ] || die "iojs v1.0.1 didn't exist" +[ -d ../../versions/io.js/v1.0.0 ] || die "iojs v1.0.0 didn't exist" +[ -d ../../versions/io.js/v1.0.1 ] || die "iojs v1.0.1 didn't exist" # Use the first one nvm use iojs-1.0.0 || die "'nvm use iojs-1.0.0' failed" diff --git a/test/installation/io.js/install version specified in .nvmrc from binary b/test/installation_iojs/install version specified in .nvmrc from binary similarity index 87% rename from test/installation/io.js/install version specified in .nvmrc from binary rename to test/installation_iojs/install version specified in .nvmrc from binary index dfab909..82dc5f6 100755 --- a/test/installation/io.js/install version specified in .nvmrc from binary +++ b/test/installation_iojs/install version specified in .nvmrc from binary @@ -2,11 +2,11 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +. ../../nvm.sh NVM_TEST_VERSION=v1.0.0 NVM_PREFIXED_TEST_VERSION="iojs-$NVM_TEST_VERSION" -VERSION_PATH="../../../versions/io.js/$NVM_TEST_VERSION" +VERSION_PATH="../../versions/io.js/$NVM_TEST_VERSION" # Remove the stuff we're clobbering. [ -e $VERSION_PATH ] && rm -R $VERSION_PATH diff --git a/test/installation/io.js/install while reinstalling packages b/test/installation_iojs/install while reinstalling packages similarity index 69% rename from test/installation/io.js/install while reinstalling packages rename to test/installation_iojs/install while reinstalling packages index ebbb64a..6b17997 100755 --- a/test/installation/io.js/install while reinstalling packages +++ b/test/installation_iojs/install while reinstalling packages @@ -2,17 +2,17 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +. ../../nvm.sh # Remove the stuff we're clobbering. -[ -e ../../../versions/io.js/v1.0.0 ] && rm -R ../../../versions/io.js/v1.0.0 -[ -e ../../../versions/io.js/v1.0.1 ] && rm -R ../../../versions/io.js/v1.0.1 +[ -e ../../versions/io.js/v1.0.0 ] && rm -R ../../versions/io.js/v1.0.0 +[ -e ../../versions/io.js/v1.0.1 ] && rm -R ../../versions/io.js/v1.0.1 # Install from binary nvm install iojs-v1.0.0 # Check -[ -d ../../../versions/io.js/v1.0.0 ] || die "nvm install iojs-v1.0.0 didn't install" +[ -d ../../versions/io.js/v1.0.0 ] || die "nvm install iojs-v1.0.0 didn't install" node --version | grep v1.0.0 > /dev/null || die "nvm install didn't use iojs-v1.0.0" @@ -23,7 +23,7 @@ nvm ls iojs-1 | grep iojs-v1.0.0 > /dev/null || die "nvm ls iojs-1 didn't show i nvm install iojs-v1.0.1 --reinstall-packages-from=iojs-1.0.0 || die "nvm install iojs-v1.0.1 --reinstall-packages-from=iojs-1.0.0 failed" -[ -d ../../../versions/io.js/v1.0.1 ] || die "nvm install iojs-v1.0.1 didn't install" +[ -d ../../versions/io.js/v1.0.1 ] || die "nvm install iojs-v1.0.1 didn't install" nvm use iojs-1 node --version | grep v1.0.1 > /dev/null || die "nvm use iojs-1 didn't use v1.0.1" diff --git a/test/installation/io.js/nvm install v1 works b/test/installation_iojs/nvm install v1 works similarity index 79% rename from test/installation/io.js/nvm install v1 works rename to test/installation_iojs/nvm install v1 works index b54d1f0..2bc83f0 100755 --- a/test/installation/io.js/nvm install v1 works +++ b/test/installation_iojs/nvm install v1 works @@ -2,19 +2,19 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +. ../../nvm.sh NVM_VERSION="v1" NVM_PREFIXED_TEST_VERSION="$(nvm ls-remote "$NVM_VERSION" | tail -n1 | sed 's/^[ ]*//;s/[ ]*$//')" NVM_TEST_VERSION="$(nvm_strip_iojs_prefix "$NVM_PREFIXED_TEST_VERSION")" # Remove the stuff we're clobbering. -[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION +[ -e ../../$NVM_TEST_VERSION ] && rm -R ../../$NVM_TEST_VERSION # Install from binary nvm install "$NVM_VERSION" || die "nvm install $NVM_VERSION failed" # Check -[ -d ../../../versions/io.js/$NVM_TEST_VERSION ] +[ -d ../../versions/io.js/$NVM_TEST_VERSION ] nvm run $NVM_PREFIXED_TEST_VERSION --version | grep $NVM_TEST_VERSION || die "'nvm run $NVM_PREFIXED_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" diff --git a/test/installation/io.js/setup_dir b/test/installation_iojs/setup_dir similarity index 100% rename from test/installation/io.js/setup_dir rename to test/installation_iojs/setup_dir diff --git a/test/installation/io.js/teardown_dir b/test/installation_iojs/teardown_dir similarity index 89% rename from test/installation/io.js/teardown_dir rename to test/installation_iojs/teardown_dir index a7e6f3e..9f6d025 100755 --- a/test/installation/io.js/teardown_dir +++ b/test/installation_iojs/teardown_dir @@ -1,6 +1,6 @@ #!/bin/sh -. ../../../nvm.sh +. ../../nvm.sh nvm deactivate nvm uninstall iojs-v1.0.0 diff --git a/test/installation/node/install already installed uses it b/test/installation_node/install already installed uses it similarity index 83% rename from test/installation/node/install already installed uses it rename to test/installation_node/install already installed uses it index ffcbb02..8a7dd9a 100755 --- a/test/installation/node/install already installed uses it +++ b/test/installation_node/install already installed uses it @@ -2,13 +2,13 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +. ../../nvm.sh [ "$(nvm install invalid.invalid 2>&1)" = "Version 'invalid.invalid' not found - try \`nvm ls-remote\` to browse available versions." ] || die "nvm installing an invalid version did not print a nice error message" # Remove the stuff we're clobbering. -[ -e ../../../v0.9.7 ] && rm -R ../../../v0.9.7 -[ -e ../../../v0.9.12 ] && rm -R ../../../v0.9.12 +[ -e ../../v0.9.7 ] && rm -R ../../v0.9.7 +[ -e ../../v0.9.12 ] && rm -R ../../v0.9.12 # Install from binary nvm install 0.9.7 diff --git a/test/installation/node/install from binary b/test/installation_node/install from binary similarity index 82% rename from test/installation/node/install from binary rename to test/installation_node/install from binary index 8b9ac48..114205d 100755 --- a/test/installation/node/install from binary +++ b/test/installation_node/install from binary @@ -2,20 +2,20 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +. ../../nvm.sh nvm unalias default || die 'unable to unalias default' NVM_TEST_VERSION=v0.10.7 # Remove the stuff we're clobbering. -[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION +[ -e ../../$NVM_TEST_VERSION ] && rm -R ../../$NVM_TEST_VERSION # Install from binary nvm install $NVM_TEST_VERSION || die "install $NVM_TEST_VERSION failed" # Check -[ -d ../../../$NVM_TEST_VERSION ] +[ -d ../../$NVM_TEST_VERSION ] nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION || die "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" # ensure default is set diff --git a/test/installation/node/install from source b/test/installation_node/install from source similarity index 82% rename from test/installation/node/install from source rename to test/installation_node/install from source index 150aa87..eccdbba 100755 --- a/test/installation/node/install from source +++ b/test/installation_node/install from source @@ -2,20 +2,20 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +. ../../nvm.sh nvm unalias default || die 'unable to unalias default' NVM_TEST_VERSION=v0.10.7 # Remove the stuff we're clobbering. -[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION +[ -e ../../$NVM_TEST_VERSION ] && rm -R ../../$NVM_TEST_VERSION # Install from source nvm install -s $NVM_TEST_VERSION || die "'nvm install -s $NVM_TEST_VERSION' failed" # Check -[ -d ../../../$NVM_TEST_VERSION ] +[ -d ../../$NVM_TEST_VERSION ] nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION || "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" # ensure default is set diff --git a/test/installation/node/install from source implicitly b/test/installation_node/install from source implicitly similarity index 76% rename from test/installation/node/install from source implicitly rename to test/installation_node/install from source implicitly index 924c1f8..f5763f4 100755 --- a/test/installation/node/install from source implicitly +++ b/test/installation_node/install from source implicitly @@ -2,17 +2,17 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +. ../../nvm.sh NVM_TEST_VERSION=v0.8.5 # Remove the stuff we're clobbering. -[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION +[ -e ../../$NVM_TEST_VERSION ] && rm -R ../../$NVM_TEST_VERSION # Install from source implicitly (v0.8.6 is when binaries started) nvm install $NVM_TEST_VERSION || die "'nvm install -s $NVM_TEST_VERSION' failed" # Check -[ -d ../../../$NVM_TEST_VERSION ] +[ -d ../../$NVM_TEST_VERSION ] nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION || "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" diff --git a/test/installation/node/install from source with thread parameter b/test/installation_node/install from source with thread parameter similarity index 76% rename from test/installation/node/install from source with thread parameter rename to test/installation_node/install from source with thread parameter index 84af8ad..4de8942 100755 --- a/test/installation/node/install from source with thread parameter +++ b/test/installation_node/install from source with thread parameter @@ -2,20 +2,20 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +. ../../nvm.sh NVM_TEST_VERSION=v0.10.41 # STAGE 1 # # Remove the stuff we're clobbering. -[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION +[ -e ../../$NVM_TEST_VERSION ] && rm -R ../../$NVM_TEST_VERSION # Install from source with 1 make job nvm install -s -j 1 $NVM_TEST_VERSION || die "'nvm install -s $NVM_TEST_VERSION' failed" # Check -[ -d ../../../$NVM_TEST_VERSION ] +[ -d ../../$NVM_TEST_VERSION ] nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION || "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" @@ -23,11 +23,11 @@ nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION || "'nvm run $NVM_T # STAGE 2 # # Remove the stuff we're clobbering. -[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION +[ -e ../../$NVM_TEST_VERSION ] && rm -R ../../$NVM_TEST_VERSION # Install from source with 2 make jobs (and swapped arg order) nvm install -j 2 -s $NVM_TEST_VERSION || die "'nvm install -s $NVM_TEST_VERSION' failed" # Check -[ -d ../../../$NVM_TEST_VERSION ] +[ -d ../../$NVM_TEST_VERSION ] nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION || "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" diff --git a/test/installation/node/install from source without V8 snapshot for ARM b/test/installation_node/install from source without V8 snapshot for ARM similarity index 84% rename from test/installation/node/install from source without V8 snapshot for ARM rename to test/installation_node/install from source without V8 snapshot for ARM index 3755d71..3c2eeaf 100755 --- a/test/installation/node/install from source without V8 snapshot for ARM +++ b/test/installation_node/install from source without V8 snapshot for ARM @@ -2,12 +2,12 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +. ../../nvm.sh NVM_TEST_VERSION=v0.10.7 # Remove the stuff we're clobbering. -[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION +[ -e ../../$NVM_TEST_VERSION ] && rm -R ../../$NVM_TEST_VERSION # Fake ARM arch nvm_get_arch() { @@ -18,7 +18,7 @@ nvm_get_arch() { nvm install -s $NVM_TEST_VERSION || die "'nvm install -s $NVM_TEST_VERSION' failed" # Check Install -[ -d ../../../$NVM_TEST_VERSION ] +[ -d ../../$NVM_TEST_VERSION ] node --version | grep $NVM_TEST_VERSION || "'node --version | grep $NVM_TEST_VERSION' failed" # Check V8 snapshot isn't compiled diff --git a/test/installation/node/install two versions and use the latest one b/test/installation_node/install two versions and use the latest one similarity index 66% rename from test/installation/node/install two versions and use the latest one rename to test/installation_node/install two versions and use the latest one index 1fedace..77dc9e4 100755 --- a/test/installation/node/install two versions and use the latest one +++ b/test/installation_node/install two versions and use the latest one @@ -2,19 +2,19 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +. ../../nvm.sh # Remove the stuff we're clobbering. -[ -e ../../../v0.9.7 ] && rm -R ../../../v0.9.7 -[ -e ../../../v0.9.12 ] && rm -R ../../../v0.9.12 +[ -e ../../v0.9.7 ] && rm -R ../../v0.9.7 +[ -e ../../v0.9.12 ] && rm -R ../../v0.9.12 # Install from binary nvm install 0.9.7 || die "'nvm install 0.9.7' failed" nvm i 0.9.12 || die "'nvm i 0.9.12' failed" # Check -[ -d ../../../v0.9.7 ] || die "v0.9.7 didn't exist" -[ -d ../../../v0.9.12 ] || die "v0.9.12 didn't exist" +[ -d ../../v0.9.7 ] || die "v0.9.7 didn't exist" +[ -d ../../v0.9.12 ] || die "v0.9.12 didn't exist" # Use the first one nvm use 0.9.7 || die "'nvm use 0.9.7' failed" diff --git a/test/installation/node/install version specified in .nvmrc from binary b/test/installation_node/install version specified in .nvmrc from binary similarity index 68% rename from test/installation/node/install version specified in .nvmrc from binary rename to test/installation_node/install version specified in .nvmrc from binary index 859a199..ad5f296 100755 --- a/test/installation/node/install version specified in .nvmrc from binary +++ b/test/installation_node/install version specified in .nvmrc from binary @@ -2,12 +2,12 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +. ../../nvm.sh NVM_TEST_VERSION=v0.10.7 # Remove the stuff we're clobbering. -[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION +[ -e ../../$NVM_TEST_VERSION ] && rm -R ../../$NVM_TEST_VERSION # Install from binary echo "$NVM_TEST_VERSION" > .nvmrc @@ -15,7 +15,7 @@ echo "$NVM_TEST_VERSION" > .nvmrc nvm install || die "'nvm install' failed" # Check -[ -d ../../../$NVM_TEST_VERSION ] || die "./$NVM_TEST_VERSION did not exist" +[ -d ../../$NVM_TEST_VERSION ] || die "./$NVM_TEST_VERSION did not exist" nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION \ || "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" diff --git a/test/installation/node/install version specified in .nvmrc from source b/test/installation_node/install version specified in .nvmrc from source similarity index 68% rename from test/installation/node/install version specified in .nvmrc from source rename to test/installation_node/install version specified in .nvmrc from source index 6952645..63ea0ea 100755 --- a/test/installation/node/install version specified in .nvmrc from source +++ b/test/installation_node/install version specified in .nvmrc from source @@ -2,12 +2,12 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +. ../../nvm.sh NVM_TEST_VERSION=v0.10.7 # Remove the stuff we're clobbering. -[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION +[ -e ../../$NVM_TEST_VERSION ] && rm -R ../../$NVM_TEST_VERSION # Install from binary echo "$NVM_TEST_VERSION" > .nvmrc @@ -15,7 +15,7 @@ echo "$NVM_TEST_VERSION" > .nvmrc nvm install -s || "'nvm install -s' failed" # Check -[ -d ../../../$NVM_TEST_VERSION ] || die "$NVM_TEST_VERSION did not exist" +[ -d ../../$NVM_TEST_VERSION ] || die "$NVM_TEST_VERSION did not exist" nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION \ || die "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" diff --git a/test/installation/node/install while reinstalling packages b/test/installation_node/install while reinstalling packages similarity index 74% rename from test/installation/node/install while reinstalling packages rename to test/installation_node/install while reinstalling packages index c170a10..3eb0a2c 100755 --- a/test/installation/node/install while reinstalling packages +++ b/test/installation_node/install while reinstalling packages @@ -2,17 +2,17 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +. ../../nvm.sh # Remove the stuff we're clobbering. -[ -e ../../../v0.9.7 ] && rm -R ../../../v0.9.7 -[ -e ../../../v0.9.12 ] && rm -R ../../../v0.9.12 +[ -e ../../v0.9.7 ] && rm -R ../../v0.9.7 +[ -e ../../v0.9.12 ] && rm -R ../../v0.9.12 # Install from binary nvm install 0.9.7 # Check -[ -d ../../../v0.9.7 ] || die "nvm install 0.9.7 didn't install" +[ -d ../../v0.9.7 ] || die "nvm install 0.9.7 didn't install" nvm use 0.9.7 @@ -25,7 +25,7 @@ nvm ls 0.9 | grep v0.9.7 > /dev/null || die "nvm ls 0.9 didn't show v0.9.7" nvm install 0.9.12 --reinstall-packages-from=0.9 || die "nvm install 0.9.12 --reinstall-packages-from=0.9 failed" -[ -d ../../../v0.9.12 ] || die "nvm install 0.9.12 didn't install" +[ -d ../../v0.9.12 ] || die "nvm install 0.9.12 didn't install" nvm use 0.9 node --version | grep v0.9.12 > /dev/null || die "nvm ls 0.9 didn't use v0.9.12" diff --git a/test/installation/node/setup_dir b/test/installation_node/setup_dir similarity index 100% rename from test/installation/node/setup_dir rename to test/installation_node/setup_dir diff --git a/test/installation/node/teardown_dir b/test/installation_node/teardown_dir similarity index 89% rename from test/installation/node/teardown_dir rename to test/installation_node/teardown_dir index 8285de3..941ca99 100755 --- a/test/installation/node/teardown_dir +++ b/test/installation_node/teardown_dir @@ -1,6 +1,6 @@ #!/bin/sh -. ../../../nvm.sh +. ../../nvm.sh nvm deactivate nvm uninstall v0.10.7 From eba50de75eb99e94bd1b50f4d2c4f39eca93519d Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 10 Aug 2016 23:10:41 -0700 Subject: [PATCH 0724/1426] Add `nvm_compare_checksum`, `nvm_compute_checksum`, and `nvm_get_checksum` --- nvm.sh | 95 ++++++++++++++++++++++- test/fast/Unit tests/nvm_compare_checksum | 72 +++++++++++++++++ test/fast/Unit tests/nvm_compute_checksum | 23 ++++++ test/fast/Unit tests/nvm_get_checksum | 31 ++++++++ 4 files changed, 218 insertions(+), 3 deletions(-) create mode 100755 test/fast/Unit tests/nvm_compare_checksum create mode 100755 test/fast/Unit tests/nvm_compute_checksum create mode 100755 test/fast/Unit tests/nvm_get_checksum diff --git a/nvm.sh b/nvm.sh index dfc75b9..42fb74a 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1036,6 +1036,94 @@ nvm_get_checksum_alg() { fi } +nvm_compute_checksum() { + local FILE + FILE="${1-}" + if [ -z "${FILE}" ]; then + nvm_err 'Provided file to checksum is empty.' + return 2 + elif ! [ -f "${FILE}" ]; then + nvm_err 'Provided file to checksum does not exist.' + return 1 + fi + + if nvm_has "sha256sum" && ! nvm_is_alias "sha256sum"; then + nvm_err 'Computing checksum with sha256sum' + command sha256sum "${FILE}" | command awk '{print $1}' + elif nvm_has "shasum" && ! nvm_is_alias "shasum"; then + nvm_err 'Computing checksum with shasum -a 256' + command shasum -a 256 "${FILE}" | command awk '{print $1}' + elif nvm_has "sha256" && ! nvm_is_alias "sha256"; then + nvm_err 'Computing checksum with sha256 -q' + command sha256 -q "${FILE}" | command awk '{print $1}' + elif nvm_has "gsha256sum" && ! nvm_is_alias "gsha256sum"; then + nvm_err 'Computing checksum with gsha256sum' + command gsha256sum "${FILE}" | command awk '{print $1}' + elif nvm_has "openssl" && ! nvm_is_alias "openssl"; then + nvm_err 'Computing checksum with openssl dgst -sha256' + command openssl dgst -sha256 "${FILE}" | rev | command awk '{print $1}' | rev + elif nvm_has "libressl" && ! nvm_is_alias "libressl"; then + nvm_err 'Computing checksum with libressl dgst -sha256' + command libressl dgst -sha256 "${FILE}" | rev | command awk '{print $1}' | rev + elif nvm_has "bssl" && ! nvm_is_alias "bssl"; then + nvm_err 'Computing checksum with bssl sha256sum' + command bssl sha256sum "${FILE}" | command awk '{print $1}' + elif nvm_has "sha1sum" && ! nvm_is_alias "sha1sum"; then + nvm_err 'Computing checksum with sha1sum' + command sha1sum "${FILE}" | command awk '{print $1}' + elif nvm_has "sha1" && ! nvm_is_alias "sha1"; then + nvm_err 'Computing checksum with sha1 -q' + command sha1 -q "${FILE}" + elif nvm_has "shasum" && ! nvm_is_alias "shasum"; then + nvm_err 'Computing checksum with shasum' + command shasum "${FILE}" | command awk '{print $1}' + fi +} + +nvm_compare_checksum() { + local FILE + FILE="${1-}" + if [ -z "${FILE}" ]; then + nvm_err 'Provided file to checksum is empty.' + return 4 + elif ! [ -f "${FILE}" ]; then + nvm_err 'Provided file to checksum does not exist.' + return 3 + fi + + local COMPUTED_SUM + COMPUTED_SUM="$(nvm_compute_checksum "${FILE}")" + + local CHECKSUM + CHECKSUM="${2-}" + if [ -z "${CHECKSUM}" ]; then + nvm_err 'Provided checksum to compare to is empty.' + return 2 + fi + + if [ -z "${COMPUTED_SUM}" ]; then + nvm_err "Computed checksum of '${FILE}' is empty." # missing in raspberry pi binary + nvm_err 'WARNING: Continuing *without checksum verification*' + return + elif [ "${COMPUTED_SUM}" != "${CHECKSUM}" ]; then + nvm_err "Checksums do not match: '${COMPUTED_SUM}' found, '${CHECKSUM}' expected." + return 1 + fi + nvm_err 'Checksums matched!' +} + +nvm_get_checksum() { + local SHASUMS_URL + if [ "$(nvm_get_checksum_alg)" = 'sha-256' ]; then + SHASUMS_URL="${NVM_NODEJS_ORG_MIRROR}/${1}/SHASUMS256.txt" + else + SHASUMS_URL="${NVM_NODEJS_ORG_MIRROR}/${1}/SHASUMS.txt" + fi + nvm_download -L -s "${SHASUMS_URL}" -o - | \ + nvm_grep "${2}.tar.${3}" | \ + command awk '{print $1}' +} + nvm_checksum() { local NVM_CHECKSUM if [ -z "${3-}" ] || [ "${3-}" = 'sha1' ]; then @@ -2923,7 +3011,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" nvm_echo '0.31.7' ;; "unload" ) - unset -f nvm nvm_print_versions nvm_checksum \ + unset -f nvm \ nvm_iojs_prefix nvm_node_prefix \ nvm_add_iojs_prefix nvm_strip_iojs_prefix \ nvm_is_iojs_version nvm_is_alias \ @@ -2932,7 +3020,8 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" nvm_install_iojs_binary nvm_install_node_binary \ nvm_install_merged_node_binary nvm_get_mirror \ nvm_install_node_source nvm_check_file_permissions \ - nvm_get_checksum_alg \ + nvm_print_versions nvm_compute_checksum nvm_checksum \ + nvm_get_checksum_alg nvm_get_checksum nvm_compare_checksum \ nvm_version nvm_rc_version nvm_match_version \ nvm_ensure_default_set nvm_get_arch nvm_get_os \ nvm_print_implicit_alias nvm_validate_implicit_alias \ @@ -2956,7 +3045,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" nvm_print_default_alias nvm_print_formatted_alias nvm_resolve_local_alias \ nvm_sanitize_path nvm_has_colors nvm_process_parameters \ > /dev/null 2>&1 - unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_DIR NVM_CD_FLAGS > /dev/null 2>&1 + unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_IOJS_ORG_MIRROR NVM_DIR NVM_CD_FLAGS > /dev/null 2>&1 ;; * ) >&2 nvm --help diff --git a/test/fast/Unit tests/nvm_compare_checksum b/test/fast/Unit tests/nvm_compare_checksum new file mode 100755 index 0000000..e74adb1 --- /dev/null +++ b/test/fast/Unit tests/nvm_compare_checksum @@ -0,0 +1,72 @@ +#!/bin/sh + +cleanup () { + unset -f nvm_compute_checksum +} +die () { echo $@ ; cleanup ; exit 1; } + +. ../../../nvm.sh + +set -ex + +nvm_compute_checksum() { + echo +} + +set +x +OUTPUT="$(nvm_compare_checksum 2>&1 >/dev/null || echo)" +EXIT_CODE="$(nvm_compare_checksum >/dev/null 2>&1 || echo $?)" +set -x +EXPECTED_OUTPUT='Provided file to checksum is empty.' +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" +[ "${EXIT_CODE}" = 4 ] || die "expected to exit with code 4, got ${EXIT_CODE}" + +set +x +OUTPUT="$(nvm_compare_checksum foo 2>&1 >/dev/null || echo)" +EXIT_CODE="$(nvm_compare_checksum foo >/dev/null 2>&1 || echo $?)" +set -x +EXPECTED_OUTPUT='Provided file to checksum does not exist.' +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" +[ "${EXIT_CODE}" = 3 ] || die "expected to exit with code 3, got ${EXIT_CODE}" + +set +x +OUTPUT="$(nvm_compare_checksum ../../../nvm.sh 2>&1 >/dev/null || echo)" +EXIT_CODE="$(nvm_compare_checksum ../../../nvm.sh >/dev/null 2>&1 || echo $?)" +set -x +EXPECTED_OUTPUT='Provided checksum to compare to is empty.' +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" +[ "${EXIT_CODE}" = 2 ] || die "expected to exit with code 2, got ${EXIT_CODE}" + +set +x +OUTPUT="$(nvm_compare_checksum ../../../nvm.sh checksum 2>&1 >/dev/null)" +EXIT_CODE="$(nvm_compare_checksum ../../../nvm.sh checksum >/dev/null 2>&1 ; echo $?)" +set -x +EXPECTED_OUTPUT="Computed checksum of '../../../nvm.sh' is empty. +WARNING: Continuing *without checksum verification*" +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" +[ "${EXIT_CODE}" = 0 ] || die "expected to exit with code 0, got ${EXIT_CODE}" + +nvm_compute_checksum() { + echo "not checksum: ${1}" +} + +set +x +OUTPUT="$(nvm_compare_checksum ../../../nvm.sh checksum 2>&1 >/dev/null || echo)" +EXIT_CODE="$(nvm_compare_checksum ../../../nvm.sh checksum >/dev/null 2>&1 || echo $?)" +set -x +EXPECTED_OUTPUT="Checksums do not match: 'not checksum: ../../../nvm.sh' found, 'checksum' expected." +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" +[ "${EXIT_CODE}" = 1 ] || die "expected to exit with code 1, got ${EXIT_CODE}" + +nvm_compute_checksum() { + echo checksum +} +set +x +OUTPUT="$(nvm_compare_checksum ../../../nvm.sh checksum 2>&1 >/dev/null)" +EXIT_CODE="$(nvm_compare_checksum ../../../nvm.sh checksum >/dev/null 2>&1; echo $?)" +set -x +EXPECTED_OUTPUT='Checksums matched!' +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" +[ "${EXIT_CODE}" = 0 ] || die "expected to exit with code 0, got ${EXIT_CODE}" + +cleanup diff --git a/test/fast/Unit tests/nvm_compute_checksum b/test/fast/Unit tests/nvm_compute_checksum new file mode 100755 index 0000000..2684c4c --- /dev/null +++ b/test/fast/Unit tests/nvm_compute_checksum @@ -0,0 +1,23 @@ +#!/bin/sh + +set -ex + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +set +x +OUTPUT="$(nvm_compute_checksum 2>&1 >/dev/null || echo)" +EXIT_CODE="$(nvm_compute_checksum >/dev/null 2>&1 || echo $?)" +set -x +EXPECTED_OUTPUT='Provided file to checksum is empty.' +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" +[ "${EXIT_CODE}" = 2 ] || die "expected to exit with code 2, got ${EXIT_CODE}" + +set +x +OUTPUT="$(nvm_compute_checksum foo 2>&1 >/dev/null || echo)" +EXIT_CODE="$(nvm_compute_checksum foo >/dev/null 2>&1 || echo $?)" +set -x +EXPECTED_OUTPUT='Provided file to checksum does not exist.' +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" +[ "${EXIT_CODE}" = 1 ] || die "expected to exit with code 1, got ${EXIT_CODE}" diff --git a/test/fast/Unit tests/nvm_get_checksum b/test/fast/Unit tests/nvm_get_checksum new file mode 100755 index 0000000..9e3816a --- /dev/null +++ b/test/fast/Unit tests/nvm_get_checksum @@ -0,0 +1,31 @@ +#!/bin/sh + +set -ex + +cleanup () { + unset -f nvm_download nvm_get_checksum_alg +} +die () { echo $@ ; cleanup ; exit 1; } + +. ../../../nvm.sh + +nvm_download() { + echo "ERROR_FAILED_MATCH no_match more fields" + echo "${3} bar.tar.baz more fields" +} + +nvm_get_checksum_alg() { + echo 'sha-256' +} +OUTPUT="$(nvm_get_checksum foo bar baz)" +EXPECTED_OUTPUT="${NVM_NODEJS_ORG_MIRROR}/foo/SHASUMS256.txt" +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" + +nvm_get_checksum_alg() { + echo 'sha-1' +} +OUTPUT="$(nvm_get_checksum foo bar baz)" +EXPECTED_OUTPUT="${NVM_NODEJS_ORG_MIRROR}/foo/SHASUMS.txt" +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" + +cleanup From ba3ad8e460b88aab281d203276b354ce3c9df52f Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 10 Aug 2016 23:21:56 -0700 Subject: [PATCH 0725/1426] [Breaking] cache previously downloaded artifacts for binaries - consolidate `nvm_install_merged_node_binary` with `nvm_install_node_binary` - add `nvm_get_download_slug`, `nvm_download_artifact` - `nvm uninstall` no longer removes artifacts --- .gitignore | 1 + nvm.sh | 247 ++++++++++++++++++++++++++++++----------------------- 2 files changed, 143 insertions(+), 105 deletions(-) diff --git a/.gitignore b/.gitignore index b44ec8f..57f44a7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ HEAD +bin src v* alias diff --git a/nvm.sh b/nvm.sh index 42fb74a..ddcc7b3 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1470,79 +1470,54 @@ nvm_get_mirror() { esac } -nvm_install_merged_node_binary() { - local NVM_NODE_TYPE - NVM_NODE_TYPE="${1}" +nvm_install_node_binary() { local MIRROR - if [ "${NVM_NODE_TYPE}" = 'std' ]; then - MIRROR="${NVM_NODEJS_ORG_MIRROR}" - else - nvm_err 'unknown type of node.js release' + MIRROR="$(nvm_get_mirror node "${1}")" + if [ -z "${MIRROR}" ]; then return 4 fi + local VERSION VERSION="${2}" - if ! nvm_is_merged_node_version "${VERSION}" || nvm_is_iojs_version "${VERSION}"; then - nvm_err 'nvm_install_merged_node_binary requires a node version v4.0 or greater.' + if nvm_is_iojs_version "${VERSION}"; then + nvm_err 'nvm_install_node_binary does not allow an iojs-prefixed version.' return 10 fi local VERSION_PATH VERSION_PATH="$(nvm_version_path "${VERSION}")" - local NVM_OS - NVM_OS="$(nvm_get_os)" - local t - local url - local sum - local NODE_PREFIX - local compression - compression='gz' - local tar_compression_flag - tar_compression_flag='z' - if nvm_supports_xz "${VERSION}"; then - compression='xz' - tar_compression_flag='J' - fi - NODE_PREFIX="$(nvm_node_prefix)" - if [ -z "${NVM_OS}" ]; then + if [ -z "$(nvm_get_os)" ]; then return 2 fi - t="${VERSION}-${NVM_OS}-$(nvm_get_arch)" - url="${MIRROR}/$VERSION/$NODE_PREFIX-${t}.tar.${compression}" - sum="$( - nvm_download -L -s "${MIRROR}/${VERSION}/SHASUMS256.txt" -o - \ - | nvm_grep "${NODE_PREFIX}-${t}.tar.${compression}" \ - | command awk '{print $1}' - )" - local tmpdir - tmpdir="${NVM_DIR}/bin/node-${t}" - local tmptarball - tmptarball="${tmpdir}/node-${t}.tar.${compression}" - local NVM_INSTALL_ERRORED - command mkdir -p "${tmpdir}" && \ - nvm_echo "Downloading ${url}..." && \ - nvm_download -L -C - --progress-bar "${url}" -o "${tmptarball}" || \ - NVM_INSTALL_ERRORED=true - if nvm_grep '404 Not Found' "${tmptarball}" >/dev/null; then - NVM_INSTALL_ERRORED=true - nvm_err "HTTP 404 at URL $url"; + local tar_compression_flag + tar_compression_flag='z' + if nvm_supports_xz "${VERSION}"; then + tar_compression_flag='J' fi + + local TARBALL + local TMPDIR + local VERSION_PATH + if ( - [ "$NVM_INSTALL_ERRORED" != true ] && \ - nvm_checksum "${tmptarball}" "${sum}" "{sha256}" && \ - command tar -x${tar_compression_flag}f "${tmptarball}" -C "${tmpdir}" --strip-components 1 && \ - command rm -f "${tmptarball}" && \ + TARBALL="$(nvm_download_artifact node binary std "${VERSION}" | command tail -1)" && \ + [ -f "${TARBALL}" ] && \ + TMPDIR="$(dirname "${TARBALL}")/files" && \ + command mkdir -p "${TMPDIR}" && \ + command tar -x${tar_compression_flag}f "${TARBALL}" -C "${TMPDIR}" --strip-components 1 && \ + VERSION_PATH="$(nvm_version_path "${VERSION}")" && \ command mkdir -p "${VERSION_PATH}" && \ - command mv "${tmpdir}"/* "${VERSION_PATH}" + command mv "${TMPDIR}/"* "${VERSION_PATH}" && \ + command rm -rf "${TMPDIR}" ); then return 0 fi nvm_err 'Binary download failed, trying source.' - command rm -rf "${tmptarball}" "${tmpdir}" + command rm -rf "${TMPDIR}" return 1 } @@ -1619,62 +1594,127 @@ nvm_install_iojs_binary() { return 2 } -nvm_install_node_binary() { +# args: flavor, kind, version +nvm_get_download_slug() { + local FLAVOR + case "${1-}" in + node | iojs) FLAVOR="${1}" ;; + *) + nvm_err 'supported flavors: node, iojs' + return 1 + ;; + esac + + local KIND + case "${2-}" in + binary | source) KIND="${2}" ;; + *) + nvm_err 'supported kinds: binary, source' + return 2 + ;; + esac + local VERSION - VERSION="$1" + VERSION="${3}" - if nvm_is_iojs_version "$VERSION"; then - nvm_err 'nvm_install_node_binary does not allow an iojs-prefixed version.' - return 10 - fi - - local VERSION_PATH - VERSION_PATH="$(nvm_version_path "$VERSION")" local NVM_OS NVM_OS="$(nvm_get_os)" - local t - local url - local sum - if [ -n "$NVM_OS" ]; then - if nvm_binary_available "$VERSION"; then - local NVM_ARCH - NVM_ARCH="$(nvm_get_arch)" - if [ "_$NVM_ARCH" = '_armv6l' ] || [ "_$NVM_ARCH" = 'armv7l' ]; then - NVM_ARCH="arm-pi" - fi - t="$VERSION-$NVM_OS-$NVM_ARCH" - url="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-${t}.tar.gz" - sum=$(nvm_download -L -s "$NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt" -o - | nvm_grep "node-${t}.tar.gz" | command awk '{print $1}') - local tmpdir - tmpdir="$NVM_DIR/bin/node-${t}" - local tmptarball - tmptarball="$tmpdir/node-${t}.tar.gz" - local NVM_INSTALL_ERRORED - command mkdir -p "$tmpdir" && \ - nvm_download -L -C - --progress-bar "$url" -o "$tmptarball" || \ - NVM_INSTALL_ERRORED=true - if nvm_grep '404 Not Found' "$tmptarball" >/dev/null; then - NVM_INSTALL_ERRORED=true - nvm_err "HTTP 404 at URL $url"; - fi - if ( - [ "$NVM_INSTALL_ERRORED" != true ] && \ - nvm_checksum "$tmptarball" "$sum" && \ - command tar -xzf "$tmptarball" -C "$tmpdir" --strip-components 1 && \ - command rm -f "$tmptarball" && \ - command mkdir -p "$VERSION_PATH" && \ - command mv "$tmpdir"/* "$VERSION_PATH" - ); then - return 0 - else - nvm_err 'Binary download failed, trying source.' - command rm -rf "$tmptarball" "$tmpdir" - return 1 - fi + local NVM_ARCH + NVM_ARCH="$(nvm_get_arch)" + if ! nvm_is_merged_node_version "${VERSION}"; then + if [ "${NVM_ARCH}" = 'armv6l' ] || [ "${NVM_ARCH}" = 'armv7l' ]; then + NVM_ARCH="arm-pi" fi fi - return 2 + + if [ "${KIND}" = 'binary' ]; then + nvm_echo "${FLAVOR}-${VERSION}-${NVM_OS}-${NVM_ARCH}" + elif [ "${KIND}" = 'source' ]; then + nvm_echo "${FLAVOR}-${VERSION}" + fi +} + +# args: flavor, kind, type, version +nvm_download_artifact() { + local FLAVOR + case "${1-}" in + node | iojs) FLAVOR="${1}" ;; + *) + nvm_err 'supported flavors: node, iojs' + return 1 + ;; + esac + + local KIND + case "${2-}" in + binary | source) KIND="${2}" ;; + *) + nvm_err 'supported kinds: binary, source' + return 1 + ;; + esac + + local MIRROR + MIRROR="$(nvm_get_mirror "${FLAVOR}" "${3-}")" + if [ -z "${MIRROR}" ]; then + return 2 + fi + + local VERSION + VERSION="${4}" + + if ! nvm_binary_available "${VERSION}"; then + return + fi + + local SLUG + SLUG="$(nvm_get_download_slug "${FLAVOR}" "${KIND}" "${VERSION}")" + + local COMPRESSION + COMPRESSION='gz' + if nvm_supports_xz "${VERSION}"; then + COMPRESSION='xz' + fi + + local CHECKSUM + CHECKSUM="$(nvm_get_checksum "${VERSION}" "${SLUG}" "${COMPRESSION}")" + + local tmpdir + tmpdir="${NVM_DIR}/bin/${SLUG}" + command mkdir -p "${tmpdir}/files" || ( + nvm_err "creating directory ${tmpdir}/files failed" + return 3 + ) + + local TARBALL + TARBALL="${tmpdir}/${SLUG}.tar.${COMPRESSION}" + local TARBALL_URL + TARBALL_URL="${MIRROR}/${VERSION}/${SLUG}.tar.${COMPRESSION}" + + if nvm_compare_checksum "${TARBALL}" "${CHECKSUM}" >/dev/null 2>&1; then + nvm_err "Checksums match! Using existing downloaded archive ${TARBALL}" + else + nvm_echo "Downloading ${TARBALL_URL}..." + nvm_download -L -C - --progress-bar "${TARBALL_URL}" -o "${TARBALL}" || ( + command rm -rf "${TARBALL}" "${tmpdir}" + nvm_err "Binary download from ${TARBALL_URL} failed, trying source." + return 4 + ) + + if nvm_grep '404 Not Found' "${TARBALL}" >/dev/null; then + command rm -rf "${TARBALL}" "$tmpdir" + nvm_err "HTTP 404 at URL ${TARBALL_URL}"; + return 5 + fi + + nvm_compare_checksum "${TARBALL}" "${CHECKSUM}" || ( + command rm -rf "${tmpdir}/files" + return 6 + ) + fi + + nvm_echo "${TARBALL}" } nvm_get_make_jobs() { @@ -2251,9 +2291,7 @@ nvm() { if [ $nobinary -ne 1 ] && nvm_binary_available "$VERSION"; then if [ "$NVM_IOJS" = true ] && nvm_install_iojs_binary std "$VERSION"; then NVM_INSTALL_SUCCESS=true - elif [ "$NVM_NODE_MERGED" = true ] && nvm_install_merged_node_binary std "$VERSION"; then - NVM_INSTALL_SUCCESS=true - elif [ "$NVM_IOJS" != true ] && nvm_install_node_binary "$VERSION"; then + elif [ "$NVM_IOJS" != true ] && nvm_install_node_binary std "$VERSION"; then NVM_INSTALL_SUCCESS=true fi fi @@ -2354,8 +2392,7 @@ nvm() { # Delete all files related to target version. command rm -rf "$NVM_DIR/src/$NVM_PREFIX-$VERSION" \ "$NVM_DIR/src/$NVM_PREFIX-$VERSION.tar.*" \ - "$NVM_DIR/bin/$NVM_PREFIX-${t}" \ - "$NVM_DIR/bin/$NVM_PREFIX-${t}.tar.*" \ + "$NVM_DIR/bin/$NVM_PREFIX-${t}/files" \ "$VERSION_PATH" 2>/dev/null nvm_echo "$NVM_SUCCESS_MSG" @@ -3018,7 +3055,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" nvm_ls_remote nvm_ls_remote_iojs nvm_ls_remote_index_tab \ nvm_ls nvm_remote_version nvm_remote_versions \ nvm_install_iojs_binary nvm_install_node_binary \ - nvm_install_merged_node_binary nvm_get_mirror \ + nvm_get_mirror nvm_get_download_slug nvm_download_artifact \ nvm_install_node_source nvm_check_file_permissions \ nvm_print_versions nvm_compute_checksum nvm_checksum \ nvm_get_checksum_alg nvm_get_checksum nvm_compare_checksum \ From 2214cb7ad7e200a6cb713d4af1827653e5106d73 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 13 Aug 2016 09:14:45 -0700 Subject: [PATCH 0726/1426] [Breaking] cache previously downloaded artifacts for source installs - `nvm uninstall` no longer removes source artifacts --- nvm.sh | 147 +++++++++--------- ... should remove the appropriate directory." | 2 +- 2 files changed, 77 insertions(+), 72 deletions(-) diff --git a/nvm.sh b/nvm.sh index ddcc7b3..ff96d1b 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1392,7 +1392,7 @@ nvm_get_arch() { if [ $EXIT_CODE -ne 0 ]; then HOST_ARCH=$(isainfo -n) else - HOST_ARCH=$(echo "$HOST_ARCH" | tail -1) + HOST_ARCH=$(echo "$HOST_ARCH" | command tail -1) fi else HOST_ARCH="$(command uname -m)" @@ -1664,7 +1664,8 @@ nvm_download_artifact() { local VERSION VERSION="${4}" - if ! nvm_binary_available "${VERSION}"; then + if [ "${KIND}" = 'binary' ] && ! nvm_binary_available "${VERSION}"; then + nvm_err "No precompiled binary available for ${VERSION}." return fi @@ -1681,7 +1682,11 @@ nvm_download_artifact() { CHECKSUM="$(nvm_get_checksum "${VERSION}" "${SLUG}" "${COMPRESSION}")" local tmpdir - tmpdir="${NVM_DIR}/bin/${SLUG}" + if [ "${KIND}" = 'binary' ]; then + tmpdir="${NVM_DIR}/bin/${SLUG}" + else + tmpdir="${NVM_DIR}/src/${SLUG}" + fi command mkdir -p "${tmpdir}/files" || ( nvm_err "creating directory ${tmpdir}/files failed" return 3 @@ -1690,7 +1695,12 @@ nvm_download_artifact() { local TARBALL TARBALL="${tmpdir}/${SLUG}.tar.${COMPRESSION}" local TARBALL_URL - TARBALL_URL="${MIRROR}/${VERSION}/${SLUG}.tar.${COMPRESSION}" + if nvm_version_greater_than_or_equal_to "${VERSION}" 0.1.14; then + TARBALL_URL="${MIRROR}/${VERSION}/${SLUG}.tar.${COMPRESSION}" + else + # node <= 0.1.13 does not have a directory + TARBALL_URL="${MIRROR}/${SLUG}.tar.${COMPRESSION}" + fi if nvm_compare_checksum "${TARBALL}" "${CHECKSUM}" >/dev/null 2>&1; then nvm_err "Checksums match! Using existing downloaded archive ${TARBALL}" @@ -1754,65 +1764,56 @@ nvm_get_make_jobs() { nvm_install_node_source() { local VERSION - VERSION="$1" + VERSION="${1}" local NVM_MAKE_JOBS - NVM_MAKE_JOBS="$2" + NVM_MAKE_JOBS="${2}" local ADDITIONAL_PARAMETERS - ADDITIONAL_PARAMETERS="$3" + ADDITIONAL_PARAMETERS="${3}" local NVM_ARCH NVM_ARCH="$(nvm_get_arch)" - if [ "_$NVM_ARCH" = '_armv6l' ] || [ "_$NVM_ARCH" = '_armv7l' ]; then - ADDITIONAL_PARAMETERS="--without-snapshot $ADDITIONAL_PARAMETERS" + if [ "${NVM_ARCH}" = 'armv6l' ] || [ "${NVM_ARCH}" = 'armv7l' ]; then + ADDITIONAL_PARAMETERS="--without-snapshot ${ADDITIONAL_PARAMETERS}" fi - if [ -n "$ADDITIONAL_PARAMETERS" ]; then - nvm_echo "Additional options while compiling: $ADDITIONAL_PARAMETERS" + if [ -n "${ADDITIONAL_PARAMETERS}" ]; then + nvm_echo "Additional options while compiling: ${ADDITIONAL_PARAMETERS}" fi - local VERSION_PATH - VERSION_PATH="$(nvm_version_path "$VERSION")" local NVM_OS NVM_OS="$(nvm_get_os)" - local tarball - tarball='' - local sum - sum='' local make make='make' - if [ "_$NVM_OS" = "_freebsd" ]; then + if [ "${NVM_OS}" = 'freebsd' ]; then make='gmake' - MAKE_CXX="CXX=c++" + MAKE_CXX='CXX=c++' fi - local tmpdir - tmpdir="$NVM_DIR/src" - local tmptarball - tmptarball="$tmpdir/node-$VERSION.tar.gz" - - if [ "$(nvm_download -L -s -I "$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" -o - 2>&1 | nvm_grep '200 OK')" != '' ]; then - tarball="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" - sum=$(nvm_download -L -s "$NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt" -o - | nvm_grep "node-${VERSION}.tar.gz" | command awk '{print $1}') - elif [ "$(nvm_download -L -s -I "$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" -o - | nvm_grep '200 OK')" != '' ]; then - tarball="$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" + local tar_compression_flag + tar_compression_flag='z' + if nvm_supports_xz "${VERSION}"; then + tar_compression_flag='J' fi - # shellcheck disable=SC2086 + local TARBALL + local TMPDIR + local VERSION_PATH + if ( - [ -n "$tarball" ] && \ - command mkdir -p "$tmpdir" && \ - nvm_echo "Downloading $tarball..." && \ - nvm_download -L --progress-bar "$tarball" -o "$tmptarball" && \ - nvm_checksum "$tmptarball" "$sum" && \ - command tar -xzf "$tmptarball" -C "$tmpdir" && \ - cd "$tmpdir/node-$VERSION" && \ - ./configure --prefix="$VERSION_PATH" $ADDITIONAL_PARAMETERS && \ - $make -j "$NVM_MAKE_JOBS" ${MAKE_CXX-} && \ - command rm -f "$VERSION_PATH" 2>/dev/null && \ - $make -j "$NVM_MAKE_JOBS" ${MAKE_CXX-} install - ) - then + TARBALL="$(nvm_download_artifact node source std "${VERSION}" | command tail -1)" && \ + [ -f "${TARBALL}" ] && \ + TMPDIR="$(dirname "${TARBALL}")/files" && \ + command mkdir -p "${TMPDIR}" && \ + command tar -x${tar_compression_flag}f "${TARBALL}" -C "${TMPDIR}" --strip-components 1 && \ + VERSION_PATH="$(nvm_version_path "${VERSION}")" && \ + cd "${TMPDIR}" && \ + ./configure --prefix="${VERSION_PATH}" $ADDITIONAL_PARAMETERS && \ + $make -j "${NVM_MAKE_JOBS}" ${MAKE_CXX-} && \ + command rm -f "${VERSION_PATH}" 2>/dev/null && \ + $make -j "${NVM_MAKE_JOBS}" ${MAKE_CXX-} install && \ + command rm -rf "${TMPDIR}" + ); then if ! nvm_has "npm" ; then nvm_echo 'Installing npm...' if nvm_version_greater 0.2.0 "$VERSION"; then @@ -1827,12 +1828,11 @@ nvm_install_node_source() { nvm_download -L https://npmjs.org/install.sh -o - | clean=yes sh fi fi - else - nvm_err "nvm: install $VERSION failed!" - return 1 + return $? fi - return $? + nvm_err "nvm: install ${VERSION} failed!" + return 1 } nvm_match_version() { @@ -2352,49 +2352,54 @@ nvm() { ;; esac - if [ "_$VERSION" = "_$(nvm_ls_current)" ]; then - if nvm_is_iojs_version "$VERSION"; then - nvm_err "nvm: Cannot uninstall currently-active io.js version, $VERSION (inferred from $PATTERN)." + if [ "_${VERSION}" = "_$(nvm_ls_current)" ]; then + if nvm_is_iojs_version "${VERSION}"; then + nvm_err "nvm: Cannot uninstall currently-active io.js version, ${VERSION} (inferred from ${PATTERN})." else - nvm_err "nvm: Cannot uninstall currently-active node version, $VERSION (inferred from $PATTERN)." + nvm_err "nvm: Cannot uninstall currently-active node version, ${VERSION} (inferred from ${PATTERN})." fi return 1 fi - if ! nvm_is_version_installed "$VERSION"; then - nvm_err "$VERSION version is not installed..." + if ! nvm_is_version_installed "${VERSION}"; then + nvm_err "${VERSION} version is not installed..." return; fi - t="$VERSION-$(nvm_get_os)-$(nvm_get_arch)" - - local NVM_PREFIX - local NVM_SUCCESS_MSG - if nvm_is_iojs_version "$VERSION"; then - NVM_PREFIX="$(nvm_iojs_prefix)" - NVM_SUCCESS_MSG="Uninstalled io.js $(nvm_strip_iojs_prefix "$VERSION")" + local SLUG_BINARY + local SLUG_SOURCE + if nvm_is_iojs_version "${VERSION}"; then + SLUG_BINARY="$(nvm_get_download_slug iojs binary std "${VERSION}")" + SLUG_SOURCE="$(nvm_get_download_slug iojs source std "${VERSION}")" else - NVM_PREFIX="$(nvm_node_prefix)" - NVM_SUCCESS_MSG="Uninstalled node $VERSION" + SLUG_BINARY="$(nvm_get_download_slug node binary std "${VERSION}")" + SLUG_SOURCE="$(nvm_get_download_slug node source std "${VERSION}")" + fi + + local NVM_SUCCESS_MSG + if nvm_is_iojs_version "${VERSION}"; then + NVM_SUCCESS_MSG="Uninstalled io.js $(nvm_strip_iojs_prefix "${VERSION}")" + else + NVM_SUCCESS_MSG="Uninstalled node ${VERSION}" fi local VERSION_PATH - VERSION_PATH="$(nvm_version_path "$VERSION")" - if ! nvm_check_file_permissions "$VERSION_PATH"; then + VERSION_PATH="$(nvm_version_path "${VERSION}")" + if ! nvm_check_file_permissions "${VERSION_PATH}"; then nvm_err 'Cannot uninstall, incorrect permissions on installation folder.' nvm_err 'This is usually caused by running `npm install -g` as root. Run the following commands as root to fix the permissions and then try again.' nvm_err - nvm_err " chown -R $(whoami) \"$(nvm_sanitize_path "$VERSION_PATH")\"" - nvm_err " chmod -R u+w \"$(nvm_sanitize_path "$VERSION_PATH")\"" + nvm_err " chown -R $(whoami) \"$(nvm_sanitize_path "${VERSION_PATH}")\"" + nvm_err " chmod -R u+w \"$(nvm_sanitize_path "${VERSION_PATH}")\"" return 1 fi # Delete all files related to target version. - command rm -rf "$NVM_DIR/src/$NVM_PREFIX-$VERSION" \ - "$NVM_DIR/src/$NVM_PREFIX-$VERSION.tar.*" \ - "$NVM_DIR/bin/$NVM_PREFIX-${t}/files" \ - "$VERSION_PATH" 2>/dev/null - nvm_echo "$NVM_SUCCESS_MSG" + command rm -rf \ + "${NVM_DIR}/bin/${SLUG_BINARY}/files" \ + "${NVM_DIR}/src/${SLUG_SOURCE}/files" \ + "${VERSION_PATH}" 2>/dev/null + nvm_echo "${NVM_SUCCESS_MSG}" # rm any aliases that point to uninstalled version. for ALIAS in $(nvm_grep -l "$VERSION" "$(nvm_alias_path)/*" 2>/dev/null) diff --git "a/test/fast/Running \"nvm uninstall\" should remove the appropriate directory." "b/test/fast/Running \"nvm uninstall\" should remove the appropriate directory." index 0123ab7..5ef1827 100755 --- "a/test/fast/Running \"nvm uninstall\" should remove the appropriate directory." +++ "b/test/fast/Running \"nvm uninstall\" should remove the appropriate directory." @@ -9,4 +9,4 @@ mkdir src/node-v0.0.1 . ./nvm.sh nvm uninstall v0.0.1 -[ ! -d 'v0.0.1' ] && [ ! -d 'src/node-v0.0.1' ] +[ ! -d 'v0.0.1' ] && [ ! -d 'src/node-v0.0.1/files' ] From 57c2004ab24da3ccf10026200a03efae563be8d6 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 11 Aug 2016 01:45:11 -0700 Subject: [PATCH 0727/1426] [Breaking] adapt `nvm_install_node_binary` to `nvm_install_binary`, eg, io.js too. - `nvm_get_checksum` now accepts 5 args (from 3): flavor (node/iojs), type (binary/source), version, slug, compression (xz/gz) - `nvm_install_binary` accepts 3 args (from 2): flavor (node/iojs), kind (std), version - remove `nvm_install_iojs_binary` --- nvm.sh | 152 ++++++++++---------------- test/fast/Unit tests/nvm_get_checksum | 24 +++- 2 files changed, 74 insertions(+), 102 deletions(-) diff --git a/nvm.sh b/nvm.sh index ff96d1b..55c963c 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1112,15 +1112,32 @@ nvm_compare_checksum() { nvm_err 'Checksums matched!' } +# args: flavor, type, version, slug, compression nvm_get_checksum() { + local FLAVOR + case "${1-}" in + node | iojs) FLAVOR="${1}" ;; + *) + nvm_err 'supported flavors: node, iojs' + return 2 + ;; + esac + + local MIRROR + MIRROR="$(nvm_get_mirror "${FLAVOR}" "${2-}")" + if [ -z "${MIRROR}" ]; then + return 1 + fi + local SHASUMS_URL if [ "$(nvm_get_checksum_alg)" = 'sha-256' ]; then - SHASUMS_URL="${NVM_NODEJS_ORG_MIRROR}/${1}/SHASUMS256.txt" + SHASUMS_URL="${MIRROR}/${3}/SHASUMS256.txt" else - SHASUMS_URL="${NVM_NODEJS_ORG_MIRROR}/${1}/SHASUMS.txt" + SHASUMS_URL="${MIRROR}/${3}/SHASUMS.txt" fi + nvm_download -L -s "${SHASUMS_URL}" -o - | \ - nvm_grep "${2}.tar.${3}" | \ + nvm_grep "${4}.tar.${5}" | \ command awk '{print $1}' } @@ -1470,23 +1487,29 @@ nvm_get_mirror() { esac } -nvm_install_node_binary() { +# args: flavor, kind, version, reinstall +nvm_install_binary() { + local FLAVOR + case "${1-}" in + node | iojs) FLAVOR="${1}" ;; + *) + nvm_err 'supported flavors: node, iojs' + return 4 + ;; + esac + local MIRROR - MIRROR="$(nvm_get_mirror node "${1}")" + MIRROR="$(nvm_get_mirror node "${2-}")" if [ -z "${MIRROR}" ]; then - return 4 + return 3 fi + local PREFIXED_VERSION + PREFIXED_VERSION="${3-}" local VERSION - VERSION="${2}" - - if nvm_is_iojs_version "${VERSION}"; then - nvm_err 'nvm_install_node_binary does not allow an iojs-prefixed version.' - return 10 - fi + VERSION="$(nvm_strip_iojs_prefix "${PREFIXED_VERSION}")" local VERSION_PATH - VERSION_PATH="$(nvm_version_path "${VERSION}")" if [ -z "$(nvm_get_os)" ]; then return 2 @@ -1502,13 +1525,15 @@ nvm_install_node_binary() { local TMPDIR local VERSION_PATH + TARBALL="$(nvm_download_artifact "${FLAVOR}" binary std "${VERSION}" | command tail -1)" + if [ -f "${TARBALL}" ]; then + TMPDIR="$(dirname "${TARBALL}")/files" + fi if ( - TARBALL="$(nvm_download_artifact node binary std "${VERSION}" | command tail -1)" && \ - [ -f "${TARBALL}" ] && \ - TMPDIR="$(dirname "${TARBALL}")/files" && \ + [ -n "${TMPDIR-}" ] && \ command mkdir -p "${TMPDIR}" && \ command tar -x${tar_compression_flag}f "${TARBALL}" -C "${TMPDIR}" --strip-components 1 && \ - VERSION_PATH="$(nvm_version_path "${VERSION}")" && \ + VERSION_PATH="$(nvm_version_path "${PREFIXED_VERSION}")" && \ command mkdir -p "${VERSION_PATH}" && \ command mv "${TMPDIR}/"* "${VERSION_PATH}" && \ command rm -rf "${TMPDIR}" @@ -1517,83 +1542,12 @@ nvm_install_node_binary() { fi nvm_err 'Binary download failed, trying source.' - command rm -rf "${TMPDIR}" + if [ -n "${TMPDIR-}" ]; then + command rm -rf "${TMPDIR}" + fi return 1 } -nvm_install_iojs_binary() { - local NVM_IOJS_TYPE - NVM_IOJS_TYPE="$1" - local MIRROR - if [ "_$NVM_IOJS_TYPE" = "_std" ]; then - MIRROR="$NVM_IOJS_ORG_MIRROR" - else - nvm_err 'unknown type of io.js release' - return 4 - fi - local PREFIXED_VERSION - PREFIXED_VERSION="$2" - - if ! nvm_is_iojs_version "$PREFIXED_VERSION"; then - nvm_err 'nvm_install_iojs_binary requires an iojs-prefixed version.' - return 10 - fi - - local VERSION - VERSION="$(nvm_strip_iojs_prefix "$PREFIXED_VERSION")" - local VERSION_PATH - VERSION_PATH="$(nvm_version_path "$PREFIXED_VERSION")" - local NVM_OS - NVM_OS="$(nvm_get_os)" - local t - local url - local sum - local compression - compression="gz" - local tar_compression_flag - tar_compression_flag="x" - if nvm_supports_xz "$VERSION"; then - compression="xz" - tar_compression_flag="J" - fi - - if [ -n "$NVM_OS" ]; then - if nvm_binary_available "$VERSION"; then - t="$VERSION-$NVM_OS-$(nvm_get_arch)" - url="$MIRROR/$VERSION/$(nvm_iojs_prefix)-${t}.tar.${compression}" - sum="$(nvm_download -L -s "$MIRROR/$VERSION/SHASUMS256.txt" -o - | nvm_grep "$(nvm_iojs_prefix)-${t}.tar.${compression}" | command awk '{print $1}')" - local tmpdir - tmpdir="$NVM_DIR/bin/iojs-${t}" - local tmptarball - tmptarball="$tmpdir/iojs-${t}.tar.${compression}" - local NVM_INSTALL_ERRORED - command mkdir -p "$tmpdir" && \ - nvm_echo "Downloading $url..." && \ - nvm_download -L -C - --progress-bar "$url" -o "$tmptarball" || \ - NVM_INSTALL_ERRORED=true - if nvm_grep '404 Not Found' "$tmptarball" >/dev/null; then - NVM_INSTALL_ERRORED=true - nvm_err "HTTP 404 at URL $url"; - fi - if ( - [ "$NVM_INSTALL_ERRORED" != true ] && \ - nvm_checksum "$tmptarball" "$sum" "sha256" && \ - command tar -x${tar_compression_flag}f "$tmptarball" -C "$tmpdir" --strip-components 1 && \ - command rm -f "$tmptarball" && \ - command mkdir -p "$VERSION_PATH" && \ - command mv "$tmpdir"/* "$VERSION_PATH" - ); then - return 0 - else - nvm_err 'Binary download failed, trying source.' - command rm -rf "$tmptarball" "$tmpdir" - return 1 - fi - fi - fi - return 2 -} - # args: flavor, kind, version nvm_get_download_slug() { local FLAVOR @@ -1655,8 +1609,11 @@ nvm_download_artifact() { ;; esac + local TYPE + TYPE="${3-}" + local MIRROR - MIRROR="$(nvm_get_mirror "${FLAVOR}" "${3-}")" + MIRROR="$(nvm_get_mirror "${FLAVOR}" "${TYPE}")" if [ -z "${MIRROR}" ]; then return 2 fi @@ -1679,7 +1636,7 @@ nvm_download_artifact() { fi local CHECKSUM - CHECKSUM="$(nvm_get_checksum "${VERSION}" "${SLUG}" "${COMPRESSION}")" + CHECKSUM="$(nvm_get_checksum "${FLAVOR}" "${TYPE}" "${VERSION}" "${SLUG}" "${COMPRESSION}")" local tmpdir if [ "${KIND}" = 'binary' ]; then @@ -1703,7 +1660,7 @@ nvm_download_artifact() { fi if nvm_compare_checksum "${TARBALL}" "${CHECKSUM}" >/dev/null 2>&1; then - nvm_err "Checksums match! Using existing downloaded archive ${TARBALL}" + nvm_err "Checksums match! Using existing downloaded archive $(nvm_sanitize_path "${TARBALL}")" else nvm_echo "Downloading ${TARBALL_URL}..." nvm_download -L -C - --progress-bar "${TARBALL_URL}" -o "${TARBALL}" || ( @@ -1800,6 +1757,7 @@ nvm_install_node_source() { local TMPDIR local VERSION_PATH + # shellcheck disable=SC2086 if ( TARBALL="$(nvm_download_artifact node source std "${VERSION}" | command tail -1)" && \ [ -f "${TARBALL}" ] && \ @@ -2289,9 +2247,9 @@ nvm() { local NVM_INSTALL_SUCCESS # skip binary install if "nobinary" option specified. if [ $nobinary -ne 1 ] && nvm_binary_available "$VERSION"; then - if [ "$NVM_IOJS" = true ] && nvm_install_iojs_binary std "$VERSION"; then + if [ "${NVM_IOJS}" = true ] && nvm_install_binary iojs std "${VERSION}"; then NVM_INSTALL_SUCCESS=true - elif [ "$NVM_IOJS" != true ] && nvm_install_node_binary std "$VERSION"; then + elif [ "${NVM_IOJS}" != true ] && nvm_install_binary node std "${VERSION}"; then NVM_INSTALL_SUCCESS=true fi fi @@ -3059,7 +3017,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" nvm_is_iojs_version nvm_is_alias \ nvm_ls_remote nvm_ls_remote_iojs nvm_ls_remote_index_tab \ nvm_ls nvm_remote_version nvm_remote_versions \ - nvm_install_iojs_binary nvm_install_node_binary \ + nvm_install_binary \ nvm_get_mirror nvm_get_download_slug nvm_download_artifact \ nvm_install_node_source nvm_check_file_permissions \ nvm_print_versions nvm_compute_checksum nvm_checksum \ diff --git a/test/fast/Unit tests/nvm_get_checksum b/test/fast/Unit tests/nvm_get_checksum index 9e3816a..1ac8868 100755 --- a/test/fast/Unit tests/nvm_get_checksum +++ b/test/fast/Unit tests/nvm_get_checksum @@ -3,11 +3,25 @@ set -ex cleanup () { - unset -f nvm_download nvm_get_checksum_alg + unset -f nvm_download nvm_get_checksum_alg nvm_get_mirror } die () { echo $@ ; cleanup ; exit 1; } +set +e # TODO: fix . ../../../nvm.sh +set -e + +nvm_get_mirror() { + echo "mirror-${1}-${2}" +} + +set +ex # needed to capture error output +OUTPUT="$(nvm_get_checksum 2>&1 >/dev/null)" +EXPECTED_OUTPUT='supported flavors: node, iojs' +EXIT_CODE="$(nvm_get_checksum >/dev/null 2>&1 ; echo $?)" +set -ex +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected error output >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" +[ "${EXIT_CODE}" = 2 ] || die "expected exit code 2, got ${EXIT_CODE}" nvm_download() { echo "ERROR_FAILED_MATCH no_match more fields" @@ -17,15 +31,15 @@ nvm_download() { nvm_get_checksum_alg() { echo 'sha-256' } -OUTPUT="$(nvm_get_checksum foo bar baz)" -EXPECTED_OUTPUT="${NVM_NODEJS_ORG_MIRROR}/foo/SHASUMS256.txt" +OUTPUT="$(nvm_get_checksum node std foo bar baz)" +EXPECTED_OUTPUT="mirror-node-std/foo/SHASUMS256.txt" [ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" nvm_get_checksum_alg() { echo 'sha-1' } -OUTPUT="$(nvm_get_checksum foo bar baz)" -EXPECTED_OUTPUT="${NVM_NODEJS_ORG_MIRROR}/foo/SHASUMS.txt" +OUTPUT="$(nvm_get_checksum iojs std foo bar baz)" +EXPECTED_OUTPUT="mirror-iojs-std/foo/SHASUMS.txt" [ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" cleanup From e546149f7b01a5fc3779118d3b8ceaa9d3ab3bfc Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 13 Aug 2016 21:15:12 -0700 Subject: [PATCH 0728/1426] =?UTF-8?q?[New]=20add=20`nvm=20cache`=20with=20?= =?UTF-8?q?=E2=80=9Cdir=E2=80=9D=20and=20=E2=80=9Cclean=E2=80=9D=20command?= =?UTF-8?q?s.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - cache the nvm cache on travis --- .gitignore | 3 +-- .travis.yml | 1 + nvm.sh | 36 ++++++++++++++++++++++++++++++++---- 3 files changed, 34 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 57f44a7..fc578cc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ HEAD -bin -src +.cache v* alias diff --git a/.travis.yml b/.travis.yml index e891e22..7598244 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,6 +6,7 @@ addons: cache: directories: - $HOME/.stack + - $TRAVIS_BUILD_DIR/.cache before_install: - $SHELL --version 2> /dev/null || dpkg -s $SHELL 2> /dev/null || which $SHELL - curl --version diff --git a/nvm.sh b/nvm.sh index 55c963c..e10084f 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1640,9 +1640,9 @@ nvm_download_artifact() { local tmpdir if [ "${KIND}" = 'binary' ]; then - tmpdir="${NVM_DIR}/bin/${SLUG}" + tmpdir="$(nvm_cache_dir)/bin/${SLUG}" else - tmpdir="${NVM_DIR}/src/${SLUG}" + tmpdir="$(nvm_cache_dir)/src/${SLUG}" fi command mkdir -p "${tmpdir}/files" || ( nvm_err "creating directory ${tmpdir}/files failed" @@ -1975,6 +1975,10 @@ nvm_check_file_permissions() { return 0 } +nvm_cache_dir() { + nvm_echo "${NVM_DIR}/.cache" +} + nvm() { if [ $# -lt 1 ]; then nvm --help @@ -2043,6 +2047,8 @@ nvm() { nvm_echo ' nvm reinstall-packages Reinstall global `npm` packages contained in to current version' nvm_echo ' nvm unload Unload `nvm` from shell' nvm_echo ' nvm which [] Display path to installed node version. Uses .nvmrc if available' + nvm_echo ' nvm cache dir Display path to the cache directory for nvm' + nvm_echo ' nvm cache clear Empty cache directory for nvm' nvm_echo nvm_echo 'Example:' nvm_echo ' nvm install v0.10.32 Install a specific version number' @@ -2056,6 +2062,26 @@ nvm() { nvm_echo ;; + "cache" ) + case "${1-}" in + dir) nvm_cache_dir ;; + clear) + local DIR + DIR="$(nvm_cache_dir)" + if command rm -rf "${DIR}" && command mkdir -p "${DIR}"; then + nvm_echo 'Cache cleared.' + else + nvm_err "Unable to clear cache: ${DIR}" + return 1 + fi + ;; + *) + >&2 nvm --help + return 127 + ;; + esac + ;; + "debug" ) local ZSH_HAS_SHWORDSPLIT_UNSET ZSH_HAS_SHWORDSPLIT_UNSET=1 @@ -2353,9 +2379,11 @@ nvm() { fi # Delete all files related to target version. + local CACHE_DIR + CACHE_DIR="$(nvm_cache_dir)" command rm -rf \ - "${NVM_DIR}/bin/${SLUG_BINARY}/files" \ - "${NVM_DIR}/src/${SLUG_SOURCE}/files" \ + "${CACHE_DIR}/bin/${SLUG_BINARY}/files" \ + "${CACHE_DIR}/src/${SLUG_SOURCE}/files" \ "${VERSION_PATH}" 2>/dev/null nvm_echo "${NVM_SUCCESS_MSG}" From 9b8eab31633003ed56debb567d990d016182338e Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 25 Jan 2015 12:00:52 -0800 Subject: [PATCH 0729/1426] [New] Add `nvm install -s iojs` support. --- nvm.sh | 73 ++++++++++++++++++- test/installation_iojs/install from source | 19 +++++ ...ll version specified in .nvmrc from source | 24 ++++++ test/installation_iojs/teardown_dir | 1 + 4 files changed, 114 insertions(+), 3 deletions(-) create mode 100755 test/installation_iojs/install from source create mode 100755 test/installation_iojs/install version specified in .nvmrc from source diff --git a/nvm.sh b/nvm.sh index e10084f..f58b234 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1719,6 +1719,73 @@ nvm_get_make_jobs() { fi } +nvm_install_iojs_source() { + local VERSION + VERSION="$(nvm_strip_iojs_prefix "$1")" + local PREFIXED_VERSION + PREFIXED_VERSION="$(nvm_add_iojs_prefix "$VERSION")" + local ADDITIONAL_PARAMETERS + ADDITIONAL_PARAMETERS="$2" + + local NVM_ARCH + NVM_ARCH="$(nvm_get_arch)" + if [ $NVM_ARCH = "armv6l" ] || [ $NVM_ARCH = "armv7l" ]; then + ADDITIONAL_PARAMETERS="--without-snapshot $ADDITIONAL_PARAMETERS" + fi + + if [ -n "$ADDITIONAL_PARAMETERS" ]; then + echo "Additional options while compiling: $ADDITIONAL_PARAMETERS" + fi + + local VERSION_PATH + VERSION_PATH="$(nvm_version_path "$PREFIXED_VERSION")" + local NVM_OS + NVM_OS="$(nvm_get_os)" + + local tarball + tarball='' + local sum + sum='' + local make + make='make' + if [ "_$NVM_OS" = "_freebsd" ]; then + make='gmake' + MAKE_CXX="CXX=c++" + fi + local tmpdir + tmpdir="$NVM_DIR/src" + local tmptarball + tmptarball="$tmpdir/iojs-$VERSION.tar.gz" + + if [ "`nvm_download -L -s -I "$NVM_IOJS_ORG_MIRROR/$VERSION/iojs-$VERSION.tar.gz" -o - 2>&1 | command grep '200 OK'`" != '' ]; then + tarball="$NVM_IOJS_ORG_MIRROR/$VERSION/iojs-$VERSION.tar.gz" + sum="$(nvm_download -L -s $NVM_IOJS_ORG_MIRROR/$VERSION/SHASUMS256.txt -o - | command grep "iojs-$VERSION.tar.gz" | command awk '{print $1}')" + elif [ "`nvm_download -L -s -I "$NVM_IOJS_ORG_MIRROR/iojs-$VERSION.tar.gz" -o - | command grep '200 OK'`" != '' ]; then + tarball="$NVM_IOJS_ORG_MIRROR/iojs-$VERSION.tar.gz" + fi + + if ( + [ -n "$tarball" ] && \ + command mkdir -p "$tmpdir" && \ + nvm_download -L --progress-bar "$tarball" -o "$tmptarball" && \ + echo "WARNING: checksums are currently disabled for io.js" >&2 && \ + # nvm_checksum "$tmptarball" "$sum" && \ + command tar -xzf "$tmptarball" -C "$tmpdir" && \ + cd "$tmpdir/$PREFIXED_VERSION" && \ + ./configure --prefix="$VERSION_PATH" $ADDITIONAL_PARAMETERS && \ + $make -j $MAKE_CXX && \ + command rm -f "$VERSION_PATH" 2>/dev/null && \ + $make -j $MAKE_CXX install + ); then + return 0 + else + echo "nvm: install $PREFIXED_VERSION from source failed!" >&2 + return 105 + fi + + return $? +} + nvm_install_node_source() { local VERSION VERSION="${1}" @@ -2286,9 +2353,9 @@ nvm() { case "true" in "$NVM_IOJS") - # nvm_install_iojs_source "$VERSION" "$NVM_MAKE_JOBS" "$ADDITIONAL_PARAMETERS" - nvm_err 'Installing iojs from source is not currently supported' - return 105 + if nvm_install_iojs_source "$VERSION" "$NVM_MAKE_JOBS" "$ADDITIONAL_PARAMETERS"; then + NVM_INSTALL_SUCCESS=true + fi ;; "$NVM_NODE_MERGED") # nvm_install_merged_node_source "$VERSION" "$NVM_MAKE_JOBS" "$ADDITIONAL_PARAMETERS" diff --git a/test/installation_iojs/install from source b/test/installation_iojs/install from source new file mode 100755 index 0000000..7b44643 --- /dev/null +++ b/test/installation_iojs/install from source @@ -0,0 +1,19 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../nvm.sh + +NVM_TEST_VERSION="v1.0.0" +NVM_PREFIXED_TEST_VERSION="iojs-$NVM_TEST_VERSION" + +# Remove the stuff we're clobbering. +[ -e ../../versions/io.js/$NVM_TEST_VERSION ] && rm -R ../../versions/io.js/$NVM_TEST_VERSION + +# Install from source +nvm install -s $NVM_PREFIXED_TEST_VERSION || die "'nvm install -s $NVM_PREFIXED_TEST_VERSION' failed" + +# Check +[ -d ../../versions/io.js/$NVM_TEST_VERSION ] +nvm run $NVM_PREFIXED_TEST_VERSION --version | grep $NVM_TEST_VERSION || "'nvm run $NVM_PREFIXED_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" + diff --git a/test/installation_iojs/install version specified in .nvmrc from source b/test/installation_iojs/install version specified in .nvmrc from source new file mode 100755 index 0000000..d17a6bb --- /dev/null +++ b/test/installation_iojs/install version specified in .nvmrc from source @@ -0,0 +1,24 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../nvm.sh + +NVM_TEST_VERSION=v1.0.3 +NVM_PREFIXED_TEST_VERSION="iojs-$NVM_TEST_VERSION" +VERSION_PATH="../../versions/io.js/$NVM_TEST_VERSION" + +# Remove the stuff we're clobbering. +[ -e "$VERSION_PATH" ] && rm -R "$VERSION_PATH" + +# Install from binary +echo "$NVM_PREFIXED_TEST_VERSION" > .nvmrc + +nvm install -s || "'nvm install -s' failed" + +# Check +[ -d "$VERSION_PATH" ] || die "$VERSION_PATH did not exist" +nvm run $NVM_PREFIXED_TEST_VERSION --version | grep $NVM_TEST_VERSION \ + || die "'nvm run $NVM_PREFIXED_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" + + diff --git a/test/installation_iojs/teardown_dir b/test/installation_iojs/teardown_dir index 9f6d025..d45c66a 100755 --- a/test/installation_iojs/teardown_dir +++ b/test/installation_iojs/teardown_dir @@ -3,6 +3,7 @@ . ../../nvm.sh nvm deactivate nvm uninstall iojs-v1.0.0 +nvm uninstall iojs-v1.0.3 if [ -f ".nvmrc" ]; then rm .nvmrc From 715bb59c3b5021bbfa6e098ff7ef68e3a602528a Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 28 Dec 2015 12:52:11 -0800 Subject: [PATCH 0730/1426] Adapt `nvm_install_iojs_source` to support specifying `make` jobs. --- nvm.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index f58b234..faf8ac7 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1724,8 +1724,10 @@ nvm_install_iojs_source() { VERSION="$(nvm_strip_iojs_prefix "$1")" local PREFIXED_VERSION PREFIXED_VERSION="$(nvm_add_iojs_prefix "$VERSION")" + local NVM_MAKE_JOBS + NVM_MAKE_JOBS="$2" local ADDITIONAL_PARAMETERS - ADDITIONAL_PARAMETERS="$2" + ADDITIONAL_PARAMETERS="$3" local NVM_ARCH NVM_ARCH="$(nvm_get_arch)" @@ -1773,9 +1775,9 @@ nvm_install_iojs_source() { command tar -xzf "$tmptarball" -C "$tmpdir" && \ cd "$tmpdir/$PREFIXED_VERSION" && \ ./configure --prefix="$VERSION_PATH" $ADDITIONAL_PARAMETERS && \ - $make -j $MAKE_CXX && \ + $make -j $NVM_MAKE_JOBS ${MAKE_CXX-} && \ command rm -f "$VERSION_PATH" 2>/dev/null && \ - $make -j $MAKE_CXX install + $make -j $NVM_MAKE_JOBS ${MAKE_CXX-} install ); then return 0 else From 4060de52852fc93d69bf68f6a62b23f5a4499d6c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 11 Aug 2016 23:19:47 -0700 Subject: [PATCH 0731/1426] [New] enable io.js and node 4+ source installs. - consolidate `nvm_install_iojs_source` and `nvm_install_node_source` into `nvm_install_source` --- nvm.sh | 132 ++++++++++++++------------------------------------------- 1 file changed, 32 insertions(+), 100 deletions(-) diff --git a/nvm.sh b/nvm.sh index faf8ac7..383b0b7 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1719,82 +1719,30 @@ nvm_get_make_jobs() { fi } -nvm_install_iojs_source() { - local VERSION - VERSION="$(nvm_strip_iojs_prefix "$1")" +# args: flavor, type, version, make jobs, additional +nvm_install_source() { + local FLAVOR + case "${1-}" in + node | iojs) FLAVOR="${1}" ;; + *) + nvm_err 'supported flavors: node, iojs' + return 4 + ;; + esac + + local TYPE + TYPE="${2-}" + local PREFIXED_VERSION - PREFIXED_VERSION="$(nvm_add_iojs_prefix "$VERSION")" - local NVM_MAKE_JOBS - NVM_MAKE_JOBS="$2" - local ADDITIONAL_PARAMETERS - ADDITIONAL_PARAMETERS="$3" - - local NVM_ARCH - NVM_ARCH="$(nvm_get_arch)" - if [ $NVM_ARCH = "armv6l" ] || [ $NVM_ARCH = "armv7l" ]; then - ADDITIONAL_PARAMETERS="--without-snapshot $ADDITIONAL_PARAMETERS" - fi - - if [ -n "$ADDITIONAL_PARAMETERS" ]; then - echo "Additional options while compiling: $ADDITIONAL_PARAMETERS" - fi - - local VERSION_PATH - VERSION_PATH="$(nvm_version_path "$PREFIXED_VERSION")" - local NVM_OS - NVM_OS="$(nvm_get_os)" - - local tarball - tarball='' - local sum - sum='' - local make - make='make' - if [ "_$NVM_OS" = "_freebsd" ]; then - make='gmake' - MAKE_CXX="CXX=c++" - fi - local tmpdir - tmpdir="$NVM_DIR/src" - local tmptarball - tmptarball="$tmpdir/iojs-$VERSION.tar.gz" - - if [ "`nvm_download -L -s -I "$NVM_IOJS_ORG_MIRROR/$VERSION/iojs-$VERSION.tar.gz" -o - 2>&1 | command grep '200 OK'`" != '' ]; then - tarball="$NVM_IOJS_ORG_MIRROR/$VERSION/iojs-$VERSION.tar.gz" - sum="$(nvm_download -L -s $NVM_IOJS_ORG_MIRROR/$VERSION/SHASUMS256.txt -o - | command grep "iojs-$VERSION.tar.gz" | command awk '{print $1}')" - elif [ "`nvm_download -L -s -I "$NVM_IOJS_ORG_MIRROR/iojs-$VERSION.tar.gz" -o - | command grep '200 OK'`" != '' ]; then - tarball="$NVM_IOJS_ORG_MIRROR/iojs-$VERSION.tar.gz" - fi - - if ( - [ -n "$tarball" ] && \ - command mkdir -p "$tmpdir" && \ - nvm_download -L --progress-bar "$tarball" -o "$tmptarball" && \ - echo "WARNING: checksums are currently disabled for io.js" >&2 && \ - # nvm_checksum "$tmptarball" "$sum" && \ - command tar -xzf "$tmptarball" -C "$tmpdir" && \ - cd "$tmpdir/$PREFIXED_VERSION" && \ - ./configure --prefix="$VERSION_PATH" $ADDITIONAL_PARAMETERS && \ - $make -j $NVM_MAKE_JOBS ${MAKE_CXX-} && \ - command rm -f "$VERSION_PATH" 2>/dev/null && \ - $make -j $NVM_MAKE_JOBS ${MAKE_CXX-} install - ); then - return 0 - else - echo "nvm: install $PREFIXED_VERSION from source failed!" >&2 - return 105 - fi - - return $? -} - -nvm_install_node_source() { + PREFIXED_VERSION="${3-}" local VERSION - VERSION="${1}" + VERSION="$(nvm_strip_iojs_prefix "${PREFIXED_VERSION}")" + local NVM_MAKE_JOBS - NVM_MAKE_JOBS="${2}" + NVM_MAKE_JOBS="${4-}" + local ADDITIONAL_PARAMETERS - ADDITIONAL_PARAMETERS="${3}" + ADDITIONAL_PARAMETERS="${5-}" local NVM_ARCH NVM_ARCH="$(nvm_get_arch)" @@ -1828,12 +1776,12 @@ nvm_install_node_source() { # shellcheck disable=SC2086 if ( - TARBALL="$(nvm_download_artifact node source std "${VERSION}" | command tail -1)" && \ + TARBALL="$(nvm_download_artifact "${FLAVOR}" source "${TYPE}" "${VERSION}" | command tail -1)" && \ [ -f "${TARBALL}" ] && \ TMPDIR="$(dirname "${TARBALL}")/files" && \ command mkdir -p "${TMPDIR}" && \ command tar -x${tar_compression_flag}f "${TARBALL}" -C "${TMPDIR}" --strip-components 1 && \ - VERSION_PATH="$(nvm_version_path "${VERSION}")" && \ + VERSION_PATH="$(nvm_version_path "${PREFIXED_VERSION}")" && \ cd "${TMPDIR}" && \ ./configure --prefix="${VERSION_PATH}" $ADDITIONAL_PARAMETERS && \ $make -j "${NVM_MAKE_JOBS}" ${MAKE_CXX-} && \ @@ -2307,12 +2255,11 @@ nvm() { return 5 fi - local NVM_NODE_MERGED - local NVM_IOJS + local FLAVOR if nvm_is_iojs_version "$VERSION"; then - NVM_IOJS=true - elif nvm_is_merged_node_version "$VERSION"; then - NVM_NODE_MERGED=true + FLAVOR="$(nvm_iojs_prefix)" + else + FLAVOR="$(nvm_node_prefix)" fi if nvm_is_version_installed "$VERSION"; then @@ -2339,12 +2286,11 @@ nvm() { nvm_err "Currently, there is no binary of version $VERSION for $NVM_OS" fi fi + local NVM_INSTALL_SUCCESS # skip binary install if "nobinary" option specified. if [ $nobinary -ne 1 ] && nvm_binary_available "$VERSION"; then - if [ "${NVM_IOJS}" = true ] && nvm_install_binary iojs std "${VERSION}"; then - NVM_INSTALL_SUCCESS=true - elif [ "${NVM_IOJS}" != true ] && nvm_install_binary node std "${VERSION}"; then + if nvm_install_binary "${FLAVOR}" std "${VERSION}"; then NVM_INSTALL_SUCCESS=true fi fi @@ -2353,23 +2299,9 @@ nvm() { nvm_get_make_jobs fi - case "true" in - "$NVM_IOJS") - if nvm_install_iojs_source "$VERSION" "$NVM_MAKE_JOBS" "$ADDITIONAL_PARAMETERS"; then - NVM_INSTALL_SUCCESS=true - fi - ;; - "$NVM_NODE_MERGED") - # nvm_install_merged_node_source "$VERSION" "$NVM_MAKE_JOBS" "$ADDITIONAL_PARAMETERS" - nvm_err 'Installing node v1.0 and greater from source is not currently supported' - return 106 - ;; - *) - if nvm_install_node_source "$VERSION" "$NVM_MAKE_JOBS" "$ADDITIONAL_PARAMETERS"; then - NVM_INSTALL_SUCCESS=true - fi - ;; - esac + if nvm_install_source "${FLAVOR}" std "${VERSION}" "${NVM_MAKE_JOBS}" "${ADDITIONAL_PARAMETERS}"; then + NVM_INSTALL_SUCCESS=true + fi fi if [ "$NVM_INSTALL_SUCCESS" = true ] && nvm use "$VERSION"; then @@ -3116,7 +3048,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" nvm_ls nvm_remote_version nvm_remote_versions \ nvm_install_binary \ nvm_get_mirror nvm_get_download_slug nvm_download_artifact \ - nvm_install_node_source nvm_check_file_permissions \ + nvm_install_source nvm_check_file_permissions \ nvm_print_versions nvm_compute_checksum nvm_checksum \ nvm_get_checksum_alg nvm_get_checksum nvm_compare_checksum \ nvm_version nvm_rc_version nvm_match_version \ From 88ce2103f5f56de992e06a06b70b3ea94d20fb68 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 26 May 2016 08:48:15 +0200 Subject: [PATCH 0732/1426] Use `watch` to keepalive stdout while installing. --- test/common.sh | 12 ++++++++++++ test/installation_iojs/install from source | 4 +++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/test/common.sh b/test/common.sh index 033817c..98be7b3 100644 --- a/test/common.sh +++ b/test/common.sh @@ -63,3 +63,15 @@ make_fake_iojs() { return 3 } } + +watch() { + $@ & + local JOB + JOB=$! + while true; do sleep 15; echo '* ping *'; done & + wait $JOB; + local EXIT_CODE + EXIT_CODE=$? + kill %2; + return $EXIT_CODE +} diff --git a/test/installation_iojs/install from source b/test/installation_iojs/install from source index 7b44643..5496b2c 100755 --- a/test/installation_iojs/install from source +++ b/test/installation_iojs/install from source @@ -1,5 +1,7 @@ #!/bin/sh +. ../common.sh + die () { echo $@ ; exit 1; } . ../../nvm.sh @@ -11,7 +13,7 @@ NVM_PREFIXED_TEST_VERSION="iojs-$NVM_TEST_VERSION" [ -e ../../versions/io.js/$NVM_TEST_VERSION ] && rm -R ../../versions/io.js/$NVM_TEST_VERSION # Install from source -nvm install -s $NVM_PREFIXED_TEST_VERSION || die "'nvm install -s $NVM_PREFIXED_TEST_VERSION' failed" +(watch nvm install -s $NVM_PREFIXED_TEST_VERSION) || die "'nvm install -s $NVM_PREFIXED_TEST_VERSION' failed" # Check [ -d ../../versions/io.js/$NVM_TEST_VERSION ] From 32a1b4124cbc31492db7dfd4faca1968af88edd5 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 14 Aug 2016 15:40:39 -0700 Subject: [PATCH 0733/1426] Use `watch` to keepalive stdout while installing. --- test/common.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/common.sh b/test/common.sh index 98be7b3..095c1a8 100644 --- a/test/common.sh +++ b/test/common.sh @@ -68,7 +68,7 @@ watch() { $@ & local JOB JOB=$! - while true; do sleep 15; echo '* ping *'; done & + while true; do sleep 15; >&2 echo '* ping *'; done & wait $JOB; local EXIT_CODE EXIT_CODE=$? From adb6a187a939bca6deb3436066f9ba07a4f09ebe Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 14 Aug 2016 19:43:47 -0700 Subject: [PATCH 0734/1426] [Tests] try v3.3 instead of v1 in hopes they will compile faster. --- test/installation_iojs/install from source | 15 ++++++++------- ...ll version specified in .nvmrc from source | 19 +++++++++---------- test/installation_iojs/teardown_dir | 2 ++ 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/test/installation_iojs/install from source b/test/installation_iojs/install from source index 5496b2c..354de49 100755 --- a/test/installation_iojs/install from source +++ b/test/installation_iojs/install from source @@ -6,16 +6,17 @@ die () { echo $@ ; exit 1; } . ../../nvm.sh -NVM_TEST_VERSION="v1.0.0" -NVM_PREFIXED_TEST_VERSION="iojs-$NVM_TEST_VERSION" +set -ex + +NVM_TEST_VERSION='v3.3.1' +NVM_PREFIXED_TEST_VERSION="iojs-${NVM_TEST_VERSION}" # Remove the stuff we're clobbering. -[ -e ../../versions/io.js/$NVM_TEST_VERSION ] && rm -R ../../versions/io.js/$NVM_TEST_VERSION +nvm uninstall "${NVM_TEST_VERSION}" || echo 'not installed' # Install from source -(watch nvm install -s $NVM_PREFIXED_TEST_VERSION) || die "'nvm install -s $NVM_PREFIXED_TEST_VERSION' failed" +(watch nvm install -s "${NVM_PREFIXED_TEST_VERSION}") || die "'nvm install -s ${NVM_PREFIXED_TEST_VERSION}' failed" # Check -[ -d ../../versions/io.js/$NVM_TEST_VERSION ] -nvm run $NVM_PREFIXED_TEST_VERSION --version | grep $NVM_TEST_VERSION || "'nvm run $NVM_PREFIXED_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" - +nvm_is_version_installed "${NVM_PREFIXED_TEST_VERSION}" || die 'version not installed' +nvm run "${NVM_PREFIXED_TEST_VERSION}" --version | grep "${NVM_TEST_VERSION}" || "'nvm run ${NVM_PREFIXED_TEST_VERSION} --version | grep ${NVM_TEST_VERSION}' failed" diff --git a/test/installation_iojs/install version specified in .nvmrc from source b/test/installation_iojs/install version specified in .nvmrc from source index d17a6bb..df3f46c 100755 --- a/test/installation_iojs/install version specified in .nvmrc from source +++ b/test/installation_iojs/install version specified in .nvmrc from source @@ -4,21 +4,20 @@ die () { echo $@ ; exit 1; } . ../../nvm.sh -NVM_TEST_VERSION=v1.0.3 -NVM_PREFIXED_TEST_VERSION="iojs-$NVM_TEST_VERSION" -VERSION_PATH="../../versions/io.js/$NVM_TEST_VERSION" +set -ex + +NVM_TEST_VERSION='v3.3.0' +NVM_PREFIXED_TEST_VERSION="iojs-${NVM_TEST_VERSION}" # Remove the stuff we're clobbering. -[ -e "$VERSION_PATH" ] && rm -R "$VERSION_PATH" +nvm uninstall "${NVM_TEST_VERSION}" || echo 'not installed' # Install from binary -echo "$NVM_PREFIXED_TEST_VERSION" > .nvmrc +echo "${NVM_PREFIXED_TEST_VERSION}" > .nvmrc nvm install -s || "'nvm install -s' failed" # Check -[ -d "$VERSION_PATH" ] || die "$VERSION_PATH did not exist" -nvm run $NVM_PREFIXED_TEST_VERSION --version | grep $NVM_TEST_VERSION \ - || die "'nvm run $NVM_PREFIXED_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" - - +nvm_is_version_installed "${NVM_PREFIXED_TEST_VERSION}" || die 'version is not installed' +nvm run "${NVM_PREFIXED_TEST_VERSION}" --version | grep "${NVM_TEST_VERSION}" \ + || die "'nvm run ${NVM_PREFIXED_TEST_VERSION} --version | grep ${NVM_TEST_VERSION}' failed" diff --git a/test/installation_iojs/teardown_dir b/test/installation_iojs/teardown_dir index d45c66a..295db62 100755 --- a/test/installation_iojs/teardown_dir +++ b/test/installation_iojs/teardown_dir @@ -4,6 +4,8 @@ nvm deactivate nvm uninstall iojs-v1.0.0 nvm uninstall iojs-v1.0.3 +nvm uninstall iojs-v3.3.0 +nvm uninstall iojs-v3.3.1 if [ -f ".nvmrc" ]; then rm .nvmrc From 494aa60bd805633394e40151ac2fad28e70eb506 Mon Sep 17 00:00:00 2001 From: Myles Borins Date: Mon, 28 Dec 2015 15:38:42 -0800 Subject: [PATCH 0735/1426] travis: enable trusty beta --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 7598244..d511d72 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,6 @@ language: generic +sudo: required +dist: trusty addons: apt_packages: - zsh From 62696cb0d635a07306c9f8ef8c10cb9867439e3e Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 8 May 2016 22:33:39 -0700 Subject: [PATCH 0736/1426] Partially revert 494aa60bd805633394e40151ac2fad28e70eb506 --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index d511d72..fbf3db5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,5 @@ language: generic sudo: required -dist: trusty addons: apt_packages: - zsh From fdc08122e323f433c0a0a36c3a8fcf9d2b6e9b0d Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 8 May 2016 23:52:51 -0700 Subject: [PATCH 0737/1426] [Tests] swap order of slow + sourcing tests. --- .travis.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 00f8d4a..d06bb79 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,16 +20,16 @@ env: - SHELL=bash TEST_SUITE=fast - SHELL=zsh TEST_SUITE=fast # - SHELL=ksh TEST_SUITE=fast - - SHELL=sh TEST_SUITE=slow - - SHELL=dash TEST_SUITE=slow - - SHELL=bash TEST_SUITE=slow - - SHELL=zsh TEST_SUITE=slow -# - SHELL=ksh TEST_SUITE=slow - SHELL=sh TEST_SUITE=sourcing - SHELL=dash TEST_SUITE=sourcing - SHELL=bash TEST_SUITE=sourcing - SHELL=zsh TEST_SUITE=sourcing # - SHELL=ksh TEST_SUITE=sourcing + - SHELL=sh TEST_SUITE=slow + - SHELL=dash TEST_SUITE=slow + - SHELL=bash TEST_SUITE=slow + - SHELL=zsh TEST_SUITE=slow +# - SHELL=ksh TEST_SUITE=slow - SHELL=sh TEST_SUITE=installation_node # - SHELL=sh TEST_SUITE=installation_node WITHOUT_CURL=1 - SHELL=dash TEST_SUITE=installation_node From b0244a133bb2b80e9f4d4281502c7f3b6cc9ad1a Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 24 Jun 2016 01:38:27 -0700 Subject: [PATCH 0738/1426] [Fix] `nvm ls`: avoid use of `maxdepth` which is not on Solaris/SmartOS Fixes #1121. --- nvm.sh | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/nvm.sh b/nvm.sh index affa15b..fa4f05e 100644 --- a/nvm.sh +++ b/nvm.sh @@ -775,34 +775,40 @@ nvm_ls() { fi fi - if ! [ -d "$NVM_DIRS_TO_SEARCH1" ]; then + if ! [ -d "$NVM_DIRS_TO_SEARCH1" ] || ! (command ls -1qA "$NVM_DIRS_TO_SEARCH1" | command grep -q .); then NVM_DIRS_TO_SEARCH1='' fi - if ! [ -d "$NVM_DIRS_TO_SEARCH2" ]; then + if ! [ -d "$NVM_DIRS_TO_SEARCH2" ] || ! (command ls -1qA "$NVM_DIRS_TO_SEARCH2" | command grep -q .); then NVM_DIRS_TO_SEARCH2="$NVM_DIRS_TO_SEARCH1" fi - if ! [ -d "$NVM_DIRS_TO_SEARCH3" ]; then + if ! [ -d "$NVM_DIRS_TO_SEARCH3" ] || ! (command ls -1qA "$NVM_DIRS_TO_SEARCH3" | command grep -q .); then NVM_DIRS_TO_SEARCH3="$NVM_DIRS_TO_SEARCH2" fi + local SEARCH_PATTERN if [ -z "$PATTERN" ]; then PATTERN='v' + SEARCH_PATTERN='.*' + else + SEARCH_PATTERN="$(echo "${PATTERN}" | sed "s#\.#\\\.#g;")" fi if [ -n "$NVM_DIRS_TO_SEARCH1$NVM_DIRS_TO_SEARCH2$NVM_DIRS_TO_SEARCH3" ]; then - VERSIONS="$(command find "$NVM_DIRS_TO_SEARCH1" "$NVM_DIRS_TO_SEARCH2" "$NVM_DIRS_TO_SEARCH3" -maxdepth 1 -type d -name "$PATTERN*" \ + VERSIONS="$(command find "$NVM_DIRS_TO_SEARCH1"/* "$NVM_DIRS_TO_SEARCH2"/* "$NVM_DIRS_TO_SEARCH3"/* -name . -o -type d -prune -o -name "$PATTERN*" \ | command sed " - s#$NVM_VERSION_DIR_IOJS/#$NVM_IOJS_PREFIX-#; - \#$NVM_VERSION_DIR_IOJS# d; - s#^$NVM_DIR/##; + s#${NVM_VERSION_DIR_IOJS}/#versions/${NVM_IOJS_PREFIX}/#; + s#^${NVM_DIR}/##; + \#^[^v]# d; \#^versions\$# d; s#^versions/##; - s#^v#$NVM_NODE_PREFIX-v#; - s#^\($NVM_IOJS_PREFIX\)[-/]v#\1.v#; - s#^\($NVM_NODE_PREFIX\)[-/]v#\1.v#" \ - | command sort -t. -u -k 2.2,2n -k 3,3n -k 4,4n \ - | command sed " - s/^\($NVM_IOJS_PREFIX\)\./\1-/; - s/^$NVM_NODE_PREFIX\.//" \ + s#^v#${NVM_NODE_PREFIX}/v#; + \#${SEARCH_PATTERN}# !d; + " \ + | command sed -E "s#^([^/]+)/(.*)\$#\2.\1#;" \ + | command sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n \ + | command sed -E " + s#(.*)\.([^\.]+)\$#\2-\1#; + s#^${NVM_NODE_PREFIX}-##; + " \ )" fi From 9f5322ee846bdaf0f3aeac083f1d4688de119f3d Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 25 Jun 2016 09:42:53 -0700 Subject: [PATCH 0739/1426] v0.31.2 --- README.markdown | 8 ++++---- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.markdown b/README.markdown index 8c91956..2e0ac22 100644 --- a/README.markdown +++ b/README.markdown @@ -34,11 +34,11 @@ Homebrew installation is not supported. To install or update nvm, you can use the [install script][2] using cURL: - curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash + curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.2/install.sh | bash or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash + wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.2/install.sh | bash The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). @@ -314,7 +314,7 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh ``` apk add bash -wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | /bin/bash +wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.2/install.sh | /bin/bash ``` The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. @@ -343,7 +343,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But If setting the `default` alias does not establish the node version in new shells (i.e. `nvm current` yields `system`), ensure that the system's node PATH is set before the `nvm.sh` source line in your shell profile (see [#658](https://github.com/creationix/nvm/issues/658)) [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.31.1/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.31.2/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index a1aaa1c..459c48f 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ if [ -z "$NVM_DIR" ]; then fi nvm_latest_version() { - echo "v0.31.1" + echo "v0.31.2" } # diff --git a/nvm.sh b/nvm.sh index fa4f05e..c24572a 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2542,7 +2542,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' nvm_remote_version "$2" ;; "--version" ) - nvm_echo '0.31.1' + nvm_echo '0.31.2' ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum \ diff --git a/package.json b/package.json index 89995f2..b24279b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.31.1", + "version": "0.31.2", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From e1fdd316b71387ce01579d6595cc262e35f01a9c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 25 Jun 2016 13:27:56 -0700 Subject: [PATCH 0740/1426] [Refactor] create `nvm_grep` and remove standalone `GREP_OPTIONS` line. --- nvm.sh | 64 ++++++++++++++++++++++++++++++---------------------------- 1 file changed, 33 insertions(+), 31 deletions(-) diff --git a/nvm.sh b/nvm.sh index c24572a..7f11cdd 100644 --- a/nvm.sh +++ b/nvm.sh @@ -25,6 +25,10 @@ nvm_err() { >&2 nvm_echo "$@" } +nvm_grep() { + GREP_OPTIONS='' command grep "$@" +} + nvm_has() { type "$1" > /dev/null 2>&1 } @@ -333,7 +337,7 @@ nvm_remote_versions() { return 1 fi VERSIONS="$(nvm_echo "$(nvm_ls_remote "$PATTERN") -$(nvm_ls_remote_iojs "$PATTERN")" | command grep -v "N/A" | command sed '/^$/d')" +$(nvm_ls_remote_iojs "$PATTERN")" | nvm_grep -v "N/A" | command sed '/^$/d')" ;; esac @@ -596,7 +600,7 @@ nvm_resolve_alias() { fi if [ -n "$ALIAS_TEMP" ] \ - && command printf "$SEEN_ALIASES" | command grep -e "^$ALIAS_TEMP$" > /dev/null; then + && command printf "$SEEN_ALIASES" | nvm_grep -e "^$ALIAS_TEMP$" > /dev/null; then ALIAS="∞" break fi @@ -741,7 +745,7 @@ nvm_ls() { local ZHS_HAS_SHWORDSPLIT_UNSET ZHS_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; nvm_echo $?) + ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | nvm_grep shwordsplit > /dev/null ; nvm_echo $?) setopt shwordsplit fi @@ -775,13 +779,13 @@ nvm_ls() { fi fi - if ! [ -d "$NVM_DIRS_TO_SEARCH1" ] || ! (command ls -1qA "$NVM_DIRS_TO_SEARCH1" | command grep -q .); then + if ! [ -d "$NVM_DIRS_TO_SEARCH1" ] || ! (command ls -1qA "$NVM_DIRS_TO_SEARCH1" | nvm_grep -q .); then NVM_DIRS_TO_SEARCH1='' fi - if ! [ -d "$NVM_DIRS_TO_SEARCH2" ] || ! (command ls -1qA "$NVM_DIRS_TO_SEARCH2" | command grep -q .); then + if ! [ -d "$NVM_DIRS_TO_SEARCH2" ] || ! (command ls -1qA "$NVM_DIRS_TO_SEARCH2" | nvm_grep -q .); then NVM_DIRS_TO_SEARCH2="$NVM_DIRS_TO_SEARCH1" fi - if ! [ -d "$NVM_DIRS_TO_SEARCH3" ] || ! (command ls -1qA "$NVM_DIRS_TO_SEARCH3" | command grep -q .); then + if ! [ -d "$NVM_DIRS_TO_SEARCH3" ] || ! (command ls -1qA "$NVM_DIRS_TO_SEARCH3" | nvm_grep -q .); then NVM_DIRS_TO_SEARCH3="$NVM_DIRS_TO_SEARCH2" fi @@ -892,7 +896,7 @@ nvm_ls_remote_index_tab() { fi ZHS_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; nvm_echo $?) + ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | nvm_grep shwordsplit > /dev/null ; nvm_echo $?) setopt shwordsplit fi VERSIONS="$(nvm_download -L -s "$MIRROR/index.tab" -o - \ @@ -900,7 +904,7 @@ nvm_ls_remote_index_tab() { 1d; s/^/$PREFIX/; s/[[:blank:]].*//" \ - | command grep -w "$PATTERN" \ + | nvm_grep -w "$PATTERN" \ | $SORT_COMMAND)" if [ "$ZHS_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then unsetopt shwordsplit @@ -1038,7 +1042,7 @@ nvm_print_implicit_alias() { ZHS_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; nvm_echo $?) + ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | nvm_grep shwordsplit > /dev/null ; nvm_echo $?) setopt shwordsplit fi @@ -1047,7 +1051,7 @@ nvm_print_implicit_alias() { NVM_IOJS_VERSION="$($NVM_COMMAND)" EXIT_CODE="$?" if [ "_$EXIT_CODE" = "_0" ]; then - NVM_IOJS_VERSION="$(nvm_echo "$NVM_IOJS_VERSION" | command sed "s/^$NVM_IMPLICIT-//" | command grep -e '^v' | command cut -c2- | command cut -d . -f 1,2 | uniq | command tail -1)" + NVM_IOJS_VERSION="$(nvm_echo "$NVM_IOJS_VERSION" | command sed "s/^$NVM_IMPLICIT-//" | nvm_grep -e '^v' | command cut -c2- | command cut -d . -f 1,2 | uniq | command tail -1)" fi if [ "$ZHS_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then @@ -1073,11 +1077,11 @@ nvm_print_implicit_alias() { ZHS_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; nvm_echo $?) + ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | nvm_grep shwordsplit > /dev/null ; nvm_echo $?) setopt shwordsplit fi - LAST_TWO=$($NVM_COMMAND | command grep -e '^v' | command cut -c2- | command cut -d . -f 1,2 | uniq) + LAST_TWO=$($NVM_COMMAND | nvm_grep -e '^v' | command cut -c2- | command cut -d . -f 1,2 | uniq) if [ "$ZHS_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then unsetopt shwordsplit @@ -1092,7 +1096,7 @@ nvm_print_implicit_alias() { ZHS_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; nvm_echo $?) + ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | nvm_grep shwordsplit > /dev/null ; nvm_echo $?) setopt shwordsplit fi for MINOR in $LAST_TWO; do @@ -1182,7 +1186,7 @@ nvm_get_minor_version() { PREFIXED_VERSION="$(nvm_format_version "$VERSION")" local MINOR - MINOR="$(nvm_echo "$PREFIXED_VERSION" | command grep -e '^v' | command cut -c2- | command cut -d . -f 1,2)" + MINOR="$(nvm_echo "$PREFIXED_VERSION" | nvm_grep -e '^v' | command cut -c2- | command cut -d . -f 1,2)" if [ -z "$MINOR" ]; then nvm_err 'invalid version number! (please report this)' return 3 @@ -1254,7 +1258,7 @@ nvm_install_merged_node_binary() { if [ -n "$NVM_OS" ]; then t="$VERSION-$NVM_OS-$(nvm_get_arch)" url="$MIRROR/$VERSION/$NODE_PREFIX-${t}.tar.${compression}" - sum="$(nvm_download -L -s "$MIRROR/$VERSION/SHASUMS256.txt" -o - | command grep "${NODE_PREFIX}-${t}.tar.${compression}" | command awk '{print $1}')" + sum="$(nvm_download -L -s "$MIRROR/$VERSION/SHASUMS256.txt" -o - | nvm_grep "${NODE_PREFIX}-${t}.tar.${compression}" | command awk '{print $1}')" local tmpdir tmpdir="$NVM_DIR/bin/node-${t}" local tmptarball @@ -1264,7 +1268,7 @@ nvm_install_merged_node_binary() { nvm_echo "Downloading $url..." && \ nvm_download -L -C - --progress-bar "$url" -o "$tmptarball" || \ NVM_INSTALL_ERRORED=true - if grep '404 Not Found' "$tmptarball" >/dev/null; then + if nvm_grep '404 Not Found' "$tmptarball" >/dev/null; then NVM_INSTALL_ERRORED=true nvm_err "HTTP 404 at URL $url"; fi @@ -1328,7 +1332,7 @@ nvm_install_iojs_binary() { if nvm_binary_available "$VERSION"; then t="$VERSION-$NVM_OS-$(nvm_get_arch)" url="$MIRROR/$VERSION/$(nvm_iojs_prefix)-${t}.tar.${compression}" - sum="$(nvm_download -L -s "$MIRROR/$VERSION/SHASUMS256.txt" -o - | command grep "$(nvm_iojs_prefix)-${t}.tar.${compression}" | command awk '{print $1}')" + sum="$(nvm_download -L -s "$MIRROR/$VERSION/SHASUMS256.txt" -o - | nvm_grep "$(nvm_iojs_prefix)-${t}.tar.${compression}" | command awk '{print $1}')" local tmpdir tmpdir="$NVM_DIR/bin/iojs-${t}" local tmptarball @@ -1338,7 +1342,7 @@ nvm_install_iojs_binary() { nvm_echo "Downloading $url..." && \ nvm_download -L -C - --progress-bar "$url" -o "$tmptarball" || \ NVM_INSTALL_ERRORED=true - if grep '404 Not Found' "$tmptarball" >/dev/null; then + if nvm_grep '404 Not Found' "$tmptarball" >/dev/null; then NVM_INSTALL_ERRORED=true nvm_err "HTTP 404 at URL $url"; fi @@ -1389,7 +1393,7 @@ nvm_install_node_binary() { fi t="$VERSION-$NVM_OS-$NVM_ARCH" url="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-${t}.tar.gz" - sum=$(nvm_download -L -s "$NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt" -o - | command grep "node-${t}.tar.gz" | command awk '{print $1}') + sum=$(nvm_download -L -s "$NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt" -o - | nvm_grep "node-${t}.tar.gz" | command awk '{print $1}') local tmpdir tmpdir="$NVM_DIR/bin/node-${t}" local tmptarball @@ -1398,7 +1402,7 @@ nvm_install_node_binary() { command mkdir -p "$tmpdir" && \ nvm_download -L -C - --progress-bar "$url" -o "$tmptarball" || \ NVM_INSTALL_ERRORED=true - if grep '404 Not Found' "$tmptarball" >/dev/null; then + if nvm_grep '404 Not Found' "$tmptarball" >/dev/null; then NVM_INSTALL_ERRORED=true nvm_err "HTTP 404 at URL $url"; fi @@ -1434,7 +1438,7 @@ nvm_get_make_jobs() { NVM_OS="$(nvm_get_os)" local NVM_CPU_THREADS if [ "_$NVM_OS" = "_linux" ]; then - NVM_CPU_THREADS="$(command grep -c -E '^processor.+: [0-9]+' /proc/cpuinfo)" + NVM_CPU_THREADS="$(nvm_grep -c -E '^processor.+: [0-9]+' /proc/cpuinfo)" elif [ "_$NVM_OS" = "_freebsd" ] || [ "_$NVM_OS" = "_darwin" ]; then NVM_CPU_THREADS="$(sysctl -n hw.ncpu)" elif [ "_$NVM_OS" = "_sunos" ]; then @@ -1495,10 +1499,10 @@ nvm_install_node_source() { local tmptarball tmptarball="$tmpdir/node-$VERSION.tar.gz" - if [ "$(nvm_download -L -s -I "$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" -o - 2>&1 | command grep '200 OK')" != '' ]; then + if [ "$(nvm_download -L -s -I "$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" -o - 2>&1 | nvm_grep '200 OK')" != '' ]; then tarball="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" - sum=$(nvm_download -L -s "$NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt" -o - | command grep "node-${VERSION}.tar.gz" | command awk '{print $1}') - elif [ "$(nvm_download -L -s -I "$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" -o - | command grep '200 OK')" != '' ]; then + sum=$(nvm_download -L -s "$NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt" -o - | nvm_grep "node-${VERSION}.tar.gz" | command awk '{print $1}') + elif [ "$(nvm_download -L -s -I "$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" -o - | nvm_grep '200 OK')" != '' ]; then tarball="$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" fi @@ -1726,9 +1730,6 @@ nvm() { return fi - local GREP_OPTIONS - GREP_OPTIONS='' - # initialize local variables local VERSION local ADDITIONAL_PARAMETERS @@ -1787,7 +1788,7 @@ nvm() { local ZHS_HAS_SHWORDSPLIT_UNSET ZHS_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; nvm_echo $?) + ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | nvm_grep shwordsplit > /dev/null ; nvm_echo $?) setopt shwordsplit fi nvm_err "nvm --version: v$(nvm --version)" @@ -2029,7 +2030,7 @@ nvm() { nvm_echo "$NVM_SUCCESS_MSG" # rm any aliases that point to uninstalled version. - for ALIAS in $(command grep -l "$VERSION" "$(nvm_alias_path)/*" 2>/dev/null) + for ALIAS in $(nvm_grep -l "$VERSION" "$(nvm_alias_path)/*" 2>/dev/null) do nvm unalias "$(command basename "$ALIAS")" done @@ -2249,7 +2250,7 @@ nvm() { local ZHS_HAS_SHWORDSPLIT_UNSET ZHS_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; nvm_echo $?) + ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | nvm_grep shwordsplit > /dev/null ; nvm_echo $?) setopt shwordsplit fi if [ "_$VERSION" = "_N/A" ]; then @@ -2373,7 +2374,7 @@ nvm() { local NVM_OUTPUT NVM_OUTPUT="$(nvm_echo "$NVM_LS_REMOTE_PRE_MERGED_OUTPUT $NVM_LS_REMOTE_IOJS_OUTPUT -$NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d')" +$NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" if [ -n "$NVM_OUTPUT" ]; then nvm_print_versions "$NVM_OUTPUT" return $NVM_LS_REMOTE_EXIT_CODE || $NVM_LS_REMOTE_IOJS_EXIT_CODE @@ -2568,6 +2569,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' nvm_has_system_node nvm_has_system_iojs \ nvm_download nvm_get_latest nvm_has nvm_get_latest \ nvm_supports_source_options nvm_auto nvm_supports_xz \ + nvm_echo nvm_err nvm_grep \ nvm_has_colors nvm_process_parameters > /dev/null 2>&1 unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_DIR NVM_CD_FLAGS > /dev/null 2>&1 ;; From c3b16603c0f91c276595b360172ab0c0cfe7f9cd Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 17 Jul 2016 20:18:05 -0700 Subject: [PATCH 0741/1426] `nvm uninstall`: add `--lts` support --- nvm.sh | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/nvm.sh b/nvm.sh index 9b956c6..7005a44 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1840,6 +1840,8 @@ nvm() { nvm_echo ' --lts When installing, only select from LTS (long-term support) versions' nvm_echo ' --lts= When installing, only select from versions for a specific LTS line' nvm_echo ' nvm uninstall Uninstall a version' + nvm_echo ' nvm uninstall --lts Uninstall using automatic LTS (long-term support) alias `lts/*`, if available.' + nvm_echo ' nvm uninstall --lts= Uninstall using automatic alias for provided LTS line, if available.' nvm_echo ' nvm use [--silent] Modify PATH to use . Uses .nvmrc if available' nvm_echo ' --lts Uses automatic LTS (long-term support) alias `lts/*`, if available.' nvm_echo ' --lts= Uses automatic alias for provided LTS line, if available.' @@ -2105,22 +2107,27 @@ nvm() { return $? ;; "uninstall" ) - if [ $# -ne 2 ]; then + shift # remove "uninstall" + + if [ $# -ne 1 ]; then >&2 nvm --help return 127 fi local PATTERN - PATTERN="$2" - case "_$PATTERN" in - "_$(nvm_iojs_prefix)" | "_$(nvm_iojs_prefix)-" \ - | "_$(nvm_node_prefix)" | "_$(nvm_node_prefix)-") - VERSION="$(nvm_version "$PATTERN")" + PATTERN="${1-}" + case "${PATTERN-}" in + --lts) + VERSION="$(nvm_match_version lts/*)" + ;; + --lts=*) + VERSION="$(nvm_match_version lts/${PATTERN##--lts=})" ;; *) - VERSION="$(nvm_version "$PATTERN")" + VERSION="$(nvm_version "${PATTERN}")" ;; esac + if [ "_$VERSION" = "_$(nvm_ls_current)" ]; then if nvm_is_iojs_version "$VERSION"; then nvm_err "nvm: Cannot uninstall currently-active io.js version, $VERSION (inferred from $PATTERN)." From bcb1f0b1c7ba6f45a8a15a96d24156cb6a98f016 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 17 Jul 2016 10:54:24 -0700 Subject: [PATCH 0742/1426] `nvm ls-remote`: skip io.js lookup when LTS is set. --- nvm.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/nvm.sh b/nvm.sh index 7005a44..cd0d630 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2516,6 +2516,7 @@ nvm() { ;; --lts=*) LTS="${2##--lts=}" + NVM_FLAVOR="${NVM_NODE_PREFIX}" ;; --*) nvm_err "Unsupported option \"$2\"." From d2744014df3a5009d7c1cbd67276008543976d31 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 25 Jun 2016 17:00:19 -0700 Subject: [PATCH 0743/1426] [Tests] add some basic `nvm ls-remote` unit tests. --- .../Unit tests/mocks/nvm ls-remote iojs.txt | 41 +++ .../Unit tests/mocks/nvm ls-remote lts.txt | 18 + .../Unit tests/mocks/nvm ls-remote node.txt | 278 +++++++++++++++ test/fast/Unit tests/mocks/nvm ls-remote.txt | 319 ++++++++++++++++++ test/fast/Unit tests/nvm ls-remote | 32 ++ update_test_mocks.sh | 8 + 6 files changed, 696 insertions(+) create mode 100644 test/fast/Unit tests/mocks/nvm ls-remote iojs.txt create mode 100644 test/fast/Unit tests/mocks/nvm ls-remote lts.txt create mode 100644 test/fast/Unit tests/mocks/nvm ls-remote node.txt create mode 100644 test/fast/Unit tests/mocks/nvm ls-remote.txt create mode 100755 test/fast/Unit tests/nvm ls-remote diff --git a/test/fast/Unit tests/mocks/nvm ls-remote iojs.txt b/test/fast/Unit tests/mocks/nvm ls-remote iojs.txt new file mode 100644 index 0000000..ff70b02 --- /dev/null +++ b/test/fast/Unit tests/mocks/nvm ls-remote iojs.txt @@ -0,0 +1,41 @@ + iojs-v1.0.0 + iojs-v1.0.1 + iojs-v1.0.2 + iojs-v1.0.3 + iojs-v1.0.4 + iojs-v1.1.0 + iojs-v1.2.0 + iojs-v1.3.0 + iojs-v1.4.1 + iojs-v1.4.2 + iojs-v1.4.3 + iojs-v1.5.0 + iojs-v1.5.1 + iojs-v1.6.0 + iojs-v1.6.1 + iojs-v1.6.2 + iojs-v1.6.3 + iojs-v1.6.4 + iojs-v1.7.1 + iojs-v1.8.1 + iojs-v1.8.2 + iojs-v1.8.3 + iojs-v1.8.4 + iojs-v2.0.0 + iojs-v2.0.1 + iojs-v2.0.2 + iojs-v2.1.0 + iojs-v2.2.0 + iojs-v2.2.1 + iojs-v2.3.0 + iojs-v2.3.1 + iojs-v2.3.2 + iojs-v2.3.3 + iojs-v2.3.4 + iojs-v2.4.0 + iojs-v2.5.0 + iojs-v3.0.0 + iojs-v3.1.0 + iojs-v3.2.0 + iojs-v3.3.0 + iojs-v3.3.1 diff --git a/test/fast/Unit tests/mocks/nvm ls-remote lts.txt b/test/fast/Unit tests/mocks/nvm ls-remote lts.txt new file mode 100644 index 0000000..a6c5b91 --- /dev/null +++ b/test/fast/Unit tests/mocks/nvm ls-remote lts.txt @@ -0,0 +1,18 @@ + v4.2.0  (LTS: Argon) + v4.2.1  (LTS: Argon) + v4.2.2  (LTS: Argon) + v4.2.3  (LTS: Argon) + v4.2.4  (LTS: Argon) + v4.2.5  (LTS: Argon) + v4.2.6  (LTS: Argon) + v4.3.0  (LTS: Argon) + v4.3.1  (LTS: Argon) + v4.3.2  (LTS: Argon) + v4.4.0  (LTS: Argon) + v4.4.1  (LTS: Argon) + v4.4.2  (LTS: Argon) + v4.4.3  (LTS: Argon) + v4.4.4  (LTS: Argon) + v4.4.5  (LTS: Argon) + v4.4.6  (LTS: Argon) + v4.4.7  (Latest LTS: Argon) diff --git a/test/fast/Unit tests/mocks/nvm ls-remote node.txt b/test/fast/Unit tests/mocks/nvm ls-remote node.txt new file mode 100644 index 0000000..0b42afb --- /dev/null +++ b/test/fast/Unit tests/mocks/nvm ls-remote node.txt @@ -0,0 +1,278 @@ + v0.1.14 + v0.1.15 + v0.1.16 + v0.1.17 + v0.1.18 + v0.1.19 + v0.1.20 + v0.1.21 + v0.1.22 + v0.1.23 + v0.1.24 + v0.1.25 + v0.1.26 + v0.1.27 + v0.1.28 + v0.1.29 + v0.1.30 + v0.1.31 + v0.1.32 + v0.1.33 + v0.1.90 + v0.1.91 + v0.1.92 + v0.1.93 + v0.1.94 + v0.1.95 + v0.1.96 + v0.1.97 + v0.1.98 + v0.1.99 + v0.1.100 + v0.1.101 + v0.1.102 + v0.1.103 + v0.1.104 + v0.2.0 + v0.2.1 + v0.2.2 + v0.2.3 + v0.2.4 + v0.2.5 + v0.2.6 + v0.3.0 + v0.3.1 + v0.3.2 + v0.3.3 + v0.3.4 + v0.3.5 + v0.3.6 + v0.3.7 + v0.3.8 + v0.4.0 + v0.4.1 + v0.4.2 + v0.4.3 + v0.4.4 + v0.4.5 + v0.4.6 + v0.4.7 + v0.4.8 + v0.4.9 + v0.4.10 + v0.4.11 + v0.4.12 + v0.5.0 + v0.5.1 + v0.5.2 + v0.5.3 + v0.5.4 + v0.5.5 + v0.5.6 + v0.5.7 + v0.5.8 + v0.5.9 + v0.5.10 + v0.6.0 + v0.6.1 + v0.6.2 + v0.6.3 + v0.6.4 + v0.6.5 + v0.6.6 + v0.6.7 + v0.6.8 + v0.6.9 + v0.6.10 + v0.6.11 + v0.6.12 + v0.6.13 + v0.6.14 + v0.6.15 + v0.6.16 + v0.6.17 + v0.6.18 + v0.6.19 + v0.6.20 + v0.6.21 + v0.7.0 + v0.7.1 + v0.7.2 + v0.7.3 + v0.7.4 + v0.7.5 + v0.7.6 + v0.7.7 + v0.7.8 + v0.7.9 + v0.7.10 + v0.7.11 + v0.7.12 + v0.8.0 + v0.8.1 + v0.8.2 + v0.8.3 + v0.8.4 + v0.8.5 + v0.8.6 + v0.8.7 + v0.8.8 + v0.8.9 + v0.8.10 + v0.8.11 + v0.8.12 + v0.8.13 + v0.8.14 + v0.8.15 + v0.8.16 + v0.8.17 + v0.8.18 + v0.8.19 + v0.8.20 + v0.8.21 + v0.8.22 + v0.8.23 + v0.8.24 + v0.8.25 + v0.8.26 + v0.8.27 + v0.8.28 + v0.9.0 + v0.9.1 + v0.9.2 + v0.9.3 + v0.9.4 + v0.9.5 + v0.9.6 + v0.9.7 + v0.9.8 + v0.9.9 + v0.9.10 + v0.9.11 + v0.9.12 + v0.10.0 + v0.10.1 + v0.10.2 + v0.10.3 + v0.10.4 + v0.10.5 + v0.10.6 + v0.10.7 + v0.10.8 + v0.10.9 + v0.10.10 + v0.10.11 + v0.10.12 + v0.10.13 + v0.10.14 + v0.10.15 + v0.10.16 + v0.10.17 + v0.10.18 + v0.10.19 + v0.10.20 + v0.10.21 + v0.10.22 + v0.10.23 + v0.10.24 + v0.10.25 + v0.10.26 + v0.10.27 + v0.10.28 + v0.10.29 + v0.10.30 + v0.10.31 + v0.10.32 + v0.10.33 + v0.10.34 + v0.10.35 + v0.10.36 + v0.10.37 + v0.10.38 + v0.10.39 + v0.10.40 + v0.10.41 + v0.10.42 + v0.10.43 + v0.10.44 + v0.10.45 + v0.10.46 + v0.11.0 + v0.11.1 + v0.11.2 + v0.11.3 + v0.11.4 + v0.11.5 + v0.11.6 + v0.11.7 + v0.11.8 + v0.11.9 + v0.11.10 + v0.11.11 + v0.11.12 + v0.11.13 + v0.11.14 + v0.11.15 + v0.11.16 + v0.12.0 + v0.12.1 + v0.12.2 + v0.12.3 + v0.12.4 + v0.12.5 + v0.12.6 + v0.12.7 + v0.12.8 + v0.12.9 + v0.12.10 + v0.12.11 + v0.12.12 + v0.12.13 + v0.12.14 + v0.12.15 + v4.0.0 + v4.1.0 + v4.1.1 + v4.1.2 + v4.2.0  (LTS: Argon) + v4.2.1  (LTS: Argon) + v4.2.2  (LTS: Argon) + v4.2.3  (LTS: Argon) + v4.2.4  (LTS: Argon) + v4.2.5  (LTS: Argon) + v4.2.6  (LTS: Argon) + v4.3.0  (LTS: Argon) + v4.3.1  (LTS: Argon) + v4.3.2  (LTS: Argon) + v4.4.0  (LTS: Argon) + v4.4.1  (LTS: Argon) + v4.4.2  (LTS: Argon) + v4.4.3  (LTS: Argon) + v4.4.4  (LTS: Argon) + v4.4.5  (LTS: Argon) + v4.4.6  (LTS: Argon) + v4.4.7  (Latest LTS: Argon) + v5.0.0 + v5.1.0 + v5.1.1 + v5.2.0 + v5.3.0 + v5.4.0 + v5.4.1 + v5.5.0 + v5.6.0 + v5.7.0 + v5.7.1 + v5.8.0 + v5.9.0 + v5.9.1 + v5.10.0 + v5.10.1 + v5.11.0 + v5.11.1 + v5.12.0 + v6.0.0 + v6.1.0 + v6.2.0 + v6.2.1 + v6.2.2 diff --git a/test/fast/Unit tests/mocks/nvm ls-remote.txt b/test/fast/Unit tests/mocks/nvm ls-remote.txt new file mode 100644 index 0000000..419d691 --- /dev/null +++ b/test/fast/Unit tests/mocks/nvm ls-remote.txt @@ -0,0 +1,319 @@ + v0.1.14 + v0.1.15 + v0.1.16 + v0.1.17 + v0.1.18 + v0.1.19 + v0.1.20 + v0.1.21 + v0.1.22 + v0.1.23 + v0.1.24 + v0.1.25 + v0.1.26 + v0.1.27 + v0.1.28 + v0.1.29 + v0.1.30 + v0.1.31 + v0.1.32 + v0.1.33 + v0.1.90 + v0.1.91 + v0.1.92 + v0.1.93 + v0.1.94 + v0.1.95 + v0.1.96 + v0.1.97 + v0.1.98 + v0.1.99 + v0.1.100 + v0.1.101 + v0.1.102 + v0.1.103 + v0.1.104 + v0.2.0 + v0.2.1 + v0.2.2 + v0.2.3 + v0.2.4 + v0.2.5 + v0.2.6 + v0.3.0 + v0.3.1 + v0.3.2 + v0.3.3 + v0.3.4 + v0.3.5 + v0.3.6 + v0.3.7 + v0.3.8 + v0.4.0 + v0.4.1 + v0.4.2 + v0.4.3 + v0.4.4 + v0.4.5 + v0.4.6 + v0.4.7 + v0.4.8 + v0.4.9 + v0.4.10 + v0.4.11 + v0.4.12 + v0.5.0 + v0.5.1 + v0.5.2 + v0.5.3 + v0.5.4 + v0.5.5 + v0.5.6 + v0.5.7 + v0.5.8 + v0.5.9 + v0.5.10 + v0.6.0 + v0.6.1 + v0.6.2 + v0.6.3 + v0.6.4 + v0.6.5 + v0.6.6 + v0.6.7 + v0.6.8 + v0.6.9 + v0.6.10 + v0.6.11 + v0.6.12 + v0.6.13 + v0.6.14 + v0.6.15 + v0.6.16 + v0.6.17 + v0.6.18 + v0.6.19 + v0.6.20 + v0.6.21 + v0.7.0 + v0.7.1 + v0.7.2 + v0.7.3 + v0.7.4 + v0.7.5 + v0.7.6 + v0.7.7 + v0.7.8 + v0.7.9 + v0.7.10 + v0.7.11 + v0.7.12 + v0.8.0 + v0.8.1 + v0.8.2 + v0.8.3 + v0.8.4 + v0.8.5 + v0.8.6 + v0.8.7 + v0.8.8 + v0.8.9 + v0.8.10 + v0.8.11 + v0.8.12 + v0.8.13 + v0.8.14 + v0.8.15 + v0.8.16 + v0.8.17 + v0.8.18 + v0.8.19 + v0.8.20 + v0.8.21 + v0.8.22 + v0.8.23 + v0.8.24 + v0.8.25 + v0.8.26 + v0.8.27 + v0.8.28 + v0.9.0 + v0.9.1 + v0.9.2 + v0.9.3 + v0.9.4 + v0.9.5 + v0.9.6 + v0.9.7 + v0.9.8 + v0.9.9 + v0.9.10 + v0.9.11 + v0.9.12 + v0.10.0 + v0.10.1 + v0.10.2 + v0.10.3 + v0.10.4 + v0.10.5 + v0.10.6 + v0.10.7 + v0.10.8 + v0.10.9 + v0.10.10 + v0.10.11 + v0.10.12 + v0.10.13 + v0.10.14 + v0.10.15 + v0.10.16 + v0.10.17 + v0.10.18 + v0.10.19 + v0.10.20 + v0.10.21 + v0.10.22 + v0.10.23 + v0.10.24 + v0.10.25 + v0.10.26 + v0.10.27 + v0.10.28 + v0.10.29 + v0.10.30 + v0.10.31 + v0.10.32 + v0.10.33 + v0.10.34 + v0.10.35 + v0.10.36 + v0.10.37 + v0.10.38 + v0.10.39 + v0.10.40 + v0.10.41 + v0.10.42 + v0.10.43 + v0.10.44 + v0.10.45 + v0.10.46 + v0.11.0 + v0.11.1 + v0.11.2 + v0.11.3 + v0.11.4 + v0.11.5 + v0.11.6 + v0.11.7 + v0.11.8 + v0.11.9 + v0.11.10 + v0.11.11 + v0.11.12 + v0.11.13 + v0.11.14 + v0.11.15 + v0.11.16 + v0.12.0 + v0.12.1 + v0.12.2 + v0.12.3 + v0.12.4 + v0.12.5 + v0.12.6 + v0.12.7 + v0.12.8 + v0.12.9 + v0.12.10 + v0.12.11 + v0.12.12 + v0.12.13 + v0.12.14 + v0.12.15 + iojs-v1.0.0 + iojs-v1.0.1 + iojs-v1.0.2 + iojs-v1.0.3 + iojs-v1.0.4 + iojs-v1.1.0 + iojs-v1.2.0 + iojs-v1.3.0 + iojs-v1.4.1 + iojs-v1.4.2 + iojs-v1.4.3 + iojs-v1.5.0 + iojs-v1.5.1 + iojs-v1.6.0 + iojs-v1.6.1 + iojs-v1.6.2 + iojs-v1.6.3 + iojs-v1.6.4 + iojs-v1.7.1 + iojs-v1.8.1 + iojs-v1.8.2 + iojs-v1.8.3 + iojs-v1.8.4 + iojs-v2.0.0 + iojs-v2.0.1 + iojs-v2.0.2 + iojs-v2.1.0 + iojs-v2.2.0 + iojs-v2.2.1 + iojs-v2.3.0 + iojs-v2.3.1 + iojs-v2.3.2 + iojs-v2.3.3 + iojs-v2.3.4 + iojs-v2.4.0 + iojs-v2.5.0 + iojs-v3.0.0 + iojs-v3.1.0 + iojs-v3.2.0 + iojs-v3.3.0 + iojs-v3.3.1 + v4.0.0 + v4.1.0 + v4.1.1 + v4.1.2 + v4.2.0  (LTS: Argon) + v4.2.1  (LTS: Argon) + v4.2.2  (LTS: Argon) + v4.2.3  (LTS: Argon) + v4.2.4  (LTS: Argon) + v4.2.5  (LTS: Argon) + v4.2.6  (LTS: Argon) + v4.3.0  (LTS: Argon) + v4.3.1  (LTS: Argon) + v4.3.2  (LTS: Argon) + v4.4.0  (LTS: Argon) + v4.4.1  (LTS: Argon) + v4.4.2  (LTS: Argon) + v4.4.3  (LTS: Argon) + v4.4.4  (LTS: Argon) + v4.4.5  (LTS: Argon) + v4.4.6  (LTS: Argon) + v4.4.7  (Latest LTS: Argon) + v5.0.0 + v5.1.0 + v5.1.1 + v5.2.0 + v5.3.0 + v5.4.0 + v5.4.1 + v5.5.0 + v5.6.0 + v5.7.0 + v5.7.1 + v5.8.0 + v5.9.0 + v5.9.1 + v5.10.0 + v5.10.1 + v5.11.0 + v5.11.1 + v5.12.0 + v6.0.0 + v6.1.0 + v6.2.0 + v6.2.1 + v6.2.2 diff --git a/test/fast/Unit tests/nvm ls-remote b/test/fast/Unit tests/nvm ls-remote new file mode 100755 index 0000000..449d4af --- /dev/null +++ b/test/fast/Unit tests/nvm ls-remote @@ -0,0 +1,32 @@ +#!/bin/sh + +set -ex + +die () { echo $@ ; cleanup ; exit 1; } + +cleanup() { + unset -f nvm_download nvm_ls_remote nvm_ls_remote_iojs +} + +. ../../../nvm.sh + +nvm deactivate 2>/dev/null || die 'unable to deactivate' + +. ../../common.sh + +REMOTE="$PWD/mocks/nvm_ls_remote.txt" +nvm_ls_remote() { + cat "$REMOTE" +} +REMOTE_IOJS="$PWD/mocks/nvm_ls_remote_iojs.txt" +nvm_ls_remote_iojs() { + cat "$REMOTE_IOJS" +} + +EXPECTED_OUTPUT_PATH="$PWD/mocks/nvm ls-remote.txt" + +OUTPUT="$(nvm ls-remote | sed 's/[ \t]*$//')" +EXPECTED_OUTPUT="$(cat "$EXPECTED_OUTPUT_PATH" | sed 's/[ \t]*$//' )" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "bare nvm ls-remote did not output expected sorted versions; got $(echo ">$OUTPUT<") expected $(echo ">$EXPECTED_OUTPUT<")" + +cleanup diff --git a/update_test_mocks.sh b/update_test_mocks.sh index 571b870..312a534 100755 --- a/update_test_mocks.sh +++ b/update_test_mocks.sh @@ -10,6 +10,10 @@ echo "creating $MOCKS_DIR" mkdir -p "$MOCKS_DIR" . "$NVM_DIR/nvm.sh" --no-use +nvm deactivate 2> /dev/null +nvm_is_version_installed() { + return 1 +} nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote.txt" nvm_ls_remote_iojs > "$MOCKS_DIR/nvm_ls_remote_iojs.txt" @@ -17,5 +21,9 @@ NVM_LTS=* nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote LTS.txt" NVM_LTS=argon nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote LTS argon.txt" nvm_download -L -s "$NVM_NODEJS_ORG_MIRROR/index.tab" -o - > "$MOCKS_DIR/nodejs.org-dist-index.tab" nvm_download -L -s "$NVM_IOJS_ORG_MIRROR/index.tab" -o - > "$MOCKS_DIR/iojs.org-dist-index.tab" +nvm ls-remote > "$MOCKS_DIR/nvm ls-remote.txt" +nvm ls-remote --lts > "$MOCKS_DIR/nvm ls-remote lts.txt" +nvm ls-remote node > "$MOCKS_DIR/nvm ls-remote node.txt" +nvm ls-remote iojs > "$MOCKS_DIR/nvm ls-remote iojs.txt" echo "done! Don't forget to git commit them." From ce60b6c44a2d624f4e42db942fbf109fc94742fd Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 25 Jun 2016 17:03:46 -0700 Subject: [PATCH 0744/1426] [Tests] update test mocks --- .../fast/Unit tests/mocks/nodejs.org-dist-index.tab | 13 +++++++++++++ test/fast/Unit tests/mocks/nvm_ls_remote.txt | 13 +++++++++++++ test/fast/Unit tests/nvm_ls_remote | 4 ++-- update_test_mocks.sh | 4 ++-- 4 files changed, 30 insertions(+), 4 deletions(-) diff --git a/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab b/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab index c7c6bd3..0b73305 100644 --- a/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab +++ b/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab @@ -1,5 +1,11 @@ version date files npm v8 uv zlib openssl modules lts +v6.2.2 2016-06-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v6.2.1 2016-06-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v6.2.0 2016-05-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - +v6.1.0 2016-05-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - v6.0.0 2016-04-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - +v5.12.0 2016-06-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.8.6 4.6.85.32 1.8.0 1.2.8 1.0.2h 47 - +v5.11.1 2016-05-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - v5.11.0 2016-04-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - v5.10.1 2016-04-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - v5.10.0 2016-04-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - @@ -17,6 +23,9 @@ v5.2.0 2015-12-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux- v5.1.1 2015-12-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 - v5.1.0 2015-11-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2d 47 - v5.0.0 2015-10-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.6 4.6.85.28 1.7.5 1.2.8 1.0.2d 47 - +v4.4.6 2016-06-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.15.5 4.5.103.36 1.8.0 1.2.8 1.0.2h 46 Argon +v4.4.5 2016-05-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.15.5 4.5.103.35 1.8.0 1.2.8 1.0.2h 46 Argon +v4.4.4 2016-05-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.15.1 4.5.103.35 1.8.0 1.2.8 1.0.2h 46 Argon v4.4.3 2016-04-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.15.1 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon v4.4.2 2016-04-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.15.0 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon v4.4.1 2016-03-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.20 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon @@ -35,6 +44,8 @@ v4.1.2 2015-10-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux- v4.1.1 2015-09-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.4 4.5.103.33 1.7.4 1.2.8 1.0.2d 46 - v4.1.0 2015-09-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.3 4.5.103.33 1.7.4 1.2.8 1.0.2d 46 - v4.0.0 2015-09-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.2 4.5.103.30 1.7.3 1.2.8 1.0.2d 46 - +v0.12.15 2016-06-23 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.28.71.19 1.6.1 1.2.8 1.0.1t 14 - +v0.12.14 2016-05-06 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.28.71.19 1.6.1 1.2.8 1.0.1t 14 - v0.12.13 2016-03-31 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.0 3.28.71.19 1.6.1 1.2.8 1.0.1s 14 - v0.12.12 2016-03-08 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.14.9 3.28.71.19 1.6.1 1.2.8 1.0.1s 14 - v0.12.11 2016-03-03 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.14.9 3.28.71.19 1.6.1 1.2.8 1.0.1s 14 - @@ -66,6 +77,8 @@ v0.11.3 2013-06-26 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,s v0.11.2 2013-05-13 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.21 3.19.0.0 0.11.2 1.2.3 1.0.1e 0x000C - v0.11.1 2013-04-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.18 3.18.0.0 0.11.1 1.2.3 1.0.1e 0x000C - v0.11.0 2013-03-28 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.15 3.17.13.0 0.10.3 1.2.3 1.0.1e 0x000C - +v0.10.46 2016-06-23 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.14.5.9 0.10.37 1.2.8 1.0.1t 11 - +v0.10.45 2016-05-06 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.14.5.9 0.10.36 1.2.8 1.0.1t 11 - v0.10.44 2016-03-31 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.0 3.14.5.9 0.10.36 1.2.8 1.0.1s 11 - v0.10.43 2016-03-03 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.29 3.14.5.9 0.10.36 1.2.8 1.0.1s 11 - v0.10.42 2016-02-09 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.29 3.14.5.9 0.10.36 1.2.8 1.0.1r 11 - diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote.txt b/test/fast/Unit tests/mocks/nvm_ls_remote.txt index a46cb95..8b78059 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote.txt @@ -195,6 +195,8 @@ v0.10.41 v0.10.42 v0.10.43 v0.10.44 +v0.10.45 +v0.10.46 v0.11.0 v0.11.1 v0.11.2 @@ -226,6 +228,8 @@ v0.12.10 v0.12.11 v0.12.12 v0.12.13 +v0.12.14 +v0.12.15 v4.0.0 v4.1.0 v4.1.1 @@ -244,6 +248,9 @@ v4.4.0 v4.4.1 v4.4.2 v4.4.3 +v4.4.4 +v4.4.5 +v4.4.6 v5.0.0 v5.1.0 v5.1.1 @@ -261,4 +268,10 @@ v5.9.1 v5.10.0 v5.10.1 v5.11.0 +v5.11.1 +v5.12.0 v6.0.0 +v6.1.0 +v6.2.0 +v6.2.1 +v6.2.2 diff --git a/test/fast/Unit tests/nvm_ls_remote b/test/fast/Unit tests/nvm_ls_remote index d8f7d3d..c824dd4 100755 --- a/test/fast/Unit tests/nvm_ls_remote +++ b/test/fast/Unit tests/nvm_ls_remote @@ -40,7 +40,7 @@ v0.3.8" # Sanity checks OUTPUT="$(nvm_print_implicit_alias remote stable)" -EXPECTED_OUTPUT="6.0" +EXPECTED_OUTPUT="6.2" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_print_implicit_alias remote stable did not output $EXPECTED_OUTPUT; got $OUTPUT" OUTPUT="$(nvm_print_implicit_alias remote unstable)" @@ -48,7 +48,7 @@ EXPECTED_OUTPUT="0.11" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_print_implicit_alias remote unstable did not output $EXPECTED_OUTPUT; got $OUTPUT" OUTPUT="$(nvm_ls_remote stable)" -EXPECTED_OUTPUT="v6.0.0" +EXPECTED_OUTPUT="v6.2.2" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote stable did not output $EXPECTED_OUTPUT; got $OUTPUT" OUTPUT="$(nvm_ls_remote unstable)" diff --git a/update_test_mocks.sh b/update_test_mocks.sh index 10eaed6..faaf028 100755 --- a/update_test_mocks.sh +++ b/update_test_mocks.sh @@ -7,9 +7,9 @@ echo 'Updating test mocks...' MOCKS_DIR="$PWD/test/fast/Unit tests/mocks" echo "creating $MOCKS_DIR" -mkdir -p MOCKS_DIR +mkdir -p "$MOCKS_DIR" -. "$NVM_DIR/nvm.sh" +. "$NVM_DIR/nvm.sh" --no-use nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote.txt" nvm_ls_remote_iojs > "$MOCKS_DIR/nvm_ls_remote_iojs.txt" From e6606458f7e9c30b3650b25054cd59725b18e051 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 26 Jun 2016 13:01:12 -0700 Subject: [PATCH 0745/1426] [Tests] add `nvm version-remote` unit tests. --- test/fast/Unit tests/nvm version-remote | 43 +++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100755 test/fast/Unit tests/nvm version-remote diff --git a/test/fast/Unit tests/nvm version-remote b/test/fast/Unit tests/nvm version-remote new file mode 100755 index 0000000..1cb414b --- /dev/null +++ b/test/fast/Unit tests/nvm version-remote @@ -0,0 +1,43 @@ +#!/bin/sh + +set -ex + +die () { echo $@ ; cleanup ; exit 1; } + +cleanup() { + unset -f nvm_remote_version +} + +. ../../../nvm.sh + +. ../../common.sh + +nvm_remote_version() { + echo "NVM_VERSION_ONLY:${NVM_VERSION_ONLY-},NVM_LTS:${NVM_LTS-},PATTERN:${PATTERN-}" +} + +OUTPUT="$(nvm version-remote foo)" +EXPECTED_OUTPUT='NVM_VERSION_ONLY:true,NVM_LTS:,PATTERN:foo' +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "\`nvm version-remote foo\` called nvm_remote_version with >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<" + +OUTPUT="$(nvm version-remote --lts foo)" +EXPECTED_OUTPUT='NVM_VERSION_ONLY:true,NVM_LTS:*,PATTERN:foo' +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "\`nvm version-remote --lts foo\` called nvm_remote_version with >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<" + +OUTPUT="$(nvm version-remote foo --lts)" +EXPECTED_OUTPUT='NVM_VERSION_ONLY:true,NVM_LTS:*,PATTERN:foo' +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "\`nvm version-remote foo --lts\` called nvm_remote_version with >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<" + +OUTPUT="$(nvm version-remote --lts=argon foo)" +EXPECTED_OUTPUT='NVM_VERSION_ONLY:true,NVM_LTS:argon,PATTERN:foo' +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "\`nvm version-remote --lts=argon foo\` called nvm_remote_version with >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<" + +set +ex # needed for stderr +OUTPUT="$(nvm version-remote --foo bar 2>&1)" +set -ex +EXPECTED_OUTPUT='Unsupported option "--foo".' +EXIT_CODE="$(nvm version-remote --foo bar >/dev/null 2>&1 && echo $? || echo $?)" +[ "${EXIT_CODE}" = 55 ] || die "\`nvm version-remote --foo bar\` did not exit with code 55, got >${EXIT_CODE}<" +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "\`nvm version-remote --foo bar\` errored with >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<" + +cleanup From 655830eb58e4329da63ae6ca7dd360fbfab3b9b7 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 26 Jun 2016 13:57:01 -0700 Subject: [PATCH 0746/1426] [Tests] `nvm install --lts`: add tests --- test/installation_node/install LTS | 31 +++++++++++++++++++++++++++++ test/installation_node/teardown_dir | 1 + 2 files changed, 32 insertions(+) create mode 100755 test/installation_node/install LTS diff --git a/test/installation_node/install LTS b/test/installation_node/install LTS new file mode 100755 index 0000000..86aa33d --- /dev/null +++ b/test/installation_node/install LTS @@ -0,0 +1,31 @@ +#!/bin/sh + +set -ex + +die () { echo $@ ; exit 1; } + +. ../../nvm.sh + +nvm unalias default >/dev/null 2>&1 || die 'unable to unalias default' + +set +ex # needed for stderr +OUTPUT="$(nvm install --lts 3 2>&1)" +set -ex +EXIT_CODE="$(nvm install --lts 3 >/dev/null 2>&1 && echo $? || echo $?)" +EXPECTED_OUTPUT="Version '3' (with LTS filter) not found - try \`nvm ls-remote --lts\` to browse available versions." +[ "${EXIT_CODE}" = 3 ] || die "\`nvm install --lts 3\` did not exit with 3, got >${EXIT_CODE}<" +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "\`nvm install --lts 3\` output >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<" + +set +ex # needed for stderr +OUTPUT="$(nvm install --lts=argon 3 2>&1)" +set -ex +EXIT_CODE="$(nvm install --lts=argon 3 >/dev/null 2>&1 && echo $? || echo $?)" +EXPECTED_OUTPUT="Version '3' (with LTS filter 'argon') not found - try \`nvm ls-remote --lts=argon\` to browse available versions." +[ "${EXIT_CODE}" = 3 ] || die "\`nvm install --lts=argon 3\` did not exit with 3, got >${EXIT_CODE}<" +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "\`nvm install --lts=argon 3\` output >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<" + +set +e # TODO: fix +nvm install --lts 4.2.2 || die 'nvm install --lts 4.2.2 failed' +set -e + +[ "$(nvm current)" = "v4.2.2" ] || die "v4.2.2 not current, got $(nvm_current)" diff --git a/test/installation_node/teardown_dir b/test/installation_node/teardown_dir index 941ca99..a37d0e6 100755 --- a/test/installation_node/teardown_dir +++ b/test/installation_node/teardown_dir @@ -3,6 +3,7 @@ . ../../nvm.sh nvm deactivate nvm uninstall v0.10.7 +nvm uninstall v4.2.2 if [ -f ".nvmrc" ]; then rm .nvmrc From f0668fd57714979c6bb7747a495e24c4428ec7ec Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 26 Jun 2016 15:11:37 -0700 Subject: [PATCH 0747/1426] [Tests] `nvm alias --lts`: add tests --- ...m alias\" should ensure LTS alias dir exists" | 16 ++++++++++++++++ test/fast/Aliases/lts/setup_dir | 10 ++++++++++ test/fast/Aliases/lts/teardown_dir | 10 ++++++++++ 3 files changed, 36 insertions(+) create mode 100755 "test/fast/Aliases/lts/\"nvm alias\" should ensure LTS alias dir exists" create mode 100755 test/fast/Aliases/lts/setup_dir create mode 100755 test/fast/Aliases/lts/teardown_dir diff --git "a/test/fast/Aliases/lts/\"nvm alias\" should ensure LTS alias dir exists" "b/test/fast/Aliases/lts/\"nvm alias\" should ensure LTS alias dir exists" new file mode 100755 index 0000000..eefcf98 --- /dev/null +++ "b/test/fast/Aliases/lts/\"nvm alias\" should ensure LTS alias dir exists" @@ -0,0 +1,16 @@ +#!/bin/sh + +set -ex + +. ../../../../nvm.sh +. ../../../common.sh + +LTS_ALIAS_PATH="$(nvm_alias_path)/lts" + +die () { echo $@ ; exit 1; } + +[ ! -d "${LTS_ALIAS_PATH}" ] || die "'${LTS_ALIAS_PATH}' exists and should not" + +nvm alias >/dev/null 2>&1 + +[ -d "${LTS_ALIAS_PATH}" ] || die "'${LTS_ALIAS_PATH}' does not exist and should" diff --git a/test/fast/Aliases/lts/setup_dir b/test/fast/Aliases/lts/setup_dir new file mode 100755 index 0000000..6a99acf --- /dev/null +++ b/test/fast/Aliases/lts/setup_dir @@ -0,0 +1,10 @@ +#!/bin/sh + +. ../../../../nvm.sh + +LTS_ALIAS_PATH="$(nvm_alias_path)/lts" + +if [ -d "${LTS_ALIAS_PATH}" ]; then + mv "${LTS_ALIAS_PATH}" "${LTS_ALIAS_PATH}.bak" + rm -rf "${LTS_ALIAS_PATH}" +fi diff --git a/test/fast/Aliases/lts/teardown_dir b/test/fast/Aliases/lts/teardown_dir new file mode 100755 index 0000000..a5200ef --- /dev/null +++ b/test/fast/Aliases/lts/teardown_dir @@ -0,0 +1,10 @@ +#!/bin/sh + +. ../../../../nvm.sh + +LTS_ALIAS_PATH="$(nvm_alias_path)/lts" + +if [ -d "${LTS_ALIAS_PATH}.bak" ]; then + rm -rf "${LTS_ALIAS_PATH}" + mv "${LTS_ALIAS_PATH}.bak" "${LTS_ALIAS_PATH}" +fi From 73aa35f508a386e7a9e0268594e47e0eb59516db Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 26 Jun 2016 15:52:26 -0700 Subject: [PATCH 0748/1426] [Tests] use `$NVM_DIR` instead of relative paths --- ... instead of implicit aliases when present" | 20 +++++------ ....0.2\" should display only version 0.0.2." | 9 +++-- ....0.2\" should display only version 0.0.2." | 6 ++-- ...0.2\" should display only 0.2.x versions." | 8 ++--- ...uld return the appropriate implicit alias" | 6 ++-- ...hould include \"system\" when appropriate" | 12 +++---- ...\" should display all installed versions." | 20 +++++------ ...ing \"nvm ls\" should filter out \".nvm\"" | 6 ++-- ...\"nvm ls\" should filter out \"versions\"" | 8 ++--- ...hould include \"system\" when appropriate" | 12 +++---- ...st versions in the \"versions\" directory" | 6 ++-- ...vx.x.x should only list a matched version" | 4 +-- ...-packages-from\" requires a valid version" | 7 ++-- ...create and change the \"current\" symlink" | 24 +++++++------- test/fast/Unit tests/nvm_has_system_iojs | 13 ++++---- test/fast/Unit tests/nvm_has_system_node | 16 ++++----- .../nvm_print_implicit_alias success | 33 +++++++++---------- .../install already installed uses it | 5 ++- test/installation_iojs/install from binary | 7 ++-- ...nstall two versions and use the latest one | 9 +++-- ...ll version specified in .nvmrc from binary | 16 ++++----- .../install while reinstalling packages | 9 +++-- test/installation_iojs/nvm install v1 works | 3 +- .../install already installed uses it | 5 ++- ...nstall two versions and use the latest one | 9 +++-- .../install while reinstalling packages | 9 +++-- test/slow/nvm use/setup_dir | 6 ++-- 27 files changed, 137 insertions(+), 151 deletions(-) diff --git "a/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" "b/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" index 45346bd..050baf6 100755 --- "a/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" +++ "b/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" @@ -5,18 +5,18 @@ die () { echo $@ ; cleanup ; exit 1; } cleanup () { - rm -rf ../../../alias/stable - rm -rf ../../../alias/unstable - rm -rf ../../../alias/node - rm -rf ../../../alias/iojs - rm -rf ../../../v0.8.1 - rm -rf ../../../v0.9.1 - rm -rf ../../../versions/io.js/v0.2.1 + rm -rf "$(nvm_alias_path)/stable" + rm -rf "$(nvm_alias_path)/unstable" + rm -rf "$(nvm_alias_path)/node" + rm -rf "$(nvm_alias_path)/iojs" + rm -rf "${NVM_DIR}/v0.8.1" + rm -rf "${NVM_DIR}/v0.9.1" + rm -rf "${NVM_DIR}/versions/io.js/v0.2.1" } -mkdir ../../../v0.8.1 -mkdir ../../../v0.9.1 -mkdir -p ../../../versions/io.js/v0.2.1 +mkdir "${NVM_DIR}/v0.8.1" +mkdir "${NVM_DIR}/v0.9.1" +mkdir -p "${NVM_DIR}/versions/io.js/v0.2.1" EXPECTED_STABLE="$(nvm_print_implicit_alias local stable)" STABLE_VERSION="$(nvm_version "$EXPECTED_STABLE")" diff --git "a/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." "b/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." index 333782e..3ead43e 100755 --- "a/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." +++ "b/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." @@ -1,11 +1,11 @@ #!/bin/sh -mkdir -p ../../../v0.0.2 -mkdir -p ../../../v0.0.20 -mkdir -p ../../../versions/node/v0.12.0 - . ../../../nvm.sh +mkdir -p "${NVM_DIR}/v0.0.2" +mkdir -p "${NVM_DIR}/v0.0.20" +mkdir -p "${NVM_DIR}/versions/node/v0.12.0" + die () { echo $@ ; exit 1; } # The result should contain only the appropriate version numbers. @@ -24,4 +24,3 @@ nvm which 0.12.0 || die "v0.0.20 not found" NVM_BIN="$(nvm which 0.12.0)" [ "_$NVM_BIN" = "_$(nvm_version_path v0.12.0)/bin/node" ] \ || die "'nvm which 0.12.0' did not contain the correct path: got '$NVM_BIN'" - diff --git "a/test/fast/Listing versions/Running \"nvm ls 0.0.2\" should display only version 0.0.2." "b/test/fast/Listing versions/Running \"nvm ls 0.0.2\" should display only version 0.0.2." index 45a2d1a..92c59bc 100755 --- "a/test/fast/Listing versions/Running \"nvm ls 0.0.2\" should display only version 0.0.2." +++ "b/test/fast/Listing versions/Running \"nvm ls 0.0.2\" should display only version 0.0.2." @@ -1,10 +1,10 @@ #!/bin/sh -mkdir ../../../v0.0.2 -mkdir ../../../v0.0.20 - . ../../../nvm.sh +mkdir "${NVM_DIR}/v0.0.2" +mkdir "${NVM_DIR}/v0.0.20" + die () { echo $@ ; exit 1; } # The result should contain only the appropriate version numbers. diff --git "a/test/fast/Listing versions/Running \"nvm ls 0.2\" should display only 0.2.x versions." "b/test/fast/Listing versions/Running \"nvm ls 0.2\" should display only 0.2.x versions." index 8889f09..8a6630d 100755 --- "a/test/fast/Listing versions/Running \"nvm ls 0.2\" should display only 0.2.x versions." +++ "b/test/fast/Listing versions/Running \"nvm ls 0.2\" should display only 0.2.x versions." @@ -1,11 +1,11 @@ #!/bin/sh -mkdir ../../../v0.1.3 -mkdir ../../../v0.2.3 -mkdir ../../../v0.20.3 - . ../../../nvm.sh +mkdir "${NVM_DIR}/v0.1.3" +mkdir "${NVM_DIR}/v0.2.3" +mkdir "${NVM_DIR}/v0.20.3" + die () { echo $@ ; exit 1; } # The result should contain only the appropriate version numbers. diff --git "a/test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" "b/test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" index 79051bd..195f197 100755 --- "a/test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" +++ "b/test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" @@ -4,8 +4,8 @@ die () { echo $@ ; exit 1; } -mkdir ../../../v0.2.3 -mkdir ../../../v0.3.3 +mkdir "${NVM_DIR}/v0.2.3" +mkdir "${NVM_DIR}/v0.3.3" EXPECTED_STABLE="$(nvm_print_implicit_alias local stable)" STABLE_VERSION="$(nvm_version "$EXPECTED_STABLE")" @@ -19,7 +19,7 @@ nvm ls stable | \grep "$STABLE_VERSION" >/dev/null \ nvm ls unstable | \grep "$UNSTABLE_VERSION" >/dev/null \ || die "expected 'nvm ls unstable' to give $UNSTABLE_VERSION, got $(nvm ls unstable)" -mkdir ../../../v0.1.2 +mkdir "${NVM_DIR}/v0.1.2" nvm alias stable 0.1 nvm ls stable | \grep -v "$STABLE_VERSION" >/dev/null \ diff --git "a/test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" "b/test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" index d24cb3c..16b4308 100755 --- "a/test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" +++ "b/test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" @@ -4,12 +4,12 @@ die () { echo $@ ; exit 1; } . ../../../nvm.sh -mkdir -p ../../../v0.0.1 -mkdir -p ../../../v0.0.3 -mkdir -p ../../../v0.0.9 -mkdir -p ../../../v0.3.1 -mkdir -p ../../../v0.3.3 -mkdir -p ../../../v0.3.9 +mkdir -p "${NVM_DIR}/v0.0.1" +mkdir -p "${NVM_DIR}/v0.0.3" +mkdir -p "${NVM_DIR}/v0.0.9" +mkdir -p "${NVM_DIR}/v0.3.1" +mkdir -p "${NVM_DIR}/v0.3.3" +mkdir -p "${NVM_DIR}/v0.3.9" nvm_has_system_node() { return 0; } nvm ls system | grep system 2>&1 > /dev/null diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." "b/test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." index e7cc3f7..d8ee316 100755 --- "a/test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." +++ "b/test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." @@ -2,16 +2,16 @@ . ../../../nvm.sh -mkdir ../../../v0.0.1 -mkdir ../../../v0.0.3 -mkdir ../../../v0.0.9 -mkdir ../../../v0.3.1 -mkdir ../../../v0.3.3 -mkdir ../../../v0.3.9 -mkdir -p ../../../versions/node/v0.12.87 -mkdir -p ../../../versions/node/v0.12.9 -mkdir -p ../../../versions/io.js/v0.1.2 -mkdir -p ../../../versions/io.js/v0.10.2 +mkdir "${NVM_DIR}/v0.0.1" +mkdir "${NVM_DIR}/v0.0.3" +mkdir "${NVM_DIR}/v0.0.9" +mkdir "${NVM_DIR}/v0.3.1" +mkdir "${NVM_DIR}/v0.3.3" +mkdir "${NVM_DIR}/v0.3.9" +mkdir -p "${NVM_DIR}/versions/node/v0.12.87" +mkdir -p "${NVM_DIR}/versions/node/v0.12.9" +mkdir -p "${NVM_DIR}/versions/io.js/v0.1.2" +mkdir -p "${NVM_DIR}/versions/io.js/v0.10.2" # The result should contain the version numbers. nvm ls | grep v0.0.1 >/dev/null && diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should filter out \".nvm\"" "b/test/fast/Listing versions/Running \"nvm ls\" should filter out \".nvm\"" index d01aa7a..a1d1f5b 100755 --- "a/test/fast/Listing versions/Running \"nvm ls\" should filter out \".nvm\"" +++ "b/test/fast/Listing versions/Running \"nvm ls\" should filter out \".nvm\"" @@ -1,9 +1,9 @@ #!/bin/sh -mkdir ../../../v0.1.3 -mkdir ../../../v0.2.3 - . ../../../nvm.sh +mkdir "${NVM_DIR}/v0.1.3" +mkdir "${NVM_DIR}/v0.2.3" + [ -z `nvm ls | grep '^ *\.'` ] # The result should contain only the appropriate version numbers. diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" "b/test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" index d63066d..1e8183e 100755 --- "a/test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" +++ "b/test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" @@ -1,10 +1,10 @@ #!/bin/sh -mkdir ../../../v0.1.3 -mkdir ../../../v0.2.3 -mkdir -p ../../../versions/node - . ../../../nvm.sh +mkdir "${NVM_DIR}/v0.1.3" +mkdir "${NVM_DIR}/v0.2.3" +mkdir -p "${NVM_DIR}/versions/node" + [ -z "$(nvm ls | \grep 'versions')" ] # The result should contain only the appropriate version numbers. diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should include \"system\" when appropriate" "b/test/fast/Listing versions/Running \"nvm ls\" should include \"system\" when appropriate" index e8554f0..a5a5514 100755 --- "a/test/fast/Listing versions/Running \"nvm ls\" should include \"system\" when appropriate" +++ "b/test/fast/Listing versions/Running \"nvm ls\" should include \"system\" when appropriate" @@ -4,12 +4,12 @@ die () { echo $@ ; exit 1; } . ../../../nvm.sh -mkdir -p ../../../v0.0.1 -mkdir -p ../../../v0.0.3 -mkdir -p ../../../v0.0.9 -mkdir -p ../../../v0.3.1 -mkdir -p ../../../v0.3.3 -mkdir -p ../../../v0.3.9 +mkdir -p "${NVM_DIR}/v0.0.1" +mkdir -p "${NVM_DIR}/v0.0.3" +mkdir -p "${NVM_DIR}/v0.0.9" +mkdir -p "${NVM_DIR}/v0.3.1" +mkdir -p "${NVM_DIR}/v0.3.3" +mkdir -p "${NVM_DIR}/v0.3.9" nvm_has_system_node() { return 0; } nvm ls | grep system 2>&1 > /dev/null diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" "b/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" index 488e991..62492d2 100755 --- "a/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" +++ "b/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" @@ -2,10 +2,10 @@ die () { echo $@ ; exit 1; } -mkdir -p ../../../versions/node/v0.12.1 -mkdir ../../../v0.1.3 - . ../../../nvm.sh +mkdir -p "${NVM_DIR}/versions/node/v0.12.1" +mkdir "${NVM_DIR}/v0.1.3" + nvm ls 0.12 | grep v0.12.1 || die '"nvm ls" did not list a version in the versions/ directory' nvm ls 0.1 | grep v0.1.3 || die '"nvm ls" did not list a version not in the versions/ directory' diff --git "a/test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" "b/test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" index eeebea5..24b3db4 100755 --- "a/test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" +++ "b/test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" @@ -1,9 +1,9 @@ #!/bin/sh -mkdir ../../../v0.1.2 - . ../../../nvm.sh +mkdir "${NVM_DIR}/v0.1.2" + nvm ls v0.1 | grep v0.1.2 && nvm ls v0.1.2 | grep v0.1.2 && nvm ls v0.1. | grep v0.1.2 && diff --git "a/test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" "b/test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" index 00b6bc6..c6d2c33 100755 --- "a/test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" +++ "b/test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" @@ -2,13 +2,13 @@ die () { echo $@ ; cleanup ; exit 1; } cleanup () { - rm -rf ../../v0.10.4 + rm -rf "${NVM_DIR}/v0.10.4" } -mkdir ../../v0.10.4 - . ../../nvm.sh +mkdir "${NVM_DIR}/v0.10.4" + nvm deactivate >/dev/null 2>&1 INSTALL_ERROR_MSG="$(nvm install v0.10.5 --reinstall-packages-from=0.11 2>&1)" @@ -29,3 +29,4 @@ INSTALL_EXIT_CODE="$(nvm install v0.10.5 --reinstall-packages-from=0.10.5 >/dev/ [ "~$INSTALL_EXIT_CODE" = "~4" ] \ || die ""nvm install --reinstall-packages-from" should exit with code 4 when given the same version, got $INSTALL_EXIT_CODE" +cleanup diff --git "a/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" "b/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" index fcc4acb..8ddaedc 100755 --- "a/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" +++ "b/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" @@ -3,31 +3,31 @@ export NVM_SYMLINK_CURRENT=true . ../../nvm.sh -rm -rf ../../v0.10.29 -mkdir ../../v0.10.29 +rm -rf "${NVM_DIR}/v0.10.29" +mkdir "${NVM_DIR}/v0.10.29" nvm use 0.10.29 -rmdir ../../v0.10.29 +rmdir "${NVM_DIR}/v0.10.29" -if [ ! -L ../../current ];then +if [ ! -L "${NVM_DIR}/current" ];then echo "Expected 'current' symlink to be created!" exit 1 fi -oldLink="$(readlink ../../current)" +oldLink="$(readlink "${NVM_DIR}/current")" -if [ "$(basename $oldLink)" != 'v0.10.29' ];then - echo "Expected 'current' to point to v0.10.29 but was $oldLink" +if [ "$(basename "${oldLink}")" != 'v0.10.29' ];then + echo "Expected 'current' to point to v0.10.29 but was ${oldLink}" exit 1 fi -rm -rf ../../v0.11.13 -mkdir ../../v0.11.13 +rm -rf "${NVM_DIR}/v0.11.13" +mkdir "${NVM_DIR}/v0.11.13" nvm use 0.11.13 -rmdir ../../v0.11.13 +rmdir "${NVM_DIR}/v0.11.13" -newLink="$(readlink ../../current)" +newLink="$(readlink "${NVM_DIR}/current")" -if [ "$(basename $newLink)" != 'v0.11.13' ];then +if [ "$(basename "${newLink}")" != 'v0.11.13' ];then echo "Expected 'current' to point to v0.11.13 but was $newLink" exit 1 fi diff --git a/test/fast/Unit tests/nvm_has_system_iojs b/test/fast/Unit tests/nvm_has_system_iojs index bb58da6..58e858f 100755 --- a/test/fast/Unit tests/nvm_has_system_iojs +++ b/test/fast/Unit tests/nvm_has_system_iojs @@ -1,17 +1,17 @@ #!/bin/sh cleanup () { - rm ../../../versions/io.js/v0.1.2/node - rm ../../../versions/io.js/v0.1.2/iojs - rmdir ../../../versions/io.js/v0.1.2 + rm "${NVM_DIR}/versions/io.js/v0.1.2/node" + rm "${NVM_DIR}/versions/io.js/v0.1.2/iojs" + rmdir "${NVM_DIR}/versions/io.js/v0.1.2" } die () { echo $@ ; exit 1; } . ../../../nvm.sh -mkdir ../../../versions/io.js/v0.1.2 -touch ../../../versions/io.js/v0.1.2/node -touch ../../../versions/io.js/v0.1.2/iojs +mkdir "${NVM_DIR}/versions/io.js/v0.1.2" +touch "${NVM_DIR}/versions/io.js/v0.1.2/node" +touch "${NVM_DIR}/versions/io.js/v0.1.2/iojs" nvm use iojs-v0.1.2 @@ -28,4 +28,3 @@ if command -v iojs; then else ! nvm_has_system_iojs fi - diff --git a/test/fast/Unit tests/nvm_has_system_node b/test/fast/Unit tests/nvm_has_system_node index 6265d00..10629ee 100755 --- a/test/fast/Unit tests/nvm_has_system_node +++ b/test/fast/Unit tests/nvm_has_system_node @@ -1,15 +1,14 @@ #!/bin/sh -cleanup () { - rm ../../../v0.1.2/node - rmdir ../../../v0.1.2 -} -die () { echo $@ ; exit 1; } - . ../../../nvm.sh -mkdir ../../../v0.1.2 -touch ../../../v0.1.2/node +cleanup () { + rm -rf "${NVM_DIR}/v0.1.2/node" +} +die () { echo $@ ; exit 1; } + +mkdir "${NVM_DIR}/v0.1.2" +touch "${NVM_DIR}/v0.1.2/node" nvm use 0.1.2 @@ -26,4 +25,3 @@ if command -v node; then else ! nvm_has_system_node fi - diff --git a/test/fast/Unit tests/nvm_print_implicit_alias success b/test/fast/Unit tests/nvm_print_implicit_alias success index 425350f..7a53d0c 100755 --- a/test/fast/Unit tests/nvm_print_implicit_alias success +++ b/test/fast/Unit tests/nvm_print_implicit_alias success @@ -2,25 +2,25 @@ die () { echo $@ ; cleanup ; exit 1; } cleanup() { - rm -rf ../../../v0.2.3 - rm -rf ../../../v0.3.4 - rm -rf ../../../v0.4.6 - rm -rf ../../../v0.5.7 - rm -rf ../../../v0.7.7 - rm -rf ../../../versions/io.js/v0.98.0 - rm -rf ../../../versions/node/v1.0.0 - rm -rf ../../../versions/node/v1.1.0 + rm -rf "${NVM_DIR}/v0.2.3" + rm -rf "${NVM_DIR}/v0.3.4" + rm -rf "${NVM_DIR}/v0.4.6" + rm -rf "${NVM_DIR}/v0.5.7" + rm -rf "${NVM_DIR}/v0.7.7" + rm -rf "${NVM_DIR}/versions/io.js/v0.98.0" + rm -rf "${NVM_DIR}/versions/node/v1.0.0" + rm -rf "${NVM_DIR}/versions/node/v1.1.0" unset -f nvm_ls_remote nvm_ls_remote_iojs } . ../../../nvm.sh -mkdir ../../../v0.2.3 -mkdir ../../../v0.3.4 -mkdir ../../../v0.4.6 -mkdir ../../../v0.5.7 -mkdir ../../../v0.7.7 -mkdir -p ../../../versions/io.js/v0.98.0 +mkdir "${NVM_DIR}/v0.2.3" +mkdir "${NVM_DIR}/v0.3.4" +mkdir "${NVM_DIR}/v0.4.6" +mkdir "${NVM_DIR}/v0.5.7" +mkdir "${NVM_DIR}/v0.7.7" +mkdir -p "${NVM_DIR}/versions/io.js/v0.98.0" LATEST_STABLE="$(nvm_print_implicit_alias local stable)" [ "_$LATEST_STABLE" = "_0.4" ] || die "local stable is not latest even minor: expected 0.4, got $LATEST_STABLE" @@ -35,8 +35,8 @@ LATEST_IOJS="$(nvm_print_implicit_alias local iojs)" [ "_$LATEST_IOJS" = "_iojs-v0.98" ] || die "local iojs is not latest iojs: expected iojs-v0.98, got $LATEST_IOJS" ## node post v1.0/io.js merger ## -mkdir -p ../../../versions/node/v1.0.0 -mkdir -p ../../../versions/node/v1.1.0 +mkdir -p "${NVM_DIR}/versions/node/v1.0.0" +mkdir -p "${NVM_DIR}/versions/node/v1.1.0" LATEST_STABLE="$(nvm_print_implicit_alias local stable)" [ "_$LATEST_STABLE" = "_1.1" ] || die "local stable when post-v1.0 exists is not latest: expected 1.1, got $LATEST_STABLE" @@ -102,4 +102,3 @@ LATEST_UNSTABLE="$(nvm_print_implicit_alias remote unstable)" ## ** ## cleanup - diff --git a/test/installation_iojs/install already installed uses it b/test/installation_iojs/install already installed uses it index 7065e78..665dbbe 100755 --- a/test/installation_iojs/install already installed uses it +++ b/test/installation_iojs/install already installed uses it @@ -7,8 +7,8 @@ die () { echo $@ ; exit 1; } [ "$(nvm install invalid.invalid 2>&1)" = "Version 'invalid.invalid' not found - try \`nvm ls-remote\` to browse available versions." ] || die "nvm installing an invalid version did not print a nice error message" # Remove the stuff we're clobbering. -[ -e ../../../versions/io.js/v1.0.0 ] && rm -R ../../../versions/io.js/v1.0.0 -[ -e ../../../versions/io.js/v1.0.1 ] && rm -R ../../../versions/io.js/v1.0.1 +[ -e "${NVM_DIR}/versions/io.js/v1.0.0" ] && rm -R "${NVM_DIR}/versions/io.js/v1.0.0" +[ -e "${NVM_DIR}/versions/io.js/v1.0.1" ] && rm -R "${NVM_DIR}/versions/io.js/v1.0.1" # Install from binary nvm install iojs-v1.0.0 @@ -23,4 +23,3 @@ nvm install iojs-v1.0.1 node --version | grep v1.0.1 || die "nvm install on already installed version doesn't use it (node binary)" iojs --version | grep v1.0.1 || die "nvm install on already installed version doesn't use it (iojs binary)" - diff --git a/test/installation_iojs/install from binary b/test/installation_iojs/install from binary index 93c65cd..8be865e 100755 --- a/test/installation_iojs/install from binary +++ b/test/installation_iojs/install from binary @@ -8,12 +8,11 @@ NVM_TEST_VERSION="v1.0.0" NVM_PREFIXED_TEST_VERSION="iojs-$NVM_TEST_VERSION" # Remove the stuff we're clobbering. -[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION +[ -e "${NVM_DIR}/versions/io.js/${NVM_TEST_VERSION}" ] && rm -R "${NVM_DIR}/versions/io.js/${NVM_TEST_VERSION}" # Install from binary nvm install $NVM_PREFIXED_TEST_VERSION || die "install $NVM_PREFIXED_TEST_VERSION failed" # Check -[ -d ../../../versions/io.js/$NVM_TEST_VERSION ] -nvm run $NVM_PREFIXED_TEST_VERSION --version | grep $NVM_TEST_VERSION || die "'nvm run $NVM_PREFIXED_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" - +[ -d "${NVM_DIR}/versions/io.js/${NVM_TEST_VERSION}" ] +nvm run "${NVM_PREFIXED_TEST_VERSION}" --version | grep "${NVM_TEST_VERSION}" || die "'nvm run ${NVM_PREFIXED_TEST_VERSION} --version | grep ${NVM_TEST_VERSION}' failed" diff --git a/test/installation_iojs/install two versions and use the latest one b/test/installation_iojs/install two versions and use the latest one index 69c5869..cc85653 100755 --- a/test/installation_iojs/install two versions and use the latest one +++ b/test/installation_iojs/install two versions and use the latest one @@ -5,16 +5,16 @@ die () { echo $@ ; exit 1; } . ../../nvm.sh # Remove the stuff we're clobbering. -[ -e ../../versions/io.js/v1.0.0 ] && rm -R ../../versions/io.js/v1.0.0 -[ -e ../../versions/io.js/v1.0.1 ] && rm -R ../../versions/io.js/v1.0.1 +[ -e "${NVM_DIR}/versions/io.js/v1.0.0" ] && rm -R "${NVM_DIR}/versions/io.js/v1.0.0" +[ -e "${NVM_DIR}/versions/io.js/v1.0.1" ] && rm -R "${NVM_DIR}/versions/io.js/v1.0.1" # Install from binary nvm install iojs-v1.0.0 || die "'nvm install iojs-v1.0.0' failed" nvm i iojs-v1.0.1 || die "'nvm i iojs-v1.0.1' failed" # Check -[ -d ../../versions/io.js/v1.0.0 ] || die "iojs v1.0.0 didn't exist" -[ -d ../../versions/io.js/v1.0.1 ] || die "iojs v1.0.1 didn't exist" +[ -d "${NVM_DIR}/versions/io.js/v1.0.0" ] || die "iojs v1.0.0 didn't exist" +[ -d "${NVM_DIR}/versions/io.js/v1.0.1" ] || die "iojs v1.0.1 didn't exist" # Use the first one nvm use iojs-1.0.0 || die "'nvm use iojs-1.0.0' failed" @@ -23,4 +23,3 @@ nvm use iojs-1.0.0 || die "'nvm use iojs-1.0.0' failed" nvm use iojs-1 || die "'nvm use iojs-1' failed" [ "_$(node --version)" = "_v1.0.1" ] || die "'node --version' was not v1.0.1, got: $(node --version)" [ "_$(iojs --version)" = "_v1.0.1" ] || die "'iojs --version' was not v1.0.1, got: $(iojs --version)" - diff --git a/test/installation_iojs/install version specified in .nvmrc from binary b/test/installation_iojs/install version specified in .nvmrc from binary index 82dc5f6..b798c2d 100755 --- a/test/installation_iojs/install version specified in .nvmrc from binary +++ b/test/installation_iojs/install version specified in .nvmrc from binary @@ -5,20 +5,18 @@ die () { echo $@ ; exit 1; } . ../../nvm.sh NVM_TEST_VERSION=v1.0.0 -NVM_PREFIXED_TEST_VERSION="iojs-$NVM_TEST_VERSION" -VERSION_PATH="../../versions/io.js/$NVM_TEST_VERSION" +NVM_PREFIXED_TEST_VERSION="iojs-${NVM_TEST_VERSION}" +VERSION_PATH="${NVM_DIR}/versions/io.js/${NVM_TEST_VERSION}" # Remove the stuff we're clobbering. -[ -e $VERSION_PATH ] && rm -R $VERSION_PATH +[ -e "${VERSION_PATH}" ] && rm -R "${VERSION_PATH}" # Install from binary -echo "$NVM_PREFIXED_TEST_VERSION" > .nvmrc +echo "${NVM_PREFIXED_TEST_VERSION}" > .nvmrc nvm install || die "'nvm install' failed" # Check -[ -d $VERSION_PATH ] || die "./$VERSION_PATH did not exist" -nvm run $NVM_PREFIXED_TEST_VERSION --version | grep $NVM_TEST_VERSION \ - || "'nvm run $NVM_PREFIXED_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" - - +[ -d "${VERSION_PATH}" ] || die "./${VERSION_PATH} did not exist" +nvm run "${NVM_PREFIXED_TEST_VERSION}" --version | grep "${NVM_TEST_VERSION}" \ + || "'nvm run \'${NVM_PREFIXED_TEST_VERSION}\' --version | grep \'${NVM_TEST_VERSION}\'' failed" diff --git a/test/installation_iojs/install while reinstalling packages b/test/installation_iojs/install while reinstalling packages index 6b17997..56e5ff4 100755 --- a/test/installation_iojs/install while reinstalling packages +++ b/test/installation_iojs/install while reinstalling packages @@ -5,14 +5,14 @@ die () { echo $@ ; exit 1; } . ../../nvm.sh # Remove the stuff we're clobbering. -[ -e ../../versions/io.js/v1.0.0 ] && rm -R ../../versions/io.js/v1.0.0 -[ -e ../../versions/io.js/v1.0.1 ] && rm -R ../../versions/io.js/v1.0.1 +[ -e "${NVM_DIR}/versions/io.js/v1.0.0" ] && rm -R "${NVM_DIR}/versions/io.js/v1.0.0" +[ -e "${NVM_DIR}/versions/io.js/v1.0.1" ] && rm -R "${NVM_DIR}/versions/io.js/v1.0.1" # Install from binary nvm install iojs-v1.0.0 # Check -[ -d ../../versions/io.js/v1.0.0 ] || die "nvm install iojs-v1.0.0 didn't install" +[ -d "${NVM_DIR}/versions/io.js/v1.0.0" ] || die "nvm install iojs-v1.0.0 didn't install" node --version | grep v1.0.0 > /dev/null || die "nvm install didn't use iojs-v1.0.0" @@ -23,10 +23,9 @@ nvm ls iojs-1 | grep iojs-v1.0.0 > /dev/null || die "nvm ls iojs-1 didn't show i nvm install iojs-v1.0.1 --reinstall-packages-from=iojs-1.0.0 || die "nvm install iojs-v1.0.1 --reinstall-packages-from=iojs-1.0.0 failed" -[ -d ../../versions/io.js/v1.0.1 ] || die "nvm install iojs-v1.0.1 didn't install" +[ -d "${NVM_DIR}/versions/io.js/v1.0.1" ] || die "nvm install iojs-v1.0.1 didn't install" nvm use iojs-1 node --version | grep v1.0.1 > /dev/null || die "nvm use iojs-1 didn't use v1.0.1" npm list --global | grep object-is > /dev/null || die "object-is isn't installed" - diff --git a/test/installation_iojs/nvm install v1 works b/test/installation_iojs/nvm install v1 works index 2bc83f0..67d6156 100755 --- a/test/installation_iojs/nvm install v1 works +++ b/test/installation_iojs/nvm install v1 works @@ -15,6 +15,5 @@ NVM_TEST_VERSION="$(nvm_strip_iojs_prefix "$NVM_PREFIXED_TEST_VERSION")" nvm install "$NVM_VERSION" || die "nvm install $NVM_VERSION failed" # Check -[ -d ../../versions/io.js/$NVM_TEST_VERSION ] +[ -d "${NVM_DIR}/versions/io.js/$NVM_TEST_VERSION" ] nvm run $NVM_PREFIXED_TEST_VERSION --version | grep $NVM_TEST_VERSION || die "'nvm run $NVM_PREFIXED_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" - diff --git a/test/installation_node/install already installed uses it b/test/installation_node/install already installed uses it index 8a7dd9a..b47694f 100755 --- a/test/installation_node/install already installed uses it +++ b/test/installation_node/install already installed uses it @@ -7,8 +7,8 @@ die () { echo $@ ; exit 1; } [ "$(nvm install invalid.invalid 2>&1)" = "Version 'invalid.invalid' not found - try \`nvm ls-remote\` to browse available versions." ] || die "nvm installing an invalid version did not print a nice error message" # Remove the stuff we're clobbering. -[ -e ../../v0.9.7 ] && rm -R ../../v0.9.7 -[ -e ../../v0.9.12 ] && rm -R ../../v0.9.12 +[ -e "${NVM_DIR}/v0.9.7" ] && rm -R "${NVM_DIR}/v0.9.7" +[ -e "${NVM_DIR}/v0.9.12" ] && rm -R "${NVM_DIR}/v0.9.12" # Install from binary nvm install 0.9.7 @@ -21,4 +21,3 @@ node --version | grep v0.9.7 || die "precondition failed: node doesn't start at nvm install 0.9.12 node --version | grep v0.9.12 || die "nvm install on already installed version doesn't use it" - diff --git a/test/installation_node/install two versions and use the latest one b/test/installation_node/install two versions and use the latest one index 77dc9e4..6f1d380 100755 --- a/test/installation_node/install two versions and use the latest one +++ b/test/installation_node/install two versions and use the latest one @@ -5,16 +5,16 @@ die () { echo $@ ; exit 1; } . ../../nvm.sh # Remove the stuff we're clobbering. -[ -e ../../v0.9.7 ] && rm -R ../../v0.9.7 -[ -e ../../v0.9.12 ] && rm -R ../../v0.9.12 +[ -e "${NVM_DIR}/v0.9.7" ] && rm -R "${NVM_DIR}/v0.9.7" +[ -e "${NVM_DIR}/v0.9.12" ] && rm -R "${NVM_DIR}/v0.9.12" # Install from binary nvm install 0.9.7 || die "'nvm install 0.9.7' failed" nvm i 0.9.12 || die "'nvm i 0.9.12' failed" # Check -[ -d ../../v0.9.7 ] || die "v0.9.7 didn't exist" -[ -d ../../v0.9.12 ] || die "v0.9.12 didn't exist" +[ -d "${NVM_DIR}/v0.9.7" ] || die "v0.9.7 didn't exist" +[ -d "${NVM_DIR}/v0.9.12" ] || die "v0.9.12 didn't exist" # Use the first one nvm use 0.9.7 || die "'nvm use 0.9.7' failed" @@ -22,4 +22,3 @@ nvm use 0.9.7 || die "'nvm use 0.9.7' failed" # Use the latest one nvm use 0.9 || die "'nvm use 0.9' failed" node --version | grep v0.9.12 || die "'node --version' was not v0.9.12, got: $(node --version)" - diff --git a/test/installation_node/install while reinstalling packages b/test/installation_node/install while reinstalling packages index 3eb0a2c..7d1a15e 100755 --- a/test/installation_node/install while reinstalling packages +++ b/test/installation_node/install while reinstalling packages @@ -5,14 +5,14 @@ die () { echo $@ ; exit 1; } . ../../nvm.sh # Remove the stuff we're clobbering. -[ -e ../../v0.9.7 ] && rm -R ../../v0.9.7 -[ -e ../../v0.9.12 ] && rm -R ../../v0.9.12 +[ -e "${NVM_DIR}/v0.9.7" ] && rm -R "${NVM_DIR}/v0.9.7" +[ -e "${NVM_DIR}/v0.9.12" ] && rm -R "${NVM_DIR}/v0.9.12" # Install from binary nvm install 0.9.7 # Check -[ -d ../../v0.9.7 ] || die "nvm install 0.9.7 didn't install" +[ -d "${NVM_DIR}/v0.9.7" ] || die "nvm install 0.9.7 didn't install" nvm use 0.9.7 @@ -25,10 +25,9 @@ nvm ls 0.9 | grep v0.9.7 > /dev/null || die "nvm ls 0.9 didn't show v0.9.7" nvm install 0.9.12 --reinstall-packages-from=0.9 || die "nvm install 0.9.12 --reinstall-packages-from=0.9 failed" -[ -d ../../v0.9.12 ] || die "nvm install 0.9.12 didn't install" +[ -d "${NVM_DIR}/v0.9.12" ] || die "nvm install 0.9.12 didn't install" nvm use 0.9 node --version | grep v0.9.12 > /dev/null || die "nvm ls 0.9 didn't use v0.9.12" npm list --global | grep object-is > /dev/null || die "object-is isn't installed" - diff --git a/test/slow/nvm use/setup_dir b/test/slow/nvm use/setup_dir index a3ab0f7..20fa239 100755 --- a/test/slow/nvm use/setup_dir +++ b/test/slow/nvm use/setup_dir @@ -2,9 +2,9 @@ . ../../../nvm.sh -mkdir -p ../../../.nvm_use_bak -if [ -d "../../../v*" ]; then - mv "../../../v*" ../../../.nvm_use_bak/ +mkdir -p "${NVM_DIR}/.nvm_use_bak" +if [ -d "${NVM_DIR}/v*" ]; then + mv "${NVM_DIR}/v*" "${NVM_DIR}/.nvm_use_bak/" fi for VERSION in "0.8.7" "0.9.1" "0.10.1" "0.11.1"; do From c4be39b8beb7786c2469f4d9c6ad9d1e4efb9f86 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 27 Jun 2016 21:50:45 -0700 Subject: [PATCH 0749/1426] [Fix] remove the need for `sed -E` Fixes #1126 --- nvm.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index 7f11cdd..9d20fc3 100644 --- a/nvm.sh +++ b/nvm.sh @@ -807,10 +807,10 @@ nvm_ls() { s#^v#${NVM_NODE_PREFIX}/v#; \#${SEARCH_PATTERN}# !d; " \ - | command sed -E "s#^([^/]+)/(.*)\$#\2.\1#;" \ + | command sed "s#^\([^/]\{1,\}\)/\(.*\)\$#\2.\1#;" \ | command sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n \ - | command sed -E " - s#(.*)\.([^\.]+)\$#\2-\1#; + | command sed " + s#\(.*\)\.\([^\.]\{1,\}\)\$#\2-\1#; s#^${NVM_NODE_PREFIX}-##; " \ )" From 6cee20a0717298658dd222efbc94616d96d5224c Mon Sep 17 00:00:00 2001 From: Xavier Cambar Date: Fri, 31 Oct 2014 13:04:26 +0100 Subject: [PATCH 0750/1426] testing NVM_DIR --- install.sh | 52 +++++++++++++++++------------ test/install_script/nvm_install_dir | 25 ++++++++++++++ 2 files changed, 55 insertions(+), 22 deletions(-) create mode 100755 test/install_script/nvm_install_dir diff --git a/install.sh b/install.sh index 459c48f..5e6817e 100755 --- a/install.sh +++ b/install.sh @@ -6,9 +6,9 @@ nvm_has() { type "$1" > /dev/null 2>&1 } -if [ -z "$NVM_DIR" ]; then - NVM_DIR="$HOME/.nvm" -fi +nvm_install_dir() { + echo ${NVM_DIR:-"$HOME/.nvm"} +} nvm_latest_version() { echo "v0.31.2" @@ -56,45 +56,50 @@ nvm_download() { } install_nvm_from_git() { - if [ -d "$NVM_DIR/.git" ]; then - echo "=> nvm is already installed in $NVM_DIR, trying to update using git" + local INSTALL_DIR + INSTALL_DIR="$(nvm_install_dir)" + + if [ -d "$INSTALL_DIR/.git" ]; then + echo "=> nvm is already installed in $INSTALL_DIR, trying to update using git" printf "\r=> " - cd "$NVM_DIR" && (command git fetch 2> /dev/null || { - echo >&2 "Failed to update nvm, run 'git fetch' in $NVM_DIR yourself." && exit 1 + cd "$INSTALL_DIR" && (git fetch 2> /dev/null || { + echo >&2 "Failed to update nvm, run 'git fetch' in $INSTALL_DIR yourself." && exit 1 }) else # Cloning to $NVM_DIR - echo "=> Downloading nvm from git to '$NVM_DIR'" + echo "=> Downloading nvm from git to '$INSTALL_DIR'" printf "\r=> " - mkdir -p "$NVM_DIR" - command git clone "$(nvm_source git)" "$NVM_DIR" + mkdir -p "$INSTALL_DIR" + git clone "$(nvm_source)" "$INSTALL_DIR" fi - cd "$NVM_DIR" && command git checkout --quiet "$(nvm_latest_version)" - if [ ! -z "$(cd "$NVM_DIR" && git show-ref refs/heads/master)" ]; then + cd "$INSTALL_DIR" && command git checkout --quiet "$(nvm_latest_version)" + if [ ! -z "$(cd "$INSTALL_DIR" && git show-ref refs/heads/master)" ]; then if git branch --quiet 2>/dev/null; then - cd "$NVM_DIR" && command git branch --quiet -D master >/dev/null 2>&1 + cd "$INSTALL_DIR" && command git branch --quiet -D master >/dev/null 2>&1 else echo >&2 "Your version of git is out of date. Please update it!" - cd "$NVM_DIR" && command git branch -D master >/dev/null 2>&1 + cd "$INSTALL_DIR" && command git branch -D master >/dev/null 2>&1 fi fi return } install_nvm_as_script() { + local INSTALL_DIR + INSTALL_DIR="$(nvm_install_dir)" local NVM_SOURCE_LOCAL NVM_SOURCE_LOCAL=$(nvm_source script) local NVM_EXEC_SOURCE NVM_EXEC_SOURCE=$(nvm_source script-nvm-exec) - # Downloading to $NVM_DIR - mkdir -p "$NVM_DIR" - if [ -f "$NVM_DIR/nvm.sh" ]; then - echo "=> nvm is already installed in $NVM_DIR, trying to update the script" + # Downloading to $INSTALL_DIR + mkdir -p "$INSTALL_DIR" + if [ -f "$INSTALL_DIR/nvm.sh" ]; then + echo "=> nvm is already installed in $INSTALL_DIR, trying to update the script" else - echo "=> Downloading nvm as script to '$NVM_DIR'" + echo "=> Downloading nvm as script to '$INSTALL_DIR'" fi - nvm_download -s "$NVM_SOURCE_LOCAL" -o "$NVM_DIR/nvm.sh" || { + nvm_download -s "$NVM_SOURCE_LOCAL" -o "$INSTALL_DIR/nvm.sh" || { echo >&2 "Failed to download '$NVM_SOURCE_LOCAL'" return 1 } @@ -228,8 +233,10 @@ nvm_do_install() { local NVM_PROFILE NVM_PROFILE=$(nvm_detect_profile) + local INSTALL_DIR + INSTALL_DIR="$(nvm_install_dir)" - SOURCE_STR="\nexport NVM_DIR=\"$NVM_DIR\"\n[ -s \"\$NVM_DIR/nvm.sh\" ] && . \"\$NVM_DIR/nvm.sh\" # This loads nvm" + SOURCE_STR="\nexport NVM_DIR=\"$INSTALL_DIR\"\n[ -s \"\$NVM_DIR/nvm.sh\" ] && . \"\$NVM_DIR/nvm.sh\" # This loads nvm" if [ -z "$NVM_PROFILE" ] ; then echo "=> Profile not found. Tried $NVM_PROFILE (as defined in \$PROFILE), ~/.bashrc, ~/.bash_profile, ~/.zshrc, and ~/.profile." @@ -261,7 +268,8 @@ nvm_do_install() { nvm_reset() { unset -f nvm_reset nvm_has nvm_latest_version \ nvm_source nvm_download install_nvm_as_script install_nvm_from_git \ - nvm_detect_profile nvm_check_global_modules nvm_do_install + nvm_detect_profile nvm_check_global_modules nvm_do_install \ + nvm_install_dir } [ "_$NVM_ENV" = "_testing" ] || nvm_do_install diff --git a/test/install_script/nvm_install_dir b/test/install_script/nvm_install_dir new file mode 100755 index 0000000..8ce5a42 --- /dev/null +++ b/test/install_script/nvm_install_dir @@ -0,0 +1,25 @@ +#!/bin/sh + +cleanup () { + unset -f die cleanup + unset install_dir +} +die () { echo $@ ; cleanup ; exit 1; } + +NVM_ENV=testing . ../../install.sh +HOME="__home__" + + +# NVM_DIR is set +NVM_DIR="some_dir" +install_dir=$(nvm_install_dir) +[ "_$install_dir" = "_$NVM_DIR" ] || die "nvm_install_dir should use \$NVM_DIR if it exists. Current output: $install_dir" + +unset NVM_DIR + +# NVM_DIR is not set +install_dir=$(nvm_install_dir) +[ "_$install_dir" = "_$HOME/.nvm" ] || die "nvm_install_dir should default to \$HOME/.nvm. Current output: $install_dir" + +cleanup + From a24ff3e605d72ce9480b2fad2d4c93f0093fa306 Mon Sep 17 00:00:00 2001 From: Xavier Cambar Date: Mon, 13 Oct 2014 14:05:06 +0200 Subject: [PATCH 0751/1426] Optionally installs Node.js if a version is provided --- README.markdown | 4 ++-- install.sh | 39 +++++++++++++++++++++++++++++++++++++-- 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/README.markdown b/README.markdown index 2e0ac22..16ede3b 100644 --- a/README.markdown +++ b/README.markdown @@ -42,8 +42,8 @@ or Wget: The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). -You can customize the install source, directory and profile using the `NVM_SOURCE`, `NVM_DIR`, and `PROFILE` variables. -Eg: `curl ... | NVM_DIR="path/to/nvm" bash` +You can customize the install source, directory, profile, and version using the `NVM_SOURCE`, `NVM_DIR`, `PROFILE`, and `NODE_VERSION` variables. +Eg: `curl ... | NVM_DIR=/usr/local/nvm bash` for a global install. *NB. The installer can use `git`, `curl`, or `wget` to download `nvm`, whatever is available.* diff --git a/install.sh b/install.sh index 5e6817e..9b8fd01 100755 --- a/install.sh +++ b/install.sh @@ -40,6 +40,13 @@ nvm_source() { echo "$NVM_SOURCE_URL" } +# +# Node.js version to install +# +nvm_node_version() { + echo "$NODE_VERSION" +} + nvm_download() { if nvm_has "curl"; then curl -q $* @@ -84,6 +91,30 @@ install_nvm_from_git() { return } +# +# Automatically install Node.js +# +nvm_install_node() { + local NODE_VERSION + NODE_VERSION="$(nvm_node_version)" + + if [ -z "$NODE_VERSION" ]; then + echo "=> You can now install Node.js by running \`nvm install\`" + return 0 + fi + + echo "=> Installing Node.js version $NODE_VERSION" + nvm install "$NODE_VERSION" + local CURRENT_NVM_NODE + + CURRENT_NVM_NODE="$(nvm_version current)" + if [ "$(nvm_version "$NODE_VERSION")" == "$CURRENT_NVM_NODE" ]; then + echo "=> Node.js version $NODE_VERSION has been successfully installed" + else + echo >&2 "Failed to install Node.js $NODE_VERSION" + fi +} + install_nvm_as_script() { local INSTALL_DIR INSTALL_DIR="$(nvm_install_dir)" @@ -255,9 +286,13 @@ nvm_do_install() { fi fi + # Sourcing $PROFILE to take into account the new environment + . "$NVM_PROFILE" + nvm_check_global_modules - echo "=> Close and reopen your terminal to start using nvm" + nvm_install_node + nvm_reset } @@ -269,7 +304,7 @@ nvm_reset() { unset -f nvm_reset nvm_has nvm_latest_version \ nvm_source nvm_download install_nvm_as_script install_nvm_from_git \ nvm_detect_profile nvm_check_global_modules nvm_do_install \ - nvm_install_dir + nvm_install_dir nvm_node_version nvm_install_node } [ "_$NVM_ENV" = "_testing" ] || nvm_do_install From cb4e010de77fd02e45ed9e0ab35937e9e9dbe5f9 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 30 Jun 2016 13:04:45 -0700 Subject: [PATCH 0752/1426] =?UTF-8?q?[Fix]=20install=20script:=20Don?= =?UTF-8?q?=E2=80=99t=20attempt=20to=20`cd`=20twice.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #1137. --- install.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index 9b8fd01..f12882c 100755 --- a/install.sh +++ b/install.sh @@ -69,7 +69,7 @@ install_nvm_from_git() { if [ -d "$INSTALL_DIR/.git" ]; then echo "=> nvm is already installed in $INSTALL_DIR, trying to update using git" printf "\r=> " - cd "$INSTALL_DIR" && (git fetch 2> /dev/null || { + cd "$INSTALL_DIR" && (command git fetch 2> /dev/null || { echo >&2 "Failed to update nvm, run 'git fetch' in $INSTALL_DIR yourself." && exit 1 }) else @@ -77,9 +77,11 @@ install_nvm_from_git() { echo "=> Downloading nvm from git to '$INSTALL_DIR'" printf "\r=> " mkdir -p "$INSTALL_DIR" - git clone "$(nvm_source)" "$INSTALL_DIR" + command git clone "$(nvm_source)" "$INSTALL_DIR" \ + || echo >&2 "Failed to clone nvm repo. Please report this!" && exit 1 + cd "$INSTALL_DIR" fi - cd "$INSTALL_DIR" && command git checkout --quiet "$(nvm_latest_version)" + command git checkout --quiet "$(nvm_latest_version)" if [ ! -z "$(cd "$INSTALL_DIR" && git show-ref refs/heads/master)" ]; then if git branch --quiet 2>/dev/null; then cd "$INSTALL_DIR" && command git branch --quiet -D master >/dev/null 2>&1 From 43c3c2392837b7ef8138bf6de6a95ef822befe12 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 30 Jun 2016 13:26:31 -0700 Subject: [PATCH 0753/1426] [Fix] install script: remove more unnecessary `cd`ing. Fixes #1137. --- install.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index f12882c..e2bc944 100755 --- a/install.sh +++ b/install.sh @@ -82,12 +82,12 @@ install_nvm_from_git() { cd "$INSTALL_DIR" fi command git checkout --quiet "$(nvm_latest_version)" - if [ ! -z "$(cd "$INSTALL_DIR" && git show-ref refs/heads/master)" ]; then + if [ ! -z "$(command git show-ref refs/heads/master)" ]; then if git branch --quiet 2>/dev/null; then - cd "$INSTALL_DIR" && command git branch --quiet -D master >/dev/null 2>&1 + command git branch --quiet -D master >/dev/null 2>&1 else echo >&2 "Your version of git is out of date. Please update it!" - cd "$INSTALL_DIR" && command git branch -D master >/dev/null 2>&1 + command git branch -D master >/dev/null 2>&1 fi fi return From 9e09c30621ad51b67275ae56db73183b7f7c22ae Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Fri, 1 Jul 2016 23:39:54 +0800 Subject: [PATCH 0754/1426] update nodejs version list --- test/fast/Unit tests/mocks/nodejs.org-dist-index.tab | 1 + test/fast/Unit tests/mocks/nvm_ls_remote.txt | 1 + 2 files changed, 2 insertions(+) diff --git a/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab b/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab index 0b73305..5c135f1 100644 --- a/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab +++ b/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab @@ -23,6 +23,7 @@ v5.2.0 2015-12-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux- v5.1.1 2015-12-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 - v5.1.0 2015-11-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2d 47 - v5.0.0 2015-10-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.6 4.6.85.28 1.7.5 1.2.8 1.0.2d 47 - +v4.4.7 2016-06-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.15.8 4.5.103.36 1.8.0 1.2.8 1.0.2h 46 Argon v4.4.6 2016-06-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.15.5 4.5.103.36 1.8.0 1.2.8 1.0.2h 46 Argon v4.4.5 2016-05-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.15.5 4.5.103.35 1.8.0 1.2.8 1.0.2h 46 Argon v4.4.4 2016-05-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.15.1 4.5.103.35 1.8.0 1.2.8 1.0.2h 46 Argon diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote.txt b/test/fast/Unit tests/mocks/nvm_ls_remote.txt index 8b78059..0c98561 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote.txt @@ -251,6 +251,7 @@ v4.4.3 v4.4.4 v4.4.5 v4.4.6 +v4.4.7 v5.0.0 v5.1.0 v5.1.1 From 07bb79f405b7ec24c044046f1894a2241e344ee0 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Fri, 1 Jul 2016 23:22:15 +0800 Subject: [PATCH 0755/1426] Use `case` instead of multiple if/else statement. --- nvm.sh | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/nvm.sh b/nvm.sh index 9d20fc3..a2fad2b 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1943,19 +1943,24 @@ nvm() { if [ -z "${NVM_MAKE_JOBS-}" ]; then nvm_get_make_jobs fi - if [ "$NVM_IOJS" != true ] && [ "$NVM_NODE_MERGED" != true ]; then - if nvm_install_node_source "$VERSION" "$NVM_MAKE_JOBS" "$ADDITIONAL_PARAMETERS"; then - NVM_INSTALL_SUCCESS=true - fi - elif [ "$NVM_IOJS" = true ]; then - # nvm_install_iojs_source "$VERSION" "$NVM_MAKE_JOBS" "$ADDITIONAL_PARAMETERS" - nvm_err 'Installing iojs from source is not currently supported' - return 105 - elif [ "$NVM_NODE_MERGED" = true ]; then - # nvm_install_merged_node_source "$VERSION" "$NVM_MAKE_JOBS" "$ADDITIONAL_PARAMETERS" - nvm_err 'Installing node v1.0 and greater from source is not currently supported' - return 106 - fi + + case "true" in + "$NVM_IOJS") + # nvm_install_iojs_source "$VERSION" "$NVM_MAKE_JOBS" "$ADDITIONAL_PARAMETERS" + nvm_err 'Installing iojs from source is not currently supported' + return 105 + ;; + "$NVM_NODE_MERGED") + # nvm_install_merged_node_source "$VERSION" "$NVM_MAKE_JOBS" "$ADDITIONAL_PARAMETERS" + nvm_err 'Installing node v1.0 and greater from source is not currently supported' + return 106 + ;; + *) + if nvm_install_node_source "$VERSION" "$NVM_MAKE_JOBS" "$ADDITIONAL_PARAMETERS"; then + NVM_INSTALL_SUCCESS=true + fi + ;; + esac fi if [ "$NVM_INSTALL_SUCCESS" = true ] && nvm use "$VERSION"; then From d47887ae8fb173f617e660c7aa60f7a202081de3 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Fri, 1 Jul 2016 23:29:37 +0800 Subject: [PATCH 0756/1426] use sh syntax highlight in README.markdown --- README.markdown | 137 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 96 insertions(+), 41 deletions(-) diff --git a/README.markdown b/README.markdown index 16ede3b..2b525e3 100644 --- a/README.markdown +++ b/README.markdown @@ -34,11 +34,15 @@ Homebrew installation is not supported. To install or update nvm, you can use the [install script][2] using cURL: - curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.2/install.sh | bash +```sh +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.2/install.sh | bash +``` or Wget: - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.2/install.sh | bash +```sh +wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.2/install.sh | bash +``` The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). @@ -53,7 +57,9 @@ Note: On OS X, if you get `nvm: command not found` after running the install scr To verify that nvm has been installed, do: - command -v nvm +```sh +command -v nvm +``` which should output 'nvm' if the installation was successful. Please note that `which nvm` will not work, since `nvm` is a sourced shell function, not an executable binary. @@ -63,49 +69,68 @@ For manual install create a folder somewhere in your filesystem with the `nvm.sh Or if you have `git` installed, then just clone it, and check out the latest version: - git clone https://github.com/creationix/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags` +```sh +git clone https://github.com/creationix/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags` +``` To activate nvm, you need to source it from your shell: - . ~/.nvm/nvm.sh +```sh +. ~/.nvm/nvm.sh +``` Add these lines to your `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it automatically sourced upon login: (you may have to add to more than one of the above files) - export NVM_DIR="$HOME/.nvm" - [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm +```sh +export NVM_DIR="$HOME/.nvm" +[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm +``` ### Manual upgrade For manual upgrade with `git`, change to the `$NVM_DIR`, pull down the latest changes, and check out the latest version: - cd "$NVM_DIR" && git fetch origin && git checkout `git describe --abbrev=0 --tags` +```sh +cd "$NVM_DIR" && git fetch origin && git checkout `git describe --abbrev=0 --tags` +``` After upgrading, don't forget to activate the new version: - . "$NVM_DIR/nvm.sh" +```sh +. "$NVM_DIR/nvm.sh" +``` ## Usage To download, compile, and install the latest v5.0.x release of node, do this: - nvm install 5.0 +```sh +nvm install 5.0 +``` And then in any new shell just use the installed version: - nvm use 5.0 +```sh +nvm use 5.0 +``` Or you can just run it: - nvm run 5.0 --version - +```sh +nvm run 5.0 --version +``` Or, you can run any arbitrary command in a subshell with the desired version of node: - nvm exec 4.2 node --version +```sh +nvm exec 4.2 node --version +``` You can also get the path to the executable to where it was installed: - nvm which 5.0 +```sh +nvm which 5.0 +``` In place of a version pointer like "0.10" or "5.0" or "4.2.1", you can use the following special default aliases with `nvm install`, `nvm use`, `nvm run`, `nvm exec`, `nvm which`, etc: @@ -116,59 +141,81 @@ In place of a version pointer like "0.10" or "5.0" or "4.2.1", you can use the f If you want to install a new version of Node.js and migrate npm packages from a previous version: - nvm install node --reinstall-packages-from=node +```sh +nvm install node --reinstall-packages-from=node +``` This will first use "nvm version node" to identify the current version you're migrating packages from. Then it resolves the new version to install from the remote server and installs it. Lastly, it runs "nvm reinstall-packages" to reinstall the npm packages from your prior version of Node to the new one. You can also install and migrate npm packages from specific versions of Node like this: - nvm install v5.0 --reinstall-packages-from=4.2 - nvm install v4.2 --reinstall-packages-from=iojs +```sh +nvm install v5.0 --reinstall-packages-from=4.2 +nvm install v4.2 --reinstall-packages-from=iojs +``` If you want to install [io.js](https://github.com/iojs/io.js/): - nvm install iojs +```sh +nvm install iojs +``` If you want to install a new version of io.js and migrate npm packages from a previous version: - nvm install iojs --reinstall-packages-from=iojs +```sh +nvm install iojs --reinstall-packages-from=iojs +``` The same guidelines mentioned for migrating npm packages in Node.js are applicable to io.js. If you want to use the system-installed version of node, you can use the special default alias "system": - nvm use system - nvm run system --version +```sh +nvm use system +nvm run system --version +``` If you want to see what versions are installed: - nvm ls +```sh +nvm ls +``` If you want to see what versions are available to install: - nvm ls-remote +```sh +nvm ls-remote +``` To restore your PATH, you can deactivate it: - nvm deactivate +```sh +nvm deactivate +``` To set a default Node version to be used in any new shell, use the alias 'default': - nvm alias default node +```sh +nvm alias default node +``` To use a mirror of the node binaries, set `$NVM_NODEJS_ORG_MIRROR`: - export NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist - nvm install node +```sh +export NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist +nvm install node - NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist nvm install 4.2 +NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist nvm install 4.2 +``` To use a mirror of the iojs binaries, set `$NVM_IOJS_ORG_MIRROR`: - export NVM_IOJS_ORG_MIRROR=https://iojs.org/dist - nvm install iojs-v1.0.3 +```sh +export NVM_IOJS_ORG_MIRROR=https://iojs.org/dist +nvm install iojs-v1.0.3 - NVM_IOJS_ORG_MIRROR=https://iojs.org/dist nvm install iojs-v1.0.3 +NVM_IOJS_ORG_MIRROR=https://iojs.org/dist nvm install iojs-v1.0.3 +``` `nvm use` will not, by default, create a "current" symlink. Set `$NVM_SYMLINK_CURRENT` to "true" to enable this behavior, which is sometimes useful for IDEs. @@ -179,13 +226,17 @@ You can create a `.nvmrc` file containing version number in the project root dir For example, to make nvm default to the latest 5.9 release for the current directory: - $ echo "5.9" > .nvmrc +```sh +$ echo "5.9" > .nvmrc +``` Then when you run nvm: - $ nvm use - Found '/path/to/project/.nvmrc' with version <5.9> - Now using node v5.9.1 (npm v3.7.3) +```sh +$ nvm use +Found '/path/to/project/.nvmrc' with version <5.9> +Now using node v5.9.1 (npm v3.7.3) +``` ### Deeper Shell Integration @@ -254,7 +305,9 @@ Nota bene: Avoid running nvm while the tests are running. To activate, you need to source `bash_completion`: +```sh [[ -r $NVM_DIR/bash_completion ]] && . $NVM_DIR/bash_completion +``` Put the above sourcing line just below the sourcing line for nvm in your profile (`.bashrc`, `.bash_profile`). @@ -290,16 +343,16 @@ nvm uninstall: The following are known to cause issues: Inside `~/.npmrc`: -``` +```sh prefix='some/path' ``` Environment Variables: -``` +```sh $NPM_CONFIG_PREFIX $PREFIX ``` Shell settings: -``` +```sh set -e ``` @@ -312,7 +365,7 @@ There is a `-s` flag for `nvm install` which requests nvm download Node source a If installing nvm on Alpine Linux *is* still what you want or need to do, you should be able to achieve this by running the following from you Alpine Linux shell: -``` +```sh apk add bash wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.2/install.sh | /bin/bash ``` @@ -334,7 +387,9 @@ https://github.com/creationix/nvm/issues/43 On Arch Linux and other systems using python3 by default, before running *install* you need to: - export PYTHON=python2 +```sh +export PYTHON=python2 +``` After the v0.8.6 release of node, nvm tries to install from binary packages. But in some systems, the official binary packages don't work due to incompatibility of shared libs. In such cases, use `-s` option to force install from source: From 0b40139caa7029d0587462dd6f26249f5e06ba1a Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 2 Jul 2016 18:37:53 -0700 Subject: [PATCH 0757/1426] [Tests] set x option in update mock to better locate failures --- update_test_mocks.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/update_test_mocks.sh b/update_test_mocks.sh index faaf028..ee08915 100755 --- a/update_test_mocks.sh +++ b/update_test_mocks.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -set -e +set -ex echo 'Updating test mocks...' From 4c010f442e6d30594dfbb7eeb5ad0d596a4cabbf Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 2 Jul 2016 21:21:16 -0700 Subject: [PATCH 0758/1426] [Tests] add tests for auto-creation of LTS aliases on `nvm_ls_remote` --- .gitignore | 1 + .../mocks/nvm_make_alias LTS alias calls.txt | 2 + .../fast/Unit tests/nvm_ls_remote LTS aliases | 50 +++++++++++++++++++ update_test_mocks.sh | 13 +++++ 4 files changed, 66 insertions(+) create mode 100644 test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt create mode 100755 test/fast/Unit tests/nvm_ls_remote LTS aliases diff --git a/.gitignore b/.gitignore index 852b572..b44ec8f 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ alias test/bak .urchin.log .urchin_stdout +test/**/test_output node_modules/ npm-debug.log diff --git a/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt b/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt new file mode 100644 index 0000000..cb38eec --- /dev/null +++ b/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt @@ -0,0 +1,2 @@ +lts/argon|v4.4.7 +lts/*|lts/argon diff --git a/test/fast/Unit tests/nvm_ls_remote LTS aliases b/test/fast/Unit tests/nvm_ls_remote LTS aliases new file mode 100755 index 0000000..1fdde96 --- /dev/null +++ b/test/fast/Unit tests/nvm_ls_remote LTS aliases @@ -0,0 +1,50 @@ +#!/bin/sh + +set -ex + +die () { echo $@ ; cleanup ; exit 1; } + +TEST_PATH="$PWD/test_output" +mkdir -p "$TEST_PATH" +CALL_COUNT_PATH="$TEST_PATH/call_count.txt" +: > "$CALL_COUNT_PATH" +ALIAS_ARGS_PATH="$TEST_PATH/nvm_make_alias_args.txt" +: > "$ALIAS_ARGS_PATH" + +cleanup() { + unset -f nvm_download nvm_make_alias + rm -rf "$TEST_PATH" +} + +. ../../../nvm.sh + +set -ex + +MOCKS_DIR="$PWD/mocks" + +# sample output at the time the test was written +TAB_PATH="$MOCKS_DIR/nodejs.org-dist-index.tab" +nvm_download() { + cat "$TAB_PATH" +} + +nvm_make_alias() { + CALL_COUNT="$(cat "$CALL_COUNT_PATH")" + CALL_COUNT="$((CALL_COUNT + 1))" + echo "$CALL_COUNT" > "$CALL_COUNT_PATH" + echo "${1}|${2}" >> "$ALIAS_ARGS_PATH" +} + +nvm_ls_remote >/dev/null || die "nvm_ls_remote_failed?!" + +CALL_COUNT="$(cat "$CALL_COUNT_PATH")" + +EXPECTED_COUNT=2 +[ "$CALL_COUNT" = "$EXPECTED_COUNT" ] || die "nvm_make_alias called $CALL_COUNT times; expected $EXPECTED_COUNT" + +ARGS="$(cat "$ALIAS_ARGS_PATH")" +EXPECTED_ARGS_PATH="$MOCKS_DIR/nvm_make_alias LTS alias calls.txt" +EXPECTED_ARGS="$(cat "$EXPECTED_ARGS_PATH")" +[ "${ARGS}" = "${EXPECTED_ARGS}" ] || die "nvm_make_alias called with >${ARGS}<; expected >${EXPECTED_ARGS}<" + +cleanup diff --git a/update_test_mocks.sh b/update_test_mocks.sh index 312a534..dfa87ac 100755 --- a/update_test_mocks.sh +++ b/update_test_mocks.sh @@ -15,6 +15,11 @@ nvm_is_version_installed() { return 1 } +nvm_make_alias() { + # prevent local alias creation + return 0 +} + nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote.txt" nvm_ls_remote_iojs > "$MOCKS_DIR/nvm_ls_remote_iojs.txt" NVM_LTS=* nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote LTS.txt" @@ -26,4 +31,12 @@ nvm ls-remote --lts > "$MOCKS_DIR/nvm ls-remote lts.txt" nvm ls-remote node > "$MOCKS_DIR/nvm ls-remote node.txt" nvm ls-remote iojs > "$MOCKS_DIR/nvm ls-remote iojs.txt" +ALIAS_PATH="$MOCKS_DIR/nvm_make_alias LTS alias calls.txt" +: > "$ALIAS_PATH" +nvm_make_alias() { + # prevent local alias creation, and store arguments + echo "${1}|${2}" >> "$ALIAS_PATH" +} +nvm ls-remote --lts + echo "done! Don't forget to git commit them." From 42fedf6bc9b22917325ebff7d57c89d6fa8b1754 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 3 Jul 2016 08:37:03 -0700 Subject: [PATCH 0759/1426] [Tests] add some basic `nvm use --lts` tests --- nvm.sh | 2 +- ...\"nvm use --lts\" uses latest LTS version" | 22 +++++++++++++++++++ ...lts=foo\" uses latest \"foo\" LTS version" | 22 +++++++++++++++++++ test/slow/nvm use/setup_dir | 7 ++++++ test/slow/nvm use/teardown_dir | 12 +++++++--- 5 files changed, 61 insertions(+), 4 deletions(-) create mode 100755 "test/slow/nvm use/Running \"nvm use --lts\" uses latest LTS version" create mode 100755 "test/slow/nvm use/Running \"nvm use --lts=foo\" uses latest \"foo\" LTS version" diff --git a/nvm.sh b/nvm.sh index cd0d630..1f5f9be 100644 --- a/nvm.sh +++ b/nvm.sh @@ -610,7 +610,7 @@ nvm_resolve_alias() { local SEEN_ALIASES SEEN_ALIASES="$ALIAS" while true; do - ALIAS_TEMP="$(nvm_alias "$ALIAS" 2> /dev/null)" + ALIAS_TEMP="$(nvm_alias "$ALIAS" 2> /dev/null || echo)" if [ -z "$ALIAS_TEMP" ]; then break diff --git "a/test/slow/nvm use/Running \"nvm use --lts\" uses latest LTS version" "b/test/slow/nvm use/Running \"nvm use --lts\" uses latest LTS version" new file mode 100755 index 0000000..fc82a7b --- /dev/null +++ "b/test/slow/nvm use/Running \"nvm use --lts\" uses latest LTS version" @@ -0,0 +1,22 @@ +#!/bin/sh + +set -ex + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +nvm deactivate >/dev/null 2>&1 || die 'deactivate failed' + +nvm use --lts || die 'nvm use --lts failed' +OUTPUT="$(nvm current)" +EXPECTED_OUTPUT="$(nvm_resolve_alias 'lts/*')" + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ + || die "'nvm use --lts' + 'nvm current' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'" + +OUTPUT="$(nvm use --silent --lts)" +EXPECTED_OUTPUT="" + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ + || die "'nvm use --silent --lts' output was not silenced '$EXPECTED_OUTPUT'; got '$OUTPUT'" diff --git "a/test/slow/nvm use/Running \"nvm use --lts=foo\" uses latest \"foo\" LTS version" "b/test/slow/nvm use/Running \"nvm use --lts=foo\" uses latest \"foo\" LTS version" new file mode 100755 index 0000000..73bdd65 --- /dev/null +++ "b/test/slow/nvm use/Running \"nvm use --lts=foo\" uses latest \"foo\" LTS version" @@ -0,0 +1,22 @@ +#!/bin/sh + +set -ex + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +nvm deactivate 2>&1 >/dev/null || die 'deactivate failed' + +nvm use --lts=testing || die 'nvm use --lts=testing failed' +OUTPUT="$(nvm current)" +EXPECTED_OUTPUT="$(nvm_resolve_alias 'lts/testing')" + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ + || die "'nvm use --lts=testing' + 'nvm current' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'" + +OUTPUT="$(nvm use --silent --lts=testing)" +EXPECTED_OUTPUT="" + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ + || die "'nvm use --silent --lts=testing' output was not silenced '$EXPECTED_OUTPUT'; got '$OUTPUT'" diff --git a/test/slow/nvm use/setup_dir b/test/slow/nvm use/setup_dir index 20fa239..767ab55 100755 --- a/test/slow/nvm use/setup_dir +++ b/test/slow/nvm use/setup_dir @@ -6,6 +6,10 @@ mkdir -p "${NVM_DIR}/.nvm_use_bak" if [ -d "${NVM_DIR}/v*" ]; then mv "${NVM_DIR}/v*" "${NVM_DIR}/.nvm_use_bak/" fi +mkdir -p "${NVM_DIR}/.nvm_use_lts_alias_bak" +if [ -d "${NVM_DIR}/alias/lts" ]; then + mv "${NVM_DIR}/alias/lts/*" "${NVM_DIR}/.nvm_use_lts_alias_bak/" +fi for VERSION in "0.8.7" "0.9.1" "0.10.1" "0.11.1"; do nvm install "v$VERSION" @@ -14,3 +18,6 @@ done for VERSION in "1.0.0" "1.0.1"; do nvm install "iojs-v$VERSION" done + +nvm_make_alias lts/testing 0.10.1 +nvm_make_alias 'lts/*' lts/testing diff --git a/test/slow/nvm use/teardown_dir b/test/slow/nvm use/teardown_dir index eeda337..a1543e5 100755 --- a/test/slow/nvm use/teardown_dir +++ b/test/slow/nvm use/teardown_dir @@ -10,7 +10,13 @@ for VERSION in "1.0.0" "1.0.1"; do nvm uninstall "iojs-v$VERSION" done -if [ -d ../../../.nvm_use_bak/* ]; then - mv ../../../.nvm_use_bak/* ../../../ +if [ -d "${NVM_DIR}/.nvm_use_bak/*" ]; then + mv "${NVM_DIR}/.nvm_use_bak/*" "${NVM_DIR}" + rmdir "${NVM_DIR}/.nvm_use_bak" +fi + +if [ -d "${NVM_DIR}/.nvm_use_lts_alias_bak" ]; then + rm -rf "${NVM_DIR}/alias/lts/*" + mv "${NVM_DIR}/.nvm_use_lts_alias_bak/*" "${NVM_DIR}/alias/lts/" + rmdir "${NVM_DIR}/.nvm_use_lts_alias_bak" fi -rmdir ../../../.nvm_use_bak From 70b8c59722a6941059755b5630a01da0c3faff0c Mon Sep 17 00:00:00 2001 From: Cezar Augusto Date: Mon, 4 Jul 2016 02:28:05 -0300 Subject: [PATCH 0760/1426] Add info about 'nvm: command not found'. Ref #576 --- README.markdown | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.markdown b/README.markdown index 2b525e3..1377dfa 100644 --- a/README.markdown +++ b/README.markdown @@ -53,6 +53,13 @@ Eg: `curl ... | NVM_DIR=/usr/local/nvm bash` for a global install. Note: On OS X, if you get `nvm: command not found` after running the install script, your system may not have a [.bash_profile file] where the command is set up. Simply create one with `touch ~/.bash_profile` and run the install script again. +If the above doesn't fix the problem, open your `.bash_profile` and add the following line of code: + +`source ~/.bashrc` + +- For more information about this issue and possible workarounds, please [refer here](https://github.com/creationix/nvm/issues/576) + + ### Verify installation To verify that nvm has been installed, do: From 322d81d75f248f67ff8eea5066450ad350dd6d46 Mon Sep 17 00:00:00 2001 From: Mohit Agarwal Date: Wed, 6 Jul 2016 01:26:06 +0530 Subject: [PATCH 0761/1426] use git options instead of cd in install script --- install.sh | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/install.sh b/install.sh index e2bc944..fc0cdf3 100755 --- a/install.sh +++ b/install.sh @@ -69,7 +69,7 @@ install_nvm_from_git() { if [ -d "$INSTALL_DIR/.git" ]; then echo "=> nvm is already installed in $INSTALL_DIR, trying to update using git" printf "\r=> " - cd "$INSTALL_DIR" && (command git fetch 2> /dev/null || { + (command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" fetch 2> /dev/null || { echo >&2 "Failed to update nvm, run 'git fetch' in $INSTALL_DIR yourself." && exit 1 }) else @@ -79,15 +79,14 @@ install_nvm_from_git() { mkdir -p "$INSTALL_DIR" command git clone "$(nvm_source)" "$INSTALL_DIR" \ || echo >&2 "Failed to clone nvm repo. Please report this!" && exit 1 - cd "$INSTALL_DIR" fi - command git checkout --quiet "$(nvm_latest_version)" - if [ ! -z "$(command git show-ref refs/heads/master)" ]; then - if git branch --quiet 2>/dev/null; then - command git branch --quiet -D master >/dev/null 2>&1 + command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" checkout --quiet "$(nvm_latest_version)" + if [ ! -z "$(command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" show-ref refs/heads/master)" ]; then + if command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" branch --quiet 2>/dev/null; then + command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" branch --quiet -D master >/dev/null 2>&1 else echo >&2 "Your version of git is out of date. Please update it!" - command git branch -D master >/dev/null 2>&1 + command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" branch -D master >/dev/null 2>&1 fi fi return From 79d62fb16d3ab956047c527408c447567575b83a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=28Sore=CE=BB=5Ca=29?= Date: Tue, 5 Jul 2016 19:55:39 -0300 Subject: [PATCH 0762/1426] Improve error messages for missing versions `nvm use`, `nvm run` and others check if the version is installed before executing Node, but the error message could be clearer on what steps the user has to take to achieve what they want, this makes that clearer. --- nvm.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index a2fad2b..a8952e9 100644 --- a/nvm.sh +++ b/nvm.sh @@ -256,11 +256,15 @@ nvm_ensure_version_installed() { if [ "_$EXIT_CODE" != "_0" ] || ! nvm_is_version_installed "$LOCAL_VERSION"; then VERSION="$(nvm_resolve_alias "$PROVIDED_VERSION")" if [ $? -eq 0 ]; then - nvm_err "N/A: version \"$PROVIDED_VERSION -> $VERSION\" is not yet installed" + nvm_err "N/A: version \"$PROVIDED_VERSION -> $VERSION\" is not yet installed. + +You need to run \"npm install $PROVIDED_VERSION\" to install it before using it." else local PREFIXED_VERSION PREFIXED_VERSION="$(nvm_ensure_version_prefix "$PROVIDED_VERSION")" - nvm_err "N/A: version \"${PREFIXED_VERSION:-$PROVIDED_VERSION}\" is not yet installed" + nvm_err "N/A: version \"${PREFIXED_VERSION:-$PROVIDED_VERSION}\" is not yet installed. + +You need to run \"npm install $PROVIDED_VERSION\" to install it before using it." fi return 1 fi From 0f26656c2c1fd63a4e99b82457c97a6e3f4e74ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=28Sore=CE=BB=5Ca=29?= Date: Tue, 5 Jul 2016 20:34:08 -0300 Subject: [PATCH 0763/1426] npm -> nvm, and minor formatting issues --- nvm.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/nvm.sh b/nvm.sh index a8952e9..6ca361a 100644 --- a/nvm.sh +++ b/nvm.sh @@ -256,15 +256,15 @@ nvm_ensure_version_installed() { if [ "_$EXIT_CODE" != "_0" ] || ! nvm_is_version_installed "$LOCAL_VERSION"; then VERSION="$(nvm_resolve_alias "$PROVIDED_VERSION")" if [ $? -eq 0 ]; then - nvm_err "N/A: version \"$PROVIDED_VERSION -> $VERSION\" is not yet installed. - -You need to run \"npm install $PROVIDED_VERSION\" to install it before using it." + nvm_err "N/A: version \"$PROVIDED_VERSION -> $VERSION\" is not yet installed." + nvm_err "" + nvm_err "You need to run \"nvm install $PROVIDED_VERSION\" to install it before using it." else local PREFIXED_VERSION PREFIXED_VERSION="$(nvm_ensure_version_prefix "$PROVIDED_VERSION")" - nvm_err "N/A: version \"${PREFIXED_VERSION:-$PROVIDED_VERSION}\" is not yet installed. - -You need to run \"npm install $PROVIDED_VERSION\" to install it before using it." + nvm_err "N/A: version \"${PREFIXED_VERSION:-$PROVIDED_VERSION}\" is not yet installed." + nvm_err "" + nvm_err "You need to run \"nvm install $PROVIDED_VERSION\" to install it before using it." fi return 1 fi From 730b25317465b8b55b337630d0743d8fd630303b Mon Sep 17 00:00:00 2001 From: Quildreen Motta Date: Tue, 5 Jul 2016 21:40:45 -0300 Subject: [PATCH 0764/1426] Updates tests for the new output messages --- test/fast/Unit tests/nvm_ensure_version_installed | 8 ++++++-- ...ould error out sensibly when 0.x is not installed" | 11 +++++++++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/test/fast/Unit tests/nvm_ensure_version_installed b/test/fast/Unit tests/nvm_ensure_version_installed index 492cc95..7c49aaf 100755 --- a/test/fast/Unit tests/nvm_ensure_version_installed +++ b/test/fast/Unit tests/nvm_ensure_version_installed @@ -11,7 +11,9 @@ mkdir -p "$(nvm_version_path v0.1.2)" OUTPUT="$(nvm_ensure_version_installed foo 2>&1)" EXIT_CODE=$? -EXPECTED_OUTPUT='N/A: version "foo" is not yet installed' +EXPECTED_OUTPUT='N/A: version "foo" is not yet installed. + +You need to run "nvm install foo" to install it before using it.' [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "expected 'nvm_ensure_version_installed foo' to give $EXPECTED_OUTPUT, got $OUTPUT" [ "_$EXIT_CODE" = "_1" ] || die "expected 'nvm_ensure_version_installed foo' to exit with 1, got $EXIT_CODE" @@ -23,7 +25,9 @@ EXIT_CODE=$? # Special case for "iojs" OUTPUT="$(nvm_ensure_version_installed iojs 2>&1)" EXIT_CODE=$? -EXPECTED_OUTPUT='N/A: version "iojs" is not yet installed' +EXPECTED_OUTPUT='N/A: version "iojs" is not yet installed. + +You need to run "nvm install iojs" to install it before using it.' [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "expected 'nvm_ensure_version_installed iojs' to give $EXPECTED_OUTPUT, got $OUTPUT" [ "_$EXIT_CODE" = "_1" ] || die "expected 'nvm_ensure_version_installed iojs' to exit with 1, got $EXIT_CODE" diff --git "a/test/slow/nvm run/Running \"nvm run 0.x\" should error out sensibly when 0.x is not installed" "b/test/slow/nvm run/Running \"nvm run 0.x\" should error out sensibly when 0.x is not installed" index bde5867..5a2aef2 100755 --- "a/test/slow/nvm run/Running \"nvm run 0.x\" should error out sensibly when 0.x is not installed" +++ "b/test/slow/nvm run/Running \"nvm run 0.x\" should error out sensibly when 0.x is not installed" @@ -5,5 +5,12 @@ die () { echo $@ ; exit 1; } . ../../../nvm.sh -[ "$(nvm run 0.2 --version 2>&1)" = 'N/A: version "v0.2" is not yet installed' ] || die "\`nvm run\` with an uninstalled node version failed to error out correctly" -[ "$(nvm run iojs-0.2 --version 2>&1)" = 'N/A: version "iojs-v0.2" is not yet installed' ] || die "\`nvm run\` with an uninstalled iojs version failed to error out correctly" +EXPECTED_OUTPUT='N/A: version "v0.2" is not yet installed. + +You need to run "nvm install 0.2" to install it before using it.' +[ "_$(nvm run 0.2 --version 2>&1)" = "_$EXPECTED_OUTPUT" ] || die "\`nvm run\` with an uninstalled node version failed to error out correctly" + +EXPECTED_OUTPUT='N/A: version "iojs-v0.2" is not yet installed. + +You need to run "nvm install iojs-0.2" to install it before using it.' +[ "_$(nvm run iojs-0.2 --version 2>&1)" = "_$EXPECTED_OUTPUT" ] || die "\`nvm run\` with an uninstalled iojs version failed to error out correctly" From 8c8bf1204c5217137e56f8df4257c9c76b7747fe Mon Sep 17 00:00:00 2001 From: Owen Smith Date: Tue, 5 Jul 2016 19:22:52 -0700 Subject: [PATCH 0765/1426] [Fix] install should not exit after successful git clone Fixes #1146 by grouping the commands that handle the error. I also removed a subshell wrapper from a similar set of lines right above. It looks to me like that is no longer necessary. --- install.sh | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/install.sh b/install.sh index fc0cdf3..364b923 100755 --- a/install.sh +++ b/install.sh @@ -69,16 +69,19 @@ install_nvm_from_git() { if [ -d "$INSTALL_DIR/.git" ]; then echo "=> nvm is already installed in $INSTALL_DIR, trying to update using git" printf "\r=> " - (command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" fetch 2> /dev/null || { - echo >&2 "Failed to update nvm, run 'git fetch' in $INSTALL_DIR yourself." && exit 1 - }) + command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" fetch 2> /dev/null || { + echo >&2 "Failed to update nvm, run 'git fetch' in $INSTALL_DIR yourself." + exit 1 + } else # Cloning to $NVM_DIR echo "=> Downloading nvm from git to '$INSTALL_DIR'" printf "\r=> " mkdir -p "$INSTALL_DIR" - command git clone "$(nvm_source)" "$INSTALL_DIR" \ - || echo >&2 "Failed to clone nvm repo. Please report this!" && exit 1 + command git clone "$(nvm_source)" "$INSTALL_DIR" || { + echo >&2 "Failed to clone nvm repo. Please report this!" + exit 1 + } fi command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" checkout --quiet "$(nvm_latest_version)" if [ ! -z "$(command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" show-ref refs/heads/master)" ]; then From 78a008c3c773d18be9d94aee7350284fe3f30c95 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 6 Jul 2016 15:31:25 -0700 Subject: [PATCH 0766/1426] [Fix] use Solaris-compatible tail options. Fixes #1148. --- nvm.sh | 12 ++++++------ ...nning \"nvm use system\" should work as expected" | 8 ++++---- test/installation_iojs/nvm install v1 works | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/nvm.sh b/nvm.sh index 6ca361a..1b55198 100644 --- a/nvm.sh +++ b/nvm.sh @@ -292,7 +292,7 @@ nvm_version() { PATTERN="stable" ;; esac - VERSION="$(nvm_ls "$PATTERN" | command tail -n1)" + VERSION="$(nvm_ls "$PATTERN" | command tail -1)" if [ -z "$VERSION" ] || [ "_$VERSION" = "_N/A" ]; then nvm_echo "N/A" return 3; @@ -308,14 +308,14 @@ nvm_remote_version() { if nvm_validate_implicit_alias "$PATTERN" 2> /dev/null ; then case "_$PATTERN" in "_$(nvm_iojs_prefix)") - VERSION="$(nvm_ls_remote_iojs | command tail -n1)" + VERSION="$(nvm_ls_remote_iojs | command tail -1)" ;; *) VERSION="$(nvm_ls_remote "$PATTERN")" ;; esac else - VERSION="$(nvm_remote_versions "$PATTERN" | command tail -n1)" + VERSION="$(nvm_remote_versions "$PATTERN" | command tail -1)" fi nvm_echo "$VERSION" if [ "_$VERSION" = '_N/A' ]; then @@ -845,7 +845,7 @@ nvm_ls_remote() { local PATTERN PATTERN="$1" if nvm_validate_implicit_alias "$PATTERN" 2> /dev/null ; then - PATTERN="$(nvm_ls_remote "$(nvm_print_implicit_alias remote "$PATTERN")" | command tail -n1)" + PATTERN="$(nvm_ls_remote "$(nvm_print_implicit_alias remote "$PATTERN")" | command tail -1)" elif [ -n "$PATTERN" ]; then PATTERN="$(nvm_ensure_version_prefix "$PATTERN")" else @@ -1569,9 +1569,9 @@ nvm_npm_global_modules() { local VERSION VERSION="$1" if [ "_$VERSION" = "_system" ]; then - NPMLIST=$(nvm use system > /dev/null && npm list -g --depth=0 2> /dev/null | command tail -n +2) + NPMLIST=$(nvm use system > /dev/null && npm list -g --depth=0 2> /dev/null | command sed 1,1d) else - NPMLIST=$(nvm use "$VERSION" > /dev/null && npm list -g --depth=0 2> /dev/null | command tail -n +2) + NPMLIST=$(nvm use "$VERSION" > /dev/null && npm list -g --depth=0 2> /dev/null | command sed 1,1d) fi local INSTALLS diff --git "a/test/fast/Running \"nvm use system\" should work as expected" "b/test/fast/Running \"nvm use system\" should work as expected" index 4eb3319..28e5977 100755 --- "a/test/fast/Running \"nvm use system\" should work as expected" +++ "b/test/fast/Running \"nvm use system\" should work as expected" @@ -7,16 +7,16 @@ die () { echo $@ ; exit 1; } nvm_has_system_node() { return 0; } nvm_print_npm_version() { return ' (npm v1.2.3)'; } EXPECTED_OUTPUT="Now using system version of node: $(node -v)$(nvm_print_npm_version)" -[ "$(nvm use system 2>&1 | tail -n1)" = "$EXPECTED_OUTPUT" ] || die "Could not use system version of node" +[ "$(nvm use system 2>&1 | tail -1)" = "${EXPECTED_OUTPUT}" ] || die "Could not use system version of node" EXPECTED_OUTPUT="" -[ "$(nvm use --silent system 2>&1 | tail -n1)" = "$EXPECTED_OUTPUT" ] || die "Could not use system version of node or --silent was not silent" +[ "$(nvm use --silent system 2>&1 | tail -1)" = "${EXPECTED_OUTPUT}" ] || die "Could not use system version of node or --silent was not silent" nvm_has_system_node() { return 1; } nvm_print_npm_version() { return ''; } EXPECTED_OUTPUT="System version of node not found." -[ "$(nvm use system 2>&1 | tail -n1)" = "$EXPECTED_OUTPUT" ] || die "Did not report error, system node not found" +[ "$(nvm use system 2>&1 | tail -1)" = "${EXPECTED_OUTPUT}" ] || die "Did not report error, system node not found" nvm use system 2>&1 > /dev/null || [ $? -eq 127 ] || die "Did not return error code, system node not found" EXPECTED_OUTPUT="" -[ "$(nvm use --silent system 2>&1 | tail -n1)" = "$EXPECTED_OUTPUT" ] || die "Did not report error, system node not found or --silent was not silent" +[ "$(nvm use --silent system 2>&1 | tail -1)" = "${EXPECTED_OUTPUT}" ] || die "Did not report error, system node not found or --silent was not silent" nvm use --silent system 2>&1 > /dev/null || [ $? -eq 127 ] || die "Did not return error code, system node not found or --silent was not silent" diff --git a/test/installation_iojs/nvm install v1 works b/test/installation_iojs/nvm install v1 works index 67d6156..95ecc42 100755 --- a/test/installation_iojs/nvm install v1 works +++ b/test/installation_iojs/nvm install v1 works @@ -5,7 +5,7 @@ die () { echo $@ ; exit 1; } . ../../nvm.sh NVM_VERSION="v1" -NVM_PREFIXED_TEST_VERSION="$(nvm ls-remote "$NVM_VERSION" | tail -n1 | sed 's/^[ ]*//;s/[ ]*$//')" +NVM_PREFIXED_TEST_VERSION="$(nvm ls-remote "$NVM_VERSION" | tail -1 | sed 's/^[ ]*//;s/[ ]*$//')" NVM_TEST_VERSION="$(nvm_strip_iojs_prefix "$NVM_PREFIXED_TEST_VERSION")" # Remove the stuff we're clobbering. From 54d58f88db0d83b1100a35b0826e085b9583beb2 Mon Sep 17 00:00:00 2001 From: Luke Childs Date: Sat, 9 Jul 2016 09:24:01 +0100 Subject: [PATCH 0767/1426] Link to zsh-nvm in readme --- README.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.markdown b/README.markdown index 1377dfa..afd8c69 100644 --- a/README.markdown +++ b/README.markdown @@ -30,6 +30,8 @@ Note: On OS X, if you have/had a "system" node installed and want to install mod Homebrew installation is not supported. +Note: If you're using `zsh` you can easily install `nvm` as a zsh plugin. Install [`zsh-nvm`](https://github.com/lukechilds/zsh-nvm) and run `nvm_update` to update. + ### Install script To install or update nvm, you can use the [install script][2] using cURL: From 940f850f8d1b7a8c92c9b9baa13dc2fb85ae8391 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 7 Jul 2016 01:14:37 -0700 Subject: [PATCH 0768/1426] [Tests] clean up some tests --- ...se foo\" where \"foo\" is circular aborts" | 19 +++++++++---------- ..."nvm use system\" should work as expected" | 15 +++++++++++---- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git "a/test/fast/Running \"nvm use foo\" where \"foo\" is circular aborts" "b/test/fast/Running \"nvm use foo\" where \"foo\" is circular aborts" index 97c45eb..ce4fea4 100755 --- "a/test/fast/Running \"nvm use foo\" where \"foo\" is circular aborts" +++ "b/test/fast/Running \"nvm use foo\" where \"foo\" is circular aborts" @@ -3,28 +3,27 @@ die () { echo $@ ; cleanup ; exit 1; } cleanup() { - rm -rf ../../alias/foo + rm -rf "$(nvm_alias_path)/foo" } . ../../nvm.sh -echo 'foo' > ../../alias/foo +nvm_make_alias foo foo OUTPUT="$(nvm use foo 2>&1)" EXPECTED_OUTPUT='The alias "foo" leads to an infinite loop. Aborting.' -[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ - || die "'nvm use foo' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'" +[ "_${OUTPUT}" = "_${EXPECTED_OUTPUT}" ] \ + || die "'nvm use foo' did not output >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" EXIT_CODE="$(nvm use foo 2>/dev/null ; echo $?)" -[ "_$EXIT_CODE" = "_8" ] || die "Expected exit code 8; got $EXIT_CODE" +[ "_$EXIT_CODE" = "_8" ] || die "Expected exit code 8; got ${EXIT_CODE}" OUTPUT="$(nvm use --silent foo 2>&1)" EXPECTED_OUTPUT='' -[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ - || die "'nvm use --silent foo' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'" +[ "_${OUTPUT}" = "_${EXPECTED_OUTPUT}" ] \ + || die "'nvm use --silent foo' did not output >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" EXIT_CODE="$(nvm use --silent foo 2>/dev/null ; echo $?)" -[ "_$EXIT_CODE" = "_8" ] || die "Expected exit code 8 from 'nvm use --silent foo'; got $EXIT_CODE" - -cleanup; +[ $EXIT_CODE -eq 8 ] || die "Expected exit code 8 from 'nvm use --silent foo'; got ${EXIT_CODE}" +cleanup diff --git "a/test/fast/Running \"nvm use system\" should work as expected" "b/test/fast/Running \"nvm use system\" should work as expected" index 28e5977..46875ac 100755 --- "a/test/fast/Running \"nvm use system\" should work as expected" +++ "b/test/fast/Running \"nvm use system\" should work as expected" @@ -1,18 +1,24 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +cleanup() { + unset -f nvm_has_system_node nvm_print_npm_version +} +die() { echo $@ ; cleanup ; exit 1; } . ../../nvm.sh nvm_has_system_node() { return 0; } -nvm_print_npm_version() { return ' (npm v1.2.3)'; } +nvm_print_npm_version() { command printf ' (npm v1.2.3)'; } + EXPECTED_OUTPUT="Now using system version of node: $(node -v)$(nvm_print_npm_version)" -[ "$(nvm use system 2>&1 | tail -1)" = "${EXPECTED_OUTPUT}" ] || die "Could not use system version of node" +OUTPUT="$(nvm use system 2>&1)" +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "Could not use system version of node. Got >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<" EXPECTED_OUTPUT="" [ "$(nvm use --silent system 2>&1 | tail -1)" = "${EXPECTED_OUTPUT}" ] || die "Could not use system version of node or --silent was not silent" nvm_has_system_node() { return 1; } -nvm_print_npm_version() { return ''; } +nvm_print_npm_version() { command printf ''; } + EXPECTED_OUTPUT="System version of node not found." [ "$(nvm use system 2>&1 | tail -1)" = "${EXPECTED_OUTPUT}" ] || die "Did not report error, system node not found" nvm use system 2>&1 > /dev/null || [ $? -eq 127 ] || die "Did not return error code, system node not found" @@ -20,3 +26,4 @@ EXPECTED_OUTPUT="" [ "$(nvm use --silent system 2>&1 | tail -1)" = "${EXPECTED_OUTPUT}" ] || die "Did not report error, system node not found or --silent was not silent" nvm use --silent system 2>&1 > /dev/null || [ $? -eq 127 ] || die "Did not return error code, system node not found or --silent was not silent" +cleanup From 803adac676ee6e91762440addd740dc802aa9bfe Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 8 Jul 2016 02:11:51 -0700 Subject: [PATCH 0769/1426] =?UTF-8?q?[Fix]=20ensure=20proper=20checking=20?= =?UTF-8?q?of=20the=20=E2=80=9Cshwordsplit=E2=80=9D=20zsh=20option.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nvm.sh | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/nvm.sh b/nvm.sh index 1b55198..3169711 100644 --- a/nvm.sh +++ b/nvm.sh @@ -746,10 +746,10 @@ nvm_ls() { ;; esac - local ZHS_HAS_SHWORDSPLIT_UNSET - ZHS_HAS_SHWORDSPLIT_UNSET=1 + local ZSH_HAS_SHWORDSPLIT_UNSET + ZSH_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | nvm_grep shwordsplit > /dev/null ; nvm_echo $?) + ZSH_HAS_SHWORDSPLIT_UNSET="$(setopt | nvm_grep shwordsplit > /dev/null && nvm_echo $? || nvm_echo $?)" setopt shwordsplit fi @@ -820,7 +820,7 @@ nvm_ls() { )" fi - if [ "$ZHS_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then + if [ "$ZSH_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then unsetopt shwordsplit fi fi @@ -898,9 +898,9 @@ nvm_ls_remote_index_tab() { else PATTERN=".*" fi - ZHS_HAS_SHWORDSPLIT_UNSET=1 + ZSH_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | nvm_grep shwordsplit > /dev/null ; nvm_echo $?) + ZSH_HAS_SHWORDSPLIT_UNSET="$(setopt | nvm_grep shwordsplit > /dev/null && nvm_echo $? || nvm_echo $?)" setopt shwordsplit fi VERSIONS="$(nvm_download -L -s "$MIRROR/index.tab" -o - \ @@ -910,7 +910,7 @@ nvm_ls_remote_index_tab() { s/[[:blank:]].*//" \ | nvm_grep -w "$PATTERN" \ | $SORT_COMMAND)" - if [ "$ZHS_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then + if [ "$ZSH_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then unsetopt shwordsplit fi if [ -z "$VERSIONS" ]; then @@ -1027,7 +1027,7 @@ nvm_print_implicit_alias() { return 2 fi - local ZHS_HAS_SHWORDSPLIT_UNSET + local ZSH_HAS_SHWORDSPLIT_UNSET local NVM_IOJS_PREFIX NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" @@ -1044,9 +1044,9 @@ nvm_print_implicit_alias() { NVM_COMMAND="nvm_ls $NVM_IMPLICIT" fi - ZHS_HAS_SHWORDSPLIT_UNSET=1 + ZSH_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | nvm_grep shwordsplit > /dev/null ; nvm_echo $?) + ZSH_HAS_SHWORDSPLIT_UNSET="$(setopt | nvm_grep shwordsplit > /dev/null && nvm_echo $? || nvm_echo $?)" setopt shwordsplit fi @@ -1058,7 +1058,7 @@ nvm_print_implicit_alias() { NVM_IOJS_VERSION="$(nvm_echo "$NVM_IOJS_VERSION" | command sed "s/^$NVM_IMPLICIT-//" | nvm_grep -e '^v' | command cut -c2- | command cut -d . -f 1,2 | uniq | command tail -1)" fi - if [ "$ZHS_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then + if [ "$ZSH_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then unsetopt shwordsplit fi @@ -1079,15 +1079,15 @@ nvm_print_implicit_alias() { NVM_COMMAND="nvm_ls node" fi - ZHS_HAS_SHWORDSPLIT_UNSET=1 + ZSH_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | nvm_grep shwordsplit > /dev/null ; nvm_echo $?) + ZSH_HAS_SHWORDSPLIT_UNSET="$(setopt | nvm_grep shwordsplit > /dev/null && nvm_echo $? || nvm_echo $?)" setopt shwordsplit fi LAST_TWO=$($NVM_COMMAND | nvm_grep -e '^v' | command cut -c2- | command cut -d . -f 1,2 | uniq) - if [ "$ZHS_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then + if [ "$ZSH_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then unsetopt shwordsplit fi ;; @@ -1098,9 +1098,9 @@ nvm_print_implicit_alias() { local MOD local NORMALIZED_VERSION - ZHS_HAS_SHWORDSPLIT_UNSET=1 + ZSH_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | nvm_grep shwordsplit > /dev/null ; nvm_echo $?) + ZSH_HAS_SHWORDSPLIT_UNSET="$(setopt | nvm_grep shwordsplit > /dev/null && nvm_echo $? || nvm_echo $?)" setopt shwordsplit fi for MINOR in $LAST_TWO; do @@ -1116,7 +1116,7 @@ nvm_print_implicit_alias() { fi fi done - if [ "$ZHS_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then + if [ "$ZSH_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then unsetopt shwordsplit fi @@ -1789,10 +1789,10 @@ nvm() { ;; "debug" ) - local ZHS_HAS_SHWORDSPLIT_UNSET - ZHS_HAS_SHWORDSPLIT_UNSET=1 + local ZSH_HAS_SHWORDSPLIT_UNSET + ZSH_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | nvm_grep shwordsplit > /dev/null ; nvm_echo $?) + ZSH_HAS_SHWORDSPLIT_UNSET="$(setopt | nvm_grep shwordsplit > /dev/null && nvm_echo $? || nvm_echo $?)" setopt shwordsplit fi nvm_err "nvm --version: v$(nvm --version)" @@ -1807,7 +1807,7 @@ nvm() { NVM_DEBUG_OUTPUT="$($NVM_DEBUG_COMMAND 2>&1)" nvm_err "$NVM_DEBUG_COMMAND: $(nvm_sanitize_path "$NVM_DEBUG_OUTPUT")" done - if [ "$ZHS_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then + if [ "$ZSH_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then unsetopt shwordsplit fi return 42 @@ -2256,10 +2256,10 @@ nvm() { local EXIT_CODE - local ZHS_HAS_SHWORDSPLIT_UNSET - ZHS_HAS_SHWORDSPLIT_UNSET=1 + local ZSH_HAS_SHWORDSPLIT_UNSET + ZSH_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | nvm_grep shwordsplit > /dev/null ; nvm_echo $?) + ZSH_HAS_SHWORDSPLIT_UNSET="$(setopt | nvm_grep shwordsplit > /dev/null && nvm_echo $? || nvm_echo $?)" setopt shwordsplit fi if [ "_$VERSION" = "_N/A" ]; then @@ -2270,7 +2270,7 @@ nvm() { nvm exec "${NVM_SILENT-}" "$VERSION" node "$@" fi EXIT_CODE="$?" - if [ "$ZHS_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then + if [ "$ZSH_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then unsetopt shwordsplit fi return $EXIT_CODE From 186eb8838dd43df3c3bf7b9d301101a9177398ca Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 7 Jul 2016 15:38:34 -0700 Subject: [PATCH 0770/1426] =?UTF-8?q?[Tests]=20make=20=E2=80=9Cnvm=20use?= =?UTF-8?q?=20iojs=E2=80=9D=20test=20actually=20test=20that=20thing.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/common.sh | 46 +++++++++++++++++++ ..."nvm use iojs\" uses latest io.js version" | 43 +++++++++-------- 2 files changed, 67 insertions(+), 22 deletions(-) diff --git a/test/common.sh b/test/common.sh index f87cc5c..033817c 100644 --- a/test/common.sh +++ b/test/common.sh @@ -17,3 +17,49 @@ strip_colors() { echo "$line" | LC_ALL=C command sed 's/\[[ -?]*[@-~]//g' done } + +make_echo() { + echo "#!/bin/sh" > "$1" + echo "echo \"${2}\"" > "$1" + chmod a+x "$1" +} + +make_fake_node() { + local VERSION + VERSION="${1-}" + [ -n "${VERSION}" ] || return 1 + + local BIN_PATH + BIN_PATH="$(nvm_version_path "${VERSION}")/bin" + mkdir -p "${BIN_PATH}" || { + echo >&2 'unable to make bin dir' + return 2 + } + + make_echo "${BIN_PATH}/node" "${VERSION}" || { + echo >&2 'unable to make fake node bin' + return 3 + } +} + +make_fake_iojs() { + local VERSION + VERSION="${1-}" + [ -n "${VERSION}" ] || return 1 + + local BIN_PATH + BIN_PATH="$(nvm_version_path "iojs-${VERSION}")/bin" + mkdir -p "${BIN_PATH}" || { + echo >&2 'unable to make bin dir' + return 2 + } + + make_echo "${BIN_PATH}/node" "${VERSION}" || { + echo >&2 'unable to make fake node bin' + return 3 + } + make_echo "${BIN_PATH}/iojs" "${VERSION}" || { + echo >&2 'unable to make fake iojs bin' + return 3 + } +} diff --git "a/test/fast/Running \"nvm use iojs\" uses latest io.js version" "b/test/fast/Running \"nvm use iojs\" uses latest io.js version" index edee505..1a44d93 100755 --- "a/test/fast/Running \"nvm use iojs\" uses latest io.js version" +++ "b/test/fast/Running \"nvm use iojs\" uses latest io.js version" @@ -1,38 +1,37 @@ #!/bin/sh +set -ex + +. ../common.sh + die () { echo $@ ; cleanup ; exit 1; } +VERSION="v3.99.0" + cleanup() { - rm -rf ../../alias/foo + unset -f make_echo cleanup + rm -rf "$(nvm_version_path "iojs-${VERSION}")" } +set +ex # TODO . ../../nvm.sh +set -ex -echo 'foo' > ../../alias/foo +nvm deactivate || die "unable to deactivate; current: >$(nvm current)<" -OUTPUT="$(nvm use foo 2>&1)" -EXPECTED_OUTPUT='The alias "foo" leads to an infinite loop. Aborting.' -[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ - || die "'nvm use foo' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'" +make_fake_iojs "${VERSION}" || die "unable to make_fake_iojs ${VERSION}" -EXIT_CODE="$(nvm use foo 2>/dev/null ; echo $?)" -[ "_$EXIT_CODE" = "_8" ] || die "Expected exit code 8; got $EXIT_CODE" +IOJS_VERSION="$(nvm_version iojs)" +[ -n "${IOJS_VERSION}" ] || die 'expected an io.js version; got none' -OUTPUT="$(nvm use --silent foo 2>&1)" -EXPECTED_OUTPUT='' -[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ - || die "'nvm use --silent foo' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'" +EXPECTED_OUTPUT="$(nvm_add_iojs_prefix ${VERSION})" +[ "${IOJS_VERSION}" = "${EXPECTED_OUTPUT}" ] || die "iojs version was not >${EXPECTED_OUTPUT}; got >${IOJS_VERSION}<" -OUTPUT="$(nvm use foo --silent 2>&1)" -EXPECTED_OUTPUT='' -[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ - || die "'nvm use foo --silent' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'" +nvm use --delete-prefix iojs || die '`nvm use iojs` failed' -EXIT_CODE="$(nvm use --silent foo 2>/dev/null ; echo $?)" -[ "_$EXIT_CODE" = "_8" ] || die "Expected exit code 8 from 'nvm use --silent foo'; got $EXIT_CODE" +CURRENT="$(nvm current)" +echo "current: ${CURRENT}" -EXIT_CODE="$(nvm use foo --silent 2>/dev/null ; echo $?)" -[ "_$EXIT_CODE" = "_8" ] || die "Expected exit code 8 from 'nvm use foo --silent'; got $EXIT_CODE" - -cleanup; +[ "${CURRENT}" = "${IOJS_VERSION}" ] || die "expected >${IOJS_VERSION}<; got >${CURRENT}<" +cleanup From ecbd7d45727c63efdcd1008bef4252937974cfe2 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 7 Jul 2016 00:00:59 -0700 Subject: [PATCH 0771/1426] [Tests] use `-ex` option during tests when possible Relates to #1130 --- nvm.sh | 2 +- ...uld create a file in the alias directory." | 6 +++- ..." should display current nvm environment." | 3 +- ...ould unset the nvm environment variables." | 3 ++ ...-packages-from\" requires a valid version" | 16 +++++++-- ...ll\" with an invalid version fails nicely" | 8 ++++- ...m unalias\" should remove the alias file." | 11 ++++-- ... should remove the appropriate directory." | 2 ++ ...h incorrect file permissions fails nicely" | 6 ++-- ... should unset all function and variables." | 9 ++--- ...se foo\" where \"foo\" is circular aborts" | 10 ++++++ ..."nvm use iojs\" uses latest io.js version" | 2 -- ..."nvm use system\" should work as expected" | 21 +++++++++-- ...create and change the \"current\" symlink" | 8 +++-- ... symlink if $NVM_SYMLINK_CURRENT is false" | 35 ++++++++++--------- ....sh should make the nvm command available. | 3 ++ ....sh should not modify parameters of caller | 2 ++ test/fast/setup | 2 ++ test/fast/setup_dir | 2 ++ test/fast/teardown | 2 ++ test/fast/teardown_dir | 2 ++ 21 files changed, 115 insertions(+), 40 deletions(-) diff --git a/nvm.sh b/nvm.sh index 3169711..2042a24 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2576,7 +2576,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" nvm_version_greater nvm_version_greater_than_or_equal_to \ nvm_print_npm_version nvm_npm_global_modules \ nvm_has_system_node nvm_has_system_iojs \ - nvm_download nvm_get_latest nvm_has nvm_get_latest \ + nvm_download nvm_get_latest nvm_has \ nvm_supports_source_options nvm_auto nvm_supports_xz \ nvm_echo nvm_err nvm_grep \ nvm_has_colors nvm_process_parameters > /dev/null 2>&1 diff --git "a/test/fast/Running \"nvm alias\" should create a file in the alias directory." "b/test/fast/Running \"nvm alias\" should create a file in the alias directory." index 38ba260..8a466bb 100755 --- "a/test/fast/Running \"nvm alias\" should create a file in the alias directory." +++ "b/test/fast/Running \"nvm alias\" should create a file in the alias directory." @@ -1,5 +1,9 @@ #!/bin/sh +set -ex + . ../../nvm.sh + nvm alias test v0.1.2 -[ "$(cat ../../alias/test)" = "v0.1.2" ] + +[ "$(cat "$(nvm_alias_path)/test")" = "v0.1.2" ] diff --git "a/test/fast/Running \"nvm current\" should display current nvm environment." "b/test/fast/Running \"nvm current\" should display current nvm environment." index 5748fd6..db87520 100755 --- "a/test/fast/Running \"nvm current\" should display current nvm environment." +++ "b/test/fast/Running \"nvm current\" should display current nvm environment." @@ -1,5 +1,7 @@ #!/bin/sh +set -ex + die () { echo $@ ; exit 1; } . ../../nvm.sh @@ -7,4 +9,3 @@ die () { echo $@ ; exit 1; } nvm deactivate 2>&1 [ "$(nvm current)" = "system" ] || [ "$(nvm current)" = "none" ] || die '"nvm current" did not report "system" or "none" when deactivated' - diff --git "a/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." "b/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." index 0356276..ba51074 100755 --- "a/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." +++ "b/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." @@ -1,5 +1,7 @@ #!/bin/sh +set -ex + mkdir -p ../../v0.2.3 die () { echo $@ ; exit 1; } @@ -7,6 +9,7 @@ die () { echo $@ ; exit 1; } [ `expr $PATH : ".*v0.2.3/.*/bin"` = 0 ] || echo "WARNING: Unexpectedly found v0.2.3 already active" >&2 . ../../nvm.sh + nvm use --delete-prefix v0.2.3 || die "Failed to activate v0.2.3" [ `expr "$PATH" : ".*v0.2.3/.*/bin"` != 0 ] || die "PATH not set up properly" [ `expr "$NODE_PATH" : ".*v0.2.3/.*/lib/node_modules"` = 0 ] || die "NODE_PATH should not contain (npm root -g)" diff --git "a/test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" "b/test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" index c6d2c33..f7b016d 100755 --- "a/test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" +++ "b/test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" @@ -1,5 +1,7 @@ #!/bin/sh +set -ex + die () { echo $@ ; cleanup ; exit 1; } cleanup () { rm -rf "${NVM_DIR}/v0.10.4" @@ -11,22 +13,30 @@ mkdir "${NVM_DIR}/v0.10.4" nvm deactivate >/dev/null 2>&1 +set +ex # needed for stderr INSTALL_ERROR_MSG="$(nvm install v0.10.5 --reinstall-packages-from=0.11 2>&1)" +set -ex EXPECTED_ERROR_MSG="If --reinstall-packages-from is provided, it must point to an installed version of node." [ "~$INSTALL_ERROR_MSG" = "~$EXPECTED_ERROR_MSG" ] \ || die ""nvm install --reinstall-packages-from" should fail when given an uninstalled version: expected '$EXPECTED_ERROR_MSG', got '$INSTALL_ERROR_MSG'" +set +e # TODO: fix INSTALL_EXIT_CODE="$(nvm install v0.10.5 --reinstall-packages-from=0.11 >/dev/null 2>&1; echo $?)" -[ "~$INSTALL_EXIT_CODE" = "~5" ] \ - || die ""nvm install --reinstall-packages-from" should exit with code 5 when given an uninstalled version, got $INSTALL_EXIT_CODE" +set -e +[ $INSTALL_EXIT_CODE -eq 5 ] \ + || die ""nvm install --reinstall-packages-from" should exit with code 5 when given an uninstalled version, got ${INSTALL_EXIT_CODE}" +set +ex # needed for stderr INSTALL_ERROR_MSG="$(nvm install v0.10.5 --reinstall-packages-from=0.10.5 2>&1)" +set -ex EXPECTED_ERROR_MSG="You can't reinstall global packages from the same version of node you're installing." [ "~$INSTALL_ERROR_MSG" = "~$EXPECTED_ERROR_MSG" ] \ || die ""nvm install --reinstall-packages-from" should fail when given the same version: expected '$EXPECTED_ERROR_MSG', got '$INSTALL_ERROR_MSG'" +set +e # TODO: fix INSTALL_EXIT_CODE="$(nvm install v0.10.5 --reinstall-packages-from=0.10.5 >/dev/null 2>&1; echo $?)" -[ "~$INSTALL_EXIT_CODE" = "~4" ] \ +set -e +[ $INSTALL_EXIT_CODE -eq 4 ] \ || die ""nvm install --reinstall-packages-from" should exit with code 4 when given the same version, got $INSTALL_EXIT_CODE" cleanup diff --git "a/test/fast/Running \"nvm install\" with an invalid version fails nicely" "b/test/fast/Running \"nvm install\" with an invalid version fails nicely" index d113890..3d78340 100755 --- "a/test/fast/Running \"nvm install\" with an invalid version fails nicely" +++ "b/test/fast/Running \"nvm install\" with an invalid version fails nicely" @@ -1,7 +1,13 @@ #!/bin/sh +set -ex + die () { echo $@ ; exit 1; } . ../../nvm.sh -[ "$(nvm install invalid.invalid 2>&1)" = "Version 'invalid.invalid' not found - try \`nvm ls-remote\` to browse available versions." ] || die "nvm installing an invalid version did not print a nice error message" +set +ex # needed for stderr +OUTPUT="$(nvm install invalid.invalid 2>&1)" +set -ex +EXPECTED_OUTPUT="Version 'invalid.invalid' not found - try \`nvm ls-remote\` to browse available versions." +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "nvm installing an invalid version did not print a nice error message" diff --git "a/test/fast/Running \"nvm unalias\" should remove the alias file." "b/test/fast/Running \"nvm unalias\" should remove the alias file." index f8ed49d..d49ebf2 100755 --- "a/test/fast/Running \"nvm unalias\" should remove the alias file." +++ "b/test/fast/Running \"nvm unalias\" should remove the alias file." @@ -1,6 +1,13 @@ #!/bin/sh -echo v0.1.2 > ../../alias/test +set -ex + +ALIAS_PATH="../../alias" + +echo v0.1.2 > "${ALIAS_PATH}/test" + . ../../nvm.sh + nvm unalias test -! [ -e ../../alias/test ] + +! [ -e "${ALIAS_PATH}/test" ] diff --git "a/test/fast/Running \"nvm uninstall\" should remove the appropriate directory." "b/test/fast/Running \"nvm uninstall\" should remove the appropriate directory." index ba1ddbb..0123ab7 100755 --- "a/test/fast/Running \"nvm uninstall\" should remove the appropriate directory." +++ "b/test/fast/Running \"nvm uninstall\" should remove the appropriate directory." @@ -1,5 +1,7 @@ #!/bin/sh +set -ex + cd ../.. mkdir v0.0.1 mkdir src/node-v0.0.1 diff --git "a/test/fast/Running \"nvm uninstall\" with incorrect file permissions fails nicely" "b/test/fast/Running \"nvm uninstall\" with incorrect file permissions fails nicely" index 1fad640..5fd2638 100755 --- "a/test/fast/Running \"nvm uninstall\" with incorrect file permissions fails nicely" +++ "b/test/fast/Running \"nvm uninstall\" with incorrect file permissions fails nicely" @@ -1,5 +1,7 @@ #!/bin/sh +set -ex + cd ../.. mkdir v0.0.1 mkdir src/node-v0.0.1 @@ -8,7 +10,7 @@ sudo touch v0.0.1/sudo . ./nvm.sh -RETURN_MESSAGE="$(nvm uninstall v0.0.1 2>&1)" +RETURN_MESSAGE="$(nvm uninstall v0.0.1 2>&1 || echo)" CHECK_FOR="Cannot uninstall, incorrect permissions on installation folder" -test "${RETURN_MESSAGE#*$CHECK_FOR}" != "$RETURN_MESSAGE" || exit 1 +[ "${RETURN_MESSAGE#*$CHECK_FOR}" != "$RETURN_MESSAGE" ] || exit 1 diff --git "a/test/fast/Running \"nvm unload\" should unset all function and variables." "b/test/fast/Running \"nvm unload\" should unset all function and variables." index 0f4c50e..3ac3505 100755 --- "a/test/fast/Running \"nvm unload\" should unset all function and variables." +++ "b/test/fast/Running \"nvm unload\" should unset all function and variables." @@ -1,12 +1,13 @@ #!/bin/sh -fail () { echo $@ ; exit 1; } +set -ex + +die () { echo $@ ; exit 1; } . ../../nvm.sh -type nvm > /dev/null 2>&1 || fail "NVM not loaded" +type nvm > /dev/null 2>&1 || die "nvm not loaded" nvm unload -type nvm > /dev/null 2>&1 && fail "NVM not unloaded" || exit 0 - +! type nvm > /dev/null 2>&1 || die "nvm not unloaded" diff --git "a/test/fast/Running \"nvm use foo\" where \"foo\" is circular aborts" "b/test/fast/Running \"nvm use foo\" where \"foo\" is circular aborts" index ce4fea4..023415c 100755 --- "a/test/fast/Running \"nvm use foo\" where \"foo\" is circular aborts" +++ "b/test/fast/Running \"nvm use foo\" where \"foo\" is circular aborts" @@ -1,5 +1,7 @@ #!/bin/sh +set -ex + die () { echo $@ ; cleanup ; exit 1; } cleanup() { @@ -10,20 +12,28 @@ cleanup() { nvm_make_alias foo foo +set +ex # needed for stderr OUTPUT="$(nvm use foo 2>&1)" +set -ex EXPECTED_OUTPUT='The alias "foo" leads to an infinite loop. Aborting.' [ "_${OUTPUT}" = "_${EXPECTED_OUTPUT}" ] \ || die "'nvm use foo' did not output >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" +set +ex # needed for stderr EXIT_CODE="$(nvm use foo 2>/dev/null ; echo $?)" +set -ex [ "_$EXIT_CODE" = "_8" ] || die "Expected exit code 8; got ${EXIT_CODE}" +set +ex # needed for stderr OUTPUT="$(nvm use --silent foo 2>&1)" +set -ex EXPECTED_OUTPUT='' [ "_${OUTPUT}" = "_${EXPECTED_OUTPUT}" ] \ || die "'nvm use --silent foo' did not output >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" +set +ex # needed for stderr EXIT_CODE="$(nvm use --silent foo 2>/dev/null ; echo $?)" +set -ex [ $EXIT_CODE -eq 8 ] || die "Expected exit code 8 from 'nvm use --silent foo'; got ${EXIT_CODE}" cleanup diff --git "a/test/fast/Running \"nvm use iojs\" uses latest io.js version" "b/test/fast/Running \"nvm use iojs\" uses latest io.js version" index 1a44d93..6c54203 100755 --- "a/test/fast/Running \"nvm use iojs\" uses latest io.js version" +++ "b/test/fast/Running \"nvm use iojs\" uses latest io.js version" @@ -13,9 +13,7 @@ cleanup() { rm -rf "$(nvm_version_path "iojs-${VERSION}")" } -set +ex # TODO . ../../nvm.sh -set -ex nvm deactivate || die "unable to deactivate; current: >$(nvm current)<" diff --git "a/test/fast/Running \"nvm use system\" should work as expected" "b/test/fast/Running \"nvm use system\" should work as expected" index 46875ac..196353d 100755 --- "a/test/fast/Running \"nvm use system\" should work as expected" +++ "b/test/fast/Running \"nvm use system\" should work as expected" @@ -1,5 +1,7 @@ #!/bin/sh +set -ex + cleanup() { unset -f nvm_has_system_node nvm_print_npm_version } @@ -11,19 +13,32 @@ nvm_has_system_node() { return 0; } nvm_print_npm_version() { command printf ' (npm v1.2.3)'; } EXPECTED_OUTPUT="Now using system version of node: $(node -v)$(nvm_print_npm_version)" +set +x # since stderr is needed OUTPUT="$(nvm use system 2>&1)" +set -x [ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "Could not use system version of node. Got >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<" + EXPECTED_OUTPUT="" -[ "$(nvm use --silent system 2>&1 | tail -1)" = "${EXPECTED_OUTPUT}" ] || die "Could not use system version of node or --silent was not silent" +set +x # since stderr is needed +OUTPUT="$(nvm use --silent system 2>&1 | tail -1)" +set -x +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "Could not use system version of node or --silent was not silent" nvm_has_system_node() { return 1; } nvm_print_npm_version() { command printf ''; } EXPECTED_OUTPUT="System version of node not found." -[ "$(nvm use system 2>&1 | tail -1)" = "${EXPECTED_OUTPUT}" ] || die "Did not report error, system node not found" +set +x # since stderr is needed +OUTPUT="$(nvm use system 2>&1 | tail -1)" +set -x +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "Did not report error, system node not found" + nvm use system 2>&1 > /dev/null || [ $? -eq 127 ] || die "Did not return error code, system node not found" EXPECTED_OUTPUT="" -[ "$(nvm use --silent system 2>&1 | tail -1)" = "${EXPECTED_OUTPUT}" ] || die "Did not report error, system node not found or --silent was not silent" +set +x # since stderr is needed +OUTPUT="$(nvm use --silent system 2>&1 | tail -1)" +set -x +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "Did not report error, system node not found or --silent was not silent" nvm use --silent system 2>&1 > /dev/null || [ $? -eq 127 ] || die "Did not return error code, system node not found or --silent was not silent" cleanup diff --git "a/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" "b/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" index 8ddaedc..e600497 100755 --- "a/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" +++ "b/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" @@ -1,11 +1,13 @@ -#!/usr/bin/env bash +#!/bin/sh + +set -ex export NVM_SYMLINK_CURRENT=true . ../../nvm.sh rm -rf "${NVM_DIR}/v0.10.29" mkdir "${NVM_DIR}/v0.10.29" -nvm use 0.10.29 +nvm use --delete-prefix 0.10.29 rmdir "${NVM_DIR}/v0.10.29" if [ ! -L "${NVM_DIR}/current" ];then @@ -22,7 +24,7 @@ fi rm -rf "${NVM_DIR}/v0.11.13" mkdir "${NVM_DIR}/v0.11.13" -nvm use 0.11.13 +nvm use --delete-prefix 0.11.13 rmdir "${NVM_DIR}/v0.11.13" newLink="$(readlink "${NVM_DIR}/current")" diff --git "a/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" "b/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" index 3603e04..b84ebf4 100755 --- "a/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" +++ "b/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" @@ -1,4 +1,6 @@ -#!/usr/bin/env bash +#!/bin/sh + +set -ex . ../../nvm.sh @@ -8,17 +10,17 @@ TEST_COUNT=0 TEST_PASSED=0 TEST_FAILED=0 -function registerExpectedSymlink() { +registerExpectedSymlink() { registerResult ${1} } -function registerExpectedNoSymlink() { - [ ${1} -ne 0 ] +registerExpectedNoSymlink() { + [ $1 -ne 0 ] registerResult $? } -function registerResult() { - result=${1} +registerResult() { + result="${1}" TEST_COUNT=$(($TEST_COUNT + 1)) @@ -27,19 +29,19 @@ function registerResult() { || TEST_FAILED=$(($TEST_FAILED + 1)) } -function cleanup() { - rm -rf ../../${TEST_NODE_VERSION} - rm -f ../../current +cleanup() { + rm -rf "${NVM_DIR}/${TEST_NODE_VERSION}" + rm -f "${NVM_DIR}/current" } -function runNvmUse() { - mkdir ../../${TEST_NODE_VERSION} - nvm use ${TEST_NODE_VERSION} > /dev/null 2>&1 - rmdir ../../${TEST_NODE_VERSION} +runNvmUse() { + mkdir "${NVM_DIR}/${TEST_NODE_VERSION}" + nvm use --delete-prefix "${TEST_NODE_VERSION}" > /dev/null 2>&1 + rmdir "${NVM_DIR}/${TEST_NODE_VERSION}" } -function isCurrentSymlinkPresent() { - [ -L ../../current ] +isCurrentSymlinkPresent() { + [ -L "${NVM_DIR}/current" ] } NVM_SYMLINK_CURRENT=false @@ -80,5 +82,4 @@ registerExpectedNoSymlink $? cleanup -[ ${TEST_FAILED} -ne 0 ] && echo "${TEST_COUNT} tested, ${TEST_PASSED} passed, ${TEST_FAILED} failed" && exit 1 || true - +[ $TEST_FAILED -ne 0 ] && echo "${TEST_COUNT} tested, ${TEST_PASSED} passed, ${TEST_FAILED} failed" && exit 1 || true diff --git a/test/fast/Sourcing nvm.sh should make the nvm command available. b/test/fast/Sourcing nvm.sh should make the nvm command available. index 24f8efa..9c215d5 100755 --- a/test/fast/Sourcing nvm.sh should make the nvm command available. +++ b/test/fast/Sourcing nvm.sh should make the nvm command available. @@ -1,4 +1,7 @@ #!/bin/sh +set -ex + . ../../nvm.sh + nvm diff --git a/test/fast/Sourcing nvm.sh should not modify parameters of caller b/test/fast/Sourcing nvm.sh should not modify parameters of caller index 67e88cf..cf8b149 100755 --- a/test/fast/Sourcing nvm.sh should not modify parameters of caller +++ b/test/fast/Sourcing nvm.sh should not modify parameters of caller @@ -1,5 +1,7 @@ #!/bin/sh +set -ex + set -- yes . ../../nvm.sh [ "$1" = yes ] diff --git a/test/fast/setup b/test/fast/setup index f98394b..6de3378 100755 --- a/test/fast/setup +++ b/test/fast/setup @@ -1,5 +1,7 @@ #!/bin/sh +set -ex + ( cd ../.. diff --git a/test/fast/setup_dir b/test/fast/setup_dir index 5e2a208..fd36775 100755 --- a/test/fast/setup_dir +++ b/test/fast/setup_dir @@ -1,5 +1,7 @@ #!/bin/sh +set -ex + ( cd ../.. diff --git a/test/fast/teardown b/test/fast/teardown index a1c73df..75a406e 100755 --- a/test/fast/teardown +++ b/test/fast/teardown @@ -1,5 +1,7 @@ #!/bin/sh +set -ex + # Remove temporary files ( cd ../.. diff --git a/test/fast/teardown_dir b/test/fast/teardown_dir index 065269a..9efb49e 100755 --- a/test/fast/teardown_dir +++ b/test/fast/teardown_dir @@ -1,5 +1,7 @@ #!/bin/sh +set -ex + ( cd ../.. From 58a82a1d3128e2b5e7bb9cf662480e5f720b1e07 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 17 Jul 2016 19:54:10 -0700 Subject: [PATCH 0772/1426] [Tests] add `nvm exec --lts` tests. --- .../Running \"nvm exec --lts\" should work" | 18 ++++++++++++++++++ test/slow/nvm exec/setup_dir | 1 + test/slow/nvm exec/teardown_dir | 1 + 3 files changed, 20 insertions(+) create mode 100755 "test/slow/nvm exec/Running \"nvm exec --lts\" should work" diff --git "a/test/slow/nvm exec/Running \"nvm exec --lts\" should work" "b/test/slow/nvm exec/Running \"nvm exec --lts\" should work" new file mode 100755 index 0000000..ce8ebaf --- /dev/null +++ "b/test/slow/nvm exec/Running \"nvm exec --lts\" should work" @@ -0,0 +1,18 @@ +#!/bin/sh + +set -ex + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +nvm install --lts || die 'nvm install --lts failed' + +NPM_VERSION_LTS="$(npm --version)" +TEST_STRING="foo bar" + +nvm use 1.0.0 && [ "$(node --version)" = "v1.0.0" ] || die "\`nvm use\` failed!" + +[ "$(nvm exec --lts npm --version | tail -1)" = "$NPM_VERSION_LTS" ] || die "`nvm exec` failed to run with the correct version" + +[ "$(nvm exec --lts bash -c "printf '$TEST_STRING'" | tail -1)" = "$TEST_STRING" ] || die "\`nvm exec\` failed to run with a command including whitespace" diff --git a/test/slow/nvm exec/setup_dir b/test/slow/nvm exec/setup_dir index d858b23..d6bba73 100755 --- a/test/slow/nvm exec/setup_dir +++ b/test/slow/nvm exec/setup_dir @@ -3,6 +3,7 @@ . ../../../nvm.sh nvm install 0.10.7 nvm install 1.0.0 +nvm install --lts if [ -f ".nvmrc" ]; then mv .nvmrc .nvmrc.bak diff --git a/test/slow/nvm exec/teardown_dir b/test/slow/nvm exec/teardown_dir index d9e0dc6..573e91d 100755 --- a/test/slow/nvm exec/teardown_dir +++ b/test/slow/nvm exec/teardown_dir @@ -4,6 +4,7 @@ nvm deactivate nvm uninstall v0.10.7 nvm uninstall v1.0.0 +nvm uninstall --lts rm .nvmrc From b2c5616d7a5d2aa6a1f917f8c04f1640b2a8ca54 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 17 Jul 2016 19:54:26 -0700 Subject: [PATCH 0773/1426] [Tests] avoid accidental command execution in test failure message. --- "test/slow/nvm exec/Running \"nvm exec 0.x\" should work" | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git "a/test/slow/nvm exec/Running \"nvm exec 0.x\" should work" "b/test/slow/nvm exec/Running \"nvm exec 0.x\" should work" index 537fafe..b06bbdc 100755 --- "a/test/slow/nvm exec/Running \"nvm exec 0.x\" should work" +++ "b/test/slow/nvm exec/Running \"nvm exec 0.x\" should work" @@ -10,6 +10,6 @@ TEST_STRING="foo bar" nvm use 1.0.0 && [ "$(node --version)" = "v1.0.0" ] || die "\`nvm use\` failed!" -[ "$(nvm exec 0.10 npm --version | tail -1)" = "$NPM_VERSION_TEN" ] || die "`nvm exec` failed to run with the correct version" +[ "$(nvm exec 0.10 npm --version | tail -1)" = "$NPM_VERSION_TEN" ] || die "\`nvm exec\` failed to run with the correct version" -[ "$(nvm exec 0.10 bash -c "printf '$TEST_STRING'" | tail -1)" = "$TEST_STRING" ] || die "`nvm exec` failed to run with the command include white-spaces" +[ "$(nvm exec 0.10 bash -c "printf '$TEST_STRING'" | tail -1)" = "$TEST_STRING" ] || die "\`nvm exec\` failed to run with a command including whitespace" From 876d11737618a4be62c3d860f420b66b5f03bcfc Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 18 Jul 2016 00:35:01 -0700 Subject: [PATCH 0774/1426] [Tests] add `nvm run --lts` tests. --- .../Running \"nvm run --lts\" should work" | 15 +++++++++++++++ test/slow/nvm run/setup_dir | 3 +++ test/slow/nvm run/teardown_dir | 3 +++ 3 files changed, 21 insertions(+) create mode 100755 "test/slow/nvm run/Running \"nvm run --lts\" should work" diff --git "a/test/slow/nvm run/Running \"nvm run --lts\" should work" "b/test/slow/nvm run/Running \"nvm run --lts\" should work" new file mode 100755 index 0000000..c512887 --- /dev/null +++ "b/test/slow/nvm run/Running \"nvm run --lts\" should work" @@ -0,0 +1,15 @@ +#!/bin/sh + +set -ex + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +OUTPUT="$(nvm run --silent --lts --version)" +EXPECTED_OUTPUT="$(nvm_match_version 'lts/*')" +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "\`nvm run --lts\` failed to run with the correct version; expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" + +OUTPUT="$(nvm run --silent --lts=argon --version)" +EXPECTED_OUTPUT="$(nvm_match_version 'lts/argon')" +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "\`nvm run --lts=argon\` failed to run with the correct version; expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" diff --git a/test/slow/nvm run/setup_dir b/test/slow/nvm run/setup_dir index 870a22c..a767a02 100755 --- a/test/slow/nvm run/setup_dir +++ b/test/slow/nvm run/setup_dir @@ -1,7 +1,10 @@ #!/bin/sh . ../../../nvm.sh + nvm install 0.10.7 +nvm install --lts=argon +nvm install --lts if [ -f ".nvmrc" ]; then mv .nvmrc .nvmrc.bak diff --git a/test/slow/nvm run/teardown_dir b/test/slow/nvm run/teardown_dir index 55e2a61..4290f07 100755 --- a/test/slow/nvm run/teardown_dir +++ b/test/slow/nvm run/teardown_dir @@ -1,8 +1,11 @@ #!/bin/sh . ../../../nvm.sh + nvm deactivate nvm uninstall v0.10.7 +nvm uninstall --lts=argon +nvm uninstall --lts rm .nvmrc From 28822ff81ef7bec32b54da18643a0039ec7ae240 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 18 Jul 2016 23:39:35 -0700 Subject: [PATCH 0775/1426] [Docs] update README for LTS. --- README.markdown | 36 +++++++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/README.markdown b/README.markdown index afd8c69..385cf48 100644 --- a/README.markdown +++ b/README.markdown @@ -28,7 +28,7 @@ Note: On OS X, if you have/had a "system" node installed and want to install mod - If you have an `~/.npmrc` file, make sure it does not contain any `prefix` settings (which is not compatible with nvm) - You can (but should not?) keep your previous "system" node install, but nvm will only be available to your user account (the one used to install nvm). This might cause version mismatches, as other users will be using `/usr/local/lib/node_modules/*` VS your user account using `~/.nvm/versions/node/vX.X.X/lib/node_modules/*` -Homebrew installation is not supported. +Homebrew installation is not supported. If you have issues with homebrew-installed `nvm`, please `brew uninstall` it, and install it using the instructions below, before filing an issue. Note: If you're using `zsh` you can easily install `nvm` as a zsh plugin. Install [`zsh-nvm`](https://github.com/lukechilds/zsh-nvm) and run `nvm_update` to update. @@ -112,22 +112,22 @@ After upgrading, don't forget to activate the new version: ## Usage -To download, compile, and install the latest v5.0.x release of node, do this: +To download, compile, and install the latest release of node, do this: ```sh -nvm install 5.0 +nvm install node ``` And then in any new shell just use the installed version: ```sh -nvm use 5.0 +nvm use node ``` Or you can just run it: ```sh -nvm run 5.0 --version +nvm run node --version ``` Or, you can run any arbitrary command in a subshell with the desired version of node: @@ -148,6 +148,19 @@ In place of a version pointer like "0.10" or "5.0" or "4.2.1", you can use the f - `stable`: this alias is deprecated, and only truly applies to `node` `v0.12` and earlier. Currently, this is an alias for `node`. - `unstable`: this alias points to `node` `v0.11` - the last "unstable" node release, since post-1.0, all node versions are stable. (in semver, versions communicate breakage, not stability). +### Long-term support +Node has a [schedule](https://github.com/nodejs/LTS#lts_schedule) for long-term support (LTS) You can reference LTS versions in aliases and `.nvmrc` files with the notation `lts/*` for the latest LTS, and `lts/argon` for LTS releases from the "argon" line, for example. In addition, the following commands support LTS arguments: + - `nvm install --lts` / `nvm install --lts=argon` + - `nvm uninstall --lts` / `nvm uninstall --lts=argon` + - `nvm use --lts` / `nvm use --lts=argon` + - `nvm exec --lts` / `nvm exec --lts=argon` + - `nvm run --lts` / `nvm run --lts=argon` + - `nvm ls-remote --lts` / `nvm ls-remote --lts=argon` + - `nvm version-remote --lts` / `nvm version-remote --lts=argon` + +Any time your local copy of `nvm` connects to https://nodejs.org, it will re-create the appropriate local aliases for all available LTS lines. These aliases (stored under `$NVM_DIR/alias/lts`), are managed by `nvm`, and you should not modify, remove, or create these files - expect your changes to be undone, and expect meddling with these files to cause bugs that will likely not be supported. + +### Migrating global packages while installing If you want to install a new version of Node.js and migrate npm packages from a previous version: ```sh @@ -159,10 +172,11 @@ This will first use "nvm version node" to identify the current version you're mi You can also install and migrate npm packages from specific versions of Node like this: ```sh -nvm install v5.0 --reinstall-packages-from=4.2 +nvm install 6 --reinstall-packages-from=5 nvm install v4.2 --reinstall-packages-from=iojs ``` +### io.js If you want to install [io.js](https://github.com/iojs/io.js/): ```sh @@ -177,6 +191,7 @@ nvm install iojs --reinstall-packages-from=iojs The same guidelines mentioned for migrating npm packages in Node.js are applicable to io.js. +### System version of node If you want to use the system-installed version of node, you can use the special default alias "system": ```sh @@ -184,6 +199,7 @@ nvm use system nvm run system --version ``` +### Listing versions If you want to see what versions are installed: ```sh @@ -217,7 +233,7 @@ nvm install node NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist nvm install 4.2 ``` -To use a mirror of the iojs binaries, set `$NVM_IOJS_ORG_MIRROR`: +To use a mirror of the io.js binaries, set `$NVM_IOJS_ORG_MIRROR`: ```sh export NVM_IOJS_ORG_MIRROR=https://iojs.org/dist @@ -226,7 +242,7 @@ nvm install iojs-v1.0.3 NVM_IOJS_ORG_MIRROR=https://iojs.org/dist nvm install iojs-v1.0.3 ``` -`nvm use` will not, by default, create a "current" symlink. Set `$NVM_SYMLINK_CURRENT` to "true" to enable this behavior, which is sometimes useful for IDEs. +`nvm use` will not, by default, create a "current" symlink. Set `$NVM_SYMLINK_CURRENT` to "true" to enable this behavior, which is sometimes useful for IDEs. Note that using `nvm` in multiple shell tabs with this environment variable enabled can cause race conditions. ### .nvmrc @@ -237,6 +253,8 @@ For example, to make nvm default to the latest 5.9 release for the current direc ```sh $ echo "5.9" > .nvmrc + +$ echo "lts/*" > .nvmrc # to default to the latest LTS version ``` Then when you run nvm: @@ -280,7 +298,7 @@ load-nvmrc nvm is released under the MIT license. -Copyright (C) 2010-2016 Tim Caswell +Copyright (C) 2010-2016 Tim Caswell and Jordan Harband Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: From fb49bf6f706548fcc33eef4207cfd37a08cb6237 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 18 Jul 2016 23:40:32 -0700 Subject: [PATCH 0776/1426] completion: add LTS aliases. --- bash_completion | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bash_completion b/bash_completion index d538388..42bd7af 100644 --- a/bash_completion +++ b/bash_completion @@ -57,9 +57,9 @@ __nvm_aliases () declare aliases aliases="" if [ -d $NVM_DIR/alias ]; then - aliases="`cd $NVM_DIR/alias && command ls`" + aliases="$(cd $NVM_DIR/alias && find $PWD -type f | sed "s:$PWD/::")" fi - echo "${aliases}" + echo "${aliases} node stable unstable iojs" } __nvm_alias () From 56417f88f98a559aca57fc6ba169ed6e1e2c04f1 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 20 Jul 2016 00:51:48 -0700 Subject: [PATCH 0777/1426] v0.31.3 --- README.markdown | 8 ++++---- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.markdown b/README.markdown index 385cf48..7e316fc 100644 --- a/README.markdown +++ b/README.markdown @@ -37,13 +37,13 @@ Note: If you're using `zsh` you can easily install `nvm` as a zsh plugin. Instal To install or update nvm, you can use the [install script][2] using cURL: ```sh -curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.2/install.sh | bash +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.3/install.sh | bash ``` or Wget: ```sh -wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.2/install.sh | bash +wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.3/install.sh | bash ``` The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). @@ -394,7 +394,7 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh ```sh apk add bash -wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.2/install.sh | /bin/bash +wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.3/install.sh | /bin/bash ``` The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. @@ -425,7 +425,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But If setting the `default` alias does not establish the node version in new shells (i.e. `nvm current` yields `system`), ensure that the system's node PATH is set before the `nvm.sh` source line in your shell profile (see [#658](https://github.com/creationix/nvm/issues/658)) [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.31.2/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.31.3/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index 364b923..86c6c70 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ nvm_install_dir() { } nvm_latest_version() { - echo "v0.31.2" + echo "v0.31.3" } # diff --git a/nvm.sh b/nvm.sh index 1f5f9be..abeb173 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2764,7 +2764,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; "--version" ) - nvm_echo '0.31.2' + nvm_echo '0.31.3' ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum \ diff --git a/package.json b/package.json index b24279b..cbffd18 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.31.2", + "version": "0.31.3", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From f4d57cc17dc2ed9054491fa077919ee5aa8deaa0 Mon Sep 17 00:00:00 2001 From: Sebastian Thomschke Date: Wed, 20 Jul 2016 13:31:47 +0200 Subject: [PATCH 0778/1426] Fix for #871 find: warning: Unix filenames usually don't contain slashes --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index abeb173..3559367 100644 --- a/nvm.sh +++ b/nvm.sh @@ -814,7 +814,7 @@ nvm_ls() { SEARCH_PATTERN="$(echo "${PATTERN}" | sed "s#\.#\\\.#g;")" fi if [ -n "$NVM_DIRS_TO_SEARCH1$NVM_DIRS_TO_SEARCH2$NVM_DIRS_TO_SEARCH3" ]; then - VERSIONS="$(command find "$NVM_DIRS_TO_SEARCH1"/* "$NVM_DIRS_TO_SEARCH2"/* "$NVM_DIRS_TO_SEARCH3"/* -name . -o -type d -prune -o -name "$PATTERN*" \ + VERSIONS="$(command find "$NVM_DIRS_TO_SEARCH1"/* "$NVM_DIRS_TO_SEARCH2"/* "$NVM_DIRS_TO_SEARCH3"/* -name . -o -type d -prune -o -path "$PATTERN*" \ | command sed " s#${NVM_VERSION_DIR_IOJS}/#versions/${NVM_IOJS_PREFIX}/#; s#^${NVM_DIR}/##; From a09f225ec79b5ba9159931eb874ebf60bd26c24b Mon Sep 17 00:00:00 2001 From: Luke Childs Date: Sun, 24 Jul 2016 21:13:51 +0100 Subject: [PATCH 0779/1426] Update zsh-nvm upgrade command in readme --- README.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index 7e316fc..a67e438 100644 --- a/README.markdown +++ b/README.markdown @@ -30,7 +30,7 @@ Note: On OS X, if you have/had a "system" node installed and want to install mod Homebrew installation is not supported. If you have issues with homebrew-installed `nvm`, please `brew uninstall` it, and install it using the instructions below, before filing an issue. -Note: If you're using `zsh` you can easily install `nvm` as a zsh plugin. Install [`zsh-nvm`](https://github.com/lukechilds/zsh-nvm) and run `nvm_update` to update. +Note: If you're using `zsh` you can easily install `nvm` as a zsh plugin. Install [`zsh-nvm`](https://github.com/lukechilds/zsh-nvm) and run `nvm upgrade` to upgrade. ### Install script From 6ac7ecf7dc20ba55da90b05db77256c7b9cc1f8c Mon Sep 17 00:00:00 2001 From: wiserweb Date: Tue, 26 Jul 2016 02:31:07 -0400 Subject: [PATCH 0780/1426] Update README.markdown Specifies the lines that will be added by the installation script. --- README.markdown | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.markdown b/README.markdown index a67e438..35f9e45 100644 --- a/README.markdown +++ b/README.markdown @@ -48,6 +48,11 @@ wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.3/install.sh | The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). +```sh +export NVM_DIR="$HOME/.nvm" +[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm +``` + You can customize the install source, directory, profile, and version using the `NVM_SOURCE`, `NVM_DIR`, `PROFILE`, and `NODE_VERSION` variables. Eg: `curl ... | NVM_DIR=/usr/local/nvm bash` for a global install. From eb4de62bc1eaace0776ab0529960a1fef888fabf Mon Sep 17 00:00:00 2001 From: Luke Childs Date: Wed, 27 Jul 2016 21:43:13 +0100 Subject: [PATCH 0781/1426] Remove incorrect message --- install.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 86c6c70..9fe8e4f 100755 --- a/install.sh +++ b/install.sh @@ -40,7 +40,7 @@ nvm_source() { echo "$NVM_SOURCE_URL" } -# +# # Node.js version to install # nvm_node_version() { @@ -103,7 +103,6 @@ nvm_install_node() { NODE_VERSION="$(nvm_node_version)" if [ -z "$NODE_VERSION" ]; then - echo "=> You can now install Node.js by running \`nvm install\`" return 0 fi From 3417e9d9a350f805ea51784c63fc9063e1ae0187 Mon Sep 17 00:00:00 2001 From: Luke Childs Date: Wed, 27 Jul 2016 22:09:02 +0100 Subject: [PATCH 0782/1426] Add message explaining how to use nvm --- install.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/install.sh b/install.sh index 9fe8e4f..6477346 100755 --- a/install.sh +++ b/install.sh @@ -297,6 +297,9 @@ nvm_do_install() { nvm_install_node nvm_reset + + echo "=> Close and reopen your terminal to start using nvm or run the following to use it now:" + printf "$SOURCE_STR" } # From 978f7b44351ccc6e6f645b1c89fbaceb109b2c05 Mon Sep 17 00:00:00 2001 From: Luke Childs Date: Wed, 27 Jul 2016 22:26:05 +0100 Subject: [PATCH 0783/1426] Only source nvm, not entire profile --- install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 6477346..f21d66c 100755 --- a/install.sh +++ b/install.sh @@ -289,8 +289,8 @@ nvm_do_install() { fi fi - # Sourcing $PROFILE to take into account the new environment - . "$NVM_PROFILE" + # Source nvm + . "$NVM_DIR/nvm.sh" nvm_check_global_modules From c08010f6100c015d3ac2472d5516b654ec4c855f Mon Sep 17 00:00:00 2001 From: Luke Childs Date: Thu, 28 Jul 2016 17:48:23 +0100 Subject: [PATCH 0784/1426] Fix typo in readme --- README.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index 35f9e45..c7a887b 100644 --- a/README.markdown +++ b/README.markdown @@ -9,7 +9,7 @@ Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/n - [nodist](https://github.com/marcelklehr/nodist) Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creationix/nvm/issues/303)). Alternatives exist, which are neither supported nor developed by us: - - [bass](https://github.com/edc/bass) allows to use utilities written for Bash in fish shell + - [bass](https://github.com/edc/bass) allows you to use utilities written for Bash in fish shell - [fast-nvm-fish](https://github.com/brigand/fast-nvm-fish) only works with version numbers (not aliases) but doesn't significantly slow your shell startup - [fin](https://github.com/fisherman/fin) is a pure fish node version manager for fish shell - [plugin-nvm](https://github.com/derekstavis/plugin-nvm) plugin for [Oh My Fish](https://github.com/oh-my-fish/oh-my-fish), which makes nvm and its completions available in fish shell From 17a3272b8ab58b68f772a4738a5aca4825c7f152 Mon Sep 17 00:00:00 2001 From: Joe Lencioni Date: Thu, 28 Jul 2016 09:03:26 -0700 Subject: [PATCH 0785/1426] Ensure `git describe` gives latest tag MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I recently ran the upgrade instructions and I ended up with the version I was already on. This happened because `git describe` describes a commit using the most recent tag reachable from it. Since I already had a tag checked out, it was describing the tag I had already checked out. Thankfully, `git describe` accepts an optional commit-ish, which it will use instead of what we have currently checked out. Testing this in my terminal now gives me the latest tag on origin, which is what I am interested in when updating to the latest version. ~/.nvm ❯❯❯ git describe --abbrev=0 --tags v0.30.1 ~/.nvm ❯❯❯ git describe --abbrev=0 --tags origin v0.31.3 I also added it to the manual install instructions for consistency and extra safety. --- README.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.markdown b/README.markdown index c7a887b..b6891e4 100644 --- a/README.markdown +++ b/README.markdown @@ -84,7 +84,7 @@ For manual install create a folder somewhere in your filesystem with the `nvm.sh Or if you have `git` installed, then just clone it, and check out the latest version: ```sh -git clone https://github.com/creationix/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags` +git clone https://github.com/creationix/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags origin` ``` To activate nvm, you need to source it from your shell: @@ -106,7 +106,7 @@ export NVM_DIR="$HOME/.nvm" For manual upgrade with `git`, change to the `$NVM_DIR`, pull down the latest changes, and check out the latest version: ```sh -cd "$NVM_DIR" && git fetch origin && git checkout `git describe --abbrev=0 --tags` +cd "$NVM_DIR" && git fetch origin && git checkout `git describe --abbrev=0 --tags origin` ``` After upgrading, don't forget to activate the new version: From 87a3a4425d68fb11ad1e37c60ef64b21e1dddba8 Mon Sep 17 00:00:00 2001 From: Joe Lencioni Date: Thu, 28 Jul 2016 09:10:14 -0700 Subject: [PATCH 0786/1426] Ensure `git describe` only matches version tags `git describe` will match the latest tags, regardless of what it looks like. We can make this a little safer by adding a `--match` flag to match tags that look like version tags. This allows the maintainers of this repo to more safely add other types of tags if they so wish, without causing people to install or upgrade to those versions. --- README.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.markdown b/README.markdown index b6891e4..165fbf1 100644 --- a/README.markdown +++ b/README.markdown @@ -84,7 +84,7 @@ For manual install create a folder somewhere in your filesystem with the `nvm.sh Or if you have `git` installed, then just clone it, and check out the latest version: ```sh -git clone https://github.com/creationix/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags origin` +git clone https://github.com/creationix/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" origin` ``` To activate nvm, you need to source it from your shell: @@ -106,7 +106,7 @@ export NVM_DIR="$HOME/.nvm" For manual upgrade with `git`, change to the `$NVM_DIR`, pull down the latest changes, and check out the latest version: ```sh -cd "$NVM_DIR" && git fetch origin && git checkout `git describe --abbrev=0 --tags origin` +cd "$NVM_DIR" && git fetch origin && git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" origin` ``` After upgrading, don't forget to activate the new version: From 54476476abddbe82ed6e292599eb144722d9eb9b Mon Sep 17 00:00:00 2001 From: Joe Lencioni Date: Thu, 28 Jul 2016 09:16:10 -0700 Subject: [PATCH 0787/1426] Use subshells for installation and upgrade instructions I recently upgraded my copy of nvm and I was disappointed to be dropped in the .nvm directory at the end of it. I also didn't like having to copy and paste two separate blocks of code into my terminal, because I missed the second one the first time around and was left in a slightly confusing state. So, I decided to make this easier by utilizing subshells and moving all of the instructions into one code block in this document. I think this will improve people's experience maintaining this tool. --- README.markdown | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/README.markdown b/README.markdown index 165fbf1..830af53 100644 --- a/README.markdown +++ b/README.markdown @@ -81,16 +81,18 @@ which should output 'nvm' if the installation was successful. Please note that ` For manual install create a folder somewhere in your filesystem with the `nvm.sh` file inside it. I put mine in `~/.nvm`. -Or if you have `git` installed, then just clone it, and check out the latest version: +Or if you have `git` installed: + +1. clone this repo +1. check out the latest version +1. activate nvm by sourcing it from your shell ```sh -git clone https://github.com/creationix/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" origin` -``` - -To activate nvm, you need to source it from your shell: - -```sh -. ~/.nvm/nvm.sh +( + git clone https://github.com/creationix/nvm.git ~/.nvm + cd ~/.nvm + git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" origin` +) && . ~/.nvm/nvm.sh ``` Add these lines to your `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it automatically sourced upon login: @@ -103,16 +105,19 @@ export NVM_DIR="$HOME/.nvm" ### Manual upgrade -For manual upgrade with `git`, change to the `$NVM_DIR`, pull down the latest changes, and check out the latest version: +For manual upgrade with `git`: + +1. change to the `$NVM_DIR` +1. pull down the latest changes +1. check out the latest version +1. activate the new version ```sh -cd "$NVM_DIR" && git fetch origin && git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" origin` -``` - -After upgrading, don't forget to activate the new version: - -```sh -. "$NVM_DIR/nvm.sh" +( + cd "$NVM_DIR" + git fetch origin + git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" origin` +) && . "$NVM_DIR/nvm.sh" ``` ## Usage From 6eef4ce4d2b880a47dc0d7bc7a44a8c1fe28d907 Mon Sep 17 00:00:00 2001 From: Joe Lencioni Date: Thu, 28 Jul 2016 10:11:28 -0700 Subject: [PATCH 0788/1426] Use NVM_DIR in installation instructions As suggested by @ljharb, this might be a little cleaner. I'm not entirely sure, but in any case, it is consistent with the upgrade instructions, so that is nice. --- README.markdown | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.markdown b/README.markdown index 830af53..bf0d1a3 100644 --- a/README.markdown +++ b/README.markdown @@ -88,11 +88,11 @@ Or if you have `git` installed: 1. activate nvm by sourcing it from your shell ```sh -( - git clone https://github.com/creationix/nvm.git ~/.nvm - cd ~/.nvm +export NVM_DIR="$HOME/.nvm" && ( + git clone https://github.com/creationix/nvm.git "$NVM_DIR" + cd "$NVM_DIR" git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" origin` -) && . ~/.nvm/nvm.sh +) && . "$NVM_DIR/nvm.sh" ``` Add these lines to your `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it automatically sourced upon login: From f51b1bf8aeb7cdda53a896ede0c314ee7274434d Mon Sep 17 00:00:00 2001 From: Joe Lencioni Date: Thu, 28 Jul 2016 10:51:00 -0700 Subject: [PATCH 0789/1426] Document required git version git-describe was taught `--abbrev=0` in 1.5.0: https://github.com/git/git/blob/master/Documentation/RelNotes/1.5.0.txt git-describe was taught `--match` in 1.5.5: https://github.com/git/git/blob/master/Documentation/RelNotes/1.5.5.txt I don't see anything else potentially weird in here, so I think it is safe to proclaim that the minimum git version required to run these commands is 1.5.5. Documenting this minimum version required here should help people debug possible issues and help maintainers of this project understand the impacts of modifying these commands in the future. --- README.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.markdown b/README.markdown index bf0d1a3..0f25279 100644 --- a/README.markdown +++ b/README.markdown @@ -81,7 +81,7 @@ which should output 'nvm' if the installation was successful. Please note that ` For manual install create a folder somewhere in your filesystem with the `nvm.sh` file inside it. I put mine in `~/.nvm`. -Or if you have `git` installed: +Or if you have `git` installed (requires git v1.5.5+): 1. clone this repo 1. check out the latest version @@ -105,7 +105,7 @@ export NVM_DIR="$HOME/.nvm" ### Manual upgrade -For manual upgrade with `git`: +For manual upgrade with `git` (requires git v1.5.5+): 1. change to the `$NVM_DIR` 1. pull down the latest changes From a32b914bab639d308f41b84a55256d42c5afac1a Mon Sep 17 00:00:00 2001 From: Julien Gilli Date: Fri, 29 Jul 2016 13:51:06 -0700 Subject: [PATCH 0790/1426] Fix nvm on SmartOS setups using 64 bits pkgsrc repository On SmartOS setups using 64 bits pkgsrc repositories, `nvm_get_arch` would not handle pkg_info's output properly. This would result in nvm not being to install any node binary when running on SmartOS setups using a 64 bits pkgsrc repository. This change fixes this problem, and fixes the tests suite on similar setups. --- nvm.sh | 2 ++ test/fast/Unit tests/nvm_get_arch | 2 ++ test/mocks/pkg_info_amd64 | 3 +++ test/mocks/pkg_info_fail | 1 + 4 files changed, 8 insertions(+) create mode 100755 test/mocks/pkg_info_fail diff --git a/nvm.sh b/nvm.sh index 3559367..aad67e1 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1235,6 +1235,8 @@ nvm_get_arch() { EXIT_CODE=$? if [ $EXIT_CODE -ne 0 ]; then HOST_ARCH=$(isainfo -n) + else + HOST_ARCH=$(echo "$HOST_ARCH" | tail -1) fi else HOST_ARCH="$(command uname -m)" diff --git a/test/fast/Unit tests/nvm_get_arch b/test/fast/Unit tests/nvm_get_arch index b3fd51b..102c9da 100755 --- a/test/fast/Unit tests/nvm_get_arch +++ b/test/fast/Unit tests/nvm_get_arch @@ -32,6 +32,8 @@ setup_mock_arch() { ln -sf "${MOCKS_DIR}/isainfo_${ARCH}" ./isainfo if [ "_$OPT" != "_no_pkg_info" ]; then ln -sf "${MOCKS_DIR}/pkg_info_${ARCH}" ./pkg_info + else + ln -sf "${MOCKS_DIR}/pkg_info_fail" ./pkg_info fi fi diff --git a/test/mocks/pkg_info_amd64 b/test/mocks/pkg_info_amd64 index 8437c2b..d25c527 100755 --- a/test/mocks/pkg_info_amd64 +++ b/test/mocks/pkg_info_amd64 @@ -1 +1,4 @@ +# On SmartOS 64bits setups, pkg_info outputs _both_ i386 and x86_64 +# architectures as architectures supported by pkg_install. +echo "i386" echo "x86_64" diff --git a/test/mocks/pkg_info_fail b/test/mocks/pkg_info_fail new file mode 100755 index 0000000..379a4c9 --- /dev/null +++ b/test/mocks/pkg_info_fail @@ -0,0 +1 @@ +exit 1 From 31e58d1827f4c2569723efc8e51dbd6c1087373c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 29 Jul 2016 16:54:13 -0700 Subject: [PATCH 0791/1426] v0.31.4 --- README.markdown | 8 ++++---- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.markdown b/README.markdown index 0f25279..64c6cb2 100644 --- a/README.markdown +++ b/README.markdown @@ -37,13 +37,13 @@ Note: If you're using `zsh` you can easily install `nvm` as a zsh plugin. Instal To install or update nvm, you can use the [install script][2] using cURL: ```sh -curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.3/install.sh | bash +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.4/install.sh | bash ``` or Wget: ```sh -wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.3/install.sh | bash +wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.4/install.sh | bash ``` The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). @@ -404,7 +404,7 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh ```sh apk add bash -wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.3/install.sh | /bin/bash +wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.4/install.sh | /bin/bash ``` The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. @@ -435,7 +435,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But If setting the `default` alias does not establish the node version in new shells (i.e. `nvm current` yields `system`), ensure that the system's node PATH is set before the `nvm.sh` source line in your shell profile (see [#658](https://github.com/creationix/nvm/issues/658)) [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.31.3/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.31.4/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index f21d66c..a443517 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ nvm_install_dir() { } nvm_latest_version() { - echo "v0.31.3" + echo "v0.31.4" } # diff --git a/nvm.sh b/nvm.sh index aad67e1..bc041bb 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2766,7 +2766,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; "--version" ) - nvm_echo '0.31.3' + nvm_echo '0.31.4' ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum \ diff --git a/package.json b/package.json index cbffd18..0763495 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.31.3", + "version": "0.31.4", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From f653bdc606fd4212186d49281111cedcb059777a Mon Sep 17 00:00:00 2001 From: Luke Childs Date: Sun, 31 Jul 2016 20:42:18 +0100 Subject: [PATCH 0792/1426] Print shell version on Travis --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index d06bb79..39c5a44 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,6 +4,7 @@ addons: - zsh - ksh before_install: + - $SHELL --version 2> /dev/null || dpkg -s $SHELL 2> /dev/null || which $SHELL - curl --version - wget --version install: From f9f140ec13d9c421c75d1a357da067865e7841bb Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 2 Aug 2016 00:59:51 -0700 Subject: [PATCH 0793/1426] [Performance] make auto-using faster. Per https://github.com/creationix/nvm/issues/539#issuecomment-236830764 --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index bc041bb..697a64d 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2824,7 +2824,7 @@ nvm_auto() { nvm install >/dev/null fi elif [ "_$NVM_MODE" = '_use' ]; then - VERSION="$(nvm_alias default 2>/dev/null || nvm_echo)" + VERSION="$(nvm_resolve_local_alias default 2>/dev/null || nvm_echo)" if [ -n "$VERSION" ]; then nvm use --silent "$VERSION" >/dev/null elif nvm_rc_version >/dev/null 2>&1; then From 88fc93a71bf54c811ec0dc5c6d54dc001d883a66 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Fri, 5 Aug 2016 15:23:09 +0800 Subject: [PATCH 0794/1426] Fix nvm dir path in install script, fix #1189 --- install.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/install.sh b/install.sh index a443517..74c1f3e 100755 --- a/install.sh +++ b/install.sh @@ -74,7 +74,7 @@ install_nvm_from_git() { exit 1 } else - # Cloning to $NVM_DIR + # Cloning to $INSTALL_DIR echo "=> Downloading nvm from git to '$INSTALL_DIR'" printf "\r=> " mkdir -p "$INSTALL_DIR" @@ -137,12 +137,12 @@ install_nvm_as_script() { echo >&2 "Failed to download '$NVM_SOURCE_LOCAL'" return 1 } - nvm_download -s "$NVM_EXEC_SOURCE" -o "$NVM_DIR/nvm-exec" || { + nvm_download -s "$NVM_EXEC_SOURCE" -o "$INSTALL_DIR/nvm-exec" || { echo >&2 "Failed to download '$NVM_EXEC_SOURCE'" return 2 } - chmod a+x "$NVM_DIR/nvm-exec" || { - echo >&2 "Failed to mark '$NVM_DIR/nvm-exec' as executable" + chmod a+x "$INSTALL_DIR/nvm-exec" || { + echo >&2 "Failed to mark '$INSTALL_DIR/nvm-exec' as executable" return 3 } } @@ -290,7 +290,7 @@ nvm_do_install() { fi # Source nvm - . "$NVM_DIR/nvm.sh" + . "$INSTALL_DIR/nvm.sh" nvm_check_global_modules From 364096a3c3a157eeb91e5dbb86792dbd2a5809eb Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Fri, 5 Aug 2016 15:37:56 +0800 Subject: [PATCH 0795/1426] Add trailing newline char to $SOURCE_STR Line 302/301 `printf "$SOURCE_STR"` is missing a trailing newline char, while line 281/282 and 285/286 have their own new line char, so I just remove the manually added newline char, and add it to the end of the variable "$SOURCE_STR", so no more manually newline char needed there. --- install.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index 74c1f3e..6435475 100755 --- a/install.sh +++ b/install.sh @@ -270,7 +270,7 @@ nvm_do_install() { local INSTALL_DIR INSTALL_DIR="$(nvm_install_dir)" - SOURCE_STR="\nexport NVM_DIR=\"$INSTALL_DIR\"\n[ -s \"\$NVM_DIR/nvm.sh\" ] && . \"\$NVM_DIR/nvm.sh\" # This loads nvm" + SOURCE_STR="\nexport NVM_DIR=\"$INSTALL_DIR\"\n[ -s \"\$NVM_DIR/nvm.sh\" ] && . \"\$NVM_DIR/nvm.sh\" # This loads nvm\n" if [ -z "$NVM_PROFILE" ] ; then echo "=> Profile not found. Tried $NVM_PROFILE (as defined in \$PROFILE), ~/.bashrc, ~/.bash_profile, ~/.zshrc, and ~/.profile." @@ -279,11 +279,10 @@ nvm_do_install() { echo " OR" echo "=> Append the following lines to the correct file yourself:" printf "$SOURCE_STR" - echo else if ! command grep -qc '/nvm.sh' "$NVM_PROFILE"; then echo "=> Appending source string to $NVM_PROFILE" - printf "$SOURCE_STR\n" >> "$NVM_PROFILE" + printf "$SOURCE_STR" >> "$NVM_PROFILE" else echo "=> Source string already in $NVM_PROFILE" fi From 150ed490d09eb3e0afe95ddda93e114513a854e3 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 7 Aug 2016 23:31:16 -0700 Subject: [PATCH 0796/1426] [Refactor] use curlies with variables --- nvm.sh | 468 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 234 insertions(+), 234 deletions(-) diff --git a/nvm.sh b/nvm.sh index 697a64d..aa0f3cd 100644 --- a/nvm.sh +++ b/nvm.sh @@ -30,12 +30,12 @@ nvm_grep() { } nvm_has() { - type "$1" > /dev/null 2>&1 + type "${1-}" > /dev/null 2>&1 } nvm_is_alias() { # this is intentionally not "command alias" so it works in zsh. - \alias "$1" > /dev/null 2>&1 + \alias "${1-}" > /dev/null 2>&1 } nvm_has_colors() { @@ -54,7 +54,7 @@ nvm_get_latest() { nvm_err 'nvm needs curl or wget to proceed.' return 1 fi - if [ -z "$NVM_LATEST_URL" ]; then + if [ -z "${NVM_LATEST_URL}" ]; then nvm_err "http://latest.nvm.sh did not redirect to the latest release on Github" return 2 fi @@ -107,10 +107,10 @@ fi # Auto detect the NVM_DIR when not set if [ -z "${NVM_DIR-}" ]; then # shellcheck disable=SC2128 - if [ -n "$BASH_SOURCE" ]; then + if [ -n "${BASH_SOURCE-}" ]; then NVM_SCRIPT_SOURCE="${BASH_SOURCE[0]}" fi - NVM_DIR="$(cd $NVM_CD_FLAGS "$(dirname "${NVM_SCRIPT_SOURCE:-$0}")" > /dev/null && \pwd)" + NVM_DIR="$(cd ${NVM_CD_FLAGS} "$(dirname "${NVM_SCRIPT_SOURCE:-$0}")" > /dev/null && \pwd)" export NVM_DIR fi unset NVM_SCRIPT_SOURCE 2> /dev/null @@ -127,39 +127,39 @@ fi nvm_tree_contains_path() { local tree - tree="$1" + tree="${1-}" local node_path - node_path="$2" + node_path="${2-}" - if [ "@$tree@" = "@@" ] || [ "@$node_path@" = "@@" ]; then + if [ "@${tree}@" = "@@" ] || [ "@${node_path}@" = "@@" ]; then nvm_err "both the tree and the node path are required" return 2 fi local pathdir - pathdir=$(dirname "$node_path") - while [ "$pathdir" != "" ] && [ "$pathdir" != "." ] && [ "$pathdir" != "/" ] && [ "$pathdir" != "$tree" ]; do - pathdir=$(dirname "$pathdir") + pathdir=$(dirname "${node_path}") + while [ "${pathdir}" != "" ] && [ "${pathdir}" != "." ] && [ "${pathdir}" != "/" ] && [ "${pathdir}" != "${tree}" ]; do + pathdir=$(dirname "${pathdir}") done - [ "$pathdir" = "$tree" ] + [ "${pathdir}" = "${tree}" ] } # Traverse up in directory tree to find containing folder nvm_find_up() { local path - path="$PWD" - while [ "$path" != "" ] && [ ! -f "$path/$1" ]; do + path="${PWD}" + while [ "${path}" != "" ] && [ ! -f "${path}/${1-}" ]; do path=${path%/*} done - nvm_echo "$path" + nvm_echo "${path}" } nvm_find_nvmrc() { local dir dir="$(nvm_find_up '.nvmrc')" - if [ -e "$dir/.nvmrc" ]; then - nvm_echo "$dir/.nvmrc" + if [ -e "${dir}/.nvmrc" ]; then + nvm_echo "${dir}/.nvmrc" fi } @@ -168,12 +168,12 @@ nvm_rc_version() { export NVM_RC_VERSION='' local NVMRC_PATH NVMRC_PATH="$(nvm_find_nvmrc)" - if [ -e "$NVMRC_PATH" ]; then - read -r NVM_RC_VERSION < "$NVMRC_PATH" || printf '' - if [ -n "$NVM_RC_VERSION" ]; then - nvm_echo "Found '$NVMRC_PATH' with version <$NVM_RC_VERSION>" + if [ -e "${NVMRC_PATH}" ]; then + read -r NVM_RC_VERSION < "${NVMRC_PATH}" || printf '' + if [ -n "${NVM_RC_VERSION}" ]; then + nvm_echo "Found '${NVMRC_PATH}' with version <${NVM_RC_VERSION}>" else - nvm_err "Warning: empty .nvmrc file found at \"$NVMRC_PATH\"" + nvm_err "Warning: empty .nvmrc file found at \"${NVMRC_PATH}\"" return 2 fi else @@ -213,13 +213,13 @@ nvm_version_greater_than_or_equal_to() { nvm_version_dir() { local NVM_WHICH_DIR - NVM_WHICH_DIR="$1" - if [ -z "$NVM_WHICH_DIR" ] || [ "_$NVM_WHICH_DIR" = "_new" ]; then - nvm_echo "$NVM_DIR/versions/node" - elif [ "_$NVM_WHICH_DIR" = "_iojs" ]; then - nvm_echo "$NVM_DIR/versions/io.js" - elif [ "_$NVM_WHICH_DIR" = "_old" ]; then - nvm_echo "$NVM_DIR" + NVM_WHICH_DIR="${1-}" + if [ -z "${NVM_WHICH_DIR}" ] || [ "${NVM_WHICH_DIR}" = "new" ]; then + nvm_echo "${NVM_DIR}/versions/node" + elif [ "_${NVM_WHICH_DIR}" = "_iojs" ]; then + nvm_echo "${NVM_DIR}/versions/io.js" + elif [ "_${NVM_WHICH_DIR}" = "_old" ]; then + nvm_echo "${NVM_DIR}" else nvm_err 'unknown version dir' return 3 @@ -232,39 +232,39 @@ nvm_alias_path() { nvm_version_path() { local VERSION - VERSION="$1" - if [ -z "$VERSION" ]; then + VERSION="${1-}" + if [ -z "${VERSION}" ]; then nvm_err 'version is required' return 3 - elif nvm_is_iojs_version "$VERSION"; then - nvm_echo "$(nvm_version_dir iojs)/$(nvm_strip_iojs_prefix "$VERSION")" - elif nvm_version_greater 0.12.0 "$VERSION"; then - nvm_echo "$(nvm_version_dir old)/$VERSION" + elif nvm_is_iojs_version "${VERSION}"; then + nvm_echo "$(nvm_version_dir iojs)/$(nvm_strip_iojs_prefix "${VERSION}")" + elif nvm_version_greater 0.12.0 "${VERSION}"; then + nvm_echo "$(nvm_version_dir old)/${VERSION}" else - nvm_echo "$(nvm_version_dir new)/$VERSION" + nvm_echo "$(nvm_version_dir new)/${VERSION}" fi } nvm_ensure_version_installed() { local PROVIDED_VERSION - PROVIDED_VERSION="$1" + PROVIDED_VERSION="${1-}" local LOCAL_VERSION local EXIT_CODE - LOCAL_VERSION="$(nvm_version "$PROVIDED_VERSION")" + LOCAL_VERSION="$(nvm_version "${PROVIDED_VERSION}")" EXIT_CODE="$?" local NVM_VERSION_DIR - if [ "_$EXIT_CODE" != "_0" ] || ! nvm_is_version_installed "$LOCAL_VERSION"; then - VERSION="$(nvm_resolve_alias "$PROVIDED_VERSION")" + if [ "${EXIT_CODE}" != "0" ] || ! nvm_is_version_installed "${LOCAL_VERSION}"; then + VERSION="$(nvm_resolve_alias "${PROVIDED_VERSION}")" if [ $? -eq 0 ]; then - nvm_err "N/A: version \"$PROVIDED_VERSION -> $VERSION\" is not yet installed." + nvm_err "N/A: version \"${PROVIDED_VERSION} -> ${VERSION}\" is not yet installed." nvm_err "" - nvm_err "You need to run \"nvm install $PROVIDED_VERSION\" to install it before using it." + nvm_err "You need to run \"nvm install ${PROVIDED_VERSION}\" to install it before using it." else local PREFIXED_VERSION - PREFIXED_VERSION="$(nvm_ensure_version_prefix "$PROVIDED_VERSION")" + PREFIXED_VERSION="$(nvm_ensure_version_prefix "${PROVIDED_VERSION}")" nvm_err "N/A: version \"${PREFIXED_VERSION:-$PROVIDED_VERSION}\" is not yet installed." nvm_err "" - nvm_err "You need to run \"nvm install $PROVIDED_VERSION\" to install it before using it." + nvm_err "You need to run \"nvm install ${PROVIDED_VERSION}\" to install it before using it." fi return 1 fi @@ -273,49 +273,49 @@ nvm_ensure_version_installed() { # Expand a version using the version cache nvm_version() { local PATTERN - PATTERN="$1" + PATTERN="${1-}" local VERSION # The default version is the current one - if [ -z "$PATTERN" ]; then + if [ -z "${PATTERN}" ]; then PATTERN='current' fi - if [ "$PATTERN" = "current" ]; then + if [ "${PATTERN}" = "current" ]; then nvm_ls_current return $? fi local NVM_NODE_PREFIX NVM_NODE_PREFIX="$(nvm_node_prefix)" - case "_$PATTERN" in - "_$NVM_NODE_PREFIX" | "_$NVM_NODE_PREFIX-") + case "_${PATTERN}" in + "_${NVM_NODE_PREFIX}" | "_${NVM_NODE_PREFIX}-") PATTERN="stable" ;; esac - VERSION="$(nvm_ls "$PATTERN" | command tail -1)" - if [ -z "$VERSION" ] || [ "_$VERSION" = "_N/A" ]; then + VERSION="$(nvm_ls "${PATTERN}" | command tail -1)" + if [ -z "${VERSION}" ] || [ "_${VERSION}" = "_N/A" ]; then nvm_echo "N/A" return 3; else - nvm_echo "$VERSION" + nvm_echo "${VERSION}" fi } nvm_remote_version() { local PATTERN - PATTERN="$1" + PATTERN="${1-}" local VERSION - if nvm_validate_implicit_alias "$PATTERN" 2> /dev/null ; then - case "_$PATTERN" in - "_$(nvm_iojs_prefix)") + if nvm_validate_implicit_alias "${PATTERN}" 2> /dev/null ; then + case "${PATTERN}" in + "$(nvm_iojs_prefix)") VERSION="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote_iojs | command tail -1)" ;; *) - VERSION="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote "$PATTERN")" + VERSION="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote "${PATTERN}")" ;; esac else - VERSION="$(NVM_LTS="${NVM_LTS-}" nvm_remote_versions "$PATTERN" | command tail -1)" + VERSION="$(NVM_LTS="${NVM_LTS-}" nvm_remote_versions "${PATTERN}" | command tail -1)" fi if [ -n "${NVM_VERSION_ONLY-}" ]; then command awk 'BEGIN { @@ -325,7 +325,7 @@ nvm_remote_version() { else nvm_echo "${VERSION}" fi - if [ "_$VERSION" = '_N/A' ]; then + if [ "${VERSION}" = 'N/A' ]; then return 3 fi } @@ -334,45 +334,45 @@ nvm_remote_versions() { local NVM_IOJS_PREFIX NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" local PATTERN - PATTERN="$1" - case "_$PATTERN" in - "_$NVM_IOJS_PREFIX" | "_io.js") + PATTERN="${1-}" + case "${PATTERN}" in + "${NVM_IOJS_PREFIX}" | "io.js") VERSIONS="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote_iojs)" ;; - "_$(nvm_node_prefix)") + "$(nvm_node_prefix)") VERSIONS="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote)" ;; *) - if nvm_validate_implicit_alias "$PATTERN" 2> /dev/null ; then + if nvm_validate_implicit_alias "${PATTERN}" 2> /dev/null ; then nvm_err 'Implicit aliases are not supported in nvm_remote_versions.' return 1 fi - VERSIONS="$(nvm_echo "$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote "$PATTERN") -$(NVM_LTS=${NVM_LTS-} nvm_ls_remote_iojs "$PATTERN")" | nvm_grep -v "N/A" | command sed '/^$/d')" + VERSIONS="$(nvm_echo "$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote "${PATTERN}") +$(NVM_LTS=${NVM_LTS-} nvm_ls_remote_iojs "${PATTERN}")" | nvm_grep -v "N/A" | command sed '/^$/d')" ;; esac - if [ -z "$VERSIONS" ]; then + if [ -z "${VERSIONS}" ]; then nvm_echo 'N/A' return 3 else - nvm_echo "$VERSIONS" + nvm_echo "${VERSIONS}" fi } nvm_is_valid_version() { - if nvm_validate_implicit_alias "$1" 2> /dev/null; then + if nvm_validate_implicit_alias "${1-}" 2> /dev/null; then return 0 fi - case "$1" in + case "${1-}" in "$(nvm_iojs_prefix)" | \ "$(nvm_node_prefix)") return 0 ;; *) local VERSION - VERSION="$(nvm_strip_iojs_prefix "$1")" - nvm_version_greater_than_or_equal_to "$VERSION" 0 + VERSION="$(nvm_strip_iojs_prefix "${1-}")" + nvm_version_greater_than_or_equal_to "${VERSION}" 0 ;; esac } @@ -387,61 +387,61 @@ nvm_normalize_version() { nvm_ensure_version_prefix() { local NVM_VERSION - NVM_VERSION="$(nvm_strip_iojs_prefix "$1" | command sed -e 's/^\([0-9]\)/v\1/g')" - if nvm_is_iojs_version "$1"; then - nvm_add_iojs_prefix "$NVM_VERSION" + NVM_VERSION="$(nvm_strip_iojs_prefix "${1-}" | command sed -e 's/^\([0-9]\)/v\1/g')" + if nvm_is_iojs_version "${1-}"; then + nvm_add_iojs_prefix "${NVM_VERSION}" else - nvm_echo "$NVM_VERSION" + nvm_echo "${NVM_VERSION}" fi } nvm_format_version() { local VERSION - VERSION="$(nvm_ensure_version_prefix "$1")" + VERSION="$(nvm_ensure_version_prefix "${1-}")" local NUM_GROUPS - NUM_GROUPS="$(nvm_num_version_groups "$VERSION")" - if [ "$NUM_GROUPS" -lt 3 ]; then + NUM_GROUPS="$(nvm_num_version_groups "${VERSION}")" + if [ "${NUM_GROUPS}" -lt 3 ]; then nvm_format_version "${VERSION%.}.0" else - nvm_echo "$VERSION" | cut -f1-3 -d. + nvm_echo "${VERSION}" | cut -f1-3 -d. fi } nvm_num_version_groups() { local VERSION - VERSION="$1" + VERSION="${1-}" VERSION="${VERSION#v}" VERSION="${VERSION%.}" - if [ -z "$VERSION" ]; then + if [ -z "${VERSION}" ]; then nvm_echo "0" return fi local NVM_NUM_DOTS - NVM_NUM_DOTS=$(nvm_echo "$VERSION" | command sed -e 's/[^\.]//g') + NVM_NUM_DOTS=$(nvm_echo "${VERSION}" | command sed -e 's/[^\.]//g') local NVM_NUM_GROUPS - NVM_NUM_GROUPS=".$NVM_NUM_DOTS" # add extra dot, since it's (n - 1) dots at this point + NVM_NUM_GROUPS=".${NVM_NUM_DOTS}" # add extra dot, since it's (n - 1) dots at this point nvm_echo "${#NVM_NUM_GROUPS}" } nvm_strip_path() { if [ -z "${NVM_DIR-}" ]; then - nvm_err '$NVM_DIR not set!' + nvm_err '${NVM_DIR} not set!' return 1 fi - nvm_echo "$1" | command sed \ - -e "s#$NVM_DIR/[^/]*$2[^:]*:##g" \ - -e "s#:$NVM_DIR/[^/]*$2[^:]*##g" \ - -e "s#$NVM_DIR/[^/]*$2[^:]*##g" \ - -e "s#$NVM_DIR/versions/[^/]*/[^/]*$2[^:]*:##g" \ - -e "s#:$NVM_DIR/versions/[^/]*/[^/]*$2[^:]*##g" \ - -e "s#$NVM_DIR/versions/[^/]*/[^/]*$2[^:]*##g" + nvm_echo "${1-}" | command sed \ + -e "s#${NVM_DIR}/[^/]*${2-}[^:]*:##g" \ + -e "s#:${NVM_DIR}/[^/]*${2-}[^:]*##g" \ + -e "s#${NVM_DIR}/[^/]*${2-}[^:]*##g" \ + -e "s#${NVM_DIR}/versions/[^/]*/[^/]*${2-}[^:]*:##g" \ + -e "s#:${NVM_DIR}/versions/[^/]*/[^/]*${2-}[^:]*##g" \ + -e "s#${NVM_DIR}/versions/[^/]*/[^/]*${2-}[^:]*##g" } nvm_prepend_path() { - if [ -z "$1" ]; then - nvm_echo "$2" + if [ -z "${1-}" ]; then + nvm_echo "${2-}" else - nvm_echo "$2:$1" + nvm_echo "${2-}:${1-}" fi } @@ -457,8 +457,8 @@ nvm_print_formatted_alias() { DEST="${2-}" local VERSION VERSION="${3-}" - if [ -z "$VERSION" ]; then - VERSION="$(nvm_version "$DEST" || return 0)" + if [ -z "${VERSION}" ]; then + VERSION="$(nvm_version "${DEST}" || return 0)" fi local VERSION_FORMAT local ALIAS_FORMAT @@ -468,25 +468,25 @@ nvm_print_formatted_alias() { VERSION_FORMAT='%s' local NEWLINE NEWLINE="\n" - if [ "_$DEFAULT" = '_true' ]; then + if [ "_${DEFAULT}" = '_true' ]; then NEWLINE=" (default)\n" fi local ARROW ARROW='->' if nvm_has_colors; then ARROW='\033[0;90m->\033[0m' - if [ "_$DEFAULT" = '_true' ]; then + if [ "_${DEFAULT}" = '_true' ]; then NEWLINE=" \033[0;37m(default)\033[0m\n" fi - if [ "_$VERSION" = "_${NVM_CURRENT-}" ]; then + if [ "_${VERSION}" = "_${NVM_CURRENT-}" ]; then ALIAS_FORMAT='\033[0;32m%s\033[0m' DEST_FORMAT='\033[0;32m%s\033[0m' VERSION_FORMAT='\033[0;32m%s\033[0m' - elif nvm_is_version_installed "$VERSION"; then + elif nvm_is_version_installed "${VERSION}"; then ALIAS_FORMAT='\033[0;34m%s\033[0m' DEST_FORMAT='\033[0;34m%s\033[0m' VERSION_FORMAT='\033[0;34m%s\033[0m' - elif [ "_$VERSION" = '_∞' ] || [ "_$VERSION" = '_N/A' ]; then + elif [ "${VERSION}" = '∞' ] || [ "${VERSION}" = 'N/A' ]; then ALIAS_FORMAT='\033[1;31m%s\033[0m' DEST_FORMAT='\033[1;31m%s\033[0m' VERSION_FORMAT='\033[1;31m%s\033[0m' @@ -498,81 +498,81 @@ nvm_print_formatted_alias() { DEST_FORMAT='\033[1;33m%s\033[0m' fi fi - if [ "_$DEST" = "_$VERSION" ]; then - command printf -- "${ALIAS_FORMAT} ${ARROW} ${VERSION_FORMAT}${NEWLINE}" "$ALIAS" "$DEST" + if [ "${DEST}" = "${VERSION}" ]; then + command printf -- "${ALIAS_FORMAT} ${ARROW} ${VERSION_FORMAT}${NEWLINE}" "${ALIAS}" "${DEST}" else - command printf -- "${ALIAS_FORMAT} ${ARROW} ${DEST_FORMAT} (${ARROW} ${VERSION_FORMAT})${NEWLINE}" "$ALIAS" "$DEST" "$VERSION" + command printf -- "${ALIAS_FORMAT} ${ARROW} ${DEST_FORMAT} (${ARROW} ${VERSION_FORMAT})${NEWLINE}" "${ALIAS}" "${DEST}" "${VERSION}" fi } nvm_print_alias_path() { local NVM_ALIAS_DIR NVM_ALIAS_DIR="${1-}" - if [ -z "$NVM_ALIAS_DIR" ]; then + if [ -z "${NVM_ALIAS_DIR}" ]; then nvm_err 'An alias dir is required.' return 1 fi local ALIAS_PATH ALIAS_PATH="${2-}" - if [ -z "$ALIAS_PATH" ]; then + if [ -z "${ALIAS_PATH}" ]; then nvm_err 'An alias path is required.' return 2 fi local ALIAS - ALIAS="${ALIAS_PATH##$NVM_ALIAS_DIR\/}" + ALIAS="${ALIAS_PATH##${NVM_ALIAS_DIR}\/}" local DEST - DEST="$(nvm_alias "$ALIAS" 2> /dev/null || return 0)" - if [ -n "$DEST" ]; then - NVM_LTS="${NVM_LTS-}" DEFAULT=false nvm_print_formatted_alias "$ALIAS" "$DEST" + DEST="$(nvm_alias "${ALIAS}" 2> /dev/null || return 0)" + if [ -n "${DEST}" ]; then + NVM_LTS="${NVM_LTS-}" DEFAULT=false nvm_print_formatted_alias "${ALIAS}" "${DEST}" fi } nvm_print_default_alias() { local ALIAS ALIAS="${1-}" - if [ -z "$ALIAS" ]; then + if [ -z "${ALIAS}" ]; then nvm_err 'A default alias is required.' return 1 fi local DEST - DEST="$(nvm_print_implicit_alias local "$ALIAS")" - if [ -n "$DEST" ]; then - DEFAULT=true nvm_print_formatted_alias "$ALIAS" "$DEST" + DEST="$(nvm_print_implicit_alias local "${ALIAS}")" + if [ -n "${DEST}" ]; then + DEFAULT=true nvm_print_formatted_alias "${ALIAS}" "${DEST}" fi } nvm_make_alias() { local ALIAS ALIAS="${1-}" - if [ -z "$ALIAS" ]; then + if [ -z "${ALIAS}" ]; then nvm_err "an alias name is required" return 1 fi local VERSION VERSION="${2-}" - if [ -z "$VERSION" ]; then + if [ -z "${VERSION}" ]; then nvm_err "an alias target version is required" return 2 fi - nvm_echo "$VERSION" | tee "$(nvm_alias_path)/${ALIAS}" >/dev/null + nvm_echo "${VERSION}" | tee "$(nvm_alias_path)/${ALIAS}" >/dev/null } nvm_alias() { local ALIAS ALIAS="${1-}" - if [ -z "$ALIAS" ]; then + if [ -z "${ALIAS}" ]; then nvm_err 'An alias is required.' return 1 fi local NVM_ALIAS_PATH - NVM_ALIAS_PATH="$(nvm_alias_path)/$ALIAS" - if [ ! -f "$NVM_ALIAS_PATH" ]; then + NVM_ALIAS_PATH="$(nvm_alias_path)/${ALIAS}" + if [ ! -f "${NVM_ALIAS_PATH}" ]; then nvm_err 'Alias does not exist.' return 2 fi - command cat "$NVM_ALIAS_PATH" + command cat "${NVM_ALIAS_PATH}" } nvm_ls_current() { @@ -580,15 +580,15 @@ nvm_ls_current() { NVM_LS_CURRENT_NODE_PATH="$(command which node 2> /dev/null)" if [ $? -ne 0 ]; then nvm_echo 'none' - elif nvm_tree_contains_path "$(nvm_version_dir iojs)" "$NVM_LS_CURRENT_NODE_PATH"; then + elif nvm_tree_contains_path "$(nvm_version_dir iojs)" "${NVM_LS_CURRENT_NODE_PATH}"; then nvm_add_iojs_prefix "$(iojs --version 2>/dev/null)" - elif nvm_tree_contains_path "$NVM_DIR" "$NVM_LS_CURRENT_NODE_PATH"; then + elif nvm_tree_contains_path "${NVM_DIR}" "${NVM_LS_CURRENT_NODE_PATH}"; then local VERSION VERSION="$(node --version 2>/dev/null)" - if [ "$VERSION" = "v0.6.21-pre" ]; then + if [ "${VERSION}" = "v0.6.21-pre" ]; then nvm_echo 'v0.6.21' else - nvm_echo "$VERSION" + nvm_echo "${VERSION}" fi else nvm_echo 'system' @@ -596,59 +596,59 @@ nvm_ls_current() { } nvm_resolve_alias() { - if [ -z "$1" ]; then + if [ -z "${1-}" ]; then return 1 fi local PATTERN - PATTERN="$1" + PATTERN="${1-}" local ALIAS - ALIAS="$PATTERN" + ALIAS="${PATTERN}" local ALIAS_TEMP local SEEN_ALIASES - SEEN_ALIASES="$ALIAS" + SEEN_ALIASES="${ALIAS}" while true; do - ALIAS_TEMP="$(nvm_alias "$ALIAS" 2> /dev/null || echo)" + ALIAS_TEMP="$(nvm_alias "${ALIAS}" 2> /dev/null || echo)" - if [ -z "$ALIAS_TEMP" ]; then + if [ -z "${ALIAS_TEMP}" ]; then break fi - if [ -n "$ALIAS_TEMP" ] \ - && command printf "$SEEN_ALIASES" | nvm_grep -e "^$ALIAS_TEMP$" > /dev/null; then + if [ -n "${ALIAS_TEMP}" ] \ + && command printf "${SEEN_ALIASES}" | nvm_grep -e "^${ALIAS_TEMP}$" > /dev/null; then ALIAS="∞" break fi - SEEN_ALIASES="$SEEN_ALIASES\n$ALIAS_TEMP" - ALIAS="$ALIAS_TEMP" + SEEN_ALIASES="${SEEN_ALIASES}\n${ALIAS_TEMP}" + ALIAS="${ALIAS_TEMP}" done - if [ -n "$ALIAS" ] && [ "_$ALIAS" != "_$PATTERN" ]; then + if [ -n "${ALIAS}" ] && [ "_${ALIAS}" != "_${PATTERN}" ]; then local NVM_IOJS_PREFIX NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" local NVM_NODE_PREFIX NVM_NODE_PREFIX="$(nvm_node_prefix)" - case "_$ALIAS" in - "_∞" | \ - "_$NVM_IOJS_PREFIX" | "_$NVM_IOJS_PREFIX-" | \ - "_$NVM_NODE_PREFIX" ) - nvm_echo "$ALIAS" + case "${ALIAS}" in + '∞' | \ + "${NVM_IOJS_PREFIX}" | "${NVM_IOJS_PREFIX}-" | \ + "${NVM_NODE_PREFIX}" ) + nvm_echo "${ALIAS}" ;; *) - nvm_ensure_version_prefix "$ALIAS" + nvm_ensure_version_prefix "${ALIAS}" ;; esac return 0 fi - if nvm_validate_implicit_alias "$PATTERN" 2> /dev/null ; then + if nvm_validate_implicit_alias "${PATTERN}" 2> /dev/null ; then local IMPLICIT - IMPLICIT="$(nvm_print_implicit_alias local "$PATTERN" 2> /dev/null)" - if [ -n "$IMPLICIT" ]; then - nvm_ensure_version_prefix "$IMPLICIT" + IMPLICIT="$(nvm_print_implicit_alias local "${PATTERN}" 2> /dev/null)" + if [ -n "${IMPLICIT}" ]; then + nvm_ensure_version_prefix "${IMPLICIT}" fi fi @@ -656,21 +656,21 @@ nvm_resolve_alias() { } nvm_resolve_local_alias() { - if [ -z "$1" ]; then + if [ -z "${1-}" ]; then return 1 fi local VERSION local EXIT_CODE - VERSION="$(nvm_resolve_alias "$1")" + VERSION="$(nvm_resolve_alias "${1-}")" EXIT_CODE=$? - if [ -z "$VERSION" ]; then + if [ -z "${VERSION}" ]; then return $EXIT_CODE fi - if [ "_$VERSION" != "_∞" ]; then - nvm_version "$VERSION" + if [ "_${VERSION}" != '_∞' ]; then + nvm_version "${VERSION}" else - nvm_echo "$VERSION" + nvm_echo "${VERSION}" fi } @@ -682,21 +682,21 @@ nvm_node_prefix() { } nvm_is_iojs_version() { - case "$1" in iojs-*) return 0 ;; esac + case "${1-}" in iojs-*) return 0 ;; esac return 1 } nvm_add_iojs_prefix() { - nvm_echo "$(nvm_iojs_prefix)-$(nvm_ensure_version_prefix "$(nvm_strip_iojs_prefix "$1")")" + nvm_echo "$(nvm_iojs_prefix)-$(nvm_ensure_version_prefix "$(nvm_strip_iojs_prefix "${1-}")")" } nvm_strip_iojs_prefix() { local NVM_IOJS_PREFIX NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" - if [ "_$1" = "_$NVM_IOJS_PREFIX" ]; then + if [ "${1-}" = "${NVM_IOJS_PREFIX}" ]; then nvm_echo else - nvm_echo "${1#"$NVM_IOJS_PREFIX"-}" + nvm_echo "${1#"${NVM_IOJS_PREFIX}"-}" fi } @@ -705,7 +705,7 @@ nvm_ls() { PATTERN="${1-}" local VERSIONS VERSIONS='' - if [ "$PATTERN" = 'current' ]; then + if [ "${PATTERN}" = 'current' ]; then nvm_ls_current return fi @@ -715,24 +715,24 @@ nvm_ls() { local NVM_NODE_PREFIX NVM_NODE_PREFIX="$(nvm_node_prefix)" local NVM_VERSION_DIR_IOJS - NVM_VERSION_DIR_IOJS="$(nvm_version_dir "$NVM_IOJS_PREFIX")" + NVM_VERSION_DIR_IOJS="$(nvm_version_dir "${NVM_IOJS_PREFIX}")" local NVM_VERSION_DIR_NEW NVM_VERSION_DIR_NEW="$(nvm_version_dir new)" local NVM_VERSION_DIR_OLD NVM_VERSION_DIR_OLD="$(nvm_version_dir old)" - case "$PATTERN" in - "$NVM_IOJS_PREFIX" | "$NVM_NODE_PREFIX" ) - PATTERN="$PATTERN-" + case "${PATTERN}" in + "${NVM_IOJS_PREFIX}" | "${NVM_NODE_PREFIX}" ) + PATTERN="${PATTERN}-" ;; *) - if nvm_resolve_local_alias "$PATTERN"; then + if nvm_resolve_local_alias "${PATTERN}"; then return fi - PATTERN="$(nvm_ensure_version_prefix "$PATTERN")" + PATTERN="$(nvm_ensure_version_prefix "${PATTERN}")" ;; esac - if [ "_$PATTERN" = "_N/A" ]; then + if [ "${PATTERN}" = 'N/A' ]; then return fi # If it looks like an explicit version, don't do anything funny @@ -741,19 +741,19 @@ nvm_ls() { v*) NVM_PATTERN_STARTS_WITH_V=true ;; *) NVM_PATTERN_STARTS_WITH_V=false ;; esac - if [ $NVM_PATTERN_STARTS_WITH_V = true ] && [ "_$(nvm_num_version_groups "$PATTERN")" = "_3" ]; then - if nvm_is_version_installed "$PATTERN"; then - VERSIONS="$PATTERN" - elif nvm_is_version_installed "$(nvm_add_iojs_prefix "$PATTERN")"; then - VERSIONS="$(nvm_add_iojs_prefix "$PATTERN")" + if [ $NVM_PATTERN_STARTS_WITH_V = true ] && [ "_$(nvm_num_version_groups "${PATTERN}")" = "_3" ]; then + if nvm_is_version_installed "${PATTERN}"; then + VERSIONS="${PATTERN}" + elif nvm_is_version_installed "$(nvm_add_iojs_prefix "${PATTERN}")"; then + VERSIONS="$(nvm_add_iojs_prefix "${PATTERN}")" fi else - case "$PATTERN" in - "$NVM_IOJS_PREFIX-" | "$NVM_NODE_PREFIX-" | "system") ;; + case "${PATTERN}" in + "${NVM_IOJS_PREFIX}-" | "${NVM_NODE_PREFIX}-" | "system") ;; *) local NUM_VERSION_GROUPS - NUM_VERSION_GROUPS="$(nvm_num_version_groups "$PATTERN")" - if [ "_$NUM_VERSION_GROUPS" = "_2" ] || [ "_$NUM_VERSION_GROUPS" = "_1" ]; then + NUM_VERSION_GROUPS="$(nvm_num_version_groups "${PATTERN}")" + if [ "${NUM_VERSION_GROUPS}" = "2" ] || [ "${NUM_VERSION_GROUPS}" = "1" ]; then PATTERN="${PATTERN%.}." fi ;; @@ -774,47 +774,47 @@ nvm_ls() { NVM_DIRS_TO_SEARCH3='' local NVM_ADD_SYSTEM NVM_ADD_SYSTEM=false - if nvm_is_iojs_version "$PATTERN"; then - NVM_DIRS_TO_SEARCH1="$NVM_VERSION_DIR_IOJS" - PATTERN="$(nvm_strip_iojs_prefix "$PATTERN")" + if nvm_is_iojs_version "${PATTERN}"; then + NVM_DIRS_TO_SEARCH1="${NVM_VERSION_DIR_IOJS}" + PATTERN="$(nvm_strip_iojs_prefix "${PATTERN}")" if nvm_has_system_iojs; then NVM_ADD_SYSTEM=true fi - elif [ "_$PATTERN" = "_$NVM_NODE_PREFIX-" ]; then - NVM_DIRS_TO_SEARCH1="$NVM_VERSION_DIR_OLD" - NVM_DIRS_TO_SEARCH2="$NVM_VERSION_DIR_NEW" + elif [ "${PATTERN}" = "${NVM_NODE_PREFIX}-" ]; then + NVM_DIRS_TO_SEARCH1="${NVM_VERSION_DIR_OLD}" + NVM_DIRS_TO_SEARCH2="${NVM_VERSION_DIR_NEW}" PATTERN='' if nvm_has_system_node; then NVM_ADD_SYSTEM=true fi else - NVM_DIRS_TO_SEARCH1="$NVM_VERSION_DIR_OLD" - NVM_DIRS_TO_SEARCH2="$NVM_VERSION_DIR_NEW" - NVM_DIRS_TO_SEARCH3="$NVM_VERSION_DIR_IOJS" + NVM_DIRS_TO_SEARCH1="${NVM_VERSION_DIR_OLD}" + NVM_DIRS_TO_SEARCH2="${NVM_VERSION_DIR_NEW}" + NVM_DIRS_TO_SEARCH3="${NVM_VERSION_DIR_IOJS}" if nvm_has_system_iojs || nvm_has_system_node; then NVM_ADD_SYSTEM=true fi fi - if ! [ -d "$NVM_DIRS_TO_SEARCH1" ] || ! (command ls -1qA "$NVM_DIRS_TO_SEARCH1" | nvm_grep -q .); then + if ! [ -d "${NVM_DIRS_TO_SEARCH1}" ] || ! (command ls -1qA "${NVM_DIRS_TO_SEARCH1}" | nvm_grep -q .); then NVM_DIRS_TO_SEARCH1='' fi - if ! [ -d "$NVM_DIRS_TO_SEARCH2" ] || ! (command ls -1qA "$NVM_DIRS_TO_SEARCH2" | nvm_grep -q .); then - NVM_DIRS_TO_SEARCH2="$NVM_DIRS_TO_SEARCH1" + if ! [ -d "${NVM_DIRS_TO_SEARCH2}" ] || ! (command ls -1qA "${NVM_DIRS_TO_SEARCH2}" | nvm_grep -q .); then + NVM_DIRS_TO_SEARCH2="${NVM_DIRS_TO_SEARCH1}" fi - if ! [ -d "$NVM_DIRS_TO_SEARCH3" ] || ! (command ls -1qA "$NVM_DIRS_TO_SEARCH3" | nvm_grep -q .); then - NVM_DIRS_TO_SEARCH3="$NVM_DIRS_TO_SEARCH2" + if ! [ -d "${NVM_DIRS_TO_SEARCH3}" ] || ! (command ls -1qA "${NVM_DIRS_TO_SEARCH3}" | nvm_grep -q .); then + NVM_DIRS_TO_SEARCH3="${NVM_DIRS_TO_SEARCH2}" fi local SEARCH_PATTERN - if [ -z "$PATTERN" ]; then + if [ -z "${PATTERN}" ]; then PATTERN='v' SEARCH_PATTERN='.*' else SEARCH_PATTERN="$(echo "${PATTERN}" | sed "s#\.#\\\.#g;")" fi - if [ -n "$NVM_DIRS_TO_SEARCH1$NVM_DIRS_TO_SEARCH2$NVM_DIRS_TO_SEARCH3" ]; then - VERSIONS="$(command find "$NVM_DIRS_TO_SEARCH1"/* "$NVM_DIRS_TO_SEARCH2"/* "$NVM_DIRS_TO_SEARCH3"/* -name . -o -type d -prune -o -path "$PATTERN*" \ + if [ -n "${NVM_DIRS_TO_SEARCH1}${NVM_DIRS_TO_SEARCH2}${NVM_DIRS_TO_SEARCH3}" ]; then + VERSIONS="$(command find "${NVM_DIRS_TO_SEARCH1}"/* "${NVM_DIRS_TO_SEARCH2}"/* "${NVM_DIRS_TO_SEARCH3}"/* -name . -o -type d -prune -o -path "${PATTERN}*" \ | command sed " s#${NVM_VERSION_DIR_IOJS}/#versions/${NVM_IOJS_PREFIX}/#; s#^${NVM_DIR}/##; @@ -833,42 +833,42 @@ nvm_ls() { )" fi - if [ "$ZSH_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then + if [ "${ZSH_HAS_SHWORDSPLIT_UNSET}" -eq 1 ] && nvm_has "unsetopt"; then unsetopt shwordsplit fi fi if [ "${NVM_ADD_SYSTEM-}" = true ]; then - if [ -z "$PATTERN" ] || [ "_$PATTERN" = "_v" ]; then - VERSIONS="$VERSIONS$(command printf '\n%s' 'system')" - elif [ "$PATTERN" = 'system' ]; then + if [ -z "${PATTERN}" ] || [ "${PATTERN}" = 'v' ]; then + VERSIONS="${VERSIONS}$(command printf '\n%s' 'system')" + elif [ "${PATTERN}" = 'system' ]; then VERSIONS="$(command printf '%s' 'system')" fi fi - if [ -z "$VERSIONS" ]; then + if [ -z "${VERSIONS}" ]; then nvm_echo 'N/A' return 3 fi - nvm_echo "$VERSIONS" + nvm_echo "${VERSIONS}" } nvm_ls_remote() { local PATTERN - PATTERN="$1" - if nvm_validate_implicit_alias "$PATTERN" 2> /dev/null ; then - PATTERN="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote "$(nvm_print_implicit_alias remote "$PATTERN")" | command awk '{ print $1 }' | command tail -1)" - elif [ -n "$PATTERN" ]; then - PATTERN="$(nvm_ensure_version_prefix "$PATTERN")" + PATTERN="${1-}" + if nvm_validate_implicit_alias "${PATTERN}" 2> /dev/null ; then + PATTERN="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote "$(nvm_print_implicit_alias remote "${PATTERN}")" | command awk '{ print $1 }' | command tail -1)" + elif [ -n "${PATTERN}" ]; then + PATTERN="$(nvm_ensure_version_prefix "${PATTERN}")" else PATTERN=".*" fi - NVM_LTS="${NVM_LTS-}" nvm_ls_remote_index_tab node std "$NVM_NODEJS_ORG_MIRROR" "$PATTERN" + NVM_LTS="${NVM_LTS-}" nvm_ls_remote_index_tab node std "${NVM_NODEJS_ORG_MIRROR}" "${PATTERN}" } nvm_ls_remote_iojs() { - NVM_LTS="${NVM_LTS-}" nvm_ls_remote_index_tab iojs std "$NVM_IOJS_ORG_MIRROR" "$1" + NVM_LTS="${NVM_LTS-}" nvm_ls_remote_index_tab iojs std "${NVM_IOJS_ORG_MIRROR}" "${1-}" } nvm_ls_remote_index_tab() { @@ -879,10 +879,10 @@ nvm_ls_remote_index_tab() { return 5 fi local TYPE - TYPE="$1" + TYPE="${1-}" local PREFIX PREFIX='' - case "$TYPE-$2" in + case "${TYPE}-${2-}" in iojs-std) PREFIX="$(nvm_iojs_prefix)-" ;; node-std) PREFIX='' ;; iojs-*) @@ -896,19 +896,19 @@ nvm_ls_remote_index_tab() { esac local SORT_COMMAND SORT_COMMAND='sort' - case "$TYPE" in + case "${TYPE}" in node) SORT_COMMAND='sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n' ;; esac local MIRROR - MIRROR="$3" + MIRROR="${3-}" local PATTERN - PATTERN="$4" + PATTERN="${4-}" local VERSIONS - if [ -n "$PATTERN" ]; then - if [ "_$TYPE" = "_iojs" ]; then - PATTERN="$(nvm_ensure_version_prefix "$(nvm_strip_iojs_prefix "$PATTERN")")" + if [ -n "${PATTERN}" ]; then + if [ "${TYPE}" = 'iojs' ]; then + PATTERN="$(nvm_ensure_version_prefix "$(nvm_strip_iojs_prefix "${PATTERN}")")" else - PATTERN="$(nvm_ensure_version_prefix "$PATTERN")" + PATTERN="$(nvm_ensure_version_prefix "${PATTERN}")" fi else unset PATTERN @@ -919,15 +919,15 @@ nvm_ls_remote_index_tab() { setopt shwordsplit fi local VERSION_LIST - VERSION_LIST="$(nvm_download -L -s "$MIRROR/index.tab" -o - \ + VERSION_LIST="$(nvm_download -L -s "${MIRROR}/index.tab" -o - \ | command sed " 1d; - s/^/$PREFIX/; + s/^/${PREFIX}/; " \ )" local LTS_ALIAS local LTS_VERSION - nvm_echo "$VERSION_LIST" \ + nvm_echo "${VERSION_LIST}" \ | awk '{ if ($10 ~ /^\-?$/) { next } if ($10 && !a[tolower($10)]++) { @@ -948,7 +948,7 @@ nvm_ls_remote_index_tab() { nvm_make_alias "$LTS_ALIAS" "$LTS_VERSION" >/dev/null 2>&1 done - VERSIONS="$(nvm_echo "$VERSION_LIST" \ + VERSIONS="$(nvm_echo "${VERSION_LIST}" \ | command awk -v pattern="${PATTERN-}" -v lts="${LTS-}" '{ if (!$1) { next } if (pattern && tolower($1) !~ tolower(pattern)) { next } @@ -961,41 +961,41 @@ nvm_ls_remote_index_tab() { if [ "$ZSH_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then unsetopt shwordsplit fi - if [ -z "$VERSIONS" ]; then + if [ -z "${VERSIONS}" ]; then nvm_echo 'N/A' return 3 fi - nvm_echo "$VERSIONS" + nvm_echo "${VERSIONS}" } nvm_checksum() { local NVM_CHECKSUM - if [ -z "$3" ] || [ "$3" = "sha1" ]; then + if [ -z "${3-}" ] || [ "${3-}" = 'sha1' ]; then if nvm_has "sha1sum" && ! nvm_is_alias "sha1sum"; then - NVM_CHECKSUM="$(command sha1sum "$1" | command awk '{print $1}')" + NVM_CHECKSUM="$(command sha1sum "${1-}" | command awk '{print $1}')" elif nvm_has "sha1" && ! nvm_is_alias "sha1"; then - NVM_CHECKSUM="$(command sha1 -q "$1")" + NVM_CHECKSUM="$(command sha1 -q "${1-}")" elif nvm_has "shasum" && ! nvm_is_alias "shasum"; then - NVM_CHECKSUM="$(shasum "$1" | command awk '{print $1}')" + NVM_CHECKSUM="$(shasum "${1-}" | command awk '{print $1}')" else nvm_err 'Unaliased sha1sum, sha1, or shasum not found.' return 2 fi else if nvm_has "sha256sum" && ! nvm_is_alias "sha256sum"; then - NVM_CHECKSUM="$(sha256sum "$1" | command awk '{print $1}')" + NVM_CHECKSUM="$(sha256sum "${1-}" | command awk '{print $1}')" elif nvm_has "shasum" && ! nvm_is_alias "shasum"; then - NVM_CHECKSUM="$(shasum -a 256 "$1" | command awk '{print $1}')" + NVM_CHECKSUM="$(shasum -a 256 "${1-}" | command awk '{print $1}')" elif nvm_has "sha256" && ! nvm_is_alias "sha256"; then - NVM_CHECKSUM="$(sha256 -q "$1" | command awk '{print $1}')" + NVM_CHECKSUM="$(sha256 -q "${1-}" | command awk '{print $1}')" elif nvm_has "gsha256sum" && ! nvm_is_alias "gsha256sum"; then - NVM_CHECKSUM="$(gsha256sum "$1" | command awk '{print $1}')" + NVM_CHECKSUM="$(gsha256sum "${1-}" | command awk '{print $1}')" elif nvm_has "openssl" && ! nvm_is_alias "openssl"; then - NVM_CHECKSUM="$(openssl dgst -sha256 "$1" | rev | command awk '{print $1}' | rev)" + NVM_CHECKSUM="$(openssl dgst -sha256 "${1-}" | rev | command awk '{print $1}' | rev)" elif nvm_has "libressl" && ! nvm_is_alias "libressl"; then - NVM_CHECKSUM="$(libressl dgst -sha256 "$1" | rev | command awk '{print $1}' | rev)" + NVM_CHECKSUM="$(libressl dgst -sha256 "${1-}" | rev | command awk '{print $1}' | rev)" elif nvm_has "bssl" && ! nvm_is_alias "bssl"; then - NVM_CHECKSUM="$(bssl sha256sum "$1" | command awk '{print $1}')" + NVM_CHECKSUM="$(bssl sha256sum "${1-}" | command awk '{print $1}')" else nvm_err 'Unaliased sha256sum, shasum, sha256, gsha256sum, openssl, libressl, or bssl not found.' nvm_err 'WARNING: Continuing *without checksum verification*' @@ -1003,9 +1003,9 @@ nvm_checksum() { fi fi - if [ "_$NVM_CHECKSUM" = "_$2" ]; then + if [ "_${NVM_CHECKSUM}" = "_${2-}" ]; then return - elif [ -z "$2" ]; then + elif [ -z "${2-}" ]; then nvm_echo 'Checksums empty' #missing in raspberry pi binary return else @@ -1026,7 +1026,7 @@ nvm_print_versions() { fi local LTS_LENGTH local LTS_FORMAT - nvm_echo "$1" \ + nvm_echo "${1-}" \ | command sed '1!G;h;$!d' \ | command awk '{ if ($2 && a[$2]++) { print $1, "(LTS: " $2 ")" } else if ($2) { print $1, "(Latest LTS: " $2 ")" } else { print $0 } }' \ | command sed '1!G;h;$!d' \ @@ -2249,7 +2249,7 @@ nvm() { VERSION="$(nvm_match_version "$PROVIDED_VERSION")" fi - if [ -z "$VERSION" ]; then + if [ -z "${VERSION}" ]; then >&2 nvm --help return 127 fi From a3bc4d3e6254995400b7ecdaad59329324327f88 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 8 Aug 2016 13:18:53 -0700 Subject: [PATCH 0797/1426] =?UTF-8?q?[Refactor]=20`nvm=20alias`:=20shift?= =?UTF-8?q?=20out=20the=20=E2=80=9Calias=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nvm.sh | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/nvm.sh b/nvm.sh index aa0f3cd..0ecb028 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2628,26 +2628,28 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" nvm_echo "$NVM_VERSION_DIR/bin/node" ;; "alias" ) + shift + local NVM_ALIAS_DIR NVM_ALIAS_DIR="$(nvm_alias_path)" command mkdir -p "$NVM_ALIAS_DIR/lts" local NVM_CURRENT NVM_CURRENT="$(nvm_ls_current)" - if [ $# -le 2 ]; then + if [ $# -le 1 ]; then local ALIAS_PATH - for ALIAS_PATH in "$NVM_ALIAS_DIR/${2-}"*; do + for ALIAS_PATH in "$NVM_ALIAS_DIR/${1-}"*; do NVM_CURRENT="${NVM_CURRENT}" nvm_print_alias_path "$NVM_ALIAS_DIR" "$ALIAS_PATH" done local ALIAS for ALIAS in "$(nvm_node_prefix)" "stable" "unstable" "$(nvm_iojs_prefix)"; do - if [ ! -f "$NVM_ALIAS_DIR/$ALIAS" ] && ([ $# -lt 2 ] || [ "~$ALIAS" = "~${2-}" ]); then + if [ ! -f "$NVM_ALIAS_DIR/$ALIAS" ] && ([ $# -lt 1 ] || [ "~$ALIAS" = "~${1-}" ]); then NVM_CURRENT="${NVM_CURRENT}" nvm_print_default_alias "$ALIAS" fi done local LTS_ALIAS - for ALIAS_PATH in "$NVM_ALIAS_DIR/lts/${2-}"*; do + for ALIAS_PATH in "$NVM_ALIAS_DIR/lts/${1-}"*; do LTS_ALIAS="$(NVM_LTS=true nvm_print_alias_path "$NVM_ALIAS_DIR" "$ALIAS_PATH")" if [ -n "$LTS_ALIAS" ]; then nvm_echo "${LTS_ALIAS-}" @@ -2655,20 +2657,20 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" done return fi - if [ -z "${3-}" ]; then - nvm unalias "${2-}" + if [ -z "${2-}" ]; then + nvm unalias "${1-}" return $? fi - if [ "${2#*\/}" != "${2-}" ]; then + if [ "${1#*\/}" != "${1-}" ]; then nvm_err 'Aliases in subdirectories are not supported.' return 1 fi - VERSION="$(nvm_version "${3-}" || return 0)" + VERSION="$(nvm_version "${2-}" || return 0)" if [ "$VERSION" = 'N/A' ]; then - nvm_err "! WARNING: Version '${3-}' does not exist." + nvm_err "! WARNING: Version '${2-}' does not exist." fi - nvm_make_alias "${2-}" "${3-}" - NVM_CURRENT="${NVM_CURRENT-}" DEFAULT=false nvm_print_formatted_alias "${2-}" "${3-}" "$VERSION" + nvm_make_alias "${1-}" "${2-}" + NVM_CURRENT="${NVM_CURRENT-}" DEFAULT=false nvm_print_formatted_alias "${1-}" "${2-}" "$VERSION" ;; "unalias" ) local NVM_ALIAS_DIR From 21b8f556b27bc1a8e078ea8e8b5c9b7f86f34425 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 8 Aug 2016 13:21:42 -0700 Subject: [PATCH 0798/1426] [Refactor] `nvm alias`: use named vars instead of positional args. --- nvm.sh | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/nvm.sh b/nvm.sh index 0ecb028..e459a39 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2630,6 +2630,11 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" "alias" ) shift + local ALIAS + ALIAS="${1-}" + local TARGET + TARGET="${2-}" + local NVM_ALIAS_DIR NVM_ALIAS_DIR="$(nvm_alias_path)" command mkdir -p "$NVM_ALIAS_DIR/lts" @@ -2637,19 +2642,19 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" NVM_CURRENT="$(nvm_ls_current)" if [ $# -le 1 ]; then local ALIAS_PATH - for ALIAS_PATH in "$NVM_ALIAS_DIR/${1-}"*; do + for ALIAS_PATH in "$NVM_ALIAS_DIR/${ALIAS}"*; do NVM_CURRENT="${NVM_CURRENT}" nvm_print_alias_path "$NVM_ALIAS_DIR" "$ALIAS_PATH" done - local ALIAS - for ALIAS in "$(nvm_node_prefix)" "stable" "unstable" "$(nvm_iojs_prefix)"; do - if [ ! -f "$NVM_ALIAS_DIR/$ALIAS" ] && ([ $# -lt 1 ] || [ "~$ALIAS" = "~${1-}" ]); then - NVM_CURRENT="${NVM_CURRENT}" nvm_print_default_alias "$ALIAS" + local ALIAS_NAME + for ALIAS_NAME in "$(nvm_node_prefix)" "stable" "unstable" "$(nvm_iojs_prefix)"; do + if [ ! -f "${NVM_ALIAS_DIR}/${ALIAS}" ] && ([ $# -lt 1 ] || [ "~${ALIAS_NAME}" = "~${ALIAS}" ]); then + NVM_CURRENT="${NVM_CURRENT}" nvm_print_default_alias "$ALIAS_NAME" fi done local LTS_ALIAS - for ALIAS_PATH in "$NVM_ALIAS_DIR/lts/${1-}"*; do + for ALIAS_PATH in "$NVM_ALIAS_DIR/lts/${ALIAS}"*; do LTS_ALIAS="$(NVM_LTS=true nvm_print_alias_path "$NVM_ALIAS_DIR" "$ALIAS_PATH")" if [ -n "$LTS_ALIAS" ]; then nvm_echo "${LTS_ALIAS-}" @@ -2657,20 +2662,20 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" done return fi - if [ -z "${2-}" ]; then - nvm unalias "${1-}" + if [ -z "${TARGET}" ]; then + nvm unalias "${ALIAS}" return $? fi - if [ "${1#*\/}" != "${1-}" ]; then + if [ "${ALIAS#*\/}" != "${ALIAS}" ]; then nvm_err 'Aliases in subdirectories are not supported.' return 1 fi - VERSION="$(nvm_version "${2-}" || return 0)" + VERSION="$(nvm_version "${TARGET}" || return 0)" if [ "$VERSION" = 'N/A' ]; then - nvm_err "! WARNING: Version '${2-}' does not exist." + nvm_err "! WARNING: Version '${TARGET}' does not exist." fi - nvm_make_alias "${1-}" "${2-}" - NVM_CURRENT="${NVM_CURRENT-}" DEFAULT=false nvm_print_formatted_alias "${1-}" "${2-}" "$VERSION" + nvm_make_alias "${ALIAS}" "${TARGET}" + NVM_CURRENT="${NVM_CURRENT-}" DEFAULT=false nvm_print_formatted_alias "${ALIAS}" "${TARGET}" "$VERSION" ;; "unalias" ) local NVM_ALIAS_DIR From 091c64c7c55376714c1113b3b858edb90104731f Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 8 Aug 2016 13:37:14 -0700 Subject: [PATCH 0799/1426] [Refactor] `nvm alias`: add in `--`-based argument support. --- nvm.sh | 43 ++++++++++++++++++++++++++++++++----------- 1 file changed, 32 insertions(+), 11 deletions(-) diff --git a/nvm.sh b/nvm.sh index e459a39..8eebc02 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2631,16 +2631,37 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" shift local ALIAS - ALIAS="${1-}" + ALIAS='--' local TARGET - TARGET="${2-}" + TARGET='--' + while [ $# -gt 0 ] + do + case "${1-}" in + --) ;; + --*) + nvm_err "Unsupported option \"${1}\"." + return 55 + ;; + *) + if [ "${ALIAS}" = '--' ]; then + ALIAS="${1-}" + elif [ "${TARGET}" = '--' ]; then + TARGET="${1-}" + fi + ;; + esac + shift + done local NVM_ALIAS_DIR NVM_ALIAS_DIR="$(nvm_alias_path)" - command mkdir -p "$NVM_ALIAS_DIR/lts" + command mkdir -p "${NVM_ALIAS_DIR}/lts" local NVM_CURRENT NVM_CURRENT="$(nvm_ls_current)" - if [ $# -le 1 ]; then + if [ "${TARGET}" = '--' ]; then + if [ "${ALIAS}" = '--' ]; then + ALIAS='' + fi local ALIAS_PATH for ALIAS_PATH in "$NVM_ALIAS_DIR/${ALIAS}"*; do NVM_CURRENT="${NVM_CURRENT}" nvm_print_alias_path "$NVM_ALIAS_DIR" "$ALIAS_PATH" @@ -2648,16 +2669,16 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" local ALIAS_NAME for ALIAS_NAME in "$(nvm_node_prefix)" "stable" "unstable" "$(nvm_iojs_prefix)"; do - if [ ! -f "${NVM_ALIAS_DIR}/${ALIAS}" ] && ([ $# -lt 1 ] || [ "~${ALIAS_NAME}" = "~${ALIAS}" ]); then - NVM_CURRENT="${NVM_CURRENT}" nvm_print_default_alias "$ALIAS_NAME" + if [ ! -f "${NVM_ALIAS_DIR}/${ALIAS}" ] && ([ -z "${ALIAS}" ] || [ "~${ALIAS_NAME}" = "~${ALIAS}" ]); then + NVM_CURRENT="${NVM_CURRENT}" nvm_print_default_alias "${ALIAS_NAME}" fi done local LTS_ALIAS - for ALIAS_PATH in "$NVM_ALIAS_DIR/lts/${ALIAS}"*; do - LTS_ALIAS="$(NVM_LTS=true nvm_print_alias_path "$NVM_ALIAS_DIR" "$ALIAS_PATH")" - if [ -n "$LTS_ALIAS" ]; then - nvm_echo "${LTS_ALIAS-}" + for ALIAS_PATH in "${NVM_ALIAS_DIR}/lts/${ALIAS}"*; do + LTS_ALIAS="$(NVM_LTS=true nvm_print_alias_path "${NVM_ALIAS_DIR}" "${ALIAS_PATH}")" + if [ -n "${LTS_ALIAS}" ]; then + nvm_echo "${LTS_ALIAS}" fi done return @@ -2675,7 +2696,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" nvm_err "! WARNING: Version '${TARGET}' does not exist." fi nvm_make_alias "${ALIAS}" "${TARGET}" - NVM_CURRENT="${NVM_CURRENT-}" DEFAULT=false nvm_print_formatted_alias "${ALIAS}" "${TARGET}" "$VERSION" + NVM_CURRENT="${NVM_CURRENT-}" DEFAULT=false nvm_print_formatted_alias "${ALIAS}" "${TARGET}" "${VERSION}" ;; "unalias" ) local NVM_ALIAS_DIR From b6eb565ea1a4a2f49f04c3c7b1f45f7388833b2d Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 8 Aug 2016 15:50:05 -0700 Subject: [PATCH 0800/1426] [Refactor] `nvm alias`: reorganize so alias listing is done last --- nvm.sh | 56 +++++++++++++++++++++++++++++++------------------------- 1 file changed, 31 insertions(+), 25 deletions(-) diff --git a/nvm.sh b/nvm.sh index 8eebc02..fa863ab 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2630,6 +2630,13 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" "alias" ) shift + local NVM_ALIAS_DIR + NVM_ALIAS_DIR="$(nvm_alias_path)" + local NVM_CURRENT + NVM_CURRENT="$(nvm_ls_current)" + + command mkdir -p "${NVM_ALIAS_DIR}/lts" + local ALIAS ALIAS='--' local TARGET @@ -2653,23 +2660,36 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" shift done - local NVM_ALIAS_DIR - NVM_ALIAS_DIR="$(nvm_alias_path)" - command mkdir -p "${NVM_ALIAS_DIR}/lts" - local NVM_CURRENT - NVM_CURRENT="$(nvm_ls_current)" - if [ "${TARGET}" = '--' ]; then - if [ "${ALIAS}" = '--' ]; then - ALIAS='' + if [ -z "${TARGET}" ]; then + # for some reason the empty string was explicitly passed as the target + # so, unalias it. + nvm unalias "${ALIAS}" + return $? + elif [ "${TARGET}" != '--' ]; then + # a target was passed: create an alias + if [ "${ALIAS#*\/}" != "${ALIAS}" ]; then + nvm_err 'Aliases in subdirectories are not supported.' + return 1 fi + VERSION="$(nvm_version "${TARGET}" || return 0)" + if [ "${VERSION}" = 'N/A' ]; then + nvm_err "! WARNING: Version '${TARGET}' does not exist." + fi + nvm_make_alias "${ALIAS}" "${TARGET}" + NVM_CURRENT="${NVM_CURRENT-}" DEFAULT=false nvm_print_formatted_alias "${ALIAS}" "${TARGET}" "$VERSION" + else + if [ "${ALIAS-}" = '--' ]; then + unset ALIAS + fi + local ALIAS_PATH - for ALIAS_PATH in "$NVM_ALIAS_DIR/${ALIAS}"*; do - NVM_CURRENT="${NVM_CURRENT}" nvm_print_alias_path "$NVM_ALIAS_DIR" "$ALIAS_PATH" + for ALIAS_PATH in "${NVM_ALIAS_DIR}/${ALIAS-}"*; do + NVM_CURRENT="${NVM_CURRENT}" nvm_print_alias_path "${NVM_ALIAS_DIR}" "${ALIAS_PATH}" done local ALIAS_NAME for ALIAS_NAME in "$(nvm_node_prefix)" "stable" "unstable" "$(nvm_iojs_prefix)"; do - if [ ! -f "${NVM_ALIAS_DIR}/${ALIAS}" ] && ([ -z "${ALIAS}" ] || [ "~${ALIAS_NAME}" = "~${ALIAS}" ]); then + if [ ! -f "${NVM_ALIAS_DIR}/${ALIAS_NAME}" ] && ([ -z "${ALIAS-}" ] || [ "${ALIAS_NAME}" = "${ALIAS-}" ]); then NVM_CURRENT="${NVM_CURRENT}" nvm_print_default_alias "${ALIAS_NAME}" fi done @@ -2683,20 +2703,6 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" done return fi - if [ -z "${TARGET}" ]; then - nvm unalias "${ALIAS}" - return $? - fi - if [ "${ALIAS#*\/}" != "${ALIAS}" ]; then - nvm_err 'Aliases in subdirectories are not supported.' - return 1 - fi - VERSION="$(nvm_version "${TARGET}" || return 0)" - if [ "$VERSION" = 'N/A' ]; then - nvm_err "! WARNING: Version '${TARGET}' does not exist." - fi - nvm_make_alias "${ALIAS}" "${TARGET}" - NVM_CURRENT="${NVM_CURRENT-}" DEFAULT=false nvm_print_formatted_alias "${ALIAS}" "${TARGET}" "${VERSION}" ;; "unalias" ) local NVM_ALIAS_DIR From 79270a579c812158ee8f4481a9b330f711712c1e Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 6 Aug 2016 22:33:37 -0700 Subject: [PATCH 0801/1426] [Refactor] create `nvm_list_aliases` --- nvm.sh | 53 +++++++++++++++++++++++++++++++++-------------------- 1 file changed, 33 insertions(+), 20 deletions(-) diff --git a/nvm.sh b/nvm.sh index fa863ab..de3936f 100644 --- a/nvm.sh +++ b/nvm.sh @@ -557,6 +557,38 @@ nvm_make_alias() { nvm_echo "${VERSION}" | tee "$(nvm_alias_path)/${ALIAS}" >/dev/null } +nvm_list_aliases() { + local ALIAS + ALIAS="${1-}" + + local NVM_CURRENT + NVM_CURRENT="$(nvm_ls_current)" + local NVM_ALIAS_DIR + NVM_ALIAS_DIR="$(nvm_alias_path)" + command mkdir -p "${NVM_ALIAS_DIR}/lts" + + local ALIAS_PATH + for ALIAS_PATH in "${NVM_ALIAS_DIR}/${ALIAS}"*; do + NVM_CURRENT="${NVM_CURRENT}" nvm_print_alias_path "${NVM_ALIAS_DIR}" "${ALIAS_PATH}" + done + + local ALIAS_NAME + for ALIAS_NAME in "$(nvm_node_prefix)" "stable" "unstable" "$(nvm_iojs_prefix)"; do + if [ ! -f "${NVM_ALIAS_DIR}/${ALIAS_NAME}" ] && ([ -z "${ALIAS}" ] || [ "${ALIAS_NAME}" = "${ALIAS}" ]); then + NVM_CURRENT="${NVM_CURRENT}" nvm_print_default_alias "${ALIAS_NAME}" + fi + done + + local LTS_ALIAS + for ALIAS_PATH in "${NVM_ALIAS_DIR}/lts/${ALIAS}"*; do + LTS_ALIAS="$(NVM_LTS=true nvm_print_alias_path "${NVM_ALIAS_DIR}" "${ALIAS_PATH}")" + if [ -n "${LTS_ALIAS}" ]; then + nvm_echo "${LTS_ALIAS}" + fi + done + return +} + nvm_alias() { local ALIAS ALIAS="${1-}" @@ -2682,26 +2714,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" unset ALIAS fi - local ALIAS_PATH - for ALIAS_PATH in "${NVM_ALIAS_DIR}/${ALIAS-}"*; do - NVM_CURRENT="${NVM_CURRENT}" nvm_print_alias_path "${NVM_ALIAS_DIR}" "${ALIAS_PATH}" - done - - local ALIAS_NAME - for ALIAS_NAME in "$(nvm_node_prefix)" "stable" "unstable" "$(nvm_iojs_prefix)"; do - if [ ! -f "${NVM_ALIAS_DIR}/${ALIAS_NAME}" ] && ([ -z "${ALIAS-}" ] || [ "${ALIAS_NAME}" = "${ALIAS-}" ]); then - NVM_CURRENT="${NVM_CURRENT}" nvm_print_default_alias "${ALIAS_NAME}" - fi - done - - local LTS_ALIAS - for ALIAS_PATH in "${NVM_ALIAS_DIR}/lts/${ALIAS}"*; do - LTS_ALIAS="$(NVM_LTS=true nvm_print_alias_path "${NVM_ALIAS_DIR}" "${ALIAS_PATH}")" - if [ -n "${LTS_ALIAS}" ]; then - nvm_echo "${LTS_ALIAS}" - fi - done - return + nvm_list_aliases "${ALIAS}" fi ;; "unalias" ) From 206878460c694008296d41f5db1b91a3f0f0e3be Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 7 Aug 2016 00:08:46 -0700 Subject: [PATCH 0802/1426] [Refactor] always shift first argument to `nvm` --- nvm.sh | 90 +++++++++++++++++++++++++++------------------------------- 1 file changed, 42 insertions(+), 48 deletions(-) diff --git a/nvm.sh b/nvm.sh index de3936f..931a129 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1848,11 +1848,15 @@ nvm() { return fi + local COMMAND + COMMAND="${1-}" + shift + # initialize local variables local VERSION local ADDITIONAL_PARAMETERS - case $1 in + case $COMMAND in 'help' | '--help' ) local NVM_IOJS_PREFIX NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" @@ -1953,12 +1957,10 @@ nvm() { return 1 fi - if [ $# -lt 2 ]; then + if [ $# -lt 1 ]; then version_not_provided=1 fi - shift - local nobinary nobinary=0 local LTS @@ -2141,8 +2143,6 @@ nvm() { return $? ;; "uninstall" ) - shift # remove "uninstall" - if [ $# -ne 1 ]; then >&2 nvm --help return 127 @@ -2251,7 +2251,6 @@ nvm() { NVM_DELETE_PREFIX=0 local NVM_LTS - shift # remove "use" while [ $# -ne 0 ] do case "$1" in @@ -2372,7 +2371,6 @@ nvm() { local has_checked_nvmrc has_checked_nvmrc=0 # run given version of node - shift local NVM_SILENT local NVM_LTS @@ -2459,8 +2457,6 @@ nvm() { return $EXIT_CODE ;; "exec" ) - shift - local NVM_SILENT local NVM_LTS while [ $# -gt 0 ] @@ -2526,10 +2522,10 @@ nvm() { "ls" | "list" ) local NVM_LS_OUTPUT local NVM_LS_EXIT_CODE - NVM_LS_OUTPUT=$(nvm_ls "${2-}") + NVM_LS_OUTPUT=$(nvm_ls "${1-}") NVM_LS_EXIT_CODE=$? - nvm_print_versions "$NVM_LS_OUTPUT" - if [ $# -eq 1 ]; then + nvm_print_versions "${NVM_LS_OUTPUT}" + if [ $# -eq 0 ]; then nvm alias fi return $NVM_LS_EXIT_CODE @@ -2542,27 +2538,27 @@ nvm() { NVM_NODE_PREFIX="$(nvm_node_prefix)" local PATTERN local NVM_FLAVOR - while [ $# -gt 1 ] + while [ $# -gt 0 ] do - case "$2" in + case "${1-}" in --lts) LTS='*' ;; --lts=*) - LTS="${2##--lts=}" + LTS="${1##--lts=}" NVM_FLAVOR="${NVM_NODE_PREFIX}" ;; --*) - nvm_err "Unsupported option \"$2\"." + nvm_err "Unsupported option \"${1}\"." return 55; ;; *) - if [ -z "$PATTERN" ]; then - PATTERN="${2-}" - if [ -z "$NVM_FLAVOR" ]; then - case "_$PATTERN" in - "_$NVM_IOJS_PREFIX" | "_$NVM_NODE_PREFIX") - NVM_FLAVOR="$PATTERN" + if [ -z "${PATTERN}" ]; then + PATTERN="${1-}" + if [ -z "${NVM_FLAVOR}" ]; then + case "_${PATTERN}" in + "_${NVM_IOJS_PREFIX}" | "_${NVM_NODE_PREFIX}") + NVM_FLAVOR="${PATTERN}" PATTERN="" ;; esac @@ -2614,19 +2610,19 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" ;; "which" ) local provided_version - provided_version="$2" - if [ $# -eq 1 ]; then + provided_version="${1-}" + if [ $# -eq 0 ]; then nvm_rc_version - if [ -n "$NVM_RC_VERSION" ]; then - provided_version="$NVM_RC_VERSION" - VERSION=$(nvm_version "$NVM_RC_VERSION" || return 0) + if [ -n "${NVM_RC_VERSION}" ]; then + provided_version="${NVM_RC_VERSION}" + VERSION=$(nvm_version "${NVM_RC_VERSION}" || return 0) fi - elif [ "_$2" != '_system' ]; then - VERSION="$(nvm_version "$provided_version" || return 0)" + elif [ "_${1}" != '_system' ]; then + VERSION="$(nvm_version "${provided_version}" || return 0)" else - VERSION="$2" + VERSION="${1-}" fi - if [ -z "$VERSION" ]; then + if [ -z "${VERSION}" ]; then >&2 nvm --help return 127 fi @@ -2660,8 +2656,6 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" nvm_echo "$NVM_VERSION_DIR/bin/node" ;; "alias" ) - shift - local NVM_ALIAS_DIR NVM_ALIAS_DIR="$(nvm_alias_path)" local NVM_CURRENT @@ -2721,28 +2715,28 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" local NVM_ALIAS_DIR NVM_ALIAS_DIR="$(nvm_alias_path)" command mkdir -p "$NVM_ALIAS_DIR" - if [ $# -ne 2 ]; then + if [ $# -ne 1 ]; then >&2 nvm --help return 127 fi - if [ "${2#*\/}" != "${2-}" ]; then + if [ "${1#*\/}" != "${1-}" ]; then nvm_err 'Aliases in subdirectories are not supported.' return 1 fi - [ ! -f "$NVM_ALIAS_DIR/$2" ] && nvm_err "Alias $2 doesn't exist!" && return + [ ! -f "$NVM_ALIAS_DIR/${1-}" ] && nvm_err "Alias ${1-} doesn't exist!" && return local NVM_ALIAS_ORIGINAL - NVM_ALIAS_ORIGINAL="$(nvm_alias "$2")" - command rm -f "$NVM_ALIAS_DIR/$2" - nvm_echo "Deleted alias $2 - restore it with \`nvm alias \"$2\" \"$NVM_ALIAS_ORIGINAL\"\`" + NVM_ALIAS_ORIGINAL="$(nvm_alias "${1}")" + command rm -f "$NVM_ALIAS_DIR/${1}" + nvm_echo "Deleted alias ${1} - restore it with \`nvm alias \"${1}\" \"$NVM_ALIAS_ORIGINAL\"\`" ;; "reinstall-packages" | "copy-packages" ) - if [ $# -ne 2 ]; then + if [ $# -ne 1 ]; then >&2 nvm --help return 127 fi local PROVIDED_VERSION - PROVIDED_VERSION="$2" + PROVIDED_VERSION="${1-}" if [ "$PROVIDED_VERSION" = "$(nvm_ls_current)" ] || [ "$(nvm_version "$PROVIDED_VERSION" || return 0)" = "$(nvm_ls_current)" ]; then nvm_err 'Can not reinstall packages from the current version of node.' @@ -2786,26 +2780,26 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" nvm_echo 'Cache cleared.' ;; "version" ) - nvm_version "$2" + nvm_version "${1}" ;; "version-remote" ) local NVM_LTS local PATTERN - while [ $# -gt 1 ] + while [ $# -gt 0 ] do - case "$2" in + case "${1-}" in --lts) NVM_LTS='*' ;; --lts=*) - NVM_LTS="${2##--lts=}" + NVM_LTS="${1##--lts=}" ;; --*) - nvm_err "Unsupported option \"$2\"." + nvm_err "Unsupported option \"${1}\"." return 55; ;; *) - PATTERN="${PATTERN:-$2}" + PATTERN="${PATTERN:-${1}}" ;; esac shift From 0678652bd314726e63ac5e137e9fca538994d1f4 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 6 Aug 2016 23:57:15 -0700 Subject: [PATCH 0803/1426] [New] `nvm ls`/`nvm ls-remote`/`nvm alias`: add `--no-colors` --- nvm.sh | 77 ++++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 54 insertions(+), 23 deletions(-) diff --git a/nvm.sh b/nvm.sh index 931a129..acde8de 100644 --- a/nvm.sh +++ b/nvm.sh @@ -473,7 +473,7 @@ nvm_print_formatted_alias() { fi local ARROW ARROW='->' - if nvm_has_colors; then + if [ -z "${NVM_NO_COLORS}" ] && nvm_has_colors; then ARROW='\033[0;90m->\033[0m' if [ "_${DEFAULT}" = '_true' ]; then NEWLINE=" \033[0;37m(default)\033[0m\n" @@ -497,6 +497,8 @@ nvm_print_formatted_alias() { if [ "_${DEST%/*}" = "_lts" ]; then DEST_FORMAT='\033[1;33m%s\033[0m' fi + elif [ "_$VERSION" != '_∞' ] && [ "_$VERSION" != '_N/A' ]; then + VERSION_FORMAT='%s *' fi if [ "${DEST}" = "${VERSION}" ]; then command printf -- "${ALIAS_FORMAT} ${ARROW} ${VERSION_FORMAT}${NEWLINE}" "${ALIAS}" "${DEST}" @@ -523,7 +525,7 @@ nvm_print_alias_path() { local DEST DEST="$(nvm_alias "${ALIAS}" 2> /dev/null || return 0)" if [ -n "${DEST}" ]; then - NVM_LTS="${NVM_LTS-}" DEFAULT=false nvm_print_formatted_alias "${ALIAS}" "${DEST}" + NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_LTS="${NVM_LTS-}" DEFAULT=false nvm_print_formatted_alias "${ALIAS}" "${DEST}" fi } @@ -537,7 +539,7 @@ nvm_print_default_alias() { local DEST DEST="$(nvm_print_implicit_alias local "${ALIAS}")" if [ -n "${DEST}" ]; then - DEFAULT=true nvm_print_formatted_alias "${ALIAS}" "${DEST}" + NVM_NO_COLORS="${NVM_NO_COLORS-}" DEFAULT=true nvm_print_formatted_alias "${ALIAS}" "${DEST}" fi } @@ -569,19 +571,19 @@ nvm_list_aliases() { local ALIAS_PATH for ALIAS_PATH in "${NVM_ALIAS_DIR}/${ALIAS}"*; do - NVM_CURRENT="${NVM_CURRENT}" nvm_print_alias_path "${NVM_ALIAS_DIR}" "${ALIAS_PATH}" + NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_CURRENT="${NVM_CURRENT}" nvm_print_alias_path "${NVM_ALIAS_DIR}" "${ALIAS_PATH}" done local ALIAS_NAME for ALIAS_NAME in "$(nvm_node_prefix)" "stable" "unstable" "$(nvm_iojs_prefix)"; do if [ ! -f "${NVM_ALIAS_DIR}/${ALIAS_NAME}" ] && ([ -z "${ALIAS}" ] || [ "${ALIAS_NAME}" = "${ALIAS}" ]); then - NVM_CURRENT="${NVM_CURRENT}" nvm_print_default_alias "${ALIAS_NAME}" + NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_CURRENT="${NVM_CURRENT}" nvm_print_default_alias "${ALIAS_NAME}" fi done local LTS_ALIAS for ALIAS_PATH in "${NVM_ALIAS_DIR}/lts/${ALIAS}"*; do - LTS_ALIAS="$(NVM_LTS=true nvm_print_alias_path "${NVM_ALIAS_DIR}" "${ALIAS_PATH}")" + LTS_ALIAS="$(NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_LTS=true nvm_print_alias_path "${NVM_ALIAS_DIR}" "${ALIAS_PATH}")" if [ -n "${LTS_ALIAS}" ]; then nvm_echo "${LTS_ALIAS}" fi @@ -1053,7 +1055,7 @@ nvm_print_versions() { local NVM_CURRENT NVM_CURRENT=$(nvm_ls_current) local NVM_HAS_COLORS - if nvm_has_colors; then + if [ -z "${NVM_NO_COLORS-}" ] && nvm_has_colors; then NVM_HAS_COLORS=1 fi local LTS_LENGTH @@ -1870,6 +1872,8 @@ nvm() { nvm_echo " - default (built-in) aliases: $NVM_NODE_PREFIX, stable, unstable, $NVM_IOJS_PREFIX, system" nvm_echo ' - custom aliases you define with `nvm alias foo`' nvm_echo + nvm_echo ' Any options that produce colorized output should respect the `--no-colors` option.' + nvm_echo nvm_echo 'Usage:' nvm_echo ' nvm --help Show this message' nvm_echo ' nvm --version Print out the latest released version of nvm' @@ -2151,6 +2155,7 @@ nvm() { local PATTERN PATTERN="${1-}" case "${PATTERN-}" in + --) ;; --lts) VERSION="$(nvm_match_version lts/*)" ;; @@ -2256,6 +2261,7 @@ nvm() { case "$1" in --silent) NVM_USE_SILENT=1 ;; --delete-prefix) NVM_DELETE_PREFIX=1 ;; + --) ;; --lts) NVM_LTS='*' ;; --lts=*) NVM_LTS="${1##--lts=}" ;; --*) ;; @@ -2520,13 +2526,34 @@ nvm() { NODE_VERSION="$VERSION" "$NVM_DIR/nvm-exec" "$@" ;; "ls" | "list" ) + local PATTERN + local NVM_NO_COLORS + while [ $# -gt 0 ] + do + case "${1}" in + --) ;; + --no-colors) NVM_NO_COLORS="${1}" ;; + --*) + nvm_err "Unsupported option \"${1}\"." + return 55; + ;; + *) + PATTERN="${PATTERN:-$1}" + ;; + esac + shift + done local NVM_LS_OUTPUT local NVM_LS_EXIT_CODE - NVM_LS_OUTPUT=$(nvm_ls "${1-}") + NVM_LS_OUTPUT=$(nvm_ls "${PATTERN-}") NVM_LS_EXIT_CODE=$? - nvm_print_versions "${NVM_LS_OUTPUT}" - if [ $# -eq 0 ]; then - nvm alias + NVM_NO_COLORS="${NVM_NO_COLORS-}" nvm_print_versions "$NVM_LS_OUTPUT" + if [ -z "${PATTERN-}" ]; then + if [ -n "${NVM_NO_COLORS-}" ]; then + nvm alias --no-colors + else + nvm alias + fi fi return $NVM_LS_EXIT_CODE ;; @@ -2538,27 +2565,28 @@ nvm() { NVM_NODE_PREFIX="$(nvm_node_prefix)" local PATTERN local NVM_FLAVOR + local NVM_NO_COLORS while [ $# -gt 0 ] do case "${1-}" in - --lts) - LTS='*' - ;; + --) ;; + --lts) LTS='*' ;; --lts=*) LTS="${1##--lts=}" NVM_FLAVOR="${NVM_NODE_PREFIX}" ;; + --no-colors) NVM_NO_COLORS="${1}" ;; --*) nvm_err "Unsupported option \"${1}\"." return 55; ;; *) - if [ -z "${PATTERN}" ]; then + if [ -z "$PATTERN" ]; then PATTERN="${1-}" - if [ -z "${NVM_FLAVOR}" ]; then - case "_${PATTERN}" in - "_${NVM_IOJS_PREFIX}" | "_${NVM_NODE_PREFIX}") - NVM_FLAVOR="${PATTERN}" + if [ -z "$NVM_FLAVOR" ]; then + case "_$PATTERN" in + "_$NVM_IOJS_PREFIX" | "_$NVM_NODE_PREFIX") + NVM_FLAVOR="$PATTERN" PATTERN="" ;; esac @@ -2598,10 +2626,10 @@ nvm() { $NVM_LS_REMOTE_IOJS_OUTPUT $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" if [ -n "$NVM_OUTPUT" ]; then - nvm_print_versions "$NVM_OUTPUT" + NVM_NO_COLORS="${NVM_NO_COLORS-}" nvm_print_versions "$NVM_OUTPUT" return $NVM_LS_REMOTE_EXIT_CODE || $NVM_LS_REMOTE_IOJS_EXIT_CODE else - nvm_print_versions "N/A" + NVM_NO_COLORS="${NVM_NO_COLORS-}" nvm_print_versions "N/A" return 3 fi ;; @@ -2664,13 +2692,15 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" command mkdir -p "${NVM_ALIAS_DIR}/lts" local ALIAS - ALIAS='--' local TARGET + local NVM_NO_COLORS + ALIAS='--' TARGET='--' while [ $# -gt 0 ] do case "${1-}" in --) ;; + --no-colors) NVM_NO_COLORS="${1}" ;; --*) nvm_err "Unsupported option \"${1}\"." return 55 @@ -2702,7 +2732,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" nvm_err "! WARNING: Version '${TARGET}' does not exist." fi nvm_make_alias "${ALIAS}" "${TARGET}" - NVM_CURRENT="${NVM_CURRENT-}" DEFAULT=false nvm_print_formatted_alias "${ALIAS}" "${TARGET}" "$VERSION" + NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_CURRENT="${NVM_CURRENT-}" DEFAULT=false nvm_print_formatted_alias "${ALIAS}" "${TARGET}" "$VERSION" else if [ "${ALIAS-}" = '--' ]; then unset ALIAS @@ -2788,6 +2818,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" while [ $# -gt 0 ] do case "${1-}" in + --) ;; --lts) NVM_LTS='*' ;; From 4aa6902dbe64925960cf66e8bfcc1a27376bde4b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 10 Aug 2016 16:57:03 -0700 Subject: [PATCH 0804/1426] [Refactor] `nvm_install_merged_node_binary`: reduce nesting, fix var curlies. --- nvm.sh | 85 +++++++++++++++++++++++++++++++--------------------------- 1 file changed, 45 insertions(+), 40 deletions(-) diff --git a/nvm.sh b/nvm.sh index acde8de..be9f14a 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1339,26 +1339,26 @@ nvm_is_merged_node_version() { nvm_install_merged_node_binary() { local NVM_NODE_TYPE - NVM_NODE_TYPE="$1" + NVM_NODE_TYPE="${1}" local MIRROR - if [ "_$NVM_NODE_TYPE" = "_std" ]; then - MIRROR="$NVM_NODEJS_ORG_MIRROR" + if [ "${NVM_NODE_TYPE}" = 'std' ]; then + MIRROR="${NVM_NODEJS_ORG_MIRROR}" else nvm_err 'unknown type of node.js release' return 4 fi local VERSION - VERSION="$2" + VERSION="${2}" local REINSTALL_PACKAGES_FROM - REINSTALL_PACKAGES_FROM="$3" + REINSTALL_PACKAGES_FROM="${3}" - if ! nvm_is_merged_node_version "$VERSION" || nvm_is_iojs_version "$VERSION"; then + if ! nvm_is_merged_node_version "${VERSION}" || nvm_is_iojs_version "${VERSION}"; then nvm_err 'nvm_install_merged_node_binary requires a node version v4.0 or greater.' return 10 fi local VERSION_PATH - VERSION_PATH="$(nvm_version_path "$VERSION")" + VERSION_PATH="$(nvm_version_path "${VERSION}")" local NVM_OS NVM_OS="$(nvm_get_os)" local t @@ -1369,45 +1369,50 @@ nvm_install_merged_node_binary() { compression="gz" local tar_compression_flag tar_compression_flag="x" - if nvm_supports_xz "$VERSION"; then + if nvm_supports_xz "${VERSION}"; then compression="xz" tar_compression_flag="J" fi NODE_PREFIX="$(nvm_node_prefix)" - if [ -n "$NVM_OS" ]; then - t="$VERSION-$NVM_OS-$(nvm_get_arch)" - url="$MIRROR/$VERSION/$NODE_PREFIX-${t}.tar.${compression}" - sum="$(nvm_download -L -s "$MIRROR/$VERSION/SHASUMS256.txt" -o - | nvm_grep "${NODE_PREFIX}-${t}.tar.${compression}" | command awk '{print $1}')" - local tmpdir - tmpdir="$NVM_DIR/bin/node-${t}" - local tmptarball - tmptarball="$tmpdir/node-${t}.tar.${compression}" - local NVM_INSTALL_ERRORED - command mkdir -p "$tmpdir" && \ - nvm_echo "Downloading $url..." && \ - nvm_download -L -C - --progress-bar "$url" -o "$tmptarball" || \ - NVM_INSTALL_ERRORED=true - if nvm_grep '404 Not Found' "$tmptarball" >/dev/null; then - NVM_INSTALL_ERRORED=true - nvm_err "HTTP 404 at URL $url"; - fi - if ( - [ "$NVM_INSTALL_ERRORED" != true ] && \ - nvm_checksum "$tmptarball" "$sum" "sha256" && \ - command tar -x${tar_compression_flag}f "$tmptarball" -C "$tmpdir" --strip-components 1 && \ - command rm -f "$tmptarball" && \ - command mkdir -p "$VERSION_PATH" && \ - command mv "$tmpdir"/* "$VERSION_PATH" - ); then - return 0 - else - nvm_err 'Binary download failed, trying source.' - command rm -rf "$tmptarball" "$tmpdir" - return 1 - fi + if [ -z "${NVM_OS}" ]; then + return 2 fi - return 2 + + t="${VERSION}-${NVM_OS}-$(nvm_get_arch)" + url="${MIRROR}/$VERSION/$NODE_PREFIX-${t}.tar.${compression}" + sum="$( + nvm_download -L -s "${MIRROR}/${VERSION}/SHASUMS256.txt" -o - \ + | nvm_grep "${NODE_PREFIX}-${t}.tar.${compression}" \ + | command awk '{print $1}' + )" + local tmpdir + tmpdir="${NVM_DIR}/bin/node-${t}" + local tmptarball + tmptarball="${tmpdir}/node-${t}.tar.${compression}" + local NVM_INSTALL_ERRORED + command mkdir -p "${tmpdir}" && \ + nvm_echo "Downloading ${url}..." && \ + nvm_download -L -C - --progress-bar "${url}" -o "${tmptarball}" || \ + NVM_INSTALL_ERRORED=true + if nvm_grep '404 Not Found' "${tmptarball}" >/dev/null; then + NVM_INSTALL_ERRORED=true + nvm_err "HTTP 404 at URL $url"; + fi + if ( + [ "$NVM_INSTALL_ERRORED" != true ] && \ + nvm_checksum "${tmptarball}" "${sum}" "{sha256}" && \ + command tar -x${tar_compression_flag}f "${tmptarball}" -C "${tmpdir}" --strip-components 1 && \ + command rm -f "${tmptarball}" && \ + command mkdir -p "${VERSION_PATH}" && \ + command mv "${tmpdir}"/* "${VERSION_PATH}" + ); then + return 0 + fi + + nvm_err 'Binary download failed, trying source.' + command rm -rf "${tmptarball}" "${tmpdir}" + return 1 } nvm_install_iojs_binary() { From 08cbcf2254c3d213c61b857d21e12288980fd845 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 10 Aug 2016 23:26:29 -0700 Subject: [PATCH 0805/1426] [Fix] when not using `xz` on merged node versions, use `z` to extract, not `x` --- nvm.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nvm.sh b/nvm.sh index be9f14a..7310c0b 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1366,12 +1366,12 @@ nvm_install_merged_node_binary() { local sum local NODE_PREFIX local compression - compression="gz" + compression='gz' local tar_compression_flag - tar_compression_flag="x" + tar_compression_flag='z' if nvm_supports_xz "${VERSION}"; then - compression="xz" - tar_compression_flag="J" + compression='xz' + tar_compression_flag='J' fi NODE_PREFIX="$(nvm_node_prefix)" From ec4efa3ec7e2c966187570fa6fa9dcebe00ced4c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 11 Aug 2016 10:42:32 -0700 Subject: [PATCH 0806/1426] [Refactor] `nvm install`: remove unused `REINSTALL_PACKAGES_FROM` argument to inner installation helpers. --- nvm.sh | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/nvm.sh b/nvm.sh index 7310c0b..e9997cb 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1349,8 +1349,6 @@ nvm_install_merged_node_binary() { fi local VERSION VERSION="${2}" - local REINSTALL_PACKAGES_FROM - REINSTALL_PACKAGES_FROM="${3}" if ! nvm_is_merged_node_version "${VERSION}" || nvm_is_iojs_version "${VERSION}"; then nvm_err 'nvm_install_merged_node_binary requires a node version v4.0 or greater.' @@ -1427,8 +1425,6 @@ nvm_install_iojs_binary() { fi local PREFIXED_VERSION PREFIXED_VERSION="$2" - local REINSTALL_PACKAGES_FROM - REINSTALL_PACKAGES_FROM="$3" if ! nvm_is_iojs_version "$PREFIXED_VERSION"; then nvm_err 'nvm_install_iojs_binary requires an iojs-prefixed version.' @@ -1493,8 +1489,6 @@ nvm_install_iojs_binary() { nvm_install_node_binary() { local VERSION VERSION="$1" - local REINSTALL_PACKAGES_FROM - REINSTALL_PACKAGES_FROM="$2" if nvm_is_iojs_version "$VERSION"; then nvm_err 'nvm_install_node_binary does not allow an iojs-prefixed version.' @@ -2110,11 +2104,11 @@ nvm() { local NVM_INSTALL_SUCCESS # skip binary install if "nobinary" option specified. if [ $nobinary -ne 1 ] && nvm_binary_available "$VERSION"; then - if [ "$NVM_IOJS" = true ] && nvm_install_iojs_binary std "$VERSION" "$REINSTALL_PACKAGES_FROM"; then + if [ "$NVM_IOJS" = true ] && nvm_install_iojs_binary std "$VERSION"; then NVM_INSTALL_SUCCESS=true - elif [ "$NVM_NODE_MERGED" = true ] && nvm_install_merged_node_binary std "$VERSION" "$REINSTALL_PACKAGES_FROM"; then + elif [ "$NVM_NODE_MERGED" = true ] && nvm_install_merged_node_binary std "$VERSION"; then NVM_INSTALL_SUCCESS=true - elif [ "$NVM_IOJS" != true ] && nvm_install_node_binary "$VERSION" "$REINSTALL_PACKAGES_FROM"; then + elif [ "$NVM_IOJS" != true ] && nvm_install_node_binary "$VERSION"; then NVM_INSTALL_SUCCESS=true fi fi From bd3ca47714a11b501cc474666f81930c01938e3b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 11 Aug 2016 10:58:16 -0700 Subject: [PATCH 0807/1426] [Fix] `nvm unload`: ensure all functions are unset --- nvm.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index e9997cb..dc4877f 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2847,6 +2847,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" nvm_ls_remote nvm_ls_remote_iojs nvm_ls_remote_index_tab \ nvm_ls nvm_remote_version nvm_remote_versions \ nvm_install_iojs_binary nvm_install_node_binary \ + nvm_install_merged_node_binary \ nvm_install_node_source nvm_check_file_permissions \ nvm_version nvm_rc_version nvm_match_version \ nvm_ensure_default_set nvm_get_arch nvm_get_os \ @@ -2864,7 +2865,13 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" nvm_download nvm_get_latest nvm_has \ nvm_supports_source_options nvm_auto nvm_supports_xz \ nvm_echo nvm_err nvm_grep \ - nvm_has_colors nvm_process_parameters > /dev/null 2>&1 + nvm_die_on_prefix nvm_get_make_jobs nvm_get_minor_version \ + nvm_has_solaris_binary nvm_is_merged_node_version \ + nvm_is_natural_num nvm_is_version_installed \ + nvm_list_aliases nvm_make_alias nvm_print_alias_path \ + nvm_print_default_alias nvm_print_formatted_alias nvm_resolve_local_alias \ + nvm_sanitize_path nvm_has_colors nvm_process_parameters \ + > /dev/null 2>&1 unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_DIR NVM_CD_FLAGS > /dev/null 2>&1 ;; * ) From 9c65197b221b4b73ab1664392debf805c3addea3 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 9 Aug 2016 22:24:09 -0700 Subject: [PATCH 0808/1426] Add `nvm_get_checksum_alg` --- nvm.sh | 29 +++++++++++++++++++++++ test/fast/Unit tests/nvm_get_checksum_alg | 18 ++++++++++++++ 2 files changed, 47 insertions(+) create mode 100755 test/fast/Unit tests/nvm_get_checksum_alg diff --git a/nvm.sh b/nvm.sh index dc4877f..d48c6e4 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1002,6 +1002,34 @@ nvm_ls_remote_index_tab() { nvm_echo "${VERSIONS}" } +nvm_get_checksum_alg() { + if nvm_has "sha256sum" && ! nvm_is_alias "sha256sum"; then + nvm_echo 'sha-256' + elif nvm_has "shasum" && ! nvm_is_alias "shasum"; then + nvm_echo 'sha-256' + elif nvm_has "sha256" && ! nvm_is_alias "sha256"; then + nvm_echo 'sha-256' + elif nvm_has "gsha256sum" && ! nvm_is_alias "gsha256sum"; then + nvm_echo 'sha-256' + elif nvm_has "openssl" && ! nvm_is_alias "openssl"; then + nvm_echo 'sha-256' + elif nvm_has "libressl" && ! nvm_is_alias "libressl"; then + nvm_echo 'sha-256' + elif nvm_has "bssl" && ! nvm_is_alias "bssl"; then + nvm_echo 'sha-256' + elif nvm_has "sha1sum" && ! nvm_is_alias "sha1sum"; then + nvm_echo 'sha-1' + elif nvm_has "sha1" && ! nvm_is_alias "sha1"; then + nvm_echo 'sha-1' + elif nvm_has "shasum" && ! nvm_is_alias "shasum"; then + nvm_echo 'sha-1' + else + nvm_err 'Unaliased sha256sum, shasum, sha256, gsha256sum, openssl, libressl, or bssl not found.' + nvm_err 'Unaliased sha1sum, sha1, or shasum not found.' + return 1 + fi +} + nvm_checksum() { local NVM_CHECKSUM if [ -z "${3-}" ] || [ "${3-}" = 'sha1' ]; then @@ -2849,6 +2877,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" nvm_install_iojs_binary nvm_install_node_binary \ nvm_install_merged_node_binary \ nvm_install_node_source nvm_check_file_permissions \ + nvm_get_checksum_alg \ nvm_version nvm_rc_version nvm_match_version \ nvm_ensure_default_set nvm_get_arch nvm_get_os \ nvm_print_implicit_alias nvm_validate_implicit_alias \ diff --git a/test/fast/Unit tests/nvm_get_checksum_alg b/test/fast/Unit tests/nvm_get_checksum_alg new file mode 100755 index 0000000..e794595 --- /dev/null +++ b/test/fast/Unit tests/nvm_get_checksum_alg @@ -0,0 +1,18 @@ +#!/bin/sh + +set -ex + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +ALG="$(nvm_get_checksum_alg)" + +case "$ALG" in + 'sha-256' | 'sha-1') + echo 'sha-256 or sha-1 found' + ;; + *) + die "sha-256 or sha-1 not found: found ${ALG}" + ;; +esac From d3d768adcd5e152b15be570bf75cc3024db5d354 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 10 Aug 2016 23:09:54 -0700 Subject: [PATCH 0809/1426] Add `nvm_get_mirror` --- nvm.sh | 13 ++++++++++++- test/fast/Unit tests/nvm_get_mirror | 16 ++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100755 test/fast/Unit tests/nvm_get_mirror diff --git a/nvm.sh b/nvm.sh index d48c6e4..4d3a446 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1365,6 +1365,17 @@ nvm_is_merged_node_version() { nvm_version_greater_than_or_equal_to "$1" v4.0.0 } +nvm_get_mirror() { + case "${1}-${2}" in + node-std) nvm_echo "${NVM_NODEJS_ORG_MIRROR}" ;; + iojs-std) nvm_echo "${NVM_IOJS_ORG_MIRROR}" ;; + *) + nvm_err 'unknown type of node.js or io.js release' + return 1 + ;; + esac +} + nvm_install_merged_node_binary() { local NVM_NODE_TYPE NVM_NODE_TYPE="${1}" @@ -2875,7 +2886,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" nvm_ls_remote nvm_ls_remote_iojs nvm_ls_remote_index_tab \ nvm_ls nvm_remote_version nvm_remote_versions \ nvm_install_iojs_binary nvm_install_node_binary \ - nvm_install_merged_node_binary \ + nvm_install_merged_node_binary nvm_get_mirror \ nvm_install_node_source nvm_check_file_permissions \ nvm_get_checksum_alg \ nvm_version nvm_rc_version nvm_match_version \ diff --git a/test/fast/Unit tests/nvm_get_mirror b/test/fast/Unit tests/nvm_get_mirror new file mode 100755 index 0000000..02863f3 --- /dev/null +++ b/test/fast/Unit tests/nvm_get_mirror @@ -0,0 +1,16 @@ +#!/bin/sh + +set -ex + +die () { echo $@ ; exit 1; } + +. ../../../nvm.sh + +! nvm_get_mirror || die 'unknown release type did not error' +! nvm_get_mirror node || die 'unknown release type did not error' +! nvm_get_mirror iojs || die 'unknown release type did not error' +! nvm_get_mirror node foo || die 'unknown release type did not error' +! nvm_get_mirror iojs foo || die 'unknown release type did not error' + +[ "$(nvm_get_mirror node std)" = "${NVM_NODEJS_ORG_MIRROR}" ] || die 'node std did not yield NVM_NODEJS_ORG_MIRROR' +[ "$(nvm_get_mirror iojs std)" = "${NVM_IOJS_ORG_MIRROR}" ] || die 'node std did not yield NVM_NODEJS_ORG_MIRROR' From 54cc3a383e4ae80cd644b740f8111296a3de16a7 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 11 Aug 2016 01:40:03 -0700 Subject: [PATCH 0810/1426] [Tests] set -ex options on more tests --- test/installation_node/install from source | 16 +++++++++++----- .../install from source implicitly | 8 +++++++- test/slow/node 0.6.21 should install 0.6.21-pre | 2 ++ 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/test/installation_node/install from source b/test/installation_node/install from source index eccdbba..1d4fa39 100755 --- a/test/installation_node/install from source +++ b/test/installation_node/install from source @@ -1,23 +1,29 @@ #!/bin/sh +set -ex + die () { echo $@ ; exit 1; } +set +e # TODO: fix . ../../nvm.sh +set -e + +nvm deactivate || die 'deactivate failed' nvm unalias default || die 'unable to unalias default' NVM_TEST_VERSION=v0.10.7 # Remove the stuff we're clobbering. -[ -e ../../$NVM_TEST_VERSION ] && rm -R ../../$NVM_TEST_VERSION +nvm uninstall "${NVM_TEST_VERSION}" || die 'nvm uninstall failed' # Install from source -nvm install -s $NVM_TEST_VERSION || die "'nvm install -s $NVM_TEST_VERSION' failed" +nvm install -s "${NVM_TEST_VERSION}" || die "'nvm install -s ${NVM_TEST_VERSION}' failed" # Check -[ -d ../../$NVM_TEST_VERSION ] -nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION || "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" +[ -d ../../$NVM_TEST_VERSION ] || die "../../${NVM_TEST_VERSION} is not a directory" +nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION || "'nvm run ${NVM_TEST_VERSION} --version | grep ${NVM_TEST_VERSION}' failed" # ensure default is set NVM_CURRENT_DEFAULT="$(nvm_alias default)" -[ "$NVM_CURRENT_DEFAULT" = "$NVM_TEST_VERSION" ] || die "wrong default alias: $(nvm alias)" +[ "${NVM_CURRENT_DEFAULT}" = "${NVM_TEST_VERSION}" ] || die "wrong default alias: $(nvm alias)" diff --git a/test/installation_node/install from source implicitly b/test/installation_node/install from source implicitly index f5763f4..7b01178 100755 --- a/test/installation_node/install from source implicitly +++ b/test/installation_node/install from source implicitly @@ -1,13 +1,19 @@ #!/bin/sh +set -ex + die () { echo $@ ; exit 1; } +set +e # TODO: fix . ../../nvm.sh +set -e + +nvm deactivate || die 'deactivate failed' NVM_TEST_VERSION=v0.8.5 # Remove the stuff we're clobbering. -[ -e ../../$NVM_TEST_VERSION ] && rm -R ../../$NVM_TEST_VERSION +nvm uninstall "${NVM_TEST_VERSION}" || die 'uninstall failed' # Install from source implicitly (v0.8.6 is when binaries started) nvm install $NVM_TEST_VERSION || die "'nvm install -s $NVM_TEST_VERSION' failed" diff --git a/test/slow/node 0.6.21 should install 0.6.21-pre b/test/slow/node 0.6.21 should install 0.6.21-pre index 93afff7..fd98aa9 100755 --- a/test/slow/node 0.6.21 should install 0.6.21-pre +++ b/test/slow/node 0.6.21 should install 0.6.21-pre @@ -1,5 +1,7 @@ #!/bin/sh +set -ex + die () { echo $@ ; exit 1; } . ../../nvm.sh From f178a09d89fea6caf05ead9c99df89a397ca6299 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 15 Aug 2016 12:55:49 -0700 Subject: [PATCH 0811/1426] [Tests] update gcc to 4.8 --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index fbf3db5..80dbc99 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,6 +9,9 @@ cache: - $HOME/.stack - $TRAVIS_BUILD_DIR/.cache before_install: + - sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y + - sudo apt-get update -q + - sudo apt-get install gcc-4.8 -y - $SHELL --version 2> /dev/null || dpkg -s $SHELL 2> /dev/null || which $SHELL - curl --version - wget --version From c7515bf108737a0db54daa90103ca58b5c30a045 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 15 Aug 2016 12:58:51 -0700 Subject: [PATCH 0812/1426] [Tests] trying an alternative syntax for gcc upgrades --- .travis.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 80dbc99..2b9ba00 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,17 +1,20 @@ language: generic sudo: required addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - gcc-4.8 + - g++-4.8 apt_packages: - - zsh - - ksh + - zsh + - ksh cache: directories: - $HOME/.stack - $TRAVIS_BUILD_DIR/.cache before_install: - - sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y - - sudo apt-get update -q - - sudo apt-get install gcc-4.8 -y - $SHELL --version 2> /dev/null || dpkg -s $SHELL 2> /dev/null || which $SHELL - curl --version - wget --version From a5d7ff7440468b76efb6188a5b3b1c73fd2302c5 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 15 Aug 2016 14:45:42 -0700 Subject: [PATCH 0813/1426] [Tests] explicitly set `$CXX` and `$CC` --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 2b9ba00..8a02d11 100644 --- a/.travis.yml +++ b/.travis.yml @@ -24,6 +24,8 @@ install: - chmod +x /tmp/urchin/package/urchin - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' script: + - export CXX=g++-4.8 + - export CC=gcc-4.8 - export PATH=$(echo $PATH | sed 's/::/:/') - export NVM_DIR="${TRAVIS_BUILD_DIR}" - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash nvm.sh && shellcheck -s sh nvm.sh && shellcheck -s dash nvm.sh && shellcheck -s ksh nvm.sh && shellcheck -s bash install.sh ; fi From bc4639c1c90f1cb557ebd5adf097c5e90593338f Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 21 Aug 2016 12:11:43 -0700 Subject: [PATCH 0814/1426] [Docs] add a road map. --- ROADMAP.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 ROADMAP.md diff --git a/ROADMAP.md b/ROADMAP.md new file mode 100644 index 0000000..4a751e9 --- /dev/null +++ b/ROADMAP.md @@ -0,0 +1,9 @@ +# nvm Road Map + +This is a list of the primary features planned for `nvm`: + +1. Rewriting installation code paths to support installing `io.js` and `node` `v4+` [from source](https://github.com/creationix/nvm/issues/1188). + - This will include [reusing previously downloaded tarballs](https://github.com/creationix/nvm/issues/1193) that match checksums, which is a nice performance and bandwith bonus. +1. Adding opt-in environment variable support to list, download, and install `node` [release candidates](https://github.com/creationix/nvm/issues/779), and [nightly builds](https://github.com/creationix/nvm/issues/1053). +1. [`nvm update`](https://github.com/creationix/nvm/issues/400): the ability to autoupdate `nvm` itself +1. [v1.0.0](https://github.com/creationix/nvm/milestone/1), including updating the [nvm on npm](https://github.com/creationix/nvm/issues/304) to auto-install nvm properly From d5f1d4530fcbdc9dd4c388840704a4a7081740ab Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 21 Aug 2016 22:52:54 -0700 Subject: [PATCH 0815/1426] [Tests] `chmod a-x` on io.js source tests, for now. TODO: fix. --- test/installation_iojs/install from source | 0 .../install version specified in .nvmrc from source | 0 2 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 test/installation_iojs/install from source mode change 100755 => 100644 test/installation_iojs/install version specified in .nvmrc from source diff --git a/test/installation_iojs/install from source b/test/installation_iojs/install from source old mode 100755 new mode 100644 diff --git a/test/installation_iojs/install version specified in .nvmrc from source b/test/installation_iojs/install version specified in .nvmrc from source old mode 100755 new mode 100644 From 24a9c089ffb83f29be30ae55e3c2667c66c7bb20 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 23 Aug 2016 00:16:20 -0700 Subject: [PATCH 0816/1426] [shellcheck] fix incorrect `A && B || C` usages. --- nvm.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/nvm.sh b/nvm.sh index 4d3a446..faec313 100644 --- a/nvm.sh +++ b/nvm.sh @@ -796,7 +796,7 @@ nvm_ls() { local ZSH_HAS_SHWORDSPLIT_UNSET ZSH_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZSH_HAS_SHWORDSPLIT_UNSET="$(setopt | nvm_grep shwordsplit > /dev/null && nvm_echo $? || nvm_echo $?)" + ZSH_HAS_SHWORDSPLIT_UNSET="$(set +e ; setopt | nvm_grep shwordsplit > /dev/null ; nvm_echo $?)" setopt shwordsplit fi @@ -949,7 +949,7 @@ nvm_ls_remote_index_tab() { fi ZSH_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZSH_HAS_SHWORDSPLIT_UNSET="$(setopt | nvm_grep shwordsplit > /dev/null && nvm_echo $? || nvm_echo $?)" + ZSH_HAS_SHWORDSPLIT_UNSET="$(set +e ; setopt | nvm_grep shwordsplit > /dev/null ; nvm_echo $?)" setopt shwordsplit fi local VERSION_LIST @@ -1188,7 +1188,7 @@ nvm_print_implicit_alias() { ZSH_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZSH_HAS_SHWORDSPLIT_UNSET="$(setopt | nvm_grep shwordsplit > /dev/null && nvm_echo $? || nvm_echo $?)" + ZSH_HAS_SHWORDSPLIT_UNSET="$(set +e ; setopt | nvm_grep shwordsplit > /dev/null ; nvm_echo $?)" setopt shwordsplit fi @@ -1223,7 +1223,7 @@ nvm_print_implicit_alias() { ZSH_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZSH_HAS_SHWORDSPLIT_UNSET="$(setopt | nvm_grep shwordsplit > /dev/null && nvm_echo $? || nvm_echo $?)" + ZSH_HAS_SHWORDSPLIT_UNSET="$(set +e ; setopt | nvm_grep shwordsplit > /dev/null ; nvm_echo $?)" setopt shwordsplit fi @@ -1242,7 +1242,7 @@ nvm_print_implicit_alias() { ZSH_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZSH_HAS_SHWORDSPLIT_UNSET="$(setopt | nvm_grep shwordsplit > /dev/null && nvm_echo $? || nvm_echo $?)" + ZSH_HAS_SHWORDSPLIT_UNSET="$(set +e ; setopt | nvm_grep shwordsplit > /dev/null ; nvm_echo $?)" setopt shwordsplit fi for MINOR in $LAST_TWO; do @@ -1967,7 +1967,7 @@ nvm() { local ZSH_HAS_SHWORDSPLIT_UNSET ZSH_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZSH_HAS_SHWORDSPLIT_UNSET="$(setopt | nvm_grep shwordsplit > /dev/null && nvm_echo $? || nvm_echo $?)" + ZSH_HAS_SHWORDSPLIT_UNSET="$(set +e ; setopt | nvm_grep shwordsplit > /dev/null ; nvm_echo $?)" setopt shwordsplit fi nvm_err "nvm --version: v$(nvm --version)" @@ -2479,7 +2479,7 @@ nvm() { local ZSH_HAS_SHWORDSPLIT_UNSET ZSH_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZSH_HAS_SHWORDSPLIT_UNSET="$(setopt | nvm_grep shwordsplit > /dev/null && nvm_echo $? || nvm_echo $?)" + ZSH_HAS_SHWORDSPLIT_UNSET="$(set +e ; setopt | nvm_grep shwordsplit > /dev/null ; nvm_echo $?)" setopt shwordsplit fi local LTS_ARG From cbeb6546927b3bb61609f7df7c2b75b298e01600 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 23 Aug 2016 00:26:35 -0700 Subject: [PATCH 0817/1426] [shellcheck] properly quote arguments. --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index faec313..4908ab5 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2195,10 +2195,10 @@ nvm() { case "${PATTERN-}" in --) ;; --lts) - VERSION="$(nvm_match_version lts/*)" + VERSION="$(nvm_match_version "lts/*")" ;; --lts=*) - VERSION="$(nvm_match_version lts/${PATTERN##--lts=})" + VERSION="$(nvm_match_version "lts/${PATTERN##--lts=}")" ;; *) VERSION="$(nvm_version "${PATTERN}")" From 2228323c0bd7294709c35bbf02911bea27b19faa Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 23 Aug 2016 00:28:21 -0700 Subject: [PATCH 0818/1426] [shellcheck] disable intentional violations via comments --- nvm.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 4908ab5..876863c 100644 --- a/nvm.sh +++ b/nvm.sh @@ -7,7 +7,7 @@ # with much bash help from Matthew Ranney # "local" warning, quote expansion warning -# shellcheck disable=SC2039,SC2016 +# shellcheck disable=SC2039,SC2016,SC2001 { # this ensures the entire script is downloaded # NVM_SCRIPT_SOURCE="$_" @@ -15,6 +15,7 @@ NVM_SCRIPT_SOURCE="$_" nvm_echo() { command printf %s\\n "$*" 2>/dev/null || { nvm_echo() { + # shellcheck disable=SC1001 \printf %s\\n "$*" # on zsh, `command printf` sometimes fails } nvm_echo "$@" @@ -35,6 +36,7 @@ nvm_has() { nvm_is_alias() { # this is intentionally not "command alias" so it works in zsh. + # shellcheck disable=SC1001 \alias "${1-}" > /dev/null 2>&1 } @@ -72,6 +74,7 @@ nvm_download() { -e 's/-s /-q /' \ -e 's/-o /-O /' \ -e 's/-C - /-c /') + # shellcheck disable=SC2086 eval wget $ARGS fi } @@ -108,8 +111,10 @@ fi if [ -z "${NVM_DIR-}" ]; then # shellcheck disable=SC2128 if [ -n "${BASH_SOURCE-}" ]; then + # shellcheck disable=SC2169 NVM_SCRIPT_SOURCE="${BASH_SOURCE[0]}" fi + # shellcheck disable=SC1001 NVM_DIR="$(cd ${NVM_CD_FLAGS} "$(dirname "${NVM_SCRIPT_SOURCE:-$0}")" > /dev/null && \pwd)" export NVM_DIR fi @@ -1664,6 +1669,7 @@ nvm_install_node_source() { tarball="$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" fi + # shellcheck disable=SC2086 if ( [ -n "$tarball" ] && \ command mkdir -p "$tmpdir" && \ From 681c81ad30e2e4b4c05da4d7aae0177b187780ce Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 23 Aug 2016 00:45:38 -0700 Subject: [PATCH 0819/1426] [shellcheck] clean up `install.sh` --- install.sh | 50 ++++++++++++++++++++++++++------------------------ 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/install.sh b/install.sh index 6435475..6b99d04 100755 --- a/install.sh +++ b/install.sh @@ -7,7 +7,7 @@ nvm_has() { } nvm_install_dir() { - echo ${NVM_DIR:-"$HOME/.nvm"} + echo "${NVM_DIR:-"$HOME/.nvm"}" } nvm_latest_version() { @@ -49,7 +49,7 @@ nvm_node_version() { nvm_download() { if nvm_has "curl"; then - curl -q $* + curl -q "$@" elif nvm_has "wget"; then # Emulate curl with wget ARGS=$(echo "$*" | command sed -e 's/--progress-bar /--progress=bar /' \ @@ -58,7 +58,8 @@ nvm_download() { -e 's/-s /-q /' \ -e 's/-o /-O /' \ -e 's/-C - /-c /') - wget $ARGS + # shellcheck disable=SC2086 + eval wget $ARGS fi } @@ -68,7 +69,7 @@ install_nvm_from_git() { if [ -d "$INSTALL_DIR/.git" ]; then echo "=> nvm is already installed in $INSTALL_DIR, trying to update using git" - printf "\r=> " + command printf "\r=> " command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" fetch 2> /dev/null || { echo >&2 "Failed to update nvm, run 'git fetch' in $INSTALL_DIR yourself." exit 1 @@ -76,7 +77,7 @@ install_nvm_from_git() { else # Cloning to $INSTALL_DIR echo "=> Downloading nvm from git to '$INSTALL_DIR'" - printf "\r=> " + command printf "\r=> " mkdir -p "$INSTALL_DIR" command git clone "$(nvm_source)" "$INSTALL_DIR" || { echo >&2 "Failed to clone nvm repo. Please report this!" @@ -154,8 +155,8 @@ install_nvm_as_script() { # Otherwise, an empty string is returned # nvm_detect_profile() { - if [ -n "$PROFILE" -a -f "$PROFILE" ]; then - echo "$PROFILE" + if [ -n "${PROFILE}" ] && [ -f "${PROFILE}" ]; then + echo "${PROFILE}" return fi @@ -206,18 +207,18 @@ nvm_check_global_modules() { local NPM_GLOBAL_MODULES NPM_GLOBAL_MODULES="$( npm list -g --depth=0 | - sed '/ npm@/d' | - sed '/ (empty)$/d' + command sed '/ npm@/d' | + command sed '/ (empty)$/d' )" local MODULE_COUNT MODULE_COUNT="$( - printf %s\\n "$NPM_GLOBAL_MODULES" | - sed -ne '1!p' | # Remove the first line + command printf %s\\n "$NPM_GLOBAL_MODULES" | + command sed -ne '1!p' | # Remove the first line wc -l | tr -d ' ' # Count entries )" - if [ $MODULE_COUNT -ne 0 ]; then + if [ "${MODULE_COUNT}" != '0' ]; then cat <<-'END_MESSAGE' => You currently have modules installed globally with `npm`. These will no => longer be linked to the active version of Node when you install a new node @@ -225,7 +226,7 @@ nvm_check_global_modules() { => override the binaries of modules installed with `nvm`: END_MESSAGE - printf %s\\n "$NPM_GLOBAL_MODULES" + command printf %s\\n "$NPM_GLOBAL_MODULES" cat <<-'END_MESSAGE' => If you wish to uninstall them at a later point (or re-install them under your @@ -266,30 +267,31 @@ nvm_do_install() { echo local NVM_PROFILE - NVM_PROFILE=$(nvm_detect_profile) + NVM_PROFILE="$(nvm_detect_profile)" local INSTALL_DIR INSTALL_DIR="$(nvm_install_dir)" SOURCE_STR="\nexport NVM_DIR=\"$INSTALL_DIR\"\n[ -s \"\$NVM_DIR/nvm.sh\" ] && . \"\$NVM_DIR/nvm.sh\" # This loads nvm\n" - if [ -z "$NVM_PROFILE" ] ; then - echo "=> Profile not found. Tried $NVM_PROFILE (as defined in \$PROFILE), ~/.bashrc, ~/.bash_profile, ~/.zshrc, and ~/.profile." + if [ -z "${NVM_PROFILE-}" ] ; then + echo "=> Profile not found. Tried ${NVM_PROFILE} (as defined in \$PROFILE), ~/.bashrc, ~/.bash_profile, ~/.zshrc, and ~/.profile." echo "=> Create one of them and run this script again" - echo "=> Create it (touch $NVM_PROFILE) and run this script again" + echo "=> Create it (touch ${NVM_PROFILE}) and run this script again" echo " OR" echo "=> Append the following lines to the correct file yourself:" - printf "$SOURCE_STR" + command printf "${SOURCE_STR}" else - if ! command grep -qc '/nvm.sh' "$NVM_PROFILE"; then - echo "=> Appending source string to $NVM_PROFILE" - printf "$SOURCE_STR" >> "$NVM_PROFILE" + if ! command grep -qc '/nvm.sh' "${NVM_PROFILE}"; then + echo "=> Appending source string to ${NVM_PROFILE}" + command printf "%s" "${SOURCE_STR}" >> "${NVM_PROFILE}" else - echo "=> Source string already in $NVM_PROFILE" + echo "=> Source string already in ${NVM_PROFILE}" fi fi # Source nvm - . "$INSTALL_DIR/nvm.sh" + # shellcheck source=/dev/null + . "${INSTALL_DIR}/nvm.sh" nvm_check_global_modules @@ -298,7 +300,7 @@ nvm_do_install() { nvm_reset echo "=> Close and reopen your terminal to start using nvm or run the following to use it now:" - printf "$SOURCE_STR" + command printf "%s" "${SOURCE_STR}" } # From 1ac7e236b13ff21c8eaa7f6e66dc3c0085639fb2 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 23 Aug 2016 10:23:21 -0700 Subject: [PATCH 0820/1426] [New] Add `lts/foo` support to remote commands. - `nvm ls-remote` - `nvm version-remote` - `nvm install` - `nvm uninstall` Document existing support: - `nvm use` - `nvm exec` - `nvm run` Fixes #1208. --- README.markdown | 14 +++---- nvm.sh | 53 +++++++++++++++++++++---- test/fast/Unit tests/nvm version-remote | 8 ++++ 3 files changed, 60 insertions(+), 15 deletions(-) diff --git a/README.markdown b/README.markdown index 64c6cb2..da6077c 100644 --- a/README.markdown +++ b/README.markdown @@ -160,13 +160,13 @@ In place of a version pointer like "0.10" or "5.0" or "4.2.1", you can use the f ### Long-term support Node has a [schedule](https://github.com/nodejs/LTS#lts_schedule) for long-term support (LTS) You can reference LTS versions in aliases and `.nvmrc` files with the notation `lts/*` for the latest LTS, and `lts/argon` for LTS releases from the "argon" line, for example. In addition, the following commands support LTS arguments: - - `nvm install --lts` / `nvm install --lts=argon` - - `nvm uninstall --lts` / `nvm uninstall --lts=argon` - - `nvm use --lts` / `nvm use --lts=argon` - - `nvm exec --lts` / `nvm exec --lts=argon` - - `nvm run --lts` / `nvm run --lts=argon` - - `nvm ls-remote --lts` / `nvm ls-remote --lts=argon` - - `nvm version-remote --lts` / `nvm version-remote --lts=argon` + - `nvm install --lts` / `nvm install --lts=argon` / `nvm install 'lts/*'` / `nvm install lts/argon` + - `nvm uninstall --lts` / `nvm uninstall --lts=argon` / `nvm uninstall 'lts/*'` / `nvm uninstall lts/argon` + - `nvm use --lts` / `nvm use --lts=argon` / `nvm use 'lts/*'` / `nvm use lts/argon` + - `nvm exec --lts` / `nvm exec --lts=argon` / `nvm exec 'lts/*'` / `nvm exec lts/argon` + - `nvm run --lts` / `nvm run --lts=argon` / `nvm run 'lts/*'` / `nvm run lts/argon` + - `nvm ls-remote --lts` / `nvm ls-remote --lts=argon` `nvm ls-remote 'lts/*'` / `nvm ls-remote lts/argon` + - `nvm version-remote --lts` / `nvm version-remote --lts=argon` / `nvm version-remote 'lts/*'` / `nvm version-remote lts/argon` Any time your local copy of `nvm` connects to https://nodejs.org, it will re-create the appropriate local aliases for all available LTS lines. These aliases (stored under `$NVM_DIR/alias/lts`), are managed by `nvm`, and you should not modify, remove, or create these files - expect your changes to be undone, and expect meddling with these files to cause bugs that will likely not be supported. diff --git a/nvm.sh b/nvm.sh index 876863c..9eefd27 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2066,7 +2066,18 @@ nvm() { shift fi - VERSION="$(NVM_VERSION_ONLY=true NVM_LTS="${LTS-}" nvm_remote_version "$provided_version")" + case "${provided_version}" in + 'lts/*') + LTS='*' + provided_version='' + ;; + lts/*) + LTS="${provided_version##lts/}" + provided_version='' + ;; + esac + + VERSION="$(NVM_VERSION_ONLY=true NVM_LTS="${LTS-}" nvm_remote_version "${provided_version}")" if [ "_$VERSION" = "_N/A" ]; then local LTS_MSG @@ -2200,9 +2211,12 @@ nvm() { PATTERN="${1-}" case "${PATTERN-}" in --) ;; - --lts) + --lts | 'lts/*') VERSION="$(nvm_match_version "lts/*")" ;; + lts/*) + VERSION="$(nvm_match_version "lts/${PATTERN##lts/}")" + ;; --lts=*) VERSION="$(nvm_match_version "lts/${PATTERN##--lts=}")" ;; @@ -2614,7 +2628,10 @@ nvm() { do case "${1-}" in --) ;; - --lts) LTS='*' ;; + --lts) + LTS='*' + NVM_FLAVOR="${NVM_NODE_PREFIX}" + ;; --lts=*) LTS="${1##--lts=}" NVM_FLAVOR="${NVM_NODE_PREFIX}" @@ -2625,14 +2642,24 @@ nvm() { return 55; ;; *) - if [ -z "$PATTERN" ]; then + if [ -z "${PATTERN-}" ]; then PATTERN="${1-}" - if [ -z "$NVM_FLAVOR" ]; then - case "_$PATTERN" in - "_$NVM_IOJS_PREFIX" | "_$NVM_NODE_PREFIX") - NVM_FLAVOR="$PATTERN" + if [ -z "${NVM_FLAVOR-}" ]; then + case "${PATTERN}" in + "${NVM_IOJS_PREFIX}" | "${NVM_NODE_PREFIX}") + NVM_FLAVOR="${PATTERN}" PATTERN="" ;; + 'lts/*') + LTS='*' + PATTERN='' + NVM_FLAVOR="${NVM_NODE_PREFIX}" + ;; + lts/*) + LTS="${PATTERN##lts/}" + PATTERN='' + NVM_FLAVOR="${NVM_NODE_PREFIX}" + ;; esac fi fi @@ -2879,6 +2906,16 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" esac shift done + case "${PATTERN}" in + 'lts/*') + NVM_LTS='*' + unset PATTERN + ;; + lts/*) + NVM_LTS="${PATTERN##lts/}" + unset PATTERN + ;; + esac NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; "--version" ) diff --git a/test/fast/Unit tests/nvm version-remote b/test/fast/Unit tests/nvm version-remote index 1cb414b..dd587dc 100755 --- a/test/fast/Unit tests/nvm version-remote +++ b/test/fast/Unit tests/nvm version-remote @@ -32,6 +32,14 @@ OUTPUT="$(nvm version-remote --lts=argon foo)" EXPECTED_OUTPUT='NVM_VERSION_ONLY:true,NVM_LTS:argon,PATTERN:foo' [ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "\`nvm version-remote --lts=argon foo\` called nvm_remote_version with >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<" +OUTPUT="$(nvm version-remote lts/foo)" +EXPECTED_OUTPUT='NVM_VERSION_ONLY:true,NVM_LTS:foo,PATTERN:' +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "\`nvm version-remote lts/foo\` called nvm_remote_version with >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<" + +OUTPUT="$(nvm version-remote 'lts/*')" +EXPECTED_OUTPUT='NVM_VERSION_ONLY:true,NVM_LTS:*,PATTERN:' +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "\`nvm version-remote lts/*\` called nvm_remote_version with >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<" + set +ex # needed for stderr OUTPUT="$(nvm version-remote --foo bar 2>&1)" set -ex From d179810b2530e8646ef84a15ce49bc5a015453bb Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 23 Aug 2016 11:12:21 -0700 Subject: [PATCH 0821/1426] v0.31.5 --- README.markdown | 8 ++++---- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.markdown b/README.markdown index da6077c..6641d9a 100644 --- a/README.markdown +++ b/README.markdown @@ -37,13 +37,13 @@ Note: If you're using `zsh` you can easily install `nvm` as a zsh plugin. Instal To install or update nvm, you can use the [install script][2] using cURL: ```sh -curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.4/install.sh | bash +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.5/install.sh | bash ``` or Wget: ```sh -wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.4/install.sh | bash +wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.5/install.sh | bash ``` The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). @@ -404,7 +404,7 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh ```sh apk add bash -wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.4/install.sh | /bin/bash +wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.5/install.sh | /bin/bash ``` The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. @@ -435,7 +435,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But If setting the `default` alias does not establish the node version in new shells (i.e. `nvm current` yields `system`), ensure that the system's node PATH is set before the `nvm.sh` source line in your shell profile (see [#658](https://github.com/creationix/nvm/issues/658)) [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.31.4/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.31.5/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index 6b99d04..2cdd0d2 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ nvm_install_dir() { } nvm_latest_version() { - echo "v0.31.4" + echo "v0.31.5" } # diff --git a/nvm.sh b/nvm.sh index 9eefd27..936252e 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2919,7 +2919,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; "--version" ) - nvm_echo '0.31.4' + nvm_echo '0.31.5' ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum \ diff --git a/package.json b/package.json index 0763495..1d3fb65 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.31.4", + "version": "0.31.5", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 451b67fe78671f7d28b8875298354563fc42e72e Mon Sep 17 00:00:00 2001 From: Aria Stewart Date: Tue, 23 Aug 2016 17:32:28 -0400 Subject: [PATCH 0822/1426] Revert %s-formatting for SOURCE_STR when writing to shell profile --- install.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/install.sh b/install.sh index 2cdd0d2..58ee58a 100755 --- a/install.sh +++ b/install.sh @@ -281,9 +281,9 @@ nvm_do_install() { echo "=> Append the following lines to the correct file yourself:" command printf "${SOURCE_STR}" else - if ! command grep -qc '/nvm.sh' "${NVM_PROFILE}"; then - echo "=> Appending source string to ${NVM_PROFILE}" - command printf "%s" "${SOURCE_STR}" >> "${NVM_PROFILE}" + if ! command grep -qc '/nvm.sh' "$NVM_PROFILE"; then + echo "=> Appending source string to $NVM_PROFILE" + command printf "$SOURCE_STR" >> "$NVM_PROFILE" else echo "=> Source string already in ${NVM_PROFILE}" fi @@ -300,7 +300,7 @@ nvm_do_install() { nvm_reset echo "=> Close and reopen your terminal to start using nvm or run the following to use it now:" - command printf "%s" "${SOURCE_STR}" + command printf "$SOURCE_STR" } # From 31c68adbcf7b577ba82c294f2fdb7ba0ce4705a6 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 23 Aug 2016 14:36:15 -0700 Subject: [PATCH 0823/1426] v0.31.6 --- README.markdown | 8 ++++---- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.markdown b/README.markdown index 6641d9a..344b7c9 100644 --- a/README.markdown +++ b/README.markdown @@ -37,13 +37,13 @@ Note: If you're using `zsh` you can easily install `nvm` as a zsh plugin. Instal To install or update nvm, you can use the [install script][2] using cURL: ```sh -curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.5/install.sh | bash +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.6/install.sh | bash ``` or Wget: ```sh -wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.5/install.sh | bash +wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.6/install.sh | bash ``` The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). @@ -404,7 +404,7 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh ```sh apk add bash -wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.5/install.sh | /bin/bash +wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.6/install.sh | /bin/bash ``` The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. @@ -435,7 +435,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But If setting the `default` alias does not establish the node version in new shells (i.e. `nvm current` yields `system`), ensure that the system's node PATH is set before the `nvm.sh` source line in your shell profile (see [#658](https://github.com/creationix/nvm/issues/658)) [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.31.5/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.31.6/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index 58ee58a..7f272ee 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ nvm_install_dir() { } nvm_latest_version() { - echo "v0.31.5" + echo "v0.31.6" } # diff --git a/nvm.sh b/nvm.sh index 936252e..ab8b2d7 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2919,7 +2919,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; "--version" ) - nvm_echo '0.31.5' + nvm_echo '0.31.6' ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum \ diff --git a/package.json b/package.json index 1d3fb65..8abdf1e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.31.5", + "version": "0.31.6", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 5ba6e748b71280ba81c57a89736c5bd8ff1e1a53 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 23 Aug 2016 23:07:42 -0700 Subject: [PATCH 0824/1426] [Tests] run shellcheck in tests. --- .travis.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 39c5a44..10e522e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,14 +7,18 @@ before_install: - $SHELL --version 2> /dev/null || dpkg -s $SHELL 2> /dev/null || which $SHELL - curl --version - wget --version + - if [ -n "${SHELLCHECK-}" ]; then echo "deb http://archive.ubuntu.com/ubuntu/ wily universe" | sudo tee -a /etc/apt/sources.list && sudo apt-get update -q && sudo apt-get install shellcheck -y && shellcheck --version ; fi install: - (mkdir /tmp/urchin && cd /tmp/urchin && curl -s "$(curl -s https://registry.npmjs.com/urchin | grep -Eo '"tarball":\s*"[^"]+"' | tail -n 1 | awk -F\" '{ print $4 }')" -O && tar -x -f urchin*) - chmod +x /tmp/urchin/package/urchin - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' script: - export PATH=$(echo $PATH | sed 's/::/:/') - - NVM_DIR=$TRAVIS_BUILD_DIR make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin/package/urchin test-$SHELL + - export NVM_DIR="${TRAVIS_BUILD_DIR}" + - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash nvm.sh && shellcheck -s sh nvm.sh && shellcheck -s dash nvm.sh && shellcheck -s ksh nvm.sh && shellcheck -s bash install.sh ; fi + - if [ -z "${SHELLCHECK-}" ]; then make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin/package/urchin test-$SHELL ; fi env: + - SHELLCHECK=true - SHELL=bash TEST_SUITE=install_script - SHELL=sh TEST_SUITE=fast - SHELL=dash TEST_SUITE=fast From d0180f7eb2614c297bf527fd6d65390b445e7943 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 24 Aug 2016 00:11:50 -0700 Subject: [PATCH 0825/1426] [shellcheck] build from source to get v0.4.4 --- .travis.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 10e522e..e891e22 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,11 +3,14 @@ addons: apt_packages: - zsh - ksh +cache: + directories: + - $HOME/.stack before_install: - $SHELL --version 2> /dev/null || dpkg -s $SHELL 2> /dev/null || which $SHELL - curl --version - wget --version - - if [ -n "${SHELLCHECK-}" ]; then echo "deb http://archive.ubuntu.com/ubuntu/ wily universe" | sudo tee -a /etc/apt/sources.list && sudo apt-get update -q && sudo apt-get install shellcheck -y && shellcheck --version ; fi + - if [ -n "${SHELLCHECK-}" ]; then sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 575159689BEFB442 && echo 'deb http://download.fpcomplete.com/ubuntu precise main' | sudo tee /etc/apt/sources.list.d/fpco.list && sudo apt-get update && sudo apt-get install stack bc -y && stack setup && stack install ShellCheck && shellcheck --version ; fi install: - (mkdir /tmp/urchin && cd /tmp/urchin && curl -s "$(curl -s https://registry.npmjs.com/urchin | grep -Eo '"tarball":\s*"[^"]+"' | tail -n 1 | awk -F\" '{ print $4 }')" -O && tar -x -f urchin*) - chmod +x /tmp/urchin/package/urchin From 85c5e1271011c3f18b2d9759be4ef96851a93e5f Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 24 Aug 2016 00:50:08 -0700 Subject: [PATCH 0826/1426] [Refactor] `install.sh`: use curlies in a few places. --- install.sh | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/install.sh b/install.sh index 7f272ee..b80c907 100755 --- a/install.sh +++ b/install.sh @@ -240,24 +240,24 @@ nvm_check_global_modules() { } nvm_do_install() { - if [ -z "$METHOD" ]; then + if [ -z "${METHOD}" ]; then # Autodetect install method - if nvm_has "git"; then + if nvm_has git; then install_nvm_from_git - elif nvm_has "nvm_download"; then + elif nvm_has nvm_download; then install_nvm_as_script else - echo >&2 "You need git, curl, or wget to install nvm" + echo >&2 'You need git, curl, or wget to install nvm' exit 1 fi - elif [ "~$METHOD" = "~git" ]; then - if ! nvm_has "git"; then + elif [ "${METHOD}" = 'git' ]; then + if ! nvm_has git; then echo >&2 "You need git to install nvm" exit 1 fi install_nvm_from_git - elif [ "~$METHOD" = "~script" ]; then - if ! nvm_has "nvm_download"; then + elif [ "${METHOD}" = 'script' ]; then + if ! nvm_has nvm_download; then echo >&2 "You need curl or wget to install nvm" exit 1 fi From 68bf93514bdf5d2852ce74819350bed99eb472a6 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 25 Aug 2016 00:59:32 -0700 Subject: [PATCH 0827/1426] [Fix] when originally installed without git, ensure it can be upgraded to use git. Fixes #1212. Closes #1213. --- install.sh | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/install.sh b/install.sh index b80c907..c24cec3 100755 --- a/install.sh +++ b/install.sh @@ -78,13 +78,29 @@ install_nvm_from_git() { # Cloning to $INSTALL_DIR echo "=> Downloading nvm from git to '$INSTALL_DIR'" command printf "\r=> " - mkdir -p "$INSTALL_DIR" - command git clone "$(nvm_source)" "$INSTALL_DIR" || { - echo >&2 "Failed to clone nvm repo. Please report this!" - exit 1 - } + mkdir -p "${INSTALL_DIR}" + if [ "$(ls -A "${INSTALL_DIR}")" ]; then + command git init "${INSTALL_DIR}" || { + echo >&2 'Failed to initialize nvm repo. Please report this!' + exit 2 + } + command git --git-dir="${INSTALL_DIR}/.git" remote add origin "$(nvm_source)" 2> /dev/null \ + || command git --git-dir="${INSTALL_DIR}/.git" remote set-url origin "$(nvm_source)" || { + echo >&2 'Failed to add remote "origin" (or set the URL). Please report this!' + exit 2 + } + command git --git-dir="${INSTALL_DIR}/.git" fetch origin --tags || { + echo >&2 'Failed to fetch origin with tags. Please report this!' + exit 2 + } + else + command git clone "$(nvm_source)" "${INSTALL_DIR}" || { + echo >&2 'Failed to clone nvm repo. Please report this!' + exit 2 + } + fi fi - command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" checkout --quiet "$(nvm_latest_version)" + command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" checkout -f --quiet "$(nvm_latest_version)" if [ ! -z "$(command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" show-ref refs/heads/master)" ]; then if command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" branch --quiet 2>/dev/null; then command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" branch --quiet -D master >/dev/null 2>&1 From 6abc36ee4ffc6690d0f0bb46b71f1b97fed5b42f Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 29 Aug 2016 09:15:57 -0700 Subject: [PATCH 0828/1426] [Fix] ensure LTS alias dir exists before writing to it. Fixes #1216 --- nvm.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/nvm.sh b/nvm.sh index ab8b2d7..94b8c3f 100644 --- a/nvm.sh +++ b/nvm.sh @@ -966,6 +966,7 @@ nvm_ls_remote_index_tab() { )" local LTS_ALIAS local LTS_VERSION + command mkdir -p "$(nvm_alias_path)/lts" nvm_echo "${VERSION_LIST}" \ | awk '{ if ($10 ~ /^\-?$/) { next } From 25fa40e7cb2b90b40a93649cbf8a117699af82e7 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 2 Sep 2016 23:43:04 -0700 Subject: [PATCH 0829/1426] v0.31.7 --- README.markdown | 8 ++++---- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.markdown b/README.markdown index 344b7c9..b93b571 100644 --- a/README.markdown +++ b/README.markdown @@ -37,13 +37,13 @@ Note: If you're using `zsh` you can easily install `nvm` as a zsh plugin. Instal To install or update nvm, you can use the [install script][2] using cURL: ```sh -curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.6/install.sh | bash +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.7/install.sh | bash ``` or Wget: ```sh -wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.6/install.sh | bash +wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.7/install.sh | bash ``` The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). @@ -404,7 +404,7 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh ```sh apk add bash -wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.6/install.sh | /bin/bash +wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.7/install.sh | /bin/bash ``` The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. @@ -435,7 +435,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But If setting the `default` alias does not establish the node version in new shells (i.e. `nvm current` yields `system`), ensure that the system's node PATH is set before the `nvm.sh` source line in your shell profile (see [#658](https://github.com/creationix/nvm/issues/658)) [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.31.6/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.31.7/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index c24cec3..b1a2928 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ nvm_install_dir() { } nvm_latest_version() { - echo "v0.31.6" + echo "v0.31.7" } # diff --git a/nvm.sh b/nvm.sh index 94b8c3f..dfc75b9 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2920,7 +2920,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; "--version" ) - nvm_echo '0.31.6' + nvm_echo '0.31.7' ;; "unload" ) unset -f nvm nvm_print_versions nvm_checksum \ diff --git a/package.json b/package.json index 8abdf1e..b9e88d4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.31.6", + "version": "0.31.7", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 332f413eb397aa78954b91cbfaad94d3f5c53f9f Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 9 Feb 2016 11:19:14 -0800 Subject: [PATCH 0830/1426] [New] expand `xz` support to more versions. Per https://github.com/nodejs/node/pull/4894#issuecomment-175989848 --- nvm.sh | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 383b0b7..b208b84 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3089,7 +3089,39 @@ nvm_supports_source_options() { } nvm_supports_xz() { - command which xz >/dev/null 2>&1 && nvm_version_greater_than_or_equal_to "$1" "2.3.2" + if [ -z "${1-}" ] || ! command which xz >/dev/null 2>&1; then + return 1 + fi + + # all node versions v4.0.0 and later have xz + if nvm_is_merged_node_version "${1}"; then + return 0 + fi + + # 0.12x: node v0.12.10 and later have xz + if nvm_version_greater_than_or_equal_to "${1}" "0.12.10" \ + && nvm_version_greater "0.13.0" "${1}"; then + return 0 + fi + + # 0.10x: node v0.10.42 and later have xz + if nvm_version_greater_than_or_equal_to "$1" "0.10.42" \ + && nvm_version_greater "0.11.0" "$1"; then + return 0 + fi + + local NVM_OS + NVM_OS="$(nvm_get_os)" + case "${NVM_OS}" in + darwin) + # darwin only has xz for io.js v2.3.2 and later + nvm_version_greater_than_or_equal_to "${1}" "2.3.2" + ;; + *) + nvm_version_greater_than_or_equal_to "${1}" "1.0.0" + ;; + esac + return $? } nvm_auto() { From ecba036cbfb3af396640ac4e565a64ea77b6c3cb Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 21 Dec 2015 23:59:44 -0800 Subject: [PATCH 0831/1426] [Tests] show `type` output for debugging --- test/install_script/nvm_reset | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/test/install_script/nvm_reset b/test/install_script/nvm_reset index 9f8735a..bc86aa6 100755 --- a/test/install_script/nvm_reset +++ b/test/install_script/nvm_reset @@ -5,12 +5,21 @@ cleanup () { } die () { echo $@ ; cleanup ; exit 1; } -NVM_ENV=testing . ../../install.sh - safe_type() { - type "$1" > /dev/null 2>&1 + type "$1" } +# precondition: the names should be unset +! safe_type nvm_do_install || die 'nvm_do_install is still available' +! safe_type nvm_has || die 'nvm_has is still available' +! safe_type nvm_download || die 'nvm_download is still available' +! safe_type install_nvm_as_script || die 'install_nvm_as_script is still available' +! safe_type install_nvm_from_git || die 'install_nvm_from_git is still available' +! safe_type nvm_reset || die 'nvm_reset is still available' +! safe_type nvm_detect_profile || die 'nvm_detect_profile is still available' + +NVM_ENV=testing . ../../install.sh + # Check nvm_reset exists safe_type nvm_reset || die 'nvm_reset is not available' From 25c7260f1e19e505f28384cae92714ae5d78bb97 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 4 Sep 2016 11:28:35 -0700 Subject: [PATCH 0832/1426] [Tests] improve test matrix --- .travis.yml | 84 +++++++++++++++++++++++++++-------------------------- 1 file changed, 43 insertions(+), 41 deletions(-) diff --git a/.travis.yml b/.travis.yml index 8a02d11..3517c30 100644 --- a/.travis.yml +++ b/.travis.yml @@ -24,47 +24,49 @@ install: - chmod +x /tmp/urchin/package/urchin - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' script: - - export CXX=g++-4.8 - - export CC=gcc-4.8 - - export PATH=$(echo $PATH | sed 's/::/:/') - - export NVM_DIR="${TRAVIS_BUILD_DIR}" - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash nvm.sh && shellcheck -s sh nvm.sh && shellcheck -s dash nvm.sh && shellcheck -s ksh nvm.sh && shellcheck -s bash install.sh ; fi - if [ -z "${SHELLCHECK-}" ]; then make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin/package/urchin test-$SHELL ; fi env: - - SHELLCHECK=true - - SHELL=bash TEST_SUITE=install_script - - SHELL=sh TEST_SUITE=fast - - SHELL=dash TEST_SUITE=fast - - SHELL=bash TEST_SUITE=fast - - SHELL=zsh TEST_SUITE=fast -# - SHELL=ksh TEST_SUITE=fast - - SHELL=sh TEST_SUITE=sourcing - - SHELL=dash TEST_SUITE=sourcing - - SHELL=bash TEST_SUITE=sourcing - - SHELL=zsh TEST_SUITE=sourcing -# - SHELL=ksh TEST_SUITE=sourcing - - SHELL=sh TEST_SUITE=slow - - SHELL=dash TEST_SUITE=slow - - SHELL=bash TEST_SUITE=slow - - SHELL=zsh TEST_SUITE=slow -# - SHELL=ksh TEST_SUITE=slow - - SHELL=sh TEST_SUITE=installation_node -# - SHELL=sh TEST_SUITE=installation_node WITHOUT_CURL=1 - - SHELL=dash TEST_SUITE=installation_node -# - SHELL=dash TEST_SUITE=installation_node WITHOUT_CURL=1 - - SHELL=bash TEST_SUITE=installation_node -# - SHELL=bash TEST_SUITE=installation_node WITHOUT_CURL=1 - - SHELL=zsh TEST_SUITE=installation_node -# - SHELL=zsh TEST_SUITE=installation_node WITHOUT_CURL=1 -# - SHELL=ksh TEST_SUITE=installation_node -# - SHELL=ksh TEST_SUITE=installation_node WITHOUT_CURL=1 - - SHELL=sh TEST_SUITE=installation_iojs -# - SHELL=sh TEST_SUITE=installation_iojs WITHOUT_CURL=1 - - SHELL=dash TEST_SUITE=installation_iojs -# - SHELL=dash TEST_SUITE=installation_iojs WITHOUT_CURL=1 - - SHELL=bash TEST_SUITE=installation_iojs -# - SHELL=bash TEST_SUITE=installation_iojs WITHOUT_CURL=1 - - SHELL=zsh TEST_SUITE=installation_iojs -# - SHELL=zsh TEST_SUITE=installation_iojs WITHOUT_CURL=1 -# - SHELL=ksh TEST_SUITE=installation_iojs -# - SHELL=ksh TEST_SUITE=installation_iojs WITHOUT_CURL=1 + global: + - CXX=g++-4.8 + - CC=gcc-4.8 + - PATH=$(echo $PATH | sed 's/::/:/') + - NVM_DIR="${TRAVIS_BUILD_DIR}" + matrix: + - SHELLCHECK=true + - SHELL=bash TEST_SUITE=install_script + - SHELL=sh TEST_SUITE=fast + - SHELL=dash TEST_SUITE=fast + - SHELL=bash TEST_SUITE=fast + - SHELL=zsh TEST_SUITE=fast + # - SHELL=ksh TEST_SUITE=fast + - SHELL=sh TEST_SUITE=sourcing + - SHELL=dash TEST_SUITE=sourcing + - SHELL=bash TEST_SUITE=sourcing + - SHELL=zsh TEST_SUITE=sourcing + # - SHELL=ksh TEST_SUITE=sourcing + - SHELL=sh TEST_SUITE=slow + - SHELL=dash TEST_SUITE=slow + - SHELL=bash TEST_SUITE=slow + - SHELL=zsh TEST_SUITE=slow + # - SHELL=ksh TEST_SUITE=slow + - SHELL=sh TEST_SUITE=installation_node + # - SHELL=sh TEST_SUITE=installation_node WITHOUT_CURL=1 + - SHELL=dash TEST_SUITE=installation_node + # - SHELL=dash TEST_SUITE=installation_node WITHOUT_CURL=1 + - SHELL=bash TEST_SUITE=installation_node + # - SHELL=bash TEST_SUITE=installation_node WITHOUT_CURL=1 + - SHELL=zsh TEST_SUITE=installation_node + # - SHELL=zsh TEST_SUITE=installation_node WITHOUT_CURL=1 + # - SHELL=ksh TEST_SUITE=installation_node + # - SHELL=ksh TEST_SUITE=installation_node WITHOUT_CURL=1 + - SHELL=sh TEST_SUITE=installation_iojs + # - SHELL=sh TEST_SUITE=installation_iojs WITHOUT_CURL=1 + - SHELL=dash TEST_SUITE=installation_iojs + # - SHELL=dash TEST_SUITE=installation_iojs WITHOUT_CURL=1 + - SHELL=bash TEST_SUITE=installation_iojs + # - SHELL=bash TEST_SUITE=installation_iojs WITHOUT_CURL=1 + - SHELL=zsh TEST_SUITE=installation_iojs + # - SHELL=zsh TEST_SUITE=installation_iojs WITHOUT_CURL=1 + # - SHELL=ksh TEST_SUITE=installation_iojs + # - SHELL=ksh TEST_SUITE=installation_iojs WITHOUT_CURL=1 From 01695056afe1a4f1ef16c77d6637012b40eaa791 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 15 Sep 2016 14:23:30 -0700 Subject: [PATCH 0833/1426] [Road Map] update with completed feature --- ROADMAP.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ROADMAP.md b/ROADMAP.md index 4a751e9..08cfc6c 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -2,8 +2,8 @@ This is a list of the primary features planned for `nvm`: -1. Rewriting installation code paths to support installing `io.js` and `node` `v4+` [from source](https://github.com/creationix/nvm/issues/1188). +- [x] Rewriting installation code paths to support installing `io.js` and `node` `v4+` [from source](https://github.com/creationix/nvm/issues/1188). - This will include [reusing previously downloaded tarballs](https://github.com/creationix/nvm/issues/1193) that match checksums, which is a nice performance and bandwith bonus. -1. Adding opt-in environment variable support to list, download, and install `node` [release candidates](https://github.com/creationix/nvm/issues/779), and [nightly builds](https://github.com/creationix/nvm/issues/1053). -1. [`nvm update`](https://github.com/creationix/nvm/issues/400): the ability to autoupdate `nvm` itself -1. [v1.0.0](https://github.com/creationix/nvm/milestone/1), including updating the [nvm on npm](https://github.com/creationix/nvm/issues/304) to auto-install nvm properly +- [ ] Adding opt-in environment variable support to list, download, and install `node` [release candidates](https://github.com/creationix/nvm/issues/779), and [nightly builds](https://github.com/creationix/nvm/issues/1053). +- [ ] [`nvm update`](https://github.com/creationix/nvm/issues/400): the ability to autoupdate `nvm` itself +- [ ] [v1.0.0](https://github.com/creationix/nvm/milestone/1), including updating the [nvm on npm](https://github.com/creationix/nvm/issues/304) to auto-install nvm properly From 63fe22d6355f8d020ed7046fb8a57d6f7d0899be Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 15 Sep 2016 15:02:56 -0700 Subject: [PATCH 0834/1426] v0.32.0 --- README.markdown | 8 ++++---- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.markdown b/README.markdown index b93b571..37f04cf 100644 --- a/README.markdown +++ b/README.markdown @@ -37,13 +37,13 @@ Note: If you're using `zsh` you can easily install `nvm` as a zsh plugin. Instal To install or update nvm, you can use the [install script][2] using cURL: ```sh -curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.7/install.sh | bash +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash ``` or Wget: ```sh -wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.7/install.sh | bash +wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash ``` The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). @@ -404,7 +404,7 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh ```sh apk add bash -wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.7/install.sh | /bin/bash +wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | /bin/bash ``` The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. @@ -435,7 +435,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But If setting the `default` alias does not establish the node version in new shells (i.e. `nvm current` yields `system`), ensure that the system's node PATH is set before the `nvm.sh` source line in your shell profile (see [#658](https://github.com/creationix/nvm/issues/658)) [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.31.7/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.32.0/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index b1a2928..0ecfcde 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ nvm_install_dir() { } nvm_latest_version() { - echo "v0.31.7" + echo "v0.32.0" } # diff --git a/nvm.sh b/nvm.sh index b208b84..5bd5eaf 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3037,7 +3037,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; "--version" ) - nvm_echo '0.31.7' + nvm_echo '0.32.0' ;; "unload" ) unset -f nvm \ diff --git a/package.json b/package.json index b9e88d4..b691676 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.31.7", + "version": "0.32.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From dca022027589da11f62d8160098d0d66ebb38f56 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 15 Sep 2016 21:40:44 -0700 Subject: [PATCH 0835/1426] [Refactor] `nvm_install_binary`: remove unused `nvm_get_mirror` call --- nvm.sh | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/nvm.sh b/nvm.sh index 5bd5eaf..dd0c899 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1487,7 +1487,7 @@ nvm_get_mirror() { esac } -# args: flavor, kind, version, reinstall +# args: flavor, type, version, reinstall nvm_install_binary() { local FLAVOR case "${1-}" in @@ -1498,11 +1498,8 @@ nvm_install_binary() { ;; esac - local MIRROR - MIRROR="$(nvm_get_mirror node "${2-}")" - if [ -z "${MIRROR}" ]; then - return 3 - fi + local TYPE + TYPE="${2-}" local PREFIXED_VERSION PREFIXED_VERSION="${3-}" @@ -1525,7 +1522,7 @@ nvm_install_binary() { local TMPDIR local VERSION_PATH - TARBALL="$(nvm_download_artifact "${FLAVOR}" binary std "${VERSION}" | command tail -1)" + TARBALL="$(nvm_download_artifact "${FLAVOR}" binary "${TYPE-}" "${VERSION}" | command tail -1)" if [ -f "${TARBALL}" ]; then TMPDIR="$(dirname "${TARBALL}")/files" fi @@ -1569,7 +1566,7 @@ nvm_get_download_slug() { esac local VERSION - VERSION="${3}" + VERSION="${3-}" local NVM_OS NVM_OS="$(nvm_get_os)" From 3b5f088e01a23c527a24f73e24201aaaa32f30db Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 15 Sep 2016 22:45:10 -0700 Subject: [PATCH 0836/1426] [Refactor] `nvm_ls_remote_index_tab`: clean up to use `nvm_get_mirror` --- nvm.sh | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/nvm.sh b/nvm.sh index dd0c899..6012f3e 100644 --- a/nvm.sh +++ b/nvm.sh @@ -903,48 +903,60 @@ nvm_ls_remote() { else PATTERN=".*" fi - NVM_LTS="${NVM_LTS-}" nvm_ls_remote_index_tab node std "${NVM_NODEJS_ORG_MIRROR}" "${PATTERN}" + NVM_LTS="${NVM_LTS-}" nvm_ls_remote_index_tab node std "${PATTERN}" } nvm_ls_remote_iojs() { - NVM_LTS="${NVM_LTS-}" nvm_ls_remote_index_tab iojs std "${NVM_IOJS_ORG_MIRROR}" "${1-}" + NVM_LTS="${NVM_LTS-}" nvm_ls_remote_index_tab iojs std "${1-}" } +# args flavor, type, version nvm_ls_remote_index_tab() { local LTS LTS="${NVM_LTS-}" - if [ "$#" -lt 4 ]; then + if [ "$#" -lt 3 ]; then nvm_err 'not enough arguments' return 5 fi + + local FLAVOR + FLAVOR="${1-}" + local TYPE - TYPE="${1-}" + TYPE="${2-}" + + local MIRROR + MIRROR="$(nvm_get_mirror "${FLAVOR}" "${TYPE}")" + if [ -z "${MIRROR}" ]; then + return 3 + fi + local PREFIX PREFIX='' - case "${TYPE}-${2-}" in + case "${FLAVOR}-${TYPE}" in iojs-std) PREFIX="$(nvm_iojs_prefix)-" ;; node-std) PREFIX='' ;; iojs-*) nvm_err 'unknown type of io.js release' return 4 ;; - node-*) + *) nvm_err 'unknown type of node.js release' return 4 ;; esac local SORT_COMMAND SORT_COMMAND='sort' - case "${TYPE}" in + case "${FLAVOR}" in node) SORT_COMMAND='sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n' ;; esac - local MIRROR - MIRROR="${3-}" + local PATTERN - PATTERN="${4-}" + PATTERN="${3-}" + local VERSIONS if [ -n "${PATTERN}" ]; then - if [ "${TYPE}" = 'iojs' ]; then + if [ "${FLAVOR}" = 'iojs' ]; then PATTERN="$(nvm_ensure_version_prefix "$(nvm_strip_iojs_prefix "${PATTERN}")")" else PATTERN="$(nvm_ensure_version_prefix "${PATTERN}")" @@ -952,6 +964,7 @@ nvm_ls_remote_index_tab() { else unset PATTERN fi + ZSH_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then ZSH_HAS_SHWORDSPLIT_UNSET="$(set +e ; setopt | nvm_grep shwordsplit > /dev/null ; nvm_echo $?)" From 9db5c06a6363f490e0f256e51d1e26817b7a7d20 Mon Sep 17 00:00:00 2001 From: b264 Date: Fri, 16 Sep 2016 16:19:55 -0500 Subject: [PATCH 0837/1426] [Docs] copyedit readme --- README.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.markdown b/README.markdown index 37f04cf..7a2d6fc 100644 --- a/README.markdown +++ b/README.markdown @@ -2,7 +2,7 @@ ## Installation -First you'll need to make sure your system has a c++ compiler. For OS X, Xcode will work, for Ubuntu, the build-essential and libssl-dev packages work. +First you'll need to make sure your system has a c++ compiler. For OS X, Xcode will work, for Ubuntu, the `build-essential` and `libssl-dev` packages work. Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/nvm/issues/284)). Two alternatives exist, which are neither supported nor developed by us: - [nvm-windows](https://github.com/coreybutler/nvm-windows) @@ -16,7 +16,7 @@ Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creati -Note: We still have some problems with FreeBSD, because there is no pre-built binary from official for FreeBSD, and building from source may need [patches](https://www.freshports.org/www/node/files/patch-deps_v8_src_base_platform_platform-posix.cc), see the issue ticket: +Note: We still have some problems with FreeBSD, because there is no official pre-built binary for FreeBSD, and building from source may need [patches](https://www.freshports.org/www/node/files/patch-deps_v8_src_base_platform_platform-posix.cc); see the issue ticket: - [[#900] [Bug] nodejs on FreeBSD need to be patched ](https://github.com/creationix/nvm/issues/900) - [nodejs/node#3716](https://github.com/nodejs/node/issues/3716) From ef5670fd82e2c87468b05b474c2235faf6be7016 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sat, 17 Sep 2016 13:13:11 +0800 Subject: [PATCH 0838/1426] Bump to require git v1.7+ and add docs, fix #1232 --- README.markdown | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.markdown b/README.markdown index 7a2d6fc..efc3a2a 100644 --- a/README.markdown +++ b/README.markdown @@ -32,6 +32,8 @@ Homebrew installation is not supported. If you have issues with homebrew-install Note: If you're using `zsh` you can easily install `nvm` as a zsh plugin. Install [`zsh-nvm`](https://github.com/lukechilds/zsh-nvm) and run `nvm upgrade` to upgrade. +Note: Git versions before v1.7 may face a problem of cloning nvm source from GitHub via https protocol, and there is also different behavior of git before v1.6, so the minimum required git version is v1.7.0 and we recommend v1.7.9.5 as it's the default version of the wildly used Ubuntu 12.04 LTS. If you are interested in the problem we mentioned here, please refer to GitHub's [HTTPS cloning errors](https://help.github.com/articles/https-cloning-errors/) article. + ### Install script To install or update nvm, you can use the [install script][2] using cURL: @@ -81,7 +83,7 @@ which should output 'nvm' if the installation was successful. Please note that ` For manual install create a folder somewhere in your filesystem with the `nvm.sh` file inside it. I put mine in `~/.nvm`. -Or if you have `git` installed (requires git v1.5.5+): +Or if you have `git` installed (requires git v1.7+): 1. clone this repo 1. check out the latest version @@ -105,7 +107,7 @@ export NVM_DIR="$HOME/.nvm" ### Manual upgrade -For manual upgrade with `git` (requires git v1.5.5+): +For manual upgrade with `git` (requires git v1.7+): 1. change to the `$NVM_DIR` 1. pull down the latest changes From 68761c32001b52b8f5769c2a848dbe3c4e57659d Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sat, 17 Sep 2016 08:51:50 +0800 Subject: [PATCH 0839/1426] Manually run git gc after nvm installation, fix #1226 --- install.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/install.sh b/install.sh index 0ecfcde..9fae7af 100755 --- a/install.sh +++ b/install.sh @@ -109,6 +109,11 @@ install_nvm_from_git() { command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" branch -D master >/dev/null 2>&1 fi fi + + echo "=> Compressing and cleaning up git repository" + if ! command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" gc --aggressive --prune=now ; then + echo >&2 "Your version of git is out of date. Please update it!" + fi return } From 4a7973ea6110ba83593eb312e53439ca96c67994 Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Tue, 13 Sep 2016 10:25:17 -0400 Subject: [PATCH 0840/1426] Removes fin from the readme If you go to the [fin repo](https://github.com/fisherman/fin) you'll see that it isn't a node version manager, but simply a plugin manager for Fish. Seems out of scope for the readme, and there are other plugin solutions for fish as well. I suggest removing the reference. --- README.markdown | 1 - 1 file changed, 1 deletion(-) diff --git a/README.markdown b/README.markdown index efc3a2a..aa77fef 100644 --- a/README.markdown +++ b/README.markdown @@ -11,7 +11,6 @@ Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/n Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creationix/nvm/issues/303)). Alternatives exist, which are neither supported nor developed by us: - [bass](https://github.com/edc/bass) allows you to use utilities written for Bash in fish shell - [fast-nvm-fish](https://github.com/brigand/fast-nvm-fish) only works with version numbers (not aliases) but doesn't significantly slow your shell startup - - [fin](https://github.com/fisherman/fin) is a pure fish node version manager for fish shell - [plugin-nvm](https://github.com/derekstavis/plugin-nvm) plugin for [Oh My Fish](https://github.com/oh-my-fish/oh-my-fish), which makes nvm and its completions available in fish shell From 51b21bcad1b121b9203574c9e95ab3432487989b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 16 Sep 2016 23:16:58 -0700 Subject: [PATCH 0841/1426] [Refactor] Use `||:` and `&&:` when appropriate --- nvm.sh | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/nvm.sh b/nvm.sh index 6012f3e..ae9f6a1 100644 --- a/nvm.sh +++ b/nvm.sh @@ -313,10 +313,10 @@ nvm_remote_version() { if nvm_validate_implicit_alias "${PATTERN}" 2> /dev/null ; then case "${PATTERN}" in "$(nvm_iojs_prefix)") - VERSION="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote_iojs | command tail -1)" + VERSION="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote_iojs | command tail -1)" &&: ;; *) - VERSION="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote "${PATTERN}")" + VERSION="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote "${PATTERN}")" &&: ;; esac else @@ -342,10 +342,10 @@ nvm_remote_versions() { PATTERN="${1-}" case "${PATTERN}" in "${NVM_IOJS_PREFIX}" | "io.js") - VERSIONS="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote_iojs)" + VERSIONS="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote_iojs)" &&: ;; "$(nvm_node_prefix)") - VERSIONS="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote)" + VERSIONS="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote)" &&: ;; *) if nvm_validate_implicit_alias "${PATTERN}" 2> /dev/null ; then @@ -353,7 +353,7 @@ nvm_remote_versions() { return 1 fi VERSIONS="$(nvm_echo "$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote "${PATTERN}") -$(NVM_LTS=${NVM_LTS-} nvm_ls_remote_iojs "${PATTERN}")" | nvm_grep -v "N/A" | command sed '/^$/d')" +$(NVM_LTS=${NVM_LTS-} nvm_ls_remote_iojs "${PATTERN}")" | nvm_grep -v "N/A" | command sed '/^$/d')" &&: ;; esac @@ -463,7 +463,7 @@ nvm_print_formatted_alias() { local VERSION VERSION="${3-}" if [ -z "${VERSION}" ]; then - VERSION="$(nvm_version "${DEST}" || return 0)" + VERSION="$(nvm_version "${DEST}")" ||: fi local VERSION_FORMAT local ALIAS_FORMAT @@ -528,7 +528,7 @@ nvm_print_alias_path() { local ALIAS ALIAS="${ALIAS_PATH##${NVM_ALIAS_DIR}\/}" local DEST - DEST="$(nvm_alias "${ALIAS}" 2> /dev/null || return 0)" + DEST="$(nvm_alias "${ALIAS}" 2> /dev/null)" ||: if [ -n "${DEST}" ]; then NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_LTS="${NVM_LTS-}" DEFAULT=false nvm_print_formatted_alias "${ALIAS}" "${DEST}" fi @@ -1318,7 +1318,7 @@ nvm_print_implicit_alias() { local NVM_IOJS_VERSION local EXIT_CODE - NVM_IOJS_VERSION="$($NVM_COMMAND)" + NVM_IOJS_VERSION="$($NVM_COMMAND)" &&: EXIT_CODE="$?" if [ "_$EXIT_CODE" = "_0" ]; then NVM_IOJS_VERSION="$(nvm_echo "$NVM_IOJS_VERSION" | command sed "s/^$NVM_IMPLICIT-//" | nvm_grep -e '^v' | command cut -c2- | command cut -d . -f 1,2 | uniq | command tail -1)" @@ -2244,11 +2244,11 @@ nvm() { case "$1" in --reinstall-packages-from=*) PROVIDED_REINSTALL_PACKAGES_FROM="$(nvm_echo "$1" | command cut -c 27-)" - REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM" || return 0)" + REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM")" ||: ;; --copy-packages-from=*) PROVIDED_REINSTALL_PACKAGES_FROM="$(nvm_echo "$1" | command cut -c 22-)" - REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM" || return 0)" + REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM")" ||: ;; *) ADDITIONAL_PARAMETERS="$ADDITIONAL_PARAMETERS $1" @@ -2589,7 +2589,7 @@ nvm() { nvm_rc_version && has_checked_nvmrc=1 fi if [ -n "$NVM_RC_VERSION" ]; then - VERSION="$(nvm_version "$NVM_RC_VERSION" || return 0)" + VERSION="$(nvm_version "$NVM_RC_VERSION")" ||: fi if [ "${VERSION:-N/A}" = 'N/A' ]; then >&2 nvm --help @@ -2600,7 +2600,7 @@ nvm() { if [ -z "${NVM_LTS-}" ]; then provided_version="$1" if [ -n "$provided_version" ]; then - VERSION="$(nvm_version "$provided_version" || return 0)" + VERSION="$(nvm_version "$provided_version")" ||: if [ "_${VERSION:-N/A}" = '_N/A' ] && ! nvm_is_valid_version "$provided_version"; then provided_version='' if [ $has_checked_nvmrc -ne 1 ]; then @@ -2610,7 +2610,7 @@ nvm() { nvm_rc_version && has_checked_nvmrc=1 fi fi - VERSION="$(nvm_version "$NVM_RC_VERSION" || return 0)" + VERSION="$(nvm_version "$NVM_RC_VERSION")" ||: else shift fi @@ -2678,7 +2678,7 @@ nvm() { provided_version="lts/${NVM_LTS:-*}" VERSION="$provided_version" elif [ -n "$provided_version" ]; then - VERSION="$(nvm_version "$provided_version" || return 0)" + VERSION="$(nvm_version "$provided_version")" ||: if [ "_$VERSION" = '_N/A' ] && ! nvm_is_valid_version "$provided_version"; then if [ -n "${NVM_SILENT-}" ]; then nvm_rc_version >/dev/null 2>&1 @@ -2686,7 +2686,7 @@ nvm() { nvm_rc_version fi provided_version="$NVM_RC_VERSION" - VERSION="$(nvm_version "$provided_version" || return 0)" + VERSION="$(nvm_version "$provided_version")" ||: else shift fi @@ -2842,10 +2842,10 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" nvm_rc_version if [ -n "${NVM_RC_VERSION}" ]; then provided_version="${NVM_RC_VERSION}" - VERSION=$(nvm_version "${NVM_RC_VERSION}" || return 0) + VERSION=$(nvm_version "${NVM_RC_VERSION}") ||: fi elif [ "_${1}" != '_system' ]; then - VERSION="$(nvm_version "${provided_version}" || return 0)" + VERSION="$(nvm_version "${provided_version}")" ||: else VERSION="${1-}" fi @@ -2926,7 +2926,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" nvm_err 'Aliases in subdirectories are not supported.' return 1 fi - VERSION="$(nvm_version "${TARGET}" || return 0)" + VERSION="$(nvm_version "${TARGET}")" ||: if [ "${VERSION}" = 'N/A' ]; then nvm_err "! WARNING: Version '${TARGET}' does not exist." fi @@ -2967,7 +2967,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" local PROVIDED_VERSION PROVIDED_VERSION="${1-}" - if [ "$PROVIDED_VERSION" = "$(nvm_ls_current)" ] || [ "$(nvm_version "$PROVIDED_VERSION" || return 0)" = "$(nvm_ls_current)" ]; then + if [ "$PROVIDED_VERSION" = "$(nvm_ls_current)" ] || [ "$(nvm_version "$PROVIDED_VERSION" ||:)" = "$(nvm_ls_current)" ]; then nvm_err 'Can not reinstall packages from the current version of node.' return 2 fi @@ -2980,7 +2980,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" fi VERSION="system" else - VERSION="$(nvm_version "$PROVIDED_VERSION" || return 0)" + VERSION="$(nvm_version "$PROVIDED_VERSION")" ||: fi local NPMLIST From dc1d3aa9436b64fd144a0844f6cd05a1a5253788 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 17 Sep 2016 09:24:42 -0700 Subject: [PATCH 0842/1426] [Refactor] `nvm_install_source`, `nvm_install_binary`, `nvm_download_artifact`: ensure a version is provided. --- nvm.sh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/nvm.sh b/nvm.sh index ae9f6a1..adb006c 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1516,6 +1516,11 @@ nvm_install_binary() { local PREFIXED_VERSION PREFIXED_VERSION="${3-}" + if [ -z "${PREFIXED_VERSION}" ]; then + nvm_err 'A version number is required.' + return 3 + fi + local VERSION VERSION="$(nvm_strip_iojs_prefix "${PREFIXED_VERSION}")" @@ -1631,6 +1636,11 @@ nvm_download_artifact() { local VERSION VERSION="${4}" + if [ -z "${VERSION}" ]; then + nvm_err 'A version number is required.' + return 3 + fi + if [ "${KIND}" = 'binary' ] && ! nvm_binary_available "${VERSION}"; then nvm_err "No precompiled binary available for ${VERSION}." return @@ -1745,6 +1755,11 @@ nvm_install_source() { local PREFIXED_VERSION PREFIXED_VERSION="${3-}" + if [ -z "${PREFIXED_VERSION}" ]; then + nvm_err 'A version number is required.' + return 3 + fi + local VERSION VERSION="$(nvm_strip_iojs_prefix "${PREFIXED_VERSION}")" From 5c68141ede0b3c00ac132a7f94b2ec8bd3fbeceb Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 15 Sep 2016 23:52:01 -0700 Subject: [PATCH 0843/1426] [Refactor] `nvm ls-remote`: make the main ls-remote command call into `nvm_remote_versions` directly. --- nvm.sh | 128 +++++++++++++++++++++++++++------------------------------ 1 file changed, 60 insertions(+), 68 deletions(-) diff --git a/nvm.sh b/nvm.sh index adb006c..5249d04 100644 --- a/nvm.sh +++ b/nvm.sh @@ -338,31 +338,68 @@ nvm_remote_version() { nvm_remote_versions() { local NVM_IOJS_PREFIX NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" + local NVM_NODE_PREFIX + NVM_NODE_PREFIX="$(nvm_node_prefix)" + local PATTERN PATTERN="${1-}" + + local NVM_FLAVOR + if [ -n "${NVM_LTS-}" ]; then + NVM_FLAVOR="${NVM_NODE_PREFIX}" + fi + case "${PATTERN}" in "${NVM_IOJS_PREFIX}" | "io.js") - VERSIONS="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote_iojs)" &&: + NVM_FLAVOR="${NVM_IOJS_PREFIX}" + unset PATTERN ;; - "$(nvm_node_prefix)") - VERSIONS="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote)" &&: - ;; - *) - if nvm_validate_implicit_alias "${PATTERN}" 2> /dev/null ; then - nvm_err 'Implicit aliases are not supported in nvm_remote_versions.' - return 1 - fi - VERSIONS="$(nvm_echo "$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote "${PATTERN}") -$(NVM_LTS=${NVM_LTS-} nvm_ls_remote_iojs "${PATTERN}")" | nvm_grep -v "N/A" | command sed '/^$/d')" &&: + "${NVM_NODE_PREFIX}") + NVM_FLAVOR="${NVM_NODE_PREFIX}" + unset PATTERN ;; esac + if nvm_validate_implicit_alias "${PATTERN-}" 2> /dev/null ; then + nvm_err 'Implicit aliases are not supported in nvm_remote_versions.' + return 1 + fi + + local NVM_LS_REMOTE_EXIT_CODE + NVM_LS_REMOTE_EXIT_CODE=0 + local NVM_LS_REMOTE_PRE_MERGED_OUTPUT + NVM_LS_REMOTE_PRE_MERGED_OUTPUT='' + local NVM_LS_REMOTE_POST_MERGED_OUTPUT + NVM_LS_REMOTE_POST_MERGED_OUTPUT='' + if [ -z "${NVM_FLAVOR}" ] || [ "${NVM_FLAVOR}" = "${NVM_NODE_PREFIX}" ]; then + local NVM_LS_REMOTE_OUTPUT + NVM_LS_REMOTE_OUTPUT=$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote "${PATTERN-}") &&: + NVM_LS_REMOTE_EXIT_CODE=$? + # split output into two + NVM_LS_REMOTE_PRE_MERGED_OUTPUT="${NVM_LS_REMOTE_OUTPUT%%v4\.0\.0*}" + NVM_LS_REMOTE_POST_MERGED_OUTPUT="${NVM_LS_REMOTE_OUTPUT#$NVM_LS_REMOTE_PRE_MERGED_OUTPUT}" + fi + + local NVM_LS_REMOTE_IOJS_EXIT_CODE + NVM_LS_REMOTE_IOJS_EXIT_CODE=0 + local NVM_LS_REMOTE_IOJS_OUTPUT + if [ -z "${NVM_LTS}" ] && ( \ + [ -z "${NVM_FLAVOR}" ] || [ "${NVM_FLAVOR}" = "${NVM_IOJS_PREFIX}" ] \ + ); then + NVM_LS_REMOTE_IOJS_OUTPUT=$(nvm_ls_remote_iojs "${PATTERN-}") &&: + NVM_LS_REMOTE_IOJS_EXIT_CODE=$? + fi + + VERSIONS="$(nvm_echo "${NVM_LS_REMOTE_PRE_MERGED_OUTPUT} +${NVM_LS_REMOTE_IOJS_OUTPUT} +${NVM_LS_REMOTE_POST_MERGED_OUTPUT}" | nvm_grep -v "N/A" | command sed '/^$/d')" + if [ -z "${VERSIONS}" ]; then nvm_echo 'N/A' return 3 - else - nvm_echo "${VERSIONS}" fi + nvm_echo "${VERSIONS}" + return $NVM_LS_REMOTE_EXIT_CODE || $NVM_LS_REMOTE_IOJS_EXIT_CODE } nvm_is_valid_version() { @@ -2234,7 +2271,7 @@ nvm() { VERSION="$(NVM_VERSION_ONLY=true NVM_LTS="${LTS-}" nvm_remote_version "${provided_version}")" - if [ "_$VERSION" = "_N/A" ]; then + if [ "${VERSION}" = 'N/A' ]; then local LTS_MSG local REMOTE_CMD if [ "${LTS-}" = '*' ]; then @@ -2272,10 +2309,10 @@ nvm() { shift done - if [ "_$(nvm_ensure_version_prefix "$PROVIDED_REINSTALL_PACKAGES_FROM")" = "_$VERSION" ]; then + if [ -n "${PROVIDED_REINSTALL_PACKAGES_FROM-}" ] && [ "$(nvm_ensure_version_prefix "${PROVIDED_REINSTALL_PACKAGES_FROM}")" = "${VERSION}" ]; then nvm_err "You can't reinstall global packages from the same version of node you're installing." return 4 - elif [ ! -z "$PROVIDED_REINSTALL_PACKAGES_FROM" ] && [ "_$REINSTALL_PACKAGES_FROM" = "_N/A" ]; then + elif [ "${REINSTALL_PACKAGES_FROM-}" = 'N/A' ]; then nvm_err "If --reinstall-packages-from is provided, it must point to an installed version of node." return 5 fi @@ -2759,25 +2796,18 @@ nvm() { return $NVM_LS_EXIT_CODE ;; "ls-remote" | "list-remote" ) - local LTS - local NVM_IOJS_PREFIX - NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" - local NVM_NODE_PREFIX - NVM_NODE_PREFIX="$(nvm_node_prefix)" + local NVM_LTS local PATTERN - local NVM_FLAVOR local NVM_NO_COLORS while [ $# -gt 0 ] do case "${1-}" in --) ;; --lts) - LTS='*' - NVM_FLAVOR="${NVM_NODE_PREFIX}" + NVM_LTS='*' ;; --lts=*) - LTS="${1##--lts=}" - NVM_FLAVOR="${NVM_NODE_PREFIX}" + NVM_LTS="${1##--lts=}" ;; --no-colors) NVM_NO_COLORS="${1}" ;; --*) @@ -2787,22 +2817,10 @@ nvm() { *) if [ -z "${PATTERN-}" ]; then PATTERN="${1-}" - if [ -z "${NVM_FLAVOR-}" ]; then + if [ -z "${NVM_LTS-}" ]; then case "${PATTERN}" in - "${NVM_IOJS_PREFIX}" | "${NVM_NODE_PREFIX}") - NVM_FLAVOR="${PATTERN}" - PATTERN="" - ;; - 'lts/*') - LTS='*' - PATTERN='' - NVM_FLAVOR="${NVM_NODE_PREFIX}" - ;; - lts/*) - LTS="${PATTERN##lts/}" - PATTERN='' - NVM_FLAVOR="${NVM_NODE_PREFIX}" - ;; + 'lts/*') NVM_LTS='*' ;; + lts/*) NVM_LTS="${PATTERN##lts/}" ;; esac fi fi @@ -2811,34 +2829,8 @@ nvm() { shift done - local NVM_LS_REMOTE_EXIT_CODE - NVM_LS_REMOTE_EXIT_CODE=0 - local NVM_LS_REMOTE_PRE_MERGED_OUTPUT - NVM_LS_REMOTE_PRE_MERGED_OUTPUT='' - local NVM_LS_REMOTE_POST_MERGED_OUTPUT - NVM_LS_REMOTE_POST_MERGED_OUTPUT='' - if [ "_$NVM_FLAVOR" != "_$NVM_IOJS_PREFIX" ]; then - local NVM_LS_REMOTE_OUTPUT - NVM_LS_REMOTE_OUTPUT=$(NVM_LTS="${LTS-}" nvm_ls_remote "$PATTERN") - # split output into two - NVM_LS_REMOTE_PRE_MERGED_OUTPUT="${NVM_LS_REMOTE_OUTPUT%%v4\.0\.0*}" - NVM_LS_REMOTE_POST_MERGED_OUTPUT="${NVM_LS_REMOTE_OUTPUT#$NVM_LS_REMOTE_PRE_MERGED_OUTPUT}" - NVM_LS_REMOTE_EXIT_CODE=$? - fi - - local NVM_LS_REMOTE_IOJS_EXIT_CODE - NVM_LS_REMOTE_IOJS_EXIT_CODE=0 - local NVM_LS_REMOTE_IOJS_OUTPUT - NVM_LS_REMOTE_IOJS_OUTPUT='' - if [ "_$NVM_FLAVOR" != "_$NVM_NODE_PREFIX" ] && [ -z "${LTS-}" ]; then - NVM_LS_REMOTE_IOJS_OUTPUT=$(nvm_ls_remote_iojs "$PATTERN") - NVM_LS_REMOTE_IOJS_EXIT_CODE=$? - fi - local NVM_OUTPUT - NVM_OUTPUT="$(nvm_echo "$NVM_LS_REMOTE_PRE_MERGED_OUTPUT -$NVM_LS_REMOTE_IOJS_OUTPUT -$NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')" + NVM_OUTPUT="$(NVM_LTS="${NVM_LTS-}" nvm_remote_versions "${PATTERN}" &&:)" if [ -n "$NVM_OUTPUT" ]; then NVM_NO_COLORS="${NVM_NO_COLORS-}" nvm_print_versions "$NVM_OUTPUT" return $NVM_LS_REMOTE_EXIT_CODE || $NVM_LS_REMOTE_IOJS_EXIT_CODE From 8b3cf6cbcb558814e2488483603a2d7423cbb025 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sat, 17 Sep 2016 14:01:03 +0800 Subject: [PATCH 0844/1426] add a menu for readme for easier readability --- README.markdown | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/README.markdown b/README.markdown index aa77fef..c25d7b6 100644 --- a/README.markdown +++ b/README.markdown @@ -1,5 +1,28 @@ # Node Version Manager [![Build Status](https://travis-ci.org/creationix/nvm.svg?branch=master)][3] +## Table of Contents + + - [Installation](#installation) + - [Install script](#install-script) + - [Verify installation](#verify-installation) + - [Manual install](#manual-install) + - [Manual upgrade](#manual-install) + - [Usage](#usage) + - [Long-term support](#long-term-support) + - [Migrating global packages while installing](#migrating-global-packages-while-installing) + - [io.js](#iojs) + - [System version of node](#system-version-of-node) + - [Listing versions](#listing-versions) + - [.nvmrc](#nvmrc) + - [Deeper Shell Integration](#deeper-shell-integration) + - [License](#license) + - [Running tests](#running-tests) + - [Bash completion](#bash-completion) + - [Usage](#usage-1) + - [Compatibility Issues](#compatibility-issues) + - [Installing nvm on Alpine Linux](#installing-nvm-on-alpine-linux) + - [Problems](#problems) + ## Installation First you'll need to make sure your system has a c++ compiler. For OS X, Xcode will work, for Ubuntu, the `build-essential` and `libssl-dev` packages work. From 256e75c789627c36d1a4c9726860dcf16329c239 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 18 Sep 2016 02:00:32 -0700 Subject: [PATCH 0845/1426] [Fix] Remove un-local var EXIT_CODE. Might possibly be a fix to part of #1236 --- nvm.sh | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/nvm.sh b/nvm.sh index 5249d04..19eb547 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2555,10 +2555,8 @@ nvm() { # This nvm_ensure_version_installed call can be a performance bottleneck # on shell startup. Perhaps we can optimize it away or make it faster. - nvm_ensure_version_installed "${VERSION}" - EXIT_CODE=$? - if [ "$EXIT_CODE" != "0" ]; then - return $EXIT_CODE + if ! nvm_ensure_version_installed "${VERSION}"; then + return $? fi local NVM_VERSION_DIR From f60edbb6b4798fd009ad433246b48f789ac77867 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 18 Sep 2016 11:58:18 -0700 Subject: [PATCH 0846/1426] [Tests] update test mocks --- test/fast/Unit tests/mocks/nodejs.org-dist-index.tab | 6 ++++++ test/fast/Unit tests/mocks/nvm ls-remote lts.txt | 3 ++- test/fast/Unit tests/mocks/nvm ls-remote node.txt | 8 +++++++- test/fast/Unit tests/mocks/nvm ls-remote.txt | 8 +++++++- test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt | 1 + test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt | 1 + test/fast/Unit tests/mocks/nvm_ls_remote.txt | 6 ++++++ .../Unit tests/mocks/nvm_make_alias LTS alias calls.txt | 2 +- test/fast/Unit tests/nvm_ls_remote | 4 ++-- update_test_mocks.sh | 2 +- 10 files changed, 34 insertions(+), 7 deletions(-) diff --git a/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab b/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab index 5c135f1..41ff54c 100644 --- a/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab +++ b/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab @@ -1,4 +1,9 @@ version date files npm v8 uv zlib openssl modules lts +v6.6.0 2016-09-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - +v6.5.0 2016-08-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v6.4.0 2016-08-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - +v6.3.1 2016-07-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - +v6.3.0 2016-07-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.10.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - v6.2.2 2016-06-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - v6.2.1 2016-06-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - v6.2.0 2016-05-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - @@ -23,6 +28,7 @@ v5.2.0 2015-12-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux- v5.1.1 2015-12-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 - v5.1.0 2015-11-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2d 47 - v5.0.0 2015-10-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.6 4.6.85.28 1.7.5 1.2.8 1.0.2d 47 - +v4.5.0 2016-08-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.15.9 4.5.103.37 1.9.1 1.2.8 1.0.2h 46 Argon v4.4.7 2016-06-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.15.8 4.5.103.36 1.8.0 1.2.8 1.0.2h 46 Argon v4.4.6 2016-06-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.15.5 4.5.103.36 1.8.0 1.2.8 1.0.2h 46 Argon v4.4.5 2016-05-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.15.5 4.5.103.35 1.8.0 1.2.8 1.0.2h 46 Argon diff --git a/test/fast/Unit tests/mocks/nvm ls-remote lts.txt b/test/fast/Unit tests/mocks/nvm ls-remote lts.txt index a6c5b91..67bcc61 100644 --- a/test/fast/Unit tests/mocks/nvm ls-remote lts.txt +++ b/test/fast/Unit tests/mocks/nvm ls-remote lts.txt @@ -15,4 +15,5 @@ v4.4.4  (LTS: Argon) v4.4.5  (LTS: Argon) v4.4.6  (LTS: Argon) - v4.4.7  (Latest LTS: Argon) + v4.4.7  (LTS: Argon) + v4.5.0  (Latest LTS: Argon) diff --git a/test/fast/Unit tests/mocks/nvm ls-remote node.txt b/test/fast/Unit tests/mocks/nvm ls-remote node.txt index 0b42afb..5ea3f88 100644 --- a/test/fast/Unit tests/mocks/nvm ls-remote node.txt +++ b/test/fast/Unit tests/mocks/nvm ls-remote node.txt @@ -251,7 +251,8 @@ v4.4.4  (LTS: Argon) v4.4.5  (LTS: Argon) v4.4.6  (LTS: Argon) - v4.4.7  (Latest LTS: Argon) + v4.4.7  (LTS: Argon) + v4.5.0  (Latest LTS: Argon) v5.0.0 v5.1.0 v5.1.1 @@ -276,3 +277,8 @@ v6.2.0 v6.2.1 v6.2.2 + v6.3.0 + v6.3.1 + v6.4.0 + v6.5.0 + v6.6.0 diff --git a/test/fast/Unit tests/mocks/nvm ls-remote.txt b/test/fast/Unit tests/mocks/nvm ls-remote.txt index 419d691..401efd5 100644 --- a/test/fast/Unit tests/mocks/nvm ls-remote.txt +++ b/test/fast/Unit tests/mocks/nvm ls-remote.txt @@ -292,7 +292,8 @@ v4.4.4  (LTS: Argon) v4.4.5  (LTS: Argon) v4.4.6  (LTS: Argon) - v4.4.7  (Latest LTS: Argon) + v4.4.7  (LTS: Argon) + v4.5.0  (Latest LTS: Argon) v5.0.0 v5.1.0 v5.1.1 @@ -317,3 +318,8 @@ v6.2.0 v6.2.1 v6.2.2 + v6.3.0 + v6.3.1 + v6.4.0 + v6.5.0 + v6.6.0 diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt b/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt index f46b35a..584f0a7 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt @@ -16,3 +16,4 @@ v4.4.4 Argon v4.4.5 Argon v4.4.6 Argon v4.4.7 Argon +v4.5.0 Argon diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt b/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt index f46b35a..584f0a7 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt @@ -16,3 +16,4 @@ v4.4.4 Argon v4.4.5 Argon v4.4.6 Argon v4.4.7 Argon +v4.5.0 Argon diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote.txt b/test/fast/Unit tests/mocks/nvm_ls_remote.txt index e8c3e5f..cd640eb 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote.txt @@ -252,6 +252,7 @@ v4.4.4 Argon v4.4.5 Argon v4.4.6 Argon v4.4.7 Argon +v4.5.0 Argon v5.0.0 v5.1.0 v5.1.1 @@ -276,3 +277,8 @@ v6.1.0 v6.2.0 v6.2.1 v6.2.2 +v6.3.0 +v6.3.1 +v6.4.0 +v6.5.0 +v6.6.0 diff --git a/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt b/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt index cb38eec..c21c447 100644 --- a/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt +++ b/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt @@ -1,2 +1,2 @@ -lts/argon|v4.4.7 +lts/argon|v4.5.0 lts/*|lts/argon diff --git a/test/fast/Unit tests/nvm_ls_remote b/test/fast/Unit tests/nvm_ls_remote index 52dd1f3..45d07b9 100755 --- a/test/fast/Unit tests/nvm_ls_remote +++ b/test/fast/Unit tests/nvm_ls_remote @@ -42,7 +42,7 @@ v0.3.8" # Sanity checks OUTPUT="$(nvm_print_implicit_alias remote stable)" -EXPECTED_OUTPUT="6.2" +EXPECTED_OUTPUT="6.6" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_print_implicit_alias remote stable did not output $EXPECTED_OUTPUT; got $OUTPUT" OUTPUT="$(nvm_print_implicit_alias remote unstable)" @@ -50,7 +50,7 @@ EXPECTED_OUTPUT="0.11" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_print_implicit_alias remote unstable did not output $EXPECTED_OUTPUT; got $OUTPUT" OUTPUT="$(nvm_ls_remote stable)" -EXPECTED_OUTPUT="v6.2.2" +EXPECTED_OUTPUT="v6.6.0" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote stable did not output $EXPECTED_OUTPUT; got $OUTPUT" OUTPUT="$(nvm_ls_remote unstable)" diff --git a/update_test_mocks.sh b/update_test_mocks.sh index dfa87ac..5a08592 100755 --- a/update_test_mocks.sh +++ b/update_test_mocks.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -set -ex +set -e echo 'Updating test mocks...' From acbdd9a3fa447f9dc522b058ce207ceb0bcd36b2 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 18 Sep 2016 12:26:06 -0700 Subject: [PATCH 0847/1426] [Fix] Fix trailing whitespace in `nvm ls-remote` --- nvm.sh | 16 +- .../Unit tests/mocks/nvm ls-remote iojs.txt | 82 +-- .../Unit tests/mocks/nvm ls-remote node.txt | 530 +++++++-------- test/fast/Unit tests/mocks/nvm ls-remote.txt | 612 +++++++++--------- 4 files changed, 620 insertions(+), 620 deletions(-) diff --git a/nvm.sh b/nvm.sh index 19eb547..ffae02a 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1256,20 +1256,20 @@ nvm_print_versions() { | while read -r VERSION_LINE; do VERSION="${VERSION_LINE%% *}" LTS="${VERSION_LINE#* }" - FORMAT='%15s ' + FORMAT='%15s' if [ "_$VERSION" = "_$NVM_CURRENT" ]; then if [ "${NVM_HAS_COLORS-}" = '1' ]; then - FORMAT='\033[0;32m-> %12s\033[0m ' + FORMAT='\033[0;32m-> %12s\033[0m' else FORMAT='-> %12s *' fi elif [ "$VERSION" = "system" ]; then if [ "${NVM_HAS_COLORS-}" = '1' ]; then - FORMAT='\033[0;33m%15s\033[0m ' + FORMAT='\033[0;33m%15s\033[0m' fi elif nvm_is_version_installed "$VERSION"; then if [ "${NVM_HAS_COLORS-}" = '1' ]; then - FORMAT='\033[0;34m%15s\033[0m ' + FORMAT='\033[0;34m%15s\033[0m' else FORMAT='%15s *' fi @@ -1280,17 +1280,17 @@ nvm_print_versions() { LTS="${LTS##Latest }" LTS_LENGTH="${#LTS}" if [ "${NVM_HAS_COLORS-}" = '1' ]; then - LTS_FORMAT="\033[1;32m%${LTS_LENGTH}s\033[0m" + LTS_FORMAT=" \033[1;32m%${LTS_LENGTH}s\033[0m" else - LTS_FORMAT="%${LTS_LENGTH}s" + LTS_FORMAT=" %${LTS_LENGTH}s" fi ;; *) LTS_LENGTH="${#LTS}" if [ "${NVM_HAS_COLORS-}" = '1' ]; then - LTS_FORMAT="\033[0;37m%${LTS_LENGTH}s\033[0m" + LTS_FORMAT=" \033[0;37m%${LTS_LENGTH}s\033[0m" else - LTS_FORMAT="%${LTS_LENGTH}s" + LTS_FORMAT=" %${LTS_LENGTH}s" fi ;; esac diff --git a/test/fast/Unit tests/mocks/nvm ls-remote iojs.txt b/test/fast/Unit tests/mocks/nvm ls-remote iojs.txt index ff70b02..5f2e598 100644 --- a/test/fast/Unit tests/mocks/nvm ls-remote iojs.txt +++ b/test/fast/Unit tests/mocks/nvm ls-remote iojs.txt @@ -1,41 +1,41 @@ - iojs-v1.0.0 - iojs-v1.0.1 - iojs-v1.0.2 - iojs-v1.0.3 - iojs-v1.0.4 - iojs-v1.1.0 - iojs-v1.2.0 - iojs-v1.3.0 - iojs-v1.4.1 - iojs-v1.4.2 - iojs-v1.4.3 - iojs-v1.5.0 - iojs-v1.5.1 - iojs-v1.6.0 - iojs-v1.6.1 - iojs-v1.6.2 - iojs-v1.6.3 - iojs-v1.6.4 - iojs-v1.7.1 - iojs-v1.8.1 - iojs-v1.8.2 - iojs-v1.8.3 - iojs-v1.8.4 - iojs-v2.0.0 - iojs-v2.0.1 - iojs-v2.0.2 - iojs-v2.1.0 - iojs-v2.2.0 - iojs-v2.2.1 - iojs-v2.3.0 - iojs-v2.3.1 - iojs-v2.3.2 - iojs-v2.3.3 - iojs-v2.3.4 - iojs-v2.4.0 - iojs-v2.5.0 - iojs-v3.0.0 - iojs-v3.1.0 - iojs-v3.2.0 - iojs-v3.3.0 - iojs-v3.3.1 + iojs-v1.0.0 + iojs-v1.0.1 + iojs-v1.0.2 + iojs-v1.0.3 + iojs-v1.0.4 + iojs-v1.1.0 + iojs-v1.2.0 + iojs-v1.3.0 + iojs-v1.4.1 + iojs-v1.4.2 + iojs-v1.4.3 + iojs-v1.5.0 + iojs-v1.5.1 + iojs-v1.6.0 + iojs-v1.6.1 + iojs-v1.6.2 + iojs-v1.6.3 + iojs-v1.6.4 + iojs-v1.7.1 + iojs-v1.8.1 + iojs-v1.8.2 + iojs-v1.8.3 + iojs-v1.8.4 + iojs-v2.0.0 + iojs-v2.0.1 + iojs-v2.0.2 + iojs-v2.1.0 + iojs-v2.2.0 + iojs-v2.2.1 + iojs-v2.3.0 + iojs-v2.3.1 + iojs-v2.3.2 + iojs-v2.3.3 + iojs-v2.3.4 + iojs-v2.4.0 + iojs-v2.5.0 + iojs-v3.0.0 + iojs-v3.1.0 + iojs-v3.2.0 + iojs-v3.3.0 + iojs-v3.3.1 diff --git a/test/fast/Unit tests/mocks/nvm ls-remote node.txt b/test/fast/Unit tests/mocks/nvm ls-remote node.txt index 5ea3f88..df125e3 100644 --- a/test/fast/Unit tests/mocks/nvm ls-remote node.txt +++ b/test/fast/Unit tests/mocks/nvm ls-remote node.txt @@ -1,239 +1,239 @@ - v0.1.14 - v0.1.15 - v0.1.16 - v0.1.17 - v0.1.18 - v0.1.19 - v0.1.20 - v0.1.21 - v0.1.22 - v0.1.23 - v0.1.24 - v0.1.25 - v0.1.26 - v0.1.27 - v0.1.28 - v0.1.29 - v0.1.30 - v0.1.31 - v0.1.32 - v0.1.33 - v0.1.90 - v0.1.91 - v0.1.92 - v0.1.93 - v0.1.94 - v0.1.95 - v0.1.96 - v0.1.97 - v0.1.98 - v0.1.99 - v0.1.100 - v0.1.101 - v0.1.102 - v0.1.103 - v0.1.104 - v0.2.0 - v0.2.1 - v0.2.2 - v0.2.3 - v0.2.4 - v0.2.5 - v0.2.6 - v0.3.0 - v0.3.1 - v0.3.2 - v0.3.3 - v0.3.4 - v0.3.5 - v0.3.6 - v0.3.7 - v0.3.8 - v0.4.0 - v0.4.1 - v0.4.2 - v0.4.3 - v0.4.4 - v0.4.5 - v0.4.6 - v0.4.7 - v0.4.8 - v0.4.9 - v0.4.10 - v0.4.11 - v0.4.12 - v0.5.0 - v0.5.1 - v0.5.2 - v0.5.3 - v0.5.4 - v0.5.5 - v0.5.6 - v0.5.7 - v0.5.8 - v0.5.9 - v0.5.10 - v0.6.0 - v0.6.1 - v0.6.2 - v0.6.3 - v0.6.4 - v0.6.5 - v0.6.6 - v0.6.7 - v0.6.8 - v0.6.9 - v0.6.10 - v0.6.11 - v0.6.12 - v0.6.13 - v0.6.14 - v0.6.15 - v0.6.16 - v0.6.17 - v0.6.18 - v0.6.19 - v0.6.20 - v0.6.21 - v0.7.0 - v0.7.1 - v0.7.2 - v0.7.3 - v0.7.4 - v0.7.5 - v0.7.6 - v0.7.7 - v0.7.8 - v0.7.9 - v0.7.10 - v0.7.11 - v0.7.12 - v0.8.0 - v0.8.1 - v0.8.2 - v0.8.3 - v0.8.4 - v0.8.5 - v0.8.6 - v0.8.7 - v0.8.8 - v0.8.9 - v0.8.10 - v0.8.11 - v0.8.12 - v0.8.13 - v0.8.14 - v0.8.15 - v0.8.16 - v0.8.17 - v0.8.18 - v0.8.19 - v0.8.20 - v0.8.21 - v0.8.22 - v0.8.23 - v0.8.24 - v0.8.25 - v0.8.26 - v0.8.27 - v0.8.28 - v0.9.0 - v0.9.1 - v0.9.2 - v0.9.3 - v0.9.4 - v0.9.5 - v0.9.6 - v0.9.7 - v0.9.8 - v0.9.9 - v0.9.10 - v0.9.11 - v0.9.12 - v0.10.0 - v0.10.1 - v0.10.2 - v0.10.3 - v0.10.4 - v0.10.5 - v0.10.6 - v0.10.7 - v0.10.8 - v0.10.9 - v0.10.10 - v0.10.11 - v0.10.12 - v0.10.13 - v0.10.14 - v0.10.15 - v0.10.16 - v0.10.17 - v0.10.18 - v0.10.19 - v0.10.20 - v0.10.21 - v0.10.22 - v0.10.23 - v0.10.24 - v0.10.25 - v0.10.26 - v0.10.27 - v0.10.28 - v0.10.29 - v0.10.30 - v0.10.31 - v0.10.32 - v0.10.33 - v0.10.34 - v0.10.35 - v0.10.36 - v0.10.37 - v0.10.38 - v0.10.39 - v0.10.40 - v0.10.41 - v0.10.42 - v0.10.43 - v0.10.44 - v0.10.45 - v0.10.46 - v0.11.0 - v0.11.1 - v0.11.2 - v0.11.3 - v0.11.4 - v0.11.5 - v0.11.6 - v0.11.7 - v0.11.8 - v0.11.9 - v0.11.10 - v0.11.11 - v0.11.12 - v0.11.13 - v0.11.14 - v0.11.15 - v0.11.16 - v0.12.0 - v0.12.1 - v0.12.2 - v0.12.3 - v0.12.4 - v0.12.5 - v0.12.6 - v0.12.7 - v0.12.8 - v0.12.9 - v0.12.10 - v0.12.11 - v0.12.12 - v0.12.13 - v0.12.14 - v0.12.15 - v4.0.0 - v4.1.0 - v4.1.1 - v4.1.2 + v0.1.14 + v0.1.15 + v0.1.16 + v0.1.17 + v0.1.18 + v0.1.19 + v0.1.20 + v0.1.21 + v0.1.22 + v0.1.23 + v0.1.24 + v0.1.25 + v0.1.26 + v0.1.27 + v0.1.28 + v0.1.29 + v0.1.30 + v0.1.31 + v0.1.32 + v0.1.33 + v0.1.90 + v0.1.91 + v0.1.92 + v0.1.93 + v0.1.94 + v0.1.95 + v0.1.96 + v0.1.97 + v0.1.98 + v0.1.99 + v0.1.100 + v0.1.101 + v0.1.102 + v0.1.103 + v0.1.104 + v0.2.0 + v0.2.1 + v0.2.2 + v0.2.3 + v0.2.4 + v0.2.5 + v0.2.6 + v0.3.0 + v0.3.1 + v0.3.2 + v0.3.3 + v0.3.4 + v0.3.5 + v0.3.6 + v0.3.7 + v0.3.8 + v0.4.0 + v0.4.1 + v0.4.2 + v0.4.3 + v0.4.4 + v0.4.5 + v0.4.6 + v0.4.7 + v0.4.8 + v0.4.9 + v0.4.10 + v0.4.11 + v0.4.12 + v0.5.0 + v0.5.1 + v0.5.2 + v0.5.3 + v0.5.4 + v0.5.5 + v0.5.6 + v0.5.7 + v0.5.8 + v0.5.9 + v0.5.10 + v0.6.0 + v0.6.1 + v0.6.2 + v0.6.3 + v0.6.4 + v0.6.5 + v0.6.6 + v0.6.7 + v0.6.8 + v0.6.9 + v0.6.10 + v0.6.11 + v0.6.12 + v0.6.13 + v0.6.14 + v0.6.15 + v0.6.16 + v0.6.17 + v0.6.18 + v0.6.19 + v0.6.20 + v0.6.21 + v0.7.0 + v0.7.1 + v0.7.2 + v0.7.3 + v0.7.4 + v0.7.5 + v0.7.6 + v0.7.7 + v0.7.8 + v0.7.9 + v0.7.10 + v0.7.11 + v0.7.12 + v0.8.0 + v0.8.1 + v0.8.2 + v0.8.3 + v0.8.4 + v0.8.5 + v0.8.6 + v0.8.7 + v0.8.8 + v0.8.9 + v0.8.10 + v0.8.11 + v0.8.12 + v0.8.13 + v0.8.14 + v0.8.15 + v0.8.16 + v0.8.17 + v0.8.18 + v0.8.19 + v0.8.20 + v0.8.21 + v0.8.22 + v0.8.23 + v0.8.24 + v0.8.25 + v0.8.26 + v0.8.27 + v0.8.28 + v0.9.0 + v0.9.1 + v0.9.2 + v0.9.3 + v0.9.4 + v0.9.5 + v0.9.6 + v0.9.7 + v0.9.8 + v0.9.9 + v0.9.10 + v0.9.11 + v0.9.12 + v0.10.0 + v0.10.1 + v0.10.2 + v0.10.3 + v0.10.4 + v0.10.5 + v0.10.6 + v0.10.7 + v0.10.8 + v0.10.9 + v0.10.10 + v0.10.11 + v0.10.12 + v0.10.13 + v0.10.14 + v0.10.15 + v0.10.16 + v0.10.17 + v0.10.18 + v0.10.19 + v0.10.20 + v0.10.21 + v0.10.22 + v0.10.23 + v0.10.24 + v0.10.25 + v0.10.26 + v0.10.27 + v0.10.28 + v0.10.29 + v0.10.30 + v0.10.31 + v0.10.32 + v0.10.33 + v0.10.34 + v0.10.35 + v0.10.36 + v0.10.37 + v0.10.38 + v0.10.39 + v0.10.40 + v0.10.41 + v0.10.42 + v0.10.43 + v0.10.44 + v0.10.45 + v0.10.46 + v0.11.0 + v0.11.1 + v0.11.2 + v0.11.3 + v0.11.4 + v0.11.5 + v0.11.6 + v0.11.7 + v0.11.8 + v0.11.9 + v0.11.10 + v0.11.11 + v0.11.12 + v0.11.13 + v0.11.14 + v0.11.15 + v0.11.16 + v0.12.0 + v0.12.1 + v0.12.2 + v0.12.3 + v0.12.4 + v0.12.5 + v0.12.6 + v0.12.7 + v0.12.8 + v0.12.9 + v0.12.10 + v0.12.11 + v0.12.12 + v0.12.13 + v0.12.14 + v0.12.15 + v4.0.0 + v4.1.0 + v4.1.1 + v4.1.2 v4.2.0  (LTS: Argon) v4.2.1  (LTS: Argon) v4.2.2  (LTS: Argon) @@ -253,32 +253,32 @@ v4.4.6  (LTS: Argon) v4.4.7  (LTS: Argon) v4.5.0  (Latest LTS: Argon) - v5.0.0 - v5.1.0 - v5.1.1 - v5.2.0 - v5.3.0 - v5.4.0 - v5.4.1 - v5.5.0 - v5.6.0 - v5.7.0 - v5.7.1 - v5.8.0 - v5.9.0 - v5.9.1 - v5.10.0 - v5.10.1 - v5.11.0 - v5.11.1 - v5.12.0 - v6.0.0 - v6.1.0 - v6.2.0 - v6.2.1 - v6.2.2 - v6.3.0 - v6.3.1 - v6.4.0 - v6.5.0 - v6.6.0 + v5.0.0 + v5.1.0 + v5.1.1 + v5.2.0 + v5.3.0 + v5.4.0 + v5.4.1 + v5.5.0 + v5.6.0 + v5.7.0 + v5.7.1 + v5.8.0 + v5.9.0 + v5.9.1 + v5.10.0 + v5.10.1 + v5.11.0 + v5.11.1 + v5.12.0 + v6.0.0 + v6.1.0 + v6.2.0 + v6.2.1 + v6.2.2 + v6.3.0 + v6.3.1 + v6.4.0 + v6.5.0 + v6.6.0 diff --git a/test/fast/Unit tests/mocks/nvm ls-remote.txt b/test/fast/Unit tests/mocks/nvm ls-remote.txt index 401efd5..a3d99ae 100644 --- a/test/fast/Unit tests/mocks/nvm ls-remote.txt +++ b/test/fast/Unit tests/mocks/nvm ls-remote.txt @@ -1,280 +1,280 @@ - v0.1.14 - v0.1.15 - v0.1.16 - v0.1.17 - v0.1.18 - v0.1.19 - v0.1.20 - v0.1.21 - v0.1.22 - v0.1.23 - v0.1.24 - v0.1.25 - v0.1.26 - v0.1.27 - v0.1.28 - v0.1.29 - v0.1.30 - v0.1.31 - v0.1.32 - v0.1.33 - v0.1.90 - v0.1.91 - v0.1.92 - v0.1.93 - v0.1.94 - v0.1.95 - v0.1.96 - v0.1.97 - v0.1.98 - v0.1.99 - v0.1.100 - v0.1.101 - v0.1.102 - v0.1.103 - v0.1.104 - v0.2.0 - v0.2.1 - v0.2.2 - v0.2.3 - v0.2.4 - v0.2.5 - v0.2.6 - v0.3.0 - v0.3.1 - v0.3.2 - v0.3.3 - v0.3.4 - v0.3.5 - v0.3.6 - v0.3.7 - v0.3.8 - v0.4.0 - v0.4.1 - v0.4.2 - v0.4.3 - v0.4.4 - v0.4.5 - v0.4.6 - v0.4.7 - v0.4.8 - v0.4.9 - v0.4.10 - v0.4.11 - v0.4.12 - v0.5.0 - v0.5.1 - v0.5.2 - v0.5.3 - v0.5.4 - v0.5.5 - v0.5.6 - v0.5.7 - v0.5.8 - v0.5.9 - v0.5.10 - v0.6.0 - v0.6.1 - v0.6.2 - v0.6.3 - v0.6.4 - v0.6.5 - v0.6.6 - v0.6.7 - v0.6.8 - v0.6.9 - v0.6.10 - v0.6.11 - v0.6.12 - v0.6.13 - v0.6.14 - v0.6.15 - v0.6.16 - v0.6.17 - v0.6.18 - v0.6.19 - v0.6.20 - v0.6.21 - v0.7.0 - v0.7.1 - v0.7.2 - v0.7.3 - v0.7.4 - v0.7.5 - v0.7.6 - v0.7.7 - v0.7.8 - v0.7.9 - v0.7.10 - v0.7.11 - v0.7.12 - v0.8.0 - v0.8.1 - v0.8.2 - v0.8.3 - v0.8.4 - v0.8.5 - v0.8.6 - v0.8.7 - v0.8.8 - v0.8.9 - v0.8.10 - v0.8.11 - v0.8.12 - v0.8.13 - v0.8.14 - v0.8.15 - v0.8.16 - v0.8.17 - v0.8.18 - v0.8.19 - v0.8.20 - v0.8.21 - v0.8.22 - v0.8.23 - v0.8.24 - v0.8.25 - v0.8.26 - v0.8.27 - v0.8.28 - v0.9.0 - v0.9.1 - v0.9.2 - v0.9.3 - v0.9.4 - v0.9.5 - v0.9.6 - v0.9.7 - v0.9.8 - v0.9.9 - v0.9.10 - v0.9.11 - v0.9.12 - v0.10.0 - v0.10.1 - v0.10.2 - v0.10.3 - v0.10.4 - v0.10.5 - v0.10.6 - v0.10.7 - v0.10.8 - v0.10.9 - v0.10.10 - v0.10.11 - v0.10.12 - v0.10.13 - v0.10.14 - v0.10.15 - v0.10.16 - v0.10.17 - v0.10.18 - v0.10.19 - v0.10.20 - v0.10.21 - v0.10.22 - v0.10.23 - v0.10.24 - v0.10.25 - v0.10.26 - v0.10.27 - v0.10.28 - v0.10.29 - v0.10.30 - v0.10.31 - v0.10.32 - v0.10.33 - v0.10.34 - v0.10.35 - v0.10.36 - v0.10.37 - v0.10.38 - v0.10.39 - v0.10.40 - v0.10.41 - v0.10.42 - v0.10.43 - v0.10.44 - v0.10.45 - v0.10.46 - v0.11.0 - v0.11.1 - v0.11.2 - v0.11.3 - v0.11.4 - v0.11.5 - v0.11.6 - v0.11.7 - v0.11.8 - v0.11.9 - v0.11.10 - v0.11.11 - v0.11.12 - v0.11.13 - v0.11.14 - v0.11.15 - v0.11.16 - v0.12.0 - v0.12.1 - v0.12.2 - v0.12.3 - v0.12.4 - v0.12.5 - v0.12.6 - v0.12.7 - v0.12.8 - v0.12.9 - v0.12.10 - v0.12.11 - v0.12.12 - v0.12.13 - v0.12.14 - v0.12.15 - iojs-v1.0.0 - iojs-v1.0.1 - iojs-v1.0.2 - iojs-v1.0.3 - iojs-v1.0.4 - iojs-v1.1.0 - iojs-v1.2.0 - iojs-v1.3.0 - iojs-v1.4.1 - iojs-v1.4.2 - iojs-v1.4.3 - iojs-v1.5.0 - iojs-v1.5.1 - iojs-v1.6.0 - iojs-v1.6.1 - iojs-v1.6.2 - iojs-v1.6.3 - iojs-v1.6.4 - iojs-v1.7.1 - iojs-v1.8.1 - iojs-v1.8.2 - iojs-v1.8.3 - iojs-v1.8.4 - iojs-v2.0.0 - iojs-v2.0.1 - iojs-v2.0.2 - iojs-v2.1.0 - iojs-v2.2.0 - iojs-v2.2.1 - iojs-v2.3.0 - iojs-v2.3.1 - iojs-v2.3.2 - iojs-v2.3.3 - iojs-v2.3.4 - iojs-v2.4.0 - iojs-v2.5.0 - iojs-v3.0.0 - iojs-v3.1.0 - iojs-v3.2.0 - iojs-v3.3.0 - iojs-v3.3.1 - v4.0.0 - v4.1.0 - v4.1.1 - v4.1.2 + v0.1.14 + v0.1.15 + v0.1.16 + v0.1.17 + v0.1.18 + v0.1.19 + v0.1.20 + v0.1.21 + v0.1.22 + v0.1.23 + v0.1.24 + v0.1.25 + v0.1.26 + v0.1.27 + v0.1.28 + v0.1.29 + v0.1.30 + v0.1.31 + v0.1.32 + v0.1.33 + v0.1.90 + v0.1.91 + v0.1.92 + v0.1.93 + v0.1.94 + v0.1.95 + v0.1.96 + v0.1.97 + v0.1.98 + v0.1.99 + v0.1.100 + v0.1.101 + v0.1.102 + v0.1.103 + v0.1.104 + v0.2.0 + v0.2.1 + v0.2.2 + v0.2.3 + v0.2.4 + v0.2.5 + v0.2.6 + v0.3.0 + v0.3.1 + v0.3.2 + v0.3.3 + v0.3.4 + v0.3.5 + v0.3.6 + v0.3.7 + v0.3.8 + v0.4.0 + v0.4.1 + v0.4.2 + v0.4.3 + v0.4.4 + v0.4.5 + v0.4.6 + v0.4.7 + v0.4.8 + v0.4.9 + v0.4.10 + v0.4.11 + v0.4.12 + v0.5.0 + v0.5.1 + v0.5.2 + v0.5.3 + v0.5.4 + v0.5.5 + v0.5.6 + v0.5.7 + v0.5.8 + v0.5.9 + v0.5.10 + v0.6.0 + v0.6.1 + v0.6.2 + v0.6.3 + v0.6.4 + v0.6.5 + v0.6.6 + v0.6.7 + v0.6.8 + v0.6.9 + v0.6.10 + v0.6.11 + v0.6.12 + v0.6.13 + v0.6.14 + v0.6.15 + v0.6.16 + v0.6.17 + v0.6.18 + v0.6.19 + v0.6.20 + v0.6.21 + v0.7.0 + v0.7.1 + v0.7.2 + v0.7.3 + v0.7.4 + v0.7.5 + v0.7.6 + v0.7.7 + v0.7.8 + v0.7.9 + v0.7.10 + v0.7.11 + v0.7.12 + v0.8.0 + v0.8.1 + v0.8.2 + v0.8.3 + v0.8.4 + v0.8.5 + v0.8.6 + v0.8.7 + v0.8.8 + v0.8.9 + v0.8.10 + v0.8.11 + v0.8.12 + v0.8.13 + v0.8.14 + v0.8.15 + v0.8.16 + v0.8.17 + v0.8.18 + v0.8.19 + v0.8.20 + v0.8.21 + v0.8.22 + v0.8.23 + v0.8.24 + v0.8.25 + v0.8.26 + v0.8.27 + v0.8.28 + v0.9.0 + v0.9.1 + v0.9.2 + v0.9.3 + v0.9.4 + v0.9.5 + v0.9.6 + v0.9.7 + v0.9.8 + v0.9.9 + v0.9.10 + v0.9.11 + v0.9.12 + v0.10.0 + v0.10.1 + v0.10.2 + v0.10.3 + v0.10.4 + v0.10.5 + v0.10.6 + v0.10.7 + v0.10.8 + v0.10.9 + v0.10.10 + v0.10.11 + v0.10.12 + v0.10.13 + v0.10.14 + v0.10.15 + v0.10.16 + v0.10.17 + v0.10.18 + v0.10.19 + v0.10.20 + v0.10.21 + v0.10.22 + v0.10.23 + v0.10.24 + v0.10.25 + v0.10.26 + v0.10.27 + v0.10.28 + v0.10.29 + v0.10.30 + v0.10.31 + v0.10.32 + v0.10.33 + v0.10.34 + v0.10.35 + v0.10.36 + v0.10.37 + v0.10.38 + v0.10.39 + v0.10.40 + v0.10.41 + v0.10.42 + v0.10.43 + v0.10.44 + v0.10.45 + v0.10.46 + v0.11.0 + v0.11.1 + v0.11.2 + v0.11.3 + v0.11.4 + v0.11.5 + v0.11.6 + v0.11.7 + v0.11.8 + v0.11.9 + v0.11.10 + v0.11.11 + v0.11.12 + v0.11.13 + v0.11.14 + v0.11.15 + v0.11.16 + v0.12.0 + v0.12.1 + v0.12.2 + v0.12.3 + v0.12.4 + v0.12.5 + v0.12.6 + v0.12.7 + v0.12.8 + v0.12.9 + v0.12.10 + v0.12.11 + v0.12.12 + v0.12.13 + v0.12.14 + v0.12.15 + iojs-v1.0.0 + iojs-v1.0.1 + iojs-v1.0.2 + iojs-v1.0.3 + iojs-v1.0.4 + iojs-v1.1.0 + iojs-v1.2.0 + iojs-v1.3.0 + iojs-v1.4.1 + iojs-v1.4.2 + iojs-v1.4.3 + iojs-v1.5.0 + iojs-v1.5.1 + iojs-v1.6.0 + iojs-v1.6.1 + iojs-v1.6.2 + iojs-v1.6.3 + iojs-v1.6.4 + iojs-v1.7.1 + iojs-v1.8.1 + iojs-v1.8.2 + iojs-v1.8.3 + iojs-v1.8.4 + iojs-v2.0.0 + iojs-v2.0.1 + iojs-v2.0.2 + iojs-v2.1.0 + iojs-v2.2.0 + iojs-v2.2.1 + iojs-v2.3.0 + iojs-v2.3.1 + iojs-v2.3.2 + iojs-v2.3.3 + iojs-v2.3.4 + iojs-v2.4.0 + iojs-v2.5.0 + iojs-v3.0.0 + iojs-v3.1.0 + iojs-v3.2.0 + iojs-v3.3.0 + iojs-v3.3.1 + v4.0.0 + v4.1.0 + v4.1.1 + v4.1.2 v4.2.0  (LTS: Argon) v4.2.1  (LTS: Argon) v4.2.2  (LTS: Argon) @@ -294,32 +294,32 @@ v4.4.6  (LTS: Argon) v4.4.7  (LTS: Argon) v4.5.0  (Latest LTS: Argon) - v5.0.0 - v5.1.0 - v5.1.1 - v5.2.0 - v5.3.0 - v5.4.0 - v5.4.1 - v5.5.0 - v5.6.0 - v5.7.0 - v5.7.1 - v5.8.0 - v5.9.0 - v5.9.1 - v5.10.0 - v5.10.1 - v5.11.0 - v5.11.1 - v5.12.0 - v6.0.0 - v6.1.0 - v6.2.0 - v6.2.1 - v6.2.2 - v6.3.0 - v6.3.1 - v6.4.0 - v6.5.0 - v6.6.0 + v5.0.0 + v5.1.0 + v5.1.1 + v5.2.0 + v5.3.0 + v5.4.0 + v5.4.1 + v5.5.0 + v5.6.0 + v5.7.0 + v5.7.1 + v5.8.0 + v5.9.0 + v5.9.1 + v5.10.0 + v5.10.1 + v5.11.0 + v5.11.1 + v5.12.0 + v6.0.0 + v6.1.0 + v6.2.0 + v6.2.1 + v6.2.2 + v6.3.0 + v6.3.1 + v6.4.0 + v6.5.0 + v6.6.0 From d12ccb130d96fcff18ae1ee6ed3a45a9b5613e72 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 18 Sep 2016 13:39:50 -0700 Subject: [PATCH 0848/1426] [Fix] `zsh`: when `warncreateglobal` is set, this line warns for some reason. Use `env` to suppress it. Fixes #1236. --- nvm.sh | 4 ++-- test/fast/Unit tests/nvm_die_on_prefix | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/nvm.sh b/nvm.sh index ffae02a..965e9cb 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1945,10 +1945,10 @@ nvm_die_on_prefix() { fi local NVM_NPM_PREFIX - NVM_NPM_PREFIX="$(NPM_CONFIG_LOGLEVEL=warn npm config get prefix)" + NVM_NPM_PREFIX="$(npm config --loglevel=warn get prefix)" if ! (nvm_tree_contains_path "$NVM_DIR" "$NVM_NPM_PREFIX" >/dev/null 2>&1); then if [ "_$NVM_DELETE_PREFIX" = "_1" ]; then - NPM_CONFIG_LOGLEVEL=warn npm config delete prefix + npm config --loglevel=warn delete prefix else nvm deactivate >/dev/null 2>&1 nvm_err "nvm is not compatible with the npm config \"prefix\" option: currently set to \"$NVM_NPM_PREFIX\"" diff --git a/test/fast/Unit tests/nvm_die_on_prefix b/test/fast/Unit tests/nvm_die_on_prefix index 9a0260d..de14deb 100755 --- a/test/fast/Unit tests/nvm_die_on_prefix +++ b/test/fast/Unit tests/nvm_die_on_prefix @@ -36,7 +36,7 @@ nvm_has() { return 0; } npm() { local args args="$@" - if [ "_$args" = "_config get prefix" ]; then + if [ "_$args" = "_config --loglevel=warn get prefix" ]; then echo "$(nvm_version_dir new)/good prefix" fi } @@ -60,7 +60,7 @@ EXIT_CODE="$(NPM_CONFIG_PREFIX=bar nvm_die_on_prefix 0 foo >/dev/null 2>&1; echo npm() { local args args="$@" - if [ "_$args" = "_config get prefix" ]; then + if [ "_$args" = "_config --loglevel=warn get prefix" ]; then echo "./bad prefix" fi } From 160a39c84461d5b4bfd0f155ed1853b10782aa64 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 18 Sep 2016 19:06:18 -0700 Subject: [PATCH 0849/1426] [Refactor] fix copy-paste error from 5c68141ede0b3c00ac132a7f94b2ec8bd3fbeceb --- nvm.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 965e9cb..63a1be2 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2828,10 +2828,12 @@ nvm() { done local NVM_OUTPUT + local EXIT_CODE NVM_OUTPUT="$(NVM_LTS="${NVM_LTS-}" nvm_remote_versions "${PATTERN}" &&:)" + EXIT_CODE=$? if [ -n "$NVM_OUTPUT" ]; then NVM_NO_COLORS="${NVM_NO_COLORS-}" nvm_print_versions "$NVM_OUTPUT" - return $NVM_LS_REMOTE_EXIT_CODE || $NVM_LS_REMOTE_IOJS_EXIT_CODE + return $EXIT_CODE else NVM_NO_COLORS="${NVM_NO_COLORS-}" nvm_print_versions "N/A" return 3 From 7ca1186dbcdaeefadd9ba9ae566b58df45c47c84 Mon Sep 17 00:00:00 2001 From: Joseph Frazier <1212jtraceur@gmail.com> Date: Tue, 27 Sep 2016 21:40:36 -0400 Subject: [PATCH 0850/1426] Fix "Manual upgrade" link in readme --- README.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index c25d7b6..a0841d1 100644 --- a/README.markdown +++ b/README.markdown @@ -6,7 +6,7 @@ - [Install script](#install-script) - [Verify installation](#verify-installation) - [Manual install](#manual-install) - - [Manual upgrade](#manual-install) + - [Manual upgrade](#manual-upgrade) - [Usage](#usage) - [Long-term support](#long-term-support) - [Migrating global packages while installing](#migrating-global-packages-while-installing) From 702d52f23b65278b0ddfffe69645006d106448de Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Wed, 28 Sep 2016 16:34:29 +0800 Subject: [PATCH 0851/1426] update test mocks --- test/fast/Unit tests/mocks/nodejs.org-dist-index.tab | 4 ++++ test/fast/Unit tests/mocks/nvm ls-remote lts.txt | 3 ++- test/fast/Unit tests/mocks/nvm ls-remote node.txt | 6 +++++- test/fast/Unit tests/mocks/nvm ls-remote.txt | 6 +++++- test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt | 1 + test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt | 1 + test/fast/Unit tests/mocks/nvm_ls_remote.txt | 4 ++++ .../Unit tests/mocks/nvm_make_alias LTS alias calls.txt | 2 +- test/fast/Unit tests/nvm_ls_remote | 4 ++-- 9 files changed, 25 insertions(+), 6 deletions(-) diff --git a/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab b/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab index 41ff54c..defdcd8 100644 --- a/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab +++ b/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab @@ -1,4 +1,5 @@ version date files npm v8 uv zlib openssl modules lts +v6.7.0 2016-09-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - v6.6.0 2016-09-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - v6.5.0 2016-08-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - v6.4.0 2016-08-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - @@ -28,6 +29,7 @@ v5.2.0 2015-12-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux- v5.1.1 2015-12-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 - v5.1.0 2015-11-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2d 47 - v5.0.0 2015-10-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.6 4.6.85.28 1.7.5 1.2.8 1.0.2d 47 - +v4.6.0 2016-09-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.15.9 4.5.103.37 1.9.1 1.2.8 1.0.2j 46 Argon v4.5.0 2016-08-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.15.9 4.5.103.37 1.9.1 1.2.8 1.0.2h 46 Argon v4.4.7 2016-06-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.15.8 4.5.103.36 1.8.0 1.2.8 1.0.2h 46 Argon v4.4.6 2016-06-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.15.5 4.5.103.36 1.8.0 1.2.8 1.0.2h 46 Argon @@ -51,6 +53,7 @@ v4.1.2 2015-10-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux- v4.1.1 2015-09-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.4 4.5.103.33 1.7.4 1.2.8 1.0.2d 46 - v4.1.0 2015-09-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.3 4.5.103.33 1.7.4 1.2.8 1.0.2d 46 - v4.0.0 2015-09-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.2 4.5.103.30 1.7.3 1.2.8 1.0.2d 46 - +v0.12.16 2016-09-27 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.28.71.19 1.6.1 1.2.8 1.0.1u 14 - v0.12.15 2016-06-23 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.28.71.19 1.6.1 1.2.8 1.0.1t 14 - v0.12.14 2016-05-06 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.28.71.19 1.6.1 1.2.8 1.0.1t 14 - v0.12.13 2016-03-31 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.0 3.28.71.19 1.6.1 1.2.8 1.0.1s 14 - @@ -84,6 +87,7 @@ v0.11.3 2013-06-26 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,s v0.11.2 2013-05-13 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.21 3.19.0.0 0.11.2 1.2.3 1.0.1e 0x000C - v0.11.1 2013-04-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.18 3.18.0.0 0.11.1 1.2.3 1.0.1e 0x000C - v0.11.0 2013-03-28 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.15 3.17.13.0 0.10.3 1.2.3 1.0.1e 0x000C - +v0.10.47 2016-09-27 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.14.5.11 0.10.37 1.2.8 1.0.1u 11 - v0.10.46 2016-06-23 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.14.5.9 0.10.37 1.2.8 1.0.1t 11 - v0.10.45 2016-05-06 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.14.5.9 0.10.36 1.2.8 1.0.1t 11 - v0.10.44 2016-03-31 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.0 3.14.5.9 0.10.36 1.2.8 1.0.1s 11 - diff --git a/test/fast/Unit tests/mocks/nvm ls-remote lts.txt b/test/fast/Unit tests/mocks/nvm ls-remote lts.txt index 67bcc61..0db9675 100644 --- a/test/fast/Unit tests/mocks/nvm ls-remote lts.txt +++ b/test/fast/Unit tests/mocks/nvm ls-remote lts.txt @@ -16,4 +16,5 @@ v4.4.5  (LTS: Argon) v4.4.6  (LTS: Argon) v4.4.7  (LTS: Argon) - v4.5.0  (Latest LTS: Argon) + v4.5.0  (LTS: Argon) + v4.6.0  (Latest LTS: Argon) diff --git a/test/fast/Unit tests/mocks/nvm ls-remote node.txt b/test/fast/Unit tests/mocks/nvm ls-remote node.txt index df125e3..97e1548 100644 --- a/test/fast/Unit tests/mocks/nvm ls-remote node.txt +++ b/test/fast/Unit tests/mocks/nvm ls-remote node.txt @@ -197,6 +197,7 @@ v0.10.44 v0.10.45 v0.10.46 + v0.10.47 v0.11.0 v0.11.1 v0.11.2 @@ -230,6 +231,7 @@ v0.12.13 v0.12.14 v0.12.15 + v0.12.16 v4.0.0 v4.1.0 v4.1.1 @@ -252,7 +254,8 @@ v4.4.5  (LTS: Argon) v4.4.6  (LTS: Argon) v4.4.7  (LTS: Argon) - v4.5.0  (Latest LTS: Argon) + v4.5.0  (LTS: Argon) + v4.6.0  (Latest LTS: Argon) v5.0.0 v5.1.0 v5.1.1 @@ -282,3 +285,4 @@ v6.4.0 v6.5.0 v6.6.0 + v6.7.0 diff --git a/test/fast/Unit tests/mocks/nvm ls-remote.txt b/test/fast/Unit tests/mocks/nvm ls-remote.txt index a3d99ae..c820bf6 100644 --- a/test/fast/Unit tests/mocks/nvm ls-remote.txt +++ b/test/fast/Unit tests/mocks/nvm ls-remote.txt @@ -197,6 +197,7 @@ v0.10.44 v0.10.45 v0.10.46 + v0.10.47 v0.11.0 v0.11.1 v0.11.2 @@ -230,6 +231,7 @@ v0.12.13 v0.12.14 v0.12.15 + v0.12.16 iojs-v1.0.0 iojs-v1.0.1 iojs-v1.0.2 @@ -293,7 +295,8 @@ v4.4.5  (LTS: Argon) v4.4.6  (LTS: Argon) v4.4.7  (LTS: Argon) - v4.5.0  (Latest LTS: Argon) + v4.5.0  (LTS: Argon) + v4.6.0  (Latest LTS: Argon) v5.0.0 v5.1.0 v5.1.1 @@ -323,3 +326,4 @@ v6.4.0 v6.5.0 v6.6.0 + v6.7.0 diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt b/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt index 584f0a7..f524f07 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt @@ -17,3 +17,4 @@ v4.4.5 Argon v4.4.6 Argon v4.4.7 Argon v4.5.0 Argon +v4.6.0 Argon diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt b/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt index 584f0a7..f524f07 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt @@ -17,3 +17,4 @@ v4.4.5 Argon v4.4.6 Argon v4.4.7 Argon v4.5.0 Argon +v4.6.0 Argon diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote.txt b/test/fast/Unit tests/mocks/nvm_ls_remote.txt index cd640eb..ef3bbea 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote.txt @@ -197,6 +197,7 @@ v0.10.43 v0.10.44 v0.10.45 v0.10.46 +v0.10.47 v0.11.0 v0.11.1 v0.11.2 @@ -230,6 +231,7 @@ v0.12.12 v0.12.13 v0.12.14 v0.12.15 +v0.12.16 v4.0.0 v4.1.0 v4.1.1 @@ -253,6 +255,7 @@ v4.4.5 Argon v4.4.6 Argon v4.4.7 Argon v4.5.0 Argon +v4.6.0 Argon v5.0.0 v5.1.0 v5.1.1 @@ -282,3 +285,4 @@ v6.3.1 v6.4.0 v6.5.0 v6.6.0 +v6.7.0 diff --git a/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt b/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt index c21c447..c347f89 100644 --- a/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt +++ b/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt @@ -1,2 +1,2 @@ -lts/argon|v4.5.0 +lts/argon|v4.6.0 lts/*|lts/argon diff --git a/test/fast/Unit tests/nvm_ls_remote b/test/fast/Unit tests/nvm_ls_remote index 45d07b9..09eab1b 100755 --- a/test/fast/Unit tests/nvm_ls_remote +++ b/test/fast/Unit tests/nvm_ls_remote @@ -42,7 +42,7 @@ v0.3.8" # Sanity checks OUTPUT="$(nvm_print_implicit_alias remote stable)" -EXPECTED_OUTPUT="6.6" +EXPECTED_OUTPUT="6.7" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_print_implicit_alias remote stable did not output $EXPECTED_OUTPUT; got $OUTPUT" OUTPUT="$(nvm_print_implicit_alias remote unstable)" @@ -50,7 +50,7 @@ EXPECTED_OUTPUT="0.11" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_print_implicit_alias remote unstable did not output $EXPECTED_OUTPUT; got $OUTPUT" OUTPUT="$(nvm_ls_remote stable)" -EXPECTED_OUTPUT="v6.6.0" +EXPECTED_OUTPUT="v6.7.0" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote stable did not output $EXPECTED_OUTPUT; got $OUTPUT" OUTPUT="$(nvm_ls_remote unstable)" From a29d0e49dcd830be7337cf28d689e7061371a823 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 28 Sep 2016 22:42:48 -0700 Subject: [PATCH 0852/1426] [Tests] improve + update test mocks --- test/fast/Unit tests/mocks/nodejs.org-dist-index.tab | 2 +- test/fast/Unit tests/mocks/nvm_ls_remote stable.txt | 1 + .../mocks/nvm_print_implicit_alias remote stable.txt | 1 + test/fast/Unit tests/nvm_ls_remote | 6 ++++-- update_test_mocks.sh | 4 +++- 5 files changed, 10 insertions(+), 4 deletions(-) create mode 100644 test/fast/Unit tests/mocks/nvm_ls_remote stable.txt create mode 100644 test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt diff --git a/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab b/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab index defdcd8..ee5202f 100644 --- a/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab +++ b/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab @@ -1,5 +1,5 @@ version date files npm v8 uv zlib openssl modules lts -v6.7.0 2016-09-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - +v6.7.0 2016-09-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - v6.6.0 2016-09-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - v6.5.0 2016-08-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - v6.4.0 2016-08-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt b/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt new file mode 100644 index 0000000..3f3ac79 --- /dev/null +++ b/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt @@ -0,0 +1 @@ +v6.7.0 diff --git a/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt b/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt new file mode 100644 index 0000000..341291e --- /dev/null +++ b/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt @@ -0,0 +1 @@ +6.7 diff --git a/test/fast/Unit tests/nvm_ls_remote b/test/fast/Unit tests/nvm_ls_remote index 09eab1b..21a1320 100755 --- a/test/fast/Unit tests/nvm_ls_remote +++ b/test/fast/Unit tests/nvm_ls_remote @@ -42,7 +42,8 @@ v0.3.8" # Sanity checks OUTPUT="$(nvm_print_implicit_alias remote stable)" -EXPECTED_OUTPUT="6.7" +EXPECTED_OUTPUT_PATH="${MOCKS_DIR}/nvm_print_implicit_alias remote stable.txt" +EXPECTED_OUTPUT="$(cat "${EXPECTED_OUTPUT_PATH}")" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_print_implicit_alias remote stable did not output $EXPECTED_OUTPUT; got $OUTPUT" OUTPUT="$(nvm_print_implicit_alias remote unstable)" @@ -50,7 +51,8 @@ EXPECTED_OUTPUT="0.11" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_print_implicit_alias remote unstable did not output $EXPECTED_OUTPUT; got $OUTPUT" OUTPUT="$(nvm_ls_remote stable)" -EXPECTED_OUTPUT="v6.7.0" +EXPECTED_OUTPUT_PATH="${MOCKS_DIR}/nvm_ls_remote stable.txt" +EXPECTED_OUTPUT="$(cat "${EXPECTED_OUTPUT_PATH}")" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote stable did not output $EXPECTED_OUTPUT; got $OUTPUT" OUTPUT="$(nvm_ls_remote unstable)" diff --git a/update_test_mocks.sh b/update_test_mocks.sh index 5a08592..5c6917c 100755 --- a/update_test_mocks.sh +++ b/update_test_mocks.sh @@ -30,6 +30,8 @@ nvm ls-remote > "$MOCKS_DIR/nvm ls-remote.txt" nvm ls-remote --lts > "$MOCKS_DIR/nvm ls-remote lts.txt" nvm ls-remote node > "$MOCKS_DIR/nvm ls-remote node.txt" nvm ls-remote iojs > "$MOCKS_DIR/nvm ls-remote iojs.txt" +nvm_print_implicit_alias remote stable > "$MOCKS_DIR/nvm_print_implicit_alias remote stable.txt" +nvm_ls_remote stable > "$MOCKS_DIR/nvm_ls_remote stable.txt" ALIAS_PATH="$MOCKS_DIR/nvm_make_alias LTS alias calls.txt" : > "$ALIAS_PATH" @@ -37,6 +39,6 @@ nvm_make_alias() { # prevent local alias creation, and store arguments echo "${1}|${2}" >> "$ALIAS_PATH" } -nvm ls-remote --lts +nvm ls-remote --lts > /dev/null echo "done! Don't forget to git commit them." From f9e14b7d4d54679599490e6fbe06d229b6481955 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 4 Oct 2016 01:43:24 -0700 Subject: [PATCH 0853/1426] [Fix] `nvm uninstall`: work around `nomatch` `zsh` option. Fixes #1228. --- nvm.sh | 15 +++++++++++++++ ...g \"nvm uninstall 0.12.6\" uninstalls v0.12.6" | 5 +++++ 2 files changed, 20 insertions(+) diff --git a/nvm.sh b/nvm.sh index 63a1be2..bd07619 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2041,16 +2041,31 @@ nvm_is_natural_num() { # Check version dir permissions nvm_check_file_permissions() { + local ZSH_HAS_NONOMATCH_UNSET + ZSH_HAS_NONOMATCH_UNSET=1 + if nvm_has "setopt"; then + ZSH_HAS_NONOMATCH_UNSET="$(set +e ; setopt | nvm_grep nonomatch > /dev/null ; nvm_echo $?)" + setopt nonomatch + fi for FILE in $1/* $1/.[!.]* $1/..?* ; do if [ -d "$FILE" ]; then if ! nvm_check_file_permissions "$FILE"; then + if [ "${ZSH_HAS_NONOMATCH_UNSET}" -eq 1 ] && nvm_has "setopt"; then + setopt nomatch + fi return 2 fi elif [ -e "$FILE" ] && [ ! -w "$FILE" ]; then nvm_err "file is not writable: $(nvm_sanitize_path "$FILE")" + if [ "${ZSH_HAS_NONOMATCH_UNSET}" -eq 1 ] && nvm_has "setopt"; then + setopt nomatch + fi return 1 fi done + if [ "${ZSH_HAS_NONOMATCH_UNSET}" -eq 1 ] && nvm_has "setopt"; then + setopt nomatch + fi return 0 } diff --git "a/test/slow/nvm uninstall/Running \"nvm uninstall 0.12.6\" uninstalls v0.12.6" "b/test/slow/nvm uninstall/Running \"nvm uninstall 0.12.6\" uninstalls v0.12.6" index 9af0171..67d054b 100755 --- "a/test/slow/nvm uninstall/Running \"nvm uninstall 0.12.6\" uninstalls v0.12.6" +++ "b/test/slow/nvm uninstall/Running \"nvm uninstall 0.12.6\" uninstalls v0.12.6" @@ -20,6 +20,11 @@ nvm ls | grep "$NVM_TEST_VERSION" || die "Failed to install node" # Switch to another version so we can uninstall nvm use 0.12.7 +# if zsh, set "nomatch" opt to reproduce failure from https://github.com/creationix/nvm/issues/1228 +if nvm_has "setopt"; then + setopt nomatch +fi + # Uninstall it nvm uninstall $NVM_TEST_VERSION From 33423679810673fbf2b2c848a357dd21322d9fc8 Mon Sep 17 00:00:00 2001 From: Atsushi Yamamoto Date: Sat, 8 Oct 2016 18:01:27 -0700 Subject: [PATCH 0854/1426] Fix indent at L2672 --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index bd07619..603edeb 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2669,7 +2669,7 @@ nvm() { if [ "_${VERSION:-N/A}" = '_N/A' ] && ! nvm_is_valid_version "$provided_version"; then provided_version='' if [ $has_checked_nvmrc -ne 1 ]; then - if [ -n "${NVM_SILENT-}" ]; then + if [ -n "${NVM_SILENT-}" ]; then nvm_rc_version >/dev/null 2>&1 && has_checked_nvmrc=1 else nvm_rc_version && has_checked_nvmrc=1 From 4b88613508b74ec941d3db3d4d28a85b36b8da6b Mon Sep 17 00:00:00 2001 From: Hiro Asari Date: Wed, 12 Oct 2016 13:58:24 -0400 Subject: [PATCH 0855/1426] Consolidate APT packages Consolidate APT packages definition into one place, so that the folding is displayed correctly. --- .travis.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3517c30..d8a3387 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,9 +7,8 @@ addons: packages: - gcc-4.8 - g++-4.8 - apt_packages: - - zsh - - ksh + - zsh + - ksh cache: directories: - $HOME/.stack From a338f98a5ad8808af14b73068c34bdb72f35a058 Mon Sep 17 00:00:00 2001 From: sunxiaobo Date: Thu, 13 Oct 2016 16:02:28 +0800 Subject: [PATCH 0856/1426] accerlate nvm invoke when change directory --- README.markdown | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/README.markdown b/README.markdown index a0841d1..f48e6a5 100644 --- a/README.markdown +++ b/README.markdown @@ -316,9 +316,16 @@ Put this into your `$HOME/.zshrc` to call `nvm use` automatically whenever you e # place this after nvm initialization! autoload -U add-zsh-hook load-nvmrc() { - if [[ -f .nvmrc && -r .nvmrc ]]; then - nvm use - elif [[ $(nvm version) != $(nvm version default) ]]; then + local node_version="$(nvm version)" + local nvmrc_path="$(nvm_find_nvmrc)" + + if [ -n "$nvmrc_path" ]; then + local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")") + + if [ "$nvmrc_node_version" != "N/A" ] && [ "$nvmrc_node_version" != "$node_version" ]; then + nvm use + fi + elif [ "$node_version" != "$(nvm version default)" ]; then echo "Reverting to nvm default version" nvm use default fi From 76fe1ab1c6d337a849c9be09dd09c7bf2bf8f47e Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 18 Oct 2016 11:33:07 -0700 Subject: [PATCH 0857/1426] [Fix] ensure that `lts/*` points to boron/latest, not argon/earliest. - update test mocks - fix tests for Boron release Fixes #1268. --- nvm.sh | 5 +- .../mocks/nodejs.org-dist-index.tab | 114 +++++++++--------- .../Unit tests/mocks/nvm ls-remote lts.txt | 4 +- .../Unit tests/mocks/nvm ls-remote node.txt | 8 +- test/fast/Unit tests/mocks/nvm ls-remote.txt | 8 +- .../mocks/nvm_ls_remote LTS argon.txt | 1 + .../Unit tests/mocks/nvm_ls_remote LTS.txt | 2 + .../Unit tests/mocks/nvm_ls_remote stable.txt | 2 +- test/fast/Unit tests/mocks/nvm_ls_remote.txt | 6 + .../mocks/nvm_make_alias LTS alias calls.txt | 5 +- ...nvm_print_implicit_alias remote stable.txt | 2 +- .../fast/Unit tests/nvm_ls_remote LTS aliases | 4 +- 12 files changed, 95 insertions(+), 66 deletions(-) diff --git a/nvm.sh b/nvm.sh index 603edeb..c6917f7 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1022,14 +1022,15 @@ nvm_ls_remote_index_tab() { if ($10 ~ /^\-?$/) { next } if ($10 && !a[tolower($10)]++) { if (alias) { print alias, version } - alias = "lts/" tolower($10) + alias_name = "lts/" tolower($10) + if (!alias) { print "lts/*", alias_name } + alias = alias_name version = $1 } } END { if (alias) { print alias, version - print "lts/*", alias } }' \ | while read -r LTS_ALIAS_LINE; do diff --git a/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab b/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab index ee5202f..d156d88 100644 --- a/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab +++ b/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab @@ -1,58 +1,63 @@ version date files npm v8 uv zlib openssl modules lts -v6.7.0 2016-09-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - -v6.6.0 2016-09-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - -v6.5.0 2016-08-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v6.4.0 2016-08-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - -v6.3.1 2016-07-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - -v6.3.0 2016-07-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.10.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v6.2.2 2016-06-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v6.2.1 2016-06-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v6.2.0 2016-05-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - -v6.1.0 2016-05-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - -v6.0.0 2016-04-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - -v5.12.0 2016-06-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.8.6 4.6.85.32 1.8.0 1.2.8 1.0.2h 47 - -v5.11.1 2016-05-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.0 2016-04-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.10.1 2016-04-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.10.0 2016-04-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.9.1 2016-03-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.7.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.9.0 2016-03-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.7.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.8.0 2016-03-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.7.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.7.1 2016-03-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.7.0 2016-02-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - -v5.6.0 2016-02-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - -v5.5.0 2016-01-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - -v5.4.1 2016-01-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - -v5.4.0 2016-01-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - -v5.3.0 2015-12-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - -v5.2.0 2015-12-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 - -v5.1.1 2015-12-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 - -v5.1.0 2015-11-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2d 47 - -v5.0.0 2015-10-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.6 4.6.85.28 1.7.5 1.2.8 1.0.2d 47 - -v4.6.0 2016-09-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.15.9 4.5.103.37 1.9.1 1.2.8 1.0.2j 46 Argon -v4.5.0 2016-08-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.15.9 4.5.103.37 1.9.1 1.2.8 1.0.2h 46 Argon -v4.4.7 2016-06-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.15.8 4.5.103.36 1.8.0 1.2.8 1.0.2h 46 Argon -v4.4.6 2016-06-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.15.5 4.5.103.36 1.8.0 1.2.8 1.0.2h 46 Argon -v4.4.5 2016-05-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.15.5 4.5.103.35 1.8.0 1.2.8 1.0.2h 46 Argon -v4.4.4 2016-05-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.15.1 4.5.103.35 1.8.0 1.2.8 1.0.2h 46 Argon -v4.4.3 2016-04-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.15.1 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon -v4.4.2 2016-04-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.15.0 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon -v4.4.1 2016-03-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.20 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon -v4.4.0 2016-03-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.20 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon -v4.3.2 2016-03-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon -v4.3.1 2016-02-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2f 46 Argon -v4.3.0 2016-02-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2f 46 Argon -v4.2.6 2016-01-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2e 46 Argon -v4.2.5 2016-01-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2e 46 Argon -v4.2.4 2015-12-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.12 4.5.103.35 1.7.5 1.2.8 1.0.2e 46 Argon -v4.2.3 2015-12-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2e 46 Argon -v4.2.2 2015-11-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 Argon -v4.2.1 2015-10-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 Argon -v4.2.0 2015-10-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 Argon -v4.1.2 2015-10-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.4 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 - -v4.1.1 2015-09-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.4 4.5.103.33 1.7.4 1.2.8 1.0.2d 46 - -v4.1.0 2015-09-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.3 4.5.103.33 1.7.4 1.2.8 1.0.2d 46 - -v4.0.0 2015-09-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.2 4.5.103.30 1.7.3 1.2.8 1.0.2d 46 - +v6.9.0 2016-10-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 Boron +v6.8.1 2016-10-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 - +v6.8.0 2016-10-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 - +v6.7.0 2016-09-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - +v6.6.0 2016-09-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - +v6.5.0 2016-08-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v6.4.0 2016-08-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - +v6.3.1 2016-07-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - +v6.3.0 2016-07-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v6.2.2 2016-06-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v6.2.1 2016-06-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v6.2.0 2016-05-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - +v6.1.0 2016-05-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - +v6.0.0 2016-04-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - +v5.12.0 2016-06-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.32 1.8.0 1.2.8 1.0.2h 47 - +v5.11.1 2016-05-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.0 2016-04-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.10.1 2016-04-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.10.0 2016-04-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.9.1 2016-03-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.7.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.9.0 2016-03-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.7.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.8.0 2016-03-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.7.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.7.1 2016-03-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.7.0 2016-02-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - +v5.6.0 2016-02-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - +v5.5.0 2016-01-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - +v5.4.1 2016-01-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - +v5.4.0 2016-01-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - +v5.3.0 2015-12-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - +v5.2.0 2015-12-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 - +v5.1.1 2015-12-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 - +v5.1.0 2015-11-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2d 47 - +v5.0.0 2015-10-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.6 4.6.85.28 1.7.5 1.2.8 1.0.2d 47 - +v4.6.1 2016-10-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.9 4.5.103.37 1.9.1 1.2.8 1.0.2j 46 Argon +v4.6.0 2016-09-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.9 4.5.103.37 1.9.1 1.2.8 1.0.2j 46 Argon +v4.5.0 2016-08-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.9 4.5.103.37 1.9.1 1.2.8 1.0.2h 46 Argon +v4.4.7 2016-06-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.8 4.5.103.36 1.8.0 1.2.8 1.0.2h 46 Argon +v4.4.6 2016-06-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.5 4.5.103.36 1.8.0 1.2.8 1.0.2h 46 Argon +v4.4.5 2016-05-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.5 4.5.103.35 1.8.0 1.2.8 1.0.2h 46 Argon +v4.4.4 2016-05-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.1 4.5.103.35 1.8.0 1.2.8 1.0.2h 46 Argon +v4.4.3 2016-04-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.1 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon +v4.4.2 2016-04-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.0 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon +v4.4.1 2016-03-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.20 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon +v4.4.0 2016-03-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.20 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon +v4.3.2 2016-03-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon +v4.3.1 2016-02-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2f 46 Argon +v4.3.0 2016-02-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2f 46 Argon +v4.2.6 2016-01-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2e 46 Argon +v4.2.5 2016-01-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2e 46 Argon +v4.2.4 2015-12-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.12 4.5.103.35 1.7.5 1.2.8 1.0.2e 46 Argon +v4.2.3 2015-12-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2e 46 Argon +v4.2.2 2015-11-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 Argon +v4.2.1 2015-10-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 Argon +v4.2.0 2015-10-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 Argon +v4.1.2 2015-10-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.4 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 - +v4.1.1 2015-09-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.4 4.5.103.33 1.7.4 1.2.8 1.0.2d 46 - +v4.1.0 2015-09-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.3 4.5.103.33 1.7.4 1.2.8 1.0.2d 46 - +v4.0.0 2015-09-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.2 4.5.103.30 1.7.3 1.2.8 1.0.2d 46 - +v0.12.17 2016-10-18 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.28.71.19 1.6.1 1.2.8 1.0.1u 14 - v0.12.16 2016-09-27 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.28.71.19 1.6.1 1.2.8 1.0.1u 14 - v0.12.15 2016-06-23 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.28.71.19 1.6.1 1.2.8 1.0.1t 14 - v0.12.14 2016-05-06 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.28.71.19 1.6.1 1.2.8 1.0.1t 14 - @@ -87,6 +92,7 @@ v0.11.3 2013-06-26 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,s v0.11.2 2013-05-13 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.21 3.19.0.0 0.11.2 1.2.3 1.0.1e 0x000C - v0.11.1 2013-04-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.18 3.18.0.0 0.11.1 1.2.3 1.0.1e 0x000C - v0.11.0 2013-03-28 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.15 3.17.13.0 0.10.3 1.2.3 1.0.1e 0x000C - +v0.10.48 2016-10-18 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.14.5.11 0.10.37 1.2.8 1.0.1u 11 - v0.10.47 2016-09-27 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.14.5.11 0.10.37 1.2.8 1.0.1u 11 - v0.10.46 2016-06-23 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.14.5.9 0.10.37 1.2.8 1.0.1t 11 - v0.10.45 2016-05-06 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.14.5.9 0.10.36 1.2.8 1.0.1t 11 - diff --git a/test/fast/Unit tests/mocks/nvm ls-remote lts.txt b/test/fast/Unit tests/mocks/nvm ls-remote lts.txt index 0db9675..0974b9c 100644 --- a/test/fast/Unit tests/mocks/nvm ls-remote lts.txt +++ b/test/fast/Unit tests/mocks/nvm ls-remote lts.txt @@ -17,4 +17,6 @@ v4.4.6  (LTS: Argon) v4.4.7  (LTS: Argon) v4.5.0  (LTS: Argon) - v4.6.0  (Latest LTS: Argon) + v4.6.0  (LTS: Argon) + v4.6.1  (Latest LTS: Argon) + v6.9.0  (Latest LTS: Boron) diff --git a/test/fast/Unit tests/mocks/nvm ls-remote node.txt b/test/fast/Unit tests/mocks/nvm ls-remote node.txt index 97e1548..89b0e04 100644 --- a/test/fast/Unit tests/mocks/nvm ls-remote node.txt +++ b/test/fast/Unit tests/mocks/nvm ls-remote node.txt @@ -198,6 +198,7 @@ v0.10.45 v0.10.46 v0.10.47 + v0.10.48 v0.11.0 v0.11.1 v0.11.2 @@ -232,6 +233,7 @@ v0.12.14 v0.12.15 v0.12.16 + v0.12.17 v4.0.0 v4.1.0 v4.1.1 @@ -255,7 +257,8 @@ v4.4.6  (LTS: Argon) v4.4.7  (LTS: Argon) v4.5.0  (LTS: Argon) - v4.6.0  (Latest LTS: Argon) + v4.6.0  (LTS: Argon) + v4.6.1  (Latest LTS: Argon) v5.0.0 v5.1.0 v5.1.1 @@ -286,3 +289,6 @@ v6.5.0 v6.6.0 v6.7.0 + v6.8.0 + v6.8.1 + v6.9.0  (Latest LTS: Boron) diff --git a/test/fast/Unit tests/mocks/nvm ls-remote.txt b/test/fast/Unit tests/mocks/nvm ls-remote.txt index c820bf6..a5572a1 100644 --- a/test/fast/Unit tests/mocks/nvm ls-remote.txt +++ b/test/fast/Unit tests/mocks/nvm ls-remote.txt @@ -198,6 +198,7 @@ v0.10.45 v0.10.46 v0.10.47 + v0.10.48 v0.11.0 v0.11.1 v0.11.2 @@ -232,6 +233,7 @@ v0.12.14 v0.12.15 v0.12.16 + v0.12.17 iojs-v1.0.0 iojs-v1.0.1 iojs-v1.0.2 @@ -296,7 +298,8 @@ v4.4.6  (LTS: Argon) v4.4.7  (LTS: Argon) v4.5.0  (LTS: Argon) - v4.6.0  (Latest LTS: Argon) + v4.6.0  (LTS: Argon) + v4.6.1  (Latest LTS: Argon) v5.0.0 v5.1.0 v5.1.1 @@ -327,3 +330,6 @@ v6.5.0 v6.6.0 v6.7.0 + v6.8.0 + v6.8.1 + v6.9.0  (Latest LTS: Boron) diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt b/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt index f524f07..9f225b2 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt @@ -18,3 +18,4 @@ v4.4.6 Argon v4.4.7 Argon v4.5.0 Argon v4.6.0 Argon +v4.6.1 Argon diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt b/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt index f524f07..c8a3e35 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt @@ -18,3 +18,5 @@ v4.4.6 Argon v4.4.7 Argon v4.5.0 Argon v4.6.0 Argon +v4.6.1 Argon +v6.9.0 Boron diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt b/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt index 3f3ac79..0dc8460 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt @@ -1 +1 @@ -v6.7.0 +v6.9.0 Boron diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote.txt b/test/fast/Unit tests/mocks/nvm_ls_remote.txt index ef3bbea..82651b0 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote.txt @@ -198,6 +198,7 @@ v0.10.44 v0.10.45 v0.10.46 v0.10.47 +v0.10.48 v0.11.0 v0.11.1 v0.11.2 @@ -232,6 +233,7 @@ v0.12.13 v0.12.14 v0.12.15 v0.12.16 +v0.12.17 v4.0.0 v4.1.0 v4.1.1 @@ -256,6 +258,7 @@ v4.4.6 Argon v4.4.7 Argon v4.5.0 Argon v4.6.0 Argon +v4.6.1 Argon v5.0.0 v5.1.0 v5.1.1 @@ -286,3 +289,6 @@ v6.4.0 v6.5.0 v6.6.0 v6.7.0 +v6.8.0 +v6.8.1 +v6.9.0 Boron diff --git a/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt b/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt index c347f89..e4b9f02 100644 --- a/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt +++ b/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt @@ -1,2 +1,3 @@ -lts/argon|v4.6.0 -lts/*|lts/argon +lts/*|lts/boron +lts/boron|v6.9.0 +lts/argon|v4.6.1 diff --git a/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt b/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt index 341291e..12e4141 100644 --- a/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt +++ b/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt @@ -1 +1 @@ -6.7 +6.9 diff --git a/test/fast/Unit tests/nvm_ls_remote LTS aliases b/test/fast/Unit tests/nvm_ls_remote LTS aliases index 1fdde96..9a577e6 100755 --- a/test/fast/Unit tests/nvm_ls_remote LTS aliases +++ b/test/fast/Unit tests/nvm_ls_remote LTS aliases @@ -1,7 +1,5 @@ #!/bin/sh -set -ex - die () { echo $@ ; cleanup ; exit 1; } TEST_PATH="$PWD/test_output" @@ -39,7 +37,7 @@ nvm_ls_remote >/dev/null || die "nvm_ls_remote_failed?!" CALL_COUNT="$(cat "$CALL_COUNT_PATH")" -EXPECTED_COUNT=2 +EXPECTED_COUNT=3 [ "$CALL_COUNT" = "$EXPECTED_COUNT" ] || die "nvm_make_alias called $CALL_COUNT times; expected $EXPECTED_COUNT" ARGS="$(cat "$ALIAS_ARGS_PATH")" From 589a9112bd0516befea756cc8e976fb1c4b031e9 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 18 Oct 2016 13:16:51 -0700 Subject: [PATCH 0858/1426] v0.32.1 --- README.markdown | 8 ++++---- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.markdown b/README.markdown index f48e6a5..c46c399 100644 --- a/README.markdown +++ b/README.markdown @@ -61,13 +61,13 @@ Note: Git versions before v1.7 may face a problem of cloning nvm source from Git To install or update nvm, you can use the [install script][2] using cURL: ```sh -curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash ``` or Wget: ```sh -wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash +wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash ``` The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). @@ -435,7 +435,7 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh ```sh apk add bash -wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | /bin/bash +wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | /bin/bash ``` The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. @@ -466,7 +466,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But If setting the `default` alias does not establish the node version in new shells (i.e. `nvm current` yields `system`), ensure that the system's node PATH is set before the `nvm.sh` source line in your shell profile (see [#658](https://github.com/creationix/nvm/issues/658)) [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.32.0/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.32.1/install.sh [3]: https://travis-ci.org/creationix/nvm [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index 9fae7af..676ba3d 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ nvm_install_dir() { } nvm_latest_version() { - echo "v0.32.0" + echo "v0.32.1" } # diff --git a/nvm.sh b/nvm.sh index c6917f7..c35d72e 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3070,7 +3070,7 @@ nvm() { NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; "--version" ) - nvm_echo '0.32.0' + nvm_echo '0.32.1' ;; "unload" ) unset -f nvm \ diff --git a/package.json b/package.json index b691676..e13c6cc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.32.0", + "version": "0.32.1", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From f3cddf8271a682e0e5b2e275ab22c0445d5651cb Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Fri, 28 Oct 2016 11:12:12 +0800 Subject: [PATCH 0859/1426] [Doc] Bold leading "Note:" in readme for readability --- README.markdown | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README.markdown b/README.markdown index c46c399..aeada0f 100644 --- a/README.markdown +++ b/README.markdown @@ -27,34 +27,34 @@ First you'll need to make sure your system has a c++ compiler. For OS X, Xcode will work, for Ubuntu, the `build-essential` and `libssl-dev` packages work. -Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/nvm/issues/284)). Two alternatives exist, which are neither supported nor developed by us: +**Note:** `nvm` does not support Windows (see [#284](https://github.com/creationix/nvm/issues/284)). Two alternatives exist, which are neither supported nor developed by us: - [nvm-windows](https://github.com/coreybutler/nvm-windows) - [nodist](https://github.com/marcelklehr/nodist) -Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creationix/nvm/issues/303)). Alternatives exist, which are neither supported nor developed by us: +**Note:** `nvm` does not support [Fish] either (see [#303](https://github.com/creationix/nvm/issues/303)). Alternatives exist, which are neither supported nor developed by us: - [bass](https://github.com/edc/bass) allows you to use utilities written for Bash in fish shell - [fast-nvm-fish](https://github.com/brigand/fast-nvm-fish) only works with version numbers (not aliases) but doesn't significantly slow your shell startup - [plugin-nvm](https://github.com/derekstavis/plugin-nvm) plugin for [Oh My Fish](https://github.com/oh-my-fish/oh-my-fish), which makes nvm and its completions available in fish shell -Note: We still have some problems with FreeBSD, because there is no official pre-built binary for FreeBSD, and building from source may need [patches](https://www.freshports.org/www/node/files/patch-deps_v8_src_base_platform_platform-posix.cc); see the issue ticket: +**Note:** We still have some problems with FreeBSD, because there is no official pre-built binary for FreeBSD, and building from source may need [patches](https://www.freshports.org/www/node/files/patch-deps_v8_src_base_platform_platform-posix.cc); see the issue ticket: - [[#900] [Bug] nodejs on FreeBSD need to be patched ](https://github.com/creationix/nvm/issues/900) - [nodejs/node#3716](https://github.com/nodejs/node/issues/3716) -Note: On OS X, if you do not have Xcode installed and you do not wish to download the ~4.3GB file, you can install the `Command Line Tools`. You can check out this blog post on how to just that: +**Note:** On OS X, if you do not have Xcode installed and you do not wish to download the ~4.3GB file, you can install the `Command Line Tools`. You can check out this blog post on how to just that: - [How to Install Command Line Tools in OS X Mavericks & Yosemite (Without Xcode)](http://osxdaily.com/2014/02/12/install-command-line-tools-mac-os-x/) -Note: On OS X, if you have/had a "system" node installed and want to install modules globally, keep in mind that: +**Note:** On OS X, if you have/had a "system" node installed and want to install modules globally, keep in mind that: - When using nvm you do not need `sudo` to globally install a module with `npm -g`, so instead of doing `sudo npm install -g grunt`, do instead `npm install -g grunt` - If you have an `~/.npmrc` file, make sure it does not contain any `prefix` settings (which is not compatible with nvm) - You can (but should not?) keep your previous "system" node install, but nvm will only be available to your user account (the one used to install nvm). This might cause version mismatches, as other users will be using `/usr/local/lib/node_modules/*` VS your user account using `~/.nvm/versions/node/vX.X.X/lib/node_modules/*` Homebrew installation is not supported. If you have issues with homebrew-installed `nvm`, please `brew uninstall` it, and install it using the instructions below, before filing an issue. -Note: If you're using `zsh` you can easily install `nvm` as a zsh plugin. Install [`zsh-nvm`](https://github.com/lukechilds/zsh-nvm) and run `nvm upgrade` to upgrade. +**Note:** If you're using `zsh` you can easily install `nvm` as a zsh plugin. Install [`zsh-nvm`](https://github.com/lukechilds/zsh-nvm) and run `nvm upgrade` to upgrade. -Note: Git versions before v1.7 may face a problem of cloning nvm source from GitHub via https protocol, and there is also different behavior of git before v1.6, so the minimum required git version is v1.7.0 and we recommend v1.7.9.5 as it's the default version of the wildly used Ubuntu 12.04 LTS. If you are interested in the problem we mentioned here, please refer to GitHub's [HTTPS cloning errors](https://help.github.com/articles/https-cloning-errors/) article. +**Note:** Git versions before v1.7 may face a problem of cloning nvm source from GitHub via https protocol, and there is also different behavior of git before v1.6, so the minimum required git version is v1.7.0 and we recommend v1.7.9.5 as it's the default version of the wildly used Ubuntu 12.04 LTS. If you are interested in the problem we mentioned here, please refer to GitHub's [HTTPS cloning errors](https://help.github.com/articles/https-cloning-errors/) article. ### Install script @@ -82,7 +82,7 @@ Eg: `curl ... | NVM_DIR=/usr/local/nvm bash` for a global install. *NB. The installer can use `git`, `curl`, or `wget` to download `nvm`, whatever is available.* -Note: On OS X, if you get `nvm: command not found` after running the install script, your system may not have a [.bash_profile file] where the command is set up. Simply create one with `touch ~/.bash_profile` and run the install script again. +**Note:** On OS X, if you get `nvm: command not found` after running the install script, your system may not have a [.bash_profile file] where the command is set up. Simply create one with `touch ~/.bash_profile` and run the install script again. If the above doesn't fix the problem, open your `.bash_profile` and add the following line of code: From ce7f6d6e5287fade16c41c7a18dd3a2043928efe Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Fri, 28 Oct 2016 09:08:54 +0800 Subject: [PATCH 0860/1426] Also run git gc after nvm upgraded --- install.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/install.sh b/install.sh index 676ba3d..253354b 100755 --- a/install.sh +++ b/install.sh @@ -74,6 +74,10 @@ install_nvm_from_git() { echo >&2 "Failed to update nvm, run 'git fetch' in $INSTALL_DIR yourself." exit 1 } + echo "=> Compressing and cleaning up git repository" + if ! command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" gc --aggressive --prune=now ; then + echo >&2 "Your version of git is out of date. Please update it!" + fi else # Cloning to $INSTALL_DIR echo "=> Downloading nvm from git to '$INSTALL_DIR'" From a458ccbb873c59048ee122c89f27e07af0bd5225 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Fri, 28 Oct 2016 11:23:37 +0800 Subject: [PATCH 0861/1426] Retab tab to 4 spaces and use echo instead of cat in install.sh --- install.sh | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/install.sh b/install.sh index 253354b..09a019b 100755 --- a/install.sh +++ b/install.sh @@ -244,23 +244,24 @@ nvm_check_global_modules() { )" if [ "${MODULE_COUNT}" != '0' ]; then - cat <<-'END_MESSAGE' - => You currently have modules installed globally with `npm`. These will no - => longer be linked to the active version of Node when you install a new node - => with `nvm`; and they may (depending on how you construct your `$PATH`) - => override the binaries of modules installed with `nvm`: + # shellcheck disable=SC2016 + echo '=> You currently have modules installed globally with `npm`. These will no' + # shellcheck disable=SC2016 + echo '=> longer be linked to the active version of Node when you install a new node' + # shellcheck disable=SC2016 + echo '=> with `nvm`; and they may (depending on how you construct your `$PATH`)' + # shellcheck disable=SC2016 + echo '=> override the binaries of modules installed with `nvm`:' + echo - END_MESSAGE command printf %s\\n "$NPM_GLOBAL_MODULES" - cat <<-'END_MESSAGE' - - => If you wish to uninstall them at a later point (or re-install them under your - => `nvm` Nodes), you can remove them from the system Node as follows: - - $ nvm use system - $ npm uninstall -g a_module - - END_MESSAGE + echo '=> If you wish to uninstall them at a later point (or re-install them under your' + # shellcheck disable=SC2016 + echo '=> `nvm` Nodes), you can remove them from the system Node as follows:' + echo + echo ' $ nvm use system' + echo ' $ npm uninstall -g a_module' + echo fi } From 942e9ab1f5da1bb94622412e1a45587674b4f273 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 3 Nov 2016 10:08:24 -0700 Subject: [PATCH 0862/1426] [Fix] bypass aliased `cd` in a few places. Fixes #1284. --- nvm.sh | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index c35d72e..3cb60ad 100644 --- a/nvm.sh +++ b/nvm.sh @@ -22,6 +22,11 @@ nvm_echo() { } } +nvm_cd() { + # shellcheck disable=SC1001,SC2164 + \cd "$@" +} + nvm_err() { >&2 nvm_echo "$@" } @@ -115,7 +120,7 @@ if [ -z "${NVM_DIR-}" ]; then NVM_SCRIPT_SOURCE="${BASH_SOURCE[0]}" fi # shellcheck disable=SC1001 - NVM_DIR="$(cd ${NVM_CD_FLAGS} "$(dirname "${NVM_SCRIPT_SOURCE:-$0}")" > /dev/null && \pwd)" + NVM_DIR="$(nvm_cd ${NVM_CD_FLAGS} "$(dirname "${NVM_SCRIPT_SOURCE:-$0}")" > /dev/null && \pwd)" export NVM_DIR fi unset NVM_SCRIPT_SOURCE 2> /dev/null @@ -1845,7 +1850,7 @@ nvm_install_source() { command mkdir -p "${TMPDIR}" && \ command tar -x${tar_compression_flag}f "${TARBALL}" -C "${TMPDIR}" --strip-components 1 && \ VERSION_PATH="$(nvm_version_path "${PREFIXED_VERSION}")" && \ - cd "${TMPDIR}" && \ + nvm_cd "${TMPDIR}" && \ ./configure --prefix="${VERSION_PATH}" $ADDITIONAL_PARAMETERS && \ $make -j "${NVM_MAKE_JOBS}" ${MAKE_CXX-} && \ command rm -f "${VERSION_PATH}" 2>/dev/null && \ @@ -3022,7 +3027,7 @@ nvm() { for LINK in $LINKS; do set +f; unset IFS # restore variable expansion if [ -n "$LINK" ]; then - (cd "$LINK" && npm link) + (nvm_cd "$LINK" && npm link) fi done set +f; unset IFS # restore variable expansion in case $LINKS was empty From 2a2b8bdeb3fb7c8c219148e181246ac9c1f593a4 Mon Sep 17 00:00:00 2001 From: Qiangjun Ran Date: Tue, 1 Nov 2016 21:20:50 +0800 Subject: [PATCH 0863/1426] [Robustness] use backslash when sourcing in case of overridden dot Fixes #1278. --- README.markdown | 4 ++-- install.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.markdown b/README.markdown index aeada0f..6dbe30f 100644 --- a/README.markdown +++ b/README.markdown @@ -74,7 +74,7 @@ wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | ```sh export NVM_DIR="$HOME/.nvm" -[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm +[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm ``` You can customize the install source, directory, profile, and version using the `NVM_SOURCE`, `NVM_DIR`, `PROFILE`, and `NODE_VERSION` variables. @@ -124,7 +124,7 @@ Add these lines to your `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it ```sh export NVM_DIR="$HOME/.nvm" -[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm +[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm ``` ### Manual upgrade diff --git a/install.sh b/install.sh index 09a019b..819f9b8 100755 --- a/install.sh +++ b/install.sh @@ -297,7 +297,7 @@ nvm_do_install() { local INSTALL_DIR INSTALL_DIR="$(nvm_install_dir)" - SOURCE_STR="\nexport NVM_DIR=\"$INSTALL_DIR\"\n[ -s \"\$NVM_DIR/nvm.sh\" ] && . \"\$NVM_DIR/nvm.sh\" # This loads nvm\n" + SOURCE_STR="\nexport NVM_DIR=\"$INSTALL_DIR\"\n[ -s \"\$NVM_DIR/nvm.sh\" ] && \\. \"\$NVM_DIR/nvm.sh\" # This loads nvm\n" if [ -z "${NVM_PROFILE-}" ] ; then echo "=> Profile not found. Tried ${NVM_PROFILE} (as defined in \$PROFILE), ~/.bashrc, ~/.bash_profile, ~/.zshrc, and ~/.profile." From cadbbced20750161ac3e762d617c0c8bd49e5167 Mon Sep 17 00:00:00 2001 From: Qiangjun Ran Date: Fri, 4 Nov 2016 13:15:18 +0800 Subject: [PATCH 0864/1426] [Tests] Replace all dots with backslash dots --- nvm-exec | 2 +- .../\"nvm alias\" should not accept aliases with slashes" | 2 +- .../\"nvm unalias\" should not accept aliases with slashes" | 2 +- ...ias \" again should change the target" | 4 ++-- ...ning \"nvm alias \" should list but one alias." | 2 +- ...nvm alias\" lists implicit aliases when they do not exist" | 4 ++-- ...s manual aliases instead of implicit aliases when present" | 4 ++-- .../Aliases/Running \"nvm alias\" should list all aliases." | 4 ++-- test/fast/Aliases/circular/nvm_resolve_alias | 4 ++-- test/fast/Aliases/circular/nvm_resolve_local_alias | 4 ++-- .../lts/\"nvm alias\" should ensure LTS alias dir exists" | 4 ++-- test/fast/Aliases/lts/setup_dir | 2 +- test/fast/Aliases/lts/teardown_dir | 2 +- test/fast/Aliases/nvm_ensure_default_set | 4 ++-- test/fast/Aliases/nvm_resolve_alias | 2 +- test/fast/Aliases/nvm_resolve_local_alias | 2 +- ...ng \"nvm which 0.0.2\" should display only version 0.0.2." | 2 +- ...ch foo\" should return a nonzero exit code when not found" | 2 +- ...nning \"nvm ls 0.0.2\" should display only version 0.0.2." | 2 +- ...unning \"nvm ls 0.2\" should display only 0.2.x versions." | 2 +- ...ls foo\" should return a nonzero exit code when not found" | 2 +- .../Listing versions/Running \"nvm ls io\" should return NA" | 2 +- ... node_\" should return a nonzero exit code when not found" | 2 +- ...s unstable\" should return the appropriate implicit alias" | 2 +- ...vm ls system\" should include \"system\" when appropriate" | 2 +- ...Running \"nvm ls\" should display all installed versions." | 2 +- .../Running \"nvm ls\" should filter out \".nvm\"" | 2 +- .../Running \"nvm ls\" should filter out \"versions\"" | 2 +- ...ing \"nvm ls\" should include \"system\" when appropriate" | 2 +- ...m ls\" should list versions in the \"versions\" directory" | 2 +- ...like versioning vx.x.x should only list a matched version" | 2 +- ..."nvm alias\" should create a file in the alias directory." | 2 +- ...g \"nvm current\" should display current nvm environment." | 2 +- ... deactivate\" should unset the nvm environment variables." | 2 +- ...th \"--reinstall-packages-from\" requires a valid version" | 2 +- ...ning \"nvm install\" with an invalid version fails nicely" | 2 +- .../Running \"nvm unalias\" should remove the alias file." | 2 +- ...g \"nvm unload\" should unset all function and variables." | 2 +- .../Running \"nvm use foo\" where \"foo\" is circular aborts" | 2 +- .../fast/Running \"nvm use iojs\" uses latest io.js version" | 4 ++-- .../fast/Running \"nvm use system\" should work as expected" | 2 +- ... use x\" should create and change the \"current\" symlink" | 2 +- ... the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" | 2 +- .../Sourcing nvm.sh should make the nvm command available. | 2 +- .../Sourcing nvm.sh should not modify parameters of caller | 2 +- test/fast/Unit tests/iojs_version_has_solaris_binary | 4 ++-- test/fast/Unit tests/node_version_has_solaris_binary | 4 ++-- test/fast/Unit tests/nvm ls-remote | 4 ++-- test/fast/Unit tests/nvm version-remote | 4 ++-- test/fast/Unit tests/nvm_add_iojs_prefix | 2 +- test/fast/Unit tests/nvm_alias | 2 +- test/fast/Unit tests/nvm_alias_path | 2 +- test/fast/Unit tests/nvm_checksum | 2 +- test/fast/Unit tests/nvm_compare_checksum | 2 +- test/fast/Unit tests/nvm_compute_checksum | 2 +- test/fast/Unit tests/nvm_die_on_prefix | 2 +- test/fast/Unit tests/nvm_ensure_default_set | 4 ++-- test/fast/Unit tests/nvm_ensure_version_installed | 2 +- test/fast/Unit tests/nvm_ensure_version_prefix | 2 +- test/fast/Unit tests/nvm_find_up | 2 +- test/fast/Unit tests/nvm_format_version | 2 +- test/fast/Unit tests/nvm_get_arch | 2 +- test/fast/Unit tests/nvm_get_checksum | 2 +- test/fast/Unit tests/nvm_get_checksum_alg | 2 +- test/fast/Unit tests/nvm_get_latest missing curl or wget | 2 +- test/fast/Unit tests/nvm_get_minor_version | 2 +- test/fast/Unit tests/nvm_get_mirror | 2 +- test/fast/Unit tests/nvm_has | 2 +- test/fast/Unit tests/nvm_has_solaris_binary | 4 ++-- test/fast/Unit tests/nvm_has_system_iojs | 2 +- test/fast/Unit tests/nvm_has_system_node | 2 +- test/fast/Unit tests/nvm_iojs_prefix | 2 +- test/fast/Unit tests/nvm_is_alias | 2 +- test/fast/Unit tests/nvm_is_iojs_version | 2 +- test/fast/Unit tests/nvm_is_merged_node_version | 2 +- test/fast/Unit tests/nvm_is_natural_num | 2 +- test/fast/Unit tests/nvm_is_valid_version | 2 +- test/fast/Unit tests/nvm_ls_current | 2 +- test/fast/Unit tests/nvm_ls_remote | 2 +- test/fast/Unit tests/nvm_ls_remote LTS aliases | 2 +- test/fast/Unit tests/nvm_ls_remote_iojs | 2 +- test/fast/Unit tests/nvm_make_alias | 2 +- test/fast/Unit tests/nvm_node_prefix | 2 +- test/fast/Unit tests/nvm_num_version_groups | 2 +- test/fast/Unit tests/nvm_prepend_path | 2 +- test/fast/Unit tests/nvm_print_alias_path | 4 ++-- test/fast/Unit tests/nvm_print_default_alias | 4 ++-- test/fast/Unit tests/nvm_print_implicit_alias errors | 2 +- test/fast/Unit tests/nvm_print_implicit_alias success | 2 +- test/fast/Unit tests/nvm_print_npm_version | 2 +- test/fast/Unit tests/nvm_remote_version | 2 +- test/fast/Unit tests/nvm_remote_versions | 2 +- test/fast/Unit tests/nvm_strip_iojs_prefix | 2 +- test/fast/Unit tests/nvm_strip_path | 2 +- test/fast/Unit tests/nvm_supports_xz | 2 +- test/fast/Unit tests/nvm_tree_contains_path | 2 +- test/fast/Unit tests/nvm_validate_implicit_alias | 2 +- test/fast/Unit tests/nvm_version | 2 +- test/fast/Unit tests/nvm_version_dir | 2 +- test/fast/Unit tests/nvm_version_greater | 2 +- test/fast/Unit tests/nvm_version_path | 2 +- test/install_script/nvm_check_global_modules | 2 +- test/install_script/nvm_detect_profile | 2 +- test/install_script/nvm_do_install | 2 +- test/install_script/nvm_install_dir | 2 +- test/install_script/nvm_reset | 2 +- test/install_script/nvm_source | 2 +- test/installation_iojs/install already installed uses it | 2 +- test/installation_iojs/install from binary | 2 +- test/installation_iojs/install from source | 4 ++-- .../install two versions and use the latest one | 2 +- .../install version specified in .nvmrc from binary | 2 +- .../install version specified in .nvmrc from source | 2 +- test/installation_iojs/install while reinstalling packages | 2 +- test/installation_iojs/nvm install v1 works | 2 +- test/installation_iojs/teardown_dir | 2 +- test/installation_node/install LTS | 2 +- test/installation_node/install already installed uses it | 2 +- test/installation_node/install from binary | 2 +- test/installation_node/install from source | 2 +- test/installation_node/install from source implicitly | 2 +- .../install from source with thread parameter | 2 +- .../install from source without V8 snapshot for ARM | 2 +- .../install two versions and use the latest one | 2 +- .../install version specified in .nvmrc from binary | 2 +- .../install version specified in .nvmrc from source | 2 +- test/installation_node/install while reinstalling packages | 2 +- test/installation_node/teardown_dir | 2 +- ...g \"nvm current\" should display current nvm environment." | 2 +- test/slow/node 0.6.21 should install 0.6.21-pre | 2 +- .../nvm exec/Preamble works and respects \"silent\" flag" | 2 +- "test/slow/nvm exec/Running \"nvm exec --lts\" should work" | 2 +- "test/slow/nvm exec/Running \"nvm exec 0.x\" should work" | 2 +- .../Running \"nvm exec\" should pick up .nvmrc version" | 2 +- test/slow/nvm exec/setup_dir | 2 +- test/slow/nvm exec/teardown_dir | 2 +- ... \"nvm copy-packages $(nvm ls current)\" should error out" | 2 +- test/slow/nvm reinstall-packages/setup_dir | 2 +- test/slow/nvm reinstall-packages/should work as expected | 2 +- test/slow/nvm reinstall-packages/teardown_dir | 2 +- .../Running \"nvm run --harmony --version\" should work" | 2 +- "test/slow/nvm run/Running \"nvm run --lts\" should work" | 2 +- ...0.x\" should error out sensibly when 0.x is not installed" | 2 +- "test/slow/nvm run/Running \"nvm run 0.x\" should work" | 2 +- .../Running \"nvm run\" should pick up .nvmrc version" | 2 +- test/slow/nvm run/setup_dir | 2 +- test/slow/nvm run/teardown_dir | 2 +- .../Running \"nvm uninstall 0.12.6\" uninstalls v0.12.6" | 2 +- ... uninstall\" with incorrect file permissions fails nicely" | 2 +- test/slow/nvm uninstall/setup_dir | 2 +- test/slow/nvm uninstall/teardown_dir | 2 +- .../Running \"nvm use --lts\" uses latest LTS version" | 2 +- ...ing \"nvm use --lts=foo\" uses latest \"foo\" LTS version" | 2 +- .../Running \"nvm use iojs\" uses latest io.js version" | 2 +- .../Running \"nvm use node\" uses latest stable node version" | 2 +- .../Running \"nvm use v1.0.0\" uses iojs-v1.0.0 iojs version" | 2 +- .../nvm use/Running \"nvm use\" calls \"nvm_die_on_prefix\"" | 2 +- test/slow/nvm use/setup_dir | 2 +- test/slow/nvm use/teardown_dir | 2 +- test/slow/nvm_get_latest/nvm_get_latest | 2 +- test/slow/nvm_get_latest/nvm_get_latest failed redirect | 2 +- .../Sourcing nvm.sh should use the default if available | 4 ++-- ...ourcing nvm.sh with --install and .nvmrc should install it | 2 +- .../Sourcing nvm.sh with --install should install the default | 4 ++-- .../Sourcing nvm.sh with --no-use should not use anything | 4 ++-- test/sourcing/Sourcing nvm.sh with no default should return 0 | 2 +- test/sourcing/setup | 2 +- 167 files changed, 188 insertions(+), 188 deletions(-) diff --git a/nvm-exec b/nvm-exec index 0d28870..55ea0c1 100755 --- a/nvm-exec +++ b/nvm-exec @@ -2,7 +2,7 @@ DIR="$(command cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -. "$DIR/nvm.sh" --no-use +\. "$DIR/nvm.sh" --no-use if [ -n "$NODE_VERSION" ]; then nvm use $NODE_VERSION > /dev/null || exit 127 diff --git "a/test/fast/Aliases/\"nvm alias\" should not accept aliases with slashes" "b/test/fast/Aliases/\"nvm alias\" should not accept aliases with slashes" index f5b1d0f..0c2869e 100755 --- "a/test/fast/Aliases/\"nvm alias\" should not accept aliases with slashes" +++ "b/test/fast/Aliases/\"nvm alias\" should not accept aliases with slashes" @@ -1,6 +1,6 @@ #!/bin/sh -. ../../../nvm.sh +\. ../../../nvm.sh die () { echo $@ ; exit 1; } diff --git "a/test/fast/Aliases/\"nvm unalias\" should not accept aliases with slashes" "b/test/fast/Aliases/\"nvm unalias\" should not accept aliases with slashes" index ff0a304..ac399de 100755 --- "a/test/fast/Aliases/\"nvm unalias\" should not accept aliases with slashes" +++ "b/test/fast/Aliases/\"nvm unalias\" should not accept aliases with slashes" @@ -1,6 +1,6 @@ #!/bin/sh -. ../../../nvm.sh +\. ../../../nvm.sh die () { echo $@ ; exit 1; } diff --git "a/test/fast/Aliases/Running \"nvm alias \" again should change the target" "b/test/fast/Aliases/Running \"nvm alias \" again should change the target" index 8c8bb68..bd57bc6 100755 --- "a/test/fast/Aliases/Running \"nvm alias \" again should change the target" +++ "b/test/fast/Aliases/Running \"nvm alias \" again should change the target" @@ -1,7 +1,7 @@ #!/bin/sh -. ../../../nvm.sh -. ../../common.sh +\. ../../../nvm.sh +\. ../../common.sh die () { echo $@ ; exit 1; } diff --git "a/test/fast/Aliases/Running \"nvm alias \" should list but one alias." "b/test/fast/Aliases/Running \"nvm alias \" should list but one alias." index b22df2e..7ba4c38 100755 --- "a/test/fast/Aliases/Running \"nvm alias \" should list but one alias." +++ "b/test/fast/Aliases/Running \"nvm alias \" should list but one alias." @@ -1,4 +1,4 @@ #!/bin/sh -. ../../../nvm.sh +\. ../../../nvm.sh [ $(nvm alias test-stable-1 | wc -l) = '2' ] diff --git "a/test/fast/Aliases/Running \"nvm alias\" lists implicit aliases when they do not exist" "b/test/fast/Aliases/Running \"nvm alias\" lists implicit aliases when they do not exist" index 2c27ad1..1df6638 100755 --- "a/test/fast/Aliases/Running \"nvm alias\" lists implicit aliases when they do not exist" +++ "b/test/fast/Aliases/Running \"nvm alias\" lists implicit aliases when they do not exist" @@ -1,7 +1,7 @@ #!/bin/sh -. ../../../nvm.sh -. ../../common.sh +\. ../../../nvm.sh +\. ../../common.sh die () { echo $@ ; exit 1; } diff --git "a/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" "b/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" index 050baf6..e6babc6 100755 --- "a/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" +++ "b/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" @@ -1,7 +1,7 @@ #!/bin/sh -. ../../../nvm.sh -. ../../common.sh +\. ../../../nvm.sh +\. ../../common.sh die () { echo $@ ; cleanup ; exit 1; } cleanup () { diff --git "a/test/fast/Aliases/Running \"nvm alias\" should list all aliases." "b/test/fast/Aliases/Running \"nvm alias\" should list all aliases." index 1135388..5223e09 100755 --- "a/test/fast/Aliases/Running \"nvm alias\" should list all aliases." +++ "b/test/fast/Aliases/Running \"nvm alias\" should list all aliases." @@ -1,7 +1,7 @@ #!/bin/sh -. ../../../nvm.sh -. ../../common.sh +\. ../../../nvm.sh +\. ../../common.sh die () { echo $@ ; exit 1; } diff --git a/test/fast/Aliases/circular/nvm_resolve_alias b/test/fast/Aliases/circular/nvm_resolve_alias index e481826..af351a5 100755 --- a/test/fast/Aliases/circular/nvm_resolve_alias +++ b/test/fast/Aliases/circular/nvm_resolve_alias @@ -1,9 +1,9 @@ #!/bin/sh -. ../../../common.sh +\. ../../../common.sh die () { echo $@ ; exit 1; } -. ../../../../nvm.sh +\. ../../../../nvm.sh ALIAS="$(nvm_resolve_alias loopback | strip_colors)" [ "_$ALIAS" = "_∞" ] || die "nvm_resolve_alias loopback was not ∞; got $ALIAS" diff --git a/test/fast/Aliases/circular/nvm_resolve_local_alias b/test/fast/Aliases/circular/nvm_resolve_local_alias index dace4d0..631acda 100755 --- a/test/fast/Aliases/circular/nvm_resolve_local_alias +++ b/test/fast/Aliases/circular/nvm_resolve_local_alias @@ -1,9 +1,9 @@ #!/bin/sh -. ../../../common.sh +\. ../../../common.sh die () { echo $@ ; exit 1; } -. ../../../../nvm.sh +\. ../../../../nvm.sh ALIAS="$(nvm_resolve_local_alias loopback | strip_colors)" [ "_$ALIAS" = "_∞" ] || die "nvm_resolve_local_alias loopback was not ∞; got $ALIAS" diff --git "a/test/fast/Aliases/lts/\"nvm alias\" should ensure LTS alias dir exists" "b/test/fast/Aliases/lts/\"nvm alias\" should ensure LTS alias dir exists" index eefcf98..0a1d909 100755 --- "a/test/fast/Aliases/lts/\"nvm alias\" should ensure LTS alias dir exists" +++ "b/test/fast/Aliases/lts/\"nvm alias\" should ensure LTS alias dir exists" @@ -2,8 +2,8 @@ set -ex -. ../../../../nvm.sh -. ../../../common.sh +\. ../../../../nvm.sh +\. ../../../common.sh LTS_ALIAS_PATH="$(nvm_alias_path)/lts" diff --git a/test/fast/Aliases/lts/setup_dir b/test/fast/Aliases/lts/setup_dir index 6a99acf..4aeb067 100755 --- a/test/fast/Aliases/lts/setup_dir +++ b/test/fast/Aliases/lts/setup_dir @@ -1,6 +1,6 @@ #!/bin/sh -. ../../../../nvm.sh +\. ../../../../nvm.sh LTS_ALIAS_PATH="$(nvm_alias_path)/lts" diff --git a/test/fast/Aliases/lts/teardown_dir b/test/fast/Aliases/lts/teardown_dir index a5200ef..18863f4 100755 --- a/test/fast/Aliases/lts/teardown_dir +++ b/test/fast/Aliases/lts/teardown_dir @@ -1,6 +1,6 @@ #!/bin/sh -. ../../../../nvm.sh +\. ../../../../nvm.sh LTS_ALIAS_PATH="$(nvm_alias_path)/lts" diff --git a/test/fast/Aliases/nvm_ensure_default_set b/test/fast/Aliases/nvm_ensure_default_set index 602ceba..34f08a3 100755 --- a/test/fast/Aliases/nvm_ensure_default_set +++ b/test/fast/Aliases/nvm_ensure_default_set @@ -1,10 +1,10 @@ #!/bin/sh -. ../../common.sh +\. ../../common.sh die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh nvm alias default 0.1 >/dev/null || die "'nvm alias default 0.1' failed" diff --git a/test/fast/Aliases/nvm_resolve_alias b/test/fast/Aliases/nvm_resolve_alias index f367eb3..837f0a2 100755 --- a/test/fast/Aliases/nvm_resolve_alias +++ b/test/fast/Aliases/nvm_resolve_alias @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh EXIT_CODE=$(nvm_resolve_alias ; echo $?) [ $EXIT_CODE = "1" ] || die "nvm_resolve_alias without an argument did not return 1; got $EXIT_CODE" diff --git a/test/fast/Aliases/nvm_resolve_local_alias b/test/fast/Aliases/nvm_resolve_local_alias index 384fece..f0d40bd 100755 --- a/test/fast/Aliases/nvm_resolve_local_alias +++ b/test/fast/Aliases/nvm_resolve_local_alias @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh EXIT_CODE=$(nvm_resolve_local_alias ; echo $?) [ "_$EXIT_CODE" = "_1" ] || die "nvm_resolve_local_alias without an argument did not return 1; got $EXIT_CODE" diff --git "a/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." "b/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." index 3ead43e..05e8f25 100755 --- "a/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." +++ "b/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." @@ -1,6 +1,6 @@ #!/bin/sh -. ../../../nvm.sh +\. ../../../nvm.sh mkdir -p "${NVM_DIR}/v0.0.2" mkdir -p "${NVM_DIR}/v0.0.20" diff --git "a/test/fast/Listing paths/Running \"nvm which foo\" should return a nonzero exit code when not found" "b/test/fast/Listing paths/Running \"nvm which foo\" should return a nonzero exit code when not found" index 0c1e30b..c0218a0 100755 --- "a/test/fast/Listing paths/Running \"nvm which foo\" should return a nonzero exit code when not found" +++ "b/test/fast/Listing paths/Running \"nvm which foo\" should return a nonzero exit code when not found" @@ -1,6 +1,6 @@ #!/bin/sh -. ../../../nvm.sh +\. ../../../nvm.sh nvm which nonexistent_version [ "_$?" = "_1" ] diff --git "a/test/fast/Listing versions/Running \"nvm ls 0.0.2\" should display only version 0.0.2." "b/test/fast/Listing versions/Running \"nvm ls 0.0.2\" should display only version 0.0.2." index 92c59bc..fc73888 100755 --- "a/test/fast/Listing versions/Running \"nvm ls 0.0.2\" should display only version 0.0.2." +++ "b/test/fast/Listing versions/Running \"nvm ls 0.0.2\" should display only version 0.0.2." @@ -1,6 +1,6 @@ #!/bin/sh -. ../../../nvm.sh +\. ../../../nvm.sh mkdir "${NVM_DIR}/v0.0.2" mkdir "${NVM_DIR}/v0.0.20" diff --git "a/test/fast/Listing versions/Running \"nvm ls 0.2\" should display only 0.2.x versions." "b/test/fast/Listing versions/Running \"nvm ls 0.2\" should display only 0.2.x versions." index 8a6630d..0d06a24 100755 --- "a/test/fast/Listing versions/Running \"nvm ls 0.2\" should display only 0.2.x versions." +++ "b/test/fast/Listing versions/Running \"nvm ls 0.2\" should display only 0.2.x versions." @@ -1,6 +1,6 @@ #!/bin/sh -. ../../../nvm.sh +\. ../../../nvm.sh mkdir "${NVM_DIR}/v0.1.3" mkdir "${NVM_DIR}/v0.2.3" diff --git "a/test/fast/Listing versions/Running \"nvm ls foo\" should return a nonzero exit code when not found" "b/test/fast/Listing versions/Running \"nvm ls foo\" should return a nonzero exit code when not found" index 19e0f96..74a97b4 100755 --- "a/test/fast/Listing versions/Running \"nvm ls foo\" should return a nonzero exit code when not found" +++ "b/test/fast/Listing versions/Running \"nvm ls foo\" should return a nonzero exit code when not found" @@ -1,6 +1,6 @@ #!/bin/sh -. ../../../nvm.sh +\. ../../../nvm.sh nvm ls nonexistent_version [ "$?" = "3" ] diff --git "a/test/fast/Listing versions/Running \"nvm ls io\" should return NA" "b/test/fast/Listing versions/Running \"nvm ls io\" should return NA" index 2c61b66..79dccfe 100755 --- "a/test/fast/Listing versions/Running \"nvm ls io\" should return NA" +++ "b/test/fast/Listing versions/Running \"nvm ls io\" should return NA" @@ -1,6 +1,6 @@ #!/bin/sh -. ../../../nvm.sh +\. ../../../nvm.sh nvm ls io [ "$?" = "3" ] diff --git "a/test/fast/Listing versions/Running \"nvm ls node_\" should return a nonzero exit code when not found" "b/test/fast/Listing versions/Running \"nvm ls node_\" should return a nonzero exit code when not found" index b4ad7a2..af79302 100755 --- "a/test/fast/Listing versions/Running \"nvm ls node_\" should return a nonzero exit code when not found" +++ "b/test/fast/Listing versions/Running \"nvm ls node_\" should return a nonzero exit code when not found" @@ -1,6 +1,6 @@ #!/bin/sh -. ../../../nvm.sh +\. ../../../nvm.sh nvm ls node_ [ "$?" = "3" ] diff --git "a/test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" "b/test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" index 195f197..c634799 100755 --- "a/test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" +++ "b/test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" @@ -1,6 +1,6 @@ #!/bin/sh -. ../../../nvm.sh +\. ../../../nvm.sh die () { echo $@ ; exit 1; } diff --git "a/test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" "b/test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" index 16b4308..a570777 100755 --- "a/test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" +++ "b/test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh mkdir -p "${NVM_DIR}/v0.0.1" mkdir -p "${NVM_DIR}/v0.0.3" diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." "b/test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." index d8ee316..d9fdce0 100755 --- "a/test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." +++ "b/test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." @@ -1,6 +1,6 @@ #!/bin/sh -. ../../../nvm.sh +\. ../../../nvm.sh mkdir "${NVM_DIR}/v0.0.1" mkdir "${NVM_DIR}/v0.0.3" diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should filter out \".nvm\"" "b/test/fast/Listing versions/Running \"nvm ls\" should filter out \".nvm\"" index a1d1f5b..2946ad8 100755 --- "a/test/fast/Listing versions/Running \"nvm ls\" should filter out \".nvm\"" +++ "b/test/fast/Listing versions/Running \"nvm ls\" should filter out \".nvm\"" @@ -1,6 +1,6 @@ #!/bin/sh -. ../../../nvm.sh +\. ../../../nvm.sh mkdir "${NVM_DIR}/v0.1.3" mkdir "${NVM_DIR}/v0.2.3" diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" "b/test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" index 1e8183e..eae526a 100755 --- "a/test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" +++ "b/test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" @@ -1,6 +1,6 @@ #!/bin/sh -. ../../../nvm.sh +\. ../../../nvm.sh mkdir "${NVM_DIR}/v0.1.3" mkdir "${NVM_DIR}/v0.2.3" diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should include \"system\" when appropriate" "b/test/fast/Listing versions/Running \"nvm ls\" should include \"system\" when appropriate" index a5a5514..bfd4c55 100755 --- "a/test/fast/Listing versions/Running \"nvm ls\" should include \"system\" when appropriate" +++ "b/test/fast/Listing versions/Running \"nvm ls\" should include \"system\" when appropriate" @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh mkdir -p "${NVM_DIR}/v0.0.1" mkdir -p "${NVM_DIR}/v0.0.3" diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" "b/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" index 62492d2..76225e3 100755 --- "a/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" +++ "b/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh mkdir -p "${NVM_DIR}/versions/node/v0.12.1" mkdir "${NVM_DIR}/v0.1.3" diff --git "a/test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" "b/test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" index 24b3db4..2884531 100755 --- "a/test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" +++ "b/test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" @@ -1,6 +1,6 @@ #!/bin/sh -. ../../../nvm.sh +\. ../../../nvm.sh mkdir "${NVM_DIR}/v0.1.2" diff --git "a/test/fast/Running \"nvm alias\" should create a file in the alias directory." "b/test/fast/Running \"nvm alias\" should create a file in the alias directory." index 8a466bb..1ff49f5 100755 --- "a/test/fast/Running \"nvm alias\" should create a file in the alias directory." +++ "b/test/fast/Running \"nvm alias\" should create a file in the alias directory." @@ -2,7 +2,7 @@ set -ex -. ../../nvm.sh +\. ../../nvm.sh nvm alias test v0.1.2 diff --git "a/test/fast/Running \"nvm current\" should display current nvm environment." "b/test/fast/Running \"nvm current\" should display current nvm environment." index db87520..3c114a6 100755 --- "a/test/fast/Running \"nvm current\" should display current nvm environment." +++ "b/test/fast/Running \"nvm current\" should display current nvm environment." @@ -4,7 +4,7 @@ set -ex die () { echo $@ ; exit 1; } -. ../../nvm.sh +\. ../../nvm.sh nvm deactivate 2>&1 diff --git "a/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." "b/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." index ba51074..e5fbb6f 100755 --- "a/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." +++ "b/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." @@ -8,7 +8,7 @@ die () { echo $@ ; exit 1; } [ `expr $PATH : ".*v0.2.3/.*/bin"` = 0 ] || echo "WARNING: Unexpectedly found v0.2.3 already active" >&2 -. ../../nvm.sh +\. ../../nvm.sh nvm use --delete-prefix v0.2.3 || die "Failed to activate v0.2.3" [ `expr "$PATH" : ".*v0.2.3/.*/bin"` != 0 ] || die "PATH not set up properly" diff --git "a/test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" "b/test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" index f7b016d..ec02cec 100755 --- "a/test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" +++ "b/test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" @@ -7,7 +7,7 @@ cleanup () { rm -rf "${NVM_DIR}/v0.10.4" } -. ../../nvm.sh +\. ../../nvm.sh mkdir "${NVM_DIR}/v0.10.4" diff --git "a/test/fast/Running \"nvm install\" with an invalid version fails nicely" "b/test/fast/Running \"nvm install\" with an invalid version fails nicely" index 3d78340..56b292c 100755 --- "a/test/fast/Running \"nvm install\" with an invalid version fails nicely" +++ "b/test/fast/Running \"nvm install\" with an invalid version fails nicely" @@ -4,7 +4,7 @@ set -ex die () { echo $@ ; exit 1; } -. ../../nvm.sh +\. ../../nvm.sh set +ex # needed for stderr OUTPUT="$(nvm install invalid.invalid 2>&1)" diff --git "a/test/fast/Running \"nvm unalias\" should remove the alias file." "b/test/fast/Running \"nvm unalias\" should remove the alias file." index d49ebf2..2781f57 100755 --- "a/test/fast/Running \"nvm unalias\" should remove the alias file." +++ "b/test/fast/Running \"nvm unalias\" should remove the alias file." @@ -6,7 +6,7 @@ ALIAS_PATH="../../alias" echo v0.1.2 > "${ALIAS_PATH}/test" -. ../../nvm.sh +\. ../../nvm.sh nvm unalias test diff --git "a/test/fast/Running \"nvm unload\" should unset all function and variables." "b/test/fast/Running \"nvm unload\" should unset all function and variables." index 3ac3505..783d23b 100755 --- "a/test/fast/Running \"nvm unload\" should unset all function and variables." +++ "b/test/fast/Running \"nvm unload\" should unset all function and variables." @@ -4,7 +4,7 @@ set -ex die () { echo $@ ; exit 1; } -. ../../nvm.sh +\. ../../nvm.sh type nvm > /dev/null 2>&1 || die "nvm not loaded" diff --git "a/test/fast/Running \"nvm use foo\" where \"foo\" is circular aborts" "b/test/fast/Running \"nvm use foo\" where \"foo\" is circular aborts" index 023415c..a5f2029 100755 --- "a/test/fast/Running \"nvm use foo\" where \"foo\" is circular aborts" +++ "b/test/fast/Running \"nvm use foo\" where \"foo\" is circular aborts" @@ -8,7 +8,7 @@ cleanup() { rm -rf "$(nvm_alias_path)/foo" } -. ../../nvm.sh +\. ../../nvm.sh nvm_make_alias foo foo diff --git "a/test/fast/Running \"nvm use iojs\" uses latest io.js version" "b/test/fast/Running \"nvm use iojs\" uses latest io.js version" index 6c54203..23355ca 100755 --- "a/test/fast/Running \"nvm use iojs\" uses latest io.js version" +++ "b/test/fast/Running \"nvm use iojs\" uses latest io.js version" @@ -2,7 +2,7 @@ set -ex -. ../common.sh +\. ../common.sh die () { echo $@ ; cleanup ; exit 1; } @@ -13,7 +13,7 @@ cleanup() { rm -rf "$(nvm_version_path "iojs-${VERSION}")" } -. ../../nvm.sh +\. ../../nvm.sh nvm deactivate || die "unable to deactivate; current: >$(nvm current)<" diff --git "a/test/fast/Running \"nvm use system\" should work as expected" "b/test/fast/Running \"nvm use system\" should work as expected" index 196353d..9a0c509 100755 --- "a/test/fast/Running \"nvm use system\" should work as expected" +++ "b/test/fast/Running \"nvm use system\" should work as expected" @@ -7,7 +7,7 @@ cleanup() { } die() { echo $@ ; cleanup ; exit 1; } -. ../../nvm.sh +\. ../../nvm.sh nvm_has_system_node() { return 0; } nvm_print_npm_version() { command printf ' (npm v1.2.3)'; } diff --git "a/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" "b/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" index e600497..71f208c 100755 --- "a/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" +++ "b/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" @@ -3,7 +3,7 @@ set -ex export NVM_SYMLINK_CURRENT=true -. ../../nvm.sh +\. ../../nvm.sh rm -rf "${NVM_DIR}/v0.10.29" mkdir "${NVM_DIR}/v0.10.29" diff --git "a/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" "b/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" index b84ebf4..be6284d 100755 --- "a/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" +++ "b/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" @@ -2,7 +2,7 @@ set -ex -. ../../nvm.sh +\. ../../nvm.sh TEST_NODE_VERSION="v0.10.29" diff --git a/test/fast/Sourcing nvm.sh should make the nvm command available. b/test/fast/Sourcing nvm.sh should make the nvm command available. index 9c215d5..e74f347 100755 --- a/test/fast/Sourcing nvm.sh should make the nvm command available. +++ b/test/fast/Sourcing nvm.sh should make the nvm command available. @@ -2,6 +2,6 @@ set -ex -. ../../nvm.sh +\. ../../nvm.sh nvm diff --git a/test/fast/Sourcing nvm.sh should not modify parameters of caller b/test/fast/Sourcing nvm.sh should not modify parameters of caller index cf8b149..2053b73 100755 --- a/test/fast/Sourcing nvm.sh should not modify parameters of caller +++ b/test/fast/Sourcing nvm.sh should not modify parameters of caller @@ -3,5 +3,5 @@ set -ex set -- yes -. ../../nvm.sh +\. ../../nvm.sh [ "$1" = yes ] diff --git a/test/fast/Unit tests/iojs_version_has_solaris_binary b/test/fast/Unit tests/iojs_version_has_solaris_binary index 7a797cb..8369ef5 100755 --- a/test/fast/Unit tests/iojs_version_has_solaris_binary +++ b/test/fast/Unit tests/iojs_version_has_solaris_binary @@ -2,8 +2,8 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh -. ../../common.sh +\. ../../../nvm.sh +\. ../../common.sh assert_not_ok iojs_version_has_solaris_binary "" assert_not_ok iojs_version_has_solaris_binary "foo" diff --git a/test/fast/Unit tests/node_version_has_solaris_binary b/test/fast/Unit tests/node_version_has_solaris_binary index db62d59..2a12fe7 100755 --- a/test/fast/Unit tests/node_version_has_solaris_binary +++ b/test/fast/Unit tests/node_version_has_solaris_binary @@ -2,8 +2,8 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh -. ../../common.sh +\. ../../../nvm.sh +\. ../../common.sh # Invalid version numbers fail assert_not_ok node_version_has_solaris_binary "" diff --git a/test/fast/Unit tests/nvm ls-remote b/test/fast/Unit tests/nvm ls-remote index 449d4af..7ef0487 100755 --- a/test/fast/Unit tests/nvm ls-remote +++ b/test/fast/Unit tests/nvm ls-remote @@ -8,11 +8,11 @@ cleanup() { unset -f nvm_download nvm_ls_remote nvm_ls_remote_iojs } -. ../../../nvm.sh +\. ../../../nvm.sh nvm deactivate 2>/dev/null || die 'unable to deactivate' -. ../../common.sh +\. ../../common.sh REMOTE="$PWD/mocks/nvm_ls_remote.txt" nvm_ls_remote() { diff --git a/test/fast/Unit tests/nvm version-remote b/test/fast/Unit tests/nvm version-remote index dd587dc..12ef585 100755 --- a/test/fast/Unit tests/nvm version-remote +++ b/test/fast/Unit tests/nvm version-remote @@ -8,9 +8,9 @@ cleanup() { unset -f nvm_remote_version } -. ../../../nvm.sh +\. ../../../nvm.sh -. ../../common.sh +\. ../../common.sh nvm_remote_version() { echo "NVM_VERSION_ONLY:${NVM_VERSION_ONLY-},NVM_LTS:${NVM_LTS-},PATTERN:${PATTERN-}" diff --git a/test/fast/Unit tests/nvm_add_iojs_prefix b/test/fast/Unit tests/nvm_add_iojs_prefix index 4a8d1ee..4ad727e 100755 --- a/test/fast/Unit tests/nvm_add_iojs_prefix +++ b/test/fast/Unit tests/nvm_add_iojs_prefix @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh [ "_$(nvm_add_iojs_prefix 1)" = "_iojs-v1" ] || die '"nvm_add_iojs_prefix 1" did not return "iojs-v1"' [ "_$(nvm_add_iojs_prefix iojs-1)" = "_iojs-v1" ] || die '"nvm_add_iojs_prefix iojs-1" did not return "iojs-v1"' diff --git a/test/fast/Unit tests/nvm_alias b/test/fast/Unit tests/nvm_alias index f51aac8..6c350f5 100755 --- a/test/fast/Unit tests/nvm_alias +++ b/test/fast/Unit tests/nvm_alias @@ -6,7 +6,7 @@ cleanup () { rm -rf ../../../alias/test } -. ../../../nvm.sh +\. ../../../nvm.sh OUTPUT="$(nvm_alias 2>&1)" EXPECTED_OUTPUT='An alias is required.' diff --git a/test/fast/Unit tests/nvm_alias_path b/test/fast/Unit tests/nvm_alias_path index 0766e2a..aaf7b1f 100755 --- a/test/fast/Unit tests/nvm_alias_path +++ b/test/fast/Unit tests/nvm_alias_path @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh [ "_$(nvm_alias_path)" = "_$NVM_DIR/alias" ] || die "nvm_alias_path did not requrn correct location" diff --git a/test/fast/Unit tests/nvm_checksum b/test/fast/Unit tests/nvm_checksum index 73cf1f1..2075733 100755 --- a/test/fast/Unit tests/nvm_checksum +++ b/test/fast/Unit tests/nvm_checksum @@ -6,7 +6,7 @@ cleanup () { } die () { echo $@ ; cleanup; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh mkdir -p tmp touch tmp/emptyfile diff --git a/test/fast/Unit tests/nvm_compare_checksum b/test/fast/Unit tests/nvm_compare_checksum index e74adb1..d9ddc6d 100755 --- a/test/fast/Unit tests/nvm_compare_checksum +++ b/test/fast/Unit tests/nvm_compare_checksum @@ -5,7 +5,7 @@ cleanup () { } die () { echo $@ ; cleanup ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh set -ex diff --git a/test/fast/Unit tests/nvm_compute_checksum b/test/fast/Unit tests/nvm_compute_checksum index 2684c4c..1ca5cce 100755 --- a/test/fast/Unit tests/nvm_compute_checksum +++ b/test/fast/Unit tests/nvm_compute_checksum @@ -4,7 +4,7 @@ set -ex die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh set +x OUTPUT="$(nvm_compute_checksum 2>&1 >/dev/null || echo)" diff --git a/test/fast/Unit tests/nvm_die_on_prefix b/test/fast/Unit tests/nvm_die_on_prefix index de14deb..67dfe50 100755 --- a/test/fast/Unit tests/nvm_die_on_prefix +++ b/test/fast/Unit tests/nvm_die_on_prefix @@ -7,7 +7,7 @@ cleanup () { } die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh OUTPUT="$(nvm_die_on_prefix 2>&1)" EXPECTED_OUTPUT="First argument \"delete the prefix\" must be zero or one" diff --git a/test/fast/Unit tests/nvm_ensure_default_set b/test/fast/Unit tests/nvm_ensure_default_set index fb0461b..8a40891 100755 --- a/test/fast/Unit tests/nvm_ensure_default_set +++ b/test/fast/Unit tests/nvm_ensure_default_set @@ -1,10 +1,10 @@ #!/bin/sh -. ../../common.sh +\. ../../common.sh die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh EXPECTED_OUTPUT="nvm_ensure_default_set: a version is required" OUTPUT="$(nvm_ensure_default_set 2>&1 >/dev/null)" diff --git a/test/fast/Unit tests/nvm_ensure_version_installed b/test/fast/Unit tests/nvm_ensure_version_installed index 7c49aaf..f96d9bd 100755 --- a/test/fast/Unit tests/nvm_ensure_version_installed +++ b/test/fast/Unit tests/nvm_ensure_version_installed @@ -5,7 +5,7 @@ cleanup () { rm -rf "$(nvm_version_path v0.1.2)" } -. ../../../nvm.sh +\. ../../../nvm.sh mkdir -p "$(nvm_version_path v0.1.2)" diff --git a/test/fast/Unit tests/nvm_ensure_version_prefix b/test/fast/Unit tests/nvm_ensure_version_prefix index 184ddea..08ed4a8 100755 --- a/test/fast/Unit tests/nvm_ensure_version_prefix +++ b/test/fast/Unit tests/nvm_ensure_version_prefix @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh [ "_$(nvm_ensure_version_prefix 1)" = "_v1" ] || die '"nvm_ensure_version_prefix 1" did not return "v1"' [ "_$(nvm_ensure_version_prefix v1)" = "_v1" ] || die '"nvm_ensure_version_prefix v1" did not return "v1"' diff --git a/test/fast/Unit tests/nvm_find_up b/test/fast/Unit tests/nvm_find_up index 39fb568..f035d06 100755 --- a/test/fast/Unit tests/nvm_find_up +++ b/test/fast/Unit tests/nvm_find_up @@ -11,7 +11,7 @@ cleanup () { rm -rf tmp_nvm_find_up } -. ../../../nvm.sh +\. ../../../nvm.sh setup diff --git a/test/fast/Unit tests/nvm_format_version b/test/fast/Unit tests/nvm_format_version index e77b3da..1a2396a 100755 --- a/test/fast/Unit tests/nvm_format_version +++ b/test/fast/Unit tests/nvm_format_version @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh INPUT="0.1.2" OUTPUT="$(nvm_format_version "$INPUT")" diff --git a/test/fast/Unit tests/nvm_get_arch b/test/fast/Unit tests/nvm_get_arch index 102c9da..db19906 100755 --- a/test/fast/Unit tests/nvm_get_arch +++ b/test/fast/Unit tests/nvm_get_arch @@ -11,7 +11,7 @@ cleanup() { die () { cleanup; echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh # Directory where mocked binaries used by nvm_get_arch for each OS/arch are # located diff --git a/test/fast/Unit tests/nvm_get_checksum b/test/fast/Unit tests/nvm_get_checksum index 1ac8868..d842b14 100755 --- a/test/fast/Unit tests/nvm_get_checksum +++ b/test/fast/Unit tests/nvm_get_checksum @@ -8,7 +8,7 @@ cleanup () { die () { echo $@ ; cleanup ; exit 1; } set +e # TODO: fix -. ../../../nvm.sh +\. ../../../nvm.sh set -e nvm_get_mirror() { diff --git a/test/fast/Unit tests/nvm_get_checksum_alg b/test/fast/Unit tests/nvm_get_checksum_alg index e794595..e26ca44 100755 --- a/test/fast/Unit tests/nvm_get_checksum_alg +++ b/test/fast/Unit tests/nvm_get_checksum_alg @@ -4,7 +4,7 @@ set -ex die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh ALG="$(nvm_get_checksum_alg)" diff --git a/test/fast/Unit tests/nvm_get_latest missing curl or wget b/test/fast/Unit tests/nvm_get_latest missing curl or wget index 1ad960a..5fede18 100755 --- a/test/fast/Unit tests/nvm_get_latest missing curl or wget +++ b/test/fast/Unit tests/nvm_get_latest missing curl or wget @@ -6,7 +6,7 @@ cleanup() { unset -f nvm_has } -. ../../../nvm.sh +\. ../../../nvm.sh nvm_has() { return 1 ; } diff --git a/test/fast/Unit tests/nvm_get_minor_version b/test/fast/Unit tests/nvm_get_minor_version index ebb63b3..24fb41d 100755 --- a/test/fast/Unit tests/nvm_get_minor_version +++ b/test/fast/Unit tests/nvm_get_minor_version @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh expect () { INPUT="$1" diff --git a/test/fast/Unit tests/nvm_get_mirror b/test/fast/Unit tests/nvm_get_mirror index 02863f3..b4a5d17 100755 --- a/test/fast/Unit tests/nvm_get_mirror +++ b/test/fast/Unit tests/nvm_get_mirror @@ -4,7 +4,7 @@ set -ex die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh ! nvm_get_mirror || die 'unknown release type did not error' ! nvm_get_mirror node || die 'unknown release type did not error' diff --git a/test/fast/Unit tests/nvm_has b/test/fast/Unit tests/nvm_has index 437d26f..5eb9d5b 100755 --- a/test/fast/Unit tests/nvm_has +++ b/test/fast/Unit tests/nvm_has @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh nvm_has cat && type cat > /dev/null || die 'nvm_has locates "cat" properly' diff --git a/test/fast/Unit tests/nvm_has_solaris_binary b/test/fast/Unit tests/nvm_has_solaris_binary index 5a29112..9adcd76 100755 --- a/test/fast/Unit tests/nvm_has_solaris_binary +++ b/test/fast/Unit tests/nvm_has_solaris_binary @@ -2,8 +2,8 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh -. ../../common.sh +\. ../../../nvm.sh +\. ../../common.sh # Invalid version numbers fail assert_not_ok nvm_has_solaris_binary "" diff --git a/test/fast/Unit tests/nvm_has_system_iojs b/test/fast/Unit tests/nvm_has_system_iojs index 58e858f..0416b71 100755 --- a/test/fast/Unit tests/nvm_has_system_iojs +++ b/test/fast/Unit tests/nvm_has_system_iojs @@ -7,7 +7,7 @@ cleanup () { } die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh mkdir "${NVM_DIR}/versions/io.js/v0.1.2" touch "${NVM_DIR}/versions/io.js/v0.1.2/node" diff --git a/test/fast/Unit tests/nvm_has_system_node b/test/fast/Unit tests/nvm_has_system_node index 10629ee..ea1acfb 100755 --- a/test/fast/Unit tests/nvm_has_system_node +++ b/test/fast/Unit tests/nvm_has_system_node @@ -1,6 +1,6 @@ #!/bin/sh -. ../../../nvm.sh +\. ../../../nvm.sh cleanup () { rm -rf "${NVM_DIR}/v0.1.2/node" diff --git a/test/fast/Unit tests/nvm_iojs_prefix b/test/fast/Unit tests/nvm_iojs_prefix index 6666695..f51d2c3 100755 --- a/test/fast/Unit tests/nvm_iojs_prefix +++ b/test/fast/Unit tests/nvm_iojs_prefix @@ -2,6 +2,6 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh [ "$(nvm_iojs_prefix)" = "iojs" ] || die '"nvm_iojs_prefix" did not return the string "iojs". why did this fail?!' diff --git a/test/fast/Unit tests/nvm_is_alias b/test/fast/Unit tests/nvm_is_alias index b5cf305..a05fc49 100755 --- a/test/fast/Unit tests/nvm_is_alias +++ b/test/fast/Unit tests/nvm_is_alias @@ -3,7 +3,7 @@ cleanup () { unalias foo; unalias grep; } die () { echo $@ ; cleanup ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh alias foo='bar' nvm_is_alias foo || die '"nvm_is_alias foo" was not true' diff --git a/test/fast/Unit tests/nvm_is_iojs_version b/test/fast/Unit tests/nvm_is_iojs_version index e2f5e3f..73803aa 100755 --- a/test/fast/Unit tests/nvm_is_iojs_version +++ b/test/fast/Unit tests/nvm_is_iojs_version @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh nvm_is_iojs_version 'iojs-' || die '"nvm_is_iojs_version iojs- was not true' nvm_is_iojs_version 'iojs-foo' || die '"nvm_is_iojs_version iojs- was not true' diff --git a/test/fast/Unit tests/nvm_is_merged_node_version b/test/fast/Unit tests/nvm_is_merged_node_version index 7cf5334..b7cc0a3 100755 --- a/test/fast/Unit tests/nvm_is_merged_node_version +++ b/test/fast/Unit tests/nvm_is_merged_node_version @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh nvm_is_merged_node_version '4.0' || die '"nvm_is_merged_node_version 4.0 was not true' nvm_is_merged_node_version '5.1' || die '"nvm_is_merged_node_version 5.1 was not true' diff --git a/test/fast/Unit tests/nvm_is_natural_num b/test/fast/Unit tests/nvm_is_natural_num index e9b0668..8d08807 100755 --- a/test/fast/Unit tests/nvm_is_natural_num +++ b/test/fast/Unit tests/nvm_is_natural_num @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh ! nvm_is_natural_num || die 'no args is not false' ! nvm_is_natural_num '' || die 'empty string is not false' diff --git a/test/fast/Unit tests/nvm_is_valid_version b/test/fast/Unit tests/nvm_is_valid_version index d34f767..d98e60f 100755 --- a/test/fast/Unit tests/nvm_is_valid_version +++ b/test/fast/Unit tests/nvm_is_valid_version @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh nvm_is_valid_version 0.1.2 || die "nvm_is_valid_version 0.1.2 did not return 0" nvm_is_valid_version foo && die "nvm_is_valid_version foo did not return 1" diff --git a/test/fast/Unit tests/nvm_ls_current b/test/fast/Unit tests/nvm_ls_current index bc4a4f5..4fe484b 100755 --- a/test/fast/Unit tests/nvm_ls_current +++ b/test/fast/Unit tests/nvm_ls_current @@ -6,7 +6,7 @@ TEST_DIR="$TEST_PWD/nvm_ls_current_tmp" cleanup() { rm -rf "$TEST_DIR"; unset -f return_zero; alias node='node' ; unalias node; } die () { echo $@ ; cleanup ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh return_zero () { return 0; } diff --git a/test/fast/Unit tests/nvm_ls_remote b/test/fast/Unit tests/nvm_ls_remote index 21a1320..0c194eb 100755 --- a/test/fast/Unit tests/nvm_ls_remote +++ b/test/fast/Unit tests/nvm_ls_remote @@ -6,7 +6,7 @@ cleanup() { unset -f nvm_download } -. ../../../nvm.sh +\. ../../../nvm.sh MOCKS_DIR="$PWD/mocks" diff --git a/test/fast/Unit tests/nvm_ls_remote LTS aliases b/test/fast/Unit tests/nvm_ls_remote LTS aliases index 9a577e6..2f35388 100755 --- a/test/fast/Unit tests/nvm_ls_remote LTS aliases +++ b/test/fast/Unit tests/nvm_ls_remote LTS aliases @@ -14,7 +14,7 @@ cleanup() { rm -rf "$TEST_PATH" } -. ../../../nvm.sh +\. ../../../nvm.sh set -ex diff --git a/test/fast/Unit tests/nvm_ls_remote_iojs b/test/fast/Unit tests/nvm_ls_remote_iojs index 1f909c7..a23156c 100755 --- a/test/fast/Unit tests/nvm_ls_remote_iojs +++ b/test/fast/Unit tests/nvm_ls_remote_iojs @@ -6,7 +6,7 @@ cleanup() { unset -f nvm_download } -. ../../../nvm.sh +\. ../../../nvm.sh # sample output at the time the test was written TAB_PATH="$PWD/mocks/iojs.org-dist-index.tab" diff --git a/test/fast/Unit tests/nvm_make_alias b/test/fast/Unit tests/nvm_make_alias index c57906d..1759bb6 100755 --- a/test/fast/Unit tests/nvm_make_alias +++ b/test/fast/Unit tests/nvm_make_alias @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh OUTPUT="$(nvm_make_alias 2>&1)" EXIT_CODE="$(nvm_make_alias >/dev/null 2>&1 ; echo $?)" diff --git a/test/fast/Unit tests/nvm_node_prefix b/test/fast/Unit tests/nvm_node_prefix index a0bc098..13e3f51 100755 --- a/test/fast/Unit tests/nvm_node_prefix +++ b/test/fast/Unit tests/nvm_node_prefix @@ -2,6 +2,6 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh [ "$(nvm_node_prefix)" = "node" ] || die '"nvm_node_prefix" did not return the string "node". why did this fail?!' diff --git a/test/fast/Unit tests/nvm_num_version_groups b/test/fast/Unit tests/nvm_num_version_groups index 88c240e..b6da88e 100755 --- a/test/fast/Unit tests/nvm_num_version_groups +++ b/test/fast/Unit tests/nvm_num_version_groups @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh [ "~$(nvm_num_version_groups)" = "~0" ] || die "no args should give 0" [ "~$(nvm_num_version_groups v)" = "~0" ] || die "just "v" should give 0" diff --git a/test/fast/Unit tests/nvm_prepend_path b/test/fast/Unit tests/nvm_prepend_path index ef0af81..f46e024 100755 --- a/test/fast/Unit tests/nvm_prepend_path +++ b/test/fast/Unit tests/nvm_prepend_path @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh TEST_PATH=/usr/bin:/usr/local/bin diff --git a/test/fast/Unit tests/nvm_print_alias_path b/test/fast/Unit tests/nvm_print_alias_path index 14f439a..0d0babe 100755 --- a/test/fast/Unit tests/nvm_print_alias_path +++ b/test/fast/Unit tests/nvm_print_alias_path @@ -1,5 +1,5 @@ #!/bin/sh -. ../../common.sh +\. ../../common.sh die () { echo $@ ; cleanup ; exit 1; } @@ -7,7 +7,7 @@ cleanup () { unset -f nvm_alias nvm_version } -. ../../../nvm.sh +\. ../../../nvm.sh NVM_ALIAS_DIR='path/to/the alias/dir' diff --git a/test/fast/Unit tests/nvm_print_default_alias b/test/fast/Unit tests/nvm_print_default_alias index 1785756..4915a19 100755 --- a/test/fast/Unit tests/nvm_print_default_alias +++ b/test/fast/Unit tests/nvm_print_default_alias @@ -1,5 +1,5 @@ #!/bin/sh -. ../../common.sh +\. ../../common.sh die () { echo $@ ; cleanup ; exit 1; } @@ -7,7 +7,7 @@ cleanup () { unset -f nvm_print_implicit_alias nvm_version } -. ../../../nvm.sh +\. ../../../nvm.sh nvm_print_implicit_alias() { echo '' diff --git a/test/fast/Unit tests/nvm_print_implicit_alias errors b/test/fast/Unit tests/nvm_print_implicit_alias errors index a617383..e824292 100755 --- a/test/fast/Unit tests/nvm_print_implicit_alias errors +++ b/test/fast/Unit tests/nvm_print_implicit_alias errors @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh EXPECTED_FIRST_MSG="nvm_print_implicit_alias must be specified with local or remote as the first argument." [ "_$(nvm_print_implicit_alias 2>&1)" = "_$EXPECTED_FIRST_MSG" ] \ diff --git a/test/fast/Unit tests/nvm_print_implicit_alias success b/test/fast/Unit tests/nvm_print_implicit_alias success index 7a53d0c..eb5671d 100755 --- a/test/fast/Unit tests/nvm_print_implicit_alias success +++ b/test/fast/Unit tests/nvm_print_implicit_alias success @@ -13,7 +13,7 @@ cleanup() { unset -f nvm_ls_remote nvm_ls_remote_iojs } -. ../../../nvm.sh +\. ../../../nvm.sh mkdir "${NVM_DIR}/v0.2.3" mkdir "${NVM_DIR}/v0.3.4" diff --git a/test/fast/Unit tests/nvm_print_npm_version b/test/fast/Unit tests/nvm_print_npm_version index 2bf24a0..792c6cc 100755 --- a/test/fast/Unit tests/nvm_print_npm_version +++ b/test/fast/Unit tests/nvm_print_npm_version @@ -7,7 +7,7 @@ cleanup () { } die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh nvm_has() { return 1; } OUTPUT="$(nvm_print_npm_version)" diff --git a/test/fast/Unit tests/nvm_remote_version b/test/fast/Unit tests/nvm_remote_version index 0c17591..e380b2f 100755 --- a/test/fast/Unit tests/nvm_remote_version +++ b/test/fast/Unit tests/nvm_remote_version @@ -6,7 +6,7 @@ cleanup() { unset -f nvm_ls_remote nvm_ls_remote_iojs } -. ../../../nvm.sh +\. ../../../nvm.sh nvm_ls_remote() { echo "N/A" diff --git a/test/fast/Unit tests/nvm_remote_versions b/test/fast/Unit tests/nvm_remote_versions index bbbaa24..f505008 100755 --- a/test/fast/Unit tests/nvm_remote_versions +++ b/test/fast/Unit tests/nvm_remote_versions @@ -6,7 +6,7 @@ cleanup() { unset -f nvm_ls_remote nvm_ls_remote_iojs } -. ../../../nvm.sh +\. ../../../nvm.sh OUTPUT="$(nvm_remote_versions stable 2>&1)" EXPECTED_OUTPUT="Implicit aliases are not supported in nvm_remote_versions." diff --git a/test/fast/Unit tests/nvm_strip_iojs_prefix b/test/fast/Unit tests/nvm_strip_iojs_prefix index 782fbc4..98aa43c 100755 --- a/test/fast/Unit tests/nvm_strip_iojs_prefix +++ b/test/fast/Unit tests/nvm_strip_iojs_prefix @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh [ "_$(nvm_strip_iojs_prefix iojs)" = "_" ] || die '"nvm_strip_iojs_prefix iojs" did not return an empty string' [ "_$(nvm_strip_iojs_prefix iojs-)" = "_" ] || die '"nvm_strip_iojs_prefix iojs-" did not return an empty string' diff --git a/test/fast/Unit tests/nvm_strip_path b/test/fast/Unit tests/nvm_strip_path index b926cc4..e2d9a49 100755 --- a/test/fast/Unit tests/nvm_strip_path +++ b/test/fast/Unit tests/nvm_strip_path @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh TEST_PATH=$NVM_DIR/v0.10.5/bin:/usr/bin:$NVM_DIR/v0.11.5/bin:$NVM_DIR/v0.9.5/bin:/usr/local/bin:$NVM_DIR/v0.2.5/bin:$NVM_DIR/versions/node/v0.12.0/bin:$NVM_DIR/versions/io.js/v1.0.0/bin diff --git a/test/fast/Unit tests/nvm_supports_xz b/test/fast/Unit tests/nvm_supports_xz index 5a9e4f7..09086c3 100755 --- a/test/fast/Unit tests/nvm_supports_xz +++ b/test/fast/Unit tests/nvm_supports_xz @@ -9,7 +9,7 @@ cleanup() { } die () { echo $@ ; cleanup ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh OLDPATH=$PATH diff --git a/test/fast/Unit tests/nvm_tree_contains_path b/test/fast/Unit tests/nvm_tree_contains_path index a4ca09e..4efac10 100755 --- a/test/fast/Unit tests/nvm_tree_contains_path +++ b/test/fast/Unit tests/nvm_tree_contains_path @@ -8,7 +8,7 @@ cleanup () { } die () { echo $@ ; cleanup; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh mkdir -p tmp touch tmp/node diff --git a/test/fast/Unit tests/nvm_validate_implicit_alias b/test/fast/Unit tests/nvm_validate_implicit_alias index 979f8fb..9d93af9 100755 --- a/test/fast/Unit tests/nvm_validate_implicit_alias +++ b/test/fast/Unit tests/nvm_validate_implicit_alias @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh EXPECTED_MSG="Only implicit aliases 'stable', 'unstable', 'iojs', and 'node' are supported." [ "_$(nvm_validate_implicit_alias 2>&1)" = "_$EXPECTED_MSG" ] \ diff --git a/test/fast/Unit tests/nvm_version b/test/fast/Unit tests/nvm_version index 4d5063b..cba10dc 100755 --- a/test/fast/Unit tests/nvm_version +++ b/test/fast/Unit tests/nvm_version @@ -5,7 +5,7 @@ cleanup () { unset -f nvm_ls_current nvm_ls } -. ../../../nvm.sh +\. ../../../nvm.sh nvm_ls_current() { echo "CURRENT!" diff --git a/test/fast/Unit tests/nvm_version_dir b/test/fast/Unit tests/nvm_version_dir index 6fc880a..5bc5948 100755 --- a/test/fast/Unit tests/nvm_version_dir +++ b/test/fast/Unit tests/nvm_version_dir @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh [ "$(nvm_version_dir)" = "$NVM_DIR/versions/node" ] || die '"nvm_version_dir" did not return new dir path' [ "$(nvm_version_dir iojs)" = "$NVM_DIR/versions/io.js" ] || die '"nvm_version_dir iojs" did not return iojs dir path' diff --git a/test/fast/Unit tests/nvm_version_greater b/test/fast/Unit tests/nvm_version_greater index 63f5800..a771e84 100755 --- a/test/fast/Unit tests/nvm_version_greater +++ b/test/fast/Unit tests/nvm_version_greater @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh nvm_version_greater 0.10.0 0.2.12 || die '"nvm_version_greater 0.10.0 0.2.12" did not return true' diff --git a/test/fast/Unit tests/nvm_version_path b/test/fast/Unit tests/nvm_version_path index b8ae685..74996a9 100755 --- a/test/fast/Unit tests/nvm_version_path +++ b/test/fast/Unit tests/nvm_version_path @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh OUTPUT="$(nvm_version_path foo)" EXPECTED_OUTPUT="$NVM_DIR/foo" diff --git a/test/install_script/nvm_check_global_modules b/test/install_script/nvm_check_global_modules index c57d672..a526dcc 100755 --- a/test/install_script/nvm_check_global_modules +++ b/test/install_script/nvm_check_global_modules @@ -12,7 +12,7 @@ cleanup () { } die () { echo $@ ; cleanup ; exit 1; } -NVM_ENV=testing . ../../install.sh +NVM_ENV=testing \. ../../install.sh setup () { ORIGINAL_PATH="$PATH" diff --git a/test/install_script/nvm_detect_profile b/test/install_script/nvm_detect_profile index 92da1d2..e5b71a8 100755 --- a/test/install_script/nvm_detect_profile +++ b/test/install_script/nvm_detect_profile @@ -2,7 +2,7 @@ setup () { HOME="." - NVM_ENV=testing . ../../install.sh + NVM_ENV=testing \. ../../install.sh touch ".bashrc" touch ".bash_profile" touch ".zshrc" diff --git a/test/install_script/nvm_do_install b/test/install_script/nvm_do_install index a969602..8ced0eb 100755 --- a/test/install_script/nvm_do_install +++ b/test/install_script/nvm_do_install @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -NVM_ENV=testing . ../../install.sh +NVM_ENV=testing \. ../../install.sh #nvm_do_install is available type nvm_do_install > /dev/null 2>&1 || die 'nvm_do_install is not available' diff --git a/test/install_script/nvm_install_dir b/test/install_script/nvm_install_dir index 8ce5a42..d6d1a42 100755 --- a/test/install_script/nvm_install_dir +++ b/test/install_script/nvm_install_dir @@ -6,7 +6,7 @@ cleanup () { } die () { echo $@ ; cleanup ; exit 1; } -NVM_ENV=testing . ../../install.sh +NVM_ENV=testing \. ../../install.sh HOME="__home__" diff --git a/test/install_script/nvm_reset b/test/install_script/nvm_reset index bc86aa6..7eb9cd2 100755 --- a/test/install_script/nvm_reset +++ b/test/install_script/nvm_reset @@ -18,7 +18,7 @@ safe_type() { ! safe_type nvm_reset || die 'nvm_reset is still available' ! safe_type nvm_detect_profile || die 'nvm_detect_profile is still available' -NVM_ENV=testing . ../../install.sh +NVM_ENV=testing \. ../../install.sh # Check nvm_reset exists safe_type nvm_reset || die 'nvm_reset is not available' diff --git a/test/install_script/nvm_source b/test/install_script/nvm_source index 8307639..977c9f4 100755 --- a/test/install_script/nvm_source +++ b/test/install_script/nvm_source @@ -6,7 +6,7 @@ cleanup () { } die () { echo $@ ; cleanup ; exit 1; } -NVM_ENV=testing . ../../install.sh +NVM_ENV=testing \. ../../install.sh # nvm_source with no parameter returns the git endpoint echo $(nvm_source) | grep "nvm.git$" > /dev/null || die "nvm_source without arguments should return the location of the git repo" diff --git a/test/installation_iojs/install already installed uses it b/test/installation_iojs/install already installed uses it index 665dbbe..f423370 100755 --- a/test/installation_iojs/install already installed uses it +++ b/test/installation_iojs/install already installed uses it @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../nvm.sh +\. ../../nvm.sh [ "$(nvm install invalid.invalid 2>&1)" = "Version 'invalid.invalid' not found - try \`nvm ls-remote\` to browse available versions." ] || die "nvm installing an invalid version did not print a nice error message" diff --git a/test/installation_iojs/install from binary b/test/installation_iojs/install from binary index 8be865e..724e105 100755 --- a/test/installation_iojs/install from binary +++ b/test/installation_iojs/install from binary @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../nvm.sh +\. ../../nvm.sh NVM_TEST_VERSION="v1.0.0" NVM_PREFIXED_TEST_VERSION="iojs-$NVM_TEST_VERSION" diff --git a/test/installation_iojs/install from source b/test/installation_iojs/install from source index 354de49..c724b3d 100644 --- a/test/installation_iojs/install from source +++ b/test/installation_iojs/install from source @@ -1,10 +1,10 @@ #!/bin/sh -. ../common.sh +\. ../common.sh die () { echo $@ ; exit 1; } -. ../../nvm.sh +\. ../../nvm.sh set -ex diff --git a/test/installation_iojs/install two versions and use the latest one b/test/installation_iojs/install two versions and use the latest one index cc85653..29372bf 100755 --- a/test/installation_iojs/install two versions and use the latest one +++ b/test/installation_iojs/install two versions and use the latest one @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../nvm.sh +\. ../../nvm.sh # Remove the stuff we're clobbering. [ -e "${NVM_DIR}/versions/io.js/v1.0.0" ] && rm -R "${NVM_DIR}/versions/io.js/v1.0.0" diff --git a/test/installation_iojs/install version specified in .nvmrc from binary b/test/installation_iojs/install version specified in .nvmrc from binary index b798c2d..73dcfd3 100755 --- a/test/installation_iojs/install version specified in .nvmrc from binary +++ b/test/installation_iojs/install version specified in .nvmrc from binary @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../nvm.sh +\. ../../nvm.sh NVM_TEST_VERSION=v1.0.0 NVM_PREFIXED_TEST_VERSION="iojs-${NVM_TEST_VERSION}" diff --git a/test/installation_iojs/install version specified in .nvmrc from source b/test/installation_iojs/install version specified in .nvmrc from source index df3f46c..9f97a30 100644 --- a/test/installation_iojs/install version specified in .nvmrc from source +++ b/test/installation_iojs/install version specified in .nvmrc from source @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../nvm.sh +\. ../../nvm.sh set -ex diff --git a/test/installation_iojs/install while reinstalling packages b/test/installation_iojs/install while reinstalling packages index 56e5ff4..3b2dc0f 100755 --- a/test/installation_iojs/install while reinstalling packages +++ b/test/installation_iojs/install while reinstalling packages @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../nvm.sh +\. ../../nvm.sh # Remove the stuff we're clobbering. [ -e "${NVM_DIR}/versions/io.js/v1.0.0" ] && rm -R "${NVM_DIR}/versions/io.js/v1.0.0" diff --git a/test/installation_iojs/nvm install v1 works b/test/installation_iojs/nvm install v1 works index 95ecc42..505aef7 100755 --- a/test/installation_iojs/nvm install v1 works +++ b/test/installation_iojs/nvm install v1 works @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../nvm.sh +\. ../../nvm.sh NVM_VERSION="v1" NVM_PREFIXED_TEST_VERSION="$(nvm ls-remote "$NVM_VERSION" | tail -1 | sed 's/^[ ]*//;s/[ ]*$//')" diff --git a/test/installation_iojs/teardown_dir b/test/installation_iojs/teardown_dir index 295db62..2eda91f 100755 --- a/test/installation_iojs/teardown_dir +++ b/test/installation_iojs/teardown_dir @@ -1,6 +1,6 @@ #!/bin/sh -. ../../nvm.sh +\. ../../nvm.sh nvm deactivate nvm uninstall iojs-v1.0.0 nvm uninstall iojs-v1.0.3 diff --git a/test/installation_node/install LTS b/test/installation_node/install LTS index 86aa33d..2435fc3 100755 --- a/test/installation_node/install LTS +++ b/test/installation_node/install LTS @@ -4,7 +4,7 @@ set -ex die () { echo $@ ; exit 1; } -. ../../nvm.sh +\. ../../nvm.sh nvm unalias default >/dev/null 2>&1 || die 'unable to unalias default' diff --git a/test/installation_node/install already installed uses it b/test/installation_node/install already installed uses it index b47694f..2906784 100755 --- a/test/installation_node/install already installed uses it +++ b/test/installation_node/install already installed uses it @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../nvm.sh +\. ../../nvm.sh [ "$(nvm install invalid.invalid 2>&1)" = "Version 'invalid.invalid' not found - try \`nvm ls-remote\` to browse available versions." ] || die "nvm installing an invalid version did not print a nice error message" diff --git a/test/installation_node/install from binary b/test/installation_node/install from binary index 114205d..d3635f3 100755 --- a/test/installation_node/install from binary +++ b/test/installation_node/install from binary @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../nvm.sh +\. ../../nvm.sh nvm unalias default || die 'unable to unalias default' diff --git a/test/installation_node/install from source b/test/installation_node/install from source index 1d4fa39..b0942f9 100755 --- a/test/installation_node/install from source +++ b/test/installation_node/install from source @@ -5,7 +5,7 @@ set -ex die () { echo $@ ; exit 1; } set +e # TODO: fix -. ../../nvm.sh +\. ../../nvm.sh set -e nvm deactivate || die 'deactivate failed' diff --git a/test/installation_node/install from source implicitly b/test/installation_node/install from source implicitly index 7b01178..a3c043c 100755 --- a/test/installation_node/install from source implicitly +++ b/test/installation_node/install from source implicitly @@ -5,7 +5,7 @@ set -ex die () { echo $@ ; exit 1; } set +e # TODO: fix -. ../../nvm.sh +\. ../../nvm.sh set -e nvm deactivate || die 'deactivate failed' diff --git a/test/installation_node/install from source with thread parameter b/test/installation_node/install from source with thread parameter index 4de8942..f9aee3d 100755 --- a/test/installation_node/install from source with thread parameter +++ b/test/installation_node/install from source with thread parameter @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../nvm.sh +\. ../../nvm.sh NVM_TEST_VERSION=v0.10.41 diff --git a/test/installation_node/install from source without V8 snapshot for ARM b/test/installation_node/install from source without V8 snapshot for ARM index 3c2eeaf..0e22ac7 100755 --- a/test/installation_node/install from source without V8 snapshot for ARM +++ b/test/installation_node/install from source without V8 snapshot for ARM @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../nvm.sh +\. ../../nvm.sh NVM_TEST_VERSION=v0.10.7 diff --git a/test/installation_node/install two versions and use the latest one b/test/installation_node/install two versions and use the latest one index 6f1d380..35ca3b4 100755 --- a/test/installation_node/install two versions and use the latest one +++ b/test/installation_node/install two versions and use the latest one @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../nvm.sh +\. ../../nvm.sh # Remove the stuff we're clobbering. [ -e "${NVM_DIR}/v0.9.7" ] && rm -R "${NVM_DIR}/v0.9.7" diff --git a/test/installation_node/install version specified in .nvmrc from binary b/test/installation_node/install version specified in .nvmrc from binary index ad5f296..c074d65 100755 --- a/test/installation_node/install version specified in .nvmrc from binary +++ b/test/installation_node/install version specified in .nvmrc from binary @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../nvm.sh +\. ../../nvm.sh NVM_TEST_VERSION=v0.10.7 diff --git a/test/installation_node/install version specified in .nvmrc from source b/test/installation_node/install version specified in .nvmrc from source index 63ea0ea..89094a8 100755 --- a/test/installation_node/install version specified in .nvmrc from source +++ b/test/installation_node/install version specified in .nvmrc from source @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../nvm.sh +\. ../../nvm.sh NVM_TEST_VERSION=v0.10.7 diff --git a/test/installation_node/install while reinstalling packages b/test/installation_node/install while reinstalling packages index 7d1a15e..53879d5 100755 --- a/test/installation_node/install while reinstalling packages +++ b/test/installation_node/install while reinstalling packages @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../nvm.sh +\. ../../nvm.sh # Remove the stuff we're clobbering. [ -e "${NVM_DIR}/v0.9.7" ] && rm -R "${NVM_DIR}/v0.9.7" diff --git a/test/installation_node/teardown_dir b/test/installation_node/teardown_dir index a37d0e6..5f1d6ce 100755 --- a/test/installation_node/teardown_dir +++ b/test/installation_node/teardown_dir @@ -1,6 +1,6 @@ #!/bin/sh -. ../../nvm.sh +\. ../../nvm.sh nvm deactivate nvm uninstall v0.10.7 nvm uninstall v4.2.2 diff --git "a/test/slow/Running \"nvm current\" should display current nvm environment." "b/test/slow/Running \"nvm current\" should display current nvm environment." index 05082e3..c36e55e 100755 --- "a/test/slow/Running \"nvm current\" should display current nvm environment." +++ "b/test/slow/Running \"nvm current\" should display current nvm environment." @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../nvm.sh +\. ../../nvm.sh nvm install 0.10 diff --git a/test/slow/node 0.6.21 should install 0.6.21-pre b/test/slow/node 0.6.21 should install 0.6.21-pre index fd98aa9..299c3fc 100755 --- a/test/slow/node 0.6.21 should install 0.6.21-pre +++ b/test/slow/node 0.6.21 should install 0.6.21-pre @@ -4,7 +4,7 @@ set -ex die () { echo $@ ; exit 1; } -. ../../nvm.sh +\. ../../nvm.sh nvm install 0.6.21 || die 'v0.6.21 installation failed' [ "_$(node -v)" = "_v0.6.21-pre" ] || die "v0.6.21-pre not installed with v0.6.21, got $(node -v)" diff --git "a/test/slow/nvm exec/Preamble works and respects \"silent\" flag" "b/test/slow/nvm exec/Preamble works and respects \"silent\" flag" index a4153ab..866c43f 100755 --- "a/test/slow/nvm exec/Preamble works and respects \"silent\" flag" +++ "b/test/slow/nvm exec/Preamble works and respects \"silent\" flag" @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh nvm use 0.10 NPM_VERSION_TEN="$(npm --version)" diff --git "a/test/slow/nvm exec/Running \"nvm exec --lts\" should work" "b/test/slow/nvm exec/Running \"nvm exec --lts\" should work" index ce8ebaf..0939941 100755 --- "a/test/slow/nvm exec/Running \"nvm exec --lts\" should work" +++ "b/test/slow/nvm exec/Running \"nvm exec --lts\" should work" @@ -4,7 +4,7 @@ set -ex die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh nvm install --lts || die 'nvm install --lts failed' diff --git "a/test/slow/nvm exec/Running \"nvm exec 0.x\" should work" "b/test/slow/nvm exec/Running \"nvm exec 0.x\" should work" index b06bbdc..72c385e 100755 --- "a/test/slow/nvm exec/Running \"nvm exec 0.x\" should work" +++ "b/test/slow/nvm exec/Running \"nvm exec 0.x\" should work" @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh nvm use 0.10 NPM_VERSION_TEN="$(npm --version)" diff --git "a/test/slow/nvm exec/Running \"nvm exec\" should pick up .nvmrc version" "b/test/slow/nvm exec/Running \"nvm exec\" should pick up .nvmrc version" index 3cc0cb8..737f787 100755 --- "a/test/slow/nvm exec/Running \"nvm exec\" should pick up .nvmrc version" +++ "b/test/slow/nvm exec/Running \"nvm exec\" should pick up .nvmrc version" @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh nvm use 0.10.7 NPM_VERSION_TEN="$(npm --version)" diff --git a/test/slow/nvm exec/setup_dir b/test/slow/nvm exec/setup_dir index d6bba73..e7853d8 100755 --- a/test/slow/nvm exec/setup_dir +++ b/test/slow/nvm exec/setup_dir @@ -1,6 +1,6 @@ #!/bin/sh -. ../../../nvm.sh +\. ../../../nvm.sh nvm install 0.10.7 nvm install 1.0.0 nvm install --lts diff --git a/test/slow/nvm exec/teardown_dir b/test/slow/nvm exec/teardown_dir index 573e91d..ab6c7fc 100755 --- a/test/slow/nvm exec/teardown_dir +++ b/test/slow/nvm exec/teardown_dir @@ -1,6 +1,6 @@ #!/bin/sh -. ../../../nvm.sh +\. ../../../nvm.sh nvm deactivate nvm uninstall v0.10.7 nvm uninstall v1.0.0 diff --git "a/test/slow/nvm reinstall-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" "b/test/slow/nvm reinstall-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" index 1951b12..e21b5e4 100755 --- "a/test/slow/nvm reinstall-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" +++ "b/test/slow/nvm reinstall-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh nvm use 0.10.28 > /dev/null diff --git a/test/slow/nvm reinstall-packages/setup_dir b/test/slow/nvm reinstall-packages/setup_dir index c550f69..7648954 100755 --- a/test/slow/nvm reinstall-packages/setup_dir +++ b/test/slow/nvm reinstall-packages/setup_dir @@ -1,6 +1,6 @@ #!/bin/sh -. ../../../nvm.sh +\. ../../../nvm.sh nvm install 0.10.28 nvm install 0.10.29 diff --git a/test/slow/nvm reinstall-packages/should work as expected b/test/slow/nvm reinstall-packages/should work as expected index e0156d4..7235cbb 100755 --- a/test/slow/nvm reinstall-packages/should work as expected +++ b/test/slow/nvm reinstall-packages/should work as expected @@ -2,7 +2,7 @@ die () { echo "$@" ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh nvm exec 0.10.28 npm install -g npm@~1.4.11 # this is required because before 1.4.10, npm ls doesn't indicated linked packages nvm exec 0.10.29 npm install -g npm@~1.4.11 # this is required because before 1.4.10, npm ls doesn't indicated linked packages diff --git a/test/slow/nvm reinstall-packages/teardown_dir b/test/slow/nvm reinstall-packages/teardown_dir index 1282eb4..13ea150 100755 --- a/test/slow/nvm reinstall-packages/teardown_dir +++ b/test/slow/nvm reinstall-packages/teardown_dir @@ -1,6 +1,6 @@ #!/bin/sh -. ../../../nvm.sh +\. ../../../nvm.sh nvm uninstall v0.10.28 nvm uninstall v0.10.29 diff --git "a/test/slow/nvm run/Running \"nvm run --harmony --version\" should work" "b/test/slow/nvm run/Running \"nvm run --harmony --version\" should work" index dfb90a9..0fa2089 100755 --- "a/test/slow/nvm run/Running \"nvm run --harmony --version\" should work" +++ "b/test/slow/nvm run/Running \"nvm run --harmony --version\" should work" @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh nvm run 0.10.7 --harmony --version [ "_$(nvm run 0.10.7 --harmony --version 2>/dev/null | tail -1)" = "_v0.10.7" ] || die "\`nvm run --harmony --version\` failed to run with the correct version" diff --git "a/test/slow/nvm run/Running \"nvm run --lts\" should work" "b/test/slow/nvm run/Running \"nvm run --lts\" should work" index c512887..1c73b6e 100755 --- "a/test/slow/nvm run/Running \"nvm run --lts\" should work" +++ "b/test/slow/nvm run/Running \"nvm run --lts\" should work" @@ -4,7 +4,7 @@ set -ex die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh OUTPUT="$(nvm run --silent --lts --version)" EXPECTED_OUTPUT="$(nvm_match_version 'lts/*')" diff --git "a/test/slow/nvm run/Running \"nvm run 0.x\" should error out sensibly when 0.x is not installed" "b/test/slow/nvm run/Running \"nvm run 0.x\" should error out sensibly when 0.x is not installed" index 5a2aef2..7777bc9 100755 --- "a/test/slow/nvm run/Running \"nvm run 0.x\" should error out sensibly when 0.x is not installed" +++ "b/test/slow/nvm run/Running \"nvm run 0.x\" should error out sensibly when 0.x is not installed" @@ -3,7 +3,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh EXPECTED_OUTPUT='N/A: version "v0.2" is not yet installed. diff --git "a/test/slow/nvm run/Running \"nvm run 0.x\" should work" "b/test/slow/nvm run/Running \"nvm run 0.x\" should work" index 9bcf97f..0d7e9ef 100755 --- "a/test/slow/nvm run/Running \"nvm run 0.x\" should work" +++ "b/test/slow/nvm run/Running \"nvm run 0.x\" should work" @@ -3,7 +3,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh [ "$(nvm run 0.10.7 --version | tail -1)" = "v0.10.7" ] || die "\`nvm run\` failed to run with the correct version" diff --git "a/test/slow/nvm run/Running \"nvm run\" should pick up .nvmrc version" "b/test/slow/nvm run/Running \"nvm run\" should pick up .nvmrc version" index d462488..dc2f197 100755 --- "a/test/slow/nvm run/Running \"nvm run\" should pick up .nvmrc version" +++ "b/test/slow/nvm run/Running \"nvm run\" should pick up .nvmrc version" @@ -3,7 +3,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh echo "0.10.7" > .nvmrc diff --git a/test/slow/nvm run/setup_dir b/test/slow/nvm run/setup_dir index a767a02..481be49 100755 --- a/test/slow/nvm run/setup_dir +++ b/test/slow/nvm run/setup_dir @@ -1,6 +1,6 @@ #!/bin/sh -. ../../../nvm.sh +\. ../../../nvm.sh nvm install 0.10.7 nvm install --lts=argon diff --git a/test/slow/nvm run/teardown_dir b/test/slow/nvm run/teardown_dir index 4290f07..d3274c8 100755 --- a/test/slow/nvm run/teardown_dir +++ b/test/slow/nvm run/teardown_dir @@ -1,6 +1,6 @@ #!/bin/sh -. ../../../nvm.sh +\. ../../../nvm.sh nvm deactivate nvm uninstall v0.10.7 diff --git "a/test/slow/nvm uninstall/Running \"nvm uninstall 0.12.6\" uninstalls v0.12.6" "b/test/slow/nvm uninstall/Running \"nvm uninstall 0.12.6\" uninstalls v0.12.6" index 67d054b..732f70a 100755 --- "a/test/slow/nvm uninstall/Running \"nvm uninstall 0.12.6\" uninstalls v0.12.6" +++ "b/test/slow/nvm uninstall/Running \"nvm uninstall 0.12.6\" uninstalls v0.12.6" @@ -3,7 +3,7 @@ die () { echo $@ ; exit 1; } # Source nvm -. ../../../nvm.sh +\. ../../../nvm.sh # Version to install/uninstall NVM_TEST_VERSION=0.12.6 diff --git "a/test/slow/nvm uninstall/Running \"nvm uninstall\" with incorrect file permissions fails nicely" "b/test/slow/nvm uninstall/Running \"nvm uninstall\" with incorrect file permissions fails nicely" index 0939d95..4f7fe05 100755 --- "a/test/slow/nvm uninstall/Running \"nvm uninstall\" with incorrect file permissions fails nicely" +++ "b/test/slow/nvm uninstall/Running \"nvm uninstall\" with incorrect file permissions fails nicely" @@ -3,7 +3,7 @@ die () { echo $@ ; exit 1; } # Source nvm -. ../../../nvm.sh +\. ../../../nvm.sh # Version to install/uninstall NVM_TEST_VERSION=5.10.1 diff --git a/test/slow/nvm uninstall/setup_dir b/test/slow/nvm uninstall/setup_dir index f385d98..108dbe3 100755 --- a/test/slow/nvm uninstall/setup_dir +++ b/test/slow/nvm uninstall/setup_dir @@ -1,4 +1,4 @@ #!/bin/sh -. ../../../nvm.sh +\. ../../../nvm.sh nvm install 0.12.7 diff --git a/test/slow/nvm uninstall/teardown_dir b/test/slow/nvm uninstall/teardown_dir index f505f21..2fad54c 100755 --- a/test/slow/nvm uninstall/teardown_dir +++ b/test/slow/nvm uninstall/teardown_dir @@ -1,5 +1,5 @@ #!/bin/sh -. ../../../nvm.sh +\. ../../../nvm.sh nvm uninstall 0.12.7 nvm deactivate diff --git "a/test/slow/nvm use/Running \"nvm use --lts\" uses latest LTS version" "b/test/slow/nvm use/Running \"nvm use --lts\" uses latest LTS version" index fc82a7b..6b9dbe8 100755 --- "a/test/slow/nvm use/Running \"nvm use --lts\" uses latest LTS version" +++ "b/test/slow/nvm use/Running \"nvm use --lts\" uses latest LTS version" @@ -4,7 +4,7 @@ set -ex die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh nvm deactivate >/dev/null 2>&1 || die 'deactivate failed' diff --git "a/test/slow/nvm use/Running \"nvm use --lts=foo\" uses latest \"foo\" LTS version" "b/test/slow/nvm use/Running \"nvm use --lts=foo\" uses latest \"foo\" LTS version" index 73bdd65..13cc53b 100755 --- "a/test/slow/nvm use/Running \"nvm use --lts=foo\" uses latest \"foo\" LTS version" +++ "b/test/slow/nvm use/Running \"nvm use --lts=foo\" uses latest \"foo\" LTS version" @@ -4,7 +4,7 @@ set -ex die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh nvm deactivate 2>&1 >/dev/null || die 'deactivate failed' diff --git "a/test/slow/nvm use/Running \"nvm use iojs\" uses latest io.js version" "b/test/slow/nvm use/Running \"nvm use iojs\" uses latest io.js version" index 506ff86..4e7455d 100755 --- "a/test/slow/nvm use/Running \"nvm use iojs\" uses latest io.js version" +++ "b/test/slow/nvm use/Running \"nvm use iojs\" uses latest io.js version" @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh nvm deactivate 2>&1 >/dev/null || die 'deactivate failed' diff --git "a/test/slow/nvm use/Running \"nvm use node\" uses latest stable node version" "b/test/slow/nvm use/Running \"nvm use node\" uses latest stable node version" index ce84bb6..5cf8000 100755 --- "a/test/slow/nvm use/Running \"nvm use node\" uses latest stable node version" +++ "b/test/slow/nvm use/Running \"nvm use node\" uses latest stable node version" @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh nvm deactivate 2>&1 >/dev/null || die 'deactivate failed' diff --git "a/test/slow/nvm use/Running \"nvm use v1.0.0\" uses iojs-v1.0.0 iojs version" "b/test/slow/nvm use/Running \"nvm use v1.0.0\" uses iojs-v1.0.0 iojs version" index 2416c79..799c2ac 100755 --- "a/test/slow/nvm use/Running \"nvm use v1.0.0\" uses iojs-v1.0.0 iojs version" +++ "b/test/slow/nvm use/Running \"nvm use v1.0.0\" uses iojs-v1.0.0 iojs version" @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh nvm deactivate 2>&1 >/dev/null || die 'deactivate failed' diff --git "a/test/slow/nvm use/Running \"nvm use\" calls \"nvm_die_on_prefix\"" "b/test/slow/nvm use/Running \"nvm use\" calls \"nvm_die_on_prefix\"" index faf9644..53f44b1 100755 --- "a/test/slow/nvm use/Running \"nvm use\" calls \"nvm_die_on_prefix\"" +++ "b/test/slow/nvm use/Running \"nvm use\" calls \"nvm_die_on_prefix\"" @@ -2,7 +2,7 @@ die () { echo $@ ; exit 1; } -. ../../../nvm.sh +\. ../../../nvm.sh nvm deactivate >/dev/null 2>&1 || die 'deactivate failed' diff --git a/test/slow/nvm use/setup_dir b/test/slow/nvm use/setup_dir index 767ab55..e917f0b 100755 --- a/test/slow/nvm use/setup_dir +++ b/test/slow/nvm use/setup_dir @@ -1,6 +1,6 @@ #!/bin/sh -. ../../../nvm.sh +\. ../../../nvm.sh mkdir -p "${NVM_DIR}/.nvm_use_bak" if [ -d "${NVM_DIR}/v*" ]; then diff --git a/test/slow/nvm use/teardown_dir b/test/slow/nvm use/teardown_dir index a1543e5..947be61 100755 --- a/test/slow/nvm use/teardown_dir +++ b/test/slow/nvm use/teardown_dir @@ -1,6 +1,6 @@ #!/bin/sh -. ../../../nvm.sh +\. ../../../nvm.sh for VERSION in "0.8.7" "0.9.1" "0.10.1" "0.11.1"; do nvm uninstall "$VERSION" diff --git a/test/slow/nvm_get_latest/nvm_get_latest b/test/slow/nvm_get_latest/nvm_get_latest index 3348fd5..bb198ee 100755 --- a/test/slow/nvm_get_latest/nvm_get_latest +++ b/test/slow/nvm_get_latest/nvm_get_latest @@ -6,7 +6,7 @@ cleanup() { unset -f curl wget nvm_has } -. ../../../nvm.sh +\. ../../../nvm.sh EXPECTED_VERSION="v12.3.456" URL="https://github.com/creationix/nvm/releases/tag/$EXPECTED_VERSION" diff --git a/test/slow/nvm_get_latest/nvm_get_latest failed redirect b/test/slow/nvm_get_latest/nvm_get_latest failed redirect index cc43b53..3a6aa1d 100755 --- a/test/slow/nvm_get_latest/nvm_get_latest failed redirect +++ b/test/slow/nvm_get_latest/nvm_get_latest failed redirect @@ -6,7 +6,7 @@ cleanup() { unset -f curl wget } -. ../../../nvm.sh +\. ../../../nvm.sh curl() { return 1 diff --git a/test/sourcing/Sourcing nvm.sh should use the default if available b/test/sourcing/Sourcing nvm.sh should use the default if available index 03b2fe3..23a0dc6 100755 --- a/test/sourcing/Sourcing nvm.sh should use the default if available +++ b/test/sourcing/Sourcing nvm.sh should use the default if available @@ -4,8 +4,8 @@ die () { echo $@ ; exit 1; } echo '0.10.1' > ../../alias/default || die 'creation of default alias failed' -. ../../nvm.sh || die 'sourcing returned nonzero exit code' -. ../common.sh +\. ../../nvm.sh || die 'sourcing returned nonzero exit code' +\. ../common.sh NVM_LS_CURRENT="$(nvm ls current | strip_colors | \grep -o v0.10.1)" [ "_$NVM_LS_CURRENT" = '_v0.10.1' ] || die "'nvm ls current' did not return '-> v0.10.1', got '$NVM_LS_CURRENT'" diff --git a/test/sourcing/Sourcing nvm.sh with --install and .nvmrc should install it b/test/sourcing/Sourcing nvm.sh with --install and .nvmrc should install it index edc5614..08cfb93 100755 --- a/test/sourcing/Sourcing nvm.sh with --install and .nvmrc should install it +++ b/test/sourcing/Sourcing nvm.sh with --install and .nvmrc should install it @@ -12,7 +12,7 @@ fi echo '0.10.2' > ../../.nvmrc || die 'creation of .nvmrc failed' -. ../../nvm.sh --install +\. ../../nvm.sh --install EXIT_CODE="$(echo $?)" echo 'sourcing complete.' diff --git a/test/sourcing/Sourcing nvm.sh with --install should install the default b/test/sourcing/Sourcing nvm.sh with --install should install the default index 3b6fbaf..3da82f7 100755 --- a/test/sourcing/Sourcing nvm.sh with --install should install the default +++ b/test/sourcing/Sourcing nvm.sh with --install should install the default @@ -1,5 +1,5 @@ #!/bin/sh -. ../common.sh +\. ../common.sh die () { echo $@ ; exit 1; } supports_source_options () { @@ -15,7 +15,7 @@ echo '0.10.2' > ../../alias/default || die 'creation of default alias failed' echo 'sourcing nvm with --install...' -. ../../nvm.sh --install +\. ../../nvm.sh --install EXIT_CODE="$(echo $?)" echo 'sourcing complete.' diff --git a/test/sourcing/Sourcing nvm.sh with --no-use should not use anything b/test/sourcing/Sourcing nvm.sh with --no-use should not use anything index c0b6533..334deda 100755 --- a/test/sourcing/Sourcing nvm.sh with --no-use should not use anything +++ b/test/sourcing/Sourcing nvm.sh with --no-use should not use anything @@ -10,7 +10,7 @@ if ! supports_source_options; then exit 0; fi -. ../../nvm.sh +\. ../../nvm.sh nvm install 4.1.0 || die 'install of v4.1.0 failed' nvm_version 4.1.0 >/dev/null 2>&1 || die "v4.1.0 not installed: $(nvm ls)" nvm deactivate || die 'nvm deactivate failed' @@ -20,7 +20,7 @@ NVM_CURRENT="$(nvm current)" nvm unload || die 'nvm unload failed' -. ../../nvm.sh --no-use +\. ../../nvm.sh --no-use EXIT_CODE="$(echo $?)" echo 'sourcing complete.' diff --git a/test/sourcing/Sourcing nvm.sh with no default should return 0 b/test/sourcing/Sourcing nvm.sh with no default should return 0 index 91e149a..d2b5f71 100755 --- a/test/sourcing/Sourcing nvm.sh with no default should return 0 +++ b/test/sourcing/Sourcing nvm.sh with no default should return 0 @@ -8,4 +8,4 @@ nvm_alias default && die '"nvm_alias default" did not fail' set -e # necessary to fail internally with a nonzero code -. ../../nvm.sh || die 'sourcing returned nonzero exit code' +\. ../../nvm.sh || die 'sourcing returned nonzero exit code' diff --git a/test/sourcing/setup b/test/sourcing/setup index 201b9c1..c87df10 100755 --- a/test/sourcing/setup +++ b/test/sourcing/setup @@ -7,7 +7,7 @@ rm -rf ../../v0.10.7 rm -rf ../../v0.9.7 rm -rf ../../v0.9.12 -. ../../nvm.sh +\. ../../nvm.sh nvm install 0.10.1 || echo >&2 'nvm install 0.10.1 failed' nvm unalias default || 'removing default alias failed' nvm unload || echo >&2 'nvm unload failed' From 24f8ae5c46d084acf88c2717e8a7cacfca52e9b4 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 3 Nov 2016 23:42:55 -0700 Subject: [PATCH 0865/1426] =?UTF-8?q?[New]=20support=20external=20install?= =?UTF-8?q?=20hook=20=E2=80=9C$NVM=5FINSTALL=5FTHIRD=5FPARTY=5FHOOK?= =?UTF-8?q?=E2=80=9D.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #1207. --- nvm.sh | 70 +++++++++++++++++++---------- test/installation_node/install hook | 40 +++++++++++++++++ 2 files changed, 86 insertions(+), 24 deletions(-) create mode 100755 test/installation_node/install hook diff --git a/nvm.sh b/nvm.sh index 3cb60ad..17d926e 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1567,8 +1567,6 @@ nvm_install_binary() { local VERSION VERSION="$(nvm_strip_iojs_prefix "${PREFIXED_VERSION}")" - local VERSION_PATH - if [ -z "$(nvm_get_os)" ]; then return 2 fi @@ -2358,33 +2356,57 @@ nvm() { return $? fi - if [ "_$NVM_OS" = "_freebsd" ]; then - # node.js and io.js do not have a FreeBSD binary - nobinary=1 - nvm_err "Currently, there is no binary for $NVM_OS" - elif [ "_$NVM_OS" = "_sunos" ]; then - # Not all node/io.js versions have a Solaris binary - if ! nvm_has_solaris_binary "$VERSION"; then - nobinary=1 - nvm_err "Currently, there is no binary of version $VERSION for $NVM_OS" - fi - fi - local NVM_INSTALL_SUCCESS - # skip binary install if "nobinary" option specified. - if [ $nobinary -ne 1 ] && nvm_binary_available "$VERSION"; then - if nvm_install_binary "${FLAVOR}" std "${VERSION}"; then - NVM_INSTALL_SUCCESS=true + if [ -n "${NVM_INSTALL_THIRD_PARTY_HOOK-}" ]; then + nvm_err '** $NVM_INSTALL_THIRD_PARTY_HOOK env var set; dispatching to third-party installation method **' + local NVM_METHOD_PREFERENCE + NVM_METHOD_PREFERENCE='binary' + if [ $nobinary -eq 1 ]; then + NVM_METHOD_PREFERENCE='source' fi - fi - if [ "$NVM_INSTALL_SUCCESS" != true ]; then - if [ -z "${NVM_MAKE_JOBS-}" ]; then - nvm_get_make_jobs + local VERSION_PATH + VERSION_PATH="$(nvm_version_path "${VERSION}")" + local EXIT_CODE + "${NVM_INSTALL_THIRD_PARTY_HOOK}" "${VERSION}" "${FLAVOR}" std "${NVM_METHOD_PREFERENCE}" "${VERSION_PATH}" || { + EXIT_CODE=$? + nvm_err '*** Third-party $NVM_INSTALL_THIRD_PARTY_HOOK env var failed to install! ***' + return $EXIT_CODE + } + if ! nvm_is_version_installed "${VERSION}"; then + nvm_err '*** Third-party $NVM_INSTALL_THIRD_PARTY_HOOK env var claimed to succeed, but failed to install! ***' + return 33 + fi + NVM_INSTALL_SUCCESS=true + else + + if [ "_$NVM_OS" = "_freebsd" ]; then + # node.js and io.js do not have a FreeBSD binary + nobinary=1 + nvm_err "Currently, there is no binary for $NVM_OS" + elif [ "_$NVM_OS" = "_sunos" ]; then + # Not all node/io.js versions have a Solaris binary + if ! nvm_has_solaris_binary "$VERSION"; then + nobinary=1 + nvm_err "Currently, there is no binary of version $VERSION for $NVM_OS" + fi fi - if nvm_install_source "${FLAVOR}" std "${VERSION}" "${NVM_MAKE_JOBS}" "${ADDITIONAL_PARAMETERS}"; then - NVM_INSTALL_SUCCESS=true + # skip binary install if "nobinary" option specified. + if [ $nobinary -ne 1 ] && nvm_binary_available "$VERSION"; then + if nvm_install_binary "${FLAVOR}" std "${VERSION}"; then + NVM_INSTALL_SUCCESS=true + fi fi + if [ "$NVM_INSTALL_SUCCESS" != true ]; then + if [ -z "${NVM_MAKE_JOBS-}" ]; then + nvm_get_make_jobs + fi + + if nvm_install_source "${FLAVOR}" std "${VERSION}" "${NVM_MAKE_JOBS}" "${ADDITIONAL_PARAMETERS}"; then + NVM_INSTALL_SUCCESS=true + fi + fi + fi if [ "$NVM_INSTALL_SUCCESS" = true ] && nvm use "$VERSION"; then diff --git a/test/installation_node/install hook b/test/installation_node/install hook new file mode 100755 index 0000000..e0f4f33 --- /dev/null +++ b/test/installation_node/install hook @@ -0,0 +1,40 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../nvm.sh + +VERSION='v0.11.0' +VERSION_PATH="$(nvm_version_path "${VERSION}")" + +succeed() { + nvm_echo "$@" + NVM_INSTALL_THIRD_PARTY_HOOK= nvm install "${VERSION}" +} + +fail() { + succeed "$@" + return 11 +} + +! nvm_is_version_installed "${VERSION}" || nvm uninstall "${VERSION}" || die 'uninstall failed' + +OUTPUT="$(NVM_INSTALL_THIRD_PARTY_HOOK=succeed nvm install "${VERSION}")" +USE_OUTPUT="$(nvm use "${VERSION}")" +EXPECTED_OUTPUT="${VERSION} node std binary ${VERSION_PATH} +${USE_OUTPUT} +${USE_OUTPUT}" # double use output is from the normal install in succeed() + +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" + +! nvm_is_version_installed "${VERSION}" || nvm uninstall "${VERSION}" || die 'uninstall 2 failed' + +OUTPUT="$(NVM_INSTALL_THIRD_PARTY_HOOK=fail nvm install "${VERSION}" || echo 'failed')" +USE_OUTPUT="$(nvm use "${VERSION}")" +EXPECTED_OUTPUT="${VERSION} node std binary ${VERSION_PATH} +${USE_OUTPUT} +failed" + +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" + + From f7763c8ba96e61825e34ebaf979811a1bde2a997 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 7 Nov 2016 03:34:36 +0800 Subject: [PATCH 0866/1426] [Tests] die() in tests should quote "$@" for echo --- .../\"nvm alias\" should not accept aliases with slashes" | 2 +- .../\"nvm unalias\" should not accept aliases with slashes" | 2 +- ...alias \" again should change the target" | 2 +- ...\"nvm alias\" lists implicit aliases when they do not exist" | 2 +- ...sts manual aliases instead of implicit aliases when present" | 2 +- .../Aliases/Running \"nvm alias\" should list all aliases." | 2 +- test/fast/Aliases/circular/nvm_resolve_alias | 2 +- test/fast/Aliases/circular/nvm_resolve_local_alias | 2 +- .../lts/\"nvm alias\" should ensure LTS alias dir exists" | 2 +- test/fast/Aliases/nvm_ensure_default_set | 2 +- test/fast/Aliases/nvm_resolve_alias | 2 +- test/fast/Aliases/nvm_resolve_local_alias | 2 +- ...ning \"nvm which 0.0.2\" should display only version 0.0.2." | 2 +- ...Running \"nvm ls 0.0.2\" should display only version 0.0.2." | 2 +- .../Running \"nvm ls 0.2\" should display only 0.2.x versions." | 2 +- ... ls unstable\" should return the appropriate implicit alias" | 2 +- ..."nvm ls system\" should include \"system\" when appropriate" | 2 +- ...nning \"nvm ls\" should include \"system\" when appropriate" | 2 +- ...nvm ls\" should list versions in the \"versions\" directory" | 2 +- ...ing \"nvm current\" should display current nvm environment." | 2 +- ...vm deactivate\" should unset the nvm environment variables." | 2 +- ...with \"--reinstall-packages-from\" requires a valid version" | 2 +- ...unning \"nvm install\" with an invalid version fails nicely" | 2 +- ...ing \"nvm unload\" should unset all function and variables." | 2 +- .../Running \"nvm use foo\" where \"foo\" is circular aborts" | 2 +- "test/fast/Running \"nvm use iojs\" uses latest io.js version" | 2 +- "test/fast/Running \"nvm use system\" should work as expected" | 2 +- test/fast/Unit tests/iojs_version_has_solaris_binary | 2 +- test/fast/Unit tests/node_version_has_solaris_binary | 2 +- test/fast/Unit tests/nvm ls-remote | 2 +- test/fast/Unit tests/nvm version-remote | 2 +- test/fast/Unit tests/nvm_add_iojs_prefix | 2 +- test/fast/Unit tests/nvm_alias | 2 +- test/fast/Unit tests/nvm_alias_path | 2 +- test/fast/Unit tests/nvm_checksum | 2 +- test/fast/Unit tests/nvm_compare_checksum | 2 +- test/fast/Unit tests/nvm_compute_checksum | 2 +- test/fast/Unit tests/nvm_die_on_prefix | 2 +- test/fast/Unit tests/nvm_ensure_default_set | 2 +- test/fast/Unit tests/nvm_ensure_version_installed | 2 +- test/fast/Unit tests/nvm_ensure_version_prefix | 2 +- test/fast/Unit tests/nvm_find_up | 2 +- test/fast/Unit tests/nvm_format_version | 2 +- test/fast/Unit tests/nvm_get_arch | 2 +- test/fast/Unit tests/nvm_get_checksum | 2 +- test/fast/Unit tests/nvm_get_checksum_alg | 2 +- test/fast/Unit tests/nvm_get_latest missing curl or wget | 2 +- test/fast/Unit tests/nvm_get_minor_version | 2 +- test/fast/Unit tests/nvm_get_mirror | 2 +- test/fast/Unit tests/nvm_has | 2 +- test/fast/Unit tests/nvm_has_solaris_binary | 2 +- test/fast/Unit tests/nvm_has_system_iojs | 2 +- test/fast/Unit tests/nvm_has_system_node | 2 +- test/fast/Unit tests/nvm_iojs_prefix | 2 +- test/fast/Unit tests/nvm_is_alias | 2 +- test/fast/Unit tests/nvm_is_iojs_version | 2 +- test/fast/Unit tests/nvm_is_merged_node_version | 2 +- test/fast/Unit tests/nvm_is_natural_num | 2 +- test/fast/Unit tests/nvm_is_valid_version | 2 +- test/fast/Unit tests/nvm_ls_current | 2 +- test/fast/Unit tests/nvm_ls_remote | 2 +- test/fast/Unit tests/nvm_ls_remote LTS aliases | 2 +- test/fast/Unit tests/nvm_ls_remote_iojs | 2 +- test/fast/Unit tests/nvm_make_alias | 2 +- test/fast/Unit tests/nvm_node_prefix | 2 +- test/fast/Unit tests/nvm_num_version_groups | 2 +- test/fast/Unit tests/nvm_prepend_path | 2 +- test/fast/Unit tests/nvm_print_alias_path | 2 +- test/fast/Unit tests/nvm_print_default_alias | 2 +- test/fast/Unit tests/nvm_print_implicit_alias errors | 2 +- test/fast/Unit tests/nvm_print_implicit_alias success | 2 +- test/fast/Unit tests/nvm_print_npm_version | 2 +- test/fast/Unit tests/nvm_remote_version | 2 +- test/fast/Unit tests/nvm_remote_versions | 2 +- test/fast/Unit tests/nvm_strip_iojs_prefix | 2 +- test/fast/Unit tests/nvm_strip_path | 2 +- test/fast/Unit tests/nvm_supports_xz | 2 +- test/fast/Unit tests/nvm_tree_contains_path | 2 +- test/fast/Unit tests/nvm_validate_implicit_alias | 2 +- test/fast/Unit tests/nvm_version | 2 +- test/fast/Unit tests/nvm_version_dir | 2 +- test/fast/Unit tests/nvm_version_greater | 2 +- test/fast/Unit tests/nvm_version_path | 2 +- test/install_script/nvm_check_global_modules | 2 +- test/install_script/nvm_do_install | 2 +- test/install_script/nvm_install_dir | 2 +- test/install_script/nvm_reset | 2 +- test/install_script/nvm_source | 2 +- test/installation_iojs/install already installed uses it | 2 +- test/installation_iojs/install from binary | 2 +- test/installation_iojs/install from source | 2 +- .../install two versions and use the latest one | 2 +- .../install version specified in .nvmrc from binary | 2 +- .../install version specified in .nvmrc from source | 2 +- test/installation_iojs/install while reinstalling packages | 2 +- test/installation_iojs/nvm install v1 works | 2 +- test/installation_node/install LTS | 2 +- test/installation_node/install already installed uses it | 2 +- test/installation_node/install from binary | 2 +- test/installation_node/install from source | 2 +- test/installation_node/install from source implicitly | 2 +- .../installation_node/install from source with thread parameter | 2 +- .../install from source without V8 snapshot for ARM | 2 +- test/installation_node/install hook | 2 +- .../install two versions and use the latest one | 2 +- .../install version specified in .nvmrc from binary | 2 +- .../install version specified in .nvmrc from source | 2 +- test/installation_node/install while reinstalling packages | 2 +- ...ing \"nvm current\" should display current nvm environment." | 2 +- test/slow/node 0.6.21 should install 0.6.21-pre | 2 +- .../slow/nvm exec/Preamble works and respects \"silent\" flag" | 2 +- "test/slow/nvm exec/Running \"nvm exec --lts\" should work" | 2 +- "test/slow/nvm exec/Running \"nvm exec 0.x\" should work" | 2 +- .../Running \"nvm exec\" should pick up .nvmrc version" | 2 +- ...ng \"nvm copy-packages $(nvm ls current)\" should error out" | 2 +- .../Running \"nvm run --harmony --version\" should work" | 2 +- "test/slow/nvm run/Running \"nvm run --lts\" should work" | 2 +- ...n 0.x\" should error out sensibly when 0.x is not installed" | 2 +- "test/slow/nvm run/Running \"nvm run 0.x\" should work" | 2 +- .../nvm run/Running \"nvm run\" should pick up .nvmrc version" | 2 +- .../Running \"nvm uninstall 0.12.6\" uninstalls v0.12.6" | 2 +- ...vm uninstall\" with incorrect file permissions fails nicely" | 2 +- .../nvm use/Running \"nvm use --lts\" uses latest LTS version" | 2 +- ...nning \"nvm use --lts=foo\" uses latest \"foo\" LTS version" | 2 +- .../nvm use/Running \"nvm use iojs\" uses latest io.js version" | 2 +- .../Running \"nvm use node\" uses latest stable node version" | 2 +- .../Running \"nvm use v1.0.0\" uses iojs-v1.0.0 iojs version" | 2 +- .../nvm use/Running \"nvm use\" calls \"nvm_die_on_prefix\"" | 2 +- test/slow/nvm_get_latest/nvm_get_latest | 2 +- test/slow/nvm_get_latest/nvm_get_latest failed redirect | 2 +- .../Sourcing nvm.sh should use the default if available | 2 +- .../Sourcing nvm.sh with --install and .nvmrc should install it | 2 +- .../Sourcing nvm.sh with --install should install the default | 2 +- .../Sourcing nvm.sh with --no-use should not use anything | 2 +- test/sourcing/Sourcing nvm.sh with no default should return 0 | 2 +- 135 files changed, 135 insertions(+), 135 deletions(-) diff --git "a/test/fast/Aliases/\"nvm alias\" should not accept aliases with slashes" "b/test/fast/Aliases/\"nvm alias\" should not accept aliases with slashes" index 0c2869e..1d71a1c 100755 --- "a/test/fast/Aliases/\"nvm alias\" should not accept aliases with slashes" +++ "b/test/fast/Aliases/\"nvm alias\" should not accept aliases with slashes" @@ -2,7 +2,7 @@ \. ../../../nvm.sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } OUTPUT="$(nvm alias foo/bar baz 2>&1)" EXPECTED_OUTPUT="Aliases in subdirectories are not supported." diff --git "a/test/fast/Aliases/\"nvm unalias\" should not accept aliases with slashes" "b/test/fast/Aliases/\"nvm unalias\" should not accept aliases with slashes" index ac399de..f7e226f 100755 --- "a/test/fast/Aliases/\"nvm unalias\" should not accept aliases with slashes" +++ "b/test/fast/Aliases/\"nvm unalias\" should not accept aliases with slashes" @@ -2,7 +2,7 @@ \. ../../../nvm.sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } OUTPUT="$(nvm unalias foo/bar 2>&1)" EXPECTED_OUTPUT="Aliases in subdirectories are not supported." diff --git "a/test/fast/Aliases/Running \"nvm alias \" again should change the target" "b/test/fast/Aliases/Running \"nvm alias \" again should change the target" index bd57bc6..f366beb 100755 --- "a/test/fast/Aliases/Running \"nvm alias \" again should change the target" +++ "b/test/fast/Aliases/Running \"nvm alias \" again should change the target" @@ -3,7 +3,7 @@ \. ../../../nvm.sh \. ../../common.sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } if [ -n "$ZSH_VERSION" ]; then # set clobber option in order to test that this does not produce any diff --git "a/test/fast/Aliases/Running \"nvm alias\" lists implicit aliases when they do not exist" "b/test/fast/Aliases/Running \"nvm alias\" lists implicit aliases when they do not exist" index 1df6638..4b00855 100755 --- "a/test/fast/Aliases/Running \"nvm alias\" lists implicit aliases when they do not exist" +++ "b/test/fast/Aliases/Running \"nvm alias\" lists implicit aliases when they do not exist" @@ -3,7 +3,7 @@ \. ../../../nvm.sh \. ../../common.sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } NVM_ALIAS_OUTPUT=$(nvm alias | strip_colors) diff --git "a/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" "b/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" index e6babc6..25871fd 100755 --- "a/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" +++ "b/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" @@ -3,7 +3,7 @@ \. ../../../nvm.sh \. ../../common.sh -die () { echo $@ ; cleanup ; exit 1; } +die () { echo "$@" ; cleanup ; exit 1; } cleanup () { rm -rf "$(nvm_alias_path)/stable" rm -rf "$(nvm_alias_path)/unstable" diff --git "a/test/fast/Aliases/Running \"nvm alias\" should list all aliases." "b/test/fast/Aliases/Running \"nvm alias\" should list all aliases." index 5223e09..d620fe5 100755 --- "a/test/fast/Aliases/Running \"nvm alias\" should list all aliases." +++ "b/test/fast/Aliases/Running \"nvm alias\" should list all aliases." @@ -3,7 +3,7 @@ \. ../../../nvm.sh \. ../../common.sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } NVM_ALIAS_OUTPUT="$(nvm alias | strip_colors)" echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-1 -> 0.0.1 (-> v0.0.1)' \ diff --git a/test/fast/Aliases/circular/nvm_resolve_alias b/test/fast/Aliases/circular/nvm_resolve_alias index af351a5..ee772bb 100755 --- a/test/fast/Aliases/circular/nvm_resolve_alias +++ b/test/fast/Aliases/circular/nvm_resolve_alias @@ -1,7 +1,7 @@ #!/bin/sh \. ../../../common.sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../../nvm.sh diff --git a/test/fast/Aliases/circular/nvm_resolve_local_alias b/test/fast/Aliases/circular/nvm_resolve_local_alias index 631acda..0d4b200 100755 --- a/test/fast/Aliases/circular/nvm_resolve_local_alias +++ b/test/fast/Aliases/circular/nvm_resolve_local_alias @@ -1,7 +1,7 @@ #!/bin/sh \. ../../../common.sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../../nvm.sh diff --git "a/test/fast/Aliases/lts/\"nvm alias\" should ensure LTS alias dir exists" "b/test/fast/Aliases/lts/\"nvm alias\" should ensure LTS alias dir exists" index 0a1d909..1afa44a 100755 --- "a/test/fast/Aliases/lts/\"nvm alias\" should ensure LTS alias dir exists" +++ "b/test/fast/Aliases/lts/\"nvm alias\" should ensure LTS alias dir exists" @@ -7,7 +7,7 @@ set -ex LTS_ALIAS_PATH="$(nvm_alias_path)/lts" -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } [ ! -d "${LTS_ALIAS_PATH}" ] || die "'${LTS_ALIAS_PATH}' exists and should not" diff --git a/test/fast/Aliases/nvm_ensure_default_set b/test/fast/Aliases/nvm_ensure_default_set index 34f08a3..7e7dab8 100755 --- a/test/fast/Aliases/nvm_ensure_default_set +++ b/test/fast/Aliases/nvm_ensure_default_set @@ -2,7 +2,7 @@ \. ../../common.sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Aliases/nvm_resolve_alias b/test/fast/Aliases/nvm_resolve_alias index 837f0a2..4520aa1 100755 --- a/test/fast/Aliases/nvm_resolve_alias +++ b/test/fast/Aliases/nvm_resolve_alias @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Aliases/nvm_resolve_local_alias b/test/fast/Aliases/nvm_resolve_local_alias index f0d40bd..06f4374 100755 --- a/test/fast/Aliases/nvm_resolve_local_alias +++ b/test/fast/Aliases/nvm_resolve_local_alias @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git "a/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." "b/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." index 05e8f25..adbdb8c 100755 --- "a/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." +++ "b/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." @@ -6,7 +6,7 @@ mkdir -p "${NVM_DIR}/v0.0.2" mkdir -p "${NVM_DIR}/v0.0.20" mkdir -p "${NVM_DIR}/versions/node/v0.12.0" -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } # The result should contain only the appropriate version numbers. diff --git "a/test/fast/Listing versions/Running \"nvm ls 0.0.2\" should display only version 0.0.2." "b/test/fast/Listing versions/Running \"nvm ls 0.0.2\" should display only version 0.0.2." index fc73888..faed0a6 100755 --- "a/test/fast/Listing versions/Running \"nvm ls 0.0.2\" should display only version 0.0.2." +++ "b/test/fast/Listing versions/Running \"nvm ls 0.0.2\" should display only version 0.0.2." @@ -5,7 +5,7 @@ mkdir "${NVM_DIR}/v0.0.2" mkdir "${NVM_DIR}/v0.0.20" -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } # The result should contain only the appropriate version numbers. diff --git "a/test/fast/Listing versions/Running \"nvm ls 0.2\" should display only 0.2.x versions." "b/test/fast/Listing versions/Running \"nvm ls 0.2\" should display only 0.2.x versions." index 0d06a24..edddf01 100755 --- "a/test/fast/Listing versions/Running \"nvm ls 0.2\" should display only 0.2.x versions." +++ "b/test/fast/Listing versions/Running \"nvm ls 0.2\" should display only 0.2.x versions." @@ -6,7 +6,7 @@ mkdir "${NVM_DIR}/v0.1.3" mkdir "${NVM_DIR}/v0.2.3" mkdir "${NVM_DIR}/v0.20.3" -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } # The result should contain only the appropriate version numbers. diff --git "a/test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" "b/test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" index c634799..61e890a 100755 --- "a/test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" +++ "b/test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" @@ -2,7 +2,7 @@ \. ../../../nvm.sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } mkdir "${NVM_DIR}/v0.2.3" mkdir "${NVM_DIR}/v0.3.3" diff --git "a/test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" "b/test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" index a570777..c858876 100755 --- "a/test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" +++ "b/test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should include \"system\" when appropriate" "b/test/fast/Listing versions/Running \"nvm ls\" should include \"system\" when appropriate" index bfd4c55..3ab0f2d 100755 --- "a/test/fast/Listing versions/Running \"nvm ls\" should include \"system\" when appropriate" +++ "b/test/fast/Listing versions/Running \"nvm ls\" should include \"system\" when appropriate" @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" "b/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" index 76225e3..864494a 100755 --- "a/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" +++ "b/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git "a/test/fast/Running \"nvm current\" should display current nvm environment." "b/test/fast/Running \"nvm current\" should display current nvm environment." index 3c114a6..1d4d19b 100755 --- "a/test/fast/Running \"nvm current\" should display current nvm environment." +++ "b/test/fast/Running \"nvm current\" should display current nvm environment." @@ -2,7 +2,7 @@ set -ex -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../nvm.sh diff --git "a/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." "b/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." index e5fbb6f..af9ecef 100755 --- "a/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." +++ "b/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." @@ -4,7 +4,7 @@ set -ex mkdir -p ../../v0.2.3 -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } [ `expr $PATH : ".*v0.2.3/.*/bin"` = 0 ] || echo "WARNING: Unexpectedly found v0.2.3 already active" >&2 diff --git "a/test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" "b/test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" index ec02cec..b2a955a 100755 --- "a/test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" +++ "b/test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" @@ -2,7 +2,7 @@ set -ex -die () { echo $@ ; cleanup ; exit 1; } +die () { echo "$@" ; cleanup ; exit 1; } cleanup () { rm -rf "${NVM_DIR}/v0.10.4" } diff --git "a/test/fast/Running \"nvm install\" with an invalid version fails nicely" "b/test/fast/Running \"nvm install\" with an invalid version fails nicely" index 56b292c..6b28d6d 100755 --- "a/test/fast/Running \"nvm install\" with an invalid version fails nicely" +++ "b/test/fast/Running \"nvm install\" with an invalid version fails nicely" @@ -2,7 +2,7 @@ set -ex -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../nvm.sh diff --git "a/test/fast/Running \"nvm unload\" should unset all function and variables." "b/test/fast/Running \"nvm unload\" should unset all function and variables." index 783d23b..6634de1 100755 --- "a/test/fast/Running \"nvm unload\" should unset all function and variables." +++ "b/test/fast/Running \"nvm unload\" should unset all function and variables." @@ -2,7 +2,7 @@ set -ex -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../nvm.sh diff --git "a/test/fast/Running \"nvm use foo\" where \"foo\" is circular aborts" "b/test/fast/Running \"nvm use foo\" where \"foo\" is circular aborts" index a5f2029..2b9fc92 100755 --- "a/test/fast/Running \"nvm use foo\" where \"foo\" is circular aborts" +++ "b/test/fast/Running \"nvm use foo\" where \"foo\" is circular aborts" @@ -2,7 +2,7 @@ set -ex -die () { echo $@ ; cleanup ; exit 1; } +die () { echo "$@" ; cleanup ; exit 1; } cleanup() { rm -rf "$(nvm_alias_path)/foo" diff --git "a/test/fast/Running \"nvm use iojs\" uses latest io.js version" "b/test/fast/Running \"nvm use iojs\" uses latest io.js version" index 23355ca..fafc9c7 100755 --- "a/test/fast/Running \"nvm use iojs\" uses latest io.js version" +++ "b/test/fast/Running \"nvm use iojs\" uses latest io.js version" @@ -4,7 +4,7 @@ set -ex \. ../common.sh -die () { echo $@ ; cleanup ; exit 1; } +die () { echo "$@" ; cleanup ; exit 1; } VERSION="v3.99.0" diff --git "a/test/fast/Running \"nvm use system\" should work as expected" "b/test/fast/Running \"nvm use system\" should work as expected" index 9a0c509..b268205 100755 --- "a/test/fast/Running \"nvm use system\" should work as expected" +++ "b/test/fast/Running \"nvm use system\" should work as expected" @@ -5,7 +5,7 @@ set -ex cleanup() { unset -f nvm_has_system_node nvm_print_npm_version } -die() { echo $@ ; cleanup ; exit 1; } +die() { echo "$@" ; cleanup ; exit 1; } \. ../../nvm.sh diff --git a/test/fast/Unit tests/iojs_version_has_solaris_binary b/test/fast/Unit tests/iojs_version_has_solaris_binary index 8369ef5..fc0e119 100755 --- a/test/fast/Unit tests/iojs_version_has_solaris_binary +++ b/test/fast/Unit tests/iojs_version_has_solaris_binary @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh \. ../../common.sh diff --git a/test/fast/Unit tests/node_version_has_solaris_binary b/test/fast/Unit tests/node_version_has_solaris_binary index 2a12fe7..b9c72f8 100755 --- a/test/fast/Unit tests/node_version_has_solaris_binary +++ b/test/fast/Unit tests/node_version_has_solaris_binary @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh \. ../../common.sh diff --git a/test/fast/Unit tests/nvm ls-remote b/test/fast/Unit tests/nvm ls-remote index 7ef0487..074cfe2 100755 --- a/test/fast/Unit tests/nvm ls-remote +++ b/test/fast/Unit tests/nvm ls-remote @@ -2,7 +2,7 @@ set -ex -die () { echo $@ ; cleanup ; exit 1; } +die () { echo "$@" ; cleanup ; exit 1; } cleanup() { unset -f nvm_download nvm_ls_remote nvm_ls_remote_iojs diff --git a/test/fast/Unit tests/nvm version-remote b/test/fast/Unit tests/nvm version-remote index 12ef585..6a3beeb 100755 --- a/test/fast/Unit tests/nvm version-remote +++ b/test/fast/Unit tests/nvm version-remote @@ -2,7 +2,7 @@ set -ex -die () { echo $@ ; cleanup ; exit 1; } +die () { echo "$@" ; cleanup ; exit 1; } cleanup() { unset -f nvm_remote_version diff --git a/test/fast/Unit tests/nvm_add_iojs_prefix b/test/fast/Unit tests/nvm_add_iojs_prefix index 4ad727e..f947118 100755 --- a/test/fast/Unit tests/nvm_add_iojs_prefix +++ b/test/fast/Unit tests/nvm_add_iojs_prefix @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_alias b/test/fast/Unit tests/nvm_alias index 6c350f5..30917fc 100755 --- a/test/fast/Unit tests/nvm_alias +++ b/test/fast/Unit tests/nvm_alias @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; cleanup ; exit 1; } +die () { echo "$@" ; cleanup ; exit 1; } cleanup () { rm -rf ../../../alias/test diff --git a/test/fast/Unit tests/nvm_alias_path b/test/fast/Unit tests/nvm_alias_path index aaf7b1f..f62c352 100755 --- a/test/fast/Unit tests/nvm_alias_path +++ b/test/fast/Unit tests/nvm_alias_path @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_checksum b/test/fast/Unit tests/nvm_checksum index 2075733..4103af1 100755 --- a/test/fast/Unit tests/nvm_checksum +++ b/test/fast/Unit tests/nvm_checksum @@ -4,7 +4,7 @@ cleanup () { rm tmp/emptyfile tmp/testfile rmdir tmp } -die () { echo $@ ; cleanup; exit 1; } +die () { echo "$@" ; cleanup; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_compare_checksum b/test/fast/Unit tests/nvm_compare_checksum index d9ddc6d..c14aee4 100755 --- a/test/fast/Unit tests/nvm_compare_checksum +++ b/test/fast/Unit tests/nvm_compare_checksum @@ -3,7 +3,7 @@ cleanup () { unset -f nvm_compute_checksum } -die () { echo $@ ; cleanup ; exit 1; } +die () { echo "$@" ; cleanup ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_compute_checksum b/test/fast/Unit tests/nvm_compute_checksum index 1ca5cce..6b52eb9 100755 --- a/test/fast/Unit tests/nvm_compute_checksum +++ b/test/fast/Unit tests/nvm_compute_checksum @@ -2,7 +2,7 @@ set -ex -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_die_on_prefix b/test/fast/Unit tests/nvm_die_on_prefix index 67dfe50..3ce4a35 100755 --- a/test/fast/Unit tests/nvm_die_on_prefix +++ b/test/fast/Unit tests/nvm_die_on_prefix @@ -5,7 +5,7 @@ cleanup () { alias npm='\npm' unset -f nvm_has npm } -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_ensure_default_set b/test/fast/Unit tests/nvm_ensure_default_set index 8a40891..14b53eb 100755 --- a/test/fast/Unit tests/nvm_ensure_default_set +++ b/test/fast/Unit tests/nvm_ensure_default_set @@ -2,7 +2,7 @@ \. ../../common.sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_ensure_version_installed b/test/fast/Unit tests/nvm_ensure_version_installed index f96d9bd..4e167ed 100755 --- a/test/fast/Unit tests/nvm_ensure_version_installed +++ b/test/fast/Unit tests/nvm_ensure_version_installed @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; cleanup ; exit 1; } +die () { echo "$@" ; cleanup ; exit 1; } cleanup () { rm -rf "$(nvm_version_path v0.1.2)" } diff --git a/test/fast/Unit tests/nvm_ensure_version_prefix b/test/fast/Unit tests/nvm_ensure_version_prefix index 08ed4a8..b54ea02 100755 --- a/test/fast/Unit tests/nvm_ensure_version_prefix +++ b/test/fast/Unit tests/nvm_ensure_version_prefix @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_find_up b/test/fast/Unit tests/nvm_find_up index f035d06..bdef19f 100755 --- a/test/fast/Unit tests/nvm_find_up +++ b/test/fast/Unit tests/nvm_find_up @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; cleanup ; exit 1; } +die () { echo "$@" ; cleanup ; exit 1; } setup() { cleanup mkdir -p tmp_nvm_find_up/a/b/c/d diff --git a/test/fast/Unit tests/nvm_format_version b/test/fast/Unit tests/nvm_format_version index 1a2396a..615aa35 100755 --- a/test/fast/Unit tests/nvm_format_version +++ b/test/fast/Unit tests/nvm_format_version @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_get_arch b/test/fast/Unit tests/nvm_get_arch index db19906..f064203 100755 --- a/test/fast/Unit tests/nvm_get_arch +++ b/test/fast/Unit tests/nvm_get_arch @@ -9,7 +9,7 @@ cleanup() { export PATH=ORIG_PATH } -die () { cleanup; echo $@ ; exit 1; } +die () { cleanup; echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_get_checksum b/test/fast/Unit tests/nvm_get_checksum index d842b14..53e6839 100755 --- a/test/fast/Unit tests/nvm_get_checksum +++ b/test/fast/Unit tests/nvm_get_checksum @@ -5,7 +5,7 @@ set -ex cleanup () { unset -f nvm_download nvm_get_checksum_alg nvm_get_mirror } -die () { echo $@ ; cleanup ; exit 1; } +die () { echo "$@" ; cleanup ; exit 1; } set +e # TODO: fix \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_get_checksum_alg b/test/fast/Unit tests/nvm_get_checksum_alg index e26ca44..6a68e8c 100755 --- a/test/fast/Unit tests/nvm_get_checksum_alg +++ b/test/fast/Unit tests/nvm_get_checksum_alg @@ -2,7 +2,7 @@ set -ex -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_get_latest missing curl or wget b/test/fast/Unit tests/nvm_get_latest missing curl or wget index 5fede18..2c9b1da 100755 --- a/test/fast/Unit tests/nvm_get_latest missing curl or wget +++ b/test/fast/Unit tests/nvm_get_latest missing curl or wget @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; cleanup ; exit 1; } +die () { echo "$@" ; cleanup ; exit 1; } cleanup() { unset -f nvm_has diff --git a/test/fast/Unit tests/nvm_get_minor_version b/test/fast/Unit tests/nvm_get_minor_version index 24fb41d..dbfea5d 100755 --- a/test/fast/Unit tests/nvm_get_minor_version +++ b/test/fast/Unit tests/nvm_get_minor_version @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_get_mirror b/test/fast/Unit tests/nvm_get_mirror index b4a5d17..7067ff9 100755 --- a/test/fast/Unit tests/nvm_get_mirror +++ b/test/fast/Unit tests/nvm_get_mirror @@ -2,7 +2,7 @@ set -ex -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_has b/test/fast/Unit tests/nvm_has index 5eb9d5b..c1a3b59 100755 --- a/test/fast/Unit tests/nvm_has +++ b/test/fast/Unit tests/nvm_has @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_has_solaris_binary b/test/fast/Unit tests/nvm_has_solaris_binary index 9adcd76..83ca97e 100755 --- a/test/fast/Unit tests/nvm_has_solaris_binary +++ b/test/fast/Unit tests/nvm_has_solaris_binary @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh \. ../../common.sh diff --git a/test/fast/Unit tests/nvm_has_system_iojs b/test/fast/Unit tests/nvm_has_system_iojs index 0416b71..5d3240b 100755 --- a/test/fast/Unit tests/nvm_has_system_iojs +++ b/test/fast/Unit tests/nvm_has_system_iojs @@ -5,7 +5,7 @@ cleanup () { rm "${NVM_DIR}/versions/io.js/v0.1.2/iojs" rmdir "${NVM_DIR}/versions/io.js/v0.1.2" } -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_has_system_node b/test/fast/Unit tests/nvm_has_system_node index ea1acfb..86f6bbc 100755 --- a/test/fast/Unit tests/nvm_has_system_node +++ b/test/fast/Unit tests/nvm_has_system_node @@ -5,7 +5,7 @@ cleanup () { rm -rf "${NVM_DIR}/v0.1.2/node" } -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } mkdir "${NVM_DIR}/v0.1.2" touch "${NVM_DIR}/v0.1.2/node" diff --git a/test/fast/Unit tests/nvm_iojs_prefix b/test/fast/Unit tests/nvm_iojs_prefix index f51d2c3..fef2373 100755 --- a/test/fast/Unit tests/nvm_iojs_prefix +++ b/test/fast/Unit tests/nvm_iojs_prefix @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_is_alias b/test/fast/Unit tests/nvm_is_alias index a05fc49..eba9506 100755 --- a/test/fast/Unit tests/nvm_is_alias +++ b/test/fast/Unit tests/nvm_is_alias @@ -1,7 +1,7 @@ #!/bin/sh cleanup () { unalias foo; unalias grep; } -die () { echo $@ ; cleanup ; exit 1; } +die () { echo "$@" ; cleanup ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_is_iojs_version b/test/fast/Unit tests/nvm_is_iojs_version index 73803aa..d846e71 100755 --- a/test/fast/Unit tests/nvm_is_iojs_version +++ b/test/fast/Unit tests/nvm_is_iojs_version @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_is_merged_node_version b/test/fast/Unit tests/nvm_is_merged_node_version index b7cc0a3..7501c2a 100755 --- a/test/fast/Unit tests/nvm_is_merged_node_version +++ b/test/fast/Unit tests/nvm_is_merged_node_version @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_is_natural_num b/test/fast/Unit tests/nvm_is_natural_num index 8d08807..d66d6c8 100755 --- a/test/fast/Unit tests/nvm_is_natural_num +++ b/test/fast/Unit tests/nvm_is_natural_num @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_is_valid_version b/test/fast/Unit tests/nvm_is_valid_version index d98e60f..edfe537 100755 --- a/test/fast/Unit tests/nvm_is_valid_version +++ b/test/fast/Unit tests/nvm_is_valid_version @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_ls_current b/test/fast/Unit tests/nvm_ls_current index 4fe484b..8ed8020 100755 --- a/test/fast/Unit tests/nvm_ls_current +++ b/test/fast/Unit tests/nvm_ls_current @@ -4,7 +4,7 @@ TEST_PWD=$(pwd) TEST_DIR="$TEST_PWD/nvm_ls_current_tmp" cleanup() { rm -rf "$TEST_DIR"; unset -f return_zero; alias node='node' ; unalias node; } -die () { echo $@ ; cleanup ; exit 1; } +die () { echo "$@" ; cleanup ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_ls_remote b/test/fast/Unit tests/nvm_ls_remote index 0c194eb..2171650 100755 --- a/test/fast/Unit tests/nvm_ls_remote +++ b/test/fast/Unit tests/nvm_ls_remote @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; cleanup ; exit 1; } +die () { echo "$@" ; cleanup ; exit 1; } cleanup() { unset -f nvm_download diff --git a/test/fast/Unit tests/nvm_ls_remote LTS aliases b/test/fast/Unit tests/nvm_ls_remote LTS aliases index 2f35388..250aefa 100755 --- a/test/fast/Unit tests/nvm_ls_remote LTS aliases +++ b/test/fast/Unit tests/nvm_ls_remote LTS aliases @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; cleanup ; exit 1; } +die () { echo "$@" ; cleanup ; exit 1; } TEST_PATH="$PWD/test_output" mkdir -p "$TEST_PATH" diff --git a/test/fast/Unit tests/nvm_ls_remote_iojs b/test/fast/Unit tests/nvm_ls_remote_iojs index a23156c..76280ee 100755 --- a/test/fast/Unit tests/nvm_ls_remote_iojs +++ b/test/fast/Unit tests/nvm_ls_remote_iojs @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; cleanup ; exit 1; } +die () { echo "$@" ; cleanup ; exit 1; } cleanup() { unset -f nvm_download diff --git a/test/fast/Unit tests/nvm_make_alias b/test/fast/Unit tests/nvm_make_alias index 1759bb6..f04e518 100755 --- a/test/fast/Unit tests/nvm_make_alias +++ b/test/fast/Unit tests/nvm_make_alias @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_node_prefix b/test/fast/Unit tests/nvm_node_prefix index 13e3f51..c0ffd1d 100755 --- a/test/fast/Unit tests/nvm_node_prefix +++ b/test/fast/Unit tests/nvm_node_prefix @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_num_version_groups b/test/fast/Unit tests/nvm_num_version_groups index b6da88e..45f7926 100755 --- a/test/fast/Unit tests/nvm_num_version_groups +++ b/test/fast/Unit tests/nvm_num_version_groups @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_prepend_path b/test/fast/Unit tests/nvm_prepend_path index f46e024..37df3f9 100755 --- a/test/fast/Unit tests/nvm_prepend_path +++ b/test/fast/Unit tests/nvm_prepend_path @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_print_alias_path b/test/fast/Unit tests/nvm_print_alias_path index 0d0babe..14cf152 100755 --- a/test/fast/Unit tests/nvm_print_alias_path +++ b/test/fast/Unit tests/nvm_print_alias_path @@ -1,7 +1,7 @@ #!/bin/sh \. ../../common.sh -die () { echo $@ ; cleanup ; exit 1; } +die () { echo "$@" ; cleanup ; exit 1; } cleanup () { unset -f nvm_alias nvm_version diff --git a/test/fast/Unit tests/nvm_print_default_alias b/test/fast/Unit tests/nvm_print_default_alias index 4915a19..fcb3ab2 100755 --- a/test/fast/Unit tests/nvm_print_default_alias +++ b/test/fast/Unit tests/nvm_print_default_alias @@ -1,7 +1,7 @@ #!/bin/sh \. ../../common.sh -die () { echo $@ ; cleanup ; exit 1; } +die () { echo "$@" ; cleanup ; exit 1; } cleanup () { unset -f nvm_print_implicit_alias nvm_version diff --git a/test/fast/Unit tests/nvm_print_implicit_alias errors b/test/fast/Unit tests/nvm_print_implicit_alias errors index e824292..fc06a3c 100755 --- a/test/fast/Unit tests/nvm_print_implicit_alias errors +++ b/test/fast/Unit tests/nvm_print_implicit_alias errors @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_print_implicit_alias success b/test/fast/Unit tests/nvm_print_implicit_alias success index eb5671d..fe99b58 100755 --- a/test/fast/Unit tests/nvm_print_implicit_alias success +++ b/test/fast/Unit tests/nvm_print_implicit_alias success @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; cleanup ; exit 1; } +die () { echo "$@" ; cleanup ; exit 1; } cleanup() { rm -rf "${NVM_DIR}/v0.2.3" rm -rf "${NVM_DIR}/v0.3.4" diff --git a/test/fast/Unit tests/nvm_print_npm_version b/test/fast/Unit tests/nvm_print_npm_version index 792c6cc..a9cbc2c 100755 --- a/test/fast/Unit tests/nvm_print_npm_version +++ b/test/fast/Unit tests/nvm_print_npm_version @@ -5,7 +5,7 @@ cleanup () { alias npm='\npm' unset -f nvm_has npm } -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_remote_version b/test/fast/Unit tests/nvm_remote_version index e380b2f..9a4f94f 100755 --- a/test/fast/Unit tests/nvm_remote_version +++ b/test/fast/Unit tests/nvm_remote_version @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; cleanup ; exit 1; } +die () { echo "$@" ; cleanup ; exit 1; } cleanup() { unset -f nvm_ls_remote nvm_ls_remote_iojs diff --git a/test/fast/Unit tests/nvm_remote_versions b/test/fast/Unit tests/nvm_remote_versions index f505008..72bc916 100755 --- a/test/fast/Unit tests/nvm_remote_versions +++ b/test/fast/Unit tests/nvm_remote_versions @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; cleanup ; exit 1; } +die () { echo "$@" ; cleanup ; exit 1; } cleanup() { unset -f nvm_ls_remote nvm_ls_remote_iojs diff --git a/test/fast/Unit tests/nvm_strip_iojs_prefix b/test/fast/Unit tests/nvm_strip_iojs_prefix index 98aa43c..6924b5f 100755 --- a/test/fast/Unit tests/nvm_strip_iojs_prefix +++ b/test/fast/Unit tests/nvm_strip_iojs_prefix @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_strip_path b/test/fast/Unit tests/nvm_strip_path index e2d9a49..a57a424 100755 --- a/test/fast/Unit tests/nvm_strip_path +++ b/test/fast/Unit tests/nvm_strip_path @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_supports_xz b/test/fast/Unit tests/nvm_supports_xz index 09086c3..97c5a38 100755 --- a/test/fast/Unit tests/nvm_supports_xz +++ b/test/fast/Unit tests/nvm_supports_xz @@ -7,7 +7,7 @@ cleanup() { rm -rf $TEST_PATH/{xz,which,awk,rm,command} export PATH=$OLDPATH } -die () { echo $@ ; cleanup ; exit 1; } +die () { echo "$@" ; cleanup ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_tree_contains_path b/test/fast/Unit tests/nvm_tree_contains_path index 4efac10..a64930c 100755 --- a/test/fast/Unit tests/nvm_tree_contains_path +++ b/test/fast/Unit tests/nvm_tree_contains_path @@ -6,7 +6,7 @@ cleanup () { rm tmp2/node rmdir tmp2 } -die () { echo $@ ; cleanup; exit 1; } +die () { echo "$@" ; cleanup; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_validate_implicit_alias b/test/fast/Unit tests/nvm_validate_implicit_alias index 9d93af9..52c0e2f 100755 --- a/test/fast/Unit tests/nvm_validate_implicit_alias +++ b/test/fast/Unit tests/nvm_validate_implicit_alias @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_version b/test/fast/Unit tests/nvm_version index cba10dc..6c94d85 100755 --- a/test/fast/Unit tests/nvm_version +++ b/test/fast/Unit tests/nvm_version @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; cleanup ; exit 1; } +die () { echo "$@" ; cleanup ; exit 1; } cleanup () { unset -f nvm_ls_current nvm_ls } diff --git a/test/fast/Unit tests/nvm_version_dir b/test/fast/Unit tests/nvm_version_dir index 5bc5948..daec984 100755 --- a/test/fast/Unit tests/nvm_version_dir +++ b/test/fast/Unit tests/nvm_version_dir @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_version_greater b/test/fast/Unit tests/nvm_version_greater index a771e84..1979327 100755 --- a/test/fast/Unit tests/nvm_version_greater +++ b/test/fast/Unit tests/nvm_version_greater @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git a/test/fast/Unit tests/nvm_version_path b/test/fast/Unit tests/nvm_version_path index 74996a9..9f205e2 100755 --- a/test/fast/Unit tests/nvm_version_path +++ b/test/fast/Unit tests/nvm_version_path @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git a/test/install_script/nvm_check_global_modules b/test/install_script/nvm_check_global_modules index a526dcc..4183b97 100755 --- a/test/install_script/nvm_check_global_modules +++ b/test/install_script/nvm_check_global_modules @@ -10,7 +10,7 @@ cleanup () { unset -f setup cleanup die unset message ORIGINAL_PATH } -die () { echo $@ ; cleanup ; exit 1; } +die () { echo "$@" ; cleanup ; exit 1; } NVM_ENV=testing \. ../../install.sh diff --git a/test/install_script/nvm_do_install b/test/install_script/nvm_do_install index 8ced0eb..249981b 100755 --- a/test/install_script/nvm_do_install +++ b/test/install_script/nvm_do_install @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } NVM_ENV=testing \. ../../install.sh diff --git a/test/install_script/nvm_install_dir b/test/install_script/nvm_install_dir index d6d1a42..1c685e3 100755 --- a/test/install_script/nvm_install_dir +++ b/test/install_script/nvm_install_dir @@ -4,7 +4,7 @@ cleanup () { unset -f die cleanup unset install_dir } -die () { echo $@ ; cleanup ; exit 1; } +die () { echo "$@" ; cleanup ; exit 1; } NVM_ENV=testing \. ../../install.sh HOME="__home__" diff --git a/test/install_script/nvm_reset b/test/install_script/nvm_reset index 7eb9cd2..6c9f0a9 100755 --- a/test/install_script/nvm_reset +++ b/test/install_script/nvm_reset @@ -3,7 +3,7 @@ cleanup () { unset -f safe_type die cleanup } -die () { echo $@ ; cleanup ; exit 1; } +die () { echo "$@" ; cleanup ; exit 1; } safe_type() { type "$1" diff --git a/test/install_script/nvm_source b/test/install_script/nvm_source index 977c9f4..0e7519d 100755 --- a/test/install_script/nvm_source +++ b/test/install_script/nvm_source @@ -4,7 +4,7 @@ cleanup () { unset -f die cleanup unset NVM_SOURCE out } -die () { echo $@ ; cleanup ; exit 1; } +die () { echo "$@" ; cleanup ; exit 1; } NVM_ENV=testing \. ../../install.sh diff --git a/test/installation_iojs/install already installed uses it b/test/installation_iojs/install already installed uses it index f423370..981c981 100755 --- a/test/installation_iojs/install already installed uses it +++ b/test/installation_iojs/install already installed uses it @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../nvm.sh diff --git a/test/installation_iojs/install from binary b/test/installation_iojs/install from binary index 724e105..b20f50f 100755 --- a/test/installation_iojs/install from binary +++ b/test/installation_iojs/install from binary @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../nvm.sh diff --git a/test/installation_iojs/install from source b/test/installation_iojs/install from source index c724b3d..d834e78 100644 --- a/test/installation_iojs/install from source +++ b/test/installation_iojs/install from source @@ -2,7 +2,7 @@ \. ../common.sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../nvm.sh diff --git a/test/installation_iojs/install two versions and use the latest one b/test/installation_iojs/install two versions and use the latest one index 29372bf..2ec99cd 100755 --- a/test/installation_iojs/install two versions and use the latest one +++ b/test/installation_iojs/install two versions and use the latest one @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../nvm.sh diff --git a/test/installation_iojs/install version specified in .nvmrc from binary b/test/installation_iojs/install version specified in .nvmrc from binary index 73dcfd3..30e8b70 100755 --- a/test/installation_iojs/install version specified in .nvmrc from binary +++ b/test/installation_iojs/install version specified in .nvmrc from binary @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../nvm.sh diff --git a/test/installation_iojs/install version specified in .nvmrc from source b/test/installation_iojs/install version specified in .nvmrc from source index 9f97a30..d02ddc7 100644 --- a/test/installation_iojs/install version specified in .nvmrc from source +++ b/test/installation_iojs/install version specified in .nvmrc from source @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../nvm.sh diff --git a/test/installation_iojs/install while reinstalling packages b/test/installation_iojs/install while reinstalling packages index 3b2dc0f..072eb91 100755 --- a/test/installation_iojs/install while reinstalling packages +++ b/test/installation_iojs/install while reinstalling packages @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../nvm.sh diff --git a/test/installation_iojs/nvm install v1 works b/test/installation_iojs/nvm install v1 works index 505aef7..bb3e7c3 100755 --- a/test/installation_iojs/nvm install v1 works +++ b/test/installation_iojs/nvm install v1 works @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../nvm.sh diff --git a/test/installation_node/install LTS b/test/installation_node/install LTS index 2435fc3..d83b90f 100755 --- a/test/installation_node/install LTS +++ b/test/installation_node/install LTS @@ -2,7 +2,7 @@ set -ex -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../nvm.sh diff --git a/test/installation_node/install already installed uses it b/test/installation_node/install already installed uses it index 2906784..a346d7d 100755 --- a/test/installation_node/install already installed uses it +++ b/test/installation_node/install already installed uses it @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../nvm.sh diff --git a/test/installation_node/install from binary b/test/installation_node/install from binary index d3635f3..e66b371 100755 --- a/test/installation_node/install from binary +++ b/test/installation_node/install from binary @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../nvm.sh diff --git a/test/installation_node/install from source b/test/installation_node/install from source index b0942f9..d458c87 100755 --- a/test/installation_node/install from source +++ b/test/installation_node/install from source @@ -2,7 +2,7 @@ set -ex -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } set +e # TODO: fix \. ../../nvm.sh diff --git a/test/installation_node/install from source implicitly b/test/installation_node/install from source implicitly index a3c043c..33f5566 100755 --- a/test/installation_node/install from source implicitly +++ b/test/installation_node/install from source implicitly @@ -2,7 +2,7 @@ set -ex -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } set +e # TODO: fix \. ../../nvm.sh diff --git a/test/installation_node/install from source with thread parameter b/test/installation_node/install from source with thread parameter index f9aee3d..e2be013 100755 --- a/test/installation_node/install from source with thread parameter +++ b/test/installation_node/install from source with thread parameter @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../nvm.sh diff --git a/test/installation_node/install from source without V8 snapshot for ARM b/test/installation_node/install from source without V8 snapshot for ARM index 0e22ac7..df6e54a 100755 --- a/test/installation_node/install from source without V8 snapshot for ARM +++ b/test/installation_node/install from source without V8 snapshot for ARM @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../nvm.sh diff --git a/test/installation_node/install hook b/test/installation_node/install hook index e0f4f33..e5a2440 100755 --- a/test/installation_node/install hook +++ b/test/installation_node/install hook @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } . ../../nvm.sh diff --git a/test/installation_node/install two versions and use the latest one b/test/installation_node/install two versions and use the latest one index 35ca3b4..1fac278 100755 --- a/test/installation_node/install two versions and use the latest one +++ b/test/installation_node/install two versions and use the latest one @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../nvm.sh diff --git a/test/installation_node/install version specified in .nvmrc from binary b/test/installation_node/install version specified in .nvmrc from binary index c074d65..b230b17 100755 --- a/test/installation_node/install version specified in .nvmrc from binary +++ b/test/installation_node/install version specified in .nvmrc from binary @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../nvm.sh diff --git a/test/installation_node/install version specified in .nvmrc from source b/test/installation_node/install version specified in .nvmrc from source index 89094a8..8f460c7 100755 --- a/test/installation_node/install version specified in .nvmrc from source +++ b/test/installation_node/install version specified in .nvmrc from source @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../nvm.sh diff --git a/test/installation_node/install while reinstalling packages b/test/installation_node/install while reinstalling packages index 53879d5..0c1046d 100755 --- a/test/installation_node/install while reinstalling packages +++ b/test/installation_node/install while reinstalling packages @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../nvm.sh diff --git "a/test/slow/Running \"nvm current\" should display current nvm environment." "b/test/slow/Running \"nvm current\" should display current nvm environment." index c36e55e..01d765d 100755 --- "a/test/slow/Running \"nvm current\" should display current nvm environment." +++ "b/test/slow/Running \"nvm current\" should display current nvm environment." @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../nvm.sh diff --git a/test/slow/node 0.6.21 should install 0.6.21-pre b/test/slow/node 0.6.21 should install 0.6.21-pre index 299c3fc..7e68a26 100755 --- a/test/slow/node 0.6.21 should install 0.6.21-pre +++ b/test/slow/node 0.6.21 should install 0.6.21-pre @@ -2,7 +2,7 @@ set -ex -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../nvm.sh diff --git "a/test/slow/nvm exec/Preamble works and respects \"silent\" flag" "b/test/slow/nvm exec/Preamble works and respects \"silent\" flag" index 866c43f..c8c67a4 100755 --- "a/test/slow/nvm exec/Preamble works and respects \"silent\" flag" +++ "b/test/slow/nvm exec/Preamble works and respects \"silent\" flag" @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git "a/test/slow/nvm exec/Running \"nvm exec --lts\" should work" "b/test/slow/nvm exec/Running \"nvm exec --lts\" should work" index 0939941..1be7c61 100755 --- "a/test/slow/nvm exec/Running \"nvm exec --lts\" should work" +++ "b/test/slow/nvm exec/Running \"nvm exec --lts\" should work" @@ -2,7 +2,7 @@ set -ex -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git "a/test/slow/nvm exec/Running \"nvm exec 0.x\" should work" "b/test/slow/nvm exec/Running \"nvm exec 0.x\" should work" index 72c385e..88ff70a 100755 --- "a/test/slow/nvm exec/Running \"nvm exec 0.x\" should work" +++ "b/test/slow/nvm exec/Running \"nvm exec 0.x\" should work" @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git "a/test/slow/nvm exec/Running \"nvm exec\" should pick up .nvmrc version" "b/test/slow/nvm exec/Running \"nvm exec\" should pick up .nvmrc version" index 737f787..6062464 100755 --- "a/test/slow/nvm exec/Running \"nvm exec\" should pick up .nvmrc version" +++ "b/test/slow/nvm exec/Running \"nvm exec\" should pick up .nvmrc version" @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git "a/test/slow/nvm reinstall-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" "b/test/slow/nvm reinstall-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" index e21b5e4..f6a3d03 100755 --- "a/test/slow/nvm reinstall-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" +++ "b/test/slow/nvm reinstall-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git "a/test/slow/nvm run/Running \"nvm run --harmony --version\" should work" "b/test/slow/nvm run/Running \"nvm run --harmony --version\" should work" index 0fa2089..4e2f18b 100755 --- "a/test/slow/nvm run/Running \"nvm run --harmony --version\" should work" +++ "b/test/slow/nvm run/Running \"nvm run --harmony --version\" should work" @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git "a/test/slow/nvm run/Running \"nvm run --lts\" should work" "b/test/slow/nvm run/Running \"nvm run --lts\" should work" index 1c73b6e..ead0dbd 100755 --- "a/test/slow/nvm run/Running \"nvm run --lts\" should work" +++ "b/test/slow/nvm run/Running \"nvm run --lts\" should work" @@ -2,7 +2,7 @@ set -ex -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git "a/test/slow/nvm run/Running \"nvm run 0.x\" should error out sensibly when 0.x is not installed" "b/test/slow/nvm run/Running \"nvm run 0.x\" should error out sensibly when 0.x is not installed" index 7777bc9..b9a2c2c 100755 --- "a/test/slow/nvm run/Running \"nvm run 0.x\" should error out sensibly when 0.x is not installed" +++ "b/test/slow/nvm run/Running \"nvm run 0.x\" should error out sensibly when 0.x is not installed" @@ -1,7 +1,7 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git "a/test/slow/nvm run/Running \"nvm run 0.x\" should work" "b/test/slow/nvm run/Running \"nvm run 0.x\" should work" index 0d7e9ef..ce26349 100755 --- "a/test/slow/nvm run/Running \"nvm run 0.x\" should work" +++ "b/test/slow/nvm run/Running \"nvm run 0.x\" should work" @@ -1,7 +1,7 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git "a/test/slow/nvm run/Running \"nvm run\" should pick up .nvmrc version" "b/test/slow/nvm run/Running \"nvm run\" should pick up .nvmrc version" index dc2f197..c3cb81e 100755 --- "a/test/slow/nvm run/Running \"nvm run\" should pick up .nvmrc version" +++ "b/test/slow/nvm run/Running \"nvm run\" should pick up .nvmrc version" @@ -1,7 +1,7 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git "a/test/slow/nvm uninstall/Running \"nvm uninstall 0.12.6\" uninstalls v0.12.6" "b/test/slow/nvm uninstall/Running \"nvm uninstall 0.12.6\" uninstalls v0.12.6" index 732f70a..7e62c2f 100755 --- "a/test/slow/nvm uninstall/Running \"nvm uninstall 0.12.6\" uninstalls v0.12.6" +++ "b/test/slow/nvm uninstall/Running \"nvm uninstall 0.12.6\" uninstalls v0.12.6" @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } # Source nvm \. ../../../nvm.sh diff --git "a/test/slow/nvm uninstall/Running \"nvm uninstall\" with incorrect file permissions fails nicely" "b/test/slow/nvm uninstall/Running \"nvm uninstall\" with incorrect file permissions fails nicely" index 4f7fe05..10de1c4 100755 --- "a/test/slow/nvm uninstall/Running \"nvm uninstall\" with incorrect file permissions fails nicely" +++ "b/test/slow/nvm uninstall/Running \"nvm uninstall\" with incorrect file permissions fails nicely" @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } # Source nvm \. ../../../nvm.sh diff --git "a/test/slow/nvm use/Running \"nvm use --lts\" uses latest LTS version" "b/test/slow/nvm use/Running \"nvm use --lts\" uses latest LTS version" index 6b9dbe8..f5b9ec0 100755 --- "a/test/slow/nvm use/Running \"nvm use --lts\" uses latest LTS version" +++ "b/test/slow/nvm use/Running \"nvm use --lts\" uses latest LTS version" @@ -2,7 +2,7 @@ set -ex -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git "a/test/slow/nvm use/Running \"nvm use --lts=foo\" uses latest \"foo\" LTS version" "b/test/slow/nvm use/Running \"nvm use --lts=foo\" uses latest \"foo\" LTS version" index 13cc53b..0801673 100755 --- "a/test/slow/nvm use/Running \"nvm use --lts=foo\" uses latest \"foo\" LTS version" +++ "b/test/slow/nvm use/Running \"nvm use --lts=foo\" uses latest \"foo\" LTS version" @@ -2,7 +2,7 @@ set -ex -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git "a/test/slow/nvm use/Running \"nvm use iojs\" uses latest io.js version" "b/test/slow/nvm use/Running \"nvm use iojs\" uses latest io.js version" index 4e7455d..9b83d08 100755 --- "a/test/slow/nvm use/Running \"nvm use iojs\" uses latest io.js version" +++ "b/test/slow/nvm use/Running \"nvm use iojs\" uses latest io.js version" @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git "a/test/slow/nvm use/Running \"nvm use node\" uses latest stable node version" "b/test/slow/nvm use/Running \"nvm use node\" uses latest stable node version" index 5cf8000..c87f3b4 100755 --- "a/test/slow/nvm use/Running \"nvm use node\" uses latest stable node version" +++ "b/test/slow/nvm use/Running \"nvm use node\" uses latest stable node version" @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git "a/test/slow/nvm use/Running \"nvm use v1.0.0\" uses iojs-v1.0.0 iojs version" "b/test/slow/nvm use/Running \"nvm use v1.0.0\" uses iojs-v1.0.0 iojs version" index 799c2ac..d47a48a 100755 --- "a/test/slow/nvm use/Running \"nvm use v1.0.0\" uses iojs-v1.0.0 iojs version" +++ "b/test/slow/nvm use/Running \"nvm use v1.0.0\" uses iojs-v1.0.0 iojs version" @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git "a/test/slow/nvm use/Running \"nvm use\" calls \"nvm_die_on_prefix\"" "b/test/slow/nvm use/Running \"nvm use\" calls \"nvm_die_on_prefix\"" index 53f44b1..2fe0de7 100755 --- "a/test/slow/nvm use/Running \"nvm use\" calls \"nvm_die_on_prefix\"" +++ "b/test/slow/nvm use/Running \"nvm use\" calls \"nvm_die_on_prefix\"" @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } \. ../../../nvm.sh diff --git a/test/slow/nvm_get_latest/nvm_get_latest b/test/slow/nvm_get_latest/nvm_get_latest index bb198ee..2bdcbad 100755 --- a/test/slow/nvm_get_latest/nvm_get_latest +++ b/test/slow/nvm_get_latest/nvm_get_latest @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; cleanup ; exit 1; } +die () { echo "$@" ; cleanup ; exit 1; } cleanup() { unset -f curl wget nvm_has diff --git a/test/slow/nvm_get_latest/nvm_get_latest failed redirect b/test/slow/nvm_get_latest/nvm_get_latest failed redirect index 3a6aa1d..61e6680 100755 --- a/test/slow/nvm_get_latest/nvm_get_latest failed redirect +++ b/test/slow/nvm_get_latest/nvm_get_latest failed redirect @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; cleanup ; exit 1; } +die () { echo "$@" ; cleanup ; exit 1; } cleanup() { unset -f curl wget diff --git a/test/sourcing/Sourcing nvm.sh should use the default if available b/test/sourcing/Sourcing nvm.sh should use the default if available index 23a0dc6..e77edf1 100755 --- a/test/sourcing/Sourcing nvm.sh should use the default if available +++ b/test/sourcing/Sourcing nvm.sh should use the default if available @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } echo '0.10.1' > ../../alias/default || die 'creation of default alias failed' diff --git a/test/sourcing/Sourcing nvm.sh with --install and .nvmrc should install it b/test/sourcing/Sourcing nvm.sh with --install and .nvmrc should install it index 08cfb93..7510c88 100755 --- a/test/sourcing/Sourcing nvm.sh with --install and .nvmrc should install it +++ b/test/sourcing/Sourcing nvm.sh with --install and .nvmrc should install it @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } supports_source_options () { [ "_$(echo 'echo $1' | . /dev/stdin yes)" = "_yes" ] } diff --git a/test/sourcing/Sourcing nvm.sh with --install should install the default b/test/sourcing/Sourcing nvm.sh with --install should install the default index 3da82f7..d23f32a 100755 --- a/test/sourcing/Sourcing nvm.sh with --install should install the default +++ b/test/sourcing/Sourcing nvm.sh with --install should install the default @@ -1,7 +1,7 @@ #!/bin/sh \. ../common.sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } supports_source_options () { [ "_$(echo 'echo $1' | . /dev/stdin yes)" = "_yes" ] } diff --git a/test/sourcing/Sourcing nvm.sh with --no-use should not use anything b/test/sourcing/Sourcing nvm.sh with --no-use should not use anything index 334deda..2b40909 100755 --- a/test/sourcing/Sourcing nvm.sh with --no-use should not use anything +++ b/test/sourcing/Sourcing nvm.sh with --no-use should not use anything @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } supports_source_options () { [ "_$(echo 'echo $1' | . /dev/stdin yes)" = "_yes" ] } diff --git a/test/sourcing/Sourcing nvm.sh with no default should return 0 b/test/sourcing/Sourcing nvm.sh with no default should return 0 index d2b5f71..7fd4fc7 100755 --- a/test/sourcing/Sourcing nvm.sh with no default should return 0 +++ b/test/sourcing/Sourcing nvm.sh with no default should return 0 @@ -1,6 +1,6 @@ #!/bin/sh -die () { echo $@ ; exit 1; } +die () { echo "$@" ; exit 1; } touch ../../alias/default rm ../../alias/default || die 'removal of default alias failed' From 9c92b5a4ea1b4412204cdfc4e28b02e9b646d60e Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 6 Nov 2016 20:43:47 +0800 Subject: [PATCH 0867/1426] [New] `nvm install`: Print the version that is being installed --- nvm.sh | 5 +++++ test/installation_node/install hook | 2 ++ 2 files changed, 7 insertions(+) diff --git a/nvm.sh b/nvm.sh index 17d926e..6815dde 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1581,6 +1581,11 @@ nvm_install_binary() { local TMPDIR local VERSION_PATH + local NODE_OR_IOJS + if [ "${FLAVOR}" = 'node' ]; then + NODE_OR_IOJS="${FLAVOR}" + fi + nvm_echo "Downloading and installing ${NODE_OR_IOJS-} ${VERSION}..." TARBALL="$(nvm_download_artifact "${FLAVOR}" binary "${TYPE-}" "${VERSION}" | command tail -1)" if [ -f "${TARBALL}" ]; then TMPDIR="$(dirname "${TARBALL}")/files" diff --git a/test/installation_node/install hook b/test/installation_node/install hook index e5a2440..61bd84a 100755 --- a/test/installation_node/install hook +++ b/test/installation_node/install hook @@ -22,6 +22,7 @@ fail() { OUTPUT="$(NVM_INSTALL_THIRD_PARTY_HOOK=succeed nvm install "${VERSION}")" USE_OUTPUT="$(nvm use "${VERSION}")" EXPECTED_OUTPUT="${VERSION} node std binary ${VERSION_PATH} +Downloading and installing node ${VERSION}... ${USE_OUTPUT} ${USE_OUTPUT}" # double use output is from the normal install in succeed() @@ -32,6 +33,7 @@ ${USE_OUTPUT}" # double use output is from the normal install in succeed() OUTPUT="$(NVM_INSTALL_THIRD_PARTY_HOOK=fail nvm install "${VERSION}" || echo 'failed')" USE_OUTPUT="$(nvm use "${VERSION}")" EXPECTED_OUTPUT="${VERSION} node std binary ${VERSION_PATH} +Downloading and installing node ${VERSION}... ${USE_OUTPUT} failed" From 8f82eab5db9adf1fdfe88728cc6b71d7726d35db Mon Sep 17 00:00:00 2001 From: George Adams Date: Thu, 10 Nov 2016 11:53:48 +0000 Subject: [PATCH 0868/1426] Add AIX support Currently AIX isn't supported in nvm so I have made a few small changes to make this work: change tar to gtar for AIX change make to gmake for AIX Set ARCH as ppc64 for AIX --- nvm.sh | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) mode change 100644 => 100755 nvm.sh diff --git a/nvm.sh b/nvm.sh old mode 100644 new mode 100755 index 6815dde..217e315 --- a/nvm.sh +++ b/nvm.sh @@ -1445,6 +1445,7 @@ nvm_get_os() { Darwin\ *) NVM_OS=darwin ;; SunOS\ *) NVM_OS=sunos ;; FreeBSD\ *) NVM_OS=freebsd ;; + AIX\ *) NVM_OS=aix ;; esac nvm_echo "${NVM_OS-}" } @@ -1467,6 +1468,8 @@ nvm_get_arch() { else HOST_ARCH=$(echo "$HOST_ARCH" | command tail -1) fi + elif [ "_$NVM_OS" = "_aix" ]; then + HOST_ARCH=ppc64 else HOST_ARCH="$(command uname -m)" fi @@ -1590,10 +1593,15 @@ nvm_install_binary() { if [ -f "${TARBALL}" ]; then TMPDIR="$(dirname "${TARBALL}")/files" fi + local tar + tar='tar' + if [ "${NVM_OS}" = 'aix' ]; then + tar='gtar' + fi if ( [ -n "${TMPDIR-}" ] && \ command mkdir -p "${TMPDIR}" && \ - command tar -x${tar_compression_flag}f "${TARBALL}" -C "${TMPDIR}" --strip-components 1 && \ + command "${tar}" -x${tar_compression_flag}f "${TARBALL}" -C "${TMPDIR}" --strip-components 1 && \ VERSION_PATH="$(nvm_version_path "${PREFIXED_VERSION}")" && \ command mkdir -p "${VERSION_PATH}" && \ command mv "${TMPDIR}/"* "${VERSION_PATH}" && \ @@ -1768,6 +1776,8 @@ nvm_get_make_jobs() { NVM_CPU_THREADS="$(sysctl -n hw.ncpu)" elif [ "_$NVM_OS" = "_sunos" ]; then NVM_CPU_THREADS="$(psrinfo | wc -l)" + elif [ "_$NVM_OS" = "_aix" ]; then + NVM_CPU_THREADS="$(lsconf|grep 'Number Of Processors:'| awk '{print $4}')" fi if ! nvm_is_natural_num "$NVM_CPU_THREADS" ; then nvm_err 'Can not determine how many thread(s) we can use, set to only 1 now.' @@ -1832,7 +1842,9 @@ nvm_install_source() { make='make' if [ "${NVM_OS}" = 'freebsd' ]; then make='gmake' - MAKE_CXX='CXX=c++' + MAKE_CXX='CXX=c++' + elif [ "${NVM_OS}" = 'aix' ]; then + make='gmake' fi local tar_compression_flag @@ -1841,6 +1853,12 @@ nvm_install_source() { tar_compression_flag='J' fi + local tar + tar='tar' + if [ "${NVM_OS}" = 'aix' ]; then + tar='gtar' + fi + local TARBALL local TMPDIR local VERSION_PATH @@ -1851,7 +1869,7 @@ nvm_install_source() { [ -f "${TARBALL}" ] && \ TMPDIR="$(dirname "${TARBALL}")/files" && \ command mkdir -p "${TMPDIR}" && \ - command tar -x${tar_compression_flag}f "${TARBALL}" -C "${TMPDIR}" --strip-components 1 && \ + command "${tar}" -x${tar_compression_flag}f "${TARBALL}" -C "${TMPDIR}" --strip-components 1 && \ VERSION_PATH="$(nvm_version_path "${PREFIXED_VERSION}")" && \ nvm_cd "${TMPDIR}" && \ ./configure --prefix="${VERSION_PATH}" $ADDITIONAL_PARAMETERS && \ From 7ef38cf7e827267acdbfd4a9c047447278519a4b Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Fri, 11 Nov 2016 19:43:36 +0800 Subject: [PATCH 0869/1426] fix/retab indent in bash_completion [no-ci] --- bash_completion | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bash_completion b/bash_completion index 42bd7af..9fe6270 100644 --- a/bash_completion +++ b/bash_completion @@ -85,7 +85,7 @@ __nvm () # called bashcompinit that will create a complete in ZSH. If the user is in # ZSH, load and run bashcompinit before calling the complete function. if [[ -n ${ZSH_VERSION-} ]]; then - autoload -U +X bashcompinit && bashcompinit + autoload -U +X bashcompinit && bashcompinit fi complete -o default -o nospace -F __nvm nvm From c5303a69735f1d118e0017c4129b20c2a679b5dd Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 7 Nov 2016 18:51:13 +0800 Subject: [PATCH 0870/1426] Improve nvm_download_artifact() process, fix #1291 - Delete broken/checksum not matched local cache - More output message. --- nvm.sh | 46 +++++++++++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/nvm.sh b/nvm.sh index 217e315..c98244a 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1733,27 +1733,35 @@ nvm_download_artifact() { TARBALL_URL="${MIRROR}/${SLUG}.tar.${COMPRESSION}" fi - if nvm_compare_checksum "${TARBALL}" "${CHECKSUM}" >/dev/null 2>&1; then - nvm_err "Checksums match! Using existing downloaded archive $(nvm_sanitize_path "${TARBALL}")" - else - nvm_echo "Downloading ${TARBALL_URL}..." - nvm_download -L -C - --progress-bar "${TARBALL_URL}" -o "${TARBALL}" || ( - command rm -rf "${TARBALL}" "${tmpdir}" - nvm_err "Binary download from ${TARBALL_URL} failed, trying source." - return 4 - ) - - if nvm_grep '404 Not Found' "${TARBALL}" >/dev/null; then - command rm -rf "${TARBALL}" "$tmpdir" - nvm_err "HTTP 404 at URL ${TARBALL_URL}"; - return 5 + if [ -r "${TARBALL}" ]; then + nvm_err "Local cache found: $(nvm_sanitize_path "${TARBALL}")" + if nvm_compare_checksum "${TARBALL}" "${CHECKSUM}" >/dev/null 2>&1; then + nvm_err "Checksums match! Using existing downloaded archive $(nvm_sanitize_path "${TARBALL}")" + nvm_echo "${TARBALL}" + return 0 fi - - nvm_compare_checksum "${TARBALL}" "${CHECKSUM}" || ( - command rm -rf "${tmpdir}/files" - return 6 - ) + nvm_compare_checksum "${TARBALL}" "${CHECKSUM}" + nvm_err "Checksum check failed!" + nvm_err "Removing the broken local cache..." + command rm -rf "${TARBALL}" fi + nvm_err "Downloading ${TARBALL_URL}..." + nvm_download -L -C - --progress-bar "${TARBALL_URL}" -o "${TARBALL}" || ( + command rm -rf "${TARBALL}" "${tmpdir}" + nvm_err "Binary download from ${TARBALL_URL} failed, trying source." + return 4 + ) + + if nvm_grep '404 Not Found' "${TARBALL}" >/dev/null; then + command rm -rf "${TARBALL}" "$tmpdir" + nvm_err "HTTP 404 at URL ${TARBALL_URL}"; + return 5 + fi + + nvm_compare_checksum "${TARBALL}" "${CHECKSUM}" || ( + command rm -rf "${tmpdir}/files" + return 6 + ) nvm_echo "${TARBALL}" } From eab41ed8ef012cd8ed13c32cc53508fba38d1563 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Fri, 11 Nov 2016 19:37:56 +0800 Subject: [PATCH 0871/1426] [Fix] add missing "command" prefix call for some commands --- bash_completion | 2 +- nvm.sh | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/bash_completion b/bash_completion index 9fe6270..1b074f0 100644 --- a/bash_completion +++ b/bash_completion @@ -57,7 +57,7 @@ __nvm_aliases () declare aliases aliases="" if [ -d $NVM_DIR/alias ]; then - aliases="$(cd $NVM_DIR/alias && find $PWD -type f | sed "s:$PWD/::")" + aliases="$(cd $NVM_DIR/alias && command find $PWD -type f | command sed "s:$PWD/::")" fi echo "${aliases} node stable unstable iojs" } diff --git a/nvm.sh b/nvm.sh index c98244a..ab1e356 100755 --- a/nvm.sh +++ b/nvm.sh @@ -450,7 +450,7 @@ nvm_format_version() { if [ "${NUM_GROUPS}" -lt 3 ]; then nvm_format_version "${VERSION%.}.0" else - nvm_echo "${VERSION}" | cut -f1-3 -d. + nvm_echo "${VERSION}" | command cut -f1-3 -d. fi } @@ -892,7 +892,7 @@ nvm_ls() { PATTERN='v' SEARCH_PATTERN='.*' else - SEARCH_PATTERN="$(echo "${PATTERN}" | sed "s#\.#\\\.#g;")" + SEARCH_PATTERN="$(echo "${PATTERN}" | command sed "s#\.#\\\.#g;")" fi if [ -n "${NVM_DIRS_TO_SEARCH1}${NVM_DIRS_TO_SEARCH2}${NVM_DIRS_TO_SEARCH3}" ]; then VERSIONS="$(command find "${NVM_DIRS_TO_SEARCH1}"/* "${NVM_DIRS_TO_SEARCH2}"/* "${NVM_DIRS_TO_SEARCH3}"/* -name . -o -type d -prune -o -path "${PATTERN}*" \ @@ -988,9 +988,9 @@ nvm_ls_remote_index_tab() { ;; esac local SORT_COMMAND - SORT_COMMAND='sort' + SORT_COMMAND='command sort' case "${FLAVOR}" in - node) SORT_COMMAND='sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n' ;; + node) SORT_COMMAND='command sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n' ;; esac local PATTERN @@ -1023,7 +1023,7 @@ nvm_ls_remote_index_tab() { local LTS_VERSION command mkdir -p "$(nvm_alias_path)/lts" nvm_echo "${VERSION_LIST}" \ - | awk '{ + | command awk '{ if ($10 ~ /^\-?$/) { next } if ($10 && !a[tolower($10)]++) { if (alias) { print alias, version } @@ -1205,26 +1205,26 @@ nvm_checksum() { elif nvm_has "sha1" && ! nvm_is_alias "sha1"; then NVM_CHECKSUM="$(command sha1 -q "${1-}")" elif nvm_has "shasum" && ! nvm_is_alias "shasum"; then - NVM_CHECKSUM="$(shasum "${1-}" | command awk '{print $1}')" + NVM_CHECKSUM="$(command shasum "${1-}" | command awk '{print $1}')" else nvm_err 'Unaliased sha1sum, sha1, or shasum not found.' return 2 fi else if nvm_has "sha256sum" && ! nvm_is_alias "sha256sum"; then - NVM_CHECKSUM="$(sha256sum "${1-}" | command awk '{print $1}')" + NVM_CHECKSUM="$(command sha256sum "${1-}" | command awk '{print $1}')" elif nvm_has "shasum" && ! nvm_is_alias "shasum"; then - NVM_CHECKSUM="$(shasum -a 256 "${1-}" | command awk '{print $1}')" + NVM_CHECKSUM="$(command shasum -a 256 "${1-}" | command awk '{print $1}')" elif nvm_has "sha256" && ! nvm_is_alias "sha256"; then - NVM_CHECKSUM="$(sha256 -q "${1-}" | command awk '{print $1}')" + NVM_CHECKSUM="$(command sha256 -q "${1-}" | command awk '{print $1}')" elif nvm_has "gsha256sum" && ! nvm_is_alias "gsha256sum"; then - NVM_CHECKSUM="$(gsha256sum "${1-}" | command awk '{print $1}')" + NVM_CHECKSUM="$(command gsha256sum "${1-}" | command awk '{print $1}')" elif nvm_has "openssl" && ! nvm_is_alias "openssl"; then - NVM_CHECKSUM="$(openssl dgst -sha256 "${1-}" | rev | command awk '{print $1}' | rev)" + NVM_CHECKSUM="$(command openssl dgst -sha256 "${1-}" | rev | command awk '{print $1}' | rev)" elif nvm_has "libressl" && ! nvm_is_alias "libressl"; then - NVM_CHECKSUM="$(libressl dgst -sha256 "${1-}" | rev | command awk '{print $1}' | rev)" + NVM_CHECKSUM="$(command libressl dgst -sha256 "${1-}" | rev | command awk '{print $1}' | rev)" elif nvm_has "bssl" && ! nvm_is_alias "bssl"; then - NVM_CHECKSUM="$(bssl sha256sum "${1-}" | command awk '{print $1}')" + NVM_CHECKSUM="$(command bssl sha256sum "${1-}" | command awk '{print $1}')" else nvm_err 'Unaliased sha256sum, shasum, sha256, gsha256sum, openssl, libressl, or bssl not found.' nvm_err 'WARNING: Continuing *without checksum verification*' @@ -1785,7 +1785,7 @@ nvm_get_make_jobs() { elif [ "_$NVM_OS" = "_sunos" ]; then NVM_CPU_THREADS="$(psrinfo | wc -l)" elif [ "_$NVM_OS" = "_aix" ]; then - NVM_CPU_THREADS="$(lsconf|grep 'Number Of Processors:'| awk '{print $4}')" + NVM_CPU_THREADS="$(lsconf | command grep 'Number Of Processors:'| command awk '{print $4}')" fi if ! nvm_is_natural_num "$NVM_CPU_THREADS" ; then nvm_err 'Can not determine how many thread(s) we can use, set to only 1 now.' From e5316ddbe36f28c2faa1c96c7473f6b026bfb0aa Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 13 Nov 2016 00:09:29 -0800 Subject: [PATCH 0872/1426] [Fix] allow uninstalls when files are nonwritable but self-owned. Fixes #1270. --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index ab1e356..1a6798f 100755 --- a/nvm.sh +++ b/nvm.sh @@ -2090,8 +2090,8 @@ nvm_check_file_permissions() { fi return 2 fi - elif [ -e "$FILE" ] && [ ! -w "$FILE" ]; then - nvm_err "file is not writable: $(nvm_sanitize_path "$FILE")" + elif [ -e "$FILE" ] && [ ! -w "$FILE" ] && [ ! -O "$FILE" ]; then + nvm_err "file is not writable or self-owned: $(nvm_sanitize_path "$FILE")" if [ "${ZSH_HAS_NONOMATCH_UNSET}" -eq 1 ] && nvm_has "setopt"; then setopt nomatch fi From fd33179119954ee653bf7354e74cd4db62bda94b Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 14 Nov 2016 06:19:29 +0800 Subject: [PATCH 0873/1426] Revert "Also run git gc after nvm upgraded" This reverts commit ce7f6d6e5287fade16c41c7a18dd3a2043928efe. --- install.sh | 4 ---- 1 file changed, 4 deletions(-) diff --git a/install.sh b/install.sh index 819f9b8..bff211c 100755 --- a/install.sh +++ b/install.sh @@ -74,10 +74,6 @@ install_nvm_from_git() { echo >&2 "Failed to update nvm, run 'git fetch' in $INSTALL_DIR yourself." exit 1 } - echo "=> Compressing and cleaning up git repository" - if ! command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" gc --aggressive --prune=now ; then - echo >&2 "Your version of git is out of date. Please update it!" - fi else # Cloning to $INSTALL_DIR echo "=> Downloading nvm from git to '$INSTALL_DIR'" From 03608291a67757d743bcde26a43bc677567b0862 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 14 Nov 2016 03:45:52 +0800 Subject: [PATCH 0874/1426] [caching] `nvm install`: Do not remove src dir after compilation succeeds This will help speed up the installation time for the non-first time installation, especially can speed up the build time and test time on Travis-CI as we'll cache .cache dir. --- nvm.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/nvm.sh b/nvm.sh index 1a6798f..090043e 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1871,11 +1871,11 @@ nvm_install_source() { local TMPDIR local VERSION_PATH - # shellcheck disable=SC2086 + TARBALL="$(nvm_download_artifact "${FLAVOR}" source "${TYPE}" "${VERSION}" | command tail -1)" && \ + [ -f "${TARBALL}" ] && \ + TMPDIR="$(dirname "${TARBALL}")/files" && \ if ( - TARBALL="$(nvm_download_artifact "${FLAVOR}" source "${TYPE}" "${VERSION}" | command tail -1)" && \ - [ -f "${TARBALL}" ] && \ - TMPDIR="$(dirname "${TARBALL}")/files" && \ + # shellcheck disable=SC2086 command mkdir -p "${TMPDIR}" && \ command "${tar}" -x${tar_compression_flag}f "${TARBALL}" -C "${TMPDIR}" --strip-components 1 && \ VERSION_PATH="$(nvm_version_path "${PREFIXED_VERSION}")" && \ @@ -1883,8 +1883,7 @@ nvm_install_source() { ./configure --prefix="${VERSION_PATH}" $ADDITIONAL_PARAMETERS && \ $make -j "${NVM_MAKE_JOBS}" ${MAKE_CXX-} && \ command rm -f "${VERSION_PATH}" 2>/dev/null && \ - $make -j "${NVM_MAKE_JOBS}" ${MAKE_CXX-} install && \ - command rm -rf "${TMPDIR}" + $make -j "${NVM_MAKE_JOBS}" ${MAKE_CXX-} install ); then if ! nvm_has "npm" ; then nvm_echo 'Installing npm...' @@ -1904,6 +1903,7 @@ nvm_install_source() { fi nvm_err "nvm: install ${VERSION} failed!" + command rm -rf "${TMPDIR-}" return 1 } From 38934bf16c057da206a92f5241ffaa939934d069 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 14 Nov 2016 05:39:34 +0800 Subject: [PATCH 0875/1426] [New] `nvm install -s`: Use clang as C/C++ compiler if detected. Fixes #902. --- nvm.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nvm.sh b/nvm.sh index 6e33d47..0a6ad98 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1854,6 +1854,10 @@ nvm_install_source() { elif [ "${NVM_OS}" = 'aix' ]; then make='gmake' fi + if nvm_has "clang++" && nvm_has "clang" ; then + nvm_echo "Clang detected! Use Clang as c/c++ compiler!" + MAKE_CXX='CC=clang CXX=clang++' + fi local tar_compression_flag tar_compression_flag='z' From 9f67d3ef660b7b6690d24f0858092dd67d23b580 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 14 Nov 2016 12:04:36 +0800 Subject: [PATCH 0876/1426] [Tests] Upgrade clang from llvm in Travis-ci --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index d8a3387..8b34c46 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,7 +17,10 @@ before_install: - $SHELL --version 2> /dev/null || dpkg -s $SHELL 2> /dev/null || which $SHELL - curl --version - wget --version + - clang --version + - clang++ --version - if [ -n "${SHELLCHECK-}" ]; then sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 575159689BEFB442 && echo 'deb http://download.fpcomplete.com/ubuntu precise main' | sudo tee /etc/apt/sources.list.d/fpco.list && sudo apt-get update && sudo apt-get install stack bc -y && stack setup && stack install ShellCheck && shellcheck --version ; fi + - if [ -z "${SHELLCHECK-}" ]; then wget -O - http://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - && echo -e "deb http://apt.llvm.org/precise/ llvm-toolchain-precise main\ndeb http://apt.llvm.org/precise/ llvm-toolchain-precise-3.8 main" | sudo tee /etc/apt/sources.list.d/clang.list && sudo apt-get update && sudo apt-get install clang-3.8 lldb-3.8 -y --force-yes && sudo ln -sf /usr/bin/clang-3.8 /usr/bin/clang && sudo ln -sf /usr/bin/clang++-3.8 /usr/bin/clang++ && clang --version ; fi install: - (mkdir /tmp/urchin && cd /tmp/urchin && curl -s "$(curl -s https://registry.npmjs.com/urchin | grep -Eo '"tarball":\s*"[^"]+"' | tail -n 1 | awk -F\" '{ print $4 }')" -O && tar -x -f urchin*) - chmod +x /tmp/urchin/package/urchin From 65acb403ce190fbf3418785f79bbf93486dad7f5 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 14 Nov 2016 12:28:41 +0800 Subject: [PATCH 0877/1426] Add `nvm_clang_version` to ensure clang version > 3.5 --- nvm.sh | 10 +++-- test/fast/Unit tests/nvm_clang_version | 62 ++++++++++++++++++++++++++ 2 files changed, 69 insertions(+), 3 deletions(-) create mode 100755 test/fast/Unit tests/nvm_clang_version diff --git a/nvm.sh b/nvm.sh index 0a6ad98..544245d 100755 --- a/nvm.sh +++ b/nvm.sh @@ -192,6 +192,10 @@ nvm_rc_version() { fi } +nvm_clang_version() { + clang --version | command awk '{ if ($2 == "version") print $3; else if ($3 == "version") print $4 }' | command sed 's/-.*$//g' +} + nvm_version_greater() { command awk 'BEGIN { if (ARGV[1] == "" || ARGV[2] == "") exit(1) @@ -1854,8 +1858,8 @@ nvm_install_source() { elif [ "${NVM_OS}" = 'aix' ]; then make='gmake' fi - if nvm_has "clang++" && nvm_has "clang" ; then - nvm_echo "Clang detected! Use Clang as c/c++ compiler!" + if nvm_has "clang++" && nvm_has "clang" && nvm_version_greater_than_or_equal_to nvm_clang_version 3.5 ; then + nvm_echo "Clang v3.5+ detected! Use Clang as c/c++ compiler!" MAKE_CXX='CC=clang CXX=clang++' fi @@ -3145,7 +3149,7 @@ nvm() { nvm_is_iojs_version nvm_is_alias \ nvm_ls_remote nvm_ls_remote_iojs nvm_ls_remote_index_tab \ nvm_ls nvm_remote_version nvm_remote_versions \ - nvm_install_binary \ + nvm_install_binary nvm_clang_version \ nvm_get_mirror nvm_get_download_slug nvm_download_artifact \ nvm_install_source nvm_check_file_permissions \ nvm_print_versions nvm_compute_checksum nvm_checksum \ diff --git a/test/fast/Unit tests/nvm_clang_version b/test/fast/Unit tests/nvm_clang_version new file mode 100755 index 0000000..dda1dad --- /dev/null +++ b/test/fast/Unit tests/nvm_clang_version @@ -0,0 +1,62 @@ +#!/bin/sh + +cleanup () { + unset -f die +} + +die () { echo -e "$@" ; cleanup ; exit 1; } + +if type "clang" > /dev/null 2>&1 ; then + clang_exec="$(type "clang")" + sudo rm -rf "${clang_exec}" +fi +if type "clang++" > /dev/null 2>&1 ; then + clangxx_exec="$(type "clang++")" + sudo rm -rf "${clangxx_exec}" +fi + +NVM_ENV=testing \. ../../../nvm.sh + +clang() { + if [ "$1" = "--version" ]; then + echo "${VERSION_MESSAGE}" + fi +} + +assert_version_is() { + if [ "${1}" != "${2}" ]; then + die "Expected ${2}, got ${1}, origin version message:\n${VERSION_MESSAGE}" + return 1 + fi +} + +CLANG_VERSION_ON_DEBIAN_JESSIE="Debian clang version 3.5.0-10 (tags/RELEASE_350/final) (based on LLVM 3.5.0) +Target: x86_64-pc-linux-gnu +Thread model: posix" + +CLANG_VERSION_ON_UBUNTU_TRUSTY="Ubuntu clang version 3.4-1ubuntu3 (tags/RELEASE_34/final) (based on LLVM 3.4) +Target: x86_64-pc-linux-gnu +Thread model: posix" + +CLANG_VERSION_ON_ARCHLINUX="clang version 3.9.0 (tags/RELEASE_390/final) +Target: x86_64-unknown-linux-gnu +Thread model: posix +InstalledDir: /usr/sbin" + +CLANG_VERSION_ON_FREEBSD="FreeBSD clang version 3.4.1 (tags/RELEASE_34/dot1-final 208032) 20140512 +Target: x86_64-unknown-freebsd10.3 +Thread model: posix" + +VERSION_MESSAGE="${CLANG_VERSION_ON_DEBIAN_JESSIE}" +assert_version_is "$(nvm_clang_version)" "3.5.0" + +VERSION_MESSAGE="${CLANG_VERSION_ON_UBUNTU_TRUSTY}" +assert_version_is "$(nvm_clang_version)" "3.4" + +VERSION_MESSAGE="${CLANG_VERSION_ON_ARCHLINUX}" +assert_version_is "$(nvm_clang_version)" "3.9.0" + +VERSION_MESSAGE="${CLANG_VERSION_ON_FREEBSD}" +assert_version_is "$(nvm_clang_version)" "3.4.1" + +cleanup From 8c036370238248fe127d2ec6aee16cc514e0aad3 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 14 Nov 2016 19:31:35 +0800 Subject: [PATCH 0878/1426] [Fix] `nvm install`: Handle 'N/A' version instead of asking to install it Fixes #1304. --- nvm.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 090043e..6e33d47 100755 --- a/nvm.sh +++ b/nvm.sh @@ -2626,10 +2626,14 @@ nvm() { fi return 8 fi - + if [ "${VERSION}" = 'N/A' ]; then + nvm_err "N/A: version \"${PROVIDED_VERSION} -> ${VERSION}\" is not yet installed." + nvm_err "" + nvm_err "You need to run \"nvm install ${PROVIDED_VERSION}\" to install it before using it." + return 3 # This nvm_ensure_version_installed call can be a performance bottleneck # on shell startup. Perhaps we can optimize it away or make it faster. - if ! nvm_ensure_version_installed "${VERSION}"; then + elif ! nvm_ensure_version_installed "${VERSION}"; then return $? fi From 61ae478c38c5b4e039dd85306d301be8b8d9ed28 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Wed, 16 Nov 2016 21:23:20 +0800 Subject: [PATCH 0879/1426] [Doc] Add current version on the top of README --- README.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index 6dbe30f..b53baeb 100644 --- a/README.markdown +++ b/README.markdown @@ -1,4 +1,4 @@ -# Node Version Manager [![Build Status](https://travis-ci.org/creationix/nvm.svg?branch=master)][3] +# Node Version Manager [![Build Status](https://travis-ci.org/creationix/nvm.svg?branch=master)][3] ![nvm version](https://img.shields.io/badge/version-v0.32.1-yellow.svg) ## Table of Contents From 49e8068271362d8f4308ea401453c4a82fef467f Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 17 Nov 2016 20:47:11 +0800 Subject: [PATCH 0880/1426] [CI] Drop manual apt source and package installation - Use Travis CI apt addon source whitelist to load apt source - Use Travis CI apt addon to install additional packages This can prevent duplicating apt package list update and dependencies calculation which means it can speed up the CI build. --- .travis.yml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 8b34c46..22786bf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,9 +4,16 @@ addons: apt: sources: - ubuntu-toolchain-r-test + - fpcomplete-precise + - llvm-toolchain-precise + - llvm-toolchain-precise-3.8 packages: - gcc-4.8 - g++-4.8 + - clang-3.8 + - lldb-3.8 + - stack + - bc - zsh - ksh cache: @@ -19,8 +26,8 @@ before_install: - wget --version - clang --version - clang++ --version - - if [ -n "${SHELLCHECK-}" ]; then sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 575159689BEFB442 && echo 'deb http://download.fpcomplete.com/ubuntu precise main' | sudo tee /etc/apt/sources.list.d/fpco.list && sudo apt-get update && sudo apt-get install stack bc -y && stack setup && stack install ShellCheck && shellcheck --version ; fi - - if [ -z "${SHELLCHECK-}" ]; then wget -O - http://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - && echo -e "deb http://apt.llvm.org/precise/ llvm-toolchain-precise main\ndeb http://apt.llvm.org/precise/ llvm-toolchain-precise-3.8 main" | sudo tee /etc/apt/sources.list.d/clang.list && sudo apt-get update && sudo apt-get install clang-3.8 lldb-3.8 -y --force-yes && sudo ln -sf /usr/bin/clang-3.8 /usr/bin/clang && sudo ln -sf /usr/bin/clang++-3.8 /usr/bin/clang++ && clang --version ; fi + - if [ -n "${SHELLCHECK-}" ]; then stack setup && stack install ShellCheck && shellcheck --version ; fi + - if [ -z "${SHELLCHECK-}" ]; then sudo ln -sf /usr/bin/clang-3.8 /usr/bin/clang && sudo ln -sf /usr/bin/clang++-3.8 /usr/bin/clang++ && clang --version ; fi install: - (mkdir /tmp/urchin && cd /tmp/urchin && curl -s "$(curl -s https://registry.npmjs.com/urchin | grep -Eo '"tarball":\s*"[^"]+"' | tail -n 1 | awk -F\" '{ print $4 }')" -O && tar -x -f urchin*) - chmod +x /tmp/urchin/package/urchin From 1ffa41886a2311851766f17f2a0e5aa9d460be3d Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sat, 23 May 2015 14:07:34 +0800 Subject: [PATCH 0881/1426] [New] Install bash programmble completions automatically --- install.sh | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/install.sh b/install.sh index bff211c..ff259aa 100755 --- a/install.sh +++ b/install.sh @@ -294,6 +294,8 @@ nvm_do_install() { INSTALL_DIR="$(nvm_install_dir)" SOURCE_STR="\nexport NVM_DIR=\"$INSTALL_DIR\"\n[ -s \"\$NVM_DIR/nvm.sh\" ] && \\. \"\$NVM_DIR/nvm.sh\" # This loads nvm\n" + COMPLETION_STR="[ -s \"\$NVM_DIR/bash_completion\" ] && \\. \"\$NVM_DIR/bash_completion\" # This loads nvm bash_completion\n" + BASH_OR_ZSH=false if [ -z "${NVM_PROFILE-}" ] ; then echo "=> Profile not found. Tried ${NVM_PROFILE} (as defined in \$PROFILE), ~/.bashrc, ~/.bash_profile, ~/.zshrc, and ~/.profile." @@ -303,12 +305,28 @@ nvm_do_install() { echo "=> Append the following lines to the correct file yourself:" command printf "${SOURCE_STR}" else + case "${NVM_PROFILE-}" in + ".bashrc" | ".bash_profile" | ".zshrc") + BASH_OR_ZSH=true + ;; + esac if ! command grep -qc '/nvm.sh' "$NVM_PROFILE"; then - echo "=> Appending source string to $NVM_PROFILE" - command printf "$SOURCE_STR" >> "$NVM_PROFILE" + echo "=> Appending nvm source string to $NVM_PROFILE" + command printf "${SOURCE_STR}" >> "$NVM_PROFILE" else - echo "=> Source string already in ${NVM_PROFILE}" + echo "=> nvm source string already in ${NVM_PROFILE}" fi + # shellcheck disable=SC2016 + if ${BASH_OR_ZSH} && ! command grep -qc '$NVM_DIR/bash_completion' "$NVM_PROFILE"; then + echo "=> Appending bash_completion source string to $NVM_PROFILE" + command printf "$COMPLETION_STR" >> "$NVM_PROFILE" + else + echo "=> bash_completion source string already in ${NVM_PROFILE}" + fi + fi + if ${BASH_OR_ZSH} && [ -z "${NVM_PROFILE-}" ] ; then + echo "=> Please also append the following lines to the if you are using bash/zsh shell:" + command printf "${COMPLETION_STR}" fi # Source nvm @@ -322,7 +340,10 @@ nvm_do_install() { nvm_reset echo "=> Close and reopen your terminal to start using nvm or run the following to use it now:" - command printf "$SOURCE_STR" + command printf "${SOURCE_STR}" + if ${BASH_OR_ZSH} ; then + command printf " && ${COMPLETION_STR}" + fi } # From 5508f8dc70ae885ceedcb1cbaad89fa1c3846c89 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Wed, 23 Nov 2016 20:25:38 +0800 Subject: [PATCH 0882/1426] [Tests] switch to use Cabal to install ShellCheck 1. This can help speed up the apt process since we decrease the complexity of apt sources and package dependencies resolving by dropping an additional ppa source. 2. Stack doesn't update ShellCheck to v0.4.5 after it has been released more than one month, Cabal can provide ShellCheck v0.4.5 --- .travis.yml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 22786bf..f08ba5b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,6 @@ addons: apt: sources: - ubuntu-toolchain-r-test - - fpcomplete-precise - llvm-toolchain-precise - llvm-toolchain-precise-3.8 packages: @@ -12,13 +11,13 @@ addons: - g++-4.8 - clang-3.8 - lldb-3.8 - - stack - - bc + - cabal-install + - ghc - zsh - ksh cache: directories: - - $HOME/.stack + - $HOME/.cabal - $TRAVIS_BUILD_DIR/.cache before_install: - $SHELL --version 2> /dev/null || dpkg -s $SHELL 2> /dev/null || which $SHELL @@ -26,7 +25,7 @@ before_install: - wget --version - clang --version - clang++ --version - - if [ -n "${SHELLCHECK-}" ]; then stack setup && stack install ShellCheck && shellcheck --version ; fi + - if [ -n "${SHELLCHECK-}" ]; then cabal update && cabal install transformers-0.4.3.0 ShellCheck && shellcheck --version ; fi - if [ -z "${SHELLCHECK-}" ]; then sudo ln -sf /usr/bin/clang-3.8 /usr/bin/clang && sudo ln -sf /usr/bin/clang++-3.8 /usr/bin/clang++ && clang --version ; fi install: - (mkdir /tmp/urchin && cd /tmp/urchin && curl -s "$(curl -s https://registry.npmjs.com/urchin | grep -Eo '"tarball":\s*"[^"]+"' | tail -n 1 | awk -F\" '{ print $4 }')" -O && tar -x -f urchin*) @@ -39,7 +38,7 @@ env: global: - CXX=g++-4.8 - CC=gcc-4.8 - - PATH=$(echo $PATH | sed 's/::/:/') + - PATH="~/.cabal/bin/:$(echo $PATH | sed 's/::/:/')" - NVM_DIR="${TRAVIS_BUILD_DIR}" matrix: - SHELLCHECK=true From 4b4e71f05c7ad3a8159d5b5ee22a5ec55d7cf2db Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Wed, 23 Nov 2016 21:44:35 +0800 Subject: [PATCH 0883/1426] [shellcheck] disable "Check exit code directly" warning on line 273, 666 We need to use both the exit state and result form the previous commit, so SC2181 should be disabled here. --- nvm.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nvm.sh b/nvm.sh index 544245d..dbe039e 100755 --- a/nvm.sh +++ b/nvm.sh @@ -269,6 +269,7 @@ nvm_ensure_version_installed() { local NVM_VERSION_DIR if [ "${EXIT_CODE}" != "0" ] || ! nvm_is_version_installed "${LOCAL_VERSION}"; then VERSION="$(nvm_resolve_alias "${PROVIDED_VERSION}")" + # shellcheck disable=SC2181 if [ $? -eq 0 ]; then nvm_err "N/A: version \"${PROVIDED_VERSION} -> ${VERSION}\" is not yet installed." nvm_err "" @@ -663,6 +664,7 @@ nvm_alias() { nvm_ls_current() { local NVM_LS_CURRENT_NODE_PATH NVM_LS_CURRENT_NODE_PATH="$(command which node 2> /dev/null)" + # shellcheck disable=SC2181 if [ $? -ne 0 ]; then nvm_echo 'none' elif nvm_tree_contains_path "$(nvm_version_dir iojs)" "${NVM_LS_CURRENT_NODE_PATH}"; then From e47b313b852d1ebb0bfaf0d9b112437477d230a0 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 14 Nov 2016 19:44:55 +0800 Subject: [PATCH 0884/1426] [readme] Auto install not exist version in zsh .nvmrc script Fixes #1272. --- README.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index b53baeb..0581cac 100644 --- a/README.markdown +++ b/README.markdown @@ -323,7 +323,7 @@ load-nvmrc() { local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")") if [ "$nvmrc_node_version" != "N/A" ] && [ "$nvmrc_node_version" != "$node_version" ]; then - nvm use + nvm install fi elif [ "$node_version" != "$(nvm version default)" ]; then echo "Reverting to nvm default version" From 60ba4bca0cf31de6d89ca71b7e915db911fe5fc0 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 24 Nov 2016 14:38:16 +0800 Subject: [PATCH 0885/1426] [Tests] Remove not working clang part until we refactor the workflow --- .travis.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index f08ba5b..85c77d4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,13 +4,9 @@ addons: apt: sources: - ubuntu-toolchain-r-test - - llvm-toolchain-precise - - llvm-toolchain-precise-3.8 packages: - gcc-4.8 - g++-4.8 - - clang-3.8 - - lldb-3.8 - cabal-install - ghc - zsh @@ -23,10 +19,7 @@ before_install: - $SHELL --version 2> /dev/null || dpkg -s $SHELL 2> /dev/null || which $SHELL - curl --version - wget --version - - clang --version - - clang++ --version - if [ -n "${SHELLCHECK-}" ]; then cabal update && cabal install transformers-0.4.3.0 ShellCheck && shellcheck --version ; fi - - if [ -z "${SHELLCHECK-}" ]; then sudo ln -sf /usr/bin/clang-3.8 /usr/bin/clang && sudo ln -sf /usr/bin/clang++-3.8 /usr/bin/clang++ && clang --version ; fi install: - (mkdir /tmp/urchin && cd /tmp/urchin && curl -s "$(curl -s https://registry.npmjs.com/urchin | grep -Eo '"tarball":\s*"[^"]+"' | tail -n 1 | awk -F\" '{ print $4 }')" -O && tar -x -f urchin*) - chmod +x /tmp/urchin/package/urchin From 9963660a11e8d9b7f6643db126d678b3805fba2d Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 24 Nov 2016 15:59:16 +0800 Subject: [PATCH 0886/1426] [shellcheck] SC1004,SC2086 fixes in bash_completion --- bash_completion | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/bash_completion b/bash_completion index 1b074f0..0be1318 100644 --- a/bash_completion +++ b/bash_completion @@ -17,11 +17,11 @@ __nvm_commands () current_word="${COMP_WORDS[COMP_CWORD]}" - COMMANDS='\ - help install uninstall use run exec \ - alias unalias reinstall-packages \ - current list ls list-remote ls-remote \ - clear-cache deactivate unload \ + COMMANDS=' + help install uninstall use run exec + alias unalias reinstall-packages + current list ls list-remote ls-remote + clear-cache deactivate unload version which' if [ ${#COMP_WORDS[@]} == 4 ]; then @@ -56,8 +56,8 @@ __nvm_aliases () { declare aliases aliases="" - if [ -d $NVM_DIR/alias ]; then - aliases="$(cd $NVM_DIR/alias && command find $PWD -type f | command sed "s:$PWD/::")" + if [ -d "$NVM_DIR/alias" ]; then + aliases="$(cd "$NVM_DIR/alias" && command find "$PWD" -type f | command sed "s:$PWD/::")" fi echo "${aliases} node stable unstable iojs" } From b7f9fbd3a7f0de500bf22403e4054ecf3ea61921 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 24 Nov 2016 16:00:23 +0800 Subject: [PATCH 0887/1426] [Tests] run shellcheck for bash_completion in Travis CI --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 85c77d4..7fd0220 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,7 +25,7 @@ install: - chmod +x /tmp/urchin/package/urchin - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' script: - - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash nvm.sh && shellcheck -s sh nvm.sh && shellcheck -s dash nvm.sh && shellcheck -s ksh nvm.sh && shellcheck -s bash install.sh ; fi + - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash nvm.sh && shellcheck -s sh nvm.sh && shellcheck -s dash nvm.sh && shellcheck -s ksh nvm.sh && shellcheck -s bash install.sh && shellcheck -s bash bash_completion ; fi - if [ -z "${SHELLCHECK-}" ]; then make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin/package/urchin test-$SHELL ; fi env: global: From 7ed1e71944618381002f6b08e808fcf7f51a2ba7 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 24 Nov 2016 13:47:20 +0800 Subject: [PATCH 0888/1426] [Refactor] Add missing backslash for dots Related: #1279, 2a2b8bd, cadbbce --- README.markdown | 4 ++-- install.sh | 2 +- update_test_mocks.sh | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.markdown b/README.markdown index 0581cac..14834e9 100644 --- a/README.markdown +++ b/README.markdown @@ -74,7 +74,7 @@ wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | ```sh export NVM_DIR="$HOME/.nvm" -[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm +[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm ``` You can customize the install source, directory, profile, and version using the `NVM_SOURCE`, `NVM_DIR`, `PROFILE`, and `NODE_VERSION` variables. @@ -124,7 +124,7 @@ Add these lines to your `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it ```sh export NVM_DIR="$HOME/.nvm" -[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm +[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm ``` ### Manual upgrade diff --git a/install.sh b/install.sh index ff259aa..f788714 100755 --- a/install.sh +++ b/install.sh @@ -331,7 +331,7 @@ nvm_do_install() { # Source nvm # shellcheck source=/dev/null - . "${INSTALL_DIR}/nvm.sh" + \. "${INSTALL_DIR}/nvm.sh" nvm_check_global_modules diff --git a/update_test_mocks.sh b/update_test_mocks.sh index 5c6917c..4a463c1 100755 --- a/update_test_mocks.sh +++ b/update_test_mocks.sh @@ -9,7 +9,7 @@ MOCKS_DIR="$PWD/test/fast/Unit tests/mocks" echo "creating $MOCKS_DIR" mkdir -p "$MOCKS_DIR" -. "$NVM_DIR/nvm.sh" --no-use +\. "$NVM_DIR/nvm.sh" --no-use nvm deactivate 2> /dev/null nvm_is_version_installed() { return 1 From ac63638469aca2855732cde56d24a9265fa93bb6 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 24 Nov 2016 13:44:39 +0800 Subject: [PATCH 0889/1426] [Fix] add missing quotes for $NODE_VERSION in nvm-exec --- nvm-exec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nvm-exec b/nvm-exec index 55ea0c1..c47cd06 100755 --- a/nvm-exec +++ b/nvm-exec @@ -2,10 +2,11 @@ DIR="$(command cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +# shellcheck disable=SC1090 \. "$DIR/nvm.sh" --no-use if [ -n "$NODE_VERSION" ]; then - nvm use $NODE_VERSION > /dev/null || exit 127 + nvm use "$NODE_VERSION" > /dev/null || exit 127 elif ! nvm use >/dev/null 2>&1; then echo "No NODE_VERSION provided; no .nvmrc file found" >&2 exit 127 From 20ae7ee309e51126144284a03cc9b65b13a8dd9a Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 24 Nov 2016 14:07:56 +0800 Subject: [PATCH 0890/1426] [Tests] Run shellcheck on nvm-exec in Travis CI --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 7fd0220..f597200 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,7 +25,8 @@ install: - chmod +x /tmp/urchin/package/urchin - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' script: - - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash nvm.sh && shellcheck -s sh nvm.sh && shellcheck -s dash nvm.sh && shellcheck -s ksh nvm.sh && shellcheck -s bash install.sh && shellcheck -s bash bash_completion ; fi + - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash nvm.sh && shellcheck -s sh nvm.sh && shellcheck -s dash nvm.sh && shellcheck -s ksh nvm.sh ; fi + - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash install.sh bash-completion nvm-exec ; fi - if [ -z "${SHELLCHECK-}" ]; then make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin/package/urchin test-$SHELL ; fi env: global: From af73102481606f29dee9f6dcda83b3c61fe12c27 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 25 Nov 2016 00:35:33 -0600 Subject: [PATCH 0891/1426] [Fix] fix a typo i made in 20ae7ee309e51126144284a03cc9b65b13a8dd9a --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f597200..f8f4aec 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,7 +26,7 @@ install: - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' script: - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash nvm.sh && shellcheck -s sh nvm.sh && shellcheck -s dash nvm.sh && shellcheck -s ksh nvm.sh ; fi - - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash install.sh bash-completion nvm-exec ; fi + - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash install.sh bash_completion nvm-exec ; fi - if [ -z "${SHELLCHECK-}" ]; then make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin/package/urchin test-$SHELL ; fi env: global: From 5b820a453ca2acef5f1162960843bab1a0aa301a Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 25 Nov 2016 00:56:28 -0600 Subject: [PATCH 0892/1426] [Refactor] avoid S2181 spellcheck error. --- nvm.sh | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/nvm.sh b/nvm.sh index dbe039e..120693f 100755 --- a/nvm.sh +++ b/nvm.sh @@ -268,9 +268,7 @@ nvm_ensure_version_installed() { EXIT_CODE="$?" local NVM_VERSION_DIR if [ "${EXIT_CODE}" != "0" ] || ! nvm_is_version_installed "${LOCAL_VERSION}"; then - VERSION="$(nvm_resolve_alias "${PROVIDED_VERSION}")" - # shellcheck disable=SC2181 - if [ $? -eq 0 ]; then + if VERSION="$(nvm_resolve_alias "${PROVIDED_VERSION}")"; then nvm_err "N/A: version \"${PROVIDED_VERSION} -> ${VERSION}\" is not yet installed." nvm_err "" nvm_err "You need to run \"nvm install ${PROVIDED_VERSION}\" to install it before using it." @@ -663,9 +661,7 @@ nvm_alias() { nvm_ls_current() { local NVM_LS_CURRENT_NODE_PATH - NVM_LS_CURRENT_NODE_PATH="$(command which node 2> /dev/null)" - # shellcheck disable=SC2181 - if [ $? -ne 0 ]; then + if ! NVM_LS_CURRENT_NODE_PATH="$(command which node 2> /dev/null)"; then nvm_echo 'none' elif nvm_tree_contains_path "$(nvm_version_dir iojs)" "${NVM_LS_CURRENT_NODE_PATH}"; then nvm_add_iojs_prefix "$(iojs --version 2>/dev/null)" @@ -1467,12 +1463,10 @@ nvm_get_arch() { # isainfo to get the instruction set supported by the # kernel. if [ "_$NVM_OS" = "_sunos" ]; then - HOST_ARCH=$(pkg_info -Q MACHINE_ARCH pkg_install) - EXIT_CODE=$? - if [ $EXIT_CODE -ne 0 ]; then - HOST_ARCH=$(isainfo -n) + if HOST_ARCH=$(pkg_info -Q MACHINE_ARCH pkg_install); then + HOST_ARCH=$(echo "${HOST_ARCH}" | command tail -1) else - HOST_ARCH=$(echo "$HOST_ARCH" | command tail -1) + HOST_ARCH=$(isainfo -n) fi elif [ "_$NVM_OS" = "_aix" ]; then HOST_ARCH=ppc64 From 7d08ad4311b7ccb7ff8ff5c0c7a9666496172e6f Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Fri, 25 Nov 2016 23:57:08 +0800 Subject: [PATCH 0893/1426] [Tests] also cache $HOME/.ghc for cabal --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index f8f4aec..36ed102 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,6 +13,7 @@ addons: - ksh cache: directories: + - $HOME/.ghc - $HOME/.cabal - $TRAVIS_BUILD_DIR/.cache before_install: From 7f1917d0aae3a92544ee20c1820da38eab5e9e62 Mon Sep 17 00:00:00 2001 From: Gibson Fahnestock Date: Thu, 24 Nov 2016 18:04:14 +0000 Subject: [PATCH 0894/1426] [Refactor] Rename NVM_CPU_THREADS to NVM_CPU_CORES --- nvm.sh | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/nvm.sh b/nvm.sh index 120693f..425dd13 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1777,28 +1777,28 @@ nvm_get_make_jobs() { fi local NVM_OS NVM_OS="$(nvm_get_os)" - local NVM_CPU_THREADS + local NVM_CPU_CORES if [ "_$NVM_OS" = "_linux" ]; then - NVM_CPU_THREADS="$(nvm_grep -c -E '^processor.+: [0-9]+' /proc/cpuinfo)" + NVM_CPU_CORES="$(nvm_grep -c -E '^processor.+: [0-9]+' /proc/cpuinfo)" elif [ "_$NVM_OS" = "_freebsd" ] || [ "_$NVM_OS" = "_darwin" ]; then - NVM_CPU_THREADS="$(sysctl -n hw.ncpu)" + NVM_CPU_CORES="$(sysctl -n hw.ncpu)" elif [ "_$NVM_OS" = "_sunos" ]; then - NVM_CPU_THREADS="$(psrinfo | wc -l)" + NVM_CPU_CORES="$(psrinfo | wc -l)" elif [ "_$NVM_OS" = "_aix" ]; then - NVM_CPU_THREADS="$(lsconf | command grep 'Number Of Processors:'| command awk '{print $4}')" + NVM_CPU_CORES="$(lsconf | command grep 'Number Of Processors:'| command awk '{print $4}')" fi - if ! nvm_is_natural_num "$NVM_CPU_THREADS" ; then - nvm_err 'Can not determine how many thread(s) we can use, set to only 1 now.' - nvm_err 'Please report an issue on GitHub to help us make it better and run it faster on your computer!' + if ! nvm_is_natural_num "$NVM_CPU_CORES" ; then + nvm_err 'Can not determine how many core(s) are available, running in single-threaded mode.' + nvm_err 'Please report an issue on GitHub to help us make nvm run faster on your computer!' NVM_MAKE_JOBS=1 else - nvm_echo "Detected that you have $NVM_CPU_THREADS CPU thread(s)" - if [ "$NVM_CPU_THREADS" -gt 2 ]; then - NVM_MAKE_JOBS=$((NVM_CPU_THREADS - 1)) - nvm_echo "Set the number of jobs to $NVM_CPU_THREADS - 1 = $NVM_MAKE_JOBS jobs to speed up the build" + nvm_echo "Detected that you have $NVM_CPU_CORES CPU core(s)" + if [ "$NVM_CPU_CORES" -gt 2 ]; then + NVM_MAKE_JOBS=$((NVM_CPU_CORES - 1)) + nvm_echo "Running with $NVM_MAKE_JOBS threads to speed up the build" else NVM_MAKE_JOBS=1 - nvm_echo 'Number of CPU thread(s) less or equal to 2 will have only one job a time for `make`' + nvm_echo 'Number of CPU core(s) less than or equal to 2, running in single-threaded mode' fi fi } @@ -1850,7 +1850,7 @@ nvm_install_source() { make='make' if [ "${NVM_OS}" = 'freebsd' ]; then make='gmake' - MAKE_CXX='CXX=c++' + MAKE_CXX='CXX=c++' elif [ "${NVM_OS}" = 'aix' ]; then make='gmake' fi From c58540666d8a95efd55c0f47477810051b085033 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 27 Nov 2016 21:21:49 +0800 Subject: [PATCH 0895/1426] [Docs] update readme about compile nodejs v0.10+ from src --- README.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index 14834e9..e5add62 100644 --- a/README.markdown +++ b/README.markdown @@ -429,7 +429,7 @@ In order to provide the best performance (and other optimisations), nvm will dow Alpine Linux, unlike mainstream/traditional Linux distributions, is based on [busybox](https://www.busybox.net/), a very compact (~5MB) Linux distribution. Busybox (and thus Alpine Linux) uses a different C/C++ stack to most mainstream/traditional Linux distributions - [musl](https://www.musl-libc.org/). This makes binary programs built for such mainstream/traditional incompatible with Alpine Linux, thus we cannot simply `nvm install X` on Alpine Linux and expect the downloaded binary to run correctly - you'll likely see "...does not exist" errors if you try that. -There is a `-s` flag for `nvm install` which requests nvm download Node source and compile it locally but currently (May 2016), this is not available for Node versions newer than v0.10 so unless you need an older Node version, this won't help you. Work is in progress on source-builds for newer Node versions but is not yet complete. +There is a `-s` flag for `nvm install` which requests nvm download Node source and compile it locally. If installing nvm on Alpine Linux *is* still what you want or need to do, you should be able to achieve this by running the following from you Alpine Linux shell: From 26fec8035f80c82c768427c86ff2fd09693b5d68 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 27 Nov 2016 21:30:41 +0800 Subject: [PATCH 0896/1426] [Docs] update alpine environment installation info --- README.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.markdown b/README.markdown index e5add62..3f1b92e 100644 --- a/README.markdown +++ b/README.markdown @@ -434,8 +434,8 @@ There is a `-s` flag for `nvm install` which requests nvm download Node source a If installing nvm on Alpine Linux *is* still what you want or need to do, you should be able to achieve this by running the following from you Alpine Linux shell: ```sh -apk add bash -wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | /bin/bash +apk add -U curl bash ca-certificates openssl ncurses coreutils python2 make gcc g++ libgcc linux-headers +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash ``` The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. From a7648ebd9fbebc13dd18dd1be775d4c1d35ad8db Mon Sep 17 00:00:00 2001 From: George Adams Date: Wed, 23 Nov 2016 06:36:52 -0500 Subject: [PATCH 0897/1426] [Fix] `nvm install -s`: `aix`: detect number of threads on aix and not just number of processors --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 425dd13..09f5ef3 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1785,7 +1785,7 @@ nvm_get_make_jobs() { elif [ "_$NVM_OS" = "_sunos" ]; then NVM_CPU_CORES="$(psrinfo | wc -l)" elif [ "_$NVM_OS" = "_aix" ]; then - NVM_CPU_CORES="$(lsconf | command grep 'Number Of Processors:'| command awk '{print $4}')" + NVM_CPU_CORES="$(pmcycles -m | wc -l)" fi if ! nvm_is_natural_num "$NVM_CPU_CORES" ; then nvm_err 'Can not determine how many core(s) are available, running in single-threaded mode.' From 00a1ee6c4d1106266b982364c29f5a035ac034f6 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 28 Nov 2016 04:10:42 +0800 Subject: [PATCH 0898/1426] [Fix] nvm unload missed nvm_cache_dir() nvm_cd() --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 09f5ef3..8ac768e 100755 --- a/nvm.sh +++ b/nvm.sh @@ -3157,7 +3157,7 @@ nvm() { nvm_binary_available nvm_prepend_path nvm_strip_path \ nvm_num_version_groups nvm_format_version nvm_ensure_version_prefix \ nvm_normalize_version nvm_is_valid_version \ - nvm_ensure_version_installed \ + nvm_ensure_version_installed nvm_cache_dir \ nvm_version_path nvm_alias_path nvm_version_dir \ nvm_find_nvmrc nvm_find_up nvm_tree_contains_path \ nvm_version_greater nvm_version_greater_than_or_equal_to \ @@ -3165,7 +3165,7 @@ nvm() { nvm_has_system_node nvm_has_system_iojs \ nvm_download nvm_get_latest nvm_has \ nvm_supports_source_options nvm_auto nvm_supports_xz \ - nvm_echo nvm_err nvm_grep \ + nvm_echo nvm_err nvm_grep nvm_cd \ nvm_die_on_prefix nvm_get_make_jobs nvm_get_minor_version \ nvm_has_solaris_binary nvm_is_merged_node_version \ nvm_is_natural_num nvm_is_version_installed \ From f29cd1a2ab01b1023c7b83286d48d94a2af95818 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 28 Nov 2016 04:14:21 +0800 Subject: [PATCH 0899/1426] [Fix] nvm unload missed NVM_CD_FLAGS NVM_BIN NVM_MAKE_JOBS NVM_PATH --- nvm.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 8ac768e..4088af8 100755 --- a/nvm.sh +++ b/nvm.sh @@ -3173,7 +3173,9 @@ nvm() { nvm_print_default_alias nvm_print_formatted_alias nvm_resolve_local_alias \ nvm_sanitize_path nvm_has_colors nvm_process_parameters \ > /dev/null 2>&1 - unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_IOJS_ORG_MIRROR NVM_DIR NVM_CD_FLAGS > /dev/null 2>&1 + unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_IOJS_ORG_MIRROR NVM_DIR \ + NVM_CD_FLAGS NVM_BIN NVM_MAKE_JOBS NVM_PATH \ + > /dev/null 2>&1 ;; * ) >&2 nvm --help From c96c561c88e6924ecf677844dab12e8b34eb42a7 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 28 Nov 2016 18:35:32 +0800 Subject: [PATCH 0900/1426] [Fix] nvm unload missed node_version_has_solaris_binary() --- nvm.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/nvm.sh b/nvm.sh index 4088af8..4ff9747 100755 --- a/nvm.sh +++ b/nvm.sh @@ -3172,6 +3172,7 @@ nvm() { nvm_list_aliases nvm_make_alias nvm_print_alias_path \ nvm_print_default_alias nvm_print_formatted_alias nvm_resolve_local_alias \ nvm_sanitize_path nvm_has_colors nvm_process_parameters \ + node_version_has_solaris_binary \ > /dev/null 2>&1 unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_IOJS_ORG_MIRROR NVM_DIR \ NVM_CD_FLAGS NVM_BIN NVM_MAKE_JOBS NVM_PATH \ From 47c60dfc1d645d7145466ab1f4fbf1b3c22cca61 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 28 Nov 2016 12:50:35 -0800 Subject: [PATCH 0901/1426] [Tests] add test to ensure that `nvm unload` unloads all functions. --- nvm.sh | 2 +- ...ad\" should unset all function and variables." | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 4ff9747..8ae2b8e 100755 --- a/nvm.sh +++ b/nvm.sh @@ -3172,7 +3172,7 @@ nvm() { nvm_list_aliases nvm_make_alias nvm_print_alias_path \ nvm_print_default_alias nvm_print_formatted_alias nvm_resolve_local_alias \ nvm_sanitize_path nvm_has_colors nvm_process_parameters \ - node_version_has_solaris_binary \ + node_version_has_solaris_binary iojs_version_has_solaris_binary \ > /dev/null 2>&1 unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_IOJS_ORG_MIRROR NVM_DIR \ NVM_CD_FLAGS NVM_BIN NVM_MAKE_JOBS NVM_PATH \ diff --git "a/test/fast/Running \"nvm unload\" should unset all function and variables." "b/test/fast/Running \"nvm unload\" should unset all function and variables." index 6634de1..f42470c 100755 --- "a/test/fast/Running \"nvm unload\" should unset all function and variables." +++ "b/test/fast/Running \"nvm unload\" should unset all function and variables." @@ -2,7 +2,13 @@ set -ex -die () { echo "$@" ; exit 1; } +BEFORE="./before.tmp" +AFTER="./after.tmp" + +cleanup () { rm -f "${BEFORE}" "${AFTER}"; } +die () { echo "$@" ; cleanup ; exit 1; } + +typeset -f | awk '/ \(\) $/ && !/^main / {print $1}' > "${BEFORE}" \. ../../nvm.sh @@ -10,4 +16,11 @@ type nvm > /dev/null 2>&1 || die "nvm not loaded" nvm unload +typeset -f | awk '/ \(\) $/ && !/^main / {print $1}' > "${AFTER}" + ! type nvm > /dev/null 2>&1 || die "nvm not unloaded" + +DIFF="$(diff "${BEFORE}" "${AFTER}" ||:)" +[ -z "${DIFF}" ] || die "function pollution found: ${DIFF}" + +cleanup From 84575cf353fedfac244fd4436cff74e48abde229 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 28 Nov 2016 03:39:48 +0800 Subject: [PATCH 0902/1426] [Refactor] Use "case" instead of multi "if" --- nvm.sh | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/nvm.sh b/nvm.sh index 8ae2b8e..86fd814 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1778,15 +1778,20 @@ nvm_get_make_jobs() { local NVM_OS NVM_OS="$(nvm_get_os)" local NVM_CPU_CORES - if [ "_$NVM_OS" = "_linux" ]; then - NVM_CPU_CORES="$(nvm_grep -c -E '^processor.+: [0-9]+' /proc/cpuinfo)" - elif [ "_$NVM_OS" = "_freebsd" ] || [ "_$NVM_OS" = "_darwin" ]; then - NVM_CPU_CORES="$(sysctl -n hw.ncpu)" - elif [ "_$NVM_OS" = "_sunos" ]; then - NVM_CPU_CORES="$(psrinfo | wc -l)" - elif [ "_$NVM_OS" = "_aix" ]; then - NVM_CPU_CORES="$(pmcycles -m | wc -l)" - fi + case "_$NVM_OS" in + "_linux") + NVM_CPU_CORES="$(nvm_grep -c -E '^processor.+: [0-9]+' /proc/cpuinfo)" + ;; + "_freebsd" | "_darwin") + NVM_CPU_CORES="$(sysctl -n hw.ncpu)" + ;; + "_sunos") + NVM_CPU_CORES="$(psrinfo | wc -l)" + ;; + "_aix") + NVM_CPU_CORES="$(pmcycles -m | wc -l)" + ;; + esac if ! nvm_is_natural_num "$NVM_CPU_CORES" ; then nvm_err 'Can not determine how many core(s) are available, running in single-threaded mode.' nvm_err 'Please report an issue on GitHub to help us make nvm run faster on your computer!' From 45771499ee7927a6855d1d6f1e2b5ce598d7bd13 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Tue, 29 Nov 2016 15:30:01 +0800 Subject: [PATCH 0903/1426] [Fix] nvm should respect CC/CXX env var - Also set CC for Freebsd, not only CXX - Also set CC=cc, CXX=c++ on Mac OS by default as upstream Reference: https://github.com/nodejs/node/blob/1bd871655a8b76fa3be1e3c6c325efa74c86fcd9/configure#L16-L17 --- nvm.sh | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/nvm.sh b/nvm.sh index 86fd814..0e19598 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1853,15 +1853,24 @@ nvm_install_source() { local make make='make' - if [ "${NVM_OS}" = 'freebsd' ]; then - make='gmake' - MAKE_CXX='CXX=c++' - elif [ "${NVM_OS}" = 'aix' ]; then - make='gmake' - fi - if nvm_has "clang++" && nvm_has "clang" && nvm_version_greater_than_or_equal_to nvm_clang_version 3.5 ; then - nvm_echo "Clang v3.5+ detected! Use Clang as c/c++ compiler!" - MAKE_CXX='CC=clang CXX=clang++' + local MAKE_CXX + case "${NVM_OS}" in + 'freebsd') + make='gmake' + MAKE_CXX="CC=${CC:-cc} CXX=${CXX:-c++}" + ;; + 'darwin') + MAKE_CXX="CC=${CC:-cc} CXX=${CXX:-c++}" + ;; + 'aix') + make='gmake' + ;; + esac + if nvm_has "clang++" && nvm_has "clang" && nvm_version_greater_than_or_equal_to nvm_clang_version 3.5; then + if [ -z "${CC-}" ] || [ -z "${CXX-}" ] ; then + nvm_echo "Clang v3.5+ detected! CC or CXX not specified, will use Clang as c/c++ compiler!" + MAKE_CXX="CC=${CC:-cc} CXX=${CXX:-c++}" + fi fi local tar_compression_flag From d5340539d91632c3e729c992b54cb83411bb238c Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Fri, 2 Dec 2016 19:33:48 +0800 Subject: [PATCH 0904/1426] [Docs] Link version badge to the release page --- README.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index 3f1b92e..e4dd6b5 100644 --- a/README.markdown +++ b/README.markdown @@ -1,4 +1,4 @@ -# Node Version Manager [![Build Status](https://travis-ci.org/creationix/nvm.svg?branch=master)][3] ![nvm version](https://img.shields.io/badge/version-v0.32.1-yellow.svg) +# Node Version Manager [![Build Status](https://travis-ci.org/creationix/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.32.1-yellow.svg)][4] ## Table of Contents @@ -468,5 +468,6 @@ If setting the `default` alias does not establish the node version in new shells [1]: https://github.com/creationix/nvm.git [2]: https://github.com/creationix/nvm/blob/v0.32.1/install.sh [3]: https://travis-ci.org/creationix/nvm +[4]: https://github.com/creationix/nvm/releases/tag/v0.32.1 [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com From 7c0dc2be685419142001597a9e5e423d5658fa69 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sat, 3 Dec 2016 21:32:41 +0800 Subject: [PATCH 0905/1426] [Docs] Make the indent in readme consistenly use soft tabs --- README.markdown | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/README.markdown b/README.markdown index e4dd6b5..ae76da8 100644 --- a/README.markdown +++ b/README.markdown @@ -374,7 +374,7 @@ Nota bene: Avoid running nvm while the tests are running. To activate, you need to source `bash_completion`: ```sh - [[ -r $NVM_DIR/bash_completion ]] && . $NVM_DIR/bash_completion + [[ -r $NVM_DIR/bash_completion ]] && . $NVM_DIR/bash_completion ``` Put the above sourcing line just below the sourcing line for nvm in your profile (`.bashrc`, `.bash_profile`). @@ -383,28 +383,28 @@ Put the above sourcing line just below the sourcing line for nvm in your profile nvm: - $ nvm [tab][tab] + $ nvm [tab][tab] alias deactivate install ls run unload clear-cache exec list ls-remote unalias use current help list-remote reinstall-packages uninstall version nvm alias: - $ nvm alias [tab][tab] - default + $ nvm alias [tab][tab] + default - $ nvm alias my_alias [tab][tab] - v0.6.21 v0.8.26 v0.10.28 + $ nvm alias my_alias [tab][tab] + v0.6.21 v0.8.26 v0.10.28 nvm use: - $ nvm use [tab][tab] - my_alias default v0.6.21 v0.8.26 v0.10.28 + $ nvm use [tab][tab] + my_alias default v0.6.21 v0.8.26 v0.10.28 nvm uninstall: - $ nvm uninstall [tab][tab] - my_alias default v0.6.21 v0.8.26 v0.10.28 + $ nvm uninstall [tab][tab] + my_alias default v0.6.21 v0.8.26 v0.10.28 ## Compatibility Issues `nvm` will encounter some issues if you have some non-default settings set. (see [#606](/../../issues/606)) From 2af47b0034aa3050b4f1e4eeb56cd6d9ac930f9d Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sat, 3 Dec 2016 21:33:54 +0800 Subject: [PATCH 0906/1426] [Docs] Remove mixed addtional indent in the Bash completion codeblock --- README.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index ae76da8..3b02569 100644 --- a/README.markdown +++ b/README.markdown @@ -374,7 +374,7 @@ Nota bene: Avoid running nvm while the tests are running. To activate, you need to source `bash_completion`: ```sh - [[ -r $NVM_DIR/bash_completion ]] && . $NVM_DIR/bash_completion +[[ -r $NVM_DIR/bash_completion ]] && . $NVM_DIR/bash_completion ``` Put the above sourcing line just below the sourcing line for nvm in your profile (`.bashrc`, `.bash_profile`). From fcd6331f0990412a698e8c3e36e8c467694bbe8b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 16 Dec 2016 10:57:22 -0800 Subject: [PATCH 0907/1426] [Fix] remove the unused and broken `$NVM_PATH`. Added in 359a83e. Fixes #1353. --- nvm.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index 0e19598..ad6b099 100755 --- a/nvm.sh +++ b/nvm.sh @@ -2576,7 +2576,7 @@ nvm() { nvm_echo "$NVM_DIR/*/lib/node_modules removed from \$NODE_PATH" fi fi - unset NVM_BIN NVM_PATH + unset NVM_BIN ;; "use" ) local PROVIDED_VERSION @@ -2674,7 +2674,6 @@ nvm() { fi export PATH hash -r - export NVM_PATH="$NVM_VERSION_DIR/lib/node" export NVM_BIN="$NVM_VERSION_DIR/bin" if [ "${NVM_SYMLINK_CURRENT-}" = true ]; then command rm -f "$NVM_DIR/current" && ln -s "$NVM_VERSION_DIR" "$NVM_DIR/current" @@ -3189,7 +3188,7 @@ nvm() { node_version_has_solaris_binary iojs_version_has_solaris_binary \ > /dev/null 2>&1 unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_IOJS_ORG_MIRROR NVM_DIR \ - NVM_CD_FLAGS NVM_BIN NVM_MAKE_JOBS NVM_PATH \ + NVM_CD_FLAGS NVM_BIN NVM_MAKE_JOBS \ > /dev/null 2>&1 ;; * ) From 0f6997d90a871f2c2c94c9c944c90dea0a226d51 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 16 Dec 2016 10:57:22 -0800 Subject: [PATCH 0908/1426] [Tests] remove the unused and broken `$NVM_PATH`. --- ... deactivate\" should unset the nvm environment variables." | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git "a/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." "b/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." index af9ecef..4c20a19 100755 --- "a/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." +++ "b/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." @@ -13,12 +13,10 @@ die () { echo "$@" ; exit 1; } nvm use --delete-prefix v0.2.3 || die "Failed to activate v0.2.3" [ `expr "$PATH" : ".*v0.2.3/.*/bin"` != 0 ] || die "PATH not set up properly" [ `expr "$NODE_PATH" : ".*v0.2.3/.*/lib/node_modules"` = 0 ] || die "NODE_PATH should not contain (npm root -g)" -[ `expr "$NVM_BIN" : ".*v0.2.3/bin"` != 0 ] || die "NODE_BIN should contain bin directory path" -[ `expr "$NVM_PATH" : ".*v0.2.3/lib/node"` != 0 ] || die "NODE_PATH should contain lib node directory path" # ^ note: NODE_PATH should not contain `npm root -g` since globals should not be requireable +[ `expr "$NVM_BIN" : ".*v0.2.3/bin"` != 0 ] || die "NODE_BIN should contain bin directory path" nvm deactivate || die "Failed to deactivate v0.2.3" [ `expr "$PATH" : ".*v0.2.3/.*/bin"` = 0 ] || die "PATH not cleaned properly" [ `expr "$NODE_PATH" : ".*v0.2.3/.*/lib/node_modules"` = 0 ] || die "NODE_PATH not cleaned properly" [ "_$NVM_BIN" = "_" ] || die "NVM_BIN should be unset: got '$NVM_BIN'" -[ "_$NVM_PATH" = "_" ] || die "NVM_PATH should be unset: got '$NVM_PATH'" From 60239e39cd4d1f29478741fdacfb012e69c71749 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 25 Dec 2016 11:31:37 -0800 Subject: [PATCH 0909/1426] =?UTF-8?q?[Fix]=20`set=20-u`:=20ensure=20that?= =?UTF-8?q?=20potentially=20unbound=20variables=20aren=E2=80=99t=20called?= =?UTF-8?q?=20unchecked.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #1363. --- nvm.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/nvm.sh b/nvm.sh index ad6b099..29f4e96 100755 --- a/nvm.sh +++ b/nvm.sh @@ -379,7 +379,7 @@ nvm_remote_versions() { NVM_LS_REMOTE_PRE_MERGED_OUTPUT='' local NVM_LS_REMOTE_POST_MERGED_OUTPUT NVM_LS_REMOTE_POST_MERGED_OUTPUT='' - if [ -z "${NVM_FLAVOR}" ] || [ "${NVM_FLAVOR}" = "${NVM_NODE_PREFIX}" ]; then + if [ -z "${NVM_FLAVOR-}" ] || [ "${NVM_FLAVOR-}" = "${NVM_NODE_PREFIX}" ]; then local NVM_LS_REMOTE_OUTPUT NVM_LS_REMOTE_OUTPUT=$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote "${PATTERN-}") &&: NVM_LS_REMOTE_EXIT_CODE=$? @@ -391,8 +391,8 @@ nvm_remote_versions() { local NVM_LS_REMOTE_IOJS_EXIT_CODE NVM_LS_REMOTE_IOJS_EXIT_CODE=0 local NVM_LS_REMOTE_IOJS_OUTPUT - if [ -z "${NVM_LTS}" ] && ( \ - [ -z "${NVM_FLAVOR}" ] || [ "${NVM_FLAVOR}" = "${NVM_IOJS_PREFIX}" ] \ + if [ -z "${NVM_LTS-}" ] && ( \ + [ -z "${NVM_FLAVOR-}" ] || [ "${NVM_FLAVOR-}" = "${NVM_IOJS_PREFIX}" ] \ ); then NVM_LS_REMOTE_IOJS_OUTPUT=$(nvm_ls_remote_iojs "${PATTERN-}") &&: NVM_LS_REMOTE_IOJS_EXIT_CODE=$? @@ -2446,7 +2446,7 @@ nvm() { NVM_INSTALL_SUCCESS=true fi fi - if [ "$NVM_INSTALL_SUCCESS" != true ]; then + if [ "${NVM_INSTALL_SUCCESS-}" != true ]; then if [ -z "${NVM_MAKE_JOBS-}" ]; then nvm_get_make_jobs fi @@ -2458,7 +2458,7 @@ nvm() { fi - if [ "$NVM_INSTALL_SUCCESS" = true ] && nvm use "$VERSION"; then + if [ "${NVM_INSTALL_SUCCESS}-" = true ] && nvm use "$VERSION"; then nvm_ensure_default_set "$provided_version" if [ ! -z "$REINSTALL_PACKAGES_FROM" ] \ && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then From 71b49f17444a2262a1d4d4f819f3b0dc692ca317 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 26 Dec 2016 02:46:49 +0800 Subject: [PATCH 0910/1426] Add GitHub issue template --- .github/ISSUE_TEMPLATE.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE.md diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000..bf47b4b --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,15 @@ + + + +- Operating system and version: + +- `nvm debug` output: +``` +``` + +- How did you install nvm (e.g. install script in readme, homebrew): + +- Issue description: + +- How to reproduce the issue: + From 1cac5194b9b3ad75f657a48e5b245a955cbbc5c9 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 25 Dec 2016 12:07:08 -0800 Subject: [PATCH 0911/1426] [github] Flesh out issue template a bit. --- .github/ISSUE_TEMPLATE.md | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index bf47b4b..6194cda 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,15 +1,40 @@ - + - Operating system and version: - `nvm debug` output: +
+ + +```sh + ``` +
+ +- `nvm ls` output: +
+ + +```sh + ``` +
-- How did you install nvm (e.g. install script in readme, homebrew): +- How did you install `nvm`? (e.g. install script in readme, homebrew): -- Issue description: +- What steps did you perform? -- How to reproduce the issue: +- What happened? +- What did you expect to happen? + +- Is there anything in any of your profile files (`.bashrc`, `.bash_profile`, `.zshrc`, etc) that modifies the `PATH`? + +- If you are having installation issues, or getting "N/A", what does `curl -v nodejs.org/dist/` print out? +
+ + +```sh +``` +
From a8c465018e6c861f80ea7433be8118076e00178c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 25 Dec 2016 12:18:56 -0800 Subject: [PATCH 0912/1426] =?UTF-8?q?Revert=20"[Fix]=20`set=20-u`:=20ensur?= =?UTF-8?q?e=20that=20potentially=20unbound=20variables=20aren=E2=80=99t?= =?UTF-8?q?=20called=20unchecked."?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 60239e39cd4d1f29478741fdacfb012e69c71749. --- nvm.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/nvm.sh b/nvm.sh index 29f4e96..ad6b099 100755 --- a/nvm.sh +++ b/nvm.sh @@ -379,7 +379,7 @@ nvm_remote_versions() { NVM_LS_REMOTE_PRE_MERGED_OUTPUT='' local NVM_LS_REMOTE_POST_MERGED_OUTPUT NVM_LS_REMOTE_POST_MERGED_OUTPUT='' - if [ -z "${NVM_FLAVOR-}" ] || [ "${NVM_FLAVOR-}" = "${NVM_NODE_PREFIX}" ]; then + if [ -z "${NVM_FLAVOR}" ] || [ "${NVM_FLAVOR}" = "${NVM_NODE_PREFIX}" ]; then local NVM_LS_REMOTE_OUTPUT NVM_LS_REMOTE_OUTPUT=$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote "${PATTERN-}") &&: NVM_LS_REMOTE_EXIT_CODE=$? @@ -391,8 +391,8 @@ nvm_remote_versions() { local NVM_LS_REMOTE_IOJS_EXIT_CODE NVM_LS_REMOTE_IOJS_EXIT_CODE=0 local NVM_LS_REMOTE_IOJS_OUTPUT - if [ -z "${NVM_LTS-}" ] && ( \ - [ -z "${NVM_FLAVOR-}" ] || [ "${NVM_FLAVOR-}" = "${NVM_IOJS_PREFIX}" ] \ + if [ -z "${NVM_LTS}" ] && ( \ + [ -z "${NVM_FLAVOR}" ] || [ "${NVM_FLAVOR}" = "${NVM_IOJS_PREFIX}" ] \ ); then NVM_LS_REMOTE_IOJS_OUTPUT=$(nvm_ls_remote_iojs "${PATTERN-}") &&: NVM_LS_REMOTE_IOJS_EXIT_CODE=$? @@ -2446,7 +2446,7 @@ nvm() { NVM_INSTALL_SUCCESS=true fi fi - if [ "${NVM_INSTALL_SUCCESS-}" != true ]; then + if [ "$NVM_INSTALL_SUCCESS" != true ]; then if [ -z "${NVM_MAKE_JOBS-}" ]; then nvm_get_make_jobs fi @@ -2458,7 +2458,7 @@ nvm() { fi - if [ "${NVM_INSTALL_SUCCESS}-" = true ] && nvm use "$VERSION"; then + if [ "$NVM_INSTALL_SUCCESS" = true ] && nvm use "$VERSION"; then nvm_ensure_default_set "$provided_version" if [ ! -z "$REINSTALL_PACKAGES_FROM" ] \ && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then From 853afbf595e360dfe6471e2c55d28f0e4cdad3f9 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 26 Dec 2016 21:57:55 -0800 Subject: [PATCH 0913/1426] =?UTF-8?q?Revert=20"Revert=20"[Fix]=20`set=20-u?= =?UTF-8?q?`:=20ensure=20that=20potentially=20unbound=20variables=20aren?= =?UTF-8?q?=E2=80=99t=20called=20unchecked.""?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit a8c465018e6c861f80ea7433be8118076e00178c. Fixes #1363. --- nvm.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index ad6b099..123aa53 100755 --- a/nvm.sh +++ b/nvm.sh @@ -379,7 +379,7 @@ nvm_remote_versions() { NVM_LS_REMOTE_PRE_MERGED_OUTPUT='' local NVM_LS_REMOTE_POST_MERGED_OUTPUT NVM_LS_REMOTE_POST_MERGED_OUTPUT='' - if [ -z "${NVM_FLAVOR}" ] || [ "${NVM_FLAVOR}" = "${NVM_NODE_PREFIX}" ]; then + if [ -z "${NVM_FLAVOR-}" ] || [ "${NVM_FLAVOR-}" = "${NVM_NODE_PREFIX}" ]; then local NVM_LS_REMOTE_OUTPUT NVM_LS_REMOTE_OUTPUT=$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote "${PATTERN-}") &&: NVM_LS_REMOTE_EXIT_CODE=$? @@ -391,8 +391,8 @@ nvm_remote_versions() { local NVM_LS_REMOTE_IOJS_EXIT_CODE NVM_LS_REMOTE_IOJS_EXIT_CODE=0 local NVM_LS_REMOTE_IOJS_OUTPUT - if [ -z "${NVM_LTS}" ] && ( \ - [ -z "${NVM_FLAVOR}" ] || [ "${NVM_FLAVOR}" = "${NVM_IOJS_PREFIX}" ] \ + if [ -z "${NVM_LTS-}" ] && ( \ + [ -z "${NVM_FLAVOR-}" ] || [ "${NVM_FLAVOR-}" = "${NVM_IOJS_PREFIX}" ] \ ); then NVM_LS_REMOTE_IOJS_OUTPUT=$(nvm_ls_remote_iojs "${PATTERN-}") &&: NVM_LS_REMOTE_IOJS_EXIT_CODE=$? @@ -2406,6 +2406,7 @@ nvm() { fi local NVM_INSTALL_SUCCESS + NVM_INSTALL_SUCCESS=false if [ -n "${NVM_INSTALL_THIRD_PARTY_HOOK-}" ]; then nvm_err '** $NVM_INSTALL_THIRD_PARTY_HOOK env var set; dispatching to third-party installation method **' local NVM_METHOD_PREFERENCE From 186509be242ac054fc84cbe60db1aa3a90d6203b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 28 Dec 2016 09:04:12 -1000 Subject: [PATCH 0914/1426] [github] modify the issue template --- .github/ISSUE_TEMPLATE.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 6194cda..b4f39c5 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -31,6 +31,7 @@ - Is there anything in any of your profile files (`.bashrc`, `.bash_profile`, `.zshrc`, etc) that modifies the `PATH`? + - If you are having installation issues, or getting "N/A", what does `curl -v nodejs.org/dist/` print out?
From ae8eb80d0bac8502d2df7182b36c38ea81f5e1a6 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 29 Dec 2016 21:22:08 -1000 Subject: [PATCH 0915/1426] `make release` should pop up the EDITOR for the annotated tag. --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index dbad8d8..44d6bb9 100644 --- a/Makefile +++ b/Makefile @@ -74,4 +74,4 @@ release: _ensure-tag _ensure-clean printf "=== Bumping version **$$old_ver** to **$$new_ver** before committing and tagging:\n=== TYPE 'proceed' TO PROCEED, anything else to abort: " && read response && [ "$$response" = 'proceed' ] || { echo 'Aborted.' >&2; exit 2; }; \ replace "$$old_ver" "$$new_ver" -- $(VERSIONED_FILES) && \ git commit -m "v$$new_ver" $(VERSIONED_FILES) && \ - git tag -a -m "v$$new_ver" "v$$new_ver" + git tag -a "v$$new_ver" From 40e40975ebd3593d08c3f83de2546258f7ddf11d Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 29 Dec 2016 21:22:13 -1000 Subject: [PATCH 0916/1426] v0.33.0 --- README.markdown | 12 ++++++------ install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README.markdown b/README.markdown index 3b02569..348ead5 100644 --- a/README.markdown +++ b/README.markdown @@ -1,4 +1,4 @@ -# Node Version Manager [![Build Status](https://travis-ci.org/creationix/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.32.1-yellow.svg)][4] +# Node Version Manager [![Build Status](https://travis-ci.org/creationix/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.33.0-yellow.svg)][4] ## Table of Contents @@ -61,13 +61,13 @@ Homebrew installation is not supported. If you have issues with homebrew-install To install or update nvm, you can use the [install script][2] using cURL: ```sh -curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash ``` or Wget: ```sh -wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash +wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash ``` The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). @@ -435,7 +435,7 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh ```sh apk add -U curl bash ca-certificates openssl ncurses coreutils python2 make gcc g++ libgcc linux-headers -curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash ``` The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. @@ -466,8 +466,8 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But If setting the `default` alias does not establish the node version in new shells (i.e. `nvm current` yields `system`), ensure that the system's node PATH is set before the `nvm.sh` source line in your shell profile (see [#658](https://github.com/creationix/nvm/issues/658)) [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.32.1/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.33.0/install.sh [3]: https://travis-ci.org/creationix/nvm -[4]: https://github.com/creationix/nvm/releases/tag/v0.32.1 +[4]: https://github.com/creationix/nvm/releases/tag/v0.33.0 [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index f788714..2ebba30 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ nvm_install_dir() { } nvm_latest_version() { - echo "v0.32.1" + echo "v0.33.0" } # diff --git a/nvm.sh b/nvm.sh index 123aa53..35e0386 100755 --- a/nvm.sh +++ b/nvm.sh @@ -3150,7 +3150,7 @@ nvm() { NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; "--version" ) - nvm_echo '0.32.1' + nvm_echo '0.33.0' ;; "unload" ) unset -f nvm \ diff --git a/package.json b/package.json index e13c6cc..b58f9d7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.32.1", + "version": "0.33.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From f1a5f2a15fd2867a4a5762b80cae028d324ee6a1 Mon Sep 17 00:00:00 2001 From: butlerx Date: Mon, 19 Dec 2016 12:00:47 +0000 Subject: [PATCH 0917/1426] =?UTF-8?q?[Docs]=20[Fix]=20zsh=20autochange:=20?= =?UTF-8?q?only=20`nvm=20install`=20if=20we=20can=E2=80=99t=20`nvm=20use`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.markdown | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index 348ead5..28b1b7b 100644 --- a/README.markdown +++ b/README.markdown @@ -322,8 +322,10 @@ load-nvmrc() { if [ -n "$nvmrc_path" ]; then local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")") - if [ "$nvmrc_node_version" != "N/A" ] && [ "$nvmrc_node_version" != "$node_version" ]; then + if [ "$nvmrc_node_version" = "N/A" ]; then nvm install + elif [ "$nvmrc_node_version" != "$node_version" ]; then + nvm use fi elif [ "$node_version" != "$(nvm version default)" ]; then echo "Reverting to nvm default version" From 1b2305232f878db80ded5450a5accc881d4e8752 Mon Sep 17 00:00:00 2001 From: Ryan Wheale Date: Thu, 12 Jan 2017 10:55:56 -0700 Subject: [PATCH 0918/1426] [install script] Use `$HOME` variable in `NVM_DIR` --- install.sh | 2 +- test/install_script/nvm_install_dir | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 2ebba30..85babf5 100755 --- a/install.sh +++ b/install.sh @@ -7,7 +7,7 @@ nvm_has() { } nvm_install_dir() { - echo "${NVM_DIR:-"$HOME/.nvm"}" + printf %s "${NVM_DIR:-"$HOME/.nvm"}" | sed "s:^$HOME:\$HOME:" } nvm_latest_version() { diff --git a/test/install_script/nvm_install_dir b/test/install_script/nvm_install_dir index 1c685e3..94c784f 100755 --- a/test/install_script/nvm_install_dir +++ b/test/install_script/nvm_install_dir @@ -19,7 +19,7 @@ unset NVM_DIR # NVM_DIR is not set install_dir=$(nvm_install_dir) -[ "_$install_dir" = "_$HOME/.nvm" ] || die "nvm_install_dir should default to \$HOME/.nvm. Current output: $install_dir" +[ "_$install_dir" = "_\$HOME/.nvm" ] || die "nvm_install_dir should default to \$HOME/.nvm. Current output: $install_dir" cleanup From affcc5087ced701b88f7286d6b40e482941c8774 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 11 Feb 2017 23:14:58 -0800 Subject: [PATCH 0919/1426] [Fix] `set -e`: `nvm install lts/something`: call `nvm_ensure_default_set` with the proper value. Fixes #1394. --- nvm.sh | 6 +++++- test/installation_node/install LTS | 2 -- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index 35e0386..cdbc026 100755 --- a/nvm.sh +++ b/nvm.sh @@ -2460,7 +2460,11 @@ nvm() { fi if [ "$NVM_INSTALL_SUCCESS" = true ] && nvm use "$VERSION"; then - nvm_ensure_default_set "$provided_version" + if [ -n "${LTS-}" ]; then + nvm_ensure_default_set "lts/${LTS}" + else + nvm_ensure_default_set "$provided_version" + fi if [ ! -z "$REINSTALL_PACKAGES_FROM" ] \ && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then nvm reinstall-packages "$REINSTALL_PACKAGES_FROM" diff --git a/test/installation_node/install LTS b/test/installation_node/install LTS index d83b90f..d0c07a2 100755 --- a/test/installation_node/install LTS +++ b/test/installation_node/install LTS @@ -24,8 +24,6 @@ EXPECTED_OUTPUT="Version '3' (with LTS filter 'argon') not found - try \`nvm ls- [ "${EXIT_CODE}" = 3 ] || die "\`nvm install --lts=argon 3\` did not exit with 3, got >${EXIT_CODE}<" [ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "\`nvm install --lts=argon 3\` output >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<" -set +e # TODO: fix nvm install --lts 4.2.2 || die 'nvm install --lts 4.2.2 failed' -set -e [ "$(nvm current)" = "v4.2.2" ] || die "v4.2.2 not current, got $(nvm_current)" From 6fc0241c21ce8f570f34ce978a3746874664d648 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 12 Feb 2017 00:32:49 -0800 Subject: [PATCH 0920/1426] [Fix] `install.sh`: only un-interpolate $HOME for the profile source string. Fixes #1384. --- install.sh | 10 +++++----- test/install_script/nvm_install_dir | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/install.sh b/install.sh index 85babf5..fc0658b 100755 --- a/install.sh +++ b/install.sh @@ -7,7 +7,7 @@ nvm_has() { } nvm_install_dir() { - printf %s "${NVM_DIR:-"$HOME/.nvm"}" | sed "s:^$HOME:\$HOME:" + printf %s "${NVM_DIR:-"$HOME/.nvm"}" } nvm_latest_version() { @@ -290,10 +290,10 @@ nvm_do_install() { local NVM_PROFILE NVM_PROFILE="$(nvm_detect_profile)" - local INSTALL_DIR - INSTALL_DIR="$(nvm_install_dir)" + local PROFILE_INSTALL_DIR + PROFILE_INSTALL_DIR="$(nvm_install_dir| sed "s:^$HOME:\$HOME:")" - SOURCE_STR="\nexport NVM_DIR=\"$INSTALL_DIR\"\n[ -s \"\$NVM_DIR/nvm.sh\" ] && \\. \"\$NVM_DIR/nvm.sh\" # This loads nvm\n" + SOURCE_STR="\nexport NVM_DIR=\"${PROFILE_INSTALL_DIR}\"\n[ -s \"\$NVM_DIR/nvm.sh\" ] && \\. \"\$NVM_DIR/nvm.sh\" # This loads nvm\n" COMPLETION_STR="[ -s \"\$NVM_DIR/bash_completion\" ] && \\. \"\$NVM_DIR/bash_completion\" # This loads nvm bash_completion\n" BASH_OR_ZSH=false @@ -331,7 +331,7 @@ nvm_do_install() { # Source nvm # shellcheck source=/dev/null - \. "${INSTALL_DIR}/nvm.sh" + \. "$(nvm_install_dir)/nvm.sh" nvm_check_global_modules diff --git a/test/install_script/nvm_install_dir b/test/install_script/nvm_install_dir index 94c784f..1c685e3 100755 --- a/test/install_script/nvm_install_dir +++ b/test/install_script/nvm_install_dir @@ -19,7 +19,7 @@ unset NVM_DIR # NVM_DIR is not set install_dir=$(nvm_install_dir) -[ "_$install_dir" = "_\$HOME/.nvm" ] || die "nvm_install_dir should default to \$HOME/.nvm. Current output: $install_dir" +[ "_$install_dir" = "_$HOME/.nvm" ] || die "nvm_install_dir should default to \$HOME/.nvm. Current output: $install_dir" cleanup From 1b8b7b31ed56858ca34f8d50ed91f684cdf84976 Mon Sep 17 00:00:00 2001 From: Robin Schneider Date: Sun, 12 Feb 2017 10:59:10 +0100 Subject: [PATCH 0921/1426] Add CII best practices badge Thanks to @ljharb for applying for it! Related to: #1395 --- README.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index 28b1b7b..b634ebe 100644 --- a/README.markdown +++ b/README.markdown @@ -1,4 +1,4 @@ -# Node Version Manager [![Build Status](https://travis-ci.org/creationix/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.33.0-yellow.svg)][4] +# Node Version Manager [![Build Status](https://travis-ci.org/creationix/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.33.0-yellow.svg)][4] [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/684/badge)](https://bestpractices.coreinfrastructure.org/projects/684) ## Table of Contents From 49e446dac18ce8b1267107849e6be6fe99390543 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 14 Feb 2017 09:06:23 -0800 Subject: [PATCH 0922/1426] [debug] include mirrors in `nvm debug` output. --- nvm.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nvm.sh b/nvm.sh index cdbc026..04bf129 100755 --- a/nvm.sh +++ b/nvm.sh @@ -2242,6 +2242,8 @@ nvm() { nvm_err "\$NVM_DIR: '$(nvm_sanitize_path "$NVM_DIR")'" nvm_err "\$PREFIX: '$(nvm_sanitize_path "$PREFIX")'" nvm_err "\$NPM_CONFIG_PREFIX: '$(nvm_sanitize_path "$NPM_CONFIG_PREFIX")'" + nvm_err "\$NVM_NODEJS_ORG_MIRROR: '${NVM_NODEJS_ORG_MIRROR}'" + nvm_err "\$NVM_IOJS_ORG_MIRROR: '${NVM_IOJS_ORG_MIRROR}'" local NVM_DEBUG_OUTPUT for NVM_DEBUG_COMMAND in 'nvm current' 'which node' 'which iojs' 'which npm' 'npm config get prefix' 'npm root -g' do From e7e4a9b3d6656024363b49d1e7d64bc0f3829260 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 18 Feb 2017 00:48:41 -0800 Subject: [PATCH 0923/1426] =?UTF-8?q?[Fix]=20unset=20`NVM=5FRC=5FVERSION`?= =?UTF-8?q?=20env=20var=20immediately=20after=20it=E2=80=99s=20no=20longer?= =?UTF-8?q?=20needed.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Relates to #1399. --- nvm.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/nvm.sh b/nvm.sh index 04bf129..f02ffba 100755 --- a/nvm.sh +++ b/nvm.sh @@ -2318,11 +2318,13 @@ nvm() { nvm_rc_version if [ $version_not_provided -eq 1 ]; then if [ -z "$NVM_RC_VERSION" ]; then + unset NVM_RC_VERSION >&2 nvm --help return 127 fi fi provided_version="$NVM_RC_VERSION" + unset NVM_RC_VERSION fi elif [ $# -gt 0 ]; then shift @@ -2619,6 +2621,7 @@ nvm() { PROVIDED_VERSION="$NVM_RC_VERSION" VERSION="$(nvm_version "$PROVIDED_VERSION")" fi + unset NVM_RC_VERSION else VERSION="$(nvm_match_version "$PROVIDED_VERSION")" fi @@ -2743,6 +2746,7 @@ nvm() { if [ -n "$NVM_RC_VERSION" ]; then VERSION="$(nvm_version "$NVM_RC_VERSION")" ||: fi + unset NVM_RC_VERSION if [ "${VERSION:-N/A}" = 'N/A' ]; then >&2 nvm --help return 127 @@ -2763,6 +2767,7 @@ nvm() { fi fi VERSION="$(nvm_version "$NVM_RC_VERSION")" ||: + unset NVM_RC_VERSION else shift fi @@ -2838,6 +2843,7 @@ nvm() { nvm_rc_version fi provided_version="$NVM_RC_VERSION" + unset NVM_RC_VERSION VERSION="$(nvm_version "$provided_version")" ||: else shift @@ -2953,6 +2959,7 @@ nvm() { provided_version="${NVM_RC_VERSION}" VERSION=$(nvm_version "${NVM_RC_VERSION}") ||: fi + unset NVM_RC_VERSION elif [ "_${1}" != '_system' ]; then VERSION="$(nvm_version "${provided_version}")" ||: else From b54e147442eec5b88bff5b32357f4b60be9d686a Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 18 Feb 2017 00:50:33 -0800 Subject: [PATCH 0924/1426] [Fix] `nvm unload`: run `nvm deactivate` before unsetting everything. Fixes #1399. --- nvm.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/nvm.sh b/nvm.sh index f02ffba..6b95788 100755 --- a/nvm.sh +++ b/nvm.sh @@ -3166,6 +3166,7 @@ nvm() { nvm_echo '0.33.0' ;; "unload" ) + nvm deactivate >/dev/null 2>&1 unset -f nvm \ nvm_iojs_prefix nvm_node_prefix \ nvm_add_iojs_prefix nvm_strip_iojs_prefix \ From 7c271729efefd8aa46d72c42c723d5b8f6d9d32a Mon Sep 17 00:00:00 2001 From: John-David Dalton Date: Sun, 19 Feb 2017 19:33:10 -0800 Subject: [PATCH 0925/1426] Enable working without tput. --- nvm.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 6b95788..96292d2 100755 --- a/nvm.sh +++ b/nvm.sh @@ -47,7 +47,9 @@ nvm_is_alias() { nvm_has_colors() { local NVM_COLORS - NVM_COLORS="$(tput -T "${TERM:-vt100}" colors)" + if nvm_has tput; then + NVM_COLORS="$(tput -T "${TERM:-vt100}" colors)" + fi [ "${NVM_COLORS:--1}" -ge 8 ] } From 6669e91bd8187ae9efbf110e31fc4e4d7b79011f Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 20 Feb 2017 17:59:20 -0800 Subject: [PATCH 0926/1426] v0.33.1 --- README.markdown | 12 ++++++------ install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README.markdown b/README.markdown index b634ebe..9cd618d 100644 --- a/README.markdown +++ b/README.markdown @@ -1,4 +1,4 @@ -# Node Version Manager [![Build Status](https://travis-ci.org/creationix/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.33.0-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://travis-ci.org/creationix/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.33.1-yellow.svg)][4] [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/684/badge)](https://bestpractices.coreinfrastructure.org/projects/684) ## Table of Contents @@ -61,13 +61,13 @@ Homebrew installation is not supported. If you have issues with homebrew-install To install or update nvm, you can use the [install script][2] using cURL: ```sh -curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash ``` or Wget: ```sh -wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash +wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash ``` The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). @@ -437,7 +437,7 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh ```sh apk add -U curl bash ca-certificates openssl ncurses coreutils python2 make gcc g++ libgcc linux-headers -curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash ``` The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. @@ -468,8 +468,8 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But If setting the `default` alias does not establish the node version in new shells (i.e. `nvm current` yields `system`), ensure that the system's node PATH is set before the `nvm.sh` source line in your shell profile (see [#658](https://github.com/creationix/nvm/issues/658)) [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.33.0/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.33.1/install.sh [3]: https://travis-ci.org/creationix/nvm -[4]: https://github.com/creationix/nvm/releases/tag/v0.33.0 +[4]: https://github.com/creationix/nvm/releases/tag/v0.33.1 [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index fc0658b..f185db6 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ nvm_install_dir() { } nvm_latest_version() { - echo "v0.33.0" + echo "v0.33.1" } # diff --git a/nvm.sh b/nvm.sh index 96292d2..39a07e1 100755 --- a/nvm.sh +++ b/nvm.sh @@ -3165,7 +3165,7 @@ nvm() { NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; "--version" ) - nvm_echo '0.33.0' + nvm_echo '0.33.1' ;; "unload" ) nvm deactivate >/dev/null 2>&1 diff --git a/package.json b/package.json index b58f9d7..725d9d3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.33.0", + "version": "0.33.1", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 3dc5777b66dc1e3ff58029fc77158651308684d6 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 27 Feb 2017 01:35:34 +0800 Subject: [PATCH 0927/1426] Add doctoc devDependency and npm script Will use it to generate "Table of Contents" --- package.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 725d9d3..c004ddd 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,8 @@ "test/installation": "npm run --silent test/installation/node && npm run --silent test/installation/iojs", "test/installation/node": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=installation_node test-$shell", "test/installation/iojs": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=installation_iojs test-$shell", - "test/sourcing": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=sourcing test-$shell" + "test/sourcing": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=sourcing test-$shell", + "doctoc": "doctoc README.markdown" }, "repository": { "type": "git", @@ -35,6 +36,7 @@ "devDependencies": { "replace": "^0.3.0", "semver": "^5.0.1", - "urchin": "^0.0.5" + "urchin": "^0.0.5", + "doctoc": "^1.2.0" } } From f8aaa32d179026b920e75864691a1587904be594 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 27 Feb 2017 01:36:57 +0800 Subject: [PATCH 0928/1426] README minor adjustment, generate "Table of Content" via doctoc --- README.markdown | 48 +++++++++++++++++++++++++++--------------------- package.json | 2 +- 2 files changed, 28 insertions(+), 22 deletions(-) diff --git a/README.markdown b/README.markdown index 9cd618d..f9ee769 100644 --- a/README.markdown +++ b/README.markdown @@ -1,27 +1,33 @@ # Node Version Manager [![Build Status](https://travis-ci.org/creationix/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.33.1-yellow.svg)][4] [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/684/badge)](https://bestpractices.coreinfrastructure.org/projects/684) + + ## Table of Contents - - [Installation](#installation) - - [Install script](#install-script) - - [Verify installation](#verify-installation) - - [Manual install](#manual-install) - - [Manual upgrade](#manual-upgrade) - - [Usage](#usage) - - [Long-term support](#long-term-support) - - [Migrating global packages while installing](#migrating-global-packages-while-installing) - - [io.js](#iojs) - - [System version of node](#system-version-of-node) - - [Listing versions](#listing-versions) - - [.nvmrc](#nvmrc) - - [Deeper Shell Integration](#deeper-shell-integration) - - [License](#license) - - [Running tests](#running-tests) - - [Bash completion](#bash-completion) - - [Usage](#usage-1) - - [Compatibility Issues](#compatibility-issues) - - [Installing nvm on Alpine Linux](#installing-nvm-on-alpine-linux) - - [Problems](#problems) +- [Installation](#installation) + - [Install script](#install-script) + - [Verify installation](#verify-installation) + - [Manual install](#manual-install) + - [Manual upgrade](#manual-upgrade) +- [Usage](#usage) + - [Long-term support](#long-term-support) + - [Migrating global packages while installing](#migrating-global-packages-while-installing) + - [io.js](#iojs) + - [System version of node](#system-version-of-node) + - [Listing versions](#listing-versions) + - [.nvmrc](#nvmrc) + - [Deeper Shell Integration](#deeper-shell-integration) + - [zsh](#zsh) + - [Calling `nvm use` automatically in a directory with a `.nvmrc` file](#calling-nvm-use-automatically-in-a-directory-with-a-nvmrc-file) +- [License](#license) +- [Running tests](#running-tests) +- [Bash completion](#bash-completion) + - [Usage](#usage-1) +- [Compatibility Issues](#compatibility-issues) +- [Installing nvm on Alpine Linux](#installing-nvm-on-alpine-linux) +- [Problems](#problems) + + ## Installation @@ -305,7 +311,7 @@ You can use [`avn`](https://github.com/wbyoung/avn) to deeply integrate into you If you prefer a lighter-weight solution, the recipes below have been contributed by `nvm` users. They are **not** supported by the `nvm` development team. We are, however, accepting pull requests for more examples. -#### Zsh +#### zsh ##### Calling `nvm use` automatically in a directory with a `.nvmrc` file diff --git a/package.json b/package.json index c004ddd..b81c8e9 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "test/installation/node": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=installation_node test-$shell", "test/installation/iojs": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=installation_iojs test-$shell", "test/sourcing": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=sourcing test-$shell", - "doctoc": "doctoc README.markdown" + "doctoc": "doctoc --title='## Table of Contents' --github README.markdown" }, "repository": { "type": "git", From 1689b174b376afa320c702a4eb45ca59a6f302ed Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Tue, 28 Feb 2017 04:17:29 +0800 Subject: [PATCH 0929/1426] [Test] Add doctoc up-to-date test in TravisCI --- .travis.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 36ed102..24fb012 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,6 +13,7 @@ addons: - ksh cache: directories: + - $HOME/.npm - $HOME/.ghc - $HOME/.cabal - $TRAVIS_BUILD_DIR/.cache @@ -21,14 +22,16 @@ before_install: - curl --version - wget --version - if [ -n "${SHELLCHECK-}" ]; then cabal update && cabal install transformers-0.4.3.0 ShellCheck && shellcheck --version ; fi + - if [ -n "${DOCTOCCHECK-}" ]; then nvm install node && npm install -g doctoc && type doctoc ; fi install: - (mkdir /tmp/urchin && cd /tmp/urchin && curl -s "$(curl -s https://registry.npmjs.com/urchin | grep -Eo '"tarball":\s*"[^"]+"' | tail -n 1 | awk -F\" '{ print $4 }')" -O && tar -x -f urchin*) - chmod +x /tmp/urchin/package/urchin - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' script: + - if [ -n "${DOCTOCCHECK-}" ]; then cp README.markdown README.markdown.orig && npm run doctoc && diff -q README.markdown README.markdown.orig ; fi - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash nvm.sh && shellcheck -s sh nvm.sh && shellcheck -s dash nvm.sh && shellcheck -s ksh nvm.sh ; fi - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash install.sh bash_completion nvm-exec ; fi - - if [ -z "${SHELLCHECK-}" ]; then make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin/package/urchin test-$SHELL ; fi + - if [ -n "${SHELL-}" ] && [ -n "${TEST_SUITE}" ]; then make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin/package/urchin test-$SHELL ; fi env: global: - CXX=g++-4.8 @@ -36,6 +39,7 @@ env: - PATH="~/.cabal/bin/:$(echo $PATH | sed 's/::/:/')" - NVM_DIR="${TRAVIS_BUILD_DIR}" matrix: + - DOCTOCCHECK=true - SHELLCHECK=true - SHELL=bash TEST_SUITE=install_script - SHELL=sh TEST_SUITE=fast From fa22d712ff7367fc0ecc87bbe8801d77303068e3 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 6 Mar 2017 09:35:58 -0800 Subject: [PATCH 0930/1426] [Fix] ensure this variable is not unbound. Fixes #1413. --- nvm.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/nvm.sh b/nvm.sh index 39a07e1..d6dd751 100755 --- a/nvm.sh +++ b/nvm.sh @@ -2675,6 +2675,7 @@ nvm() { # Prepend current version PATH="$(nvm_prepend_path "$PATH" "$NVM_VERSION_DIR/bin")" if nvm_has manpath; then + local MANPATH if [ -z "$MANPATH" ]; then MANPATH=$(manpath) fi From b676bf7d0e140a7357706b669709429f3dc96379 Mon Sep 17 00:00:00 2001 From: Dominyk Tiller Date: Wed, 8 Mar 2017 12:54:37 +0000 Subject: [PATCH 0931/1426] [Fix] checksums: remove libressl command support This was an "oops" on my part when I was testing changes for my work that was later adapted & merged in https://github.com/creationix/nvm/commit/f1bca106a8f5fc6a4b88b5ef30603cf31ea531f1. LibreSSL is never installed as a `libressl` as it is intended to be a replacement for `openssl` as much as possible, and consequently the executable is called `openssl`. --- nvm.sh | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/nvm.sh b/nvm.sh index d6dd751..7fec4d9 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1079,8 +1079,6 @@ nvm_get_checksum_alg() { nvm_echo 'sha-256' elif nvm_has "openssl" && ! nvm_is_alias "openssl"; then nvm_echo 'sha-256' - elif nvm_has "libressl" && ! nvm_is_alias "libressl"; then - nvm_echo 'sha-256' elif nvm_has "bssl" && ! nvm_is_alias "bssl"; then nvm_echo 'sha-256' elif nvm_has "sha1sum" && ! nvm_is_alias "sha1sum"; then @@ -1090,7 +1088,7 @@ nvm_get_checksum_alg() { elif nvm_has "shasum" && ! nvm_is_alias "shasum"; then nvm_echo 'sha-1' else - nvm_err 'Unaliased sha256sum, shasum, sha256, gsha256sum, openssl, libressl, or bssl not found.' + nvm_err 'Unaliased sha256sum, shasum, sha256, gsha256sum, openssl, or bssl not found.' nvm_err 'Unaliased sha1sum, sha1, or shasum not found.' return 1 fi @@ -1122,9 +1120,6 @@ nvm_compute_checksum() { elif nvm_has "openssl" && ! nvm_is_alias "openssl"; then nvm_err 'Computing checksum with openssl dgst -sha256' command openssl dgst -sha256 "${FILE}" | rev | command awk '{print $1}' | rev - elif nvm_has "libressl" && ! nvm_is_alias "libressl"; then - nvm_err 'Computing checksum with libressl dgst -sha256' - command libressl dgst -sha256 "${FILE}" | rev | command awk '{print $1}' | rev elif nvm_has "bssl" && ! nvm_is_alias "bssl"; then nvm_err 'Computing checksum with bssl sha256sum' command bssl sha256sum "${FILE}" | command awk '{print $1}' @@ -1225,12 +1220,10 @@ nvm_checksum() { NVM_CHECKSUM="$(command gsha256sum "${1-}" | command awk '{print $1}')" elif nvm_has "openssl" && ! nvm_is_alias "openssl"; then NVM_CHECKSUM="$(command openssl dgst -sha256 "${1-}" | rev | command awk '{print $1}' | rev)" - elif nvm_has "libressl" && ! nvm_is_alias "libressl"; then - NVM_CHECKSUM="$(command libressl dgst -sha256 "${1-}" | rev | command awk '{print $1}' | rev)" elif nvm_has "bssl" && ! nvm_is_alias "bssl"; then NVM_CHECKSUM="$(command bssl sha256sum "${1-}" | command awk '{print $1}')" else - nvm_err 'Unaliased sha256sum, shasum, sha256, gsha256sum, openssl, libressl, or bssl not found.' + nvm_err 'Unaliased sha256sum, shasum, sha256, gsha256sum, openssl, or bssl not found.' nvm_err 'WARNING: Continuing *without checksum verification*' return fi From 8e6201b5b143c43f39103a7f9036dda8fd0c02c6 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Fri, 10 Mar 2017 18:02:47 +0800 Subject: [PATCH 0932/1426] [Tests] Update test mocks --- .../mocks/nodejs.org-dist-index.tab | 24 ++++++++++++++++ .../Unit tests/mocks/nvm ls-remote lts.txt | 16 +++++++++-- .../Unit tests/mocks/nvm ls-remote node.txt | 28 +++++++++++++++++-- test/fast/Unit tests/mocks/nvm ls-remote.txt | 28 +++++++++++++++++-- .../mocks/nvm_ls_remote LTS argon.txt | 6 ++++ .../Unit tests/mocks/nvm_ls_remote LTS.txt | 12 ++++++++ .../Unit tests/mocks/nvm_ls_remote stable.txt | 2 +- test/fast/Unit tests/mocks/nvm_ls_remote.txt | 24 ++++++++++++++++ .../mocks/nvm_make_alias LTS alias calls.txt | 4 +-- ...nvm_print_implicit_alias remote stable.txt | 2 +- 10 files changed, 136 insertions(+), 10 deletions(-) diff --git a/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab b/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab index d156d88..e1a6aed 100644 --- a/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab +++ b/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab @@ -1,4 +1,21 @@ version date files npm v8 uv zlib openssl modules lts +v7.7.2 2017-03-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - +v7.7.1 2017-03-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - +v7.7.0 2017-02-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - +v7.6.0 2017-02-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 4.1.2 5.5.372.40 1.11.0 1.2.11 1.0.2k 51 - +v7.5.0 2017-01-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 4.1.2 5.4.500.48 1.10.2 1.2.8 1.0.2k 51 - +v7.4.0 2017-01-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - +v7.3.0 2016-12-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - +v7.2.1 2016-12-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - +v7.2.0 2016-11-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - +v7.1.0 2016-11-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - +v7.0.0 2016-10-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.8 5.4.500.36 1.9.1 1.2.8 1.0.2j 51 - +v6.10.0 2017-02-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.10 5.1.281.93 1.9.1 1.2.8 1.0.2k 48 Boron +v6.9.5 2017-01-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2k 48 Boron +v6.9.4 2017-01-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2j 48 Boron +v6.9.3 2017-01-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2j 48 Boron +v6.9.2 2016-12-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.9 5.1.281.88 1.9.1 1.2.8 1.0.2j 48 Boron +v6.9.1 2016-10-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 Boron v6.9.0 2016-10-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 Boron v6.8.1 2016-10-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 - v6.8.0 2016-10-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 - @@ -32,6 +49,12 @@ v5.2.0 2015-12-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux- v5.1.1 2015-12-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 - v5.1.0 2015-11-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2d 47 - v5.0.0 2015-10-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.6 4.6.85.28 1.7.5 1.2.8 1.0.2d 47 - +v4.8.0 2017-02-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.11 4.5.103.45 1.9.1 1.2.8 1.0.2k 46 Argon +v4.7.3 2017-01-31 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.11 4.5.103.43 1.9.1 1.2.8 1.0.2k 46 Argon +v4.7.2 2017-01-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.11 4.5.103.43 1.9.1 1.2.8 1.0.2j 46 Argon +v4.7.1 2017-01-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.11 4.5.103.43 1.9.1 1.2.8 1.0.2j 46 Argon +v4.7.0 2016-12-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.11 4.5.103.43 1.9.1 1.2.8 1.0.2j 46 Argon +v4.6.2 2016-11-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.11 4.5.103.42 1.9.1 1.2.8 1.0.2j 46 Argon v4.6.1 2016-10-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.9 4.5.103.37 1.9.1 1.2.8 1.0.2j 46 Argon v4.6.0 2016-09-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.9 4.5.103.37 1.9.1 1.2.8 1.0.2j 46 Argon v4.5.0 2016-08-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.9 4.5.103.37 1.9.1 1.2.8 1.0.2h 46 Argon @@ -57,6 +80,7 @@ v4.1.2 2015-10-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux- v4.1.1 2015-09-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.4 4.5.103.33 1.7.4 1.2.8 1.0.2d 46 - v4.1.0 2015-09-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.3 4.5.103.33 1.7.4 1.2.8 1.0.2d 46 - v4.0.0 2015-09-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.2 4.5.103.30 1.7.3 1.2.8 1.0.2d 46 - +v0.12.18 2017-02-22 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.11 3.28.71.20 1.6.1 1.2.8 1.0.1u 14 - v0.12.17 2016-10-18 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.28.71.19 1.6.1 1.2.8 1.0.1u 14 - v0.12.16 2016-09-27 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.28.71.19 1.6.1 1.2.8 1.0.1u 14 - v0.12.15 2016-06-23 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.28.71.19 1.6.1 1.2.8 1.0.1t 14 - diff --git a/test/fast/Unit tests/mocks/nvm ls-remote lts.txt b/test/fast/Unit tests/mocks/nvm ls-remote lts.txt index 0974b9c..5eca14a 100644 --- a/test/fast/Unit tests/mocks/nvm ls-remote lts.txt +++ b/test/fast/Unit tests/mocks/nvm ls-remote lts.txt @@ -18,5 +18,17 @@ v4.4.7  (LTS: Argon) v4.5.0  (LTS: Argon) v4.6.0  (LTS: Argon) - v4.6.1  (Latest LTS: Argon) - v6.9.0  (Latest LTS: Boron) + v4.6.1  (LTS: Argon) + v4.6.2  (LTS: Argon) + v4.7.0  (LTS: Argon) + v4.7.1  (LTS: Argon) + v4.7.2  (LTS: Argon) + v4.7.3  (LTS: Argon) + v4.8.0  (Latest LTS: Argon) + v6.9.0  (LTS: Boron) + v6.9.1  (LTS: Boron) + v6.9.2  (LTS: Boron) + v6.9.3  (LTS: Boron) + v6.9.4  (LTS: Boron) + v6.9.5  (LTS: Boron) + v6.10.0  (Latest LTS: Boron) diff --git a/test/fast/Unit tests/mocks/nvm ls-remote node.txt b/test/fast/Unit tests/mocks/nvm ls-remote node.txt index 89b0e04..072b6b8 100644 --- a/test/fast/Unit tests/mocks/nvm ls-remote node.txt +++ b/test/fast/Unit tests/mocks/nvm ls-remote node.txt @@ -234,6 +234,7 @@ v0.12.15 v0.12.16 v0.12.17 + v0.12.18 v4.0.0 v4.1.0 v4.1.1 @@ -258,7 +259,13 @@ v4.4.7  (LTS: Argon) v4.5.0  (LTS: Argon) v4.6.0  (LTS: Argon) - v4.6.1  (Latest LTS: Argon) + v4.6.1  (LTS: Argon) + v4.6.2  (LTS: Argon) + v4.7.0  (LTS: Argon) + v4.7.1  (LTS: Argon) + v4.7.2  (LTS: Argon) + v4.7.3  (LTS: Argon) + v4.8.0  (Latest LTS: Argon) v5.0.0 v5.1.0 v5.1.1 @@ -291,4 +298,21 @@ v6.7.0 v6.8.0 v6.8.1 - v6.9.0  (Latest LTS: Boron) + v6.9.0  (LTS: Boron) + v6.9.1  (LTS: Boron) + v6.9.2  (LTS: Boron) + v6.9.3  (LTS: Boron) + v6.9.4  (LTS: Boron) + v6.9.5  (LTS: Boron) + v6.10.0  (Latest LTS: Boron) + v7.0.0 + v7.1.0 + v7.2.0 + v7.2.1 + v7.3.0 + v7.4.0 + v7.5.0 + v7.6.0 + v7.7.0 + v7.7.1 + v7.7.2 diff --git a/test/fast/Unit tests/mocks/nvm ls-remote.txt b/test/fast/Unit tests/mocks/nvm ls-remote.txt index a5572a1..1b99cd0 100644 --- a/test/fast/Unit tests/mocks/nvm ls-remote.txt +++ b/test/fast/Unit tests/mocks/nvm ls-remote.txt @@ -234,6 +234,7 @@ v0.12.15 v0.12.16 v0.12.17 + v0.12.18 iojs-v1.0.0 iojs-v1.0.1 iojs-v1.0.2 @@ -299,7 +300,13 @@ v4.4.7  (LTS: Argon) v4.5.0  (LTS: Argon) v4.6.0  (LTS: Argon) - v4.6.1  (Latest LTS: Argon) + v4.6.1  (LTS: Argon) + v4.6.2  (LTS: Argon) + v4.7.0  (LTS: Argon) + v4.7.1  (LTS: Argon) + v4.7.2  (LTS: Argon) + v4.7.3  (LTS: Argon) + v4.8.0  (Latest LTS: Argon) v5.0.0 v5.1.0 v5.1.1 @@ -332,4 +339,21 @@ v6.7.0 v6.8.0 v6.8.1 - v6.9.0  (Latest LTS: Boron) + v6.9.0  (LTS: Boron) + v6.9.1  (LTS: Boron) + v6.9.2  (LTS: Boron) + v6.9.3  (LTS: Boron) + v6.9.4  (LTS: Boron) + v6.9.5  (LTS: Boron) + v6.10.0  (Latest LTS: Boron) + v7.0.0 + v7.1.0 + v7.2.0 + v7.2.1 + v7.3.0 + v7.4.0 + v7.5.0 + v7.6.0 + v7.7.0 + v7.7.1 + v7.7.2 diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt b/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt index 9f225b2..a7ab176 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt @@ -19,3 +19,9 @@ v4.4.7 Argon v4.5.0 Argon v4.6.0 Argon v4.6.1 Argon +v4.6.2 Argon +v4.7.0 Argon +v4.7.1 Argon +v4.7.2 Argon +v4.7.3 Argon +v4.8.0 Argon diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt b/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt index c8a3e35..cf82829 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt @@ -19,4 +19,16 @@ v4.4.7 Argon v4.5.0 Argon v4.6.0 Argon v4.6.1 Argon +v4.6.2 Argon +v4.7.0 Argon +v4.7.1 Argon +v4.7.2 Argon +v4.7.3 Argon +v4.8.0 Argon v6.9.0 Boron +v6.9.1 Boron +v6.9.2 Boron +v6.9.3 Boron +v6.9.4 Boron +v6.9.5 Boron +v6.10.0 Boron diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt b/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt index 0dc8460..fe5d597 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt @@ -1 +1 @@ -v6.9.0 Boron +v7.7.2 diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote.txt b/test/fast/Unit tests/mocks/nvm_ls_remote.txt index 82651b0..0025a90 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote.txt @@ -234,6 +234,7 @@ v0.12.14 v0.12.15 v0.12.16 v0.12.17 +v0.12.18 v4.0.0 v4.1.0 v4.1.1 @@ -259,6 +260,12 @@ v4.4.7 Argon v4.5.0 Argon v4.6.0 Argon v4.6.1 Argon +v4.6.2 Argon +v4.7.0 Argon +v4.7.1 Argon +v4.7.2 Argon +v4.7.3 Argon +v4.8.0 Argon v5.0.0 v5.1.0 v5.1.1 @@ -292,3 +299,20 @@ v6.7.0 v6.8.0 v6.8.1 v6.9.0 Boron +v6.9.1 Boron +v6.9.2 Boron +v6.9.3 Boron +v6.9.4 Boron +v6.9.5 Boron +v6.10.0 Boron +v7.0.0 +v7.1.0 +v7.2.0 +v7.2.1 +v7.3.0 +v7.4.0 +v7.5.0 +v7.6.0 +v7.7.0 +v7.7.1 +v7.7.2 diff --git a/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt b/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt index e4b9f02..863d90e 100644 --- a/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt +++ b/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt @@ -1,3 +1,3 @@ lts/*|lts/boron -lts/boron|v6.9.0 -lts/argon|v4.6.1 +lts/boron|v6.10.0 +lts/argon|v4.8.0 diff --git a/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt b/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt index 12e4141..25b629b 100644 --- a/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt +++ b/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt @@ -1 +1 @@ -6.9 +7.7 From 182a18d9114c715d9dbea64c5fd82f6f794f33fb Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 9 Mar 2017 23:02:08 +0800 Subject: [PATCH 0933/1426] [Fix] Github should be GitHub --- nvm.sh | 2 +- test/slow/nvm_get_latest/nvm_get_latest failed redirect | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 7fec4d9..fd4f7f0 100755 --- a/nvm.sh +++ b/nvm.sh @@ -64,7 +64,7 @@ nvm_get_latest() { return 1 fi if [ -z "${NVM_LATEST_URL}" ]; then - nvm_err "http://latest.nvm.sh did not redirect to the latest release on Github" + nvm_err "http://latest.nvm.sh did not redirect to the latest release on GitHub" return 2 fi nvm_echo "${NVM_LATEST_URL##*/}" diff --git a/test/slow/nvm_get_latest/nvm_get_latest failed redirect b/test/slow/nvm_get_latest/nvm_get_latest failed redirect index 61e6680..e8ee63a 100755 --- a/test/slow/nvm_get_latest/nvm_get_latest failed redirect +++ b/test/slow/nvm_get_latest/nvm_get_latest failed redirect @@ -17,7 +17,7 @@ wget() { OUTPUT="$(nvm_get_latest 2>&1)" EXIT_CODE="$(nvm_get_latest >/dev/null 2>&1 ; echo $?)" -[ "_$OUTPUT" = "_http://latest.nvm.sh did not redirect to the latest release on Github" ] \ +[ "_$OUTPUT" = "_http://latest.nvm.sh did not redirect to the latest release on GitHub" ] \ || die "failed redirect did not report correct error message, got '$OUTPUT'" [ "_$EXIT_CODE" = "_2" ] \ || die "failed redirect did not exit with code 2, got $EXIT_CODE" From 257f16fb1320f656c17d39958a730dc9ac048f6c Mon Sep 17 00:00:00 2001 From: Alex Ryan Date: Mon, 13 Mar 2017 03:16:08 -0700 Subject: [PATCH 0934/1426] [Docs] fi README typo --- README.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index f9ee769..744eb9b 100644 --- a/README.markdown +++ b/README.markdown @@ -60,7 +60,7 @@ Homebrew installation is not supported. If you have issues with homebrew-install **Note:** If you're using `zsh` you can easily install `nvm` as a zsh plugin. Install [`zsh-nvm`](https://github.com/lukechilds/zsh-nvm) and run `nvm upgrade` to upgrade. -**Note:** Git versions before v1.7 may face a problem of cloning nvm source from GitHub via https protocol, and there is also different behavior of git before v1.6, so the minimum required git version is v1.7.0 and we recommend v1.7.9.5 as it's the default version of the wildly used Ubuntu 12.04 LTS. If you are interested in the problem we mentioned here, please refer to GitHub's [HTTPS cloning errors](https://help.github.com/articles/https-cloning-errors/) article. +**Note:** Git versions before v1.7 may face a problem of cloning nvm source from GitHub via https protocol, and there is also different behavior of git before v1.6, so the minimum required git version is v1.7.0 and we recommend v1.7.9.5 as it's the default version of the widely used Ubuntu 12.04 LTS. If you are interested in the problem we mentioned here, please refer to GitHub's [HTTPS cloning errors](https://help.github.com/articles/https-cloning-errors/) article. ### Install script From d8538dad84cf0ce9be9ff7bb3317e623e06af745 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 9 Mar 2017 23:11:06 +0800 Subject: [PATCH 0935/1426] [Refactor] nvm.sh minor refactor --- nvm.sh | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/nvm.sh b/nvm.sh index fd4f7f0..c3a2ff9 100755 --- a/nvm.sh +++ b/nvm.sh @@ -2973,9 +2973,8 @@ nvm() { if [ -n "$NVM_BIN" ]; then nvm_echo "$NVM_BIN" return - else - return 1 fi + return 1 else nvm_err 'System version of node not found.' return 127 @@ -3231,8 +3230,8 @@ nvm_supports_xz() { fi # 0.10x: node v0.10.42 and later have xz - if nvm_version_greater_than_or_equal_to "$1" "0.10.42" \ - && nvm_version_greater "0.11.0" "$1"; then + if nvm_version_greater_than_or_equal_to "${1}" "0.10.42" \ + && nvm_version_greater "0.11.0" "${1}"; then return 0 fi From 9593616b8c1730952b64e97389518f36d015e10a Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 1 Jan 2017 18:06:02 +0800 Subject: [PATCH 0936/1426] [Fix] NVM_PROFILE bash/zsh detection in installation --- install.sh | 21 ++++++++++++++----- .../install_script/nvm_profile_is_bash_or_zsh | 13 ++++++++++++ 2 files changed, 29 insertions(+), 5 deletions(-) create mode 100755 test/install_script/nvm_profile_is_bash_or_zsh diff --git a/install.sh b/install.sh index f185db6..7766aa5 100755 --- a/install.sh +++ b/install.sh @@ -14,6 +14,19 @@ nvm_latest_version() { echo "v0.33.1" } +nvm_profile_is_bash_or_zsh() { + local TEST_PROFILE + TEST_PROFILE="${1-}" + case "${TEST_PROFILE-}" in + *"/.bashrc" | *"/.bash_profile" | *"/.zshrc") + return + ;; + *) + return 1 + ;; + esac +} + # # Outputs the location to NVM depending on: # * The availability of $NVM_SOURCE @@ -305,11 +318,9 @@ nvm_do_install() { echo "=> Append the following lines to the correct file yourself:" command printf "${SOURCE_STR}" else - case "${NVM_PROFILE-}" in - ".bashrc" | ".bash_profile" | ".zshrc") - BASH_OR_ZSH=true - ;; - esac + if nvm_profile_is_bash_or_zsh "${NVM_PROFILE-}"; then + BASH_OR_ZSH=true + fi if ! command grep -qc '/nvm.sh' "$NVM_PROFILE"; then echo "=> Appending nvm source string to $NVM_PROFILE" command printf "${SOURCE_STR}" >> "$NVM_PROFILE" diff --git a/test/install_script/nvm_profile_is_bash_or_zsh b/test/install_script/nvm_profile_is_bash_or_zsh new file mode 100755 index 0000000..aae9cc3 --- /dev/null +++ b/test/install_script/nvm_profile_is_bash_or_zsh @@ -0,0 +1,13 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +NVM_ENV=testing \. ../../install.sh + +#nvm_profile_is_bash_or_zsh is available +type nvm_profile_is_bash_or_zsh > /dev/null 2>&1 || die 'nvm_profile_is_bash_or_zsh is not available' +nvm_profile_is_bash_or_zsh "/home/nvm/.bashrc" || die '/home/nvm/.bashrc is bash profile' +nvm_profile_is_bash_or_zsh "/home/nvm/.bash_profile" || die '/home/nvm/.bash_profile is bash profile' +nvm_profile_is_bash_or_zsh "/home/nvm/.zshrc" || die '/home/nvm/.zshrc is zsh profile' +if nvm_profile_is_bash_or_zsh "/home/nvm/.bash"; then die '/home/nvm/.bash is not bash nor zsh profile'; fi +if nvm_profile_is_bash_or_zsh "/home/nvm/.zsh" ; then die '/home/nvm/.zsh is not bash nor zsh profile'; fi From 911ff87601b516923c424051799add4d70588fa1 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 1 Jan 2017 18:06:50 +0800 Subject: [PATCH 0937/1426] [Fix] bash_completion source prompt, remove && --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 7766aa5..6c1fbfe 100755 --- a/install.sh +++ b/install.sh @@ -353,7 +353,7 @@ nvm_do_install() { echo "=> Close and reopen your terminal to start using nvm or run the following to use it now:" command printf "${SOURCE_STR}" if ${BASH_OR_ZSH} ; then - command printf " && ${COMPLETION_STR}" + command printf "${COMPLETION_STR}" fi } From 952d0067b3632c161ac170eae4cc4ff82632e589 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 1 Jan 2017 18:13:13 +0800 Subject: [PATCH 0938/1426] [Fix] bash_completion should make sure nvm loaded --- bash_completion | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bash_completion b/bash_completion index 0be1318..d515165 100644 --- a/bash_completion +++ b/bash_completion @@ -2,6 +2,10 @@ # bash completion for Node Version Manager (NVM) +if ! nvm &> /dev/null; then + return +fi + __nvm_generate_completion() { declare current_word From 1e6b5ce039295625127926283cff9d806f5181dd Mon Sep 17 00:00:00 2001 From: Matthew McEachen Date: Thu, 16 Mar 2017 23:54:55 -0700 Subject: [PATCH 0939/1426] [Fix] stop setting mirror env vars unnecessarily Fixes #1429 --- nvm.sh | 14 ++------------ test/fast/Unit tests/nvm_get_mirror | 19 +++++++++++++++++-- 2 files changed, 19 insertions(+), 14 deletions(-) mode change 100755 => 100644 nvm.sh diff --git a/nvm.sh b/nvm.sh old mode 100755 new mode 100644 index c3a2ff9..6e67ee2 --- a/nvm.sh +++ b/nvm.sh @@ -127,16 +127,6 @@ if [ -z "${NVM_DIR-}" ]; then fi unset NVM_SCRIPT_SOURCE 2> /dev/null - -# Setup mirror location if not already set -if [ -z "${NVM_NODEJS_ORG_MIRROR-}" ]; then - export NVM_NODEJS_ORG_MIRROR="https://nodejs.org/dist" -fi - -if [ -z "${NVM_IOJS_ORG_MIRROR-}" ]; then - export NVM_IOJS_ORG_MIRROR="https://iojs.org/dist" -fi - nvm_tree_contains_path() { local tree tree="${1-}" @@ -1532,8 +1522,8 @@ nvm_is_merged_node_version() { nvm_get_mirror() { case "${1}-${2}" in - node-std) nvm_echo "${NVM_NODEJS_ORG_MIRROR}" ;; - iojs-std) nvm_echo "${NVM_IOJS_ORG_MIRROR}" ;; + node-std) nvm_echo "${NVM_NODEJS_ORG_MIRROR:-https://nodejs.org/dist}" ;; + iojs-std) nvm_echo "${NVM_IOJS_ORG_MIRROR:-https://iojs.org/dist}" ;; *) nvm_err 'unknown type of node.js or io.js release' return 1 diff --git a/test/fast/Unit tests/nvm_get_mirror b/test/fast/Unit tests/nvm_get_mirror index 7067ff9..f4116a6 100755 --- a/test/fast/Unit tests/nvm_get_mirror +++ b/test/fast/Unit tests/nvm_get_mirror @@ -4,6 +4,9 @@ set -ex die () { echo "$@" ; exit 1; } +unset NVM_NODEJS_ORG_MIRROR +unset NVM_IOJS_ORG_MIRROR + \. ../../../nvm.sh ! nvm_get_mirror || die 'unknown release type did not error' @@ -12,5 +15,17 @@ die () { echo "$@" ; exit 1; } ! nvm_get_mirror node foo || die 'unknown release type did not error' ! nvm_get_mirror iojs foo || die 'unknown release type did not error' -[ "$(nvm_get_mirror node std)" = "${NVM_NODEJS_ORG_MIRROR}" ] || die 'node std did not yield NVM_NODEJS_ORG_MIRROR' -[ "$(nvm_get_mirror iojs std)" = "${NVM_IOJS_ORG_MIRROR}" ] || die 'node std did not yield NVM_NODEJS_ORG_MIRROR' +[ -z "$NVM_NODEJS_ORG_MIRROR" ] || die "MIRROR environment variables should not be exported" +[ -z "$NVM_IOJS_ORG_MIRROR" ] || die "MIRROR environment variables should not be exported" + +[ "$(nvm_get_mirror node std)" = "https://nodejs.org/dist" ] || die "incorrect default node-std mirror" +[ "$(nvm_get_mirror iojs std)" = "https://iojs.org/dist" ] || die "incorrect default iojs-std mirror" + +NVM_NODEJS_ORG_MIRROR="test://domain" +[ "$(nvm_get_mirror node std)" = "test://domain" ] || die "node-std mirror should respect NVM_NODEJS_ORG_MIRROR" +unset NVM_NODEJS_ORG_MIRROR + +NVM_IOJS_ORG_MIRROR="test://domain" +[ "$(nvm_get_mirror iojs std)" = "test://domain" ] || die "iojs-std mirror should respect NVM_IOJS_ORG_MIRROR" +unset NVM_IOJS_ORG_MIRROR + From 50ae1e5199483bb47b42fa488b9f6fa51447c34f Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sat, 10 Dec 2016 00:20:04 +0800 Subject: [PATCH 0940/1426] [Fix] Install failed should return correct exit status, fix #1347 --- nvm.sh | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/nvm.sh b/nvm.sh index 6e67ee2..1fa9278 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2394,8 +2394,8 @@ nvm() { return $? fi - local NVM_INSTALL_SUCCESS - NVM_INSTALL_SUCCESS=false + local EXIT_CODE + EXIT_CODE=-1 if [ -n "${NVM_INSTALL_THIRD_PARTY_HOOK-}" ]; then nvm_err '** $NVM_INSTALL_THIRD_PARTY_HOOK env var set; dispatching to third-party installation method **' local NVM_METHOD_PREFERENCE @@ -2405,7 +2405,6 @@ nvm() { fi local VERSION_PATH VERSION_PATH="$(nvm_version_path "${VERSION}")" - local EXIT_CODE "${NVM_INSTALL_THIRD_PARTY_HOOK}" "${VERSION}" "${FLAVOR}" std "${NVM_METHOD_PREFERENCE}" "${VERSION_PATH}" || { EXIT_CODE=$? nvm_err '*** Third-party $NVM_INSTALL_THIRD_PARTY_HOOK env var failed to install! ***' @@ -2415,7 +2414,7 @@ nvm() { nvm_err '*** Third-party $NVM_INSTALL_THIRD_PARTY_HOOK env var claimed to succeed, but failed to install! ***' return 33 fi - NVM_INSTALL_SUCCESS=true + EXIT_CODE=0 else if [ "_$NVM_OS" = "_freebsd" ]; then @@ -2432,23 +2431,21 @@ nvm() { # skip binary install if "nobinary" option specified. if [ $nobinary -ne 1 ] && nvm_binary_available "$VERSION"; then - if nvm_install_binary "${FLAVOR}" std "${VERSION}"; then - NVM_INSTALL_SUCCESS=true - fi + nvm_install_binary "${FLAVOR}" std "${VERSION}" + EXIT_CODE=$? fi - if [ "$NVM_INSTALL_SUCCESS" != true ]; then + if [ "$EXIT_CODE" -ne 0 ]; then if [ -z "${NVM_MAKE_JOBS-}" ]; then nvm_get_make_jobs fi - if nvm_install_source "${FLAVOR}" std "${VERSION}" "${NVM_MAKE_JOBS}" "${ADDITIONAL_PARAMETERS}"; then - NVM_INSTALL_SUCCESS=true - fi + nvm_install_source "${FLAVOR}" std "${VERSION}" "${NVM_MAKE_JOBS}" "${ADDITIONAL_PARAMETERS}" + EXIT_CODE=$? fi fi - if [ "$NVM_INSTALL_SUCCESS" = true ] && nvm use "$VERSION"; then + if [ "$EXIT_CODE" -eq 0 ] && nvm use "$VERSION"; then if [ -n "${LTS-}" ]; then nvm_ensure_default_set "lts/${LTS}" else @@ -2457,9 +2454,10 @@ nvm() { if [ ! -z "$REINSTALL_PACKAGES_FROM" ] \ && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then nvm reinstall-packages "$REINSTALL_PACKAGES_FROM" + EXIT_CODE=$? fi fi - return $? + return $EXIT_CODE ;; "uninstall" ) if [ $# -ne 1 ]; then From 9b2629384fd35771a5e91268f9a8d006b5012705 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 17 Mar 2017 23:20:17 -0700 Subject: [PATCH 0941/1426] [Fix] `nvm install -s`: ensure additional params lack a trailing space. Note: I believe this does not fix the underlying issue in zsh, which is that it does not split up `$ADDITIONAL_PARAMETERS` and instead passes the contents as one single argument. --- nvm.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 1fa9278..122b728 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1826,7 +1826,11 @@ nvm_install_source() { local NVM_ARCH NVM_ARCH="$(nvm_get_arch)" if [ "${NVM_ARCH}" = 'armv6l' ] || [ "${NVM_ARCH}" = 'armv7l' ]; then - ADDITIONAL_PARAMETERS="--without-snapshot ${ADDITIONAL_PARAMETERS}" + if [ -n "${ADDITIONAL_PARAMETERS}" ]; then + ADDITIONAL_PARAMETERS="--without-snapshot ${ADDITIONAL_PARAMETERS}" + else + ADDITIONAL_PARAMETERS='--without-snapshot' + fi fi if [ -n "${ADDITIONAL_PARAMETERS}" ]; then @@ -1883,6 +1887,7 @@ nvm_install_source() { command "${tar}" -x${tar_compression_flag}f "${TARBALL}" -C "${TMPDIR}" --strip-components 1 && \ VERSION_PATH="$(nvm_version_path "${PREFIXED_VERSION}")" && \ nvm_cd "${TMPDIR}" && \ + nvm_echo '$>'./configure --prefix="${VERSION_PATH}" $ADDITIONAL_PARAMETERS'<' && \ ./configure --prefix="${VERSION_PATH}" $ADDITIONAL_PARAMETERS && \ $make -j "${NVM_MAKE_JOBS}" ${MAKE_CXX-} && \ command rm -f "${VERSION_PATH}" 2>/dev/null && \ From b879628394ef763baa0a720b4dade2cdc06714d5 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 16 Mar 2017 04:07:37 +0800 Subject: [PATCH 0942/1426] [Fix] declare MANPATH if and only if it's not set By manpath's man page in Ubuntu 16.04: > If $MANPATH is set, manpath will simply display its contents and issue > a warning. By fa22d712ff7367fc0ecc87bbe8801d77303068e3 for #1413, `nvm` now will declare the "MANPATH" variable, no matter if it's set or not, so in the situation that $MANPATH is set, you'll get the warning: > manpath: warning: $MANPATH set, ignoring /etc/manpath.config --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 122b728..336760e 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2661,8 +2661,8 @@ nvm() { # Prepend current version PATH="$(nvm_prepend_path "$PATH" "$NVM_VERSION_DIR/bin")" if nvm_has manpath; then - local MANPATH if [ -z "$MANPATH" ]; then + local MANPATH MANPATH=$(manpath) fi # Strip other version from MANPATH From 039afb94709841d1baf346e4fc6445c50b3b9dad Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 16 Mar 2017 04:22:29 +0800 Subject: [PATCH 0943/1426] [Docs] Update Installation section 1. If we are not going to install nodejs or io.js from source, we may not need to have c++ compiler or libssl-dev package 2. the `build-essential` and `libssl-dev` packages should work on all the Debian and Ubuntu based GNU/Linux distros 3. Remove useless blank lines --- README.markdown | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.markdown b/README.markdown index 744eb9b..eb155b8 100644 --- a/README.markdown +++ b/README.markdown @@ -31,7 +31,7 @@ ## Installation -First you'll need to make sure your system has a c++ compiler. For OS X, Xcode will work, for Ubuntu, the `build-essential` and `libssl-dev` packages work. +If you're running a system without prepackaged binary available, which means you're going to install nodejs or io.js from its source code, you need to make sure your system has a c++ compiler. For OS X, Xcode will work, for Debian/Ubuntu based GNU/Linux, the `build-essential` and `libssl-dev` packages work. **Note:** `nvm` does not support Windows (see [#284](https://github.com/creationix/nvm/issues/284)). Two alternatives exist, which are neither supported nor developed by us: - [nvm-windows](https://github.com/coreybutler/nvm-windows) @@ -42,8 +42,6 @@ First you'll need to make sure your system has a c++ compiler. For OS X, Xcode w - [fast-nvm-fish](https://github.com/brigand/fast-nvm-fish) only works with version numbers (not aliases) but doesn't significantly slow your shell startup - [plugin-nvm](https://github.com/derekstavis/plugin-nvm) plugin for [Oh My Fish](https://github.com/oh-my-fish/oh-my-fish), which makes nvm and its completions available in fish shell - - **Note:** We still have some problems with FreeBSD, because there is no official pre-built binary for FreeBSD, and building from source may need [patches](https://www.freshports.org/www/node/files/patch-deps_v8_src_base_platform_platform-posix.cc); see the issue ticket: - [[#900] [Bug] nodejs on FreeBSD need to be patched ](https://github.com/creationix/nvm/issues/900) - [nodejs/node#3716](https://github.com/nodejs/node/issues/3716) From dcd008ff61d18fc3b27f602e4bfa9fbe1a73503b Mon Sep 17 00:00:00 2001 From: Shirsh Zibbu Date: Tue, 7 Mar 2017 05:46:45 +0530 Subject: [PATCH 0944/1426] [Refactor] remove unnecessary quotes --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 336760e..453df19 100644 --- a/nvm.sh +++ b/nvm.sh @@ -771,7 +771,7 @@ nvm_strip_iojs_prefix() { if [ "${1-}" = "${NVM_IOJS_PREFIX}" ]; then nvm_echo else - nvm_echo "${1#"${NVM_IOJS_PREFIX}"-}" + nvm_echo "${1#${NVM_IOJS_PREFIX}-}" fi } From 6ed73b069671ac78c7eb9e16765b4abc4ba8d518 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Tue, 21 Mar 2017 04:30:22 +0800 Subject: [PATCH 0945/1426] [Refactor] Improve sed usage for performance --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 453df19..e48de78 100644 --- a/nvm.sh +++ b/nvm.sh @@ -890,7 +890,7 @@ nvm_ls() { fi if [ -n "${NVM_DIRS_TO_SEARCH1}${NVM_DIRS_TO_SEARCH2}${NVM_DIRS_TO_SEARCH3}" ]; then VERSIONS="$(command find "${NVM_DIRS_TO_SEARCH1}"/* "${NVM_DIRS_TO_SEARCH2}"/* "${NVM_DIRS_TO_SEARCH3}"/* -name . -o -type d -prune -o -path "${PATTERN}*" \ - | command sed " + | command sed -e " s#${NVM_VERSION_DIR_IOJS}/#versions/${NVM_IOJS_PREFIX}/#; s#^${NVM_DIR}/##; \#^[^v]# d; @@ -899,7 +899,7 @@ nvm_ls() { s#^v#${NVM_NODE_PREFIX}/v#; \#${SEARCH_PATTERN}# !d; " \ - | command sed "s#^\([^/]\{1,\}\)/\(.*\)\$#\2.\1#;" \ + -e "s#^\([^/]\{1,\}\)/\(.*\)\$#\2.\1#;" \ | command sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n \ | command sed " s#\(.*\)\.\([^\.]\{1,\}\)\$#\2-\1#; From 6cb12b0f990ddf0c48d80d24aabf24fd8b4ecbdc Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Tue, 21 Mar 2017 04:23:53 +0800 Subject: [PATCH 0946/1426] [Performance] Improve awk usage --- nvm.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index e48de78..65fd9d7 100644 --- a/nvm.sh +++ b/nvm.sh @@ -933,7 +933,7 @@ nvm_ls_remote() { local PATTERN PATTERN="${1-}" if nvm_validate_implicit_alias "${PATTERN}" 2> /dev/null ; then - PATTERN="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote "$(nvm_print_implicit_alias remote "${PATTERN}")" | command awk '{ print $1 }' | command tail -1)" + PATTERN="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote "$(nvm_print_implicit_alias remote "${PATTERN}")" | command tail -1 | command awk '{ print $1 }')" elif [ -n "${PATTERN}" ]; then PATTERN="$(nvm_ensure_version_prefix "${PATTERN}")" else @@ -1109,7 +1109,7 @@ nvm_compute_checksum() { command gsha256sum "${FILE}" | command awk '{print $1}' elif nvm_has "openssl" && ! nvm_is_alias "openssl"; then nvm_err 'Computing checksum with openssl dgst -sha256' - command openssl dgst -sha256 "${FILE}" | rev | command awk '{print $1}' | rev + command openssl dgst -sha256 "${FILE}" | command awk '{print $NF}' elif nvm_has "bssl" && ! nvm_is_alias "bssl"; then nvm_err 'Computing checksum with bssl sha256sum' command bssl sha256sum "${FILE}" | command awk '{print $1}' @@ -1209,7 +1209,7 @@ nvm_checksum() { elif nvm_has "gsha256sum" && ! nvm_is_alias "gsha256sum"; then NVM_CHECKSUM="$(command gsha256sum "${1-}" | command awk '{print $1}')" elif nvm_has "openssl" && ! nvm_is_alias "openssl"; then - NVM_CHECKSUM="$(command openssl dgst -sha256 "${1-}" | rev | command awk '{print $1}' | rev)" + NVM_CHECKSUM="$(command openssl dgst -sha256 "${1-}" | command awk '{print $NF}')" elif nvm_has "bssl" && ! nvm_is_alias "bssl"; then NVM_CHECKSUM="$(command bssl sha256sum "${1-}" | command awk '{print $1}')" else From 316c9f34c6f0f229b93cac44de5ac08416e6abc7 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 20 Mar 2017 04:50:32 +0800 Subject: [PATCH 0947/1426] [Performance] Use awk's comparison to save a pipe to grep --- nvm.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index 65fd9d7..0d9eb02 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1181,9 +1181,7 @@ nvm_get_checksum() { SHASUMS_URL="${MIRROR}/${3}/SHASUMS.txt" fi - nvm_download -L -s "${SHASUMS_URL}" -o - | \ - nvm_grep "${4}.tar.${5}" | \ - command awk '{print $1}' + nvm_download -L -s "${SHASUMS_URL}" -o - | command awk "{ if (\"${4}.tar.${5}\" == \$2) print \$1}" } nvm_checksum() { From fa3631fee3a5a00c4e8468c64c00840a5c3a50f2 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 20 Mar 2017 16:57:26 +0800 Subject: [PATCH 0948/1426] [Refactor] Add `nvm_has_non_aliased` --- nvm.sh | 60 +++++++++++++----------- test/fast/Unit tests/nvm_has_non_aliased | 24 ++++++++++ 2 files changed, 56 insertions(+), 28 deletions(-) create mode 100755 test/fast/Unit tests/nvm_has_non_aliased diff --git a/nvm.sh b/nvm.sh index 0d9eb02..94376b7 100644 --- a/nvm.sh +++ b/nvm.sh @@ -39,6 +39,10 @@ nvm_has() { type "${1-}" > /dev/null 2>&1 } +nvm_has_non_aliased() { + nvm_has "${1-}" && ! nvm_is_alias "${1-}" +} + nvm_is_alias() { # this is intentionally not "command alias" so it works in zsh. # shellcheck disable=SC1001 @@ -1059,23 +1063,23 @@ nvm_ls_remote_index_tab() { } nvm_get_checksum_alg() { - if nvm_has "sha256sum" && ! nvm_is_alias "sha256sum"; then + if nvm_has_non_aliased "sha256sum"; then nvm_echo 'sha-256' - elif nvm_has "shasum" && ! nvm_is_alias "shasum"; then + elif nvm_has_non_aliased "shasum"; then nvm_echo 'sha-256' - elif nvm_has "sha256" && ! nvm_is_alias "sha256"; then + elif nvm_has_non_aliased "sha256"; then nvm_echo 'sha-256' - elif nvm_has "gsha256sum" && ! nvm_is_alias "gsha256sum"; then + elif nvm_has_non_aliased "gsha256sum"; then nvm_echo 'sha-256' - elif nvm_has "openssl" && ! nvm_is_alias "openssl"; then + elif nvm_has_non_aliased "openssl"; then nvm_echo 'sha-256' - elif nvm_has "bssl" && ! nvm_is_alias "bssl"; then + elif nvm_has_non_aliased "bssl"; then nvm_echo 'sha-256' - elif nvm_has "sha1sum" && ! nvm_is_alias "sha1sum"; then + elif nvm_has_non_aliased "sha1sum"; then nvm_echo 'sha-1' - elif nvm_has "sha1" && ! nvm_is_alias "sha1"; then + elif nvm_has_non_aliased "sha1"; then nvm_echo 'sha-1' - elif nvm_has "shasum" && ! nvm_is_alias "shasum"; then + elif nvm_has_non_aliased "shasum"; then nvm_echo 'sha-1' else nvm_err 'Unaliased sha256sum, shasum, sha256, gsha256sum, openssl, or bssl not found.' @@ -1095,31 +1099,31 @@ nvm_compute_checksum() { return 1 fi - if nvm_has "sha256sum" && ! nvm_is_alias "sha256sum"; then + if nvm_has_non_aliased "sha256sum"; then nvm_err 'Computing checksum with sha256sum' command sha256sum "${FILE}" | command awk '{print $1}' - elif nvm_has "shasum" && ! nvm_is_alias "shasum"; then + elif nvm_has_non_aliased "shasum"; then nvm_err 'Computing checksum with shasum -a 256' command shasum -a 256 "${FILE}" | command awk '{print $1}' - elif nvm_has "sha256" && ! nvm_is_alias "sha256"; then + elif nvm_has_non_aliased "sha256"; then nvm_err 'Computing checksum with sha256 -q' command sha256 -q "${FILE}" | command awk '{print $1}' - elif nvm_has "gsha256sum" && ! nvm_is_alias "gsha256sum"; then + elif nvm_has_non_aliased "gsha256sum"; then nvm_err 'Computing checksum with gsha256sum' command gsha256sum "${FILE}" | command awk '{print $1}' - elif nvm_has "openssl" && ! nvm_is_alias "openssl"; then + elif nvm_has_non_aliased "openssl"; then nvm_err 'Computing checksum with openssl dgst -sha256' command openssl dgst -sha256 "${FILE}" | command awk '{print $NF}' - elif nvm_has "bssl" && ! nvm_is_alias "bssl"; then + elif nvm_has_non_aliased "bssl"; then nvm_err 'Computing checksum with bssl sha256sum' command bssl sha256sum "${FILE}" | command awk '{print $1}' - elif nvm_has "sha1sum" && ! nvm_is_alias "sha1sum"; then + elif nvm_has_non_aliased "sha1sum"; then nvm_err 'Computing checksum with sha1sum' command sha1sum "${FILE}" | command awk '{print $1}' - elif nvm_has "sha1" && ! nvm_is_alias "sha1"; then + elif nvm_has_non_aliased "sha1"; then nvm_err 'Computing checksum with sha1 -q' command sha1 -q "${FILE}" - elif nvm_has "shasum" && ! nvm_is_alias "shasum"; then + elif nvm_has_non_aliased "shasum"; then nvm_err 'Computing checksum with shasum' command shasum "${FILE}" | command awk '{print $1}' fi @@ -1187,28 +1191,28 @@ nvm_get_checksum() { nvm_checksum() { local NVM_CHECKSUM if [ -z "${3-}" ] || [ "${3-}" = 'sha1' ]; then - if nvm_has "sha1sum" && ! nvm_is_alias "sha1sum"; then + if nvm_has_non_aliased "sha1sum"; then NVM_CHECKSUM="$(command sha1sum "${1-}" | command awk '{print $1}')" - elif nvm_has "sha1" && ! nvm_is_alias "sha1"; then + elif nvm_has_non_aliased "sha1"; then NVM_CHECKSUM="$(command sha1 -q "${1-}")" - elif nvm_has "shasum" && ! nvm_is_alias "shasum"; then + elif nvm_has_non_aliased "shasum"; then NVM_CHECKSUM="$(command shasum "${1-}" | command awk '{print $1}')" else nvm_err 'Unaliased sha1sum, sha1, or shasum not found.' return 2 fi else - if nvm_has "sha256sum" && ! nvm_is_alias "sha256sum"; then + if nvm_has_non_aliased "sha256sum"; then NVM_CHECKSUM="$(command sha256sum "${1-}" | command awk '{print $1}')" - elif nvm_has "shasum" && ! nvm_is_alias "shasum"; then + elif nvm_has_non_aliased "shasum"; then NVM_CHECKSUM="$(command shasum -a 256 "${1-}" | command awk '{print $1}')" - elif nvm_has "sha256" && ! nvm_is_alias "sha256"; then + elif nvm_has_non_aliased "sha256"; then NVM_CHECKSUM="$(command sha256 -q "${1-}" | command awk '{print $1}')" - elif nvm_has "gsha256sum" && ! nvm_is_alias "gsha256sum"; then + elif nvm_has_non_aliased "gsha256sum"; then NVM_CHECKSUM="$(command gsha256sum "${1-}" | command awk '{print $1}')" - elif nvm_has "openssl" && ! nvm_is_alias "openssl"; then + elif nvm_has_non_aliased "openssl"; then NVM_CHECKSUM="$(command openssl dgst -sha256 "${1-}" | command awk '{print $NF}')" - elif nvm_has "bssl" && ! nvm_is_alias "bssl"; then + elif nvm_has_non_aliased "bssl"; then NVM_CHECKSUM="$(command bssl sha256sum "${1-}" | command awk '{print $1}')" else nvm_err 'Unaliased sha256sum, shasum, sha256, gsha256sum, openssl, or bssl not found.' @@ -3156,7 +3160,7 @@ nvm() { unset -f nvm \ nvm_iojs_prefix nvm_node_prefix \ nvm_add_iojs_prefix nvm_strip_iojs_prefix \ - nvm_is_iojs_version nvm_is_alias \ + nvm_is_iojs_version nvm_is_alias nvm_has_non_aliased \ nvm_ls_remote nvm_ls_remote_iojs nvm_ls_remote_index_tab \ nvm_ls nvm_remote_version nvm_remote_versions \ nvm_install_binary nvm_clang_version \ diff --git a/test/fast/Unit tests/nvm_has_non_aliased b/test/fast/Unit tests/nvm_has_non_aliased new file mode 100755 index 0000000..e42b2c6 --- /dev/null +++ b/test/fast/Unit tests/nvm_has_non_aliased @@ -0,0 +1,24 @@ +#!/bin/sh + +cleanup () { unalias foo; unalias grep; } +die () { echo "$@" ; cleanup ; exit 1; } + +\. ../../../nvm.sh + +alias foo='bar' +! nvm_has_non_aliased foo || die '"nvm_has_non_aliased foo" was not true' + +alias grep='grep' +unalias grep || die '"unalias grep" failed' +nvm_has_non_aliased grep || die '"nvm_has_non_aliased grep" with unaliased grep was not false' + +alias grep='grep' +! nvm_has_non_aliased grep || die '"nvm_is_alias grep" with aliased grep was not true' + +nvm_has_non_aliased cat && type cat > /dev/null || die 'nvm_has_non_aliased locates "cat" properly' + +[ "~$(nvm_has_non_aliased foobarbaz 2>&1)" = "~" ] || die "nvm_has_non_aliased does not suppress error output" + +! nvm_has_non_aliased foobarbaz && ! type foobarbaz >/dev/null 2>&1 || die "nvm_has_non_aliased does not return a nonzero exit code when not found" + +cleanup From 237c3a78e2d6f9d682ab3e7766bbe55c091ee07f Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 20 Mar 2017 06:14:15 +0800 Subject: [PATCH 0949/1426] [Tests] Add retry on urchin setup which has no built in retry feature Unlike other built in functions like git fetch or apt-get dependencies, manual installations won't have retry by default, enabling retry could help reduce the impact of network issues and furthur prevent getting build error like Job #1956.21: - https://travis-ci.org/creationix/nvm/jobs/212640007 Ref: - https://docs.travis-ci.com/user/common-build-problems/ --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 24fb012..859319d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -24,7 +24,7 @@ before_install: - if [ -n "${SHELLCHECK-}" ]; then cabal update && cabal install transformers-0.4.3.0 ShellCheck && shellcheck --version ; fi - if [ -n "${DOCTOCCHECK-}" ]; then nvm install node && npm install -g doctoc && type doctoc ; fi install: - - (mkdir /tmp/urchin && cd /tmp/urchin && curl -s "$(curl -s https://registry.npmjs.com/urchin | grep -Eo '"tarball":\s*"[^"]+"' | tail -n 1 | awk -F\" '{ print $4 }')" -O && tar -x -f urchin*) + - (travis_retry mkdir /tmp/urchin && cd /tmp/urchin && curl -s "$(curl -s https://registry.npmjs.com/urchin | grep -Eo '"tarball":\s*"[^"]+"' | tail -n 1 | awk -F\" '{ print $4 }')" -O && tar -x -f urchin*) - chmod +x /tmp/urchin/package/urchin - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' script: From 20a40dd8c2c9c5ddb03b0b818fddd9b78b40c21d Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 23 Mar 2017 04:46:49 +0800 Subject: [PATCH 0950/1426] [Docs] Update CONTRIBUTING.md --- CONTRIBUTING.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5948d7d..5194234 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,15 +1,20 @@ Thanks for contributing to `nvm`! -We love pull requests, they're our favorite. +We love pull requests and issues, they're our favorite. However, before submitting, please review the following: +For bug reports: + - Please make sure the bug is reproducible, and give us the steps to reproduce it, so that we can dig into the problem. + - Please give us as much detail as possible about your environment, so we can more easily confirm the problem. + +For pull requests: - Please include tests. Changes with tests will be merged very quickly. - Please manually confirm that your changes work in `bash`, `sh`/`dash`, `ksh`, and `zsh`. Fast tests do run in these shells, but it's nice to manually verify also. - Please maintain consistent whitespace - 2-space indentation, trailing newlines in all files, etc. - Any time you make a change to your PR, please rebase freshly on top of master. Nobody likes merge commits. -Even if you don't have all of these items covered, please still feel free to submit a PR! Someone else may be inspired and volunteer to complete it for you. +Even if you don't have all of these items covered, please still feel free to submit a PR/issue! Someone else may be inspired and volunteer to complete it for you. Thanks again! From ccd9697ef2a5b66213f3f7ab91fee96bdf8758eb Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 23 Mar 2017 04:37:40 +0800 Subject: [PATCH 0951/1426] Delete .npmignore --- .npmignore | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 .npmignore diff --git a/.npmignore b/.npmignore deleted file mode 100644 index 529045f..0000000 --- a/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -src -v* -alias - From 4c97828f79bdc57bd319f82826ba62236e50c829 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 23 Mar 2017 04:52:46 +0800 Subject: [PATCH 0952/1426] Update .gitattributes --- .gitattributes | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitattributes b/.gitattributes index 50ca329..a64f320 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,2 @@ -*.sh eol=lf +* eol=lf + From 6a3b1dd2c376d39daab7ec3a9fc1d4a3943ebf03 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 20 Mar 2017 04:08:48 +0800 Subject: [PATCH 0953/1426] [New] Enable curl auto compression/decompression Enable `--compressed` parameter on curl to automatically enable compression on request content by sending coressponding header, if the server side supports compression format like deflate or gzip, curl will also decompress the content automatically, so there is no additional works need to done manually on client side, but just enjoy the benifits of bandwidth and time saving! Take https://nodejs.org/dist/index.tab as an example which is last modified on Tue, 14 Mar 2017 22:41:05 GMT, the compressed transmission only take 4829 bytes howevet the not compressed on taks 48000 bytes, which is about 10 times larger! This feature can be traced back to Sep 3 2002, in curl commit: - https://github.com/curl/curl/commit/64bbe9dfafc6693a96b742f3133c636385835a19 So should be supported on various versions widely. --- README.markdown | 2 ++ install.sh | 3 ++- nvm.sh | 5 +++-- test/slow/nvm_get_latest/nvm_get_latest | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/README.markdown b/README.markdown index eb155b8..2696a20 100644 --- a/README.markdown +++ b/README.markdown @@ -60,6 +60,8 @@ Homebrew installation is not supported. If you have issues with homebrew-install **Note:** Git versions before v1.7 may face a problem of cloning nvm source from GitHub via https protocol, and there is also different behavior of git before v1.6, so the minimum required git version is v1.7.0 and we recommend v1.7.9.5 as it's the default version of the widely used Ubuntu 12.04 LTS. If you are interested in the problem we mentioned here, please refer to GitHub's [HTTPS cloning errors](https://help.github.com/articles/https-cloning-errors/) article. +**Note:** `nvm` uses `curl` with the `--compressed` option which was introduced on September 3rd, 2002([curl/curl@64bbe9d](https://github.com/curl/curl/commit/64bbe9dfafc6693a96b742f3133c636385835a19)). It's unlikely, but if you have `curl` compiled without that feature, `nvm` may not be able to install or list remote `node` versions. Please file an issue if your `curl` does not work with `--compressed` (and you didn't explicitly compile `curl` to not have compression support). + ### Install script To install or update nvm, you can use the [install script][2] using cURL: diff --git a/install.sh b/install.sh index 6c1fbfe..790bde5 100755 --- a/install.sh +++ b/install.sh @@ -62,11 +62,12 @@ nvm_node_version() { nvm_download() { if nvm_has "curl"; then - curl -q "$@" + curl --compressed -q "$@" elif nvm_has "wget"; then # Emulate curl with wget ARGS=$(echo "$*" | command sed -e 's/--progress-bar /--progress=bar /' \ -e 's/-L //' \ + -e 's/--compressed //' \ -e 's/-I /--server-response /' \ -e 's/-s /-q /' \ -e 's/-o /-O /' \ diff --git a/nvm.sh b/nvm.sh index 94376b7..67ef6df 100644 --- a/nvm.sh +++ b/nvm.sh @@ -60,7 +60,7 @@ nvm_has_colors() { nvm_get_latest() { local NVM_LATEST_URL if nvm_has "curl"; then - NVM_LATEST_URL="$(curl -q -w "%{url_effective}\n" -L -s -S http://latest.nvm.sh -o /dev/null)" + NVM_LATEST_URL="$(curl --compressed -q -w "%{url_effective}\n" -L -s -S http://latest.nvm.sh -o /dev/null)" elif nvm_has "wget"; then NVM_LATEST_URL="$(wget http://latest.nvm.sh --server-response -O /dev/null 2>&1 | command awk '/^ Location: /{DEST=$2} END{ print DEST }')" else @@ -76,10 +76,11 @@ nvm_get_latest() { nvm_download() { if nvm_has "curl"; then - curl -q "$@" + curl --compressed -q "$@" elif nvm_has "wget"; then # Emulate curl with wget ARGS=$(nvm_echo "$@" | command sed -e 's/--progress-bar /--progress=bar /' \ + -e 's/--compressed //' \ -e 's/-L //' \ -e 's/-I /--server-response /' \ -e 's/-s /-q /' \ diff --git a/test/slow/nvm_get_latest/nvm_get_latest b/test/slow/nvm_get_latest/nvm_get_latest index 2bdcbad..9f2f53c 100755 --- a/test/slow/nvm_get_latest/nvm_get_latest +++ b/test/slow/nvm_get_latest/nvm_get_latest @@ -10,7 +10,7 @@ cleanup() { EXPECTED_VERSION="v12.3.456" URL="https://github.com/creationix/nvm/releases/tag/$EXPECTED_VERSION" -EXPECTED_CURL_ARGS="-q -w %{url_effective}\n -L -s -S http://latest.nvm.sh -o /dev/null" +EXPECTED_CURL_ARGS="--compressed -q -w %{url_effective}\n -L -s -S http://latest.nvm.sh -o /dev/null" EXPECTED_WGET_ARGS="http://latest.nvm.sh --server-response -O /dev/null" curl() { From 973dfc6d4a538ed925a6fd1bb8822ff150852663 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 23 Mar 2017 12:32:36 +0800 Subject: [PATCH 0954/1426] [New] Dynamically detect if curl supports `--compressed` --- nvm.sh | 17 ++++++++-- test/fast/Unit tests/nvm_curl_libz_support | 39 ++++++++++++++++++++++ test/slow/nvm_get_latest/nvm_get_latest | 7 +++- 3 files changed, 60 insertions(+), 3 deletions(-) create mode 100755 test/fast/Unit tests/nvm_curl_libz_support diff --git a/nvm.sh b/nvm.sh index 67ef6df..dda7d6e 100644 --- a/nvm.sh +++ b/nvm.sh @@ -57,10 +57,18 @@ nvm_has_colors() { [ "${NVM_COLORS:--1}" -ge 8 ] } +nvm_curl_libz_support() { + curl -V | grep "^Features:" | grep -q "libz" +} + nvm_get_latest() { local NVM_LATEST_URL + local CURL_COMPRESSED_FLAG + if nvm_curl_libz_support; then + CURL_COMPRESSED_FLAG="--compressed" + fi if nvm_has "curl"; then - NVM_LATEST_URL="$(curl --compressed -q -w "%{url_effective}\n" -L -s -S http://latest.nvm.sh -o /dev/null)" + NVM_LATEST_URL="$(curl "${CURL_COMPRESSED_FLAG:-}" -q -w "%{url_effective}\n" -L -s -S http://latest.nvm.sh -o /dev/null)" elif nvm_has "wget"; then NVM_LATEST_URL="$(wget http://latest.nvm.sh --server-response -O /dev/null 2>&1 | command awk '/^ Location: /{DEST=$2} END{ print DEST }')" else @@ -75,8 +83,12 @@ nvm_get_latest() { } nvm_download() { + local CURL_COMPRESSED_FLAG + if nvm_curl_libz_support; then + CURL_COMPRESSED_FLAG="--compressed" + fi if nvm_has "curl"; then - curl --compressed -q "$@" + curl "${CURL_COMPRESSED_FLAG:-}" -q "$@" elif nvm_has "wget"; then # Emulate curl with wget ARGS=$(nvm_echo "$@" | command sed -e 's/--progress-bar /--progress=bar /' \ @@ -3192,6 +3204,7 @@ nvm() { nvm_print_default_alias nvm_print_formatted_alias nvm_resolve_local_alias \ nvm_sanitize_path nvm_has_colors nvm_process_parameters \ node_version_has_solaris_binary iojs_version_has_solaris_binary \ + nvm_curl_libz_support \ > /dev/null 2>&1 unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_IOJS_ORG_MIRROR NVM_DIR \ NVM_CD_FLAGS NVM_BIN NVM_MAKE_JOBS \ diff --git a/test/fast/Unit tests/nvm_curl_libz_support b/test/fast/Unit tests/nvm_curl_libz_support new file mode 100755 index 0000000..34602be --- /dev/null +++ b/test/fast/Unit tests/nvm_curl_libz_support @@ -0,0 +1,39 @@ +#!/bin/sh + +cleanup() { + unset -f curl +} + +die() { cleanup; echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +curl() { + # curl with libz feature + if [ $# -ne 1 ] || [ "$1" != "-V" ]; then + die "This fake curl only takes one parameter -V" + fi + echo " +curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3 +Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp +Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets" +} + +nvm_curl_libz_support || die "nvm_curl_libz_support should return 0" + +unset -f curl + +curl() { + # curl without libz feature + if [ "$#" -ne 1 ] || [ "$1" != "-V" ]; then + die "This fake curl only takes one parameter -V" + fi + echo " +curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.32 +Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp +Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL TLS-SRP UnixSockets" +} + +! nvm_curl_libz_support || die "nvm_curl_libz_support should return 1" + +unset -f curl diff --git a/test/slow/nvm_get_latest/nvm_get_latest b/test/slow/nvm_get_latest/nvm_get_latest index 9f2f53c..306d371 100755 --- a/test/slow/nvm_get_latest/nvm_get_latest +++ b/test/slow/nvm_get_latest/nvm_get_latest @@ -14,7 +14,12 @@ EXPECTED_CURL_ARGS="--compressed -q -w %{url_effective}\n -L -s -S http://latest EXPECTED_WGET_ARGS="http://latest.nvm.sh --server-response -O /dev/null" curl() { - if [ "_$*" != "_$EXPECTED_CURL_ARGS" ]; then + if [ $# -eq 1 ] && [ "$1" = "-V" ]; then + echo " +curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3 +Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp +Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets" + elif [ "_$*" != "_$EXPECTED_CURL_ARGS" ]; then echo >&2 "expected args ($EXPECTED_CURL_ARGS), got ($*)" return 1 else From 0e5fba2dfbb4492b6819da89a4787eb5bbff5ba0 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 23 Mar 2017 14:01:46 +0800 Subject: [PATCH 0955/1426] [Docs] Also add `--compressed` for `curl` in issue template, cc #1437 --- .github/ISSUE_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index b4f39c5..8d68916 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -32,7 +32,7 @@ - Is there anything in any of your profile files (`.bashrc`, `.bash_profile`, `.zshrc`, etc) that modifies the `PATH`? -- If you are having installation issues, or getting "N/A", what does `curl -v nodejs.org/dist/` print out? +- If you are having installation issues, or getting "N/A", what does `curl --compressed -v nodejs.org/dist/` print out?
From d465493832000912910ba649234471d34610e06f Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 23 Mar 2017 14:07:07 +0800 Subject: [PATCH 0956/1426] [Docs] Use https protocol for nodejs.org in issue template --- .github/ISSUE_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 8d68916..2b4f8e5 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -32,7 +32,7 @@ - Is there anything in any of your profile files (`.bashrc`, `.bash_profile`, `.zshrc`, etc) that modifies the `PATH`? -- If you are having installation issues, or getting "N/A", what does `curl --compressed -v nodejs.org/dist/` print out? +- If you are having installation issues, or getting "N/A", what does `curl --compressed -v https://nodejs.org/dist/` print out?
From 6ef2be8db4e7fe7ea7221362fe1fdfc38c3ebbbe Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 23 Mar 2017 14:12:31 +0800 Subject: [PATCH 0957/1426] [Docs] Get https://nodejs.org/dist header instead of its body, fix #1451 --- .github/ISSUE_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 2b4f8e5..ee491b8 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -32,7 +32,7 @@ - Is there anything in any of your profile files (`.bashrc`, `.bash_profile`, `.zshrc`, etc) that modifies the `PATH`? -- If you are having installation issues, or getting "N/A", what does `curl --compressed -v https://nodejs.org/dist/` print out? +- If you are having installation issues, or getting "N/A", what does `curl -I --compressed -v https://nodejs.org/dist/` print out?
From e41197ea94623a2a7062419c4f919d96eaacac12 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 23 Mar 2017 15:54:25 +0800 Subject: [PATCH 0958/1426] [Tests] Improve npm dependencies installaion in travis ci --- .travis.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 859319d..44421c5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,16 +22,14 @@ before_install: - curl --version - wget --version - if [ -n "${SHELLCHECK-}" ]; then cabal update && cabal install transformers-0.4.3.0 ShellCheck && shellcheck --version ; fi - - if [ -n "${DOCTOCCHECK-}" ]; then nvm install node && npm install -g doctoc && type doctoc ; fi + - nvm install node && npm install && npm ls urchin doctoc install: - - (travis_retry mkdir /tmp/urchin && cd /tmp/urchin && curl -s "$(curl -s https://registry.npmjs.com/urchin | grep -Eo '"tarball":\s*"[^"]+"' | tail -n 1 | awk -F\" '{ print $4 }')" -O && tar -x -f urchin*) - - chmod +x /tmp/urchin/package/urchin - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' script: - if [ -n "${DOCTOCCHECK-}" ]; then cp README.markdown README.markdown.orig && npm run doctoc && diff -q README.markdown README.markdown.orig ; fi - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash nvm.sh && shellcheck -s sh nvm.sh && shellcheck -s dash nvm.sh && shellcheck -s ksh nvm.sh ; fi - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash install.sh bash_completion nvm-exec ; fi - - if [ -n "${SHELL-}" ] && [ -n "${TEST_SUITE}" ]; then make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin/package/urchin test-$SHELL ; fi + - if [ -n "${SHELL-}" ] && [ -n "${TEST_SUITE}" ]; then make TEST_SUITE=$TEST_SUITE URCHIN="$(npm bin)/urchin" test-$SHELL ; fi env: global: - CXX=g++-4.8 From 82aaa0a20d1380d6022bdf93ef0c5c40302f8fb7 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sat, 25 Mar 2017 16:57:42 +0800 Subject: [PATCH 0959/1426] [Tests] Do not install nodejs, npm deps for SHELLCHECK --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 44421c5..cc73426 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,7 +22,7 @@ before_install: - curl --version - wget --version - if [ -n "${SHELLCHECK-}" ]; then cabal update && cabal install transformers-0.4.3.0 ShellCheck && shellcheck --version ; fi - - nvm install node && npm install && npm ls urchin doctoc + - if [ -z "${SHELLCHECK-}" ]; then nvm install node && npm install && npm ls urchin doctoc; fi install: - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' script: From d9704471ff0b7f5348e3e267f825d54ded7bddb7 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sat, 25 Mar 2017 16:58:12 +0800 Subject: [PATCH 0960/1426] [Tests] Cache "node_modules" in CI --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index cc73426..f9f62ca 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,12 +17,13 @@ cache: - $HOME/.ghc - $HOME/.cabal - $TRAVIS_BUILD_DIR/.cache + - $TRAVIS_BUILD_DIR/node_modules before_install: - $SHELL --version 2> /dev/null || dpkg -s $SHELL 2> /dev/null || which $SHELL - curl --version - wget --version - if [ -n "${SHELLCHECK-}" ]; then cabal update && cabal install transformers-0.4.3.0 ShellCheck && shellcheck --version ; fi - - if [ -z "${SHELLCHECK-}" ]; then nvm install node && npm install && npm ls urchin doctoc; fi + - if [ -z "${SHELLCHECK-}" ]; then nvm install node && npm install && npm prune && npm ls urchin doctoc; fi install: - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' script: From f344d0694b01410991ae0ed2d58cd0965763d69a Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 26 Mar 2017 05:22:40 +0800 Subject: [PATCH 0961/1426] [Tests] Move cabel, nvm & npm install into TravisCI "install" section --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f9f62ca..fa41b93 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,9 +22,9 @@ before_install: - $SHELL --version 2> /dev/null || dpkg -s $SHELL 2> /dev/null || which $SHELL - curl --version - wget --version +install: - if [ -n "${SHELLCHECK-}" ]; then cabal update && cabal install transformers-0.4.3.0 ShellCheck && shellcheck --version ; fi - if [ -z "${SHELLCHECK-}" ]; then nvm install node && npm install && npm prune && npm ls urchin doctoc; fi -install: - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' script: - if [ -n "${DOCTOCCHECK-}" ]; then cp README.markdown README.markdown.orig && npm run doctoc && diff -q README.markdown README.markdown.orig ; fi From 7b253c8c0aaee9b89fddace493eb987bd16a77b0 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 23 Mar 2017 14:48:00 +0800 Subject: [PATCH 0962/1426] [New] Supercharge `nvm debug` output Try to get shell version, OS and its version, curl/wget/git version. --- nvm.sh | 42 ++++++++++++++++++++++++++- test/fast/Unit tests/nvm_command_info | 40 +++++++++++++++++++++++++ 2 files changed, 81 insertions(+), 1 deletion(-) create mode 100755 test/fast/Unit tests/nvm_command_info diff --git a/nvm.sh b/nvm.sh index dda7d6e..ade4e74 100644 --- a/nvm.sh +++ b/nvm.sh @@ -49,6 +49,24 @@ nvm_is_alias() { \alias "${1-}" > /dev/null 2>&1 } +nvm_command_info() { + local COMMAND + local INFO + COMMAND="${1}" + if type "${COMMAND}" | command grep -q hashed; then + INFO="$(type "${COMMAND}" | command sed -E 's/\(|)//g' | command awk '{print $4}')" + elif type "${COMMAND}" | command grep -q aliased; then + INFO="$(which "${COMMAND}") ($(type "${COMMAND}" | command awk '{ $1=$2=$3=$4="" ;print }' | command sed -e 's/^\ *//g' -Ee "s/\`|'//g" ))" + elif type "${COMMAND}" | command grep -q "^${COMMAND} is an alias for"; then + INFO="$(which "${COMMAND}") ($(type "${COMMAND}" | command awk '{ $1=$2=$3=$4=$5="" ;print }' | command sed 's/^\ *//g'))" + elif type "${COMMAND}" | command grep -q "^${COMMAND} is \/"; then + INFO="$(type "${COMMAND}" | command awk '{print $3}')" + else + INFO="$(type "${COMMAND}")" + fi + nvm_echo "${INFO}" +} + nvm_has_colors() { local NVM_COLORS if nvm_has tput; then @@ -2249,6 +2267,28 @@ nvm() { nvm_err "\$NPM_CONFIG_PREFIX: '$(nvm_sanitize_path "$NPM_CONFIG_PREFIX")'" nvm_err "\$NVM_NODEJS_ORG_MIRROR: '${NVM_NODEJS_ORG_MIRROR}'" nvm_err "\$NVM_IOJS_ORG_MIRROR: '${NVM_IOJS_ORG_MIRROR}'" + nvm_err "shell version: '$(${SHELL} --version | command head -n 1)'" + nvm_err "uname -a: '$(uname -a | awk '{$2=""; print}' | xargs)'" + if [ "$(nvm_get_os)" = "darwin" ] && nvm_has sw_vers; then + nvm_err "OS version: $(sw_vers | command awk '{print $2}' | command xargs)" + elif [ -r "/etc/issue" ]; then + nvm_err "OS version: $(command head -n 1 /etc/issue | command sed 's/\\.//g')" + fi + if nvm_has "curl"; then + nvm_err "curl: $(nvm_command_info curl), $(command curl -V | command head -n 1)" + else + nvm_err "curl: not found" + fi + if nvm_has "wget"; then + nvm_err "wget: $(nvm_command_info wget), $(command wget -V | command head -n 1)" + else + nvm_err "wget: not found" + fi + if nvm_has "git"; then + nvm_err "git: $(nvm_command_info git), $(command git --version)" + else + nvm_err "git: not found" + fi local NVM_DEBUG_OUTPUT for NVM_DEBUG_COMMAND in 'nvm current' 'which node' 'which iojs' 'which npm' 'npm config get prefix' 'npm root -g' do @@ -3204,7 +3244,7 @@ nvm() { nvm_print_default_alias nvm_print_formatted_alias nvm_resolve_local_alias \ nvm_sanitize_path nvm_has_colors nvm_process_parameters \ node_version_has_solaris_binary iojs_version_has_solaris_binary \ - nvm_curl_libz_support \ + nvm_curl_libz_support nvm_command_info \ > /dev/null 2>&1 unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_IOJS_ORG_MIRROR NVM_DIR \ NVM_CD_FLAGS NVM_BIN NVM_MAKE_JOBS \ diff --git a/test/fast/Unit tests/nvm_command_info b/test/fast/Unit tests/nvm_command_info new file mode 100755 index 0000000..a2f813a --- /dev/null +++ b/test/fast/Unit tests/nvm_command_info @@ -0,0 +1,40 @@ +#!/bin/sh + +cleanup() { + unalias wget + unset -f wget + unset WGET_EXPECTED_INFO WGET_COMMAND_INFO +} + +die() { echo "$@" ; cleanup ; exit 1; } + +\. ../../../nvm.sh + + +# 1. test wget command +WGET_COMMAND_INFO="$(nvm_command_info wget)" +WGET_EXPECTED_INFO="$(which wget)" +[ "${WGET_COMMAND_INFO}" = "${WGET_EXPECTED_INFO}" ] || die "wget command info wrong(stage 1), expected: '${WGET_EXPECTED_INFO}', got '${WGET_COMMAND_INFO}'" + +cleanup + +# 2. test aliased wget +shopt -s expand_aliases +# enable expand_aliases to make alias working in interactive shell +alias wget="wget -V" +WGET_COMMAND_INFO="$(nvm_command_info wget)" +WGET_EXPECTED_INFO="$(which wget) (wget -V)" +[ "${WGET_COMMAND_INFO}" = "${WGET_EXPECTED_INFO}" ] || die "wget command info wrong(stage 2), expected: '${WGET_EXPECTED_INFO}', got '${WGET_COMMAND_INFO}'" + +cleanup + +# 3. test wget function +wget() { + echo "wget function" +} + +WGET_COMMAND_INFO="$(nvm_command_info wget)" +WGET_EXPECTED_INFO="$(type wget)" +[ "${WGET_COMMAND_INFO}" = "${WGET_EXPECTED_INFO}" ] || die "wget command info wrong(stage 3), expected: '${WGET_EXPECTED_INFO}', got '${WGET_COMMAND_INFO}'" + +cleanup From 676fff0219b90eeee1c0e051fea79e8d7b6f5b5c Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 26 Mar 2017 06:10:53 +0800 Subject: [PATCH 0963/1426] [completions] Remove nospace in bash_completion --- bash_completion | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bash_completion b/bash_completion index d515165..b51bf80 100644 --- a/bash_completion +++ b/bash_completion @@ -92,5 +92,5 @@ if [[ -n ${ZSH_VERSION-} ]]; then autoload -U +X bashcompinit && bashcompinit fi -complete -o default -o nospace -F __nvm nvm +complete -o default -F __nvm nvm From b9f9977cdd9d14a501a619fe5e0e578328ec0f64 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 27 Mar 2017 15:00:50 -0700 Subject: [PATCH 0964/1426] [Fix] `nvm install -s`: npm detection - add `nvm_use_if_needed` - add `nvm_install_npm_if_needed` --- nvm.sh | 49 +++++++++++++++++--------- test/fast/Unit tests/nvm_use_if_needed | 24 +++++++++++++ test/installation_node/install hook | 3 +- 3 files changed, 57 insertions(+), 19 deletions(-) create mode 100755 test/fast/Unit tests/nvm_use_if_needed diff --git a/nvm.sh b/nvm.sh index ade4e74..28f7132 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1926,20 +1926,6 @@ nvm_install_source() { command rm -f "${VERSION_PATH}" 2>/dev/null && \ $make -j "${NVM_MAKE_JOBS}" ${MAKE_CXX-} install ); then - if ! nvm_has "npm" ; then - nvm_echo 'Installing npm...' - if nvm_version_greater 0.2.0 "$VERSION"; then - nvm_err 'npm requires node v0.2.3 or higher' - elif nvm_version_greater_than_or_equal_to "$VERSION" 0.2.0; then - if nvm_version_greater 0.2.3 "$VERSION"; then - nvm_err 'npm requires node v0.2.3 or higher' - else - nvm_download -L https://npmjs.org/install.sh -o - | clean=yes npm_install=0.2.19 sh - fi - else - nvm_download -L https://npmjs.org/install.sh -o - | clean=yes sh - fi - fi return $? fi @@ -1948,6 +1934,33 @@ nvm_install_source() { return 1 } +nvm_use_if_needed() { + if [ "_${1-}" = "_$(nvm_ls_current)" ]; then + return + fi + nvm use "$@" +} + +nvm_install_npm_if_needed() { + local VERSION + VERSION="$(nvm_ls_current)" + if ! nvm_has "npm"; then + nvm_echo 'Installing npm...' + if nvm_version_greater 0.2.0 "$VERSION"; then + nvm_err 'npm requires node v0.2.3 or higher' + elif nvm_version_greater_than_or_equal_to "$VERSION" 0.2.0; then + if nvm_version_greater 0.2.3 "$VERSION"; then + nvm_err 'npm requires node v0.2.3 or higher' + else + nvm_download -L https://npmjs.org/install.sh -o - | clean=yes npm_install=0.2.19 sh + fi + else + nvm_download -L https://npmjs.org/install.sh -o - | clean=yes sh + fi + fi + return $? +} + nvm_match_version() { local NVM_IOJS_PREFIX NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" @@ -2505,7 +2518,7 @@ nvm() { fi - if [ "$EXIT_CODE" -eq 0 ] && nvm use "$VERSION"; then + if [ "$EXIT_CODE" -eq 0 ] && nvm_use_if_needed "${VERSION}" && nvm_install_npm_if_needed "${VERSION}"; then if [ -n "${LTS-}" ]; then nvm_ensure_default_set "lts/${LTS}" else @@ -2516,6 +2529,8 @@ nvm() { nvm reinstall-packages "$REINSTALL_PACKAGES_FROM" EXIT_CODE=$? fi + else + EXIT_CODE=$? fi return $EXIT_CODE ;; @@ -3216,9 +3231,9 @@ nvm() { nvm_is_iojs_version nvm_is_alias nvm_has_non_aliased \ nvm_ls_remote nvm_ls_remote_iojs nvm_ls_remote_index_tab \ nvm_ls nvm_remote_version nvm_remote_versions \ - nvm_install_binary nvm_clang_version \ + nvm_install_binary nvm_install_source nvm_clang_version \ nvm_get_mirror nvm_get_download_slug nvm_download_artifact \ - nvm_install_source nvm_check_file_permissions \ + nvm_install_npm_if_needed nvm_use_if_needed nvm_check_file_permissions \ nvm_print_versions nvm_compute_checksum nvm_checksum \ nvm_get_checksum_alg nvm_get_checksum nvm_compare_checksum \ nvm_version nvm_rc_version nvm_match_version \ diff --git a/test/fast/Unit tests/nvm_use_if_needed b/test/fast/Unit tests/nvm_use_if_needed new file mode 100755 index 0000000..dd04ccf --- /dev/null +++ b/test/fast/Unit tests/nvm_use_if_needed @@ -0,0 +1,24 @@ +#!/bin/sh + +cleanup() { unset -f nvm_ls_current nvm; } +die () { echo "$@" ; cleanup ; exit 1; } + +\. ../../../nvm.sh + +nvm_ls_current() { echo foo; } + +nvm() { + echo "nvm: $@" +} + +OUTPUT="$(nvm_use_if_needed foo)" +EXPECTED_OUTPUT='' + +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" + +OUTPUT="$(nvm_use_if_needed bar)" +EXPECTED_OUTPUT='nvm: use bar' + +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" + +cleanup diff --git a/test/installation_node/install hook b/test/installation_node/install hook index 61bd84a..bf3b14a 100755 --- a/test/installation_node/install hook +++ b/test/installation_node/install hook @@ -23,8 +23,7 @@ OUTPUT="$(NVM_INSTALL_THIRD_PARTY_HOOK=succeed nvm install "${VERSION}")" USE_OUTPUT="$(nvm use "${VERSION}")" EXPECTED_OUTPUT="${VERSION} node std binary ${VERSION_PATH} Downloading and installing node ${VERSION}... -${USE_OUTPUT} -${USE_OUTPUT}" # double use output is from the normal install in succeed() +${USE_OUTPUT}" [ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" From 059ab0e1ac391f7d14820cff5381de0f13133039 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Tue, 28 Mar 2017 15:27:49 +0800 Subject: [PATCH 0965/1426] [Refactor] Make the code a little bit cleaner --- nvm.sh | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/nvm.sh b/nvm.sh index 28f7132..9cfc2c5 100644 --- a/nvm.sh +++ b/nvm.sh @@ -297,15 +297,13 @@ nvm_ensure_version_installed() { if [ "${EXIT_CODE}" != "0" ] || ! nvm_is_version_installed "${LOCAL_VERSION}"; then if VERSION="$(nvm_resolve_alias "${PROVIDED_VERSION}")"; then nvm_err "N/A: version \"${PROVIDED_VERSION} -> ${VERSION}\" is not yet installed." - nvm_err "" - nvm_err "You need to run \"nvm install ${PROVIDED_VERSION}\" to install it before using it." else local PREFIXED_VERSION PREFIXED_VERSION="$(nvm_ensure_version_prefix "${PROVIDED_VERSION}")" nvm_err "N/A: version \"${PREFIXED_VERSION:-$PROVIDED_VERSION}\" is not yet installed." - nvm_err "" - nvm_err "You need to run \"nvm install ${PROVIDED_VERSION}\" to install it before using it." fi + nvm_err "" + nvm_err "You need to run \"nvm install ${PROVIDED_VERSION}\" to install it before using it." return 1 fi } @@ -726,8 +724,7 @@ nvm_resolve_alias() { break fi - if [ -n "${ALIAS_TEMP}" ] \ - && command printf "${SEEN_ALIASES}" | nvm_grep -e "^${ALIAS_TEMP}$" > /dev/null; then + if command printf "${SEEN_ALIASES}" | nvm_grep -e "^${ALIAS_TEMP}$" > /dev/null; then ALIAS="∞" break fi From a36af705718fc9947bcc7d1a3b13582d8a1101fb Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Tue, 28 Mar 2017 22:47:34 +0800 Subject: [PATCH 0966/1426] [Docs] Update issue #900 title in README.markdown --- README.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index 2696a20..a66ab46 100644 --- a/README.markdown +++ b/README.markdown @@ -43,7 +43,7 @@ If you're running a system without prepackaged binary available, which means you - [plugin-nvm](https://github.com/derekstavis/plugin-nvm) plugin for [Oh My Fish](https://github.com/oh-my-fish/oh-my-fish), which makes nvm and its completions available in fish shell **Note:** We still have some problems with FreeBSD, because there is no official pre-built binary for FreeBSD, and building from source may need [patches](https://www.freshports.org/www/node/files/patch-deps_v8_src_base_platform_platform-posix.cc); see the issue ticket: - - [[#900] [Bug] nodejs on FreeBSD need to be patched ](https://github.com/creationix/nvm/issues/900) + - [[#900] [Bug] nodejs on FreeBSD may need to be patched ](https://github.com/creationix/nvm/issues/900) - [nodejs/node#3716](https://github.com/nodejs/node/issues/3716) **Note:** On OS X, if you do not have Xcode installed and you do not wish to download the ~4.3GB file, you can install the `Command Line Tools`. You can check out this blog post on how to just that: From 4411abf82e12758611f68716706bae2737b884d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=86gir=20O=CC=88rn=20Si=CC=81monarson?= Date: Sun, 24 Jul 2016 11:46:59 +0000 Subject: [PATCH 0967/1426] [Docs] Add Mac OS "troubleshooting" to README It has a section on nvm node version not being found in vim. --- README.markdown | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/README.markdown b/README.markdown index a66ab46..5b501ce 100644 --- a/README.markdown +++ b/README.markdown @@ -26,6 +26,7 @@ - [Compatibility Issues](#compatibility-issues) - [Installing nvm on Alpine Linux](#installing-nvm-on-alpine-linux) - [Problems](#problems) +- [Mac OS "troubleshooting"](#mac-os-troubleshooting) @@ -473,6 +474,18 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But If setting the `default` alias does not establish the node version in new shells (i.e. `nvm current` yields `system`), ensure that the system's node PATH is set before the `nvm.sh` source line in your shell profile (see [#658](https://github.com/creationix/nvm/issues/658)) +## Mac OS "troubleshooting" + +**nvm node version not found in vim shell** + +If you set node version to a version other than your system node version `nvm use 6.2.1` and open vim and run `:!node -v` you should see `v6.2.1` if you see your system version `v0.12.7`. You need to run: + +```shell +sudo chmod ugo-x /usr/libexec/path_helper +``` + +More on this issue in [dotphiles/dotzsh](https://github.com/dotphiles/dotzsh#mac-os-x). + [1]: https://github.com/creationix/nvm.git [2]: https://github.com/creationix/nvm/blob/v0.33.1/install.sh [3]: https://travis-ci.org/creationix/nvm From 93c10367585e1582f2d7796f1b378c01211f6115 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 26 Mar 2017 05:19:57 +0800 Subject: [PATCH 0968/1426] [Tests] Move to Ubuntu 14.04 on Travis CI Since Ubuntu 12.04 is pretty old now, it's also going to EOL next month, maybe we can just move on Ubuntu 14.04 first. --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index fa41b93..52d5984 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,5 @@ language: generic +dist: trusty sudo: required addons: apt: From 8fc7e854de097d7bfb615d204429791935b3394c Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Wed, 29 Mar 2017 18:05:15 +0800 Subject: [PATCH 0969/1426] [Tests] Comment out ksh dependency installation, cc #574 - Mistakenly uncommented in 70370a857f0bc16af50f4196afe9af03b100535e - per afba4e08fd18c73907025850239a0adf4104c611 / #574 --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 52d5984..4be1e29 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,7 +11,7 @@ addons: - cabal-install - ghc - zsh - - ksh + # - ksh cache: directories: - $HOME/.npm From 9a6e657e53d8134d7b0dda69a57b615c16dd38f9 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Wed, 29 Mar 2017 17:51:23 +0800 Subject: [PATCH 0970/1426] [Docs] Remove curl `--compressed` notes since we added its detection --- README.markdown | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.markdown b/README.markdown index 5b501ce..96902af 100644 --- a/README.markdown +++ b/README.markdown @@ -61,8 +61,6 @@ Homebrew installation is not supported. If you have issues with homebrew-install **Note:** Git versions before v1.7 may face a problem of cloning nvm source from GitHub via https protocol, and there is also different behavior of git before v1.6, so the minimum required git version is v1.7.0 and we recommend v1.7.9.5 as it's the default version of the widely used Ubuntu 12.04 LTS. If you are interested in the problem we mentioned here, please refer to GitHub's [HTTPS cloning errors](https://help.github.com/articles/https-cloning-errors/) article. -**Note:** `nvm` uses `curl` with the `--compressed` option which was introduced on September 3rd, 2002([curl/curl@64bbe9d](https://github.com/curl/curl/commit/64bbe9dfafc6693a96b742f3133c636385835a19)). It's unlikely, but if you have `curl` compiled without that feature, `nvm` may not be able to install or list remote `node` versions. Please file an issue if your `curl` does not work with `--compressed` (and you didn't explicitly compile `curl` to not have compression support). - ### Install script To install or update nvm, you can use the [install script][2] using cURL: From 450088e51ad3915c900cce82f78599d2eddf8bfb Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 30 Mar 2017 00:41:31 +0800 Subject: [PATCH 0971/1426] [Refactor] Improve if conditoion logic in "use" --- nvm.sh | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/nvm.sh b/nvm.sh index 9cfc2c5..011c664 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2697,12 +2697,10 @@ nvm() { nvm_echo "Now using system version of io.js: $(iojs --version 2>/dev/null)$(nvm_print_npm_version)" fi return - else - if [ $NVM_USE_SILENT -ne 1 ]; then - nvm_err 'System version of node not found.' - fi - return 127 + elif [ $NVM_USE_SILENT -ne 1 ]; then + nvm_err 'System version of node not found.' fi + return 127 elif [ "_$VERSION" = "_∞" ]; then if [ $NVM_USE_SILENT -ne 1 ]; then nvm_err "The alias \"$PROVIDED_VERSION\" leads to an infinite loop. Aborting." From 6c24346af5f64feb13d4b99a01503d84ac2997aa Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Wed, 29 Mar 2017 18:13:14 +0800 Subject: [PATCH 0972/1426] [New] Add missing commands in bash_completion --- bash_completion | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bash_completion b/bash_completion index b51bf80..7f25f34 100644 --- a/bash_completion +++ b/bash_completion @@ -25,8 +25,8 @@ __nvm_commands () help install uninstall use run exec alias unalias reinstall-packages current list ls list-remote ls-remote - clear-cache deactivate unload - version which' + cache clear-cache deactivate unload + version version-remote which' if [ ${#COMP_WORDS[@]} == 4 ]; then From 5776cc952a55a466aa92aa91f83b4f41fb0584bd Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Wed, 29 Mar 2017 17:54:15 +0800 Subject: [PATCH 0973/1426] [copyright] update to 2017 --- LICENSE.md | 2 +- README.markdown | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/LICENSE.md b/LICENSE.md index 336298e..77a55d7 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2010-2016 Tim Caswell +Copyright (c) 2010-2017 Tim Caswell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in diff --git a/README.markdown b/README.markdown index 96902af..c9e62ca 100644 --- a/README.markdown +++ b/README.markdown @@ -346,7 +346,7 @@ load-nvmrc nvm is released under the MIT license. -Copyright (C) 2010-2016 Tim Caswell and Jordan Harband +Copyright (C) 2010-2017 Tim Caswell and Jordan Harband Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: From 4249b1c2bb38cafaf01fb37eb93be1adb8095374 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 31 Mar 2017 00:52:56 -0700 Subject: [PATCH 0974/1426] [Fix] `nvm_ensure_version_installed`: add `system` support. Relates to #1238 --- nvm.sh | 7 +++++ .../Unit tests/nvm_ensure_version_installed | 28 +++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/nvm.sh b/nvm.sh index 011c664..184440a 100644 --- a/nvm.sh +++ b/nvm.sh @@ -289,6 +289,13 @@ nvm_version_path() { nvm_ensure_version_installed() { local PROVIDED_VERSION PROVIDED_VERSION="${1-}" + if [ "${PROVIDED_VERSION}" = 'system' ]; then + if nvm_has_system_iojs || nvm_has_system_node; then + return 0 + fi + nvm_err "N/A: no system version of node/io.js is installed." + return 1 + fi local LOCAL_VERSION local EXIT_CODE LOCAL_VERSION="$(nvm_version "${PROVIDED_VERSION}")" diff --git a/test/fast/Unit tests/nvm_ensure_version_installed b/test/fast/Unit tests/nvm_ensure_version_installed index 4e167ed..e819657 100755 --- a/test/fast/Unit tests/nvm_ensure_version_installed +++ b/test/fast/Unit tests/nvm_ensure_version_installed @@ -3,6 +3,7 @@ die () { echo "$@" ; cleanup ; exit 1; } cleanup () { rm -rf "$(nvm_version_path v0.1.2)" + unset -f nvm_has_system_node nvm_has_system_iojs } \. ../../../nvm.sh @@ -31,4 +32,31 @@ You need to run "nvm install iojs" to install it before using it.' [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "expected 'nvm_ensure_version_installed iojs' to give $EXPECTED_OUTPUT, got $OUTPUT" [ "_$EXIT_CODE" = "_1" ] || die "expected 'nvm_ensure_version_installed iojs' to exit with 1, got $EXIT_CODE" +nvm_has_system_node() { return 1; } +nvm_has_system_iojs() { return 1; } + +OUTPUT="$(nvm_ensure_version_installed system 2>&1)" +EXIT_CODE=$? +EXPECTED_OUTPUT='N/A: no system version of node/io.js is installed.' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "expected 'nvm_ensure_version_installed system' with neither installed to give $EXPECTED_OUTPUT, got $OUTPUT" +[ "_$EXIT_CODE" = "_1" ] || die "expected 'nvm_ensure_version_installed system' with neither installed to exit with 1, got $EXIT_CODE" + +nvm_has_system_node() { return 0; } +nvm_has_system_iojs() { return 1; } + +OUTPUT="$(nvm_ensure_version_installed system 2>&1)" +EXIT_CODE=$? +EXPECTED_OUTPUT='' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "expected 'nvm_ensure_version_installed system' with node installed to give $EXPECTED_OUTPUT, got $OUTPUT" +[ "_$EXIT_CODE" = "_0" ] || die "expected 'nvm_ensure_version_installed system' with node installed to exit with 0, got $EXIT_CODE" + +nvm_has_system_node() { return 1; } +nvm_has_system_iojs() { return 0; } + +OUTPUT="$(nvm_ensure_version_installed system 2>&1)" +EXIT_CODE=$? +EXPECTED_OUTPUT='' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "expected 'nvm_ensure_version_installed system' with iojs installed to give $EXPECTED_OUTPUT, got $OUTPUT" +[ "_$EXIT_CODE" = "_0" ] || die "expected 'nvm_ensure_version_installed system' with iojs installed to exit with 0, got $EXIT_CODE" + cleanup From 18df8e3d2e4ab9ba817efde21b1ae181615d3264 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 2 Apr 2017 07:24:56 +0800 Subject: [PATCH 0975/1426] [Tests] Remove ppa source since we migrated to Ubuntu Trusty --- .travis.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4be1e29..543b251 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,8 +3,6 @@ dist: trusty sudo: required addons: apt: - sources: - - ubuntu-toolchain-r-test packages: - gcc-4.8 - g++-4.8 From 424056c839f21f92d880eeae6ab7f221ce5dbda3 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 2 Apr 2017 15:49:01 +0800 Subject: [PATCH 0976/1426] [Tests] Remove ShellCheck manual dependency install under Ubuntu 14.04 --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 543b251..2713939 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,7 +22,7 @@ before_install: - curl --version - wget --version install: - - if [ -n "${SHELLCHECK-}" ]; then cabal update && cabal install transformers-0.4.3.0 ShellCheck && shellcheck --version ; fi + - if [ -n "${SHELLCHECK-}" ]; then cabal update && cabal install ShellCheck && shellcheck --version ; fi - if [ -z "${SHELLCHECK-}" ]; then nvm install node && npm install && npm prune && npm ls urchin doctoc; fi - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' script: From a0534b720a8d01ed34aba5213fbd4fb2dbecc3a2 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 2 Apr 2017 16:30:55 +0800 Subject: [PATCH 0977/1426] [Tests] Reduce apt package dependencies calculation complexity --- .travis.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 2713939..2e77758 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,12 +4,13 @@ sudo: required addons: apt: packages: - - gcc-4.8 - - g++-4.8 - cabal-install - ghc - zsh # - ksh + # - gcc-4.8 + # - g++-4.8 + cache: directories: - $HOME/.npm From f524bcb9735dfe2fd20054a90ab67db693a10dc3 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Wed, 5 Apr 2017 05:01:54 +0800 Subject: [PATCH 0978/1426] [Fix] Correct indent in install.sh --- install.sh | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/install.sh b/install.sh index 790bde5..ec93902 100755 --- a/install.sh +++ b/install.sh @@ -15,16 +15,16 @@ nvm_latest_version() { } nvm_profile_is_bash_or_zsh() { - local TEST_PROFILE - TEST_PROFILE="${1-}" - case "${TEST_PROFILE-}" in - *"/.bashrc" | *"/.bash_profile" | *"/.zshrc") - return - ;; - *) - return 1 - ;; - esac + local TEST_PROFILE + TEST_PROFILE="${1-}" + case "${TEST_PROFILE-}" in + *"/.bashrc" | *"/.bash_profile" | *"/.zshrc") + return + ;; + *) + return 1 + ;; + esac } # @@ -126,7 +126,7 @@ install_nvm_from_git() { echo "=> Compressing and cleaning up git repository" if ! command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" gc --aggressive --prune=now ; then - echo >&2 "Your version of git is out of date. Please update it!" + echo >&2 "Your version of git is out of date. Please update it!" fi return } From 3f5fd57881eaeecfc5b2d681a5806da4a05e37fd Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Wed, 5 Apr 2017 04:58:34 +0800 Subject: [PATCH 0979/1426] [Refactor] Reduce a sed command with pipe --- install.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/install.sh b/install.sh index ec93902..ac5b367 100755 --- a/install.sh +++ b/install.sh @@ -242,8 +242,7 @@ nvm_check_global_modules() { local NPM_GLOBAL_MODULES NPM_GLOBAL_MODULES="$( npm list -g --depth=0 | - command sed '/ npm@/d' | - command sed '/ (empty)$/d' + command sed -e '/ npm@/d' -e '/ (empty)$/d' )" local MODULE_COUNT From d4e3f0943b4f1252d7de1e35a398bad5dff55216 Mon Sep 17 00:00:00 2001 From: Yanick Champoux Date: Tue, 4 Apr 2017 15:01:39 -0400 Subject: [PATCH 0980/1426] [Docs] add 'fnm' as part of the fish alternatives --- README.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/README.markdown b/README.markdown index c9e62ca..d89db1f 100644 --- a/README.markdown +++ b/README.markdown @@ -42,6 +42,7 @@ If you're running a system without prepackaged binary available, which means you - [bass](https://github.com/edc/bass) allows you to use utilities written for Bash in fish shell - [fast-nvm-fish](https://github.com/brigand/fast-nvm-fish) only works with version numbers (not aliases) but doesn't significantly slow your shell startup - [plugin-nvm](https://github.com/derekstavis/plugin-nvm) plugin for [Oh My Fish](https://github.com/oh-my-fish/oh-my-fish), which makes nvm and its completions available in fish shell + - [fnm](https://github.com/fisherman/fnm) - [fisherman](https://github.com/fisherman/fisherman)-based version manager for fish **Note:** We still have some problems with FreeBSD, because there is no official pre-built binary for FreeBSD, and building from source may need [patches](https://www.freshports.org/www/node/files/patch-deps_v8_src_base_platform_platform-posix.cc); see the issue ticket: - [[#900] [Bug] nodejs on FreeBSD may need to be patched ](https://github.com/creationix/nvm/issues/900) From e84bcaabdc0705f483048278b9fdecb3a1c89085 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 3 Apr 2017 23:06:04 +0800 Subject: [PATCH 0981/1426] [Refactor] Improve profile detection in install script --- install.sh | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/install.sh b/install.sh index ac5b367..3b54c66 100755 --- a/install.sh +++ b/install.sh @@ -183,6 +183,13 @@ install_nvm_as_script() { } } +nvm_try_profile() { + if [ -z "${1-}" ] || [ ! -f "${1}" ]; then + return 1 + fi + echo "${1}" +} + # # Detect profile file if not specified as environment variable # (eg: PROFILE=~/.myprofile) @@ -211,15 +218,12 @@ nvm_detect_profile() { fi if [ -z "$DETECTED_PROFILE" ]; then - if [ -f "$HOME/.profile" ]; then - DETECTED_PROFILE="$HOME/.profile" - elif [ -f "$HOME/.bashrc" ]; then - DETECTED_PROFILE="$HOME/.bashrc" - elif [ -f "$HOME/.bash_profile" ]; then - DETECTED_PROFILE="$HOME/.bash_profile" - elif [ -f "$HOME/.zshrc" ]; then - DETECTED_PROFILE="$HOME/.zshrc" - fi + for EACH_PROFILE in ".profile" ".bashrc" ".bash_profile" ".zshrc" + do + if DETECTED_PROFILE="$(nvm_try_profile "${HOME}/${EACH_PROFILE}")"; then + break + fi + done fi if [ ! -z "$DETECTED_PROFILE" ]; then @@ -362,10 +366,10 @@ nvm_do_install() { # during the execution of the install script # nvm_reset() { - unset -f nvm_reset nvm_has nvm_latest_version \ - nvm_source nvm_download install_nvm_as_script install_nvm_from_git \ - nvm_detect_profile nvm_check_global_modules nvm_do_install \ - nvm_install_dir nvm_node_version nvm_install_node + unset -f nvm_has nvm_install_dir nvm_latest_version nvm_profile_is_bash_or_zsh \ + nvm_source nvm_node_version nvm_download install_nvm_from_git nvm_install_node \ + install_nvm_as_script nvm_try_profile nvm_detect_profile nvm_check_global_modules \ + nvm_do_install nvm_reset } [ "_$NVM_ENV" = "_testing" ] || nvm_do_install From 7bd7a35cb2f7705828aac8c5ff567ff938be6bbb Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 6 Apr 2017 00:36:13 +0800 Subject: [PATCH 0982/1426] [Docs] Improve nvm usage examples Correct two double [tab] and try to improve its readability --- README.markdown | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/README.markdown b/README.markdown index d89db1f..001d937 100644 --- a/README.markdown +++ b/README.markdown @@ -390,29 +390,35 @@ Put the above sourcing line just below the sourcing line for nvm in your profile ### Usage nvm: - - $ nvm [tab][tab] - alias deactivate install ls run unload - clear-cache exec list ls-remote unalias use - current help list-remote reinstall-packages uninstall version +> $ nvm Tab +``` +alias deactivate install ls run unload +clear-cache exec list ls-remote unalias use +current help list-remote reinstall-packages uninstall version +``` nvm alias: +> $ nvm alias Tab +``` +default +``` - $ nvm alias [tab][tab] - default - - $ nvm alias my_alias [tab][tab] - v0.6.21 v0.8.26 v0.10.28 +> $ nvm alias my_alias Tab +``` +v0.6.21 v0.8.26 v0.10.28 +``` nvm use: - - $ nvm use [tab][tab] - my_alias default v0.6.21 v0.8.26 v0.10.28 +> $ nvm use Tab +``` +my_alias default v0.6.21 v0.8.26 v0.10.28 +``` nvm uninstall: - - $ nvm uninstall [tab][tab] - my_alias default v0.6.21 v0.8.26 v0.10.28 +> $ nvm uninstall Tab +``` +my_alias default v0.6.21 v0.8.26 v0.10.28 +``` ## Compatibility Issues `nvm` will encounter some issues if you have some non-default settings set. (see [#606](/../../issues/606)) From c6866eeb3769f85f3022887ef36f86fea9c85382 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 2 Apr 2017 14:34:04 +0800 Subject: [PATCH 0983/1426] [Test] "nvm alias" lts test bug fix --- .../lts/\"nvm alias\" should ensure LTS alias dir exists" | 2 ++ 1 file changed, 2 insertions(+) diff --git "a/test/fast/Aliases/lts/\"nvm alias\" should ensure LTS alias dir exists" "b/test/fast/Aliases/lts/\"nvm alias\" should ensure LTS alias dir exists" index 1afa44a..f6f3960 100755 --- "a/test/fast/Aliases/lts/\"nvm alias\" should ensure LTS alias dir exists" +++ "b/test/fast/Aliases/lts/\"nvm alias\" should ensure LTS alias dir exists" @@ -7,6 +7,8 @@ set -ex LTS_ALIAS_PATH="$(nvm_alias_path)/lts" +rm -rf "${LTS_ALIAS_PATH}" + die () { echo "$@" ; exit 1; } [ ! -d "${LTS_ALIAS_PATH}" ] || die "'${LTS_ALIAS_PATH}' exists and should not" From ec3ba1973a403e941e479549e8bb354182d19a31 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Wed, 5 Apr 2017 04:54:38 +0800 Subject: [PATCH 0984/1426] [New] `install.sh`: Parallel script download jobs --- install.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 3b54c66..084e442 100755 --- a/install.sh +++ b/install.sh @@ -172,11 +172,15 @@ install_nvm_as_script() { nvm_download -s "$NVM_SOURCE_LOCAL" -o "$INSTALL_DIR/nvm.sh" || { echo >&2 "Failed to download '$NVM_SOURCE_LOCAL'" return 1 - } + } & nvm_download -s "$NVM_EXEC_SOURCE" -o "$INSTALL_DIR/nvm-exec" || { echo >&2 "Failed to download '$NVM_EXEC_SOURCE'" return 2 - } + } & + for job in $(jobs -p | sort) + do + wait "$job" || return $? + done chmod a+x "$INSTALL_DIR/nvm-exec" || { echo >&2 "Failed to mark '$INSTALL_DIR/nvm-exec' as executable" return 3 From daa9c3604dfb8cfcf2de14deb65e4746a15245ee Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 6 Apr 2017 05:20:55 +0800 Subject: [PATCH 0985/1426] [Fix] To confirm curl exists before detecting curl libz feature --- nvm.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nvm.sh b/nvm.sh index 184440a..b24c640 100644 --- a/nvm.sh +++ b/nvm.sh @@ -76,7 +76,7 @@ nvm_has_colors() { } nvm_curl_libz_support() { - curl -V | grep "^Features:" | grep -q "libz" + curl -V 2>/dev/null | nvm_grep "^Features:" | nvm_grep -q "libz" } nvm_get_latest() { @@ -102,10 +102,10 @@ nvm_get_latest() { nvm_download() { local CURL_COMPRESSED_FLAG - if nvm_curl_libz_support; then - CURL_COMPRESSED_FLAG="--compressed" - fi if nvm_has "curl"; then + if nvm_curl_libz_support; then + CURL_COMPRESSED_FLAG="--compressed" + fi curl "${CURL_COMPRESSED_FLAG:-}" -q "$@" elif nvm_has "wget"; then # Emulate curl with wget From 2ec2d3101248a9efc71ec1bfb0460678e509ff75 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 6 Apr 2017 14:52:26 +0800 Subject: [PATCH 0986/1426] [Tests] Re-enable WITHOUT_CURL tests --- .travis.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index 2e77758..440a73a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -57,22 +57,22 @@ env: - SHELL=zsh TEST_SUITE=slow # - SHELL=ksh TEST_SUITE=slow - SHELL=sh TEST_SUITE=installation_node - # - SHELL=sh TEST_SUITE=installation_node WITHOUT_CURL=1 + - SHELL=sh TEST_SUITE=installation_node WITHOUT_CURL=1 - SHELL=dash TEST_SUITE=installation_node - # - SHELL=dash TEST_SUITE=installation_node WITHOUT_CURL=1 + - SHELL=dash TEST_SUITE=installation_node WITHOUT_CURL=1 - SHELL=bash TEST_SUITE=installation_node - # - SHELL=bash TEST_SUITE=installation_node WITHOUT_CURL=1 + - SHELL=bash TEST_SUITE=installation_node WITHOUT_CURL=1 - SHELL=zsh TEST_SUITE=installation_node - # - SHELL=zsh TEST_SUITE=installation_node WITHOUT_CURL=1 + - SHELL=zsh TEST_SUITE=installation_node WITHOUT_CURL=1 # - SHELL=ksh TEST_SUITE=installation_node # - SHELL=ksh TEST_SUITE=installation_node WITHOUT_CURL=1 - SHELL=sh TEST_SUITE=installation_iojs - # - SHELL=sh TEST_SUITE=installation_iojs WITHOUT_CURL=1 + - SHELL=sh TEST_SUITE=installation_iojs WITHOUT_CURL=1 - SHELL=dash TEST_SUITE=installation_iojs - # - SHELL=dash TEST_SUITE=installation_iojs WITHOUT_CURL=1 + - SHELL=dash TEST_SUITE=installation_iojs WITHOUT_CURL=1 - SHELL=bash TEST_SUITE=installation_iojs - # - SHELL=bash TEST_SUITE=installation_iojs WITHOUT_CURL=1 + - SHELL=bash TEST_SUITE=installation_iojs WITHOUT_CURL=1 - SHELL=zsh TEST_SUITE=installation_iojs - # - SHELL=zsh TEST_SUITE=installation_iojs WITHOUT_CURL=1 + - SHELL=zsh TEST_SUITE=installation_iojs WITHOUT_CURL=1 # - SHELL=ksh TEST_SUITE=installation_iojs # - SHELL=ksh TEST_SUITE=installation_iojs WITHOUT_CURL=1 From e87f395b7a86577a38a4a8d25d9fc93659eef5b0 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 6 Apr 2017 03:55:42 +0800 Subject: [PATCH 0987/1426] [Refactor] minor "if" and "return" improvement --- nvm.sh | 81 ++++++++++++++++++++++++---------------------------------- 1 file changed, 34 insertions(+), 47 deletions(-) diff --git a/nvm.sh b/nvm.sh index b24c640..cc92be0 100644 --- a/nvm.sh +++ b/nvm.sh @@ -205,18 +205,16 @@ nvm_rc_version() { export NVM_RC_VERSION='' local NVMRC_PATH NVMRC_PATH="$(nvm_find_nvmrc)" - if [ -e "${NVMRC_PATH}" ]; then - read -r NVM_RC_VERSION < "${NVMRC_PATH}" || printf '' - if [ -n "${NVM_RC_VERSION}" ]; then - nvm_echo "Found '${NVMRC_PATH}' with version <${NVM_RC_VERSION}>" - else - nvm_err "Warning: empty .nvmrc file found at \"${NVMRC_PATH}\"" - return 2 - fi - else + if [ ! -e "${NVMRC_PATH}" ]; then nvm_err "No .nvmrc file found" return 1 fi + read -r NVM_RC_VERSION < "${NVMRC_PATH}" || printf '' + if [ ! -n "${NVM_RC_VERSION}" ]; then + nvm_err "Warning: empty .nvmrc file found at \"${NVMRC_PATH}\"" + return 2 + fi + nvm_echo "Found '${NVMRC_PATH}' with version <${NVM_RC_VERSION}>" } nvm_clang_version() { @@ -341,9 +339,8 @@ nvm_version() { if [ -z "${VERSION}" ] || [ "_${VERSION}" = "_N/A" ]; then nvm_echo "N/A" return 3; - else - nvm_echo "${VERSION}" fi + nvm_echo "${VERSION}" } nvm_remote_version() { @@ -1261,10 +1258,9 @@ nvm_checksum() { elif [ -z "${2-}" ]; then nvm_echo 'Checksums empty' #missing in raspberry pi binary return - else - nvm_err 'Checksums do not match.' - return 1 fi + nvm_err 'Checksums do not match.' + return 1 } nvm_print_versions() { @@ -1540,8 +1536,7 @@ nvm_ensure_default_set() { if [ -z "$VERSION" ]; then nvm_err 'nvm_ensure_default_set: a version is required' return 1 - fi - if nvm_alias default >/dev/null 2>&1; then + elif nvm_alias default >/dev/null 2>&1; then # default already set return 0 fi @@ -1918,7 +1913,7 @@ nvm_install_source() { TARBALL="$(nvm_download_artifact "${FLAVOR}" source "${TYPE}" "${VERSION}" | command tail -1)" && \ [ -f "${TARBALL}" ] && \ TMPDIR="$(dirname "${TARBALL}")/files" && \ - if ( + if ! ( # shellcheck disable=SC2086 command mkdir -p "${TMPDIR}" && \ command "${tar}" -x${tar_compression_flag}f "${TARBALL}" -C "${TMPDIR}" --strip-components 1 && \ @@ -1930,12 +1925,10 @@ nvm_install_source() { command rm -f "${VERSION_PATH}" 2>/dev/null && \ $make -j "${NVM_MAKE_JOBS}" ${MAKE_CXX-} install ); then - return $? + nvm_err "nvm: install ${VERSION} failed!" + command rm -rf "${TMPDIR-}" + return 1 fi - - nvm_err "nvm: install ${VERSION} failed!" - command rm -rf "${TMPDIR-}" - return 1 } nvm_use_if_needed() { @@ -2031,9 +2024,7 @@ nvm_die_on_prefix() { nvm_err "nvm is not compatible with the \"NPM_CONFIG_PREFIX\" environment variable: currently set to \"$NPM_CONFIG_PREFIX\"" nvm_err 'Run `unset NPM_CONFIG_PREFIX` to unset it.' return 4 - fi - - if ! nvm_has 'npm'; then + elif ! nvm_has 'npm'; then return fi @@ -2141,20 +2132,20 @@ nvm_check_file_permissions() { setopt nonomatch fi for FILE in $1/* $1/.[!.]* $1/..?* ; do - if [ -d "$FILE" ]; then - if ! nvm_check_file_permissions "$FILE"; then - if [ "${ZSH_HAS_NONOMATCH_UNSET}" -eq 1 ] && nvm_has "setopt"; then - setopt nomatch - fi - return 2 - fi - elif [ -e "$FILE" ] && [ ! -w "$FILE" ] && [ ! -O "$FILE" ]; then - nvm_err "file is not writable or self-owned: $(nvm_sanitize_path "$FILE")" + if [ -d "$FILE" ]; then + if ! nvm_check_file_permissions "$FILE"; then if [ "${ZSH_HAS_NONOMATCH_UNSET}" -eq 1 ] && nvm_has "setopt"; then setopt nomatch fi - return 1 + return 2 fi + elif [ -e "$FILE" ] && [ ! -w "$FILE" ] && [ ! -O "$FILE" ]; then + nvm_err "file is not writable or self-owned: $(nvm_sanitize_path "$FILE")" + if [ "${ZSH_HAS_NONOMATCH_UNSET}" -eq 1 ] && nvm_has "setopt"; then + setopt nomatch + fi + return 1 + fi done if [ "${ZSH_HAS_NONOMATCH_UNSET}" -eq 1 ] && nvm_has "setopt"; then setopt nomatch @@ -2378,12 +2369,10 @@ nvm() { fi else nvm_rc_version - if [ $version_not_provided -eq 1 ]; then - if [ -z "$NVM_RC_VERSION" ]; then - unset NVM_RC_VERSION - >&2 nvm --help - return 127 - fi + if [ $version_not_provided -eq 1 ] && [ -z "$NVM_RC_VERSION" ]; then + unset NVM_RC_VERSION + >&2 nvm --help + return 127 fi provided_version="$NVM_RC_VERSION" unset NVM_RC_VERSION @@ -3003,10 +2992,9 @@ nvm() { if [ -n "$NVM_OUTPUT" ]; then NVM_NO_COLORS="${NVM_NO_COLORS-}" nvm_print_versions "$NVM_OUTPUT" return $EXIT_CODE - else - NVM_NO_COLORS="${NVM_NO_COLORS-}" nvm_print_versions "N/A" - return 3 fi + NVM_NO_COLORS="${NVM_NO_COLORS-}" nvm_print_versions "N/A" + return 3 ;; "current" ) nvm_version current @@ -3040,10 +3028,9 @@ nvm() { return fi return 1 - else - nvm_err 'System version of node not found.' - return 127 fi + nvm_err 'System version of node not found.' + return 127 elif [ "_$VERSION" = "_∞" ]; then nvm_err "The alias \"$2\" leads to an infinite loop. Aborting." return 8 From 153f8e7b316a3ea284b23abf5efe2546923778b8 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 9 Apr 2017 13:44:07 +0800 Subject: [PATCH 0988/1426] [Fix] To confirm curl exists before detecting curl libz feature --- nvm.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index cc92be0..7b1170c 100644 --- a/nvm.sh +++ b/nvm.sh @@ -82,10 +82,10 @@ nvm_curl_libz_support() { nvm_get_latest() { local NVM_LATEST_URL local CURL_COMPRESSED_FLAG - if nvm_curl_libz_support; then - CURL_COMPRESSED_FLAG="--compressed" - fi if nvm_has "curl"; then + if nvm_curl_libz_support; then + CURL_COMPRESSED_FLAG="--compressed" + fi NVM_LATEST_URL="$(curl "${CURL_COMPRESSED_FLAG:-}" -q -w "%{url_effective}\n" -L -s -S http://latest.nvm.sh -o /dev/null)" elif nvm_has "wget"; then NVM_LATEST_URL="$(wget http://latest.nvm.sh --server-response -O /dev/null 2>&1 | command awk '/^ Location: /{DEST=$2} END{ print DEST }')" From 65aedc105a7dabbb7d0cf0a55cdee929000aefda Mon Sep 17 00:00:00 2001 From: Piper Chester Date: Sat, 8 Apr 2017 09:16:54 -0700 Subject: [PATCH 0989/1426] [Docs] capitalize C++ --- README.markdown | 2 +- nvm.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.markdown b/README.markdown index 001d937..8fe2e25 100644 --- a/README.markdown +++ b/README.markdown @@ -32,7 +32,7 @@ ## Installation -If you're running a system without prepackaged binary available, which means you're going to install nodejs or io.js from its source code, you need to make sure your system has a c++ compiler. For OS X, Xcode will work, for Debian/Ubuntu based GNU/Linux, the `build-essential` and `libssl-dev` packages work. +If you're running a system without prepackaged binary available, which means you're going to install nodejs or io.js from its source code, you need to make sure your system has a C++ compiler. For OS X, Xcode will work, for Debian/Ubuntu based GNU/Linux, the `build-essential` and `libssl-dev` packages work. **Note:** `nvm` does not support Windows (see [#284](https://github.com/creationix/nvm/issues/284)). Two alternatives exist, which are neither supported nor developed by us: - [nvm-windows](https://github.com/coreybutler/nvm-windows) diff --git a/nvm.sh b/nvm.sh index 7b1170c..e43aa61 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1889,7 +1889,7 @@ nvm_install_source() { esac if nvm_has "clang++" && nvm_has "clang" && nvm_version_greater_than_or_equal_to nvm_clang_version 3.5; then if [ -z "${CC-}" ] || [ -z "${CXX-}" ] ; then - nvm_echo "Clang v3.5+ detected! CC or CXX not specified, will use Clang as c/c++ compiler!" + nvm_echo "Clang v3.5+ detected! CC or CXX not specified, will use Clang as C/C++ compiler!" MAKE_CXX="CC=${CC:-cc} CXX=${CXX:-c++}" fi fi From d80686c7cdec9f97e339653369521bad335e9fa0 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 9 Apr 2017 10:51:54 +0800 Subject: [PATCH 0990/1426] [Makefile] Introduce _ensure-current-version to ensure version tags --- Makefile | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 44d6bb9..ad307d7 100644 --- a/Makefile +++ b/Makefile @@ -55,6 +55,14 @@ ifndef TAG $(error Please invoke with `make TAG= release`, where is either an increment specifier (patch, minor, major, prepatch, preminor, premajor, prerelease), or an explicit major.minor.patch version number) endif +# Ensures there are version tags in repository +.PHONY: _ensure-current-version + +_ensure-current-version: +ifeq ($(shell git tag),$(printf '')) + @git fetch --tags +endif + # Ensures that the git workspace is clean. .PHONY: _ensure-clean _ensure-clean: @@ -62,7 +70,7 @@ _ensure-clean: # Makes a release; invoke with `make TAG= release`. .PHONY: release -release: _ensure-tag _ensure-clean +release: _ensure-tag _ensure-clean _ensure-current-version @old_ver=`git describe --abbrev=0 --tags --match 'v[0-9]*.[0-9]*.[0-9]*'` || { echo "Failed to determine current version." >&2; exit 1; }; old_ver=$${old_ver#v}; \ new_ver=`echo "$(TAG)" | sed 's/^v//'`; new_ver=$${new_ver:-patch}; \ if printf "$$new_ver" | grep -q '^[0-9]'; then \ From 229c7e6f0cc442ebbde84a5df5b3ae727f4a01e0 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 9 Apr 2017 10:52:04 +0800 Subject: [PATCH 0991/1426] [Tests] Test "make release" in Travis CI --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 440a73a..6aae77c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,6 +27,7 @@ install: - if [ -z "${SHELLCHECK-}" ]; then nvm install node && npm install && npm prune && npm ls urchin doctoc; fi - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' script: + - if [ -n "${MAKE_RELEASE-}" ]; then export GIT_EDITOR="sed -i '1 s/^/99.99.99 make release test/'" && git fetch --unshallow --tags && echo proceed | make TAG=99.99.99 release ; fi - if [ -n "${DOCTOCCHECK-}" ]; then cp README.markdown README.markdown.orig && npm run doctoc && diff -q README.markdown README.markdown.orig ; fi - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash nvm.sh && shellcheck -s sh nvm.sh && shellcheck -s dash nvm.sh && shellcheck -s ksh nvm.sh ; fi - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash install.sh bash_completion nvm-exec ; fi @@ -38,6 +39,7 @@ env: - PATH="~/.cabal/bin/:$(echo $PATH | sed 's/::/:/')" - NVM_DIR="${TRAVIS_BUILD_DIR}" matrix: + - MAKE_RELEASE=true - DOCTOCCHECK=true - SHELLCHECK=true - SHELL=bash TEST_SUITE=install_script From 0f25994c8ef6b7534a0f70aff3c7353a05b0862a Mon Sep 17 00:00:00 2001 From: rouzbeh84 Date: Thu, 6 Apr 2017 16:23:50 -0700 Subject: [PATCH 0992/1426] [Docs] git install update - added git as the last method before full manual install. - added the directory on `git clone` command - added the `git checkout v0.33.1` as the -v gets updated automatically --- README.markdown | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/README.markdown b/README.markdown index 8fe2e25..eebaab3 100644 --- a/README.markdown +++ b/README.markdown @@ -7,6 +7,7 @@ - [Installation](#installation) - [Install script](#install-script) - [Verify installation](#verify-installation) + - [Git Install](#git-install) - [Manual install](#manual-install) - [Manual upgrade](#manual-upgrade) - [Usage](#usage) @@ -107,16 +108,27 @@ command -v nvm which should output 'nvm' if the installation was successful. Please note that `which nvm` will not work, since `nvm` is a sourced shell function, not an executable binary. -### Manual install +### Git install -For manual install create a folder somewhere in your filesystem with the `nvm.sh` file inside it. I put mine in `~/.nvm`. +If you have `git` installed (requires git v1.7+): -Or if you have `git` installed (requires git v1.7+): - -1. clone this repo -1. check out the latest version +1. clone this repo in the root of your user profile + - `cd ~/` from anywhere then `git clone https://github.com/creationix/nvm.git .nvm` +1. check out the latest version with `git checkout v0.33.1` 1. activate nvm by sourcing it from your shell +Now add these lines to your `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it automatically sourced upon login: +(you may have to add to more than one of the above files) + +```sh +export NVM_DIR="$HOME/.nvm" +[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm +``` + +### Manual Install + +For a fully manual install, create a folder somewhere in your filesystem with the `nvm.sh` file inside it. I put mine in `~/.nvm` and added the following to the `nvm.sh` file. + ```sh export NVM_DIR="$HOME/.nvm" && ( git clone https://github.com/creationix/nvm.git "$NVM_DIR" @@ -125,7 +137,7 @@ export NVM_DIR="$HOME/.nvm" && ( ) && . "$NVM_DIR/nvm.sh" ``` -Add these lines to your `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it automatically sourced upon login: +Now add these lines to your `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it automatically sourced upon login: (you may have to add to more than one of the above files) ```sh From ec2b02e187da1201cf3bcc6272569b8f2546a63f Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 12 Apr 2017 16:11:01 -0700 Subject: [PATCH 0993/1426] npm run doctoc --- README.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.markdown b/README.markdown index eebaab3..bebe2a4 100644 --- a/README.markdown +++ b/README.markdown @@ -7,8 +7,8 @@ - [Installation](#installation) - [Install script](#install-script) - [Verify installation](#verify-installation) - - [Git Install](#git-install) - - [Manual install](#manual-install) + - [Git install](#git-install) + - [Manual Install](#manual-install) - [Manual upgrade](#manual-upgrade) - [Usage](#usage) - [Long-term support](#long-term-support) From a66a9caa1c4f507b9ff4fb534a34821a01bb82ca Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 9 Apr 2017 13:08:04 +0800 Subject: [PATCH 0994/1426] [Tests] Use node v0.10.7 for thread para test as other install from src tests --- .../installation_node/install from source with thread parameter | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/installation_node/install from source with thread parameter b/test/installation_node/install from source with thread parameter index e2be013..1b3faae 100755 --- a/test/installation_node/install from source with thread parameter +++ b/test/installation_node/install from source with thread parameter @@ -4,7 +4,7 @@ die () { echo "$@" ; exit 1; } \. ../../nvm.sh -NVM_TEST_VERSION=v0.10.41 +NVM_TEST_VERSION=v0.10.7 # STAGE 1 # From 7aa3448259edeb9a6a811b3d174e3cb0a0d40b3e Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 9 Apr 2017 13:13:25 +0800 Subject: [PATCH 0995/1426] [Tests] Add curl back when WITHOUT_CURL test done since cache needs it --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 6aae77c..abc5825 100644 --- a/.travis.yml +++ b/.travis.yml @@ -32,6 +32,8 @@ script: - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash nvm.sh && shellcheck -s sh nvm.sh && shellcheck -s dash nvm.sh && shellcheck -s ksh nvm.sh ; fi - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash install.sh bash_completion nvm-exec ; fi - if [ -n "${SHELL-}" ] && [ -n "${TEST_SUITE}" ]; then make TEST_SUITE=$TEST_SUITE URCHIN="$(npm bin)/urchin" test-$SHELL ; fi +after_success: + - if [ -n "$WITHOUT_CURL" ]; then sudo apt-get install curl -y ; fi env: global: - CXX=g++-4.8 From f38d21c52966ec761bd113f2b88f5df38dc024c9 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 10 Apr 2017 02:47:44 +0800 Subject: [PATCH 0996/1426] [Docs] Improve "Problems" README section readability --- README.markdown | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README.markdown b/README.markdown index bebe2a4..972beb1 100644 --- a/README.markdown +++ b/README.markdown @@ -471,25 +471,25 @@ As a potential alternative, @mhart (a Node contributor) has some [Docker images ## Problems -If you try to install a node version and the installation fails, be sure to delete the node downloads from src (~/.nvm/src/) or you might get an error when trying to reinstall them again or you might get an error like the following: + - If you try to install a node version and the installation fails, be sure to delete the node downloads from src (~/.nvm/src/) or you might get an error when trying to reinstall them again or you might get an error like the following: curl: (33) HTTP server doesn't seem to support byte ranges. Cannot resume. -Where's my 'sudo node'? Check out this link: + - Where's my `sudo node`? Check out [#43](https://github.com/creationix/nvm/issues/43) -https://github.com/creationix/nvm/issues/43 - -On Arch Linux and other systems using python3 by default, before running *install* you need to: + - On Arch Linux and other systems using python3 by default, before running *install* you need to: ```sh export PYTHON=python2 ``` -After the v0.8.6 release of node, nvm tries to install from binary packages. But in some systems, the official binary packages don't work due to incompatibility of shared libs. In such cases, use `-s` option to force install from source: + - After the v0.8.6 release of node, nvm tries to install from binary packages. But in some systems, the official binary packages don't work due to incompatibility of shared libs. In such cases, use `-s` option to force install from source: - nvm install -s 0.8.6 +```sh +nvm install -s 0.8.6 +``` -If setting the `default` alias does not establish the node version in new shells (i.e. `nvm current` yields `system`), ensure that the system's node PATH is set before the `nvm.sh` source line in your shell profile (see [#658](https://github.com/creationix/nvm/issues/658)) + - If setting the `default` alias does not establish the node version in new shells (i.e. `nvm current` yields `system`), ensure that the system's node PATH is set before the `nvm.sh` source line in your shell profile (see [#658](https://github.com/creationix/nvm/issues/658)) ## Mac OS "troubleshooting" From bee7b9970e256a300aa465808e5014d1af1d5e3d Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 23 Apr 2017 23:33:42 +0800 Subject: [PATCH 0997/1426] [Docs] Remove archlinux python tips in "Problems" This is not working at all. --- README.markdown | 6 ------ 1 file changed, 6 deletions(-) diff --git a/README.markdown b/README.markdown index 972beb1..ff78e28 100644 --- a/README.markdown +++ b/README.markdown @@ -477,12 +477,6 @@ As a potential alternative, @mhart (a Node contributor) has some [Docker images - Where's my `sudo node`? Check out [#43](https://github.com/creationix/nvm/issues/43) - - On Arch Linux and other systems using python3 by default, before running *install* you need to: - -```sh -export PYTHON=python2 -``` - - After the v0.8.6 release of node, nvm tries to install from binary packages. But in some systems, the official binary packages don't work due to incompatibility of shared libs. In such cases, use `-s` option to force install from source: ```sh From 964c7b311560e8fde6bad4b6178faf0d46053bb5 Mon Sep 17 00:00:00 2001 From: Piper Chester Date: Sat, 8 Apr 2017 09:19:15 -0700 Subject: [PATCH 0998/1426] =?UTF-8?q?[Docs]=20README.markdown=20=E2=86=92?= =?UTF-8?q?=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .travis.yml | 2 +- Makefile | 2 +- README.markdown => README.md | 0 package.json | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) rename README.markdown => README.md (100%) diff --git a/.travis.yml b/.travis.yml index abc5825..7410561 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,7 +28,7 @@ install: - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' script: - if [ -n "${MAKE_RELEASE-}" ]; then export GIT_EDITOR="sed -i '1 s/^/99.99.99 make release test/'" && git fetch --unshallow --tags && echo proceed | make TAG=99.99.99 release ; fi - - if [ -n "${DOCTOCCHECK-}" ]; then cp README.markdown README.markdown.orig && npm run doctoc && diff -q README.markdown README.markdown.orig ; fi + - if [ -n "${DOCTOCCHECK-}" ]; then cp README.md README.md.orig && npm run doctoc && diff -q README.md README.md.orig ; fi - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash nvm.sh && shellcheck -s sh nvm.sh && shellcheck -s dash nvm.sh && shellcheck -s ksh nvm.sh ; fi - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash install.sh bash_completion nvm-exec ; fi - if [ -n "${SHELL-}" ] && [ -n "${TEST_SUITE}" ]; then make TEST_SUITE=$TEST_SUITE URCHIN="$(npm bin)/urchin" test-$SHELL ; fi diff --git a/Makefile b/Makefile index ad307d7..da90819 100644 --- a/Makefile +++ b/Makefile @@ -15,7 +15,7 @@ ifeq ($(findstring /,$(URCHIN)),) # urchin path was NOT passed in. UTIL_CHECK := $(or $(shell PATH="$(PATH)" which $(UTILS) >/dev/null && echo 'ok'),$(error Did you forget to run `npm install` after cloning the repo? At least one of the required supporting utilities not found: $(UTILS))) endif # The files that need updating when incrementing the version number. -VERSIONED_FILES := nvm.sh install.sh README.markdown package.json +VERSIONED_FILES := nvm.sh install.sh README.md package.json # Define all shells to test with. Can be overridden with `make SHELLS=... `. SHELLS := sh bash dash zsh # ksh (#574) # Generate 'test-' target names from specified shells. diff --git a/README.markdown b/README.md similarity index 100% rename from README.markdown rename to README.md diff --git a/package.json b/package.json index b81c8e9..1ed7b8b 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "test/installation/node": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=installation_node test-$shell", "test/installation/iojs": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=installation_iojs test-$shell", "test/sourcing": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=sourcing test-$shell", - "doctoc": "doctoc --title='## Table of Contents' --github README.markdown" + "doctoc": "doctoc --title='## Table of Contents' --github README.md" }, "repository": { "type": "git", From 0a95e77000515c1156be593642dd4e452f2f098e Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 26 Apr 2017 00:50:33 -0700 Subject: [PATCH 0999/1426] v0.33.2 --- README.md | 14 +++++++------- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index ff78e28..e286899 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Node Version Manager [![Build Status](https://travis-ci.org/creationix/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.33.1-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://travis-ci.org/creationix/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.33.2-yellow.svg)][4] [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/684/badge)](https://bestpractices.coreinfrastructure.org/projects/684) @@ -68,13 +68,13 @@ Homebrew installation is not supported. If you have issues with homebrew-install To install or update nvm, you can use the [install script][2] using cURL: ```sh -curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash ``` or Wget: ```sh -wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash +wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash ``` The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). @@ -114,7 +114,7 @@ If you have `git` installed (requires git v1.7+): 1. clone this repo in the root of your user profile - `cd ~/` from anywhere then `git clone https://github.com/creationix/nvm.git .nvm` -1. check out the latest version with `git checkout v0.33.1` +1. check out the latest version with `git checkout v0.33.2` 1. activate nvm by sourcing it from your shell Now add these lines to your `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it automatically sourced upon login: @@ -461,7 +461,7 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh ```sh apk add -U curl bash ca-certificates openssl ncurses coreutils python2 make gcc g++ libgcc linux-headers -curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash ``` The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. @@ -498,8 +498,8 @@ sudo chmod ugo-x /usr/libexec/path_helper More on this issue in [dotphiles/dotzsh](https://github.com/dotphiles/dotzsh#mac-os-x). [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.33.1/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.33.2/install.sh [3]: https://travis-ci.org/creationix/nvm -[4]: https://github.com/creationix/nvm/releases/tag/v0.33.1 +[4]: https://github.com/creationix/nvm/releases/tag/v0.33.2 [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index 084e442..c022cea 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ nvm_install_dir() { } nvm_latest_version() { - echo "v0.33.1" + echo "v0.33.2" } nvm_profile_is_bash_or_zsh() { diff --git a/nvm.sh b/nvm.sh index e43aa61..82a4105 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3210,7 +3210,7 @@ nvm() { NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; "--version" ) - nvm_echo '0.33.1' + nvm_echo '0.33.2' ;; "unload" ) nvm deactivate >/dev/null 2>&1 diff --git a/package.json b/package.json index 1ed7b8b..69a8989 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.33.1", + "version": "0.33.2", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From caa7de37af417ade18dd80cebbfe1349a144bd60 Mon Sep 17 00:00:00 2001 From: Jumpei Ogawa Date: Thu, 27 Apr 2017 20:17:21 +0900 Subject: [PATCH 1000/1426] =?UTF-8?q?[Fix]=20`set=20-u`:=20ensure=20that?= =?UTF-8?q?=20potentially=20unbound=20variables=20aren=E2=80=99t=20called?= =?UTF-8?q?=20unchecked.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit is follow up for 853afbf. Fixes remaining bug in #1363 --- nvm.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index 82a4105..1ae752f 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2449,7 +2449,7 @@ nvm() { if nvm_is_version_installed "$VERSION"; then nvm_err "$VERSION is already installed." - if nvm use "$VERSION" && [ ! -z "$REINSTALL_PACKAGES_FROM" ] && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then + if nvm use "$VERSION" && [ -n "${REINSTALL_PACKAGES_FROM-}" ] && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then nvm reinstall-packages "$REINSTALL_PACKAGES_FROM" fi if [ -n "${LTS-}" ]; then @@ -2517,7 +2517,7 @@ nvm() { else nvm_ensure_default_set "$provided_version" fi - if [ ! -z "$REINSTALL_PACKAGES_FROM" ] \ + if [ -n "${REINSTALL_PACKAGES_FROM-}" ] \ && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then nvm reinstall-packages "$REINSTALL_PACKAGES_FROM" EXIT_CODE=$? @@ -2722,7 +2722,7 @@ nvm() { # Prepend current version PATH="$(nvm_prepend_path "$PATH" "$NVM_VERSION_DIR/bin")" if nvm_has manpath; then - if [ -z "$MANPATH" ]; then + if [ -z "${MANPATH-}" ]; then local MANPATH MANPATH=$(manpath) fi From accd6ae2987c17a32621af827579393d33dcb80e Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 28 Apr 2017 00:39:48 -0700 Subject: [PATCH 1001/1426] [Fix] ensure if `npm link` fails, that `$IFS` is not improperly set. https://github.com/creationix/nvm/issues/1519#issuecomment-297850323 --- nvm.sh | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/nvm.sh b/nvm.sh index 1ae752f..5529f59 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3157,15 +3157,16 @@ nvm() { nvm_echo "$INSTALLS" | command xargs npm install -g --quiet nvm_echo "Linking global packages from $VERSION..." - set -f; IFS=' + ( + set -f; IFS=' ' # necessary to turn off variable expansion except for newlines - for LINK in $LINKS; do - set +f; unset IFS # restore variable expansion - if [ -n "$LINK" ]; then - (nvm_cd "$LINK" && npm link) - fi - done - set +f; unset IFS # restore variable expansion in case $LINKS was empty + for LINK in $LINKS; do + set +f; unset IFS # restore variable expansion + if [ -n "$LINK" ]; then + (nvm_cd "$LINK" && npm link) + fi + done + ) ;; "clear-cache" ) command rm -f "$NVM_DIR/v*" "$(nvm_version_dir)" 2>/dev/null From dc5dfe3bc1e9dae290a4e1750b17f444f3c70592 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 28 Apr 2017 00:41:55 -0700 Subject: [PATCH 1002/1426] [Fix] set IFS to default for all nvm commands. Fixes #1227. Fixes #1244. Fixes #1514. Fixes #1518. --- nvm.sh | 8 ++++++++ .../Using a nonstandard IFS should not break | 18 ++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100755 test/fast/Listing versions/Using a nonstandard IFS should not break diff --git a/nvm.sh b/nvm.sh index 5529f59..32ecea3 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2163,6 +2163,14 @@ nvm() { return fi + local DEFAULT_IFS + DEFAULT_IFS=" $(echo t | tr t \\t) +" + if [ "${IFS}" != "${DEFAULT_IFS}" ]; then + IFS="${DEFAULT_IFS}" nvm "$@" + return $? + fi + local COMMAND COMMAND="${1-}" shift diff --git a/test/fast/Listing versions/Using a nonstandard IFS should not break b/test/fast/Listing versions/Using a nonstandard IFS should not break new file mode 100755 index 0000000..c707dbc --- /dev/null +++ b/test/fast/Listing versions/Using a nonstandard IFS should not break @@ -0,0 +1,18 @@ +#!/bin/sh + +\. ../../../nvm.sh + +mkdir "${NVM_DIR}/v0.0.1" +mkdir "${NVM_DIR}/v0.0.3" +mkdir "${NVM_DIR}/v0.0.9" +mkdir "${NVM_DIR}/v0.3.1" +mkdir "${NVM_DIR}/v0.3.3" +mkdir "${NVM_DIR}/v0.3.9" +mkdir -p "${NVM_DIR}/versions/node/v0.12.87" +mkdir -p "${NVM_DIR}/versions/node/v0.12.9" +mkdir -p "${NVM_DIR}/versions/io.js/v0.1.2" +mkdir -p "${NVM_DIR}/versions/io.js/v0.10.2" + +set -e + +IFS='' nvm ls From 7f3145bc98b9355d26ee5da730fb9c4df7201b18 Mon Sep 17 00:00:00 2001 From: Weston Ganger Date: Tue, 28 Mar 2017 09:37:14 -0700 Subject: [PATCH 1003/1426] [New] add support for `$NVM_DIR/default-packages` file --- .gitignore | 1 + README.md | 13 ++ nvm.sh | 56 ++++++++- ... should unset all function and variables." | 2 + test/fast/Unit tests/nvm_default_packages | 115 ++++++++++++++++++ test/fast/Unit tests/nvm_get_checksum_alg | 2 + test/fast/Unit tests/nvm_get_mirror | 3 +- 7 files changed, 186 insertions(+), 6 deletions(-) create mode 100755 test/fast/Unit tests/nvm_default_packages diff --git a/.gitignore b/.gitignore index fc578cc..b126f5e 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ npm-debug.log .DS_Store current +default-packages diff --git a/README.md b/README.md index e286899..a7cb2be 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ - [Usage](#usage) - [Long-term support](#long-term-support) - [Migrating global packages while installing](#migrating-global-packages-while-installing) + - [Default global packages from file while installing](#default-global-packages-from-file-while-installing) - [io.js](#iojs) - [System version of node](#system-version-of-node) - [Listing versions](#listing-versions) @@ -228,6 +229,18 @@ nvm install 6 --reinstall-packages-from=5 nvm install v4.2 --reinstall-packages-from=iojs ``` +### Default global packages from file while installing + +If you have a list of default packages you want installed every time you install a new version we support that too. You can add anything npm would accept as a package argument on the command line. + +```sh +# $NVM_DIR/default-packages + +rimraf +object-inspect@1.0.2 +stevemao/left-pad +``` + ### io.js If you want to install [io.js](https://github.com/iojs/io.js/): diff --git a/nvm.sh b/nvm.sh index 32ecea3..88d391f 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2202,6 +2202,7 @@ nvm() { nvm_echo ' --reinstall-packages-from= When installing, reinstall packages installed in ' nvm_echo ' --lts When installing, only select from LTS (long-term support) versions' nvm_echo ' --lts= When installing, only select from versions for a specific LTS line' + nvm_echo ' --skip-default-packages When installing, skip the default-packages file if it exists' nvm_echo ' nvm uninstall Uninstall a version' nvm_echo ' nvm uninstall --lts Uninstall using automatic LTS (long-term support) alias `lts/*`, if available.' nvm_echo ' nvm uninstall --lts= Uninstall using automatic alias for provided LTS line, if available.' @@ -2421,6 +2422,8 @@ nvm() { ADDITIONAL_PARAMETERS='' local PROVIDED_REINSTALL_PACKAGES_FROM local REINSTALL_PACKAGES_FROM + local SKIP_DEFAULT_PACKAGES + local DEFAULT_PACKAGES while [ $# -ne 0 ] do @@ -2433,6 +2436,9 @@ nvm() { PROVIDED_REINSTALL_PACKAGES_FROM="$(nvm_echo "$1" | command cut -c 22-)" REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM")" ||: ;; + --skip-default-packages) + SKIP_DEFAULT_PACKAGES=true + ;; *) ADDITIONAL_PARAMETERS="$ADDITIONAL_PARAMETERS $1" ;; @@ -2440,6 +2446,30 @@ nvm() { shift done + if [ -z "$SKIP_DEFAULT_PACKAGES" ] && [ -f "${NVM_DIR}/default-packages" ]; then + DEFAULT_PACKAGES="" + + # Read lines from $NVM_DIR/default-packages + local line + while IFS=" " read -r line; do + # Skip empty lines. + [ -n "${line}" ] || continue + + # Skip comment lines that begin with `#`. + [ "$(echo "$line" | cut -c1)" != "#" ] || continue + + # Fail on lines that have multiple space-separated words + case ${line} in + *\ * ) + nvm_err "Only one package per line is allowed in the ${NVM_DIR}/default-packages file. Please remove any lines with multiple space-seperated values." + return 1 + ;; + esac + + DEFAULT_PACKAGES="${DEFAULT_PACKAGES}${line} " + done < "${NVM_DIR}/default-packages" + fi + if [ -n "${PROVIDED_REINSTALL_PACKAGES_FROM-}" ] && [ "$(nvm_ensure_version_prefix "${PROVIDED_REINSTALL_PACKAGES_FROM}")" = "${VERSION}" ]; then nvm_err "You can't reinstall global packages from the same version of node you're installing." return 4 @@ -2457,8 +2487,13 @@ nvm() { if nvm_is_version_installed "$VERSION"; then nvm_err "$VERSION is already installed." - if nvm use "$VERSION" && [ -n "${REINSTALL_PACKAGES_FROM-}" ] && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then - nvm reinstall-packages "$REINSTALL_PACKAGES_FROM" + if nvm use "$VERSION"; then + if [ -z "${SKIP_DEFAULT_PACKAGES-}" ] && [ -n "${DEFAULT_PACKAGES-}" ]; then + nvm_install_default_packages "$DEFAULT_PACKAGES" + fi + if [ -n "${REINSTALL_PACKAGES_FROM-}" ] && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then + nvm reinstall-packages "$REINSTALL_PACKAGES_FROM" + fi fi if [ -n "${LTS-}" ]; then nvm_ensure_default_set "lts/${LTS}" @@ -2525,8 +2560,10 @@ nvm() { else nvm_ensure_default_set "$provided_version" fi - if [ -n "${REINSTALL_PACKAGES_FROM-}" ] \ - && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then + if [ -z "${SKIP_DEFAULT_PACKAGES-}" ] && [ -n "${DEFAULT_PACKAGES-}" ]; then + nvm_install_default_packages "$DEFAULT_PACKAGES" + fi + if [ -n "${REINSTALL_PACKAGES_FROM-}" ] && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then nvm reinstall-packages "$REINSTALL_PACKAGES_FROM" EXIT_CODE=$? fi @@ -3247,7 +3284,7 @@ nvm() { nvm_version_greater nvm_version_greater_than_or_equal_to \ nvm_print_npm_version nvm_npm_global_modules \ nvm_has_system_node nvm_has_system_iojs \ - nvm_download nvm_get_latest nvm_has \ + nvm_download nvm_get_latest nvm_has nvm_install_default_packages \ nvm_supports_source_options nvm_auto nvm_supports_xz \ nvm_echo nvm_err nvm_grep nvm_cd \ nvm_die_on_prefix nvm_get_make_jobs nvm_get_minor_version \ @@ -3270,6 +3307,15 @@ nvm() { esac } +nvm_install_default_packages() { + nvm_echo "Installing default global packages from ${NVM_DIR}/default-packages..." + + if ! nvm_echo "$1" | command xargs npm install -g --quiet; then + nvm_err "Failed installing default packages. Please check if your default-packages file or a package in it has problems!" + return 1 + fi +} + nvm_supports_source_options() { # shellcheck disable=SC1091 [ "_$(echo '[ $# -gt 0 ] && echo $1' | . /dev/stdin yes 2> /dev/null)" = "_yes" ] diff --git "a/test/fast/Running \"nvm unload\" should unset all function and variables." "b/test/fast/Running \"nvm unload\" should unset all function and variables." index f42470c..d2cad17 100755 --- "a/test/fast/Running \"nvm unload\" should unset all function and variables." +++ "b/test/fast/Running \"nvm unload\" should unset all function and variables." @@ -10,7 +10,9 @@ die () { echo "$@" ; cleanup ; exit 1; } typeset -f | awk '/ \(\) $/ && !/^main / {print $1}' > "${BEFORE}" +set +e # TODO: fix \. ../../nvm.sh +set -e type nvm > /dev/null 2>&1 || die "nvm not loaded" diff --git a/test/fast/Unit tests/nvm_default_packages b/test/fast/Unit tests/nvm_default_packages new file mode 100755 index 0000000..0ae318d --- /dev/null +++ b/test/fast/Unit tests/nvm_default_packages @@ -0,0 +1,115 @@ +#!/bin/sh + +FILE="$NVM_DIR/default-packages" + +die () { echo "$@" ; cleanup ; exit 1; } +setup () { + if [ -f $FILE ]; then + ORIG_DEFAULT_PACKAGES=$(cat $FILE) + mkdir ./tmp/ ||: + mv $FILE ./tmp/default-packages ||: + fi + touch $FILE +} +cleanup () { + rm -rf "$(nvm_version_path v6.10.1)" $FILE + if [ "$ORIG_DEFAULT_PACKAGES" != "" ]; then + rm -rf ./tmp/ + echo "$ORIG_DEFAULT_PACKAGES" > $FILE + fi +} + +setup + +\. ../../../nvm.sh + +cat > $FILE << EOF +rimraf +object-inspect@1.0.2 + +# commented-package + +stevemao/left-pad +EOF + +nvm install v6.10.1 2>&1 +EXIT_CODE=$? +[ "_$EXIT_CODE" = "_0" ] || die "expected 'nvm install v6.10.1' to exit with 0, got $EXIT_CODE" + +nvm exec v6.10.1 npm ls -g --depth=0 | grep -q 'rimraf' +if [ -z "$?" ]; then + die "expected 'nvm exec v6.10.1 npm ls -g --depth=0 | grep -q 'rimraf'' to exit with 0, got $?" +fi + +cleanup + +setup + +\. ../../../nvm.sh + +cat > $FILE << EOF +rimraf +object-inspect@1.0.2 + +# commented-package + +stevemao/left-pad +EOF + +nvm install v6.10.1 --skip-default-packages 2>&1 +EXIT_CODE=$? +[ "_$EXIT_CODE" = "_0" ] || die "expected 'nvm install v6.10.1' to exit with 0, got $EXIT_CODE" + +if nvm exec v6.10.1 npm ls -g --depth=0 | grep -q 'rimraf'; then + die "expected 'nvm exec v6.10.1 npm ls -g --depth=0 | grep -q 'rimraf'' to be empty" +fi + +cleanup + +setup + +cat > $FILE << EOF +not~a~package~name +EOF + +nvm install v6.10.1 +EXIT_CODE=$? +[ "_$EXIT_CODE" = "_0" ] || die "expected 'nvm install v6.10.1' to exit with 0, got $EXIT_CODE" + +if nvm exec v6.10.1 npm ls -g --depth=0 | grep -q 'not~a~package~name'; then + die "expected 'nvm exec v6.10.1 npm ls -g --depth=0 | grep -q 'not~a~package~name'' to exit with 1, got $?" +fi + +cleanup + +setup + +cat > $FILE << EOF +object-inspect @ 1.0.2 +EOF + +nvm install v6.10.1 2>&1 +EXIT_CODE=$? +[ "_$EXIT_CODE" = "_1" ] || die "expected 'nvm install v6.10.1' to exit with 1, got $EXIT_CODE" + +if nvm exec v6.10.1 npm ls -g --depth=0 | grep -q 'object-inspect'; then + die "expected 'nvm exec v6.10.1 npm ls -g --depth=0 | grep -q 'object-inspect'' to exit with 1, got $?" +fi + +cleanup + +setup + +rm -rf $FILE + +nvm install v6.10.1 2>&1 +EXIT_CODE=$? +[ "_$EXIT_CODE" = "_0" ] || die "expected 'nvm install v6.10.1' to exit with 0, got $EXIT_CODE" + +if nvm exec v6.10.1 npm ls -g --depth=0 | grep -q 'object-inspect'; then + die "expected 'nvm exec v6.10.1 npm ls -g --depth=0 | grep -q 'object-inspect'' to exit with 1, got $?" +fi + +touch $FILE + +cleanup diff --git a/test/fast/Unit tests/nvm_get_checksum_alg b/test/fast/Unit tests/nvm_get_checksum_alg index 6a68e8c..1869437 100755 --- a/test/fast/Unit tests/nvm_get_checksum_alg +++ b/test/fast/Unit tests/nvm_get_checksum_alg @@ -4,7 +4,9 @@ set -ex die () { echo "$@" ; exit 1; } +set +e # TODO: fix \. ../../../nvm.sh +set -e ALG="$(nvm_get_checksum_alg)" diff --git a/test/fast/Unit tests/nvm_get_mirror b/test/fast/Unit tests/nvm_get_mirror index f4116a6..8d4b192 100755 --- a/test/fast/Unit tests/nvm_get_mirror +++ b/test/fast/Unit tests/nvm_get_mirror @@ -7,7 +7,9 @@ die () { echo "$@" ; exit 1; } unset NVM_NODEJS_ORG_MIRROR unset NVM_IOJS_ORG_MIRROR +set +e # TODO: fix \. ../../../nvm.sh +set -e ! nvm_get_mirror || die 'unknown release type did not error' ! nvm_get_mirror node || die 'unknown release type did not error' @@ -28,4 +30,3 @@ unset NVM_NODEJS_ORG_MIRROR NVM_IOJS_ORG_MIRROR="test://domain" [ "$(nvm_get_mirror iojs std)" = "test://domain" ] || die "iojs-std mirror should respect NVM_IOJS_ORG_MIRROR" unset NVM_IOJS_ORG_MIRROR - From 4f626eac0d6b1d4a411b890bad3b0b9b8b576946 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 16 May 2017 22:58:26 -0700 Subject: [PATCH 1004/1426] =?UTF-8?q?[Fix]=20`set=20-u`:=20when=20`ALIAS`?= =?UTF-8?q?=20is=20unset,=20don=E2=80=99t=20reference=20an=20unbound=20var?= =?UTF-8?q?iable.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #1526. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 88d391f..f4769de 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3145,7 +3145,7 @@ nvm() { unset ALIAS fi - nvm_list_aliases "${ALIAS}" + nvm_list_aliases "${ALIAS-}" fi ;; "unalias" ) From c3c2d350e9772612761da2bce57402c59004834f Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Fri, 19 May 2017 13:58:09 +0800 Subject: [PATCH 1005/1426] [Tests] Fix cache for WITHOUT_CURL tests in Travis --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 7410561..4e83031 100644 --- a/.travis.yml +++ b/.travis.yml @@ -32,7 +32,7 @@ script: - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash nvm.sh && shellcheck -s sh nvm.sh && shellcheck -s dash nvm.sh && shellcheck -s ksh nvm.sh ; fi - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash install.sh bash_completion nvm-exec ; fi - if [ -n "${SHELL-}" ] && [ -n "${TEST_SUITE}" ]; then make TEST_SUITE=$TEST_SUITE URCHIN="$(npm bin)/urchin" test-$SHELL ; fi -after_success: +before_cache: - if [ -n "$WITHOUT_CURL" ]; then sudo apt-get install curl -y ; fi env: global: From 3497474fef91e24ae524bfb20444578e4d7e9fe9 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 26 May 2017 21:09:59 -0700 Subject: [PATCH 1006/1426] [Docs] move the install script to the top; put the notes in a separate section. --- README.md | 64 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 33 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index a7cb2be..1232673 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,7 @@ - [Installation](#installation) - [Install script](#install-script) - [Verify installation](#verify-installation) + - [Important Notes](#important-notes) - [Git install](#git-install) - [Manual Install](#manual-install) - [Manual upgrade](#manual-upgrade) @@ -34,36 +35,6 @@ ## Installation -If you're running a system without prepackaged binary available, which means you're going to install nodejs or io.js from its source code, you need to make sure your system has a C++ compiler. For OS X, Xcode will work, for Debian/Ubuntu based GNU/Linux, the `build-essential` and `libssl-dev` packages work. - -**Note:** `nvm` does not support Windows (see [#284](https://github.com/creationix/nvm/issues/284)). Two alternatives exist, which are neither supported nor developed by us: - - [nvm-windows](https://github.com/coreybutler/nvm-windows) - - [nodist](https://github.com/marcelklehr/nodist) - -**Note:** `nvm` does not support [Fish] either (see [#303](https://github.com/creationix/nvm/issues/303)). Alternatives exist, which are neither supported nor developed by us: - - [bass](https://github.com/edc/bass) allows you to use utilities written for Bash in fish shell - - [fast-nvm-fish](https://github.com/brigand/fast-nvm-fish) only works with version numbers (not aliases) but doesn't significantly slow your shell startup - - [plugin-nvm](https://github.com/derekstavis/plugin-nvm) plugin for [Oh My Fish](https://github.com/oh-my-fish/oh-my-fish), which makes nvm and its completions available in fish shell - - [fnm](https://github.com/fisherman/fnm) - [fisherman](https://github.com/fisherman/fisherman)-based version manager for fish - -**Note:** We still have some problems with FreeBSD, because there is no official pre-built binary for FreeBSD, and building from source may need [patches](https://www.freshports.org/www/node/files/patch-deps_v8_src_base_platform_platform-posix.cc); see the issue ticket: - - [[#900] [Bug] nodejs on FreeBSD may need to be patched ](https://github.com/creationix/nvm/issues/900) - - [nodejs/node#3716](https://github.com/nodejs/node/issues/3716) - -**Note:** On OS X, if you do not have Xcode installed and you do not wish to download the ~4.3GB file, you can install the `Command Line Tools`. You can check out this blog post on how to just that: - - [How to Install Command Line Tools in OS X Mavericks & Yosemite (Without Xcode)](http://osxdaily.com/2014/02/12/install-command-line-tools-mac-os-x/) - -**Note:** On OS X, if you have/had a "system" node installed and want to install modules globally, keep in mind that: - - When using nvm you do not need `sudo` to globally install a module with `npm -g`, so instead of doing `sudo npm install -g grunt`, do instead `npm install -g grunt` - - If you have an `~/.npmrc` file, make sure it does not contain any `prefix` settings (which is not compatible with nvm) - - You can (but should not?) keep your previous "system" node install, but nvm will only be available to your user account (the one used to install nvm). This might cause version mismatches, as other users will be using `/usr/local/lib/node_modules/*` VS your user account using `~/.nvm/versions/node/vX.X.X/lib/node_modules/*` - -Homebrew installation is not supported. If you have issues with homebrew-installed `nvm`, please `brew uninstall` it, and install it using the instructions below, before filing an issue. - -**Note:** If you're using `zsh` you can easily install `nvm` as a zsh plugin. Install [`zsh-nvm`](https://github.com/lukechilds/zsh-nvm) and run `nvm upgrade` to upgrade. - -**Note:** Git versions before v1.7 may face a problem of cloning nvm source from GitHub via https protocol, and there is also different behavior of git before v1.6, so the minimum required git version is v1.7.0 and we recommend v1.7.9.5 as it's the default version of the widely used Ubuntu 12.04 LTS. If you are interested in the problem we mentioned here, please refer to GitHub's [HTTPS cloning errors](https://help.github.com/articles/https-cloning-errors/) article. - ### Install script To install or update nvm, you can use the [install script][2] using cURL: @@ -98,7 +69,6 @@ If the above doesn't fix the problem, open your `.bash_profile` and add the foll - For more information about this issue and possible workarounds, please [refer here](https://github.com/creationix/nvm/issues/576) - ### Verify installation To verify that nvm has been installed, do: @@ -109,6 +79,38 @@ command -v nvm which should output 'nvm' if the installation was successful. Please note that `which nvm` will not work, since `nvm` is a sourced shell function, not an executable binary. +### Important Notes + +If you're running a system without prepackaged binary available, which means you're going to install nodejs or io.js from its source code, you need to make sure your system has a C++ compiler. For OS X, Xcode will work, for Debian/Ubuntu based GNU/Linux, the `build-essential` and `libssl-dev` packages work. + +**Note:** `nvm` does not support Windows (see [#284](https://github.com/creationix/nvm/issues/284)). Two alternatives exist, which are neither supported nor developed by us: + - [nvm-windows](https://github.com/coreybutler/nvm-windows) + - [nodist](https://github.com/marcelklehr/nodist) + +**Note:** `nvm` does not support [Fish] either (see [#303](https://github.com/creationix/nvm/issues/303)). Alternatives exist, which are neither supported nor developed by us: + - [bass](https://github.com/edc/bass) allows you to use utilities written for Bash in fish shell + - [fast-nvm-fish](https://github.com/brigand/fast-nvm-fish) only works with version numbers (not aliases) but doesn't significantly slow your shell startup + - [plugin-nvm](https://github.com/derekstavis/plugin-nvm) plugin for [Oh My Fish](https://github.com/oh-my-fish/oh-my-fish), which makes nvm and its completions available in fish shell + - [fnm](https://github.com/fisherman/fnm) - [fisherman](https://github.com/fisherman/fisherman)-based version manager for fish + +**Note:** We still have some problems with FreeBSD, because there is no official pre-built binary for FreeBSD, and building from source may need [patches](https://www.freshports.org/www/node/files/patch-deps_v8_src_base_platform_platform-posix.cc); see the issue ticket: + - [[#900] [Bug] nodejs on FreeBSD may need to be patched ](https://github.com/creationix/nvm/issues/900) + - [nodejs/node#3716](https://github.com/nodejs/node/issues/3716) + +**Note:** On OS X, if you do not have Xcode installed and you do not wish to download the ~4.3GB file, you can install the `Command Line Tools`. You can check out this blog post on how to just that: + - [How to Install Command Line Tools in OS X Mavericks & Yosemite (Without Xcode)](http://osxdaily.com/2014/02/12/install-command-line-tools-mac-os-x/) + +**Note:** On OS X, if you have/had a "system" node installed and want to install modules globally, keep in mind that: + - When using nvm you do not need `sudo` to globally install a module with `npm -g`, so instead of doing `sudo npm install -g grunt`, do instead `npm install -g grunt` + - If you have an `~/.npmrc` file, make sure it does not contain any `prefix` settings (which is not compatible with nvm) + - You can (but should not?) keep your previous "system" node install, but nvm will only be available to your user account (the one used to install nvm). This might cause version mismatches, as other users will be using `/usr/local/lib/node_modules/*` VS your user account using `~/.nvm/versions/node/vX.X.X/lib/node_modules/*` + +Homebrew installation is not supported. If you have issues with homebrew-installed `nvm`, please `brew uninstall` it, and install it using the instructions below, before filing an issue. + +**Note:** If you're using `zsh` you can easily install `nvm` as a zsh plugin. Install [`zsh-nvm`](https://github.com/lukechilds/zsh-nvm) and run `nvm upgrade` to upgrade. + +**Note:** Git versions before v1.7 may face a problem of cloning nvm source from GitHub via https protocol, and there is also different behavior of git before v1.6, so the minimum required git version is v1.7.0 and we recommend v1.7.9.5 as it's the default version of the widely used Ubuntu 12.04 LTS. If you are interested in the problem we mentioned here, please refer to GitHub's [HTTPS cloning errors](https://help.github.com/articles/https-cloning-errors/) article. + ### Git install If you have `git` installed (requires git v1.7+): From 051ef09daf7c8a2555ee9c688592f62d2e3bb937 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Bevacqua?= Date: Thu, 1 Jun 2017 10:06:43 -0300 Subject: [PATCH 1007/1426] Fix `--version` help text --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index f4769de..61977b5 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2197,7 +2197,7 @@ nvm() { nvm_echo nvm_echo 'Usage:' nvm_echo ' nvm --help Show this message' - nvm_echo ' nvm --version Print out the latest released version of nvm' + nvm_echo ' nvm --version Print out the installed version of nvm' nvm_echo ' nvm install [-s] Download and install a , [-s] from source. Uses .nvmrc if available' nvm_echo ' --reinstall-packages-from= When installing, reinstall packages installed in ' nvm_echo ' --lts When installing, only select from LTS (long-term support) versions' From d2644b22f94809127d5c2fc02fbd03b929e7b447 Mon Sep 17 00:00:00 2001 From: Shiva Bhusal Date: Sat, 3 Jun 2017 11:49:33 +0545 Subject: [PATCH 1008/1426] [Docs] Install script - Improve installation guide If installation is prompted to be successful, yet `which nvm` command returns `not found` then you might need to restart your terminal instance. Try opening a new tab/window in your terminal and retry. --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1232673..fb3f0d6 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,9 @@ Eg: `curl ... | NVM_DIR=/usr/local/nvm bash` for a global install. *NB. The installer can use `git`, `curl`, or `wget` to download `nvm`, whatever is available.* -**Note:** On OS X, if you get `nvm: command not found` after running the install script, your system may not have a [.bash_profile file] where the command is set up. Simply create one with `touch ~/.bash_profile` and run the install script again. +**Note:** On OS X, if you get `nvm: command not found` after running the install script, one of the following might be the reason:- + - your system may not have a [`.bash_profile file`] where the command is set up. Simply create one with `touch ~/.bash_profile` and run the install script again + - you might need to restart your terminal instance. Try opening a new tab/window in your terminal and retry. If the above doesn't fix the problem, open your `.bash_profile` and add the following line of code: From 79657965696b7b69fe83bee1aa18e44a9c7a37ba Mon Sep 17 00:00:00 2001 From: J Huang Date: Sat, 10 Jun 2017 15:25:26 +0800 Subject: [PATCH 1009/1426] [Fix] enable curl compression only on curl >=7.21.0 curl < 7.21.0 will output redirection reponse body to the output when compressed, which will cause tarball is prepended with redirection reponse body and leads to checksum mismatch. - add `nvm_curl_use_compression` and `nvm_curl_version` --- nvm.sh | 14 +++++-- test/fast/Unit tests/nvm_curl_use_compression | 38 +++++++++++++++++++ test/fast/Unit tests/nvm_curl_version | 32 ++++++++++++++++ 3 files changed, 81 insertions(+), 3 deletions(-) create mode 100755 test/fast/Unit tests/nvm_curl_use_compression create mode 100755 test/fast/Unit tests/nvm_curl_version diff --git a/nvm.sh b/nvm.sh index 61977b5..365e8e3 100644 --- a/nvm.sh +++ b/nvm.sh @@ -79,11 +79,15 @@ nvm_curl_libz_support() { curl -V 2>/dev/null | nvm_grep "^Features:" | nvm_grep -q "libz" } +nvm_curl_use_compression() { + nvm_curl_libz_support && nvm_version_greater_than_or_equal_to "$(nvm_curl_version)" 7.21.0; +} + nvm_get_latest() { local NVM_LATEST_URL local CURL_COMPRESSED_FLAG if nvm_has "curl"; then - if nvm_curl_libz_support; then + if nvm_curl_use_compression; then CURL_COMPRESSED_FLAG="--compressed" fi NVM_LATEST_URL="$(curl "${CURL_COMPRESSED_FLAG:-}" -q -w "%{url_effective}\n" -L -s -S http://latest.nvm.sh -o /dev/null)" @@ -103,7 +107,7 @@ nvm_get_latest() { nvm_download() { local CURL_COMPRESSED_FLAG if nvm_has "curl"; then - if nvm_curl_libz_support; then + if nvm_curl_use_compression; then CURL_COMPRESSED_FLAG="--compressed" fi curl "${CURL_COMPRESSED_FLAG:-}" -q "$@" @@ -221,6 +225,10 @@ nvm_clang_version() { clang --version | command awk '{ if ($2 == "version") print $3; else if ($3 == "version") print $4 }' | command sed 's/-.*$//g' } +nvm_curl_version() { + curl -V | command awk '{ if ($1 == "curl") print $2 }' | command sed 's/-.*$//g' +} + nvm_version_greater() { command awk 'BEGIN { if (ARGV[1] == "" || ARGV[2] == "") exit(1) @@ -3284,7 +3292,7 @@ nvm() { nvm_version_greater nvm_version_greater_than_or_equal_to \ nvm_print_npm_version nvm_npm_global_modules \ nvm_has_system_node nvm_has_system_iojs \ - nvm_download nvm_get_latest nvm_has nvm_install_default_packages \ + nvm_download nvm_get_latest nvm_has nvm_install_default_packages nvm_curl_use_compression nvm_curl_version \ nvm_supports_source_options nvm_auto nvm_supports_xz \ nvm_echo nvm_err nvm_grep nvm_cd \ nvm_die_on_prefix nvm_get_make_jobs nvm_get_minor_version \ diff --git a/test/fast/Unit tests/nvm_curl_use_compression b/test/fast/Unit tests/nvm_curl_use_compression new file mode 100755 index 0000000..e263864 --- /dev/null +++ b/test/fast/Unit tests/nvm_curl_use_compression @@ -0,0 +1,38 @@ +#!/bin/sh + +cleanup () { + unset -f die +} + +die () { echo -e "$@" ; cleanup ; exit 1; } + +NVM_ENV=testing \. ../../../nvm.sh + +curl() { + if [ "$1" = "-V" ]; then + echo "${VERSION_MESSAGE}" + fi +} + +CURL_VERSION_ON_ARCHLINUX_WITH_LIBZ="curl 7.54.0 (x86_64-pc-linux-gnu) libcurl/7.54.0 OpenSSL/1.1.0f zlib/1.2.11 libpsl/0.17.0 (+libicu/59.1) libssh2/1.8.0 nghttp2/1.22.0 +Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp +Features: AsynchDNS IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL" + +CURL_VERSION_ON_ARCHLINUX_WITHOUT_LIBZ="curl 7.54.0 (x86_64-pc-linux-gnu) libcurl/7.54.0 OpenSSL/1.1.0f zlib/1.2.11 libpsl/0.17.0 (+libicu/59.1) libssh2/1.8.0 nghttp2/1.22.0 +Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp +Features: AsynchDNS IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL" + +CURL_VERSION_ON_CENTOS6_WITH_LIBZ="curl 7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2 +Protocols: tftp ftp telnet dict ldap ldaps http file https ftps scp sftp +Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz" + +VERSION_MESSAGE="${CURL_VERSION_ON_ARCHLINUX_WITH_LIBZ}" +nvm_curl_use_compression || die "nvm_curl_use_compression should return 0" + +VERSION_MESSAGE="${CURL_VERSION_ON_ARCHLINUX_WITHOUT_LIBZ}" +! nvm_curl_use_compression || die "nvm_curl_use_compression should return 1 without libz support" + +VERSION_MESSAGE="${CURL_VERSION_ON_CENTOS6_WITH_LIBZ}" +! nvm_curl_use_compression || die "nvm_curl_use_compression should return 1 when curl < 7.21.0" + +cleanup diff --git a/test/fast/Unit tests/nvm_curl_version b/test/fast/Unit tests/nvm_curl_version new file mode 100755 index 0000000..d61014e --- /dev/null +++ b/test/fast/Unit tests/nvm_curl_version @@ -0,0 +1,32 @@ +#!/bin/sh + +cleanup () { + unset -f die + unset -f curl +} + +die () { echo -e "$@" ; cleanup ; exit 1; } + +NVM_ENV=testing \. ../../../nvm.sh + +curl() { + if [ "$1" = "-V" ]; then + echo "${VERSION_MESSAGE}" + fi +} + +assert_version_is() { + if [ "${1}" != "${2}" ]; then + die "Expected ${2}, got ${1}, origin version message:\n${VERSION_MESSAGE}" + return 1 + fi +} + +CURL_VERSION_MESSAGE="curl 7.54.0 (x86_64-pc-linux-gnu) libcurl/7.54.0 OpenSSL/1.1.0f zlib/1.2.11 libpsl/0.17.0 (+libicu/59.1) libssh2/1.8.0 nghttp2/1.22.0 +Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp +Features: AsynchDNS IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL" + +VERSION_MESSAGE="${CURL_VERSION_MESSAGE}" +assert_version_is "$(nvm_curl_version)" "7.54.0" + +cleanup From 28fe93cd15bcffb77dc358953a8228cdfb7188db Mon Sep 17 00:00:00 2001 From: J Huang Date: Tue, 13 Jun 2017 13:06:53 +0800 Subject: [PATCH 1010/1426] [Fix] `nvm install -s`: properly precompute clang version --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 365e8e3..9d91e1a 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1895,7 +1895,7 @@ nvm_install_source() { make='gmake' ;; esac - if nvm_has "clang++" && nvm_has "clang" && nvm_version_greater_than_or_equal_to nvm_clang_version 3.5; then + if nvm_has "clang++" && nvm_has "clang" && nvm_version_greater_than_or_equal_to "$(nvm_clang_version)" 3.5; then if [ -z "${CC-}" ] || [ -z "${CXX-}" ] ; then nvm_echo "Clang v3.5+ detected! CC or CXX not specified, will use Clang as C/C++ compiler!" MAKE_CXX="CC=${CC:-cc} CXX=${CXX:-c++}" From cbdd41eee2b84a155eb639cb825686529546f439 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 11 Jun 2017 14:15:04 -0700 Subject: [PATCH 1011/1426] [New] `nvm install`: add `--latest-npm` option to automatically try to upgrade to the latest working version of `npm`. - also add `nvm install-latest-npm` top-level command --- nvm.sh | 93 ++++++++++++++++++- test/fast/Unit tests/nvm_install_latest_npm | 58 ++++++++++++ test/installation_node/install latest npm | 34 +++++++ .../install with --latest-npm | 12 +++ 4 files changed, 196 insertions(+), 1 deletion(-) create mode 100755 test/fast/Unit tests/nvm_install_latest_npm create mode 100755 test/installation_node/install latest npm create mode 100755 test/installation_node/install with --latest-npm diff --git a/nvm.sh b/nvm.sh index 9d91e1a..f4aa8da 100644 --- a/nvm.sh +++ b/nvm.sh @@ -143,6 +143,74 @@ nvm_print_npm_version() { fi } +nvm_install_latest_npm() { + nvm_echo 'Attempting to upgrade to the latest working version of npm...' + local NODE_VERSION + NODE_VERSION="$(nvm_strip_iojs_prefix "$(nvm_ls_current)")" + if [ "${NODE_VERSION}" = 'system' ]; then + NODE_VERSION="$(node --version)" + elif [ "${NODE_VERSION}" = 'none' ]; then + nvm_echo "Detected node version ${NODE_VERSION}, npm version v${NPM_VERSION}" + NODE_VERSION='' + fi + if [ -z "${NODE_VERSION}" ]; then + nvm_err 'Unable to obtain node version.' + return 1 + fi + local NPM_VERSION + NPM_VERSION="$(npm --version 2>/dev/null)" + if [ -z "${NPM_VERSION}" ]; then + nvm_err 'Unable to obtain npm version.' + return 2 + fi + + local NVM_NPM_CMD + NVM_NPM_CMD='npm' + if [ "${NVM_DEBUG-}" = 1 ]; then + nvm_echo "Detected node version ${NODE_VERSION}, npm version v${NPM_VERSION}" + NVM_NPM_CMD='echo npm' + fi + + local NVM_IS_0_6 + NVM_IS_0_6=0 + if nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 0.6.0 && nvm_version_greater 0.7.0 "${NODE_VERSION}"; then + NVM_IS_0_6=1 + fi + local NVM_IS_0_9 + NVM_IS_0_9=0 + if nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 0.9.0 && nvm_version_greater 0.10.0 "${NODE_VERSION}"; then + NVM_IS_0_9=1 + fi + + if [ $NVM_IS_0_6 -eq 1 ]; then + nvm_echo '* `node` v0.6.x can only upgrade to `npm` v1.3.x' + $NVM_NPM_CMD install -g npm@1.3 + elif [ $NVM_IS_0_9 -eq 0 ]; then + # node 0.9 breaks here, for some reason + if nvm_version_greater_than_or_equal_to "${NPM_VERSION}" 1.0.0 && nvm_version_greater 2.0.0 "${NPM_VERSION}"; then + nvm_echo '* `npm` v1.x needs to first jump to `npm` v1.4.28 to be able to upgrade further' + $NVM_NPM_CMD install -g npm@1.4.28 + elif nvm_version_greater_than_or_equal_to "${NPM_VERSION}" 2.0.0 && nvm_version_greater 3.0.0 "${NPM_VERSION}"; then + nvm_echo '* `npm` v2.x needs to first jump to the latest v2 to be able to upgrade further' + $NVM_NPM_CMD install -g npm@2 + fi + fi + + if [ $NVM_IS_0_9 -eq 1 ] || [ $NVM_IS_0_6 -eq 1 ]; then + nvm_echo '* node v0.6 and v0.9 are unable to upgrade further' + elif nvm_version_greater 1.0.0 "${NODE_VERSION}"; then + nvm_echo '* `npm` v4.5.x is the last version that works on `node` versions below v1.0.0' + $NVM_NPM_CMD install -g npm@4.5 + elif nvm_version_greater 4.0.0 "${NODE_VERSION}"; then + nvm_echo '* `npm` v5 and higher do not work on `node` versions below v4.0.0' + $NVM_NPM_CMD install -g npm@4 + elif [ $NVM_IS_0_9 -eq 0 ] && [ $NVM_IS_0_6 -eq 0 ]; then + nvm_echo '* Installing latest `npm`; if this does not work on your node version, please report a bug!' + $NVM_NPM_CMD install -g npm + fi + nvm_echo "* npm upgraded to: v$(npm --version 2>/dev/null)" +} + # Make zsh glob matching behave same as bash # This fixes the "zsh: no matches found" errors if [ -z "${NVM_CD_FLAGS-}" ]; then @@ -2211,6 +2279,7 @@ nvm() { nvm_echo ' --lts When installing, only select from LTS (long-term support) versions' nvm_echo ' --lts= When installing, only select from versions for a specific LTS line' nvm_echo ' --skip-default-packages When installing, skip the default-packages file if it exists' + nvm_echo ' --latest-npm After installing, attempt to upgrade to the latest working npm on the given node version' nvm_echo ' nvm uninstall Uninstall a version' nvm_echo ' nvm uninstall --lts Uninstall using automatic LTS (long-term support) alias `lts/*`, if available.' nvm_echo ' nvm uninstall --lts= Uninstall using automatic alias for provided LTS line, if available.' @@ -2239,6 +2308,7 @@ nvm() { nvm_echo ' nvm alias [] Show all aliases beginning with ' nvm_echo ' nvm alias Set an alias named pointing to ' nvm_echo ' nvm unalias Deletes the alias named ' + nvm_echo ' nvm install-latest-npm Attempt to upgrade to the latest working `npm` on the current node version' nvm_echo ' nvm reinstall-packages Reinstall global `npm` packages contained in to current version' nvm_echo ' nvm unload Unload `nvm` from shell' nvm_echo ' nvm which [] Display path to installed node version. Uses .nvmrc if available' @@ -2344,6 +2414,8 @@ nvm() { local nobinary nobinary=0 local LTS + local NVM_UPGRADE_NPM + NVM_UPGRADE_NPM=0 while [ $# -ne 0 ] do case "$1" in @@ -2364,6 +2436,10 @@ nvm() { LTS="${1##--lts=}" shift ;; + --latest-npm) + NVM_UPGRADE_NPM=1 + shift + ;; *) break # stop parsing args ;; @@ -2496,6 +2572,9 @@ nvm() { if nvm_is_version_installed "$VERSION"; then nvm_err "$VERSION is already installed." if nvm use "$VERSION"; then + if [ "${NVM_UPGRADE_NPM}" = 1 ]; then + nvm install-latest-npm + fi if [ -z "${SKIP_DEFAULT_PACKAGES-}" ] && [ -n "${DEFAULT_PACKAGES-}" ]; then nvm_install_default_packages "$DEFAULT_PACKAGES" fi @@ -2568,6 +2647,10 @@ nvm() { else nvm_ensure_default_set "$provided_version" fi + if [ "${NVM_UPGRADE_NPM}" = 1 ]; then + nvm install-latest-npm + EXIT_CODE=$? + fi if [ -z "${SKIP_DEFAULT_PACKAGES-}" ] && [ -n "${DEFAULT_PACKAGES-}" ]; then nvm_install_default_packages "$DEFAULT_PACKAGES" fi @@ -3174,6 +3257,14 @@ nvm() { command rm -f "$NVM_ALIAS_DIR/${1}" nvm_echo "Deleted alias ${1} - restore it with \`nvm alias \"${1}\" \"$NVM_ALIAS_ORIGINAL\"\`" ;; + "install-latest-npm") + if [ $# -ne 0 ]; then + >&2 nvm --help + return 127 + fi + + nvm_install_latest_npm + ;; "reinstall-packages" | "copy-packages" ) if [ $# -ne 1 ]; then >&2 nvm --help @@ -3290,7 +3381,7 @@ nvm() { nvm_version_path nvm_alias_path nvm_version_dir \ nvm_find_nvmrc nvm_find_up nvm_tree_contains_path \ nvm_version_greater nvm_version_greater_than_or_equal_to \ - nvm_print_npm_version nvm_npm_global_modules \ + nvm_print_npm_version nvm_install_latest_npm nvm_npm_global_modules \ nvm_has_system_node nvm_has_system_iojs \ nvm_download nvm_get_latest nvm_has nvm_install_default_packages nvm_curl_use_compression nvm_curl_version \ nvm_supports_source_options nvm_auto nvm_supports_xz \ diff --git a/test/fast/Unit tests/nvm_install_latest_npm b/test/fast/Unit tests/nvm_install_latest_npm new file mode 100755 index 0000000..ecf9c74 --- /dev/null +++ b/test/fast/Unit tests/nvm_install_latest_npm @@ -0,0 +1,58 @@ +#!/bin/sh + +\. ../../common.sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +nvm deactivate >/dev/null 2>&1 + +CURRENT="$(nvm current)" +[ "$CURRENT" = 'none' ] || [ "$CURRENT" = 'system' ] || die "nvm should be using none or system; got $CURRENT" + +nvm_ls_current() { + echo 'none' +} +node() { + return 1 +} +npm() { + echo '1.2.3' +} + +OUTPUT="$(nvm_install_latest_npm 2>&1 >/dev/null)" +EXIT_CODE="$(nvm_install_latest_npm >/dev/null 2>&1 ; echo $?)" + +EXPECTED="Unable to obtain node version." +[ "${OUTPUT}" = "${EXPECTED}" ] || die "When node is unavailable, expected >${EXPECTED}<; got >${OUTPUT}" + +node() { + echo 'v4.5.6' +} +nvm_ls_current() { + node --version +} +npm() { + return 1 +} +OUTPUT="$(nvm_install_latest_npm 2>&1 >/dev/null)" +EXIT_CODE="$(nvm_install_latest_npm >/dev/null 2>&1 ; echo $?)" + +EXPECTED="Unable to obtain npm version." +[ "${OUTPUT}" = "${EXPECTED}" ] || die "When node is available and npm is unavailable, expected >${EXPECTED}<; got >${OUTPUT}" + +node() { + echo 'v4.5.6' +} +nvm_ls_current() { + echo 'system' +} +npm() { + return 1 +} +OUTPUT="$(nvm_install_latest_npm 2>&1 >/dev/null)" +EXIT_CODE="$(nvm_install_latest_npm >/dev/null 2>&1 ; echo $?)" + +EXPECTED="Unable to obtain npm version." +[ "${OUTPUT}" = "${EXPECTED}" ] || die "When node is system and npm is unavailable, expected >${EXPECTED}<; got >${OUTPUT}" diff --git a/test/installation_node/install latest npm b/test/installation_node/install latest npm new file mode 100755 index 0000000..6527eca --- /dev/null +++ b/test/installation_node/install latest npm @@ -0,0 +1,34 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; exit 1; } + +set +e # todo: fix +\. ../../nvm.sh +set -e + +nvm deactivate >/dev/null 2>&1 || die 'unable to deactivate: 1' +nvm install 4 >/dev/null 2>&1 || die 'install v4 failed' +nvm install-latest-npm || die 'nvm install-latest-npm failed: 1' +NPM_VERSION="$(npm --version)" +nvm_version_greater_than_or_equal_to "${NPM_VERSION}" 5.0.0 || die "node v4.x updates to ${NPM_VERSION}; expected >= v5" + +nvm deactivate >/dev/null 2>&1 || die 'unable to deactivate: 2' +nvm install 1 >/dev/null 2>&1 || die 'install v1 failed' +nvm install-latest-npm || die 'nvm install-latest-npm failed: 2' +NPM_VERSION="$(npm --version)" +[ "${NPM_VERSION}" = '4.6.1' ] || die "io.js v1.x updates to ${NPM_VERSION}; expected v4.6.1" + +nvm deactivate >/dev/null 2>&1 || die 'unable to deactivate: 3' +nvm install 0.8.27 >/dev/null 2>&1 || die 'install v0.8 failed' +nvm install-latest-npm || die 'nvm install-latest-npm failed: 3' +NPM_VERSION="$(npm --version)" +[ "${NPM_VERSION}" = '4.5.0' ] || die "node 0.8.27 updates to ${NPM_VERSION}; expected v4.5.0" + +nvm deactivate >/dev/null 2>&1 || die 'unable to deactivate: 4' +nvm install 0.6.21 >/dev/null 2>&1 || die 'install v0.6 failed' +export NPM_CONFIG_STRICT_SSL=false # npm 1 on travis can't handle SSL to npm +nvm install-latest-npm || die 'nvm install-latest-npm failed: 4' +NPM_VERSION="$(npm --version)" +[ "${NPM_VERSION}" = '1.3.26' ] || die "node 0.6.21 updates to ${NPM_VERSION}; expected v1.3.26" diff --git a/test/installation_node/install with --latest-npm b/test/installation_node/install with --latest-npm new file mode 100755 index 0000000..55ac74b --- /dev/null +++ b/test/installation_node/install with --latest-npm @@ -0,0 +1,12 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; exit 1; } + +set +e # todo: fix +\. ../../nvm.sh +set -e + +NVM_DEBUG=1 nvm install --latest-npm 4.2.2 \ + | grep 'Attempting to upgrade to the latest working version of npm...' || die 'did not call through to nvm_install_latest_npm' From 11370fe823c32d458616c62687c198a43f762f21 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Wed, 14 Jun 2017 10:35:06 +0800 Subject: [PATCH 1012/1426] [Fix] curl should fail if something wrong, fix #1556 --- nvm.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index f4aa8da..fc55276 100644 --- a/nvm.sh +++ b/nvm.sh @@ -110,11 +110,12 @@ nvm_download() { if nvm_curl_use_compression; then CURL_COMPRESSED_FLAG="--compressed" fi - curl "${CURL_COMPRESSED_FLAG:-}" -q "$@" + curl --fail "${CURL_COMPRESSED_FLAG:-}" -q "$@" elif nvm_has "wget"; then # Emulate curl with wget ARGS=$(nvm_echo "$@" | command sed -e 's/--progress-bar /--progress=bar /' \ -e 's/--compressed //' \ + -e 's/--fail //' \ -e 's/-L //' \ -e 's/-I /--server-response /' \ -e 's/-s /-q /' \ From d073bc96c76e26e6143360de2e6d1b914cfedcd8 Mon Sep 17 00:00:00 2001 From: Jiri Spac Date: Thu, 1 Jun 2017 16:46:53 +0200 Subject: [PATCH 1013/1426] [Docs] bump sample version numbers --- nvm.sh | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/nvm.sh b/nvm.sh index fc55276..1323ab1 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2317,11 +2317,12 @@ nvm() { nvm_echo ' nvm cache clear Empty cache directory for nvm' nvm_echo nvm_echo 'Example:' - nvm_echo ' nvm install v0.10.32 Install a specific version number' - nvm_echo ' nvm use 0.10 Use the latest available 0.10.x release' - nvm_echo ' nvm run 0.10.32 app.js Run app.js using node v0.10.32' - nvm_echo ' nvm exec 0.10.32 node app.js Run `node app.js` with the PATH pointing to node v0.10.32' - nvm_echo ' nvm alias default 0.10.32 Set default node version on a shell' + nvm_echo ' nvm install 8.0.0 Install a specific version number' + nvm_echo ' nvm use 8.0 Use the latest available 8.0.x release' + nvm_echo ' nvm run 6.10.3 app.js Run app.js using node 6.10.3' + nvm_echo ' nvm exec 4.8.3 node app.js Run `node app.js` with the PATH pointing to node 4.8.3' + nvm_echo ' nvm alias default 8.1.0 Set default node version on a shell' + nvm_echo ' nvm alias default node Always default to the latest available node version on a shell' nvm_echo nvm_echo 'Note:' nvm_echo ' to remove, delete, or uninstall nvm - just remove the `$NVM_DIR` folder (usually `~/.nvm`)' From b5034bb2b2b4ff4463b269fb5b45c1a2ee8d29a0 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Fri, 23 Jun 2017 14:21:10 +0800 Subject: [PATCH 1014/1426] [bash completion] add missing `install-latest-npm`; remove undocumented `clear-cache` --- bash_completion | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bash_completion b/bash_completion index 7f25f34..fb62dcc 100644 --- a/bash_completion +++ b/bash_completion @@ -25,7 +25,8 @@ __nvm_commands () help install uninstall use run exec alias unalias reinstall-packages current list ls list-remote ls-remote - cache clear-cache deactivate unload + install-latest-npm + cache deactivate unload version version-remote which' if [ ${#COMP_WORDS[@]} == 4 ]; then From 0356839d0579508a20d41dc8fdb8db384972774e Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Tue, 27 Jun 2017 15:04:28 +0800 Subject: [PATCH 1015/1426] [Fix] Adjust $CURL_COMPRESSED_FLAG usage for curl, fix #1562 --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 1323ab1..f0c528f 100644 --- a/nvm.sh +++ b/nvm.sh @@ -90,7 +90,7 @@ nvm_get_latest() { if nvm_curl_use_compression; then CURL_COMPRESSED_FLAG="--compressed" fi - NVM_LATEST_URL="$(curl "${CURL_COMPRESSED_FLAG:-}" -q -w "%{url_effective}\n" -L -s -S http://latest.nvm.sh -o /dev/null)" + NVM_LATEST_URL="$(curl ${CURL_COMPRESSED_FLAG:-} -q -w "%{url_effective}\n" -L -s -S http://latest.nvm.sh -o /dev/null)" elif nvm_has "wget"; then NVM_LATEST_URL="$(wget http://latest.nvm.sh --server-response -O /dev/null 2>&1 | command awk '/^ Location: /{DEST=$2} END{ print DEST }')" else @@ -110,7 +110,7 @@ nvm_download() { if nvm_curl_use_compression; then CURL_COMPRESSED_FLAG="--compressed" fi - curl --fail "${CURL_COMPRESSED_FLAG:-}" -q "$@" + curl --fail ${CURL_COMPRESSED_FLAG:-} -q "$@" elif nvm_has "wget"; then # Emulate curl with wget ARGS=$(nvm_echo "$@" | command sed -e 's/--progress-bar /--progress=bar /' \ From 3ac49e5ef1bce31e2d44cf5ba0f4df76391a7507 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 2 Apr 2017 08:03:32 +0800 Subject: [PATCH 1016/1426] [New] Introduce Docker environment for nvm --- .dockerignore | 17 ++++++++ Dockerfile | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 31 +++++++++++++++ 3 files changed, 153 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..0684680 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,17 @@ +HEAD +.cache +v* +alias + +# For testing +test/bak +.urchin.log +.urchin_stdout +test/**/test_output + +node_modules/ +npm-debug.log + +.DS_Store +current + diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4bb73f7 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,105 @@ +# Dockerized nvm development environment +# +# This Dockerfile is for building nvm development environment only, +# not for any distribution/production usage. +# +# Please note that it'll use about 1.2 GB disk space and about 15 minutes to +# build this image, it depends on your hardware. + +# Use Ubuntu Trusty Tahr as base image as we're using on Travis CI +# I also tested with Ubuntu 16.04, should be good with it! +From ubuntu:14.04 +MAINTAINER Peter Dave Hello + +# Prevent dialog during apt install +ENV DEBIAN_FRONTEND noninteractive + +# Pick a Ubuntu apt mirror site for better speed +# ref: https://launchpad.net/ubuntu/+archivemirrors +ENV UBUNTU_APT_SITE ubuntu.cs.utah.edu + +# Disable src package source +RUN sed -i 's/^deb-src\ /\#deb-src\ /g' /etc/apt/sources.list + +# Replace origin apt pacakge site with the mirror site +RUN sed -E -i "s/([a-z]+.)?archive.ubuntu.com/$UBUNTU_APT_SITE/g" /etc/apt/sources.list +RUN sed -i "s/security.ubuntu.com/$UBUNTU_APT_SITE/g" /etc/apt/sources.list + +# Install apt packages +RUN apt update && \ + apt upgrade -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" && \ + apt install -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" \ + coreutils \ + util-linux \ + bsdutils \ + file \ + openssl \ + ca-certificates \ + ssh \ + wget \ + patch \ + sudo \ + htop \ + dstat \ + vim \ + tmux \ + curl \ + git \ + jq \ + realpath \ + zsh \ + ksh \ + ghc \ + gcc-4.8 \ + g++-4.8 \ + cabal-install \ + build-essential \ + bash-completion && \ + apt-get clean + +# Set locale +RUN locale-gen en_US.UTF-8 + +# Print tool versions +RUN bash --version | head -n 1 +RUN zsh --version +RUN ksh --version || true +RUN dpkg -s dash | grep ^Version | awk '{print $2}' +RUN git --version +RUN curl --version +RUN wget --version +RUN cabal --version + +# Add user "nvm" as non-root user +RUN useradd -ms /bin/bash nvm + +# Set sudoer for "nvm" +RUN echo 'nvm ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers + +# Switch to user "nvm" from now +USER nvm + +# Shellcheck +RUN cabal update +RUN cabal install ShellCheck +RUN ~/.cabal/bin/shellcheck --version +RUN echo 'export PATH="~/.cabal/bin/:${PATH}"' >> $HOME/.bashrc + +# nvm +COPY . /home/nvm/.nvm/ +RUN sudo chown nvm:nvm -R $HOME/.nvm +RUN echo 'export NVM_DIR="$HOME/.nvm"' >> $HOME/.bashrc +RUN echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> $HOME/.bashrc +RUN echo '[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" # This loads nvm bash_completion' >> $HOME/.bashrc + +# nodejs and tools +RUN bash -c 'source $HOME/.nvm/nvm.sh && \ + nvm install node && \ + npm install -g doctoc urchin && \ + npm install --prefix "$HOME/.nvm/"' + +# Set WORKDIR to nvm directory +WORKDIR /home/nvm/.nvm + +ENTRYPOINT /bin/bash + diff --git a/README.md b/README.md index fb3f0d6..926c254 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,7 @@ - [Usage](#usage-1) - [Compatibility Issues](#compatibility-issues) - [Installing nvm on Alpine Linux](#installing-nvm-on-alpine-linux) +- [Docker for development environment](#docker-for-development-environment) - [Problems](#problems) - [Mac OS "troubleshooting"](#mac-os-troubleshooting) @@ -485,6 +486,36 @@ The Node project has some desire but no concrete plans (due to the overheads of As a potential alternative, @mhart (a Node contributor) has some [Docker images for Alpine Linux with Node and optionally, npm, pre-installed](https://github.com/mhart/alpine-node). +## Docker for development environment + +To make the development and testing work easier, we have a Dockerfile for development usage, which is based on Ubuntu 14.04i base image, prepared with essential and useful tools for `nvm` development, to build the docker image of the environment, run the docker command at the root of `nvm` repository: + +```sh +$ docker build -t nvm-dev . +``` + +This will package your current nvm repository with our pre-defiend deveopment environment into a docker image named `nvm-dev`, once it's built with success, validate your image via `docker images`: + +```sh +$ docker images + +REPOSITORY TAG IMAGE ID CREATED SIZE +nvm-dev latest 9ca4c57a97d8 7 days ago 1.22 GB +``` + +If you got no error message, now you can easily involved in: + +```sh +$ docker run -it nvm-dev -h nvm-dev + +nvm@nvm-dev:~/.nvm$ +``` + +Please note that it'll take about 15 minutes to build the image and the image size would be about 1.2GB, so it's not sutable for production usage. + +For more information and documentation about docker, please refer to its official website: + - https://www.docker.com/ + - https://docs.docker.com/ ## Problems From 1e69c4c77d796343ca456cad0554a8dfd8f9a110 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 2 Apr 2017 15:49:01 +0800 Subject: [PATCH 1017/1426] [New] Speedup process to install nvm from git by dropping commit history --- install.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index c022cea..92e027d 100755 --- a/install.sh +++ b/install.sh @@ -84,7 +84,7 @@ install_nvm_from_git() { if [ -d "$INSTALL_DIR/.git" ]; then echo "=> nvm is already installed in $INSTALL_DIR, trying to update using git" command printf "\r=> " - command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" fetch 2> /dev/null || { + command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" fetch origin tag "$(nvm_latest_version)" --depth=1 2> /dev/null || { echo >&2 "Failed to update nvm, run 'git fetch' in $INSTALL_DIR yourself." exit 1 } @@ -103,12 +103,12 @@ install_nvm_from_git() { echo >&2 'Failed to add remote "origin" (or set the URL). Please report this!' exit 2 } - command git --git-dir="${INSTALL_DIR}/.git" fetch origin --tags || { + command git --git-dir="${INSTALL_DIR}/.git" fetch origin tag "$(nvm_latest_version)" --depth=1 || { echo >&2 'Failed to fetch origin with tags. Please report this!' exit 2 } else - command git clone "$(nvm_source)" "${INSTALL_DIR}" || { + command git clone "$(nvm_source)" -b "$(nvm_latest_version)" --depth=1 "${INSTALL_DIR}" || { echo >&2 'Failed to clone nvm repo. Please report this!' exit 2 } From f37ddea78f9fe4d2f194c5bf2b51b19eb874ce86 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sat, 8 Jul 2017 18:50:06 +0800 Subject: [PATCH 1018/1426] [Docs] Fix typos in Docker instructions --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 926c254..5033de6 100644 --- a/README.md +++ b/README.md @@ -488,13 +488,13 @@ As a potential alternative, @mhart (a Node contributor) has some [Docker images ## Docker for development environment -To make the development and testing work easier, we have a Dockerfile for development usage, which is based on Ubuntu 14.04i base image, prepared with essential and useful tools for `nvm` development, to build the docker image of the environment, run the docker command at the root of `nvm` repository: +To make the development and testing work easier, we have a Dockerfile for development usage, which is based on Ubuntu 14.04 base image, prepared with essential and useful tools for `nvm` development, to build the docker image of the environment, run the docker command at the root of `nvm` repository: ```sh $ docker build -t nvm-dev . ``` -This will package your current nvm repository with our pre-defiend deveopment environment into a docker image named `nvm-dev`, once it's built with success, validate your image via `docker images`: +This will package your current nvm repository with our pre-defiend development environment into a docker image named `nvm-dev`, once it's built with success, validate your image via `docker images`: ```sh $ docker images @@ -503,7 +503,7 @@ REPOSITORY TAG IMAGE ID CREATED S nvm-dev latest 9ca4c57a97d8 7 days ago 1.22 GB ``` -If you got no error message, now you can easily involved in: +If you got no error message, now you can easily involve in: ```sh $ docker run -it nvm-dev -h nvm-dev From 6921adb2f4385620cdcad86aa9b6afa0d5e098da Mon Sep 17 00:00:00 2001 From: Mike Ferrari Date: Mon, 26 Jun 2017 12:22:34 -0700 Subject: [PATCH 1019/1426] [Docs] add note about Linux troubleshooting --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5033de6..1b1aefc 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,14 @@ Eg: `curl ... | NVM_DIR=/usr/local/nvm bash` for a global install. *NB. The installer can use `git`, `curl`, or `wget` to download `nvm`, whatever is available.* -**Note:** On OS X, if you get `nvm: command not found` after running the install script, one of the following might be the reason:- +**Note:** On Linux, after running the install script, if you get `nvm: command not found` or see no feedback from your terminal after you type: + +```sh +command -v nvm +``` +simply close your current terminal, open a new terminal, and try verifying again. + +**Note:** On OS X, if you get `nvm: command not found` after running the install script, one of the following might be the reason:- - your system may not have a [`.bash_profile file`] where the command is set up. Simply create one with `touch ~/.bash_profile` and run the install script again - you might need to restart your terminal instance. Try opening a new tab/window in your terminal and retry. From b3bdbb27124fa3487095f2b3c17ff932ff80b092 Mon Sep 17 00:00:00 2001 From: GeekBlogTV Date: Sat, 8 Jul 2017 01:31:13 -0500 Subject: [PATCH 1020/1426] [Docs] updated to reflect current script output --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1b1aefc..6194fc7 100644 --- a/README.md +++ b/README.md @@ -135,7 +135,8 @@ Now add these lines to your `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to hav ```sh export NVM_DIR="$HOME/.nvm" -[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm +[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm +[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion ``` ### Manual Install From 38a568c9c9b7f1893e1fc312cb6c21f19b7cbfe6 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Tue, 11 Jul 2017 09:19:02 +0800 Subject: [PATCH 1021/1426] [New] Add `--auto` to git gc to speed up install & upgrade --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 92e027d..57fe6c5 100755 --- a/install.sh +++ b/install.sh @@ -125,7 +125,7 @@ install_nvm_from_git() { fi echo "=> Compressing and cleaning up git repository" - if ! command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" gc --aggressive --prune=now ; then + if ! command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" gc --auto --aggressive --prune=now ; then echo >&2 "Your version of git is out of date. Please update it!" fi return From ab591b07ef2bc921c2744f6fddf631061f279f58 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 13 Jul 2017 06:15:00 +0800 Subject: [PATCH 1022/1426] [New] Print $TERM_PROGRAM in nvm debug if it exists --- nvm.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nvm.sh b/nvm.sh index f0c528f..5500da3 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2357,6 +2357,9 @@ nvm() { setopt shwordsplit fi nvm_err "nvm --version: v$(nvm --version)" + if [ -n "${TERM_PROGRAM-}" ]; then + nvm_err "\$TERM_PROGRAM: $TERM_PROGRAM" + fi nvm_err "\$SHELL: $SHELL" nvm_err "\$HOME: $HOME" nvm_err "\$NVM_DIR: '$(nvm_sanitize_path "$NVM_DIR")'" From 248706d5f854550fb0c0bdf657ede80b95ad6d29 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Fri, 14 Jul 2017 00:37:58 +0800 Subject: [PATCH 1023/1426] [New] Clean up git reflog history before git gc --- install.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/install.sh b/install.sh index 57fe6c5..04094e2 100755 --- a/install.sh +++ b/install.sh @@ -125,6 +125,9 @@ install_nvm_from_git() { fi echo "=> Compressing and cleaning up git repository" + if ! command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" reflog expire --expire=now --all; then + echo >&2 "Your version of git is out of date. Please update it!" + fi if ! command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" gc --auto --aggressive --prune=now ; then echo >&2 "Your version of git is out of date. Please update it!" fi From 389a53cca9a4d1fdbc88199e8e9e130c11162c36 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 8 Aug 2017 00:05:38 -0700 Subject: [PATCH 1024/1426] =?UTF-8?q?[Fix]=20`set=20-u`:=20`nvm=20use`:=20?= =?UTF-8?q?ensure=20these=20two=20vars=20don=E2=80=99t=20error=20out.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #1587. --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 5500da3..11e774f 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2807,9 +2807,9 @@ nvm() { if [ -n "${NVM_LTS-}" ]; then VERSION="$(nvm_match_version "lts/${NVM_LTS:-*}")" - elif [ -z "$PROVIDED_VERSION" ]; then + elif [ -z "${PROVIDED_VERSION-}" ]; then nvm_rc_version - if [ -n "$NVM_RC_VERSION" ]; then + if [ -n "${NVM_RC_VERSION-}" ]; then PROVIDED_VERSION="$NVM_RC_VERSION" VERSION="$(nvm_version "$PROVIDED_VERSION")" fi From 3e1b4591bd4956bea5aee44fa82aa382d3ac4149 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 8 Aug 2017 10:11:41 -0700 Subject: [PATCH 1025/1426] [New] `install.sh`: install bash_completion via script method. Fixes #1588. --- install.sh | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 04094e2..b1e5fa5 100755 --- a/install.sh +++ b/install.sh @@ -40,6 +40,8 @@ nvm_source() { NVM_SOURCE_URL="$NVM_SOURCE" if [ "_$NVM_METHOD" = "_script-nvm-exec" ]; then NVM_SOURCE_URL="https://raw.githubusercontent.com/creationix/nvm/$(nvm_latest_version)/nvm-exec" + elif [ "_$NVM_METHOD" = "_script-nvm-bash-completion" ]; then + NVM_SOURCE_URL="https://raw.githubusercontent.com/creationix/nvm/$(nvm_latest_version)/bash_completion" elif [ -z "$NVM_SOURCE_URL" ]; then if [ "_$NVM_METHOD" = "_script" ]; then NVM_SOURCE_URL="https://raw.githubusercontent.com/creationix/nvm/$(nvm_latest_version)/nvm.sh" @@ -161,9 +163,11 @@ install_nvm_as_script() { local INSTALL_DIR INSTALL_DIR="$(nvm_install_dir)" local NVM_SOURCE_LOCAL - NVM_SOURCE_LOCAL=$(nvm_source script) + NVM_SOURCE_LOCAL="$(nvm_source script)" local NVM_EXEC_SOURCE - NVM_EXEC_SOURCE=$(nvm_source script-nvm-exec) + NVM_EXEC_SOURCE="$(nvm_source script-nvm-exec)" + local NVM_BASH_COMPLETION_SOURCE + NVM_BASH_COMPLETION_SOURCE="$(nvm_source script-nvm-bash-completion)" # Downloading to $INSTALL_DIR mkdir -p "$INSTALL_DIR" @@ -180,6 +184,10 @@ install_nvm_as_script() { echo >&2 "Failed to download '$NVM_EXEC_SOURCE'" return 2 } & + nvm_download -s "$NVM_BASH_COMPLETION_SOURCE" -o "$INSTALL_DIR/bash_completion" || { + echo >&2 "Failed to download '$NVM_BASH_COMPLETION_SOURCE'" + return 2 + } & for job in $(jobs -p | sort) do wait "$job" || return $? From cf5272e1a024400de0539c5d0d89d56b4963642c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 8 Aug 2017 20:53:51 -0700 Subject: [PATCH 1026/1426] [Fix] `set -u`: `nvm install`: fix unbound vars Fixes #1587. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 11e774f..ccd6bc1 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2535,7 +2535,7 @@ nvm() { shift done - if [ -z "$SKIP_DEFAULT_PACKAGES" ] && [ -f "${NVM_DIR}/default-packages" ]; then + if [ -z "${SKIP_DEFAULT_PACKAGES-}" ] && [ -f "${NVM_DIR}/default-packages" ]; then DEFAULT_PACKAGES="" # Read lines from $NVM_DIR/default-packages From b3e25b15f999fd70ab1d034b33114f06d23be906 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 2 Sep 2017 14:04:37 -0700 Subject: [PATCH 1027/1426] `nvm_install_latest_npm`: npm v5.4+ breaks on node v4-4.4 and v5-5.9, due to missing `Buffer.alloc`. --- nvm.sh | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index ccd6bc1..ec57525 100644 --- a/nvm.sh +++ b/nvm.sh @@ -206,8 +206,16 @@ nvm_install_latest_npm() { nvm_echo '* `npm` v5 and higher do not work on `node` versions below v4.0.0' $NVM_NPM_CMD install -g npm@4 elif [ $NVM_IS_0_9 -eq 0 ] && [ $NVM_IS_0_6 -eq 0 ]; then - nvm_echo '* Installing latest `npm`; if this does not work on your node version, please report a bug!' - $NVM_NPM_CMD install -g npm + if nvm_version_greater 4.5.0 "${NODE_VERSION}" || (\ + nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 5.0.0 \ + && nvm_version_greater 5.10.0 "${NODE_VERSION}"\ + ); then + nvm_echo '* `npm` `v5.3.x` is the last version that works on `node` 4.x versions below v4.4, or 5.x versions below v5.10, due to `Buffer.alloc`' + $NVM_NPM_CMD install -g npm@5.3 + 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 + fi fi nvm_echo "* npm upgraded to: v$(npm --version 2>/dev/null)" } From 6f19babbffce56435ae8bebd604cc5594f05f745 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 3 Sep 2017 12:46:59 -0700 Subject: [PATCH 1028/1426] v0.33.3 --- README.md | 14 +++++++------- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 6194fc7..fffc009 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Node Version Manager [![Build Status](https://travis-ci.org/creationix/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.33.2-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://travis-ci.org/creationix/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.33.3-yellow.svg)][4] [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/684/badge)](https://bestpractices.coreinfrastructure.org/projects/684) @@ -41,13 +41,13 @@ To install or update nvm, you can use the [install script][2] using cURL: ```sh -curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.3/install.sh | bash ``` or Wget: ```sh -wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash +wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.3/install.sh | bash ``` The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). @@ -127,7 +127,7 @@ If you have `git` installed (requires git v1.7+): 1. clone this repo in the root of your user profile - `cd ~/` from anywhere then `git clone https://github.com/creationix/nvm.git .nvm` -1. check out the latest version with `git checkout v0.33.2` +1. check out the latest version with `git checkout v0.33.3` 1. activate nvm by sourcing it from your shell Now add these lines to your `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it automatically sourced upon login: @@ -487,7 +487,7 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh ```sh apk add -U curl bash ca-certificates openssl ncurses coreutils python2 make gcc g++ libgcc linux-headers -curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.3/install.sh | bash ``` The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. @@ -554,8 +554,8 @@ sudo chmod ugo-x /usr/libexec/path_helper More on this issue in [dotphiles/dotzsh](https://github.com/dotphiles/dotzsh#mac-os-x). [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.33.2/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.33.3/install.sh [3]: https://travis-ci.org/creationix/nvm -[4]: https://github.com/creationix/nvm/releases/tag/v0.33.2 +[4]: https://github.com/creationix/nvm/releases/tag/v0.33.3 [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index b1e5fa5..131ef24 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ nvm_install_dir() { } nvm_latest_version() { - echo "v0.33.2" + echo "v0.33.3" } nvm_profile_is_bash_or_zsh() { diff --git a/nvm.sh b/nvm.sh index ec57525..d0c09a3 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3368,7 +3368,7 @@ nvm() { NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; "--version" ) - nvm_echo '0.33.2' + nvm_echo '0.33.3' ;; "unload" ) nvm deactivate >/dev/null 2>&1 diff --git a/package.json b/package.json index 69a8989..f9c0909 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.33.2", + "version": "0.33.3", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From e3d1519567fd5da88a66a5d131ebf6e884d87a81 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 4 Sep 2017 22:01:46 -0700 Subject: [PATCH 1029/1426] [Fix] `install-latest-npm`: `io.js` `v1.0.0` has weird behavior with npm v4.6.x. --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index d0c09a3..7c3c596 100644 --- a/nvm.sh +++ b/nvm.sh @@ -199,8 +199,8 @@ nvm_install_latest_npm() { if [ $NVM_IS_0_9 -eq 1 ] || [ $NVM_IS_0_6 -eq 1 ]; then nvm_echo '* node v0.6 and v0.9 are unable to upgrade further' - elif nvm_version_greater 1.0.0 "${NODE_VERSION}"; then - nvm_echo '* `npm` v4.5.x is the last version that works on `node` versions below v1.0.0' + elif nvm_version_greater_than_or_equal_to 1.0.0 "${NODE_VERSION}"; then + nvm_echo '* `npm` v4.5.x is the last version that works on `node` versions <= v1.0.0' $NVM_NPM_CMD install -g npm@4.5 elif nvm_version_greater 4.0.0 "${NODE_VERSION}"; then nvm_echo '* `npm` v5 and higher do not work on `node` versions below v4.0.0' From d91b6197f3f60e1e7a332acf69a9b90e83120f06 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 4 Sep 2017 22:59:50 -0700 Subject: [PATCH 1030/1426] v0.33.4 --- README.md | 14 +++++++------- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index fffc009..6173ad2 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Node Version Manager [![Build Status](https://travis-ci.org/creationix/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.33.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://travis-ci.org/creationix/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.33.4-yellow.svg)][4] [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/684/badge)](https://bestpractices.coreinfrastructure.org/projects/684) @@ -41,13 +41,13 @@ To install or update nvm, you can use the [install script][2] using cURL: ```sh -curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.3/install.sh | bash +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.4/install.sh | bash ``` or Wget: ```sh -wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.3/install.sh | bash +wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.4/install.sh | bash ``` The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). @@ -127,7 +127,7 @@ If you have `git` installed (requires git v1.7+): 1. clone this repo in the root of your user profile - `cd ~/` from anywhere then `git clone https://github.com/creationix/nvm.git .nvm` -1. check out the latest version with `git checkout v0.33.3` +1. check out the latest version with `git checkout v0.33.4` 1. activate nvm by sourcing it from your shell Now add these lines to your `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it automatically sourced upon login: @@ -487,7 +487,7 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh ```sh apk add -U curl bash ca-certificates openssl ncurses coreutils python2 make gcc g++ libgcc linux-headers -curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.3/install.sh | bash +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.4/install.sh | bash ``` The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. @@ -554,8 +554,8 @@ sudo chmod ugo-x /usr/libexec/path_helper More on this issue in [dotphiles/dotzsh](https://github.com/dotphiles/dotzsh#mac-os-x). [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.33.3/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.33.4/install.sh [3]: https://travis-ci.org/creationix/nvm -[4]: https://github.com/creationix/nvm/releases/tag/v0.33.3 +[4]: https://github.com/creationix/nvm/releases/tag/v0.33.4 [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index 131ef24..4809958 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ nvm_install_dir() { } nvm_latest_version() { - echo "v0.33.3" + echo "v0.33.4" } nvm_profile_is_bash_or_zsh() { diff --git a/nvm.sh b/nvm.sh index 7c3c596..e6606d6 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3368,7 +3368,7 @@ nvm() { NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; "--version" ) - nvm_echo '0.33.3' + nvm_echo '0.33.4' ;; "unload" ) nvm deactivate >/dev/null 2>&1 diff --git a/package.json b/package.json index f9c0909..3aa56d0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.33.3", + "version": "0.33.4", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From c0b56d03a1feb0b8e31ea3e2503f321cbc24f72d Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 7 Sep 2017 15:57:09 -0700 Subject: [PATCH 1031/1426] [Fix] `install-latest-npm`: `io.js` `v1.0.x` has weird behavior with npm v4.6.x. - comment out node 0.6 test due to travis-ci breakage --- nvm.sh | 4 ++-- test/installation_node/install latest npm | 25 +++++++++++++++-------- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/nvm.sh b/nvm.sh index e6606d6..cfdc80a 100644 --- a/nvm.sh +++ b/nvm.sh @@ -199,8 +199,8 @@ nvm_install_latest_npm() { if [ $NVM_IS_0_9 -eq 1 ] || [ $NVM_IS_0_6 -eq 1 ]; then nvm_echo '* node v0.6 and v0.9 are unable to upgrade further' - elif nvm_version_greater_than_or_equal_to 1.0.0 "${NODE_VERSION}"; then - nvm_echo '* `npm` v4.5.x is the last version that works on `node` versions <= v1.0.0' + elif nvm_version_greater 1.1.0 "${NODE_VERSION}"; then + nvm_echo '* `npm` v4.5.x is the last version that works on `node` versions < v1.1.0' $NVM_NPM_CMD install -g npm@4.5 elif nvm_version_greater 4.0.0 "${NODE_VERSION}"; then nvm_echo '* `npm` v5 and higher do not work on `node` versions below v4.0.0' diff --git a/test/installation_node/install latest npm b/test/installation_node/install latest npm index 6527eca..bb7e57f 100755 --- a/test/installation_node/install latest npm +++ b/test/installation_node/install latest npm @@ -15,20 +15,27 @@ NPM_VERSION="$(npm --version)" nvm_version_greater_than_or_equal_to "${NPM_VERSION}" 5.0.0 || die "node v4.x updates to ${NPM_VERSION}; expected >= v5" nvm deactivate >/dev/null 2>&1 || die 'unable to deactivate: 2' -nvm install 1 >/dev/null 2>&1 || die 'install v1 failed' +nvm install 1.0 >/dev/null 2>&1 || die 'install v1.0 failed' nvm install-latest-npm || die 'nvm install-latest-npm failed: 2' NPM_VERSION="$(npm --version)" +[ "${NPM_VERSION}" = '4.5.0' ] || die "io.js v1.0.x updates to ${NPM_VERSION}; expected v4.5.0" + +nvm deactivate >/dev/null 2>&1 || die 'unable to deactivate: 3' +nvm install 1 >/dev/null 2>&1 || die 'install v1 failed' +nvm install-latest-npm || die 'nvm install-latest-npm failed: 3' +NPM_VERSION="$(npm --version)" [ "${NPM_VERSION}" = '4.6.1' ] || die "io.js v1.x updates to ${NPM_VERSION}; expected v4.6.1" -nvm deactivate >/dev/null 2>&1 || die 'unable to deactivate: 3' +nvm deactivate >/dev/null 2>&1 || die 'unable to deactivate: 4' nvm install 0.8.27 >/dev/null 2>&1 || die 'install v0.8 failed' -nvm install-latest-npm || die 'nvm install-latest-npm failed: 3' +nvm install-latest-npm || die 'nvm install-latest-npm failed: 4' NPM_VERSION="$(npm --version)" [ "${NPM_VERSION}" = '4.5.0' ] || die "node 0.8.27 updates to ${NPM_VERSION}; expected v4.5.0" -nvm deactivate >/dev/null 2>&1 || die 'unable to deactivate: 4' -nvm install 0.6.21 >/dev/null 2>&1 || die 'install v0.6 failed' -export NPM_CONFIG_STRICT_SSL=false # npm 1 on travis can't handle SSL to npm -nvm install-latest-npm || die 'nvm install-latest-npm failed: 4' -NPM_VERSION="$(npm --version)" -[ "${NPM_VERSION}" = '1.3.26' ] || die "node 0.6.21 updates to ${NPM_VERSION}; expected v1.3.26" +## Commented to work around travis-ci breaking 0,6 installs +# nvm deactivate >/dev/null 2>&1 || die 'unable to deactivate: 5' +# nvm install 0.6.21 >/dev/null 2>&1 || die 'install v0.6 failed' +# export NPM_CONFIG_STRICT_SSL=false # npm 1 on travis can't handle SSL to npm +# nvm install-latest-npm || die 'nvm install-latest-npm failed: 5' +# NPM_VERSION="$(npm --version)" +# [ "${NPM_VERSION}" = '1.3.26' ] || die "node 0.6.21 updates to ${NPM_VERSION}; expected v1.3.26" From 44ab611421bd43e5d6a1be0d05196edfc6ebd932 Mon Sep 17 00:00:00 2001 From: Xandor Schiefer Date: Thu, 7 Sep 2017 16:52:05 +0200 Subject: [PATCH 1032/1426] [Fix] unset `NVM_RC_VERSION` when unloading --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index cfdc80a..149f784 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3408,7 +3408,7 @@ nvm() { node_version_has_solaris_binary iojs_version_has_solaris_binary \ nvm_curl_libz_support nvm_command_info \ > /dev/null 2>&1 - unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_IOJS_ORG_MIRROR NVM_DIR \ + unset NVM_RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_IOJS_ORG_MIRROR NVM_DIR \ NVM_CD_FLAGS NVM_BIN NVM_MAKE_JOBS \ > /dev/null 2>&1 ;; From 7753b249485f101d8119acc96fdf67a1f4737659 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 7 Sep 2017 18:00:08 +0800 Subject: [PATCH 1033/1426] [Docs] Update README.md for Alpine linux reference Add 4 packages as Alpine Linux wiki suggested: (grep util-linux binutils findutils) https://wiki.alpinelinux.org/wiki/How_to_get_regular_stuff_working --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6173ad2..637e104 100644 --- a/README.md +++ b/README.md @@ -486,7 +486,7 @@ There is a `-s` flag for `nvm install` which requests nvm download Node source a If installing nvm on Alpine Linux *is* still what you want or need to do, you should be able to achieve this by running the following from you Alpine Linux shell: ```sh -apk add -U curl bash ca-certificates openssl ncurses coreutils python2 make gcc g++ libgcc linux-headers +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/creationix/nvm/v0.33.4/install.sh | bash ``` From 7b8af94fc93bc51eaa111e58631dd6ee325cdc33 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 8 Sep 2017 01:32:54 -0700 Subject: [PATCH 1034/1426] [Tests] retry io.js test runs, since iojs.org is flaky. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 4e83031..7bca083 100644 --- a/.travis.yml +++ b/.travis.yml @@ -31,7 +31,7 @@ script: - if [ -n "${DOCTOCCHECK-}" ]; then cp README.md README.md.orig && npm run doctoc && diff -q README.md README.md.orig ; fi - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash nvm.sh && shellcheck -s sh nvm.sh && shellcheck -s dash nvm.sh && shellcheck -s ksh nvm.sh ; fi - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash install.sh bash_completion nvm-exec ; fi - - if [ -n "${SHELL-}" ] && [ -n "${TEST_SUITE}" ]; then make TEST_SUITE=$TEST_SUITE URCHIN="$(npm bin)/urchin" test-$SHELL ; fi + - if [ -n "${SHELL-}" ] && [ -n "${TEST_SUITE}" ]; then if [ "${TEST_SUITE}" = 'installation_iojs' ]; then travis_retry make TEST_SUITE=$TEST_SUITE URCHIN="$(npm bin)/urchin" test-$SHELL ; else make TEST_SUITE=$TEST_SUITE URCHIN="$(npm bin)/urchin" test-$SHELL; fi; fi before_cache: - if [ -n "$WITHOUT_CURL" ]; then sudo apt-get install curl -y ; fi env: From 334897ae3968029c414b394b17848765e275fbd8 Mon Sep 17 00:00:00 2001 From: Xandor Schiefer Date: Mon, 14 Nov 2016 19:19:39 +0200 Subject: [PATCH 1035/1426] Preserve PATH locations order when changing versions --- nvm.sh | 30 +++++++------ ...ould unset the nvm environment variables." | 10 ++--- test/fast/Unit tests/nvm_change_path | 43 +++++++++++++++++++ test/fast/Unit tests/nvm_prepend_path | 18 -------- 4 files changed, 66 insertions(+), 35 deletions(-) create mode 100755 test/fast/Unit tests/nvm_change_path delete mode 100755 test/fast/Unit tests/nvm_prepend_path diff --git a/nvm.sh b/nvm.sh index 149f784..c4825c2 100644 --- a/nvm.sh +++ b/nvm.sh @@ -601,11 +601,21 @@ nvm_strip_path() { -e "s#${NVM_DIR}/versions/[^/]*/[^/]*${2-}[^:]*##g" } -nvm_prepend_path() { +nvm_change_path() { + # if there’s no initial path, just return the supplementary path if [ -z "${1-}" ]; then - nvm_echo "${2-}" + nvm_echo "${3-}${2-}" + # if the initial path doesn’t contain an nvm path, prepend the supplementary + # path + elif ! echo "${1-}" | grep -q "${NVM_DIR}/[^/]*${2-}" && \ + ! echo "${1-}" | grep -q "${NVM_DIR}/versions/[^/]*/[^/]*${2-}"; then + nvm_echo "${3-}${2-}:${1-}" + # use sed to replace the existing nvm path with the supplementary path. This + # preserves the order of the path. else - nvm_echo "${2-}:${1-}" + nvm_echo "${1-}" | command sed \ + -e "s#${NVM_DIR}/[^/]*${2-}[^:]*#${3-}${2-}#g" \ + -e "s#${NVM_DIR}/versions/[^/]*/[^/]*${2-}[^:]*#${3-}${2-}#g" fi } @@ -2866,19 +2876,15 @@ nvm() { local NVM_VERSION_DIR NVM_VERSION_DIR="$(nvm_version_path "$VERSION")" - # Strip other version from PATH - PATH="$(nvm_strip_path "$PATH" "/bin")" - # Prepend current version - PATH="$(nvm_prepend_path "$PATH" "$NVM_VERSION_DIR/bin")" + # Change current version + PATH="$(nvm_change_path "$PATH" "/bin" "$NVM_VERSION_DIR")" if nvm_has manpath; then if [ -z "${MANPATH-}" ]; then local MANPATH MANPATH=$(manpath) fi - # Strip other version from MANPATH - MANPATH="$(nvm_strip_path "$MANPATH" "/share/man")" - # Prepend current version - MANPATH="$(nvm_prepend_path "$MANPATH" "$NVM_VERSION_DIR/share/man")" + # Change current version + MANPATH="$(nvm_change_path "$MANPATH" "/share/man" "$NVM_VERSION_DIR")" export MANPATH fi export PATH @@ -3387,7 +3393,7 @@ nvm() { nvm_ensure_default_set nvm_get_arch nvm_get_os \ nvm_print_implicit_alias nvm_validate_implicit_alias \ nvm_resolve_alias nvm_ls_current nvm_alias \ - nvm_binary_available nvm_prepend_path nvm_strip_path \ + nvm_binary_available nvm_change_path nvm_strip_path \ nvm_num_version_groups nvm_format_version nvm_ensure_version_prefix \ nvm_normalize_version nvm_is_valid_version \ nvm_ensure_version_installed nvm_cache_dir \ diff --git "a/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." "b/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." index 4c20a19..568f000 100755 --- "a/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." +++ "b/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." @@ -6,17 +6,17 @@ mkdir -p ../../v0.2.3 die () { echo "$@" ; exit 1; } -[ `expr $PATH : ".*v0.2.3/.*/bin"` = 0 ] || echo "WARNING: Unexpectedly found v0.2.3 already active" >&2 +[ `expr $PATH : ".*v0.2.3/.*/bin.*"` = 0 ] || echo "WARNING: Unexpectedly found v0.2.3 already active" >&2 \. ../../nvm.sh nvm use --delete-prefix v0.2.3 || die "Failed to activate v0.2.3" -[ `expr "$PATH" : ".*v0.2.3/.*/bin"` != 0 ] || die "PATH not set up properly" -[ `expr "$NODE_PATH" : ".*v0.2.3/.*/lib/node_modules"` = 0 ] || die "NODE_PATH should not contain (npm root -g)" +[ `expr "$PATH" : ".*v0.2.3/.*/bin.*"` != 0 ] || die "PATH not set up properly" +[ `expr "$NODE_PATH" : ".*v0.2.3/.*/lib/node_modules.*"` = 0 ] || die "NODE_PATH should not contain (npm root -g)" # ^ note: NODE_PATH should not contain `npm root -g` since globals should not be requireable [ `expr "$NVM_BIN" : ".*v0.2.3/bin"` != 0 ] || die "NODE_BIN should contain bin directory path" nvm deactivate || die "Failed to deactivate v0.2.3" -[ `expr "$PATH" : ".*v0.2.3/.*/bin"` = 0 ] || die "PATH not cleaned properly" -[ `expr "$NODE_PATH" : ".*v0.2.3/.*/lib/node_modules"` = 0 ] || die "NODE_PATH not cleaned properly" +[ `expr "$PATH" : ".*v0.2.3/.*/bin.*"` = 0 ] || die "PATH not cleaned properly" +[ `expr "$NODE_PATH" : ".*v0.2.3/.*/lib/node_modules.*"` = 0 ] || die "NODE_PATH not cleaned properly" [ "_$NVM_BIN" = "_" ] || die "NVM_BIN should be unset: got '$NVM_BIN'" diff --git a/test/fast/Unit tests/nvm_change_path b/test/fast/Unit tests/nvm_change_path new file mode 100755 index 0000000..621729f --- /dev/null +++ b/test/fast/Unit tests/nvm_change_path @@ -0,0 +1,43 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +TEST_PATH=/usr/bin:/usr/local/bin + +# New version dir +NEW_PATH=`nvm_change_path "$TEST_PATH" "/bin" "$NVM_DIR/versions/node/v7.1.0"` + +[ "$NEW_PATH" = "$NVM_DIR/versions/node/v7.1.0/bin:/usr/bin:/usr/local/bin" ] || die "Not correctly changed: $NEW_PATH " + +# Old version dir +NEW_PATH=`nvm_change_path "$TEST_PATH" "/bin" "$NVM_DIR/v0.1.2"` + +[ "$NEW_PATH" = "$NVM_DIR/v0.1.2/bin:/usr/bin:/usr/local/bin" ] || die "Not correctly changed: $NEW_PATH " + + +TEST_PATH=/home/user/code/test/node_modules/.bin:$NVM_DIR/versions/node/v4.5.0/bin:/usr/bin:/usr/local/bin + +# New version dir +NEW_PATH=`nvm_change_path "$TEST_PATH" "/bin" "$NVM_DIR/versions/node/v7.1.0"` + +[ "$NEW_PATH" = "/home/user/code/test/node_modules/.bin:$NVM_DIR/versions/node/v7.1.0/bin:/usr/bin:/usr/local/bin" ] || die "Not correctly changed: $NEW_PATH " + +# Old version dir +NEW_PATH=`nvm_change_path "$TEST_PATH" "/bin" "$NVM_DIR/v0.1.2"` + +[ "$NEW_PATH" = "/home/user/code/test/node_modules/.bin:$NVM_DIR/v0.1.2/bin:/usr/bin:/usr/local/bin" ] || die "Not correctly changed: $NEW_PATH " + + +EMPTY_PATH= + +# New version dir +NEW_PATH=`nvm_change_path "$EMPTY_PATH" "/bin" "$NVM_DIR/versions/node/v7.1.0"` + +[ "$NEW_PATH" = "$NVM_DIR/versions/node/v7.1.0/bin" ] || die "Not correctly prepended: $NEW_PATH " + +# Old version dir +NEW_PATH=`nvm_change_path "$EMPTY_PATH" "/bin" "$NVM_DIR/v0.1.2"` + +[ "$NEW_PATH" = "$NVM_DIR/v0.1.2/bin" ] || die "Not correctly prepended: $NEW_PATH " diff --git a/test/fast/Unit tests/nvm_prepend_path b/test/fast/Unit tests/nvm_prepend_path deleted file mode 100755 index 37df3f9..0000000 --- a/test/fast/Unit tests/nvm_prepend_path +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh - -die () { echo "$@" ; exit 1; } - -\. ../../../nvm.sh - -TEST_PATH=/usr/bin:/usr/local/bin - -NEW_PATH=`nvm_prepend_path "$TEST_PATH" "$NVM_DIR/v0.2.5/bin"` - -[ "$NEW_PATH" = "$NVM_DIR/v0.2.5/bin:/usr/bin:/usr/local/bin" ] || die "Not correctly prepended: $NEW_PATH " - - -EMPTY_PATH= - -NEW_PATH=`nvm_prepend_path "$EMPTY_PATH" "$NVM_DIR/v0.2.5/bin"` - -[ "$NEW_PATH" = "$NVM_DIR/v0.2.5/bin" ] || die "Not correctly prepended: $NEW_PATH " From d535c97d0f01b2fd2586f2131cb95a4d929db137 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 21 Sep 2017 22:09:02 +0800 Subject: [PATCH 1036/1426] Enhance nvm debug with more tools info --- nvm.sh | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/nvm.sh b/nvm.sh index c4825c2..a150727 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2402,11 +2402,15 @@ nvm() { else nvm_err "wget: not found" fi - if nvm_has "git"; then - nvm_err "git: $(nvm_command_info git), $(command git --version)" - else - nvm_err "git: not found" - fi + + for tool in git grep awk sed cut basename rm mkdir xargs; do + if nvm_has "${tool}"; then + nvm_err "${tool}: $(nvm_command_info ${tool}), $(command ${tool} --version | command head -n 1)" + else + nvm_err "${tool}: not found" + fi + done + local NVM_DEBUG_OUTPUT for NVM_DEBUG_COMMAND in 'nvm current' 'which node' 'which iojs' 'which npm' 'npm config get prefix' 'npm root -g' do From 8c578b864d719832e1344e5d58c7c2f3b89e44a9 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 22 Sep 2017 19:11:43 -0700 Subject: [PATCH 1037/1426] [Fix] ensure all `grep` calls go through `nvm_grep`. Fixes #1615. --- nvm.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/nvm.sh b/nvm.sh index a150727..c4ea6e9 100644 --- a/nvm.sh +++ b/nvm.sh @@ -53,13 +53,13 @@ nvm_command_info() { local COMMAND local INFO COMMAND="${1}" - if type "${COMMAND}" | command grep -q hashed; then + if type "${COMMAND}" | nvm_grep -q hashed; then INFO="$(type "${COMMAND}" | command sed -E 's/\(|)//g' | command awk '{print $4}')" - elif type "${COMMAND}" | command grep -q aliased; then + elif type "${COMMAND}" | nvm_grep -q aliased; then INFO="$(which "${COMMAND}") ($(type "${COMMAND}" | command awk '{ $1=$2=$3=$4="" ;print }' | command sed -e 's/^\ *//g' -Ee "s/\`|'//g" ))" - elif type "${COMMAND}" | command grep -q "^${COMMAND} is an alias for"; then + elif type "${COMMAND}" | nvm_grep -q "^${COMMAND} is an alias for"; then INFO="$(which "${COMMAND}") ($(type "${COMMAND}" | command awk '{ $1=$2=$3=$4=$5="" ;print }' | command sed 's/^\ *//g'))" - elif type "${COMMAND}" | command grep -q "^${COMMAND} is \/"; then + elif type "${COMMAND}" | nvm_grep -q "^${COMMAND} is \/"; then INFO="$(type "${COMMAND}" | command awk '{print $3}')" else INFO="$(type "${COMMAND}")" @@ -607,8 +607,8 @@ nvm_change_path() { nvm_echo "${3-}${2-}" # if the initial path doesn’t contain an nvm path, prepend the supplementary # path - elif ! echo "${1-}" | grep -q "${NVM_DIR}/[^/]*${2-}" && \ - ! echo "${1-}" | grep -q "${NVM_DIR}/versions/[^/]*/[^/]*${2-}"; then + elif ! echo "${1-}" | nvm_grep -q "${NVM_DIR}/[^/]*${2-}" && \ + ! echo "${1-}" | nvm_grep -q "${NVM_DIR}/versions/[^/]*/[^/]*${2-}"; then nvm_echo "${3-}${2-}:${1-}" # use sed to replace the existing nvm path with the supplementary path. This # preserves the order of the path. From 73ad8122155466ed53c1fa152a8da21bbb6f1794 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 24 Sep 2017 23:46:06 +0800 Subject: [PATCH 1038/1426] Remove the manual ShellCheck install proecss on Travis CI --- .travis.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 7bca083..f751a67 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,6 @@ sudo: required addons: apt: packages: - - cabal-install - ghc - zsh # - ksh @@ -15,7 +14,6 @@ cache: directories: - $HOME/.npm - $HOME/.ghc - - $HOME/.cabal - $TRAVIS_BUILD_DIR/.cache - $TRAVIS_BUILD_DIR/node_modules before_install: @@ -23,7 +21,6 @@ before_install: - curl --version - wget --version install: - - if [ -n "${SHELLCHECK-}" ]; then cabal update && cabal install ShellCheck && shellcheck --version ; fi - if [ -z "${SHELLCHECK-}" ]; then nvm install node && npm install && npm prune && npm ls urchin doctoc; fi - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' script: @@ -38,7 +35,7 @@ env: global: - CXX=g++-4.8 - CC=gcc-4.8 - - PATH="~/.cabal/bin/:$(echo $PATH | sed 's/::/:/')" + - PATH="$(echo $PATH | sed 's/::/:/')" - NVM_DIR="${TRAVIS_BUILD_DIR}" matrix: - MAKE_RELEASE=true From 6597e11971c5c71da97b67e9e8786dec23d523b1 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 29 Sep 2017 12:50:27 -0400 Subject: [PATCH 1039/1426] v0.33.5 --- README.md | 14 +++++++------- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 637e104..7a109aa 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Node Version Manager [![Build Status](https://travis-ci.org/creationix/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.33.4-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://travis-ci.org/creationix/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.33.5-yellow.svg)][4] [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/684/badge)](https://bestpractices.coreinfrastructure.org/projects/684) @@ -41,13 +41,13 @@ To install or update nvm, you can use the [install script][2] using cURL: ```sh -curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.4/install.sh | bash +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.5/install.sh | bash ``` or Wget: ```sh -wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.4/install.sh | bash +wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.5/install.sh | bash ``` The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). @@ -127,7 +127,7 @@ If you have `git` installed (requires git v1.7+): 1. clone this repo in the root of your user profile - `cd ~/` from anywhere then `git clone https://github.com/creationix/nvm.git .nvm` -1. check out the latest version with `git checkout v0.33.4` +1. check out the latest version with `git checkout v0.33.5` 1. activate nvm by sourcing it from your shell Now add these lines to your `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it automatically sourced upon login: @@ -487,7 +487,7 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh ```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/creationix/nvm/v0.33.4/install.sh | bash +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.5/install.sh | bash ``` The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. @@ -554,8 +554,8 @@ sudo chmod ugo-x /usr/libexec/path_helper More on this issue in [dotphiles/dotzsh](https://github.com/dotphiles/dotzsh#mac-os-x). [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.33.4/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.33.5/install.sh [3]: https://travis-ci.org/creationix/nvm -[4]: https://github.com/creationix/nvm/releases/tag/v0.33.4 +[4]: https://github.com/creationix/nvm/releases/tag/v0.33.5 [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index 4809958..f04fc6c 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ nvm_install_dir() { } nvm_latest_version() { - echo "v0.33.4" + echo "v0.33.5" } nvm_profile_is_bash_or_zsh() { diff --git a/nvm.sh b/nvm.sh index c4ea6e9..f531602 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3378,7 +3378,7 @@ nvm() { NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; "--version" ) - nvm_echo '0.33.4' + nvm_echo '0.33.5' ;; "unload" ) nvm deactivate >/dev/null 2>&1 diff --git a/package.json b/package.json index 3aa56d0..98dcad3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.33.4", + "version": "0.33.5", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From a461a0fffcd9163726f4d652ca974d97a1097356 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 7 Sep 2017 17:51:24 +0800 Subject: [PATCH 1040/1426] [Fix] install.sh shouldn't use not existed $NVM_PROFILE --- install.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index f04fc6c..3fd2089 100755 --- a/install.sh +++ b/install.sh @@ -330,9 +330,12 @@ nvm_do_install() { BASH_OR_ZSH=false if [ -z "${NVM_PROFILE-}" ] ; then - echo "=> Profile not found. Tried ${NVM_PROFILE} (as defined in \$PROFILE), ~/.bashrc, ~/.bash_profile, ~/.zshrc, and ~/.profile." + local TRIED_PROFILE + if [ -n "${PROFILE}" ]; then + TRIED_PROFILE="${NVM_PROFILE} (as defined in \$PROFILE), " + fi + echo "=> Profile not found. Tried ${TRIED_PROFILE-}~/.bashrc, ~/.bash_profile, ~/.zshrc, and ~/.profile." echo "=> Create one of them and run this script again" - echo "=> Create it (touch ${NVM_PROFILE}) and run this script again" echo " OR" echo "=> Append the following lines to the correct file yourself:" command printf "${SOURCE_STR}" From 6ac8ebafba47ea396a3c7ee03329d98de2747baf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Go=C5=82e=CC=A8biowski-Owczarek?= Date: Wed, 4 Oct 2017 12:55:41 +0200 Subject: [PATCH 1041/1426] Add a Git .mailmap with my new name In this way my past contributions are mapped correctly. --- .mailmap | 1 + 1 file changed, 1 insertion(+) create mode 100644 .mailmap diff --git a/.mailmap b/.mailmap new file mode 100644 index 0000000..1f2f86f --- /dev/null +++ b/.mailmap @@ -0,0 +1 @@ +Michał Gołębiowski-Owczarek From 3b133fac2fd4bf188c7a33d85200792cb154f664 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 29 Sep 2017 12:57:40 -0400 Subject: [PATCH 1042/1426] [Fix] `install-latest-npm`: `npm` `v5.4`+ breaks on `node` `v4.5` and `v4.6`. --- nvm.sh | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index f531602..37ae00e 100644 --- a/nvm.sh +++ b/nvm.sh @@ -206,12 +206,21 @@ nvm_install_latest_npm() { nvm_echo '* `npm` v5 and higher do not work on `node` versions below v4.0.0' $NVM_NPM_CMD install -g npm@4 elif [ $NVM_IS_0_9 -eq 0 ] && [ $NVM_IS_0_6 -eq 0 ]; then - if nvm_version_greater 4.5.0 "${NODE_VERSION}" || (\ + local NVM_IS_4_4_OR_BELOW + NVM_IS_4_4_OR_BELOW=0 + if nvm_version_greater 4.5.0 "${NODE_VERSION}"; then + NVM_IS_4_4_OR_BELOW=1 + fi + + if $NVM_IS_4_4_OR_BELOW -eq 1 || (\ nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 5.0.0 \ && nvm_version_greater 5.10.0 "${NODE_VERSION}"\ ); then nvm_echo '* `npm` `v5.3.x` is the last version that works on `node` 4.x versions below v4.4, or 5.x versions below v5.10, due to `Buffer.alloc`' $NVM_NPM_CMD install -g npm@5.3 + elif $NVM_IS_4_4_OR_BELOW -eq 0 && nvm_version_greater 4.7.0 "${NODE_VERSION}"; then + nvm_echo '* `npm` `v5.4.x` is the last version that works on `node` `v4.5` and `v4.6`' + $NVM_NPM_CMD install -g npm@5.4 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 From 09951b49c5dc926287c43a2a5bb80c561277c7d6 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 5 Oct 2017 13:34:54 -0700 Subject: [PATCH 1043/1426] Only apps should have lockfiles --- .gitignore | 6 ++++++ .npmrc | 1 + 2 files changed, 7 insertions(+) create mode 100644 .npmrc diff --git a/.gitignore b/.gitignore index b126f5e..6d7d6d6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +# gitignore HEAD .cache v* @@ -15,3 +16,8 @@ npm-debug.log .DS_Store current default-packages + +# Only apps should have lockfiles +npm-shrinkwrap.json +package-lock.json +yarn.lock diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..43c97e7 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +package-lock=false From a954458829c83c03fd3d305dc0378cf56864ab3b Mon Sep 17 00:00:00 2001 From: Christopher Beland Date: Wed, 18 Oct 2017 10:39:11 -0400 Subject: [PATCH 1044/1426] [Docs] Improve git installation instructions --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7a109aa..cc15dba 100644 --- a/README.md +++ b/README.md @@ -127,8 +127,8 @@ If you have `git` installed (requires git v1.7+): 1. clone this repo in the root of your user profile - `cd ~/` from anywhere then `git clone https://github.com/creationix/nvm.git .nvm` -1. check out the latest version with `git checkout v0.33.5` -1. activate nvm by sourcing it from your shell +2. `cd ~/.nvm` and check out the latest version with `git checkout v0.33.5` +3. 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: (you may have to add to more than one of the above files) From 9c25a8f31692f90e10625a47ec7ae70a6c3019fb Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 22 Oct 2017 15:49:41 +0800 Subject: [PATCH 1045/1426] [Cleanup] Remove ghc related things in .travis.yml, cc #1619 --- .travis.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index f751a67..f55badc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,6 @@ sudo: required addons: apt: packages: - - ghc - zsh # - ksh # - gcc-4.8 @@ -13,7 +12,6 @@ addons: cache: directories: - $HOME/.npm - - $HOME/.ghc - $TRAVIS_BUILD_DIR/.cache - $TRAVIS_BUILD_DIR/node_modules before_install: From 016bc134d57e3c2e00b34a45588c4ab431b2b9c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dar=C3=ADo=20Here=C3=B1=C3=BA?= Date: Mon, 23 Oct 2017 02:23:04 -0300 Subject: [PATCH 1046/1426] Typo --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index cc15dba..45aa194 100644 --- a/README.md +++ b/README.md @@ -519,7 +519,7 @@ $ docker run -it nvm-dev -h nvm-dev nvm@nvm-dev:~/.nvm$ ``` -Please note that it'll take about 15 minutes to build the image and the image size would be about 1.2GB, so it's not sutable for production usage. +Please note that it'll take about 15 minutes to build the image and the image size would be about 1.2GB, so it's not suitable for production usage. For more information and documentation about docker, please refer to its official website: - https://www.docker.com/ @@ -527,7 +527,7 @@ For more information and documentation about docker, please refer to its officia ## Problems - - If you try to install a node version and the installation fails, be sure to delete the node downloads from src (~/.nvm/src/) or you might get an error when trying to reinstall them again or you might get an error like the following: + - If you try to install a node version and the installation fails, be sure to delete the node downloads from src (`~/.nvm/src/`) or you might get an error when trying to reinstall them again or you might get an error like the following: curl: (33) HTTP server doesn't seem to support byte ranges. Cannot resume. @@ -539,7 +539,7 @@ For more information and documentation about docker, please refer to its officia nvm install -s 0.8.6 ``` - - If setting the `default` alias does not establish the node version in new shells (i.e. `nvm current` yields `system`), ensure that the system's node PATH is set before the `nvm.sh` source line in your shell profile (see [#658](https://github.com/creationix/nvm/issues/658)) + - If setting the `default` alias does not establish the node version in new shells (i.e. `nvm current` yields `system`), ensure that the system's node `PATH` is set before the `nvm.sh` source line in your shell profile (see [#658](https://github.com/creationix/nvm/issues/658)) ## Mac OS "troubleshooting" From b546436113084d6de584c57b259b947dd467a900 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 23 Oct 2017 23:53:26 -0700 Subject: [PATCH 1047/1426] v0.33.6 --- README.md | 14 +++++++------- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 45aa194..1e1fb69 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Node Version Manager [![Build Status](https://travis-ci.org/creationix/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.33.5-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://travis-ci.org/creationix/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.33.6-yellow.svg)][4] [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/684/badge)](https://bestpractices.coreinfrastructure.org/projects/684) @@ -41,13 +41,13 @@ To install or update nvm, you can use the [install script][2] using cURL: ```sh -curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.5/install.sh | bash +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash ``` or Wget: ```sh -wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.5/install.sh | bash +wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash ``` The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). @@ -127,7 +127,7 @@ If you have `git` installed (requires git v1.7+): 1. clone this repo in the root of your user profile - `cd ~/` from anywhere then `git clone https://github.com/creationix/nvm.git .nvm` -2. `cd ~/.nvm` and check out the latest version with `git checkout v0.33.5` +2. `cd ~/.nvm` and check out the latest version with `git checkout v0.33.6` 3. 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: @@ -487,7 +487,7 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh ```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/creationix/nvm/v0.33.5/install.sh | bash +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash ``` The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. @@ -554,8 +554,8 @@ sudo chmod ugo-x /usr/libexec/path_helper More on this issue in [dotphiles/dotzsh](https://github.com/dotphiles/dotzsh#mac-os-x). [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.33.5/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.33.6/install.sh [3]: https://travis-ci.org/creationix/nvm -[4]: https://github.com/creationix/nvm/releases/tag/v0.33.5 +[4]: https://github.com/creationix/nvm/releases/tag/v0.33.6 [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index 3fd2089..e0d793e 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ nvm_install_dir() { } nvm_latest_version() { - echo "v0.33.5" + echo "v0.33.6" } nvm_profile_is_bash_or_zsh() { diff --git a/nvm.sh b/nvm.sh index 37ae00e..792cb30 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3387,7 +3387,7 @@ nvm() { NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; "--version" ) - nvm_echo '0.33.5' + nvm_echo '0.33.6' ;; "unload" ) nvm deactivate >/dev/null 2>&1 diff --git a/package.json b/package.json index 98dcad3..c1c19c7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.33.5", + "version": "0.33.6", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From fc30e0ade4a8786be73a564b6b82b072412e883d Mon Sep 17 00:00:00 2001 From: Avery Magnotti Date: Sat, 28 Oct 2017 20:30:28 -0400 Subject: [PATCH 1048/1426] Make `nvm cache clear` message less ambiguous --- nvm.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index 792cb30..99b47cd 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2363,9 +2363,9 @@ nvm() { local DIR DIR="$(nvm_cache_dir)" if command rm -rf "${DIR}" && command mkdir -p "${DIR}"; then - nvm_echo 'Cache cleared.' + nvm_echo 'nvm cache cleared.' else - nvm_err "Unable to clear cache: ${DIR}" + nvm_err "Unable to clear nvm cache: ${DIR}" return 1 fi ;; @@ -3346,7 +3346,7 @@ nvm() { ;; "clear-cache" ) command rm -f "$NVM_DIR/v*" "$(nvm_version_dir)" 2>/dev/null - nvm_echo 'Cache cleared.' + nvm_echo 'nvm cache cleared.' ;; "version" ) nvm_version "${1}" From a7b7eec0c5d06b7f5fed2c3652cff56f1c8788c0 Mon Sep 17 00:00:00 2001 From: David Gatti Date: Wed, 8 Nov 2017 01:02:15 +0100 Subject: [PATCH 1049/1426] [Docs] Added missing piece This sentence broke my brain when I read it the first time :) I hope this helps. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1e1fb69..3d0f07d 100644 --- a/README.md +++ b/README.md @@ -325,7 +325,7 @@ NVM_IOJS_ORG_MIRROR=https://iojs.org/dist nvm install iojs-v1.0.3 ### .nvmrc You can create a `.nvmrc` file containing version number in the project root directory (or any parent directory). -`nvm use`, `nvm install`, `nvm exec`, `nvm run`, and `nvm which` will all respect an `.nvmrc` file when a version is not supplied. +`nvm use`, `nvm install`, `nvm exec`, `nvm run`, and `nvm which` will all respect an `.nvmrc` file when a version is not supplied on the command line. For example, to make nvm default to the latest 5.9 release for the current directory: From 049a86022f397d87777b93768e10ce405d5e6d2c Mon Sep 17 00:00:00 2001 From: Phileas Lebada Date: Wed, 15 Nov 2017 17:17:57 +0100 Subject: [PATCH 1050/1426] Add empty value to local variable --- nvm.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/nvm.sh b/nvm.sh index 99b47cd..472b20d 100644 --- a/nvm.sh +++ b/nvm.sh @@ -514,6 +514,7 @@ nvm_remote_versions() { local NVM_LS_REMOTE_IOJS_EXIT_CODE NVM_LS_REMOTE_IOJS_EXIT_CODE=0 local NVM_LS_REMOTE_IOJS_OUTPUT + NVM_LS_REMOTE_IOJS_OUTPUT= if [ -z "${NVM_LTS-}" ] && ( \ [ -z "${NVM_FLAVOR-}" ] || [ "${NVM_FLAVOR-}" = "${NVM_IOJS_PREFIX}" ] \ ); then From be171bba33adb5c5210c2d347a914bcf6e3772bf Mon Sep 17 00:00:00 2001 From: Phileas Lebada Date: Wed, 15 Nov 2017 17:19:05 +0100 Subject: [PATCH 1051/1426] Add unset-variable as exit error --- test/installation_node/install LTS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/installation_node/install LTS b/test/installation_node/install LTS index d0c07a2..e5638e2 100755 --- a/test/installation_node/install LTS +++ b/test/installation_node/install LTS @@ -1,6 +1,6 @@ #!/bin/sh -set -ex +set -eux die () { echo "$@" ; exit 1; } From 91a29c0da2bc1986fdab5f4a77a0b20302d4896c Mon Sep 17 00:00:00 2001 From: mail6543210 Date: Mon, 20 Nov 2017 22:31:12 +0800 Subject: [PATCH 1052/1426] Fix for $path used by zsh "The lower-case version of PATH is an array parameter bound to the scalar upper-case parameter." -- http://www.zsh.org/mla/users/2015/msg00178.html --- nvm.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/nvm.sh b/nvm.sh index 472b20d..dd4f884 100644 --- a/nvm.sh +++ b/nvm.sh @@ -273,12 +273,12 @@ nvm_tree_contains_path() { # Traverse up in directory tree to find containing folder nvm_find_up() { - local path - path="${PWD}" - while [ "${path}" != "" ] && [ ! -f "${path}/${1-}" ]; do - path=${path%/*} + local path_ + path_="${PWD}" + while [ "${path_}" != "" ] && [ ! -f "${path_}/${1-}" ]; do + path_=${path_%/*} done - nvm_echo "${path}" + nvm_echo "${path_}" } From 16d3e6d2dce4c38de0acfe0a51fd142c9a8e9b3b Mon Sep 17 00:00:00 2001 From: mail6543210 Date: Tue, 21 Nov 2017 23:44:38 +0800 Subject: [PATCH 1053/1426] Remove unnecessary, incorrect workaround. The "\printf" calls zsh shell builtin instead of `command printf` in scripting. The workaround is no longer needed given 91a29c0. --- nvm.sh | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/nvm.sh b/nvm.sh index dd4f884..be5e733 100644 --- a/nvm.sh +++ b/nvm.sh @@ -13,13 +13,7 @@ NVM_SCRIPT_SOURCE="$_" nvm_echo() { - command printf %s\\n "$*" 2>/dev/null || { - nvm_echo() { - # shellcheck disable=SC1001 - \printf %s\\n "$*" # on zsh, `command printf` sometimes fails - } - nvm_echo "$@" - } + command printf %s\\n "$*" 2>/dev/null } nvm_cd() { From 9352f6913a2690905e1a9e91eb634911ec09a7c8 Mon Sep 17 00:00:00 2001 From: mail6543210 Date: Wed, 22 Nov 2017 01:53:46 +0800 Subject: [PATCH 1054/1426] Add symbolic link for printf in case of command-not-found --- test/fast/Unit tests/nvm_ls_current | 1 + 1 file changed, 1 insertion(+) diff --git a/test/fast/Unit tests/nvm_ls_current b/test/fast/Unit tests/nvm_ls_current index 8ed8020..0e44b20 100755 --- a/test/fast/Unit tests/nvm_ls_current +++ b/test/fast/Unit tests/nvm_ls_current @@ -21,6 +21,7 @@ rm -rf "$TEST_DIR" mkdir "$TEST_DIR" ln -s "$(command which which)" "$TEST_DIR/which" ln -s "$(command which dirname)" "$TEST_DIR/dirname" +ln -s "$(command which printf)" "$TEST_DIR/printf" [ "$(PATH="$TEST_DIR" nvm_ls_current)" = "none" ] || die 'when node not installed, nvm_ls_current did not return "none"' [ "@$(PATH="$TEST_DIR" nvm_ls_current 2> /dev/stdout 1> /dev/null)@" = "@@" ] || die 'when node not installed, nvm_ls_current returned error output' From a57fe846e8bb7d6d53ab4bc953025fde30e1770f Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 23 Nov 2017 10:02:37 -0600 Subject: [PATCH 1055/1426] [Fix] `set -u`: ensure `NVM_USE_OUTPUT` is always set. Fixes #1671. --- nvm.sh | 3 ++- "test/fast/Running \"nvm use system\" should work as expected" | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index be5e733..c68c44d 100644 --- a/nvm.sh +++ b/nvm.sh @@ -508,7 +508,7 @@ nvm_remote_versions() { local NVM_LS_REMOTE_IOJS_EXIT_CODE NVM_LS_REMOTE_IOJS_EXIT_CODE=0 local NVM_LS_REMOTE_IOJS_OUTPUT - NVM_LS_REMOTE_IOJS_OUTPUT= + NVM_LS_REMOTE_IOJS_OUTPUT='' if [ -z "${NVM_LTS-}" ] && ( \ [ -z "${NVM_FLAVOR-}" ] || [ "${NVM_FLAVOR-}" = "${NVM_IOJS_PREFIX}" ] \ ); then @@ -2902,6 +2902,7 @@ nvm() { command rm -f "$NVM_DIR/current" && ln -s "$NVM_VERSION_DIR" "$NVM_DIR/current" fi local NVM_USE_OUTPUT + NVM_USE_OUTPUT='' if [ $NVM_USE_SILENT -ne 1 ]; then if nvm_is_iojs_version "$VERSION"; then NVM_USE_OUTPUT="Now using io.js $(nvm_strip_iojs_prefix "$VERSION")$(nvm_print_npm_version)" diff --git "a/test/fast/Running \"nvm use system\" should work as expected" "b/test/fast/Running \"nvm use system\" should work as expected" index b268205..be3d11e 100755 --- "a/test/fast/Running \"nvm use system\" should work as expected" +++ "b/test/fast/Running \"nvm use system\" should work as expected" @@ -1,6 +1,6 @@ #!/bin/sh -set -ex +set -eux cleanup() { unset -f nvm_has_system_node nvm_print_npm_version From c7ac69bfbb677b17f0f50f885c072da3004530c9 Mon Sep 17 00:00:00 2001 From: Ahmad Magdy Date: Thu, 30 Nov 2017 14:47:42 +0100 Subject: [PATCH 1056/1426] Fix nvm_install_node function in install.sh script to not override the actual NODE_VERSION value --- install.sh | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/install.sh b/install.sh index e0d793e..120c98a 100755 --- a/install.sh +++ b/install.sh @@ -140,22 +140,22 @@ install_nvm_from_git() { # Automatically install Node.js # nvm_install_node() { - local NODE_VERSION - NODE_VERSION="$(nvm_node_version)" + local NODE_VERSION_LOCAL + NODE_VERSION_LOCAL="$(nvm_node_version)" - if [ -z "$NODE_VERSION" ]; then + if [ -z "$NODE_VERSION_LOCAL" ]; then return 0 fi - echo "=> Installing Node.js version $NODE_VERSION" - nvm install "$NODE_VERSION" + echo "=> Installing Node.js version $NODE_VERSION_LOCAL" + nvm install "$NODE_VERSION_LOCAL" local CURRENT_NVM_NODE CURRENT_NVM_NODE="$(nvm_version current)" - if [ "$(nvm_version "$NODE_VERSION")" == "$CURRENT_NVM_NODE" ]; then - echo "=> Node.js version $NODE_VERSION has been successfully installed" + if [ "$(nvm_version "$NODE_VERSION_LOCAL")" == "$CURRENT_NVM_NODE" ]; then + echo "=> Node.js version $NODE_VERSION_LOCAL has been successfully installed" else - echo >&2 "Failed to install Node.js $NODE_VERSION" + echo >&2 "Failed to install Node.js $NODE_VERSION_LOCAL" fi } From 4b0563093c697c5ca5fd67bfa68a8457004670c5 Mon Sep 17 00:00:00 2001 From: Ahmad Magdy Date: Thu, 30 Nov 2017 15:23:37 +0100 Subject: [PATCH 1057/1426] Add test nvm_install_with_node_version under test/install_script --- test/install_script/nvm_install_with_node_version | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100755 test/install_script/nvm_install_with_node_version diff --git a/test/install_script/nvm_install_with_node_version b/test/install_script/nvm_install_with_node_version new file mode 100755 index 0000000..e88ab2b --- /dev/null +++ b/test/install_script/nvm_install_with_node_version @@ -0,0 +1,8 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +NODE_VERSION=8 \. ../../install.sh + +# nvm installed node 8 +(nvm ls | grep 8) > /dev/null 2>&1 || die "nvm didn't install node 8" From bacdd955918949d35b16bf0936de8b428f862795 Mon Sep 17 00:00:00 2001 From: Ahmad Magdy Date: Thu, 30 Nov 2017 15:33:01 +0100 Subject: [PATCH 1058/1426] Update test/install_script/nvm_install_with_node_version to use nvm ls 8 instead of grep! --- test/install_script/nvm_install_with_node_version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/install_script/nvm_install_with_node_version b/test/install_script/nvm_install_with_node_version index e88ab2b..5f5208f 100755 --- a/test/install_script/nvm_install_with_node_version +++ b/test/install_script/nvm_install_with_node_version @@ -5,4 +5,4 @@ die () { echo "$@" ; exit 1; } NODE_VERSION=8 \. ../../install.sh # nvm installed node 8 -(nvm ls | grep 8) > /dev/null 2>&1 || die "nvm didn't install node 8" +nvm ls 8 > /dev/null 2>&1 || die "nvm didn't install node 8" From b6a7a54d04da76d675b6b2cce4b5c5903bec2cfd Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 8 Dec 2017 21:20:59 -0800 Subject: [PATCH 1059/1426] [Fix] `nvm install-latest-npm`: fix node 4-4.6 --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index c68c44d..1487064 100644 --- a/nvm.sh +++ b/nvm.sh @@ -206,7 +206,7 @@ nvm_install_latest_npm() { NVM_IS_4_4_OR_BELOW=1 fi - if $NVM_IS_4_4_OR_BELOW -eq 1 || (\ + if [ $NVM_IS_4_4_OR_BELOW -eq 1 ] || (\ nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 5.0.0 \ && nvm_version_greater 5.10.0 "${NODE_VERSION}"\ ); then From 65f0572bdc5c618f747df4b1e70a76fbc0174b82 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 8 Dec 2017 21:21:42 -0800 Subject: [PATCH 1060/1426] v0.33.7 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) --- README.md | 14 +++++++------- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 3d0f07d..b4ded1d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Node Version Manager [![Build Status](https://travis-ci.org/creationix/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.33.6-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://travis-ci.org/creationix/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.33.7-yellow.svg)][4] [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/684/badge)](https://bestpractices.coreinfrastructure.org/projects/684) @@ -41,13 +41,13 @@ To install or update nvm, you can use the [install script][2] using cURL: ```sh -curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.7/install.sh | bash ``` or Wget: ```sh -wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash +wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.7/install.sh | bash ``` The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). @@ -127,7 +127,7 @@ If you have `git` installed (requires git v1.7+): 1. clone this repo in the root of your user profile - `cd ~/` from anywhere then `git clone https://github.com/creationix/nvm.git .nvm` -2. `cd ~/.nvm` and check out the latest version with `git checkout v0.33.6` +2. `cd ~/.nvm` and check out the latest version with `git checkout v0.33.7` 3. 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: @@ -487,7 +487,7 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh ```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/creationix/nvm/v0.33.6/install.sh | bash +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.7/install.sh | bash ``` The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. @@ -554,8 +554,8 @@ sudo chmod ugo-x /usr/libexec/path_helper More on this issue in [dotphiles/dotzsh](https://github.com/dotphiles/dotzsh#mac-os-x). [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.33.6/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.33.7/install.sh [3]: https://travis-ci.org/creationix/nvm -[4]: https://github.com/creationix/nvm/releases/tag/v0.33.6 +[4]: https://github.com/creationix/nvm/releases/tag/v0.33.7 [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index 120c98a..1413bd2 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ nvm_install_dir() { } nvm_latest_version() { - echo "v0.33.6" + echo "v0.33.7" } nvm_profile_is_bash_or_zsh() { diff --git a/nvm.sh b/nvm.sh index 1487064..0480ac0 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3383,7 +3383,7 @@ nvm() { NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; "--version" ) - nvm_echo '0.33.6' + nvm_echo '0.33.7' ;; "unload" ) nvm deactivate >/dev/null 2>&1 diff --git a/package.json b/package.json index c1c19c7..bb03a34 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.33.6", + "version": "0.33.7", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 4846d57c69fc62f7673a59dc34a21fb1ef669098 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 5 Dec 2017 00:00:18 -0800 Subject: [PATCH 1061/1426] `nvm use`: perfect pre-npm-config env var checking --- nvm.sh | 32 +++++++++++++++++++------- test/fast/Unit tests/nvm_die_on_prefix | 13 ++++++++--- 2 files changed, 34 insertions(+), 11 deletions(-) diff --git a/nvm.sh b/nvm.sh index 0480ac0..73d735f 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2111,19 +2111,35 @@ nvm_die_on_prefix() { return 2 fi - if [ -n "${PREFIX-}" ] && ! (nvm_tree_contains_path "$NVM_DIR" "$PREFIX" >/dev/null 2>&1); then + # npm first looks at $PREFIX (case-sensitive) + # we do not bother to test the value here; if this env var is set, unset it to continue. + if [ -n "${PREFIX-}" ]; then nvm deactivate >/dev/null 2>&1 - nvm_err "nvm is not compatible with the \"PREFIX\" environment variable: currently set to \"$PREFIX\"" + nvm_err "nvm is not compatible with the \"PREFIX\" environment variable: currently set to \"${PREFIX}\"" nvm_err 'Run `unset PREFIX` to unset it.' return 3 fi - if [ -n "${NPM_CONFIG_PREFIX-}" ] && ! (nvm_tree_contains_path "$NVM_DIR" "$NPM_CONFIG_PREFIX" >/dev/null 2>&1); then - nvm deactivate >/dev/null 2>&1 - nvm_err "nvm is not compatible with the \"NPM_CONFIG_PREFIX\" environment variable: currently set to \"$NPM_CONFIG_PREFIX\"" - nvm_err 'Run `unset NPM_CONFIG_PREFIX` to unset it.' - return 4 - elif ! nvm_has 'npm'; then + # npm normalizes NPM_CONFIG_-prefixed env vars + # https://github.com/npm/npmconf/blob/22827e4038d6eebaafeb5c13ed2b92cf97b8fb82/npmconf.js#L331-L348 + # https://github.com/npm/npm/blob/5e426a78ca02d0044f8dd26e0c5f881217081cbd/lib/config/core.js#L343-L359 + # + # here, we avoid trying to replicate "which one wins" or testing the value; if any are defined, it errors + # until none are left. + local NVM_NPM_CONFIG_PREFIX_ENV + NVM_NPM_CONFIG_PREFIX_ENV="$(command env | nvm_grep -i NPM_CONFIG_PREFIX | command tail -1 | command awk -F '=' '{print $1}')" + if [ -n "${NVM_NPM_CONFIG_PREFIX_ENV-}" ]; then + local NVM_CONFIG_VALUE + eval "NVM_CONFIG_VALUE=\"\$${NVM_NPM_CONFIG_PREFIX_ENV}\"" + if [ -n "${NVM_CONFIG_VALUE-}" ]; then + nvm deactivate >/dev/null 2>&1 + nvm_err "nvm is not compatible with the \"${NVM_NPM_CONFIG_PREFIX_ENV}\" environment variable: currently set to \"${NVM_CONFIG_VALUE}\"" + nvm_err "Run \`unset ${NVM_NPM_CONFIG_PREFIX_ENV}\` to unset it." + return 4 + fi + fi + + if ! nvm_has 'npm'; then return fi diff --git a/test/fast/Unit tests/nvm_die_on_prefix b/test/fast/Unit tests/nvm_die_on_prefix index 3ce4a35..7429cb8 100755 --- a/test/fast/Unit tests/nvm_die_on_prefix +++ b/test/fast/Unit tests/nvm_die_on_prefix @@ -46,17 +46,24 @@ OUTPUT="$(nvm_die_on_prefix 0 foo 2>&1)" OUTPUT="$(PREFIX=bar nvm_die_on_prefix 0 foo 2>&1)" EXPECTED_OUTPUT='nvm is not compatible with the "PREFIX" environment variable: currently set to "bar" Run `unset PREFIX` to unset it.' -EXIT_CODE="$(PREFIX=bar nvm_die_on_prefix 0 foo >/dev/null 2>&1; echo $?)" +EXIT_CODE="$(export PREFIX=bar ; nvm_die_on_prefix 0 foo >/dev/null 2>&1; echo $?)" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'PREFIX=bar nvm_die_on_prefix 0 foo' did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" [ "_$EXIT_CODE" = "_3" ] || die "'PREFIX=bar nvm_die_on_prefix 0 foo' did not exit with 3; got '$EXIT_CODE'" -OUTPUT="$(NPM_CONFIG_PREFIX=bar nvm_die_on_prefix 0 foo 2>&1)" +OUTPUT="$(export NPM_CONFIG_PREFIX=bar ; nvm_die_on_prefix 0 foo 2>&1)" EXPECTED_OUTPUT='nvm is not compatible with the "NPM_CONFIG_PREFIX" environment variable: currently set to "bar" Run `unset NPM_CONFIG_PREFIX` to unset it.' -EXIT_CODE="$(NPM_CONFIG_PREFIX=bar nvm_die_on_prefix 0 foo >/dev/null 2>&1; echo $?)" +EXIT_CODE="$(export NPM_CONFIG_PREFIX=bar ; nvm_die_on_prefix 0 foo >/dev/null 2>&1; echo $?)" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'NPM_CONFIG_PREFIX=bar nvm_die_on_prefix 0 foo' did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" [ "_$EXIT_CODE" = "_4" ] || die "'NPM_CONFIG_PREFIX=bar nvm_die_on_prefix 0 foo' did not exit with 4; got '$EXIT_CODE'" +OUTPUT="$(export npm_CONFIG_PREFIX=bar ; nvm_die_on_prefix 0 foo 2>&1)" +EXPECTED_OUTPUT='nvm is not compatible with the "npm_CONFIG_PREFIX" environment variable: currently set to "bar" +Run `unset npm_CONFIG_PREFIX` to unset it.' +EXIT_CODE="$(export npm_CONFIG_PREFIX=bar ; nvm_die_on_prefix 0 foo >/dev/null 2>&1; echo $?)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'npm_CONFIG_PREFIX=bar nvm_die_on_prefix 0 foo' did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" +[ "_$EXIT_CODE" = "_4" ] || die "'npm_CONFIG_PREFIX=bar nvm_die_on_prefix 0 foo' did not exit with 4; got '$EXIT_CODE'" + npm() { local args args="$@" From fa9c50520dfde1f86e128e482d7521a8c7faf4eb Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 12 Dec 2017 00:13:00 -0800 Subject: [PATCH 1062/1426] [Fix] `nvm install-latest-npm`: fix for node 4.5/4.6. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 73d735f..234a756 100644 --- a/nvm.sh +++ b/nvm.sh @@ -212,7 +212,7 @@ nvm_install_latest_npm() { ); then nvm_echo '* `npm` `v5.3.x` is the last version that works on `node` 4.x versions below v4.4, or 5.x versions below v5.10, due to `Buffer.alloc`' $NVM_NPM_CMD install -g npm@5.3 - elif $NVM_IS_4_4_OR_BELOW -eq 0 && nvm_version_greater 4.7.0 "${NODE_VERSION}"; then + elif [ $NVM_IS_4_4_OR_BELOW -eq 0 ] && nvm_version_greater 4.7.0 "${NODE_VERSION}"; then nvm_echo '* `npm` `v5.4.x` is the last version that works on `node` `v4.5` and `v4.6`' $NVM_NPM_CMD install -g npm@5.4 else From 7ad6d98cedde01809e32d56ab8ced064f6f28175 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 12 Dec 2017 10:43:17 -0800 Subject: [PATCH 1063/1426] v0.33.8 --- README.md | 14 +++++++------- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index b4ded1d..d60182b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Node Version Manager [![Build Status](https://travis-ci.org/creationix/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.33.7-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://travis-ci.org/creationix/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.33.8-yellow.svg)][4] [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/684/badge)](https://bestpractices.coreinfrastructure.org/projects/684) @@ -41,13 +41,13 @@ To install or update nvm, you can use the [install script][2] using cURL: ```sh -curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.7/install.sh | bash +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash ``` or Wget: ```sh -wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.7/install.sh | bash +wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash ``` The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). @@ -127,7 +127,7 @@ If you have `git` installed (requires git v1.7+): 1. clone this repo in the root of your user profile - `cd ~/` from anywhere then `git clone https://github.com/creationix/nvm.git .nvm` -2. `cd ~/.nvm` and check out the latest version with `git checkout v0.33.7` +2. `cd ~/.nvm` and check out the latest version with `git checkout v0.33.8` 3. 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: @@ -487,7 +487,7 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh ```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/creationix/nvm/v0.33.7/install.sh | bash +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash ``` The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. @@ -554,8 +554,8 @@ sudo chmod ugo-x /usr/libexec/path_helper More on this issue in [dotphiles/dotzsh](https://github.com/dotphiles/dotzsh#mac-os-x). [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.33.7/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.33.8/install.sh [3]: https://travis-ci.org/creationix/nvm -[4]: https://github.com/creationix/nvm/releases/tag/v0.33.7 +[4]: https://github.com/creationix/nvm/releases/tag/v0.33.8 [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index 1413bd2..2d092b7 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ nvm_install_dir() { } nvm_latest_version() { - echo "v0.33.7" + echo "v0.33.8" } nvm_profile_is_bash_or_zsh() { diff --git a/nvm.sh b/nvm.sh index 234a756..948f107 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3399,7 +3399,7 @@ nvm() { NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; "--version" ) - nvm_echo '0.33.7' + nvm_echo '0.33.8' ;; "unload" ) nvm deactivate >/dev/null 2>&1 diff --git a/package.json b/package.json index bb03a34..e120235 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.33.7", + "version": "0.33.8", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From fce7f4ed13bf26ad39a55e4216d4900f776928dc Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sat, 9 Dec 2017 17:47:14 +0800 Subject: [PATCH 1064/1426] [Fix] Disable ShellCheck SC2207 in bash_completion line 14 --- bash_completion | 1 + 1 file changed, 1 insertion(+) diff --git a/bash_completion b/bash_completion index fb62dcc..328b565 100644 --- a/bash_completion +++ b/bash_completion @@ -10,6 +10,7 @@ __nvm_generate_completion() { declare current_word current_word="${COMP_WORDS[COMP_CWORD]}" + # shellcheck disable=SC2207 COMPREPLY=($(compgen -W "$1" -- "$current_word")) return 0 } From 2a8a81da94b74065d44da5ed15625c88955000e2 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sat, 9 Dec 2017 17:47:38 +0800 Subject: [PATCH 1065/1426] [Fix] ShellCheck SC1117 in nvm.sh & install.sh --- install.sh | 9 +++++---- nvm.sh | 36 +++++++++++++++++------------------- 2 files changed, 22 insertions(+), 23 deletions(-) diff --git a/install.sh b/install.sh index 2d092b7..51314f9 100755 --- a/install.sh +++ b/install.sh @@ -85,7 +85,7 @@ install_nvm_from_git() { if [ -d "$INSTALL_DIR/.git" ]; then echo "=> nvm is already installed in $INSTALL_DIR, trying to update using git" - command printf "\r=> " + command printf '\r=> ' command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" fetch origin tag "$(nvm_latest_version)" --depth=1 2> /dev/null || { echo >&2 "Failed to update nvm, run 'git fetch' in $INSTALL_DIR yourself." exit 1 @@ -93,7 +93,7 @@ install_nvm_from_git() { else # Cloning to $INSTALL_DIR echo "=> Downloading nvm from git to '$INSTALL_DIR'" - command printf "\r=> " + command printf '\r=> ' mkdir -p "${INSTALL_DIR}" if [ "$(ls -A "${INSTALL_DIR}")" ]; then command git init "${INSTALL_DIR}" || { @@ -325,8 +325,9 @@ nvm_do_install() { local PROFILE_INSTALL_DIR PROFILE_INSTALL_DIR="$(nvm_install_dir| sed "s:^$HOME:\$HOME:")" - SOURCE_STR="\nexport NVM_DIR=\"${PROFILE_INSTALL_DIR}\"\n[ -s \"\$NVM_DIR/nvm.sh\" ] && \\. \"\$NVM_DIR/nvm.sh\" # This loads nvm\n" - COMPLETION_STR="[ -s \"\$NVM_DIR/bash_completion\" ] && \\. \"\$NVM_DIR/bash_completion\" # This loads nvm bash_completion\n" + SOURCE_STR="\\nexport NVM_DIR=\"${PROFILE_INSTALL_DIR}\"\\n[ -s \"\$NVM_DIR/nvm.sh\" ] && \\. \"\$NVM_DIR/nvm.sh\" # This loads nvm\\n" + # shellcheck disable=SC2016 + COMPLETION_STR='[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion\n' BASH_OR_ZSH=false if [ -z "${NVM_PROFILE-}" ] ; then diff --git a/nvm.sh b/nvm.sh index 948f107..1921c02 100644 --- a/nvm.sh +++ b/nvm.sh @@ -53,7 +53,7 @@ nvm_command_info() { INFO="$(which "${COMMAND}") ($(type "${COMMAND}" | command awk '{ $1=$2=$3=$4="" ;print }' | command sed -e 's/^\ *//g' -Ee "s/\`|'//g" ))" elif type "${COMMAND}" | nvm_grep -q "^${COMMAND} is an alias for"; then INFO="$(which "${COMMAND}") ($(type "${COMMAND}" | command awk '{ $1=$2=$3=$4=$5="" ;print }' | command sed 's/^\ *//g'))" - elif type "${COMMAND}" | nvm_grep -q "^${COMMAND} is \/"; then + elif type "${COMMAND}" | nvm_grep -q "^${COMMAND} is \\/"; then INFO="$(type "${COMMAND}" | command awk '{print $3}')" else INFO="$(type "${COMMAND}")" @@ -84,7 +84,7 @@ nvm_get_latest() { if nvm_curl_use_compression; then CURL_COMPRESSED_FLAG="--compressed" fi - NVM_LATEST_URL="$(curl ${CURL_COMPRESSED_FLAG:-} -q -w "%{url_effective}\n" -L -s -S http://latest.nvm.sh -o /dev/null)" + NVM_LATEST_URL="$(curl ${CURL_COMPRESSED_FLAG:-} -q -w "%{url_effective}\\n" -L -s -S http://latest.nvm.sh -o /dev/null)" elif nvm_has "wget"; then NVM_LATEST_URL="$(wget http://latest.nvm.sh --server-response -O /dev/null 2>&1 | command awk '/^ Location: /{DEST=$2} END{ print DEST }')" else @@ -645,16 +645,16 @@ nvm_print_formatted_alias() { DEST_FORMAT='%s' VERSION_FORMAT='%s' local NEWLINE - NEWLINE="\n" + NEWLINE='\n' if [ "_${DEFAULT}" = '_true' ]; then - NEWLINE=" (default)\n" + NEWLINE=' (default)\n' fi local ARROW ARROW='->' if [ -z "${NVM_NO_COLORS}" ] && nvm_has_colors; then ARROW='\033[0;90m->\033[0m' if [ "_${DEFAULT}" = '_true' ]; then - NEWLINE=" \033[0;37m(default)\033[0m\n" + NEWLINE=' \033[0;37m(default)\033[0m\n' fi if [ "_${VERSION}" = "_${NVM_CURRENT-}" ]; then ALIAS_FORMAT='\033[0;32m%s\033[0m' @@ -832,7 +832,7 @@ nvm_resolve_alias() { break fi - SEEN_ALIASES="${SEEN_ALIASES}\n${ALIAS_TEMP}" + SEEN_ALIASES="${SEEN_ALIASES}\\n${ALIAS_TEMP}" ALIAS="${ALIAS_TEMP}" done @@ -1021,25 +1021,23 @@ nvm_ls() { PATTERN='v' SEARCH_PATTERN='.*' else - SEARCH_PATTERN="$(echo "${PATTERN}" | command sed "s#\.#\\\.#g;")" + SEARCH_PATTERN="$(echo "${PATTERN}" | command sed 's#\.#\\\.#g;')" fi if [ -n "${NVM_DIRS_TO_SEARCH1}${NVM_DIRS_TO_SEARCH2}${NVM_DIRS_TO_SEARCH3}" ]; then VERSIONS="$(command find "${NVM_DIRS_TO_SEARCH1}"/* "${NVM_DIRS_TO_SEARCH2}"/* "${NVM_DIRS_TO_SEARCH3}"/* -name . -o -type d -prune -o -path "${PATTERN}*" \ | command sed -e " s#${NVM_VERSION_DIR_IOJS}/#versions/${NVM_IOJS_PREFIX}/#; s#^${NVM_DIR}/##; - \#^[^v]# d; - \#^versions\$# d; + \\#^[^v]# d; + \\#^versions\$# d; s#^versions/##; s#^v#${NVM_NODE_PREFIX}/v#; - \#${SEARCH_PATTERN}# !d; + \\#${SEARCH_PATTERN}# !d; " \ - -e "s#^\([^/]\{1,\}\)/\(.*\)\$#\2.\1#;" \ + -e 's#^\([^/]\{1,\}\)/\(.*\)$#\2.\1#;' \ | command sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n \ - | command sed " - s#\(.*\)\.\([^\.]\{1,\}\)\$#\2-\1#; - s#^${NVM_NODE_PREFIX}-##; - " \ + | command sed -e 's#\(.*\)\.\([^\.]\{1,\}\)$#\2-\1#;' \ + -e "s#^${NVM_NODE_PREFIX}-##;" \ )" fi @@ -1405,7 +1403,7 @@ nvm_print_versions() { LTS="${LTS##Latest }" LTS_LENGTH="${#LTS}" if [ "${NVM_HAS_COLORS-}" = '1' ]; then - LTS_FORMAT=" \033[1;32m%${LTS_LENGTH}s\033[0m" + LTS_FORMAT=" \\033[1;32m%${LTS_LENGTH}s\\033[0m" else LTS_FORMAT=" %${LTS_LENGTH}s" fi @@ -1413,15 +1411,15 @@ nvm_print_versions() { *) LTS_LENGTH="${#LTS}" if [ "${NVM_HAS_COLORS-}" = '1' ]; then - LTS_FORMAT=" \033[0;37m%${LTS_LENGTH}s\033[0m" + LTS_FORMAT=" \\033[0;37m%${LTS_LENGTH}s\\033[0m" else LTS_FORMAT=" %${LTS_LENGTH}s" fi ;; esac - command printf -- "${FORMAT}${LTS_FORMAT}\n" "$VERSION" " $LTS" + command printf -- "${FORMAT}${LTS_FORMAT}\\n" "$VERSION" " $LTS" else - command printf -- "${FORMAT}\n" "$VERSION" + command printf -- "${FORMAT}\\n" "$VERSION" fi done } From 9273f23bc89c8af05e8a0d691dfa00c58694d678 Mon Sep 17 00:00:00 2001 From: p-salido Date: Thu, 23 Nov 2017 23:09:44 -0500 Subject: [PATCH 1066/1426] [Docs] Explain `.nvmrc` better --- README.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d60182b..cad9d68 100644 --- a/README.md +++ b/README.md @@ -324,15 +324,17 @@ NVM_IOJS_ORG_MIRROR=https://iojs.org/dist nvm install iojs-v1.0.3 ### .nvmrc -You can create a `.nvmrc` file containing version number in the project root directory (or any parent directory). -`nvm use`, `nvm install`, `nvm exec`, `nvm run`, and `nvm which` will all respect an `.nvmrc` file when a version is not supplied on the command line. +You can create a `.nvmrc` file containing a node version number (or any other string that `nvm` understands; see `nvm --help` for details) in the project root directory (or any parent directory). +Afterwards, `nvm use`, `nvm install`, `nvm exec`, `nvm run`, and `nvm which` will use the version specified in the `.nvmrc` file if no version is supplied on the command line. -For example, to make nvm default to the latest 5.9 release for the current directory: +For example, to make nvm default to the latest 5.9 release, the latest LTS version, or the latest node version for the current directory: ```sh $ echo "5.9" > .nvmrc $ echo "lts/*" > .nvmrc # to default to the latest LTS version + +$ echo "node" > .nvmrc # to default to the latest version ``` Then when you run nvm: @@ -343,6 +345,10 @@ Found '/path/to/project/.nvmrc' with version <5.9> Now using node v5.9.1 (npm v3.7.3) ``` +`nvm use` et. al. will traverse directory structure upwards from the current directory looking for the `.nvmrc` file. In other words, running `nvm use` et. al. in any subdirectory of a directory with an `.nvmrc` will result in that `.nvmrc` being utilized. + +The contents of a `.nvmrc` file **must** be the `` (as described by `nvm --help`) followed by a newline. No trailing spaces are allowed, and the trailing newline is required. + ### Deeper Shell Integration You can use [`avn`](https://github.com/wbyoung/avn) to deeply integrate into your shell and automatically invoke `nvm` when changing directories. `avn` is **not** supported by the `nvm` development team. Please [report issues to the `avn` team](https://github.com/wbyoung/avn/issues/new). From 7cba6cd6d0dc0a126f12360d0523afe0c0bf9fce Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 6 Jan 2018 09:34:11 -0800 Subject: [PATCH 1067/1426] `install.sh`: detect a defined but nonexistent $NVM_DIR (ref: #1700) --- install.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 51314f9..de61f3b 100755 --- a/install.sh +++ b/install.sh @@ -294,6 +294,10 @@ nvm_check_global_modules() { } nvm_do_install() { + if [ -n "${NVM_DIR-}" ] && ! [ -d "${NVM_DIR}" ]; then + echo >&2 "You have \$NVM_DIR set to \"${NVM_DIR}\", but that directory does not exist. Check your profile files and environment." + exit 1 + fi if [ -z "${METHOD}" ]; then # Autodetect install method if nvm_has git; then @@ -323,7 +327,7 @@ nvm_do_install() { local NVM_PROFILE NVM_PROFILE="$(nvm_detect_profile)" local PROFILE_INSTALL_DIR - PROFILE_INSTALL_DIR="$(nvm_install_dir| sed "s:^$HOME:\$HOME:")" + PROFILE_INSTALL_DIR="$(nvm_install_dir | sed "s:^$HOME:\$HOME:")" SOURCE_STR="\\nexport NVM_DIR=\"${PROFILE_INSTALL_DIR}\"\\n[ -s \"\$NVM_DIR/nvm.sh\" ] && \\. \"\$NVM_DIR/nvm.sh\" # This loads nvm\\n" # shellcheck disable=SC2016 From 3e81904525a4a26dd429aa693ca625ae2d7a8682 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 12 Jan 2018 23:24:56 -0800 Subject: [PATCH 1068/1426] Update minimum git version to v1.17.10 Per https://github.com/creationix/nvm/pull/1704#discussion_r161366186 --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index cad9d68..10b7e7e 100644 --- a/README.md +++ b/README.md @@ -119,11 +119,11 @@ Homebrew installation is not supported. If you have issues with homebrew-install **Note:** If you're using `zsh` you can easily install `nvm` as a zsh plugin. Install [`zsh-nvm`](https://github.com/lukechilds/zsh-nvm) and run `nvm upgrade` to upgrade. -**Note:** Git versions before v1.7 may face a problem of cloning nvm source from GitHub via https protocol, and there is also different behavior of git before v1.6, so the minimum required git version is v1.7.0 and we recommend v1.7.9.5 as it's the default version of the widely used Ubuntu 12.04 LTS. If you are interested in the problem we mentioned here, please refer to GitHub's [HTTPS cloning errors](https://help.github.com/articles/https-cloning-errors/) article. +**Note:** Git versions before v1.7 may face a problem of cloning nvm source from GitHub via https protocol, and there is also different behavior of git before v1.6, and git prior to [v1.17.10](https://github.com/git/git/commit/5a7d5b683f869d3e3884a89775241afa515da9e7) can not clone tags, so the minimum required git version is v1.7.10. If you are interested in the problem we mentioned here, please refer to GitHub's [HTTPS cloning errors](https://help.github.com/articles/https-cloning-errors/) article. ### Git install -If you have `git` installed (requires git v1.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/creationix/nvm.git .nvm` @@ -161,7 +161,7 @@ export NVM_DIR="$HOME/.nvm" ### Manual upgrade -For manual upgrade with `git` (requires git v1.7+): +For manual upgrade with `git` (requires git v1.7.10+): 1. change to the `$NVM_DIR` 1. pull down the latest changes From d34bb3247d689e926a36c3b6e26a3378b780a982 Mon Sep 17 00:00:00 2001 From: Paul Norman Date: Wed, 10 Jan 2018 13:21:27 -0800 Subject: [PATCH 1069/1426] `install.sh`: Don't give detached HEAD advice when installing --- install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index de61f3b..e472b0c 100755 --- a/install.sh +++ b/install.sh @@ -110,13 +110,13 @@ install_nvm_from_git() { exit 2 } else - command git clone "$(nvm_source)" -b "$(nvm_latest_version)" --depth=1 "${INSTALL_DIR}" || { + command git -c advice.detachedHead=false clone "$(nvm_source)" -b "$(nvm_latest_version)" --depth=1 "${INSTALL_DIR}" || { echo >&2 'Failed to clone nvm repo. Please report this!' exit 2 } fi fi - command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" checkout -f --quiet "$(nvm_latest_version)" + command git -c advice.detachedHead=false --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" checkout -f --quiet "$(nvm_latest_version)" if [ ! -z "$(command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" show-ref refs/heads/master)" ]; then if command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" branch --quiet 2>/dev/null; then command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" branch --quiet -D master >/dev/null 2>&1 From 7ca8acc98dd97fec26d70b99eebfb8ddaabe7e0d Mon Sep 17 00:00:00 2001 From: Yannick Ihmels Date: Sat, 13 Jan 2018 21:25:30 +0100 Subject: [PATCH 1070/1426] [Docs] [Tests] Add escape sequences; add test for aliased `.` --- README.md | 10 ++++---- .../nvm_install_with_aliased_dot | 23 +++++++++++++++++++ 2 files changed, 28 insertions(+), 5 deletions(-) create mode 100755 test/install_script/nvm_install_with_aliased_dot diff --git a/README.md b/README.md index 10b7e7e..2c997d6 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | ```sh export NVM_DIR="$HOME/.nvm" -[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm +[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm ``` You can customize the install source, directory, profile, and version using the `NVM_SOURCE`, `NVM_DIR`, `PROFILE`, and `NODE_VERSION` variables. @@ -148,7 +148,7 @@ export NVM_DIR="$HOME/.nvm" && ( git clone https://github.com/creationix/nvm.git "$NVM_DIR" cd "$NVM_DIR" git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" origin` -) && . "$NVM_DIR/nvm.sh" +) && \. "$NVM_DIR/nvm.sh" ``` Now add these lines to your `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it automatically sourced upon login: @@ -156,7 +156,7 @@ Now add these lines to your `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to hav ```sh export NVM_DIR="$HOME/.nvm" -[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm +[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm ``` ### Manual upgrade @@ -173,7 +173,7 @@ For manual upgrade with `git` (requires git v1.7.10+): cd "$NVM_DIR" git fetch origin git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" origin` -) && . "$NVM_DIR/nvm.sh" +) && \. "$NVM_DIR/nvm.sh" ``` ## Usage @@ -426,7 +426,7 @@ Nota bene: Avoid running nvm while the tests are running. To activate, you need to source `bash_completion`: ```sh -[[ -r $NVM_DIR/bash_completion ]] && . $NVM_DIR/bash_completion +[[ -r $NVM_DIR/bash_completion ]] && \. $NVM_DIR/bash_completion ``` Put the above sourcing line just below the sourcing line for nvm in your profile (`.bashrc`, `.bash_profile`). diff --git a/test/install_script/nvm_install_with_aliased_dot b/test/install_script/nvm_install_with_aliased_dot new file mode 100755 index 0000000..bc8953a --- /dev/null +++ b/test/install_script/nvm_install_with_aliased_dot @@ -0,0 +1,23 @@ +#!/bin/sh + +setup () { + shopt -s expand_aliases + alias .=':' + NVM_ENV=testing \. ../../install.sh > /dev/null +} + +cleanup () { + unset -f setup cleanup die + unalias . + shopt -u expand_aliases +} + +die () { echo "$@"; exit 1; } + +setup + +nvm_do_install > /dev/null 2>&1 +command -v nvm || die 'nvm could not be loaded' + +cleanup + From 6dd9ecb607a545a38b3cca23e16c00bb1f7b4a95 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 16 Jan 2018 16:55:50 -0800 Subject: [PATCH 1071/1426] [Docs] add `nvm which current` to `nvm --help` output --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 1921c02..4e69c09 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2348,7 +2348,7 @@ nvm() { nvm_echo ' nvm install-latest-npm Attempt to upgrade to the latest working `npm` on the current node version' nvm_echo ' nvm reinstall-packages Reinstall global `npm` packages contained in to current version' nvm_echo ' nvm unload Unload `nvm` from shell' - nvm_echo ' nvm which [] Display path to installed node version. Uses .nvmrc if available' + nvm_echo ' nvm which [current | ] Display path to installed node version. Uses .nvmrc if available' nvm_echo ' nvm cache dir Display path to the cache directory for nvm' nvm_echo ' nvm cache clear Empty cache directory for nvm' nvm_echo From 71032cfaa1317ac61203e0584daad5de3138efc6 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 8 Feb 2018 22:53:41 -0800 Subject: [PATCH 1072/1426] [Tests] update to latest npm in this test --- ...copy-packages $(nvm ls current)\" should error out" | 2 ++ .../nvm reinstall-packages/should work as expected | 10 +++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git "a/test/slow/nvm reinstall-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" "b/test/slow/nvm reinstall-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" index f6a3d03..c0f59f2 100755 --- "a/test/slow/nvm reinstall-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" +++ "b/test/slow/nvm reinstall-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" @@ -6,6 +6,8 @@ die () { echo "$@" ; exit 1; } nvm use 0.10.28 > /dev/null +nvm install-latest-npm || die 'nvm install-latest-npm failed' + EXPECTED_MSG="Can not reinstall packages from the current version of node." ACTUAL_MSG="$(nvm reinstall-packages 0.10.28 2>&1 > /dev/null)" [ "~$ACTUAL_MSG" = "~$EXPECTED_MSG" ] || die "'nvm use 0.10.28 && nvm reinstall-packages 0.10.28' did not fail with the right message: '$ACTUAL_MESSAGE'" diff --git a/test/slow/nvm reinstall-packages/should work as expected b/test/slow/nvm reinstall-packages/should work as expected index 7235cbb..f4edca4 100755 --- a/test/slow/nvm reinstall-packages/should work as expected +++ b/test/slow/nvm reinstall-packages/should work as expected @@ -4,15 +4,15 @@ die () { echo "$@" ; exit 1; } \. ../../../nvm.sh -nvm exec 0.10.28 npm install -g npm@~1.4.11 # this is required because before 1.4.10, npm ls doesn't indicated linked packages -nvm exec 0.10.29 npm install -g npm@~1.4.11 # this is required because before 1.4.10, npm ls doesn't indicated linked packages +nvm exec 0.10.28 npm install -g npm@~1.4.11 && nvm install-latest-npm # this is required because before 1.4.10, npm ls doesn't indicated linked packages +nvm exec 0.10.29 npm install -g npm@~1.4.11 && nvm install-latest-npm # this is required because before 1.4.10, npm ls doesn't indicated linked packages nvm use 0.10.28 (cd test-npmlink && npm link) -EXPECTED_PACKAGES="autoprefixer bower david eslint grunt-cli grunth-cli http-server jshint marked node-gyp npmlist recursive-blame spawn-sync test-npmlink uglify-js yo" +EXPECTED_PACKAGES="autoprefixer bower david eslint grunt-cli grunth-cli http-server jshint marked node-gyp npmlist recursive-blame spawn-sync test-npmlink uglify-js" -echo "$EXPECTED_PACKAGES" | sed -e 's/test-npmlink //' | xargs npm install -g --quiet +echo "$EXPECTED_PACKAGES yo@1" | sed -e 's/test-npmlink //' | xargs npm install -g --quiet get_packages() { npm list -g --depth=0 | \sed -e '1 d' -e 's/^.* \(.*\)@.*/\1/' -e '/^npm$/ d' | xargs @@ -24,7 +24,7 @@ ORIGINAL_PACKAGES=$(get_packages) nvm reinstall-packages 0.10.28 FINAL_PACKAGES=$(get_packages) -[ "$FINAL_PACKAGES" = "$EXPECTED_PACKAGES" ] || die "final packages ($FINAL_PACKAGES) did not match expected packages ($EXPECTED_PACKAGES)" +[ "$FINAL_PACKAGES" = "$EXPECTED_PACKAGES yo" ] || die "final packages ($FINAL_PACKAGES) did not match expected packages ($EXPECTED_PACKAGES)" [ "$ORIGINAL_PACKAGES" != "$FINAL_PACKAGES" ] || die "original packages matched final packages ($ORIGINAL_PACKAGES)" [ $(test-npmlink) = 'ok' ] || die "failed to run test-npmlink" From a23f7169a6f10b945fef6a16e9d458eb50d7a400 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Fri, 26 Jan 2018 11:30:57 +0800 Subject: [PATCH 1073/1426] [Fix] Correct nvm.sh indent --- nvm.sh | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/nvm.sh b/nvm.sh index 4e69c09..0dce3da 100644 --- a/nvm.sh +++ b/nvm.sh @@ -476,12 +476,12 @@ nvm_remote_versions() { case "${PATTERN}" in "${NVM_IOJS_PREFIX}" | "io.js") - NVM_FLAVOR="${NVM_IOJS_PREFIX}" - unset PATTERN + NVM_FLAVOR="${NVM_IOJS_PREFIX}" + unset PATTERN ;; "${NVM_NODE_PREFIX}") - NVM_FLAVOR="${NVM_NODE_PREFIX}" - unset PATTERN + NVM_FLAVOR="${NVM_NODE_PREFIX}" + unset PATTERN ;; esac @@ -1584,9 +1584,9 @@ nvm_get_arch() { HOST_ARCH=$(isainfo -n) fi elif [ "_$NVM_OS" = "_aix" ]; then - HOST_ARCH=ppc64 + HOST_ARCH=ppc64 else - HOST_ARCH="$(command uname -m)" + HOST_ARCH="$(command uname -m)" fi local NVM_ARCH @@ -1646,7 +1646,7 @@ nvm_ensure_default_set() { } nvm_is_merged_node_version() { - nvm_version_greater_than_or_equal_to "$1" v4.0.0 + nvm_version_greater_than_or_equal_to "$1" v4.0.0 } nvm_get_mirror() { @@ -1761,7 +1761,7 @@ nvm_get_download_slug() { NVM_ARCH="$(nvm_get_arch)" if ! nvm_is_merged_node_version "${VERSION}"; then if [ "${NVM_ARCH}" = 'armv6l' ] || [ "${NVM_ARCH}" = 'armv7l' ]; then - NVM_ARCH="arm-pi" + NVM_ARCH="arm-pi" fi fi @@ -2664,9 +2664,9 @@ nvm() { nvm_err "Currently, there is no binary for $NVM_OS" elif [ "_$NVM_OS" = "_sunos" ]; then # Not all node/io.js versions have a Solaris binary - if ! nvm_has_solaris_binary "$VERSION"; then - nobinary=1 - nvm_err "Currently, there is no binary of version $VERSION for $NVM_OS" + if ! nvm_has_solaris_binary "$VERSION"; then + nobinary=1 + nvm_err "Currently, there is no binary of version $VERSION for $NVM_OS" fi fi @@ -3510,7 +3510,7 @@ nvm_auto() { nvm install >/dev/null fi elif [ "_$NVM_MODE" = '_use' ]; then - VERSION="$(nvm_resolve_local_alias default 2>/dev/null || nvm_echo)" + VERSION="$(nvm_resolve_local_alias default 2>/dev/null || nvm_echo)" if [ -n "$VERSION" ]; then nvm use --silent "$VERSION" >/dev/null elif nvm_rc_version >/dev/null 2>&1; then From f5b5f2d41d0cb9e9cd2ef454951e427720f7d735 Mon Sep 17 00:00:00 2001 From: Karthik K Date: Fri, 26 Jan 2018 12:20:13 +0530 Subject: [PATCH 1074/1426] [copyright] year to 2010 obsoleting future updations --- LICENSE.md | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/LICENSE.md b/LICENSE.md index 77a55d7..4b756d4 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2010-2017 Tim Caswell +Copyright (c) 2010 Tim Caswell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in diff --git a/README.md b/README.md index 2c997d6..5eb3b32 100644 --- a/README.md +++ b/README.md @@ -391,7 +391,7 @@ load-nvmrc nvm is released under the MIT license. -Copyright (C) 2010-2017 Tim Caswell and Jordan Harband +Copyright (C) 2010 Tim Caswell and Jordan Harband Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: From 74f455e610006c3d57a14c63aa76dcf7f12ef9ba Mon Sep 17 00:00:00 2001 From: Christoph Krautz Date: Fri, 9 Feb 2018 11:51:46 +0100 Subject: [PATCH 1075/1426] [Docs] Add reminder that NVM_DIR should not contain trailing slash, fix for #1708 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5eb3b32..5627b48 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ export NVM_DIR="$HOME/.nvm" ``` You can customize the install source, directory, profile, and version using the `NVM_SOURCE`, `NVM_DIR`, `PROFILE`, and `NODE_VERSION` variables. -Eg: `curl ... | NVM_DIR=/usr/local/nvm bash` for a global install. +Eg: `curl ... | NVM_DIR=/usr/local/nvm bash` for a global install. Ensure that the `NVM_DIR` does not contain a trailing slash. *NB. The installer can use `git`, `curl`, or `wget` to download `nvm`, whatever is available.* From aad269d224d90e4270b5bccb88063eb540f30391 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 12 Feb 2018 02:15:01 +0800 Subject: [PATCH 1076/1426] Display FreeBSD and SunOS with correct caps --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 0dce3da..d9b8218 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2661,12 +2661,12 @@ nvm() { if [ "_$NVM_OS" = "_freebsd" ]; then # node.js and io.js do not have a FreeBSD binary nobinary=1 - nvm_err "Currently, there is no binary for $NVM_OS" + nvm_err "Currently, there is no binary for FreeBSD" elif [ "_$NVM_OS" = "_sunos" ]; then # Not all node/io.js versions have a Solaris binary if ! nvm_has_solaris_binary "$VERSION"; then nobinary=1 - nvm_err "Currently, there is no binary of version $VERSION for $NVM_OS" + nvm_err "Currently, there is no binary of version $VERSION for SunOS" fi fi From 3ed47431f868bec3fd031a895c89e36b3e34c5ac Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 5 Nov 2017 03:25:04 +0800 Subject: [PATCH 1077/1426] [New] Print $SHLVL in `nvm debug` --- nvm.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nvm.sh b/nvm.sh index d9b8218..3e22540 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2397,6 +2397,8 @@ nvm() { nvm_err "\$TERM_PROGRAM: $TERM_PROGRAM" fi nvm_err "\$SHELL: $SHELL" + # shellcheck disable=SC2169 + nvm_err "\$SHLVL: ${SHLVL-}" nvm_err "\$HOME: $HOME" nvm_err "\$NVM_DIR: '$(nvm_sanitize_path "$NVM_DIR")'" nvm_err "\$PREFIX: '$(nvm_sanitize_path "$PREFIX")'" From 77da9f5a6dab6723e296362830b8bb80ae861089 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 18 Jan 2018 00:33:41 +0800 Subject: [PATCH 1078/1426] Optimize ShellCheck installation in Docker image Use pre-built static release binary instead of building ShellCheck from the source code, this change would save disk space, time, and much computing resources. --- Dockerfile | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4bb73f7..be3e8ef 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,6 +14,9 @@ MAINTAINER Peter Dave Hello # Prevent dialog during apt install ENV DEBIAN_FRONTEND noninteractive +# ShellCheck version +ENV SHELLCHECK_VERSION=0.4.7 + # Pick a Ubuntu apt mirror site for better speed # ref: https://launchpad.net/ubuntu/+archivemirrors ENV UBUNTU_APT_SITE ubuntu.cs.utah.edu @@ -49,14 +52,22 @@ RUN apt update && \ realpath \ zsh \ ksh \ - ghc \ gcc-4.8 \ g++-4.8 \ - cabal-install \ + xz-utils \ build-essential \ bash-completion && \ apt-get clean +# ShellCheck with Ubuntu 14.04 container workaround +RUN wget https://storage.googleapis.com/shellcheck/shellcheck-v$SHELLCHECK_VERSION.linux.x86_64.tar.xz -O- | \ + tar xJvf - shellcheck-v$SHELLCHECK_VERSION/shellcheck && \ + mv shellcheck-v$SHELLCHECK_VERSION/shellcheck /bin && \ + rmdir shellcheck-v$SHELLCHECK_VERSION && \ + touch /tmp/libc.so.6 && \ + echo "alias shellcheck='LD_LIBRARY_PATH=/tmp /bin/shellcheck'" >> /etc/bash.bashrc +RUN LD_LIBRARY_PATH=/tmp shellcheck -V + # Set locale RUN locale-gen en_US.UTF-8 @@ -68,7 +79,6 @@ RUN dpkg -s dash | grep ^Version | awk '{print $2}' RUN git --version RUN curl --version RUN wget --version -RUN cabal --version # Add user "nvm" as non-root user RUN useradd -ms /bin/bash nvm @@ -79,12 +89,6 @@ RUN echo 'nvm ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers # Switch to user "nvm" from now USER nvm -# Shellcheck -RUN cabal update -RUN cabal install ShellCheck -RUN ~/.cabal/bin/shellcheck --version -RUN echo 'export PATH="~/.cabal/bin/:${PATH}"' >> $HOME/.bashrc - # nvm COPY . /home/nvm/.nvm/ RUN sudo chown nvm:nvm -R $HOME/.nvm From 225e447b54ff7d3117f30a6935bf8ad4e48d27fa Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 19 Feb 2018 00:27:04 +0800 Subject: [PATCH 1079/1426] [Doc] Update Docker image build info in README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5627b48..13a5f73 100644 --- a/README.md +++ b/README.md @@ -514,7 +514,7 @@ This will package your current nvm repository with our pre-defiend development e $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE -nvm-dev latest 9ca4c57a97d8 7 days ago 1.22 GB +nvm-dev latest 9ca4c57a97d8 7 days ago 650 MB ``` If you got no error message, now you can easily involve in: @@ -525,7 +525,7 @@ $ docker run -it nvm-dev -h nvm-dev nvm@nvm-dev:~/.nvm$ ``` -Please note that it'll take about 15 minutes to build the image and the image size would be about 1.2GB, so it's not suitable for production usage. +Please note that it'll take about 8 minutes to build the image and the image size would be about 650MB, so it's not suitable for production usage. For more information and documentation about docker, please refer to its official website: - https://www.docker.com/ From f290ccf1d599cb0cb364584243da3dee0595803a Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 19 Feb 2018 13:59:26 +0800 Subject: [PATCH 1080/1426] [Fix] Add missing "command" prefix for "tr", fix #1725 --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 3e22540..412e6eb 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2277,7 +2277,7 @@ nvm() { fi local DEFAULT_IFS - DEFAULT_IFS=" $(echo t | tr t \\t) + DEFAULT_IFS=" $(echo t | command tr t \\t) " if [ "${IFS}" != "${DEFAULT_IFS}" ]; then IFS="${DEFAULT_IFS}" nvm "$@" From bb803492d86b5df4d5b6dd4af70352f5366ac54a Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 5 Feb 2018 06:21:33 +0800 Subject: [PATCH 1081/1426] Remove duplicate code in nvm_npm_global_modules() No matter what's the result of the condition here, the path is the same. --- nvm.sh | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/nvm.sh b/nvm.sh index 412e6eb..d5e003f 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2077,11 +2077,7 @@ nvm_npm_global_modules() { local NPMLIST local VERSION VERSION="$1" - if [ "_$VERSION" = "_system" ]; then - NPMLIST=$(nvm use system > /dev/null && npm list -g --depth=0 2> /dev/null | command sed 1,1d) - else - NPMLIST=$(nvm use "$VERSION" > /dev/null && npm list -g --depth=0 2> /dev/null | command sed 1,1d) - fi + NPMLIST=$(nvm use "$VERSION" > /dev/null && npm list -g --depth=0 2> /dev/null | command sed 1,1d) local INSTALLS INSTALLS=$(nvm_echo "$NPMLIST" | command sed -e '/ -> / d' -e '/\(empty\)/ d' -e 's/^.* \(.*@[^ ]*\).*/\1/' -e '/^npm@[^ ]*.*$/ d' | command xargs) From f3076d14c94d1e6bff8009f80c12b999def42688 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Tue, 20 Feb 2018 04:05:47 +0800 Subject: [PATCH 1082/1426] [Fix] Add missing "command" prefixes for few commands --- install.sh | 8 ++++---- nvm.sh | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/install.sh b/install.sh index e472b0c..82e5a92 100755 --- a/install.sh +++ b/install.sh @@ -7,7 +7,7 @@ nvm_has() { } nvm_install_dir() { - printf %s "${NVM_DIR:-"$HOME/.nvm"}" + command printf %s "${NVM_DIR:-"$HOME/.nvm"}" } nvm_latest_version() { @@ -188,7 +188,7 @@ install_nvm_as_script() { echo >&2 "Failed to download '$NVM_BASH_COMPLETION_SOURCE'" return 2 } & - for job in $(jobs -p | sort) + for job in $(jobs -p | command sort) do wait "$job" || return $? done @@ -268,7 +268,7 @@ nvm_check_global_modules() { MODULE_COUNT="$( command printf %s\\n "$NPM_GLOBAL_MODULES" | command sed -ne '1!p' | # Remove the first line - wc -l | tr -d ' ' # Count entries + wc -l | command tr -d ' ' # Count entries )" if [ "${MODULE_COUNT}" != '0' ]; then @@ -327,7 +327,7 @@ nvm_do_install() { local NVM_PROFILE NVM_PROFILE="$(nvm_detect_profile)" local PROFILE_INSTALL_DIR - PROFILE_INSTALL_DIR="$(nvm_install_dir | sed "s:^$HOME:\$HOME:")" + PROFILE_INSTALL_DIR="$(nvm_install_dir | command sed "s:^$HOME:\$HOME:")" SOURCE_STR="\\nexport NVM_DIR=\"${PROFILE_INSTALL_DIR}\"\\n[ -s \"\$NVM_DIR/nvm.sh\" ] && \\. \"\$NVM_DIR/nvm.sh\" # This loads nvm\\n" # shellcheck disable=SC2016 diff --git a/nvm.sh b/nvm.sh index d5e003f..930d0c6 100644 --- a/nvm.sh +++ b/nvm.sh @@ -293,7 +293,7 @@ nvm_rc_version() { nvm_err "No .nvmrc file found" return 1 fi - read -r NVM_RC_VERSION < "${NVMRC_PATH}" || printf '' + read -r NVM_RC_VERSION < "${NVMRC_PATH}" || command printf '' if [ ! -n "${NVM_RC_VERSION}" ]; then nvm_err "Warning: empty .nvmrc file found at \"${NVMRC_PATH}\"" return 2 @@ -2402,7 +2402,7 @@ nvm() { nvm_err "\$NVM_NODEJS_ORG_MIRROR: '${NVM_NODEJS_ORG_MIRROR}'" nvm_err "\$NVM_IOJS_ORG_MIRROR: '${NVM_IOJS_ORG_MIRROR}'" nvm_err "shell version: '$(${SHELL} --version | command head -n 1)'" - nvm_err "uname -a: '$(uname -a | awk '{$2=""; print}' | xargs)'" + nvm_err "uname -a: '$(command uname -a | command awk '{$2=""; print}' | command xargs)'" if [ "$(nvm_get_os)" = "darwin" ] && nvm_has sw_vers; then nvm_err "OS version: $(sw_vers | command awk '{print $2}' | command xargs)" elif [ -r "/etc/issue" ]; then @@ -2583,7 +2583,7 @@ nvm() { [ -n "${line}" ] || continue # Skip comment lines that begin with `#`. - [ "$(echo "$line" | cut -c1)" != "#" ] || continue + [ "$(echo "$line" | command cut -c1)" != "#" ] || continue # Fail on lines that have multiple space-separated words case ${line} in From 2cd2c0f72e7bae3bb9f6d340f7fa57d6023f37d1 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 26 Feb 2018 01:01:30 +0800 Subject: [PATCH 1083/1426] Remove useless trailing newlines --- .dockerignore | 1 - .gitattributes | 1 - CONTRIBUTING.md | 1 - Dockerfile | 1 - LICENSE.md | 1 - bash_completion | 1 - .../\"nvm alias\" should not accept aliases with slashes" | 1 - .../\"nvm unalias\" should not accept aliases with slashes" | 1 - ...\"nvm alias\" lists implicit aliases when they do not exist" | 1 - test/fast/Aliases/circular/setup | 1 - test/fast/Aliases/circular/teardown | 1 - test/fast/Listing versions/teardown | 1 - test/fast/Unit tests/nvm_alias | 1 - test/fast/Unit tests/nvm_alias_path | 1 - test/fast/Unit tests/nvm_find_up | 1 - test/fast/Unit tests/nvm_format_version | 1 - test/fast/Unit tests/nvm_has | 1 - test/fast/Unit tests/nvm_ls_remote_iojs | 1 - test/fast/Unit tests/nvm_num_version_groups | 1 - test/fast/Unit tests/nvm_print_implicit_alias errors | 1 - test/fast/Unit tests/nvm_remote_versions | 1 - test/fast/Unit tests/nvm_tree_contains_path | 1 - test/fast/Unit tests/nvm_validate_implicit_alias | 1 - test/fast/Unit tests/nvm_version_dir | 1 - test/fast/Unit tests/nvm_version_greater | 1 - test/fast/Unit tests/nvm_version_path | 1 - test/install_script/nvm_do_install | 1 - test/install_script/nvm_install_dir | 1 - test/install_script/nvm_install_with_aliased_dot | 1 - test/install_script/nvm_reset | 1 - test/install_script/nvm_source | 1 - test/installation_iojs/setup_dir | 1 - test/installation_iojs/teardown_dir | 1 - test/installation_node/install from source implicitly | 1 - test/installation_node/install hook | 2 -- .../install version specified in .nvmrc from binary | 2 -- .../install version specified in .nvmrc from source | 2 -- test/installation_node/setup_dir | 1 - test/installation_node/teardown_dir | 1 - test/slow/node 0.6.21 should install 0.6.21-pre | 1 - .../slow/nvm exec/Preamble works and respects \"silent\" flag" | 1 - .../Running \"nvm exec\" should pick up .nvmrc version" | 1 - test/slow/nvm exec/setup_dir | 1 - test/slow/nvm exec/teardown_dir | 1 - ...ng \"nvm copy-packages $(nvm ls current)\" should error out" | 1 - test/slow/nvm reinstall-packages/setup_dir | 1 - test/slow/nvm reinstall-packages/teardown_dir | 1 - .../Running \"nvm run --harmony --version\" should work" | 1 - "test/slow/nvm run/Running \"nvm run 0.x\" should work" | 1 - .../nvm run/Running \"nvm run\" should pick up .nvmrc version" | 1 - test/slow/nvm run/setup_dir | 1 - test/slow/nvm run/teardown_dir | 1 - test/slow/nvm_get_latest/nvm_get_latest | 1 - test/slow/nvm_get_latest/nvm_get_latest failed redirect | 1 - .../Sourcing nvm.sh should use the default if available | 1 - .../Sourcing nvm.sh with --install and .nvmrc should install it | 1 - .../Sourcing nvm.sh with --install should install the default | 1 - .../Sourcing nvm.sh with --no-use should not use anything | 1 - test/sourcing/setup | 1 - test/sourcing/teardown | 1 - 60 files changed, 63 deletions(-) diff --git a/.dockerignore b/.dockerignore index 0684680..fc578cc 100644 --- a/.dockerignore +++ b/.dockerignore @@ -14,4 +14,3 @@ npm-debug.log .DS_Store current - diff --git a/.gitattributes b/.gitattributes index a64f320..fae8897 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1 @@ * eol=lf - diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5194234..0354293 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -17,4 +17,3 @@ For pull requests: Even if you don't have all of these items covered, please still feel free to submit a PR/issue! Someone else may be inspired and volunteer to complete it for you. Thanks again! - diff --git a/Dockerfile b/Dockerfile index be3e8ef..b0cf682 100644 --- a/Dockerfile +++ b/Dockerfile @@ -106,4 +106,3 @@ RUN bash -c 'source $HOME/.nvm/nvm.sh && \ WORKDIR /home/nvm/.nvm ENTRYPOINT /bin/bash - diff --git a/LICENSE.md b/LICENSE.md index 4b756d4..2b115b1 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -18,4 +18,3 @@ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - diff --git a/bash_completion b/bash_completion index 328b565..989dde7 100644 --- a/bash_completion +++ b/bash_completion @@ -95,4 +95,3 @@ if [[ -n ${ZSH_VERSION-} ]]; then fi complete -o default -F __nvm nvm - diff --git "a/test/fast/Aliases/\"nvm alias\" should not accept aliases with slashes" "b/test/fast/Aliases/\"nvm alias\" should not accept aliases with slashes" index 1d71a1c..d10937d 100755 --- "a/test/fast/Aliases/\"nvm alias\" should not accept aliases with slashes" +++ "b/test/fast/Aliases/\"nvm alias\" should not accept aliases with slashes" @@ -24,4 +24,3 @@ EXPECTED_OUTPUT="Aliases in subdirectories are not supported." EXIT_CODE="$(nvm alias /bar baz >/dev/null 2>&1 ; echo $?)" [ "$EXIT_CODE" = "1" ] || die "trying to create an alias starting with a slash should fail with code 1, got '$EXIT_CODE'" - diff --git "a/test/fast/Aliases/\"nvm unalias\" should not accept aliases with slashes" "b/test/fast/Aliases/\"nvm unalias\" should not accept aliases with slashes" index f7e226f..2afafad 100755 --- "a/test/fast/Aliases/\"nvm unalias\" should not accept aliases with slashes" +++ "b/test/fast/Aliases/\"nvm unalias\" should not accept aliases with slashes" @@ -24,4 +24,3 @@ EXPECTED_OUTPUT="Aliases in subdirectories are not supported." EXIT_CODE="$(nvm unalias /bar >/dev/null 2>&1 ; echo $?)" [ "$EXIT_CODE" = "1" ] || die "trying to remove an alias starting with a slash should fail with code 1, got '$EXIT_CODE'" - diff --git "a/test/fast/Aliases/Running \"nvm alias\" lists implicit aliases when they do not exist" "b/test/fast/Aliases/Running \"nvm alias\" lists implicit aliases when they do not exist" index 4b00855..24a341c 100755 --- "a/test/fast/Aliases/Running \"nvm alias\" lists implicit aliases when they do not exist" +++ "b/test/fast/Aliases/Running \"nvm alias\" lists implicit aliases when they do not exist" @@ -24,4 +24,3 @@ EXPECTED_IOJS="$(nvm_print_implicit_alias local iojs)" IOJS_VERSION="$(nvm_version "$EXPECTED_IOJS")" echo "$NVM_ALIAS_OUTPUT" | \grep -F "iojs -> $EXPECTED_IOJS (-> $IOJS_VERSION) (default)" \ || die "nvm alias did not contain the default local iojs version; got '$NVM_ALIAS_OUTPUT'" - diff --git a/test/fast/Aliases/circular/setup b/test/fast/Aliases/circular/setup index 8f2b142..4af6dc0 100755 --- a/test/fast/Aliases/circular/setup +++ b/test/fast/Aliases/circular/setup @@ -7,4 +7,3 @@ echo three > ../../../../alias/two echo one > ../../../../alias/three echo two > ../../../../alias/four - diff --git a/test/fast/Aliases/circular/teardown b/test/fast/Aliases/circular/teardown index 9b6c79c..d83ee81 100755 --- a/test/fast/Aliases/circular/teardown +++ b/test/fast/Aliases/circular/teardown @@ -7,4 +7,3 @@ rm -f ../../../../alias/two rm -f ../../../../alias/three rm -f ../../../../alias/four - diff --git a/test/fast/Listing versions/teardown b/test/fast/Listing versions/teardown index 25669ea..7c965ac 100755 --- a/test/fast/Listing versions/teardown +++ b/test/fast/Listing versions/teardown @@ -14,4 +14,3 @@ rmdir ../../../versions >/dev/null 2>&1 unalias nvm_has_system_node >/dev/null 2>&1 rm -f ../../../alias/stable >/dev/null 2>&1 rm -f ../../../alias/unstable >/dev/null 2>&1 - diff --git a/test/fast/Unit tests/nvm_alias b/test/fast/Unit tests/nvm_alias index 30917fc..49cac2d 100755 --- a/test/fast/Unit tests/nvm_alias +++ b/test/fast/Unit tests/nvm_alias @@ -30,4 +30,3 @@ OUTPUT="$(nvm_alias test)" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_alias test' produced wrong output; got $OUTPUT" cleanup - diff --git a/test/fast/Unit tests/nvm_alias_path b/test/fast/Unit tests/nvm_alias_path index f62c352..e86d87a 100755 --- a/test/fast/Unit tests/nvm_alias_path +++ b/test/fast/Unit tests/nvm_alias_path @@ -5,4 +5,3 @@ die () { echo "$@" ; exit 1; } \. ../../../nvm.sh [ "_$(nvm_alias_path)" = "_$NVM_DIR/alias" ] || die "nvm_alias_path did not requrn correct location" - diff --git a/test/fast/Unit tests/nvm_find_up b/test/fast/Unit tests/nvm_find_up index bdef19f..29c4e42 100755 --- a/test/fast/Unit tests/nvm_find_up +++ b/test/fast/Unit tests/nvm_find_up @@ -23,4 +23,3 @@ TEST_DIR="$PWD" [ "~$(PWD=$TEST_DIR/tmp_nvm_find_up/a/b/c/d nvm_find_up 'test')" = "~$TEST_DIR/tmp_nvm_find_up/a/b/c" ] || die "failed to find 1 level up from current dir" cleanup - diff --git a/test/fast/Unit tests/nvm_format_version b/test/fast/Unit tests/nvm_format_version index 615aa35..98541fe 100755 --- a/test/fast/Unit tests/nvm_format_version +++ b/test/fast/Unit tests/nvm_format_version @@ -18,4 +18,3 @@ INPUT="1.2.3.4.5" OUTPUT="$(nvm_format_version "$INPUT")" EXPECTED_OUTPUT="v1.2.3" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_format_version $INPUT did not return $EXPECTED_OUTPUT; got $OUTPUT" - diff --git a/test/fast/Unit tests/nvm_has b/test/fast/Unit tests/nvm_has index c1a3b59..8a7d7be 100755 --- a/test/fast/Unit tests/nvm_has +++ b/test/fast/Unit tests/nvm_has @@ -9,4 +9,3 @@ nvm_has cat && type cat > /dev/null || die 'nvm_has locates "cat" properly' [ "~$(nvm_has foobarbaz 2>&1)" = "~" ] || die "nvm_has does not suppress error output" ! nvm_has foobarbaz && ! type foobarbaz >/dev/null 2>&1 || die "nvm_has does not return a nonzero exit code when not found" - diff --git a/test/fast/Unit tests/nvm_ls_remote_iojs b/test/fast/Unit tests/nvm_ls_remote_iojs index 76280ee..553aefd 100755 --- a/test/fast/Unit tests/nvm_ls_remote_iojs +++ b/test/fast/Unit tests/nvm_ls_remote_iojs @@ -35,4 +35,3 @@ iojs-v1.0.4" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote_iojs 1.0 did not output 1.0.x versions; got $OUTPUT" cleanup - diff --git a/test/fast/Unit tests/nvm_num_version_groups b/test/fast/Unit tests/nvm_num_version_groups index 45f7926..ab09f0c 100755 --- a/test/fast/Unit tests/nvm_num_version_groups +++ b/test/fast/Unit tests/nvm_num_version_groups @@ -22,4 +22,3 @@ die () { echo "$@" ; exit 1; } [ "~$(nvm_num_version_groups 1.2.3)" = "~3" ] || die "1.2.3 should give 3" [ "~$(nvm_num_version_groups v1.2.3)" = "~3" ] || die "v1.2.3 should give 3" [ "~$(nvm_num_version_groups v1.2.3.)" = "~3" ] || die "v1.2.3. should give 3" - diff --git a/test/fast/Unit tests/nvm_print_implicit_alias errors b/test/fast/Unit tests/nvm_print_implicit_alias errors index fc06a3c..5565eea 100755 --- a/test/fast/Unit tests/nvm_print_implicit_alias errors +++ b/test/fast/Unit tests/nvm_print_implicit_alias errors @@ -23,4 +23,3 @@ EXPECTED_SECOND_MSG="Only implicit aliases 'stable', 'unstable', 'iojs', and 'no SECOND_EXIT_CODE="$(nvm_print_implicit_alias local > /dev/null 2>&1 ; echo $?)" [ "_$SECOND_EXIT_CODE" = "_2" ] \ || die "nvm_print_implicit_alias without stable|unstable|iojs|node had wrong exit code: expected 2, got $SECOND_EXIT_CODE" - diff --git a/test/fast/Unit tests/nvm_remote_versions b/test/fast/Unit tests/nvm_remote_versions index 72bc916..e4136b2 100755 --- a/test/fast/Unit tests/nvm_remote_versions +++ b/test/fast/Unit tests/nvm_remote_versions @@ -75,4 +75,3 @@ EXIT_CODE="$(nvm_remote_versions iojs >/dev/null 2>&1 ; echo $?)" [ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_versions iojs did not exit with 0, got $EXIT_CODE" cleanup - diff --git a/test/fast/Unit tests/nvm_tree_contains_path b/test/fast/Unit tests/nvm_tree_contains_path index a64930c..9b40854 100755 --- a/test/fast/Unit tests/nvm_tree_contains_path +++ b/test/fast/Unit tests/nvm_tree_contains_path @@ -29,4 +29,3 @@ nvm_tree_contains_path tmp2 tmp2/node || die '"tmp2" should contain "tmp2/node"' nvm_tree_contains_path tmp2 tmp/node && die '"tmp2" should not contain "tmp/node"' cleanup - diff --git a/test/fast/Unit tests/nvm_validate_implicit_alias b/test/fast/Unit tests/nvm_validate_implicit_alias index 52c0e2f..8fd6ecf 100755 --- a/test/fast/Unit tests/nvm_validate_implicit_alias +++ b/test/fast/Unit tests/nvm_validate_implicit_alias @@ -18,4 +18,3 @@ nvm_validate_implicit_alias stable || die "nvm_validate_implicit_alias stable di nvm_validate_implicit_alias unstable || die "nvm_validate_implicit_alias unstable did not exit 0" nvm_validate_implicit_alias node || die "nvm_validate_implicit_alias node did not exit 0" nvm_validate_implicit_alias iojs || die "nvm_validate_implicit_alias iojs did not exit 0" - diff --git a/test/fast/Unit tests/nvm_version_dir b/test/fast/Unit tests/nvm_version_dir index daec984..ad4bd96 100755 --- a/test/fast/Unit tests/nvm_version_dir +++ b/test/fast/Unit tests/nvm_version_dir @@ -9,4 +9,3 @@ die () { echo "$@" ; exit 1; } [ "$(nvm_version_dir new)" = "$(nvm_version_dir)" ] || die '"nvm_version_dir new" did not return new dir path' [ "$(nvm_version_dir old)" = "$NVM_DIR" ] || die '"nvm_version_dir old" did not return old dir path' [ "$(nvm_version_dir foo 2>&1)" = "unknown version dir" ] || die '"nvm_version_dir foo" did not error out' - diff --git a/test/fast/Unit tests/nvm_version_greater b/test/fast/Unit tests/nvm_version_greater index 1979327..2a345ea 100755 --- a/test/fast/Unit tests/nvm_version_greater +++ b/test/fast/Unit tests/nvm_version_greater @@ -13,4 +13,3 @@ fi if nvm_version_greater 0.10.0 0.10.0; then die '"nvm_version_greater" returned false for the same two versions' fi - diff --git a/test/fast/Unit tests/nvm_version_path b/test/fast/Unit tests/nvm_version_path index 9f205e2..2d4ad78 100755 --- a/test/fast/Unit tests/nvm_version_path +++ b/test/fast/Unit tests/nvm_version_path @@ -12,4 +12,3 @@ EXPECTED_OUTPUT="$NVM_DIR/foo" [ "$(nvm_version_path v0.11.0)" = "$NVM_DIR/v0.11.0" ] || die 'old version has the wrong path' [ "$(nvm_version_path v0.12.0)" = "$NVM_DIR/versions/node/v0.12.0" ] || die 'new version has the wrong path' [ "$(nvm_version_path iojs-v0.12.0)" = "$NVM_DIR/versions/io.js/v0.12.0" ] || die 'iojs version has the wrong path' - diff --git a/test/install_script/nvm_do_install b/test/install_script/nvm_do_install index 249981b..5fb0d27 100755 --- a/test/install_script/nvm_do_install +++ b/test/install_script/nvm_do_install @@ -6,4 +6,3 @@ NVM_ENV=testing \. ../../install.sh #nvm_do_install is available type nvm_do_install > /dev/null 2>&1 || die 'nvm_do_install is not available' - diff --git a/test/install_script/nvm_install_dir b/test/install_script/nvm_install_dir index 1c685e3..ad43f9f 100755 --- a/test/install_script/nvm_install_dir +++ b/test/install_script/nvm_install_dir @@ -22,4 +22,3 @@ install_dir=$(nvm_install_dir) [ "_$install_dir" = "_$HOME/.nvm" ] || die "nvm_install_dir should default to \$HOME/.nvm. Current output: $install_dir" cleanup - diff --git a/test/install_script/nvm_install_with_aliased_dot b/test/install_script/nvm_install_with_aliased_dot index bc8953a..b8f05a5 100755 --- a/test/install_script/nvm_install_with_aliased_dot +++ b/test/install_script/nvm_install_with_aliased_dot @@ -20,4 +20,3 @@ nvm_do_install > /dev/null 2>&1 command -v nvm || die 'nvm could not be loaded' cleanup - diff --git a/test/install_script/nvm_reset b/test/install_script/nvm_reset index 6c9f0a9..77bac0a 100755 --- a/test/install_script/nvm_reset +++ b/test/install_script/nvm_reset @@ -36,4 +36,3 @@ nvm_reset || die 'nvm_reset failed' ! safe_type nvm_detect_profile || die 'nvm_detect_profile is still available' cleanup - diff --git a/test/install_script/nvm_source b/test/install_script/nvm_source index 0e7519d..3d2205c 100755 --- a/test/install_script/nvm_source +++ b/test/install_script/nvm_source @@ -37,4 +37,3 @@ out=$(nvm_source "anything") [ "_$out" = "_my_location" ] || die "nvm_source script should have returned \$NVM_SOURCE. Got \"$out\"" cleanup - diff --git a/test/installation_iojs/setup_dir b/test/installation_iojs/setup_dir index 50dc4e4..cb4522d 100755 --- a/test/installation_iojs/setup_dir +++ b/test/installation_iojs/setup_dir @@ -3,4 +3,3 @@ if [ -f ".nvmrc" ]; then mv .nvmrc .nvmrc.bak fi - diff --git a/test/installation_iojs/teardown_dir b/test/installation_iojs/teardown_dir index 2eda91f..2ca9cf1 100755 --- a/test/installation_iojs/teardown_dir +++ b/test/installation_iojs/teardown_dir @@ -14,4 +14,3 @@ fi if [ -f ".nvmrc.bak" ]; then mv .nvmrc.bak .nvmrc fi - diff --git a/test/installation_node/install from source implicitly b/test/installation_node/install from source implicitly index 33f5566..a07efc7 100755 --- a/test/installation_node/install from source implicitly +++ b/test/installation_node/install from source implicitly @@ -21,4 +21,3 @@ nvm install $NVM_TEST_VERSION || die "'nvm install -s $NVM_TEST_VERSION' failed" # Check [ -d ../../$NVM_TEST_VERSION ] nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION || "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" - diff --git a/test/installation_node/install hook b/test/installation_node/install hook index bf3b14a..896037b 100755 --- a/test/installation_node/install hook +++ b/test/installation_node/install hook @@ -37,5 +37,3 @@ ${USE_OUTPUT} failed" [ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" - - diff --git a/test/installation_node/install version specified in .nvmrc from binary b/test/installation_node/install version specified in .nvmrc from binary index b230b17..0c90c99 100755 --- a/test/installation_node/install version specified in .nvmrc from binary +++ b/test/installation_node/install version specified in .nvmrc from binary @@ -18,5 +18,3 @@ nvm install || die "'nvm install' failed" [ -d ../../$NVM_TEST_VERSION ] || die "./$NVM_TEST_VERSION did not exist" nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION \ || "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" - - diff --git a/test/installation_node/install version specified in .nvmrc from source b/test/installation_node/install version specified in .nvmrc from source index 8f460c7..85ede4d 100755 --- a/test/installation_node/install version specified in .nvmrc from source +++ b/test/installation_node/install version specified in .nvmrc from source @@ -18,5 +18,3 @@ nvm install -s || "'nvm install -s' failed" [ -d ../../$NVM_TEST_VERSION ] || die "$NVM_TEST_VERSION did not exist" nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION \ || die "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" - - diff --git a/test/installation_node/setup_dir b/test/installation_node/setup_dir index 50dc4e4..cb4522d 100755 --- a/test/installation_node/setup_dir +++ b/test/installation_node/setup_dir @@ -3,4 +3,3 @@ if [ -f ".nvmrc" ]; then mv .nvmrc .nvmrc.bak fi - diff --git a/test/installation_node/teardown_dir b/test/installation_node/teardown_dir index 5f1d6ce..2aad120 100755 --- a/test/installation_node/teardown_dir +++ b/test/installation_node/teardown_dir @@ -12,4 +12,3 @@ fi if [ -f ".nvmrc.bak" ]; then mv .nvmrc.bak .nvmrc fi - diff --git a/test/slow/node 0.6.21 should install 0.6.21-pre b/test/slow/node 0.6.21 should install 0.6.21-pre index 7e68a26..f326add 100755 --- a/test/slow/node 0.6.21 should install 0.6.21-pre +++ b/test/slow/node 0.6.21 should install 0.6.21-pre @@ -9,4 +9,3 @@ die () { echo "$@" ; exit 1; } nvm install 0.6.21 || die 'v0.6.21 installation failed' [ "_$(node -v)" = "_v0.6.21-pre" ] || die "v0.6.21-pre not installed with v0.6.21, got $(node -v)" [ "_$(nvm current)" = "_v0.6.21" ] || die "v0.6.21-pre not reported as v0.6.21, got $(nvm current)" - diff --git "a/test/slow/nvm exec/Preamble works and respects \"silent\" flag" "b/test/slow/nvm exec/Preamble works and respects \"silent\" flag" index c8c67a4..08d0410 100755 --- "a/test/slow/nvm exec/Preamble works and respects \"silent\" flag" +++ "b/test/slow/nvm exec/Preamble works and respects \"silent\" flag" @@ -28,4 +28,3 @@ ${NPM_VERSION_ONE}" OUTPUT="$(nvm exec --silent 1 npm --version | head -1)" EXPECTED_OUTPUT="${NPM_VERSION_ONE}" [ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "\`nvm exec --silent\` failed to suppress io.js preamble; expected '$EXPECTED_OUTPUT', got '$OUTPUT'" - diff --git "a/test/slow/nvm exec/Running \"nvm exec\" should pick up .nvmrc version" "b/test/slow/nvm exec/Running \"nvm exec\" should pick up .nvmrc version" index 6062464..8d3dcae 100755 --- "a/test/slow/nvm exec/Running \"nvm exec\" should pick up .nvmrc version" +++ "b/test/slow/nvm exec/Running \"nvm exec\" should pick up .nvmrc version" @@ -14,4 +14,3 @@ echo "0.10.7" > .nvmrc [ "$(nvm exec npm --version | tail -1)" = "$NPM_VERSION_TEN" ] || die "\`nvm exec\` failed to run with the .nvmrc version" [ "$(nvm exec npm --version | head -1)" = "Found '$PWD/.nvmrc' with version <0.10.7>" ] || die "\`nvm exec\` failed to print out the \"found in .nvmrc\" message" - diff --git a/test/slow/nvm exec/setup_dir b/test/slow/nvm exec/setup_dir index e7853d8..7921742 100755 --- a/test/slow/nvm exec/setup_dir +++ b/test/slow/nvm exec/setup_dir @@ -8,4 +8,3 @@ nvm install --lts if [ -f ".nvmrc" ]; then mv .nvmrc .nvmrc.bak fi - diff --git a/test/slow/nvm exec/teardown_dir b/test/slow/nvm exec/teardown_dir index ab6c7fc..b16b416 100755 --- a/test/slow/nvm exec/teardown_dir +++ b/test/slow/nvm exec/teardown_dir @@ -11,4 +11,3 @@ rm .nvmrc if [ -f ".nvmrc.bak" ]; then mv .nvmrc.bak .nvmrc fi - diff --git "a/test/slow/nvm reinstall-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" "b/test/slow/nvm reinstall-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" index c0f59f2..d5f8571 100755 --- "a/test/slow/nvm reinstall-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" +++ "b/test/slow/nvm reinstall-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" @@ -15,4 +15,3 @@ ACTUAL_MSG="$(nvm reinstall-packages 0.10.28 2>&1 > /dev/null)" EXPECTED_ERROR_CODE="2" ACTUAL_ERROR_CODE="$(nvm reinstall-packages 0.10.28 > /dev/null 2>&1 ; echo $?)" [ "~$ACTUAL_ERROR_CODE" = "~$EXPECTED_ERROR_CODE" ] || die "'nvm use 0.10.28 && nvm reinstall-packages 0.10.28' did not fail with the right error code: expected '$EXPECTED_ERROR_CODE', got '$ACTUAL_ERROR_CODE'" - diff --git a/test/slow/nvm reinstall-packages/setup_dir b/test/slow/nvm reinstall-packages/setup_dir index 7648954..a959f84 100755 --- a/test/slow/nvm reinstall-packages/setup_dir +++ b/test/slow/nvm reinstall-packages/setup_dir @@ -7,4 +7,3 @@ nvm install 0.10.29 if [ -f ".nvmrc" ]; then mv .nvmrc .nvmrc.bak fi - diff --git a/test/slow/nvm reinstall-packages/teardown_dir b/test/slow/nvm reinstall-packages/teardown_dir index 13ea150..bd93f00 100755 --- a/test/slow/nvm reinstall-packages/teardown_dir +++ b/test/slow/nvm reinstall-packages/teardown_dir @@ -9,4 +9,3 @@ rm -f .nvmrc if [ -f ".nvmrc.bak" ]; then mv .nvmrc.bak .nvmrc fi - diff --git "a/test/slow/nvm run/Running \"nvm run --harmony --version\" should work" "b/test/slow/nvm run/Running \"nvm run --harmony --version\" should work" index 4e2f18b..28912d1 100755 --- "a/test/slow/nvm run/Running \"nvm run --harmony --version\" should work" +++ "b/test/slow/nvm run/Running \"nvm run --harmony --version\" should work" @@ -6,4 +6,3 @@ die () { echo "$@" ; exit 1; } nvm run 0.10.7 --harmony --version [ "_$(nvm run 0.10.7 --harmony --version 2>/dev/null | tail -1)" = "_v0.10.7" ] || die "\`nvm run --harmony --version\` failed to run with the correct version" - diff --git "a/test/slow/nvm run/Running \"nvm run 0.x\" should work" "b/test/slow/nvm run/Running \"nvm run 0.x\" should work" index ce26349..d537d4a 100755 --- "a/test/slow/nvm run/Running \"nvm run 0.x\" should work" +++ "b/test/slow/nvm run/Running \"nvm run 0.x\" should work" @@ -6,4 +6,3 @@ die () { echo "$@" ; exit 1; } \. ../../../nvm.sh [ "$(nvm run 0.10.7 --version | tail -1)" = "v0.10.7" ] || die "\`nvm run\` failed to run with the correct version" - diff --git "a/test/slow/nvm run/Running \"nvm run\" should pick up .nvmrc version" "b/test/slow/nvm run/Running \"nvm run\" should pick up .nvmrc version" index c3cb81e..3273ea0 100755 --- "a/test/slow/nvm run/Running \"nvm run\" should pick up .nvmrc version" +++ "b/test/slow/nvm run/Running \"nvm run\" should pick up .nvmrc version" @@ -10,4 +10,3 @@ echo "0.10.7" > .nvmrc [ "$(nvm run --version | tail -1)" = "v0.10.7" ] || die "\`nvm run\` failed to run with the .nvmrc version" [ "$(nvm run --version | head -1)" = "Found '$PWD/.nvmrc' with version <0.10.7>" ] || die "\`nvm run\` failed to print out the \"found in .nvmrc\" message" - diff --git a/test/slow/nvm run/setup_dir b/test/slow/nvm run/setup_dir index 481be49..0fde4d4 100755 --- a/test/slow/nvm run/setup_dir +++ b/test/slow/nvm run/setup_dir @@ -9,4 +9,3 @@ nvm install --lts if [ -f ".nvmrc" ]; then mv .nvmrc .nvmrc.bak fi - diff --git a/test/slow/nvm run/teardown_dir b/test/slow/nvm run/teardown_dir index d3274c8..53e2838 100755 --- a/test/slow/nvm run/teardown_dir +++ b/test/slow/nvm run/teardown_dir @@ -12,4 +12,3 @@ rm .nvmrc if [ -f ".nvmrc.bak" ]; then mv .nvmrc.bak .nvmrc fi - diff --git a/test/slow/nvm_get_latest/nvm_get_latest b/test/slow/nvm_get_latest/nvm_get_latest index 306d371..67345e3 100755 --- a/test/slow/nvm_get_latest/nvm_get_latest +++ b/test/slow/nvm_get_latest/nvm_get_latest @@ -119,4 +119,3 @@ EXIT_CODE="$(nvm_get_latest >/dev/null 2>&1 ; echo $?)" cleanup - diff --git a/test/slow/nvm_get_latest/nvm_get_latest failed redirect b/test/slow/nvm_get_latest/nvm_get_latest failed redirect index e8ee63a..97534e9 100755 --- a/test/slow/nvm_get_latest/nvm_get_latest failed redirect +++ b/test/slow/nvm_get_latest/nvm_get_latest failed redirect @@ -23,4 +23,3 @@ EXIT_CODE="$(nvm_get_latest >/dev/null 2>&1 ; echo $?)" || die "failed redirect did not exit with code 2, got $EXIT_CODE" cleanup - diff --git a/test/sourcing/Sourcing nvm.sh should use the default if available b/test/sourcing/Sourcing nvm.sh should use the default if available index e77edf1..67e3048 100755 --- a/test/sourcing/Sourcing nvm.sh should use the default if available +++ b/test/sourcing/Sourcing nvm.sh should use the default if available @@ -15,4 +15,3 @@ NVM_LS_CURRENT="$(nvm ls current | strip_colors | \grep -o v0.10.1)" NVM_ALIAS_DEFAULT="$(nvm alias default | strip_colors)" [ "_$NVM_ALIAS_DEFAULT" = "_default -> 0.10.1 (-> v0.10.1)" ] \ || die "'nvm alias default did not return 'default -> 0.10.1 (-> v0.10.1)', got '$NVM_ALIAS_DEFAULT'" - diff --git a/test/sourcing/Sourcing nvm.sh with --install and .nvmrc should install it b/test/sourcing/Sourcing nvm.sh with --install and .nvmrc should install it index 7510c88..35ed553 100755 --- a/test/sourcing/Sourcing nvm.sh with --install and .nvmrc should install it +++ b/test/sourcing/Sourcing nvm.sh with --install and .nvmrc should install it @@ -25,4 +25,3 @@ nvm_version 0.10.2 >/dev/null 2>&1 || die "v0.10.2 not installed: $(nvm ls)" NVM_LS_CURRENT="$(nvm ls current | \grep -o v0.10.2)" [ "_$NVM_LS_CURRENT" = '_v0.10.2' ] || die "'nvm ls current' did not return '-> v0.10.2', got '$NVM_LS_CURRENT' `nvm ls`" - diff --git a/test/sourcing/Sourcing nvm.sh with --install should install the default b/test/sourcing/Sourcing nvm.sh with --install should install the default index d23f32a..8791455 100755 --- a/test/sourcing/Sourcing nvm.sh with --install should install the default +++ b/test/sourcing/Sourcing nvm.sh with --install should install the default @@ -30,4 +30,3 @@ NVM_LS_CURRENT="$(nvm ls current | strip_colors | command grep -o v0.10.2)" NVM_ALIAS_DEFAULT="$(nvm alias default | strip_colors)" [ "_$NVM_ALIAS_DEFAULT" = "_default -> 0.10.2 (-> v0.10.2)" ] \ || die "'nvm alias default did not return 'default -> 0.10.2 (-> v0.10.2)', got '$NVM_ALIAS_DEFAULT'" - diff --git a/test/sourcing/Sourcing nvm.sh with --no-use should not use anything b/test/sourcing/Sourcing nvm.sh with --no-use should not use anything index 2b40909..5b98d4b 100755 --- a/test/sourcing/Sourcing nvm.sh with --no-use should not use anything +++ b/test/sourcing/Sourcing nvm.sh with --no-use should not use anything @@ -29,4 +29,3 @@ echo 'sourcing complete.' NVM_CURRENT="$(nvm current)" [ "_$NVM_CURRENT" = '_none' ] || [ "_$NVM_CURRENT" = '_system' ] || die "'nvm current' did not return 'none' or 'system', got '$NVM_CURRENT' `nvm ls`" - diff --git a/test/sourcing/setup b/test/sourcing/setup index c87df10..44b688e 100755 --- a/test/sourcing/setup +++ b/test/sourcing/setup @@ -11,4 +11,3 @@ rm -rf ../../v0.9.12 nvm install 0.10.1 || echo >&2 'nvm install 0.10.1 failed' nvm unalias default || 'removing default alias failed' nvm unload || echo >&2 'nvm unload failed' - diff --git a/test/sourcing/teardown b/test/sourcing/teardown index 6a31472..00a8749 100755 --- a/test/sourcing/teardown +++ b/test/sourcing/teardown @@ -4,4 +4,3 @@ rm -rf ../../alias rm -rf ../../v0.10.1 rm -rf ../../v0.10.2 rm -f ../../.nvmrc - From 41ec44f6b5bd2ed7fbd4b4e18068130be891db9e Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 26 Feb 2018 01:02:41 +0800 Subject: [PATCH 1084/1426] Add missing final newline in test script --- .../install from source without V8 snapshot for ARM | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/installation_node/install from source without V8 snapshot for ARM b/test/installation_node/install from source without V8 snapshot for ARM index df6e54a..fe8241d 100755 --- a/test/installation_node/install from source without V8 snapshot for ARM +++ b/test/installation_node/install from source without V8 snapshot for ARM @@ -22,4 +22,4 @@ nvm install -s $NVM_TEST_VERSION || die "'nvm install -s $NVM_TEST_VERSION' fail node --version | grep $NVM_TEST_VERSION || "'node --version | grep $NVM_TEST_VERSION' failed" # Check V8 snapshot isn't compiled -node -p "if(! process.config.variables.v8_use_snapshot) { console.log('no-snapshot'); }" | grep "no-snapshot" || "'node -p \"if(! process.config.variables.v8_use_snapshot) { console.log('no-snapshot'); }\" | grep \"no-snapshot\"' failed" \ No newline at end of file +node -p "if(! process.config.variables.v8_use_snapshot) { console.log('no-snapshot'); }" | grep "no-snapshot" || "'node -p \"if(! process.config.variables.v8_use_snapshot) { console.log('no-snapshot'); }\" | grep \"no-snapshot\"' failed" From 9f34b3e95ca11ad00b353b078a049e7680e2829f Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 26 Feb 2018 01:03:01 +0800 Subject: [PATCH 1085/1426] Remove trailing space --- README.md | 2 +- test/install_script/nvm_install_dir | 2 +- test/install_script/nvm_source | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 13a5f73..bea4fcc 100644 --- a/README.md +++ b/README.md @@ -101,7 +101,7 @@ If you're running a system without prepackaged binary available, which means you - [bass](https://github.com/edc/bass) allows you to use utilities written for Bash in fish shell - [fast-nvm-fish](https://github.com/brigand/fast-nvm-fish) only works with version numbers (not aliases) but doesn't significantly slow your shell startup - [plugin-nvm](https://github.com/derekstavis/plugin-nvm) plugin for [Oh My Fish](https://github.com/oh-my-fish/oh-my-fish), which makes nvm and its completions available in fish shell - - [fnm](https://github.com/fisherman/fnm) - [fisherman](https://github.com/fisherman/fisherman)-based version manager for fish + - [fnm](https://github.com/fisherman/fnm) - [fisherman](https://github.com/fisherman/fisherman)-based version manager for fish **Note:** We still have some problems with FreeBSD, because there is no official pre-built binary for FreeBSD, and building from source may need [patches](https://www.freshports.org/www/node/files/patch-deps_v8_src_base_platform_platform-posix.cc); see the issue ticket: - [[#900] [Bug] nodejs on FreeBSD may need to be patched ](https://github.com/creationix/nvm/issues/900) diff --git a/test/install_script/nvm_install_dir b/test/install_script/nvm_install_dir index ad43f9f..1aeea18 100755 --- a/test/install_script/nvm_install_dir +++ b/test/install_script/nvm_install_dir @@ -11,7 +11,7 @@ HOME="__home__" # NVM_DIR is set -NVM_DIR="some_dir" +NVM_DIR="some_dir" install_dir=$(nvm_install_dir) [ "_$install_dir" = "_$NVM_DIR" ] || die "nvm_install_dir should use \$NVM_DIR if it exists. Current output: $install_dir" diff --git a/test/install_script/nvm_source b/test/install_script/nvm_source index 3d2205c..9c1ec08 100755 --- a/test/install_script/nvm_source +++ b/test/install_script/nvm_source @@ -9,10 +9,10 @@ die () { echo "$@" ; cleanup ; exit 1; } NVM_ENV=testing \. ../../install.sh # nvm_source with no parameter returns the git endpoint -echo $(nvm_source) | grep "nvm.git$" > /dev/null || die "nvm_source without arguments should return the location of the git repo" +echo $(nvm_source) | grep "nvm.git$" > /dev/null || die "nvm_source without arguments should return the location of the git repo" # nvm_source with git parameter returns the location of the nvm repo -echo $(nvm_source "git") | grep "nvm.git$" > /dev/null || die "nvm_source without arguments should return the location of the git repo" +echo $(nvm_source "git") | grep "nvm.git$" > /dev/null || die "nvm_source without arguments should return the location of the git repo" # nvm_source with script parameter returns the location of nvm.sh echo $(nvm_source "script") | grep "nvm.sh$" > /dev/null || die "nvm_source \"script\" should return the location of nvm.sh" From 9c424703475bc2cbe5180520dc8230856e58b7b2 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Tue, 6 Feb 2018 08:17:20 +0800 Subject: [PATCH 1086/1426] [New] Add "$PATH" to `nvm debug` output --- nvm.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/nvm.sh b/nvm.sh index 930d0c6..1a074c4 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2397,6 +2397,7 @@ nvm() { nvm_err "\$SHLVL: ${SHLVL-}" nvm_err "\$HOME: $HOME" nvm_err "\$NVM_DIR: '$(nvm_sanitize_path "$NVM_DIR")'" + nvm_err "\$PATH: $(nvm_sanitize_path "$PATH")" nvm_err "\$PREFIX: '$(nvm_sanitize_path "$PREFIX")'" nvm_err "\$NPM_CONFIG_PREFIX: '$(nvm_sanitize_path "$NPM_CONFIG_PREFIX")'" nvm_err "\$NVM_NODEJS_ORG_MIRROR: '${NVM_NODEJS_ORG_MIRROR}'" From 5f53caadada39c5135e7eaaf0934ede99c9505ea Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sat, 3 Feb 2018 11:29:31 +0800 Subject: [PATCH 1087/1426] [Refactor] Use grep `-q` parameter instead of redirect to /dev/null --- nvm.sh | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/nvm.sh b/nvm.sh index 1a074c4..04315bd 100644 --- a/nvm.sh +++ b/nvm.sh @@ -827,7 +827,7 @@ nvm_resolve_alias() { break fi - if command printf "${SEEN_ALIASES}" | nvm_grep -e "^${ALIAS_TEMP}$" > /dev/null; then + if command printf "${SEEN_ALIASES}" | nvm_grep -q -e "^${ALIAS_TEMP}$" ; then ALIAS="∞" break fi @@ -972,7 +972,7 @@ nvm_ls() { local ZSH_HAS_SHWORDSPLIT_UNSET ZSH_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZSH_HAS_SHWORDSPLIT_UNSET="$(set +e ; setopt | nvm_grep shwordsplit > /dev/null ; nvm_echo $?)" + ZSH_HAS_SHWORDSPLIT_UNSET="$(set +e ; setopt | nvm_grep -q shwordsplit ; nvm_echo $?)" setopt shwordsplit fi @@ -1136,7 +1136,7 @@ nvm_ls_remote_index_tab() { ZSH_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZSH_HAS_SHWORDSPLIT_UNSET="$(set +e ; setopt | nvm_grep shwordsplit > /dev/null ; nvm_echo $?)" + ZSH_HAS_SHWORDSPLIT_UNSET="$(set +e ; setopt | nvm_grep -q shwordsplit ; nvm_echo $?)" setopt shwordsplit fi local VERSION_LIST @@ -1472,7 +1472,7 @@ nvm_print_implicit_alias() { ZSH_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZSH_HAS_SHWORDSPLIT_UNSET="$(set +e ; setopt | nvm_grep shwordsplit > /dev/null ; nvm_echo $?)" + ZSH_HAS_SHWORDSPLIT_UNSET="$(set +e ; setopt | nvm_grep -q shwordsplit ; nvm_echo $?)" setopt shwordsplit fi @@ -1507,7 +1507,7 @@ nvm_print_implicit_alias() { ZSH_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZSH_HAS_SHWORDSPLIT_UNSET="$(set +e ; setopt | nvm_grep shwordsplit > /dev/null ; nvm_echo $?)" + ZSH_HAS_SHWORDSPLIT_UNSET="$(set +e ; setopt | nvm_grep -q shwordsplit ; nvm_echo $?)" setopt shwordsplit fi @@ -1526,7 +1526,7 @@ nvm_print_implicit_alias() { ZSH_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZSH_HAS_SHWORDSPLIT_UNSET="$(set +e ; setopt | nvm_grep shwordsplit > /dev/null ; nvm_echo $?)" + ZSH_HAS_SHWORDSPLIT_UNSET="$(set +e ; setopt | nvm_grep -q shwordsplit ; nvm_echo $?)" setopt shwordsplit fi for MINOR in $LAST_TWO; do @@ -2237,7 +2237,7 @@ nvm_check_file_permissions() { local ZSH_HAS_NONOMATCH_UNSET ZSH_HAS_NONOMATCH_UNSET=1 if nvm_has "setopt"; then - ZSH_HAS_NONOMATCH_UNSET="$(set +e ; setopt | nvm_grep nonomatch > /dev/null ; nvm_echo $?)" + ZSH_HAS_NONOMATCH_UNSET="$(set +e ; setopt | nvm_grep -q nonomatch ; nvm_echo $?)" setopt nonomatch fi for FILE in $1/* $1/.[!.]* $1/..?* ; do @@ -2385,7 +2385,7 @@ nvm() { local ZSH_HAS_SHWORDSPLIT_UNSET ZSH_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZSH_HAS_SHWORDSPLIT_UNSET="$(set +e ; setopt | nvm_grep shwordsplit > /dev/null ; nvm_echo $?)" + ZSH_HAS_SHWORDSPLIT_UNSET="$(set +e ; setopt | nvm_grep -q shwordsplit ; nvm_echo $?)" setopt shwordsplit fi nvm_err "nvm --version: v$(nvm --version)" @@ -3011,7 +3011,7 @@ nvm() { local ZSH_HAS_SHWORDSPLIT_UNSET ZSH_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then - ZSH_HAS_SHWORDSPLIT_UNSET="$(set +e ; setopt | nvm_grep shwordsplit > /dev/null ; nvm_echo $?)" + ZSH_HAS_SHWORDSPLIT_UNSET="$(set +e ; setopt | nvm_grep -q shwordsplit ; nvm_echo $?)" setopt shwordsplit fi local LTS_ARG From e7b42198b4e5c1b710350198271aae1492077694 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Tue, 20 Feb 2018 03:34:43 +0800 Subject: [PATCH 1088/1426] [Fix] Improve .nvmrc reading process Fixes #1015. Fixes #1712. --- nvm.sh | 2 +- ... use\" should drop CR char automatically." | 33 +++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100755 "test/fast/Running \"nvm use\" should drop CR char automatically." diff --git a/nvm.sh b/nvm.sh index bf28b7d..23b539a 100644 --- a/nvm.sh +++ b/nvm.sh @@ -293,7 +293,7 @@ nvm_rc_version() { nvm_err "No .nvmrc file found" return 1 fi - read -r NVM_RC_VERSION < "${NVMRC_PATH}" || command printf '' + NVM_RC_VERSION="$(command head -n 1 "${NVMRC_PATH}" | command tr -d '\r')" || command printf '' if [ ! -n "${NVM_RC_VERSION}" ]; then nvm_err "Warning: empty .nvmrc file found at \"${NVMRC_PATH}\"" return 2 diff --git "a/test/fast/Running \"nvm use\" should drop CR char automatically." "b/test/fast/Running \"nvm use\" should drop CR char automatically." new file mode 100755 index 0000000..3889f47 --- /dev/null +++ "b/test/fast/Running \"nvm use\" should drop CR char automatically." @@ -0,0 +1,33 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; cleanup ; exit 1; } + +cleanup() { + unset VERSION1 VERSION2 VERSION3 + rm .nvmrc +} + +\. ../../nvm.sh + +# normal .nvmrc +printf '0.999.0\n' > .nvmrc +nvm_rc_version +VERSION1="${NVM_RC_VERSION}" + +# .nvmrc with CR char +printf '0.999.0\r\n' > .nvmrc +nvm_rc_version +VERSION2="${NVM_RC_VERSION}" + +[ "${VERSION1}" = "${VERSION2}" ] + +# .nvmrc without any newline char +printf '0.999.0' > .nvmrc +nvm_rc_version +VERSION3="${NVM_RC_VERSION}" + +[ "${VERSION1}" = "${VERSION3}" ] + +cleanup From 544c3f4caa39aa9cf964a0c869876a21871c2cac Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Wed, 21 Feb 2018 01:26:02 +0800 Subject: [PATCH 1089/1426] [New] Add EditorConfig to help maintain part of coding style --- .editorconfig | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..32de192 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,16 @@ +root = true + +[*] +tab_width = 2 +indent_size = 2 +charset = utf-8 +end_of_line = lf +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true + +[*.txt] +indent_size = false + +[Makefile] +indent_style = tab From 750571056c52f9759323cd8526415a68ba321810 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 26 Feb 2018 02:20:21 +0800 Subject: [PATCH 1090/1426] [Fix] Correct most of the wrong indentation --- CONTRIBUTING.md | 12 ++--- Makefile | 28 ++++++------ README.md | 62 +++++++++++++------------- ROADMAP.md | 2 +- test/install_script/nvm_detect_profile | 2 +- test/mocks/uname_osx_amd64 | 2 +- test/mocks/uname_osx_x86 | 2 +- 7 files changed, 55 insertions(+), 55 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0354293..4834ab4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -5,14 +5,14 @@ We love pull requests and issues, they're our favorite. However, before submitting, please review the following: For bug reports: - - Please make sure the bug is reproducible, and give us the steps to reproduce it, so that we can dig into the problem. - - Please give us as much detail as possible about your environment, so we can more easily confirm the problem. + - Please make sure the bug is reproducible, and give us the steps to reproduce it, so that we can dig into the problem. + - Please give us as much detail as possible about your environment, so we can more easily confirm the problem. For pull requests: - - Please include tests. Changes with tests will be merged very quickly. - - Please manually confirm that your changes work in `bash`, `sh`/`dash`, `ksh`, and `zsh`. Fast tests do run in these shells, but it's nice to manually verify also. - - Please maintain consistent whitespace - 2-space indentation, trailing newlines in all files, etc. - - Any time you make a change to your PR, please rebase freshly on top of master. Nobody likes merge commits. + - Please include tests. Changes with tests will be merged very quickly. + - Please manually confirm that your changes work in `bash`, `sh`/`dash`, `ksh`, and `zsh`. Fast tests do run in these shells, but it's nice to manually verify also. + - Please maintain consistent whitespace - 2-space indentation, trailing newlines in all files, etc. + - Any time you make a change to your PR, please rebase freshly on top of master. Nobody likes merge commits. Even if you don't have all of these items covered, please still feel free to submit a PR/issue! Someone else may be inspired and volunteer to complete it for you. diff --git a/Makefile b/Makefile index da90819..0fde297 100644 --- a/Makefile +++ b/Makefile @@ -41,9 +41,9 @@ list: .PHONY: $(SHELL_TARGETS) $(SHELL_TARGETS): @shell='$@'; shell=$${shell##*-}; which "$$shell" >/dev/null || { printf '\033[0;31m%s\033[0m\n' "WARNING: Cannot test with shell '$$shell': not found." >&2; exit 0; } && \ - printf '\n\033[0;34m%s\033[0m\n' "Running tests in $$shell"; \ - [ -z "$$TRAVIS_BUILD_DIR" ] && for v in $$(set | awk -F'=' '$$1 ~ "^NVM_" { print $$1 }'); do unset $$v; done && unset v; \ - for suite in $(TEST_SUITE); do $(URCHIN) -f -s $$shell test/$$suite || exit; done + printf '\n\033[0;34m%s\033[0m\n' "Running tests in $$shell"; \ + [ -z "$$TRAVIS_BUILD_DIR" ] && for v in $$(set | awk -F'=' '$$1 ~ "^NVM_" { print $$1 }'); do unset $$v; done && unset v; \ + for suite in $(TEST_SUITE); do $(URCHIN) -f -s $$shell test/$$suite || exit; done # All-tests target: invokes the specified test suites for ALL shells defined in $(SHELLS). .PHONY: test @@ -72,14 +72,14 @@ _ensure-clean: .PHONY: release release: _ensure-tag _ensure-clean _ensure-current-version @old_ver=`git describe --abbrev=0 --tags --match 'v[0-9]*.[0-9]*.[0-9]*'` || { echo "Failed to determine current version." >&2; exit 1; }; old_ver=$${old_ver#v}; \ - new_ver=`echo "$(TAG)" | sed 's/^v//'`; new_ver=$${new_ver:-patch}; \ - if printf "$$new_ver" | grep -q '^[0-9]'; then \ - semver "$$new_ver" >/dev/null || { echo 'Invalid version number specified: $(TAG) - must be major.minor.patch' >&2; exit 2; }; \ - semver -r "> $$old_ver" "$$new_ver" >/dev/null || { echo 'Invalid version number specified: $(TAG) - must be HIGHER than current one.' >&2; exit 2; } \ - else \ - new_ver=`semver -i "$$new_ver" "$$old_ver"` || { echo 'Invalid version-increment specifier: $(TAG)' >&2; exit 2; } \ - fi; \ - printf "=== Bumping version **$$old_ver** to **$$new_ver** before committing and tagging:\n=== TYPE 'proceed' TO PROCEED, anything else to abort: " && read response && [ "$$response" = 'proceed' ] || { echo 'Aborted.' >&2; exit 2; }; \ - replace "$$old_ver" "$$new_ver" -- $(VERSIONED_FILES) && \ - git commit -m "v$$new_ver" $(VERSIONED_FILES) && \ - git tag -a "v$$new_ver" + new_ver=`echo "$(TAG)" | sed 's/^v//'`; new_ver=$${new_ver:-patch}; \ + if printf "$$new_ver" | grep -q '^[0-9]'; then \ + semver "$$new_ver" >/dev/null || { echo 'Invalid version number specified: $(TAG) - must be major.minor.patch' >&2; exit 2; }; \ + semver -r "> $$old_ver" "$$new_ver" >/dev/null || { echo 'Invalid version number specified: $(TAG) - must be HIGHER than current one.' >&2; exit 2; } \ + else \ + new_ver=`semver -i "$$new_ver" "$$old_ver"` || { echo 'Invalid version-increment specifier: $(TAG)' >&2; exit 2; } \ + fi; \ + printf "=== Bumping version **$$old_ver** to **$$new_ver** before committing and tagging:\n=== TYPE 'proceed' TO PROCEED, anything else to abort: " && read response && [ "$$response" = 'proceed' ] || { echo 'Aborted.' >&2; exit 2; }; \ + replace "$$old_ver" "$$new_ver" -- $(VERSIONED_FILES) && \ + git commit -m "v$$new_ver" $(VERSIONED_FILES) && \ + git tag -a "v$$new_ver" diff --git a/README.md b/README.md index bea4fcc..3fb3273 100644 --- a/README.md +++ b/README.md @@ -70,8 +70,8 @@ command -v nvm simply close your current terminal, open a new terminal, and try verifying again. **Note:** On OS X, if you get `nvm: command not found` after running the install script, one of the following might be the reason:- - - your system may not have a [`.bash_profile file`] where the command is set up. Simply create one with `touch ~/.bash_profile` and run the install script again - - you might need to restart your terminal instance. Try opening a new tab/window in your terminal and retry. + - your system may not have a [`.bash_profile file`] where the command is set up. Simply create one with `touch ~/.bash_profile` and run the install script again + - you might need to restart your terminal instance. Try opening a new tab/window in your terminal and retry. If the above doesn't fix the problem, open your `.bash_profile` and add the following line of code: @@ -94,26 +94,26 @@ which should output 'nvm' if the installation was successful. Please note that ` If you're running a system without prepackaged binary available, which means you're going to install nodejs or io.js from its source code, you need to make sure your system has a C++ compiler. For OS X, Xcode will work, for Debian/Ubuntu based GNU/Linux, the `build-essential` and `libssl-dev` packages work. **Note:** `nvm` does not support Windows (see [#284](https://github.com/creationix/nvm/issues/284)). Two alternatives exist, which are neither supported nor developed by us: - - [nvm-windows](https://github.com/coreybutler/nvm-windows) - - [nodist](https://github.com/marcelklehr/nodist) + - [nvm-windows](https://github.com/coreybutler/nvm-windows) + - [nodist](https://github.com/marcelklehr/nodist) **Note:** `nvm` does not support [Fish] either (see [#303](https://github.com/creationix/nvm/issues/303)). Alternatives exist, which are neither supported nor developed by us: - - [bass](https://github.com/edc/bass) allows you to use utilities written for Bash in fish shell - - [fast-nvm-fish](https://github.com/brigand/fast-nvm-fish) only works with version numbers (not aliases) but doesn't significantly slow your shell startup - - [plugin-nvm](https://github.com/derekstavis/plugin-nvm) plugin for [Oh My Fish](https://github.com/oh-my-fish/oh-my-fish), which makes nvm and its completions available in fish shell - - [fnm](https://github.com/fisherman/fnm) - [fisherman](https://github.com/fisherman/fisherman)-based version manager for fish + - [bass](https://github.com/edc/bass) allows you to use utilities written for Bash in fish shell + - [fast-nvm-fish](https://github.com/brigand/fast-nvm-fish) only works with version numbers (not aliases) but doesn't significantly slow your shell startup + - [plugin-nvm](https://github.com/derekstavis/plugin-nvm) plugin for [Oh My Fish](https://github.com/oh-my-fish/oh-my-fish), which makes nvm and its completions available in fish shell + - [fnm](https://github.com/fisherman/fnm) - [fisherman](https://github.com/fisherman/fisherman)-based version manager for fish **Note:** We still have some problems with FreeBSD, because there is no official pre-built binary for FreeBSD, and building from source may need [patches](https://www.freshports.org/www/node/files/patch-deps_v8_src_base_platform_platform-posix.cc); see the issue ticket: - - [[#900] [Bug] nodejs on FreeBSD may need to be patched ](https://github.com/creationix/nvm/issues/900) - - [nodejs/node#3716](https://github.com/nodejs/node/issues/3716) + - [[#900] [Bug] nodejs on FreeBSD may need to be patched ](https://github.com/creationix/nvm/issues/900) + - [nodejs/node#3716](https://github.com/nodejs/node/issues/3716) **Note:** On OS X, if you do not have Xcode installed and you do not wish to download the ~4.3GB file, you can install the `Command Line Tools`. You can check out this blog post on how to just that: - - [How to Install Command Line Tools in OS X Mavericks & Yosemite (Without Xcode)](http://osxdaily.com/2014/02/12/install-command-line-tools-mac-os-x/) + - [How to Install Command Line Tools in OS X Mavericks & Yosemite (Without Xcode)](http://osxdaily.com/2014/02/12/install-command-line-tools-mac-os-x/) **Note:** On OS X, if you have/had a "system" node installed and want to install modules globally, keep in mind that: - - When using nvm you do not need `sudo` to globally install a module with `npm -g`, so instead of doing `sudo npm install -g grunt`, do instead `npm install -g grunt` - - If you have an `~/.npmrc` file, make sure it does not contain any `prefix` settings (which is not compatible with nvm) - - You can (but should not?) keep your previous "system" node install, but nvm will only be available to your user account (the one used to install nvm). This might cause version mismatches, as other users will be using `/usr/local/lib/node_modules/*` VS your user account using `~/.nvm/versions/node/vX.X.X/lib/node_modules/*` + - When using nvm you do not need `sudo` to globally install a module with `npm -g`, so instead of doing `sudo npm install -g grunt`, do instead `npm install -g grunt` + - If you have an `~/.npmrc` file, make sure it does not contain any `prefix` settings (which is not compatible with nvm) + - You can (but should not?) keep your previous "system" node install, but nvm will only be available to your user account (the one used to install nvm). This might cause version mismatches, as other users will be using `/usr/local/lib/node_modules/*` VS your user account using `~/.nvm/versions/node/vX.X.X/lib/node_modules/*` Homebrew installation is not supported. If you have issues with homebrew-installed `nvm`, please `brew uninstall` it, and install it using the instructions below, before filing an issue. @@ -209,20 +209,20 @@ nvm which 5.0 In place of a version pointer like "0.10" or "5.0" or "4.2.1", you can use the following special default aliases with `nvm install`, `nvm use`, `nvm run`, `nvm exec`, `nvm which`, etc: - - `node`: this installs the latest version of [`node`](https://nodejs.org/en/) - - `iojs`: this installs the latest version of [`io.js`](https://iojs.org/en/) - - `stable`: this alias is deprecated, and only truly applies to `node` `v0.12` and earlier. Currently, this is an alias for `node`. - - `unstable`: this alias points to `node` `v0.11` - the last "unstable" node release, since post-1.0, all node versions are stable. (in semver, versions communicate breakage, not stability). + - `node`: this installs the latest version of [`node`](https://nodejs.org/en/) + - `iojs`: this installs the latest version of [`io.js`](https://iojs.org/en/) + - `stable`: this alias is deprecated, and only truly applies to `node` `v0.12` and earlier. Currently, this is an alias for `node`. + - `unstable`: this alias points to `node` `v0.11` - the last "unstable" node release, since post-1.0, all node versions are stable. (in semver, versions communicate breakage, not stability). ### Long-term support Node has a [schedule](https://github.com/nodejs/LTS#lts_schedule) for long-term support (LTS) You can reference LTS versions in aliases and `.nvmrc` files with the notation `lts/*` for the latest LTS, and `lts/argon` for LTS releases from the "argon" line, for example. In addition, the following commands support LTS arguments: - - `nvm install --lts` / `nvm install --lts=argon` / `nvm install 'lts/*'` / `nvm install lts/argon` - - `nvm uninstall --lts` / `nvm uninstall --lts=argon` / `nvm uninstall 'lts/*'` / `nvm uninstall lts/argon` - - `nvm use --lts` / `nvm use --lts=argon` / `nvm use 'lts/*'` / `nvm use lts/argon` - - `nvm exec --lts` / `nvm exec --lts=argon` / `nvm exec 'lts/*'` / `nvm exec lts/argon` - - `nvm run --lts` / `nvm run --lts=argon` / `nvm run 'lts/*'` / `nvm run lts/argon` - - `nvm ls-remote --lts` / `nvm ls-remote --lts=argon` `nvm ls-remote 'lts/*'` / `nvm ls-remote lts/argon` - - `nvm version-remote --lts` / `nvm version-remote --lts=argon` / `nvm version-remote 'lts/*'` / `nvm version-remote lts/argon` + - `nvm install --lts` / `nvm install --lts=argon` / `nvm install 'lts/*'` / `nvm install lts/argon` + - `nvm uninstall --lts` / `nvm uninstall --lts=argon` / `nvm uninstall 'lts/*'` / `nvm uninstall lts/argon` + - `nvm use --lts` / `nvm use --lts=argon` / `nvm use 'lts/*'` / `nvm use lts/argon` + - `nvm exec --lts` / `nvm exec --lts=argon` / `nvm exec 'lts/*'` / `nvm exec lts/argon` + - `nvm run --lts` / `nvm run --lts=argon` / `nvm run 'lts/*'` / `nvm run lts/argon` + - `nvm ls-remote --lts` / `nvm ls-remote --lts=argon` `nvm ls-remote 'lts/*'` / `nvm ls-remote lts/argon` + - `nvm version-remote --lts` / `nvm version-remote --lts=argon` / `nvm version-remote 'lts/*'` / `nvm version-remote lts/argon` Any time your local copy of `nvm` connects to https://nodejs.org, it will re-create the appropriate local aliases for all available LTS lines. These aliases (stored under `$NVM_DIR/alias/lts`), are managed by `nvm`, and you should not modify, remove, or create these files - expect your changes to be undone, and expect meddling with these files to cause bugs that will likely not be supported. @@ -528,24 +528,24 @@ nvm@nvm-dev:~/.nvm$ Please note that it'll take about 8 minutes to build the image and the image size would be about 650MB, so it's not suitable for production usage. For more information and documentation about docker, please refer to its official website: - - https://www.docker.com/ - - https://docs.docker.com/ + - https://www.docker.com/ + - https://docs.docker.com/ ## Problems - - If you try to install a node version and the installation fails, be sure to delete the node downloads from src (`~/.nvm/src/`) or you might get an error when trying to reinstall them again or you might get an error like the following: + - If you try to install a node version and the installation fails, be sure to delete the node downloads from src (`~/.nvm/src/`) or you might get an error when trying to reinstall them again or you might get an error like the following: curl: (33) HTTP server doesn't seem to support byte ranges. Cannot resume. - - Where's my `sudo node`? Check out [#43](https://github.com/creationix/nvm/issues/43) + - Where's my `sudo node`? Check out [#43](https://github.com/creationix/nvm/issues/43) - - After the v0.8.6 release of node, nvm tries to install from binary packages. But in some systems, the official binary packages don't work due to incompatibility of shared libs. In such cases, use `-s` option to force install from source: + - After the v0.8.6 release of node, nvm tries to install from binary packages. But in some systems, the official binary packages don't work due to incompatibility of shared libs. In such cases, use `-s` option to force install from source: ```sh nvm install -s 0.8.6 ``` - - If setting the `default` alias does not establish the node version in new shells (i.e. `nvm current` yields `system`), ensure that the system's node `PATH` is set before the `nvm.sh` source line in your shell profile (see [#658](https://github.com/creationix/nvm/issues/658)) + - If setting the `default` alias does not establish the node version in new shells (i.e. `nvm current` yields `system`), ensure that the system's node `PATH` is set before the `nvm.sh` source line in your shell profile (see [#658](https://github.com/creationix/nvm/issues/658)) ## Mac OS "troubleshooting" diff --git a/ROADMAP.md b/ROADMAP.md index 08cfc6c..0f769da 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -3,7 +3,7 @@ This is a list of the primary features planned for `nvm`: - [x] Rewriting installation code paths to support installing `io.js` and `node` `v4+` [from source](https://github.com/creationix/nvm/issues/1188). - - This will include [reusing previously downloaded tarballs](https://github.com/creationix/nvm/issues/1193) that match checksums, which is a nice performance and bandwith bonus. + - This will include [reusing previously downloaded tarballs](https://github.com/creationix/nvm/issues/1193) that match checksums, which is a nice performance and bandwith bonus. - [ ] Adding opt-in environment variable support to list, download, and install `node` [release candidates](https://github.com/creationix/nvm/issues/779), and [nightly builds](https://github.com/creationix/nvm/issues/1053). - [ ] [`nvm update`](https://github.com/creationix/nvm/issues/400): the ability to autoupdate `nvm` itself - [ ] [v1.0.0](https://github.com/creationix/nvm/milestone/1), including updating the [nvm on npm](https://github.com/creationix/nvm/issues/304) to auto-install nvm properly diff --git a/test/install_script/nvm_detect_profile b/test/install_script/nvm_detect_profile index e5b71a8..ba5a6ea 100755 --- a/test/install_script/nvm_detect_profile +++ b/test/install_script/nvm_detect_profile @@ -47,7 +47,7 @@ fi # $PROFILE should override .zshrc profile detection NVM_DETECT_PROFILE="$(SHELL="/usr/bin/zsh"; PROFILE="test_profile"; nvm_detect_profile)" if [ "$NVM_DETECT_PROFILE" != "test_profile" ]; then - die "nvm_detect_profile ignored \$PROFILE" + die "nvm_detect_profile ignored \$PROFILE" fi diff --git a/test/mocks/uname_osx_amd64 b/test/mocks/uname_osx_amd64 index 8552d1d..03805ee 100755 --- a/test/mocks/uname_osx_amd64 +++ b/test/mocks/uname_osx_amd64 @@ -2,4 +2,4 @@ if [ "_$1" = "_-m" ]; then echo "x86_64" else echo "Darwin foo.local 13.4.0 Darwin Kernel Version 13.4.0: Sun Aug 17 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_X86_64 x86_64" - fi +fi diff --git a/test/mocks/uname_osx_x86 b/test/mocks/uname_osx_x86 index 0d91a7e..1a345a3 100755 --- a/test/mocks/uname_osx_x86 +++ b/test/mocks/uname_osx_x86 @@ -2,4 +2,4 @@ if [ "_$1" = "_-m" ]; then echo "i386" else echo "Darwin foo.local 13.4.0 Darwin Kernel Version 13.4.0: Sun Aug 17 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_I386 i386" - fi +fi From 5fc8bd950d05c154abdf92d48364991b30123391 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 25 Feb 2018 13:34:28 -0800 Subject: [PATCH 1091/1426] Fix whitespace --- Makefile | 8 ++++---- install.sh | 12 ++++++------ nvm.sh | 18 +++++++++--------- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/Makefile b/Makefile index 0fde297..db0c21f 100644 --- a/Makefile +++ b/Makefile @@ -74,12 +74,12 @@ release: _ensure-tag _ensure-clean _ensure-current-version @old_ver=`git describe --abbrev=0 --tags --match 'v[0-9]*.[0-9]*.[0-9]*'` || { echo "Failed to determine current version." >&2; exit 1; }; old_ver=$${old_ver#v}; \ new_ver=`echo "$(TAG)" | sed 's/^v//'`; new_ver=$${new_ver:-patch}; \ if printf "$$new_ver" | grep -q '^[0-9]'; then \ - semver "$$new_ver" >/dev/null || { echo 'Invalid version number specified: $(TAG) - must be major.minor.patch' >&2; exit 2; }; \ - semver -r "> $$old_ver" "$$new_ver" >/dev/null || { echo 'Invalid version number specified: $(TAG) - must be HIGHER than current one.' >&2; exit 2; } \ + semver "$$new_ver" >/dev/null || { echo 'Invalid version number specified: $(TAG) - must be major.minor.patch' >&2; exit 2; }; \ + semver -r "> $$old_ver" "$$new_ver" >/dev/null || { echo 'Invalid version number specified: $(TAG) - must be HIGHER than current one.' >&2; exit 2; } \ else \ - new_ver=`semver -i "$$new_ver" "$$old_ver"` || { echo 'Invalid version-increment specifier: $(TAG)' >&2; exit 2; } \ + new_ver=`semver -i "$$new_ver" "$$old_ver"` || { echo 'Invalid version-increment specifier: $(TAG)' >&2; exit 2; } \ fi; \ - printf "=== Bumping version **$$old_ver** to **$$new_ver** before committing and tagging:\n=== TYPE 'proceed' TO PROCEED, anything else to abort: " && read response && [ "$$response" = 'proceed' ] || { echo 'Aborted.' >&2; exit 2; }; \ + printf "=== Bumping version **$$old_ver** to **$$new_ver** before committing and tagging:\n=== TYPE 'proceed' TO PROCEED, anything else to abort: " && read response && [ "$$response" = 'proceed' ] || { echo 'Aborted.' >&2; exit 2; }; \ replace "$$old_ver" "$$new_ver" -- $(VERSIONED_FILES) && \ git commit -m "v$$new_ver" $(VERSIONED_FILES) && \ git tag -a "v$$new_ver" diff --git a/install.sh b/install.sh index 82e5a92..3fd6cab 100755 --- a/install.sh +++ b/install.sh @@ -68,12 +68,12 @@ nvm_download() { elif nvm_has "wget"; then # Emulate curl with wget ARGS=$(echo "$*" | command sed -e 's/--progress-bar /--progress=bar /' \ - -e 's/-L //' \ - -e 's/--compressed //' \ - -e 's/-I /--server-response /' \ - -e 's/-s /-q /' \ - -e 's/-o /-O /' \ - -e 's/-C - /-c /') + -e 's/-L //' \ + -e 's/--compressed //' \ + -e 's/-I /--server-response /' \ + -e 's/-s /-q /' \ + -e 's/-o /-O /' \ + -e 's/-C - /-c /') # shellcheck disable=SC2086 eval wget $ARGS fi diff --git a/nvm.sh b/nvm.sh index 04315bd..4db2e05 100644 --- a/nvm.sh +++ b/nvm.sh @@ -108,13 +108,13 @@ nvm_download() { elif nvm_has "wget"; then # Emulate curl with wget ARGS=$(nvm_echo "$@" | command sed -e 's/--progress-bar /--progress=bar /' \ - -e 's/--compressed //' \ - -e 's/--fail //' \ - -e 's/-L //' \ - -e 's/-I /--server-response /' \ - -e 's/-s /-q /' \ - -e 's/-o /-O /' \ - -e 's/-C - /-c /') + -e 's/--compressed //' \ + -e 's/--fail //' \ + -e 's/-L //' \ + -e 's/-I /--server-response /' \ + -e 's/-s /-q /' \ + -e 's/-o /-O /' \ + -e 's/-C - /-c /') # shellcheck disable=SC2086 eval wget $ARGS fi @@ -611,8 +611,8 @@ nvm_change_path() { nvm_echo "${3-}${2-}" # if the initial path doesn’t contain an nvm path, prepend the supplementary # path - elif ! echo "${1-}" | nvm_grep -q "${NVM_DIR}/[^/]*${2-}" && \ - ! echo "${1-}" | nvm_grep -q "${NVM_DIR}/versions/[^/]*/[^/]*${2-}"; then + elif ! echo "${1-}" | nvm_grep -q "${NVM_DIR}/[^/]*${2-}" \ + && ! echo "${1-}" | nvm_grep -q "${NVM_DIR}/versions/[^/]*/[^/]*${2-}"; then nvm_echo "${3-}${2-}:${1-}" # use sed to replace the existing nvm path with the supplementary path. This # preserves the order of the path. From 25b7f264d5fae93a26327a75d9aadf949b6185dd Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Wed, 28 Feb 2018 02:16:24 +0800 Subject: [PATCH 1092/1426] [Fix] Use `nvm_echo` instead of `echo` directly --- nvm.sh | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/nvm.sh b/nvm.sh index 4db2e05..4af98d3 100644 --- a/nvm.sh +++ b/nvm.sh @@ -163,7 +163,7 @@ nvm_install_latest_npm() { NVM_NPM_CMD='npm' if [ "${NVM_DEBUG-}" = 1 ]; then nvm_echo "Detected node version ${NODE_VERSION}, npm version v${NPM_VERSION}" - NVM_NPM_CMD='echo npm' + NVM_NPM_CMD='nvm_echo npm' fi local NVM_IS_0_6 @@ -611,8 +611,8 @@ nvm_change_path() { nvm_echo "${3-}${2-}" # if the initial path doesn’t contain an nvm path, prepend the supplementary # path - elif ! echo "${1-}" | nvm_grep -q "${NVM_DIR}/[^/]*${2-}" \ - && ! echo "${1-}" | nvm_grep -q "${NVM_DIR}/versions/[^/]*/[^/]*${2-}"; then + elif ! nvm_echo "${1-}" | nvm_grep -q "${NVM_DIR}/[^/]*${2-}" \ + && ! nvm_echo "${1-}" | nvm_grep -q "${NVM_DIR}/versions/[^/]*/[^/]*${2-}"; then nvm_echo "${3-}${2-}:${1-}" # use sed to replace the existing nvm path with the supplementary path. This # preserves the order of the path. @@ -821,7 +821,7 @@ nvm_resolve_alias() { local SEEN_ALIASES SEEN_ALIASES="${ALIAS}" while true; do - ALIAS_TEMP="$(nvm_alias "${ALIAS}" 2> /dev/null || echo)" + ALIAS_TEMP="$(nvm_alias "${ALIAS}" 2> /dev/null || nvm_echo)" if [ -z "${ALIAS_TEMP}" ]; then break @@ -1021,7 +1021,7 @@ nvm_ls() { PATTERN='v' SEARCH_PATTERN='.*' else - SEARCH_PATTERN="$(echo "${PATTERN}" | command sed 's#\.#\\\.#g;')" + SEARCH_PATTERN="$(nvm_echo "${PATTERN}" | command sed 's#\.#\\\.#g;')" fi if [ -n "${NVM_DIRS_TO_SEARCH1}${NVM_DIRS_TO_SEARCH2}${NVM_DIRS_TO_SEARCH3}" ]; then VERSIONS="$(command find "${NVM_DIRS_TO_SEARCH1}"/* "${NVM_DIRS_TO_SEARCH2}"/* "${NVM_DIRS_TO_SEARCH3}"/* -name . -o -type d -prune -o -path "${PATTERN}*" \ @@ -1579,7 +1579,7 @@ nvm_get_arch() { # kernel. if [ "_$NVM_OS" = "_sunos" ]; then if HOST_ARCH=$(pkg_info -Q MACHINE_ARCH pkg_install); then - HOST_ARCH=$(echo "${HOST_ARCH}" | command tail -1) + HOST_ARCH=$(nvm_echo "${HOST_ARCH}" | command tail -1) else HOST_ARCH=$(isainfo -n) fi @@ -2273,7 +2273,7 @@ nvm() { fi local DEFAULT_IFS - DEFAULT_IFS=" $(echo t | command tr t \\t) + DEFAULT_IFS=" $(nvm_echo t | command tr t \\t) " if [ "${IFS}" != "${DEFAULT_IFS}" ]; then IFS="${DEFAULT_IFS}" nvm "$@" @@ -2584,7 +2584,7 @@ nvm() { [ -n "${line}" ] || continue # Skip comment lines that begin with `#`. - [ "$(echo "$line" | command cut -c1)" != "#" ] || continue + [ "$(nvm_echo "$line" | command cut -c1)" != "#" ] || continue # Fail on lines that have multiple space-separated words case ${line} in @@ -3458,7 +3458,7 @@ nvm_install_default_packages() { nvm_supports_source_options() { # shellcheck disable=SC1091 - [ "_$(echo '[ $# -gt 0 ] && echo $1' | . /dev/stdin yes 2> /dev/null)" = "_yes" ] + [ "_$(nvm_echo '[ $# -gt 0 ] && nvm_echo $1' | . /dev/stdin yes 2> /dev/null)" = "_yes" ] } nvm_supports_xz() { From d6fa67166c479386008dfca68bc140351b9b3c9b Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Tue, 27 Feb 2018 14:05:33 +0800 Subject: [PATCH 1093/1426] [Fix] `reinstall-packages`: Prevent install/link when no packages found Fixes #1744. --- nvm.sh | 28 ++++++++++++------- test/slow/nvm reinstall-packages/setup_dir | 2 ++ test/slow/nvm reinstall-packages/teardown_dir | 2 ++ .../works with no installs | 18 ++++++++++++ 4 files changed, 40 insertions(+), 10 deletions(-) create mode 100755 test/slow/nvm reinstall-packages/works with no installs diff --git a/nvm.sh b/nvm.sh index 4af98d3..2dc7edf 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3339,19 +3339,27 @@ nvm() { LINKS="${NPMLIST##* //// }" nvm_echo "Reinstalling global packages from $VERSION..." - nvm_echo "$INSTALLS" | command xargs npm install -g --quiet + if [ -n "${INSTALLS}" ]; then + nvm_echo "$INSTALLS" | command xargs npm install -g --quiet + else + nvm_echo "No installed global packages found..." + fi nvm_echo "Linking global packages from $VERSION..." - ( - set -f; IFS=' + if [ -n "${LINKS}" ]; then + ( + set -f; IFS=' ' # necessary to turn off variable expansion except for newlines - for LINK in $LINKS; do - set +f; unset IFS # restore variable expansion - if [ -n "$LINK" ]; then - (nvm_cd "$LINK" && npm link) - fi - done - ) + for LINK in $LINKS; do + set +f; unset IFS # restore variable expansion + if [ -n "$LINK" ]; then + (nvm_cd "$LINK" && npm link) + fi + done + ) + else + nvm_echo "No linked global packages found..." + fi ;; "clear-cache" ) command rm -f "$NVM_DIR/v*" "$(nvm_version_dir)" 2>/dev/null diff --git a/test/slow/nvm reinstall-packages/setup_dir b/test/slow/nvm reinstall-packages/setup_dir index a959f84..2dd0f3e 100755 --- a/test/slow/nvm reinstall-packages/setup_dir +++ b/test/slow/nvm reinstall-packages/setup_dir @@ -3,6 +3,8 @@ \. ../../../nvm.sh nvm install 0.10.28 nvm install 0.10.29 +nvm install 4.7.1 +nvm install 4.7.2 if [ -f ".nvmrc" ]; then mv .nvmrc .nvmrc.bak diff --git a/test/slow/nvm reinstall-packages/teardown_dir b/test/slow/nvm reinstall-packages/teardown_dir index bd93f00..95bd476 100755 --- a/test/slow/nvm reinstall-packages/teardown_dir +++ b/test/slow/nvm reinstall-packages/teardown_dir @@ -3,6 +3,8 @@ \. ../../../nvm.sh nvm uninstall v0.10.28 nvm uninstall v0.10.29 +nvm uninstall v4.7.1 +nvm uninstall v4.7.2 rm -f .nvmrc diff --git a/test/slow/nvm reinstall-packages/works with no installs b/test/slow/nvm reinstall-packages/works with no installs new file mode 100755 index 0000000..ade209a --- /dev/null +++ b/test/slow/nvm reinstall-packages/works with no installs @@ -0,0 +1,18 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +get_packages() { + npm list -g --depth=0 | \sed -e '1 d' -e 's/^.* \(.*\)@.*/\1/' -e '/^npm$/ d' | xargs +} + +nvm use 4.7.2 +ORIGINAL_PACKAGES=$(get_packages) + +nvm reinstall-packages 4.7.1 +FINAL_PACKAGES=$(get_packages) + +[ -z "${ORIGINAL_PACKAGES}" ] || die "original packages were not empty: ${ORIGINAL_PACKAGES}" +[ -z "${FINAL_PACKAGES}" ] || die "final packages were not empty: ${FINAL_PACKAGES}" From 2859a19bbd5a418aec00b6b9610bda55a8824ebb Mon Sep 17 00:00:00 2001 From: Josh Soref Date: Tue, 6 Mar 2018 04:38:01 +0000 Subject: [PATCH 1094/1426] [Docs] fix spelling --- Dockerfile | 2 +- README.md | 2 +- ROADMAP.md | 2 +- nvm.sh | 4 ++-- test/fast/Unit tests/node_version_has_solaris_binary | 2 +- test/fast/Unit tests/nvm_alias_path | 2 +- test/fast/Unit tests/nvm_has_solaris_binary | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Dockerfile b/Dockerfile index b0cf682..79cb15b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,7 +24,7 @@ ENV UBUNTU_APT_SITE ubuntu.cs.utah.edu # Disable src package source RUN sed -i 's/^deb-src\ /\#deb-src\ /g' /etc/apt/sources.list -# Replace origin apt pacakge site with the mirror site +# Replace origin apt package site with the mirror site RUN sed -E -i "s/([a-z]+.)?archive.ubuntu.com/$UBUNTU_APT_SITE/g" /etc/apt/sources.list RUN sed -i "s/security.ubuntu.com/$UBUNTU_APT_SITE/g" /etc/apt/sources.list diff --git a/README.md b/README.md index 3fb3273..952aad1 100644 --- a/README.md +++ b/README.md @@ -508,7 +508,7 @@ To make the development and testing work easier, we have a Dockerfile for develo $ docker build -t nvm-dev . ``` -This will package your current nvm repository with our pre-defiend development environment into a docker image named `nvm-dev`, once it's built with success, validate your image via `docker images`: +This will package your current nvm repository with our pre-defined development environment into a docker image named `nvm-dev`, once it's built with success, validate your image via `docker images`: ```sh $ docker images diff --git a/ROADMAP.md b/ROADMAP.md index 0f769da..80e89b8 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -3,7 +3,7 @@ This is a list of the primary features planned for `nvm`: - [x] Rewriting installation code paths to support installing `io.js` and `node` `v4+` [from source](https://github.com/creationix/nvm/issues/1188). - - This will include [reusing previously downloaded tarballs](https://github.com/creationix/nvm/issues/1193) that match checksums, which is a nice performance and bandwith bonus. + - This will include [reusing previously downloaded tarballs](https://github.com/creationix/nvm/issues/1193) that match checksums, which is a nice performance and bandwidth bonus. - [ ] Adding opt-in environment variable support to list, download, and install `node` [release candidates](https://github.com/creationix/nvm/issues/779), and [nightly builds](https://github.com/creationix/nvm/issues/1053). - [ ] [`nvm update`](https://github.com/creationix/nvm/issues/400): the ability to autoupdate `nvm` itself - [ ] [v1.0.0](https://github.com/creationix/nvm/milestone/1), including updating the [nvm on npm](https://github.com/creationix/nvm/issues/304) to auto-install nvm properly diff --git a/nvm.sh b/nvm.sh index 2dc7edf..e646e6e 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2176,7 +2176,7 @@ iojs_version_has_solaris_binary() { # Succeeds if $NODE_VERSION represents a node version that has a # Solaris binary, fails otherwise. # Currently, node versions starting from v0.8.6 have a Solaris binary -# avaliable. +# available. node_version_has_solaris_binary() { local NODE_VERSION NODE_VERSION="$1" @@ -2589,7 +2589,7 @@ nvm() { # Fail on lines that have multiple space-separated words case ${line} in *\ * ) - nvm_err "Only one package per line is allowed in the ${NVM_DIR}/default-packages file. Please remove any lines with multiple space-seperated values." + nvm_err "Only one package per line is allowed in the ${NVM_DIR}/default-packages file. Please remove any lines with multiple space-separated values." return 1 ;; esac diff --git a/test/fast/Unit tests/node_version_has_solaris_binary b/test/fast/Unit tests/node_version_has_solaris_binary index b9c72f8..bb70a99 100755 --- a/test/fast/Unit tests/node_version_has_solaris_binary +++ b/test/fast/Unit tests/node_version_has_solaris_binary @@ -16,7 +16,7 @@ assert_not_ok node_version_has_solaris_binary "v3.3.1" # Valid io.js version numbers that have a Solaris binary fail assert_not_ok node_version_has_solaris_binary "iojs-v3.3.1" -# Invvalid io.js version numbers fail +# Invalid io.js version numbers fail assert_not_ok node_version_has_solaris_binary "iojs-v0.12.7" # Valid node version numbers that don't have a Solaris binary fail diff --git a/test/fast/Unit tests/nvm_alias_path b/test/fast/Unit tests/nvm_alias_path index e86d87a..fe304af 100755 --- a/test/fast/Unit tests/nvm_alias_path +++ b/test/fast/Unit tests/nvm_alias_path @@ -4,4 +4,4 @@ die () { echo "$@" ; exit 1; } \. ../../../nvm.sh -[ "_$(nvm_alias_path)" = "_$NVM_DIR/alias" ] || die "nvm_alias_path did not requrn correct location" +[ "_$(nvm_alias_path)" = "_$NVM_DIR/alias" ] || die "nvm_alias_path did not return correct location" diff --git a/test/fast/Unit tests/nvm_has_solaris_binary b/test/fast/Unit tests/nvm_has_solaris_binary index 83ca97e..9d949e4 100755 --- a/test/fast/Unit tests/nvm_has_solaris_binary +++ b/test/fast/Unit tests/nvm_has_solaris_binary @@ -16,7 +16,7 @@ assert_not_ok nvm_has_solaris_binary "v3.3.1" # Valid io.js version numbers that have a Solaris binary succeed assert_ok nvm_has_solaris_binary "iojs-v3.3.1" -# Invvalid io.js version numbers fail +# Invalid io.js version numbers fail assert_not_ok nvm_has_solaris_binary "iojs-v0.12.7" # Valid node version numbers that don't have a Solaris binary fail From 2850e65b6232a8964826693e20e73809c774082b Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sat, 3 Mar 2018 21:18:42 +0800 Subject: [PATCH 1095/1426] [Docs] Fix some typos --- .github/ISSUE_TEMPLATE.md | 2 +- README.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index ee491b8..a90ee15 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -21,7 +21,7 @@ ```
-- How did you install `nvm`? (e.g. install script in readme, homebrew): +- How did you install `nvm`? (e.g. install script in readme, Homebrew): - What steps did you perform? diff --git a/README.md b/README.md index 952aad1..5f18e07 100644 --- a/README.md +++ b/README.md @@ -212,7 +212,7 @@ In place of a version pointer like "0.10" or "5.0" or "4.2.1", you can use the f - `node`: this installs the latest version of [`node`](https://nodejs.org/en/) - `iojs`: this installs the latest version of [`io.js`](https://iojs.org/en/) - `stable`: this alias is deprecated, and only truly applies to `node` `v0.12` and earlier. Currently, this is an alias for `node`. - - `unstable`: this alias points to `node` `v0.11` - the last "unstable" node release, since post-1.0, all node versions are stable. (in semver, versions communicate breakage, not stability). + - `unstable`: this alias points to `node` `v0.11` - the last "unstable" node release, since post-1.0, all node versions are stable. (in SemVer, versions communicate breakage, not stability). ### Long-term support Node has a [schedule](https://github.com/nodejs/LTS#lts_schedule) for long-term support (LTS) You can reference LTS versions in aliases and `.nvmrc` files with the notation `lts/*` for the latest LTS, and `lts/argon` for LTS releases from the "argon" line, for example. In addition, the following commands support LTS arguments: @@ -485,7 +485,7 @@ set -e ## Installing nvm on Alpine Linux In order to provide the best performance (and other optimisations), nvm will download and install pre-compiled binaries for Node (and npm) when you run `nvm install X`. The Node project compiles, tests and hosts/provides pre-these compiled binaries which are built for mainstream/traditional Linux distributions (such as Debian, Ubuntu, CentOS, RedHat et al). -Alpine Linux, unlike mainstream/traditional Linux distributions, is based on [busybox](https://www.busybox.net/), a very compact (~5MB) Linux distribution. Busybox (and thus Alpine Linux) uses a different C/C++ stack to most mainstream/traditional Linux distributions - [musl](https://www.musl-libc.org/). This makes binary programs built for such mainstream/traditional incompatible with Alpine Linux, thus we cannot simply `nvm install X` on Alpine Linux and expect the downloaded binary to run correctly - you'll likely see "...does not exist" errors if you try that. +Alpine Linux, unlike mainstream/traditional Linux distributions, is based on [BusyBox](https://www.busybox.net/), a very compact (~5MB) Linux distribution. BusyBox (and thus Alpine Linux) uses a different C/C++ stack to most mainstream/traditional Linux distributions - [musl](https://www.musl-libc.org/). This makes binary programs built for such mainstream/traditional incompatible with Alpine Linux, thus we cannot simply `nvm install X` on Alpine Linux and expect the downloaded binary to run correctly - you'll likely see "...does not exist" errors if you try that. There is a `-s` flag for `nvm install` which requests nvm download Node source and compile it locally. From 0e3bb2cc47a16854d400982ad4993bf8591c8b92 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 14 Mar 2018 00:13:07 -0700 Subject: [PATCH 1096/1426] [Fix] ensure --reinstall-packages-from has a version number. Fixes #1760. --- nvm.sh | 8 ++++++++ ...stall-packages-from\" requires a valid version" | 14 ++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/nvm.sh b/nvm.sh index e646e6e..66eba65 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2558,8 +2558,16 @@ nvm() { case "$1" in --reinstall-packages-from=*) PROVIDED_REINSTALL_PACKAGES_FROM="$(nvm_echo "$1" | command cut -c 27-)" + if [ -z "${PROVIDED_REINSTALL_PACKAGES_FROM}" ]; then + nvm_err 'If --reinstall-packages-from is provided, it must point to an installed version of node.' + return 6 + fi REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM")" ||: ;; + --reinstall-packages-from) + nvm_err 'If --reinstall-packages-from is provided, it must point to an installed version of node using `=`.' + return 6 + ;; --copy-packages-from=*) PROVIDED_REINSTALL_PACKAGES_FROM="$(nvm_echo "$1" | command cut -c 22-)" REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM")" ||: diff --git "a/test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" "b/test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" index b2a955a..36e1127 100755 --- "a/test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" +++ "b/test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" @@ -39,4 +39,18 @@ set -e [ $INSTALL_EXIT_CODE -eq 4 ] \ || die ""nvm install --reinstall-packages-from" should exit with code 4 when given the same version, got $INSTALL_EXIT_CODE" +set +ex # needed for stderr +INSTALL_ERROR_MSG="$(nvm install v0.10.5 --reinstall-packages-from 2>&1)" +set -ex +EXPECTED_ERROR_MSG='If --reinstall-packages-from is provided, it must point to an installed version of node using `=`.' +[ "~$INSTALL_ERROR_MSG" = "~$EXPECTED_ERROR_MSG" ] \ + || die ""nvm install --reinstall-packages-from" should fail when given an uninstalled version: expected '$EXPECTED_ERROR_MSG', got '$INSTALL_ERROR_MSG'" + +set +ex # needed for stderr +INSTALL_ERROR_MSG="$(nvm install v0.10.5 --reinstall-packages-from= 2>&1)" +set -ex +EXPECTED_ERROR_MSG="If --reinstall-packages-from is provided, it must point to an installed version of node." +[ "~$INSTALL_ERROR_MSG" = "~$EXPECTED_ERROR_MSG" ] \ + || die ""nvm install --reinstall-packages-from" should fail when given an uninstalled version: expected '$EXPECTED_ERROR_MSG', got '$INSTALL_ERROR_MSG'" + cleanup From d8689f6b9aabcb2ac92691bd088eaf60a24e377a Mon Sep 17 00:00:00 2001 From: "easyaspi314 (Devin)" Date: Mon, 12 Mar 2018 10:41:05 -0400 Subject: [PATCH 1097/1426] `bash_completion`: Reduce startup time --- bash_completion | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bash_completion b/bash_completion index 989dde7..47eda3e 100644 --- a/bash_completion +++ b/bash_completion @@ -2,7 +2,7 @@ # bash completion for Node Version Manager (NVM) -if ! nvm &> /dev/null; then +if ! command -v nvm &> /dev/null; then return fi From bc87d3dd1c380298be2d624331bc83578255f5f9 Mon Sep 17 00:00:00 2001 From: Guy Lepage Date: Wed, 4 Apr 2018 19:03:03 -0400 Subject: [PATCH 1098/1426] removed global install on README.md. closes #1773 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5f18e07..cbbf247 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ export NVM_DIR="$HOME/.nvm" ``` You can customize the install source, directory, profile, and version using the `NVM_SOURCE`, `NVM_DIR`, `PROFILE`, and `NODE_VERSION` variables. -Eg: `curl ... | NVM_DIR=/usr/local/nvm bash` for a global install. Ensure that the `NVM_DIR` does not contain a trailing slash. +Eg: `curl ... | NVM_DIR="path/to/nvm"`. Ensure that the `NVM_DIR` does not contain a trailing slash. *NB. The installer can use `git`, `curl`, or `wget` to download `nvm`, whatever is available.* From 663bddee9bdb4e8391a70d5a8c277d1a2f837e89 Mon Sep 17 00:00:00 2001 From: Ed Reel Date: Mon, 9 Apr 2018 10:36:54 -0500 Subject: [PATCH 1099/1426] [docs] Add removal instructions to README.md Closes #1767. --- README.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/README.md b/README.md index cbbf247..c21bf30 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,8 @@ - [Usage](#usage-1) - [Compatibility Issues](#compatibility-issues) - [Installing nvm on Alpine Linux](#installing-nvm-on-alpine-linux) +- [Removal](#removal) + - [Manual Uninstall](#manual-uninstall) - [Docker for development environment](#docker-for-development-environment) - [Problems](#problems) - [Mac OS "troubleshooting"](#mac-os-troubleshooting) @@ -500,6 +502,22 @@ The Node project has some desire but no concrete plans (due to the overheads of As a potential alternative, @mhart (a Node contributor) has some [Docker images for Alpine Linux with Node and optionally, npm, pre-installed](https://github.com/mhart/alpine-node). +## Removal + +### Manual Uninstall + +To remove nvm manually, execute the following: +```sh +$ rm -rf "$NVM_DIR" +``` + +Edit ~/.bashrc (or other shell resource config) and remove the lines below: +```sh +export NVM_DIR="$HOME/.nvm" +[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm +[[ -r $NVM_DIR/bash_completion ]] && \. $NVM_DIR/bash_completion +``` + ## Docker for development environment To make the development and testing work easier, we have a Dockerfile for development usage, which is based on Ubuntu 14.04 base image, prepared with essential and useful tools for `nvm` development, to build the docker image of the environment, run the docker command at the root of `nvm` repository: From 74ff70aab34d0bc59ac7a919b050a7f5e501537b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 9 Apr 2018 23:23:27 -0700 Subject: [PATCH 1100/1426] [Fix] installing with an LTS name should lowercase the name before ensuring a default Fixes #1781. --- nvm.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/nvm.sh b/nvm.sh index 66eba65..4117357 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2635,6 +2635,7 @@ nvm() { fi fi if [ -n "${LTS-}" ]; then + LTS="$(echo "${LTS}" | tr '[:upper:]' '[:lower:]')" nvm_ensure_default_set "lts/${LTS}" else nvm_ensure_default_set "$provided_version" From 52f1b2489538d34a5b8c5c06d808deddedbe932d Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 9 Apr 2018 23:28:17 -0700 Subject: [PATCH 1101/1426] [Tests] fix mirrors in mocks update script --- update_test_mocks.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/update_test_mocks.sh b/update_test_mocks.sh index 4a463c1..981b32f 100755 --- a/update_test_mocks.sh +++ b/update_test_mocks.sh @@ -24,8 +24,8 @@ nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote.txt" nvm_ls_remote_iojs > "$MOCKS_DIR/nvm_ls_remote_iojs.txt" NVM_LTS=* nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote LTS.txt" NVM_LTS=argon nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote LTS argon.txt" -nvm_download -L -s "$NVM_NODEJS_ORG_MIRROR/index.tab" -o - > "$MOCKS_DIR/nodejs.org-dist-index.tab" -nvm_download -L -s "$NVM_IOJS_ORG_MIRROR/index.tab" -o - > "$MOCKS_DIR/iojs.org-dist-index.tab" +nvm_download -L -s "$(nvm_get_mirror node std)/index.tab" -o - > "$MOCKS_DIR/nodejs.org-dist-index.tab" +nvm_download -L -s "$(nvm_get_mirror iojs std)/index.tab" -o - > "$MOCKS_DIR/iojs.org-dist-index.tab" nvm ls-remote > "$MOCKS_DIR/nvm ls-remote.txt" nvm ls-remote --lts > "$MOCKS_DIR/nvm ls-remote lts.txt" nvm ls-remote node > "$MOCKS_DIR/nvm ls-remote node.txt" From 918a39a0d0b95f2e93aa7c8bc406699e9bb75045 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 9 Apr 2018 23:29:37 -0700 Subject: [PATCH 1102/1426] [Tests] update mocks --- .../mocks/nodejs.org-dist-index.tab | 146 +++++++++++++----- .../Unit tests/mocks/nvm ls-remote lts.txt | 38 ++++- .../Unit tests/mocks/nvm ls-remote node.txt | 76 ++++++++- test/fast/Unit tests/mocks/nvm ls-remote.txt | 76 ++++++++- .../mocks/nvm_ls_remote LTS argon.txt | 9 ++ .../Unit tests/mocks/nvm_ls_remote LTS.txt | 34 ++++ .../Unit tests/mocks/nvm_ls_remote stable.txt | 2 +- test/fast/Unit tests/mocks/nvm_ls_remote.txt | 72 +++++++++ .../mocks/nvm_make_alias LTS alias calls.txt | 7 +- ...nvm_print_implicit_alias remote stable.txt | 2 +- .../fast/Unit tests/nvm_ls_remote LTS aliases | 2 +- 11 files changed, 415 insertions(+), 49 deletions(-) diff --git a/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab b/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab index e1a6aed..440ab6f 100644 --- a/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab +++ b/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab @@ -1,32 +1,95 @@ version date files npm v8 uv zlib openssl modules lts -v7.7.2 2017-03-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - -v7.7.1 2017-03-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - -v7.7.0 2017-02-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - -v7.6.0 2017-02-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 4.1.2 5.5.372.40 1.11.0 1.2.11 1.0.2k 51 - -v7.5.0 2017-01-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 4.1.2 5.4.500.48 1.10.2 1.2.8 1.0.2k 51 - -v7.4.0 2017-01-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - -v7.3.0 2016-12-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - -v7.2.1 2016-12-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - -v7.2.0 2016-11-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - -v7.1.0 2016-11-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - -v7.0.0 2016-10-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.8 5.4.500.36 1.9.1 1.2.8 1.0.2j 51 - -v6.10.0 2017-02-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.10 5.1.281.93 1.9.1 1.2.8 1.0.2k 48 Boron -v6.9.5 2017-01-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2k 48 Boron -v6.9.4 2017-01-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2j 48 Boron -v6.9.3 2017-01-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2j 48 Boron -v6.9.2 2016-12-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.9 5.1.281.88 1.9.1 1.2.8 1.0.2j 48 Boron -v6.9.1 2016-10-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 Boron -v6.9.0 2016-10-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 Boron -v6.8.1 2016-10-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 - -v6.8.0 2016-10-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 - -v6.7.0 2016-09-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - -v6.6.0 2016-09-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - -v6.5.0 2016-08-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v6.4.0 2016-08-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - -v6.3.1 2016-07-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - -v6.3.0 2016-07-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v6.2.2 2016-06-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v6.2.1 2016-06-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v9.11.1 2018-04-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - +v9.11.0 2018-04-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - +v9.10.1 2018-03-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - +v9.10.0 2018-03-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - +v9.9.0 2018-03-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - +v9.8.0 2018-03-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - +v9.7.1 2018-03-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - +v9.7.0 2018-03-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - +v9.6.1 2018-02-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.1 1.2.11 1.0.2n 59 - +v9.6.0 2018-02-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.1 1.2.11 1.0.2n 59 - +v9.5.0 2018-01-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.1 1.2.11 1.0.2n 59 - +v9.4.0 2018-01-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - +v9.3.0 2017-12-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - +v9.2.1 2017-12-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2n 59 - +v9.2.0 2017-11-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - +v9.1.0 2017-11-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - +v9.0.0 2017-10-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - +v8.11.1 2018-03-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.50 1.19.1 1.2.11 1.0.2o 57 Carbon +v8.11.0 2018-03-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.50 1.19.1 1.2.11 1.0.2o 57 Carbon +v8.10.0 2018-03-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.50 1.19.1 1.2.11 1.0.2n 57 Carbon +v8.9.4 2018-01-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.1.534.50 1.15.0 1.2.11 1.0.2n 57 Carbon +v8.9.3 2017-12-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.48 1.15.0 1.2.11 1.0.2n 57 Carbon +v8.9.2 2017-12-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.48 1.15.0 1.2.11 1.0.2m 57 Carbon +v8.9.1 2017-11-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.47 1.15.0 1.2.11 1.0.2m 57 Carbon +v8.9.0 2017-10-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.46 1.15.0 1.2.11 1.0.2l 57 Carbon +v8.8.1 2017-10-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - +v8.8.0 2017-10-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - +v8.7.0 2017-10-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - +v8.6.0 2017-09-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - +v8.5.0 2017-09-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - +v8.4.0 2017-08-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - +v8.3.0 2017-08-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - +v8.2.1 2017-07-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - +v8.2.0 2017-07-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - +v8.1.4 2017-07-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.8.283.41 1.12.0 1.2.11 1.0.2l 57 - +v8.1.3 2017-06-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.8.283.41 1.12.0 1.2.11 1.0.2l 57 - +v8.1.2 2017-06-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.8.283.41 1.12.0 1.2.11 1.0.2l 57 - +v8.1.1 2017-06-13 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.8.283.41 1.12.0 1.2.11 1.0.2l 57 - +v8.1.0 2017-06-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.8.283.41 1.12.0 1.2.11 1.0.2l 57 - +v8.0.0 2017-05-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2k 57 - +v7.10.1 2017-07-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.5.372.43 1.11.0 1.2.11 1.0.2k 51 - +v7.10.0 2017-05-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.5.372.43 1.11.0 1.2.11 1.0.2k 51 - +v7.9.0 2017-04-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.5.372.43 1.11.0 1.2.11 1.0.2k 51 - +v7.8.0 2017-03-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.5.372.43 1.11.0 1.2.11 1.0.2k 51 - +v7.7.4 2017-03-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.42 1.11.0 1.2.11 1.0.2k 51 - +v7.7.3 2017-03-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - +v7.7.2 2017-03-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - +v7.7.1 2017-03-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - +v7.7.0 2017-02-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - +v7.6.0 2017-02-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.11 1.0.2k 51 - +v7.5.0 2017-01-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.4.500.48 1.10.2 1.2.8 1.0.2k 51 - +v7.4.0 2017-01-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - +v7.3.0 2016-12-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - +v7.2.1 2016-12-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - +v7.2.0 2016-11-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - +v7.1.0 2016-11-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - +v7.0.0 2016-10-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.9.1 1.2.8 1.0.2j 51 - +v6.14.1 2018-03-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2o 48 Boron +v6.14.0 2018-03-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2o 48 Boron +v6.13.1 2018-03-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2n 48 Boron +v6.13.0 2018-02-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2n 48 Boron +v6.12.3 2018-01-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.15.0 1.2.11 1.0.2n 48 Boron +v6.12.2 2017-12-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.109 1.15.0 1.2.11 1.0.2n 48 Boron +v6.12.1 2017-12-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.109 1.15.0 1.2.11 1.0.2m 48 Boron +v6.12.0 2017-11-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.108 1.15.0 1.2.11 1.0.2m 48 Boron +v6.11.5 2017-10-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.108 1.11.0 1.2.11 1.0.2l 48 Boron +v6.11.4 2017-10-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.108 1.11.0 1.2.11 1.0.2l 48 Boron +v6.11.3 2017-09-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.107 1.11.0 1.2.11 1.0.2l 48 Boron +v6.11.2 2017-08-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.103 1.11.0 1.2.11 1.0.2l 48 Boron +v6.11.1 2017-07-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.103 1.11.0 1.2.11 1.0.2k 48 Boron +v6.11.0 2017-06-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.102 1.11.0 1.2.11 1.0.2k 48 Boron +v6.10.3 2017-05-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.101 1.9.1 1.2.11 1.0.2k 48 Boron +v6.10.2 2017-04-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.98 1.9.1 1.2.11 1.0.2k 48 Boron +v6.10.1 2017-03-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.95 1.9.1 1.2.8 1.0.2k 48 Boron +v6.10.0 2017-02-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.93 1.9.1 1.2.8 1.0.2k 48 Boron +v6.9.5 2017-01-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2k 48 Boron +v6.9.4 2017-01-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2j 48 Boron +v6.9.3 2017-01-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2j 48 Boron +v6.9.2 2016-12-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.1.281.88 1.9.1 1.2.8 1.0.2j 48 Boron +v6.9.1 2016-10-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 Boron +v6.9.0 2016-10-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 Boron +v6.8.1 2016-10-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 - +v6.8.0 2016-10-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 - +v6.7.0 2016-09-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - +v6.6.0 2016-09-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - +v6.5.0 2016-08-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v6.4.0 2016-08-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - +v6.3.1 2016-07-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - +v6.3.0 2016-07-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v6.2.2 2016-06-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v6.2.1 2016-06-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - v6.2.0 2016-05-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - v6.1.0 2016-05-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - v6.0.0 2016-04-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - @@ -49,15 +112,24 @@ v5.2.0 2015-12-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux- v5.1.1 2015-12-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 - v5.1.0 2015-11-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2d 47 - v5.0.0 2015-10-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.6 4.6.85.28 1.7.5 1.2.8 1.0.2d 47 - -v4.8.0 2017-02-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.11 4.5.103.45 1.9.1 1.2.8 1.0.2k 46 Argon -v4.7.3 2017-01-31 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.11 4.5.103.43 1.9.1 1.2.8 1.0.2k 46 Argon -v4.7.2 2017-01-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.11 4.5.103.43 1.9.1 1.2.8 1.0.2j 46 Argon -v4.7.1 2017-01-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.11 4.5.103.43 1.9.1 1.2.8 1.0.2j 46 Argon -v4.7.0 2016-12-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.11 4.5.103.43 1.9.1 1.2.8 1.0.2j 46 Argon -v4.6.2 2016-11-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.11 4.5.103.42 1.9.1 1.2.8 1.0.2j 46 Argon -v4.6.1 2016-10-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.9 4.5.103.37 1.9.1 1.2.8 1.0.2j 46 Argon -v4.6.0 2016-09-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.9 4.5.103.37 1.9.1 1.2.8 1.0.2j 46 Argon -v4.5.0 2016-08-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.9 4.5.103.37 1.9.1 1.2.8 1.0.2h 46 Argon +v4.9.1 2018-03-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.53 1.9.1 1.2.11 1.0.2o 46 Argon +v4.9.0 2018-03-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.53 1.9.1 1.2.11 1.0.2o 46 Argon +v4.8.7 2017-12-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.53 1.9.1 1.2.11 1.0.2n 46 Argon +v4.8.6 2017-11-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.53 1.9.1 1.2.11 1.0.2m 46 Argon +v4.8.5 2017-10-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.47 1.9.1 1.2.11 1.0.2k 46 Argon +v4.8.4 2017-07-11 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.47 1.9.1 1.2.11 1.0.2k 46 Argon +v4.8.3 2017-05-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.47 1.9.1 1.2.11 1.0.2k 46 Argon +v4.8.2 2017-04-04 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.46 1.9.1 1.2.11 1.0.2k 46 Argon +v4.8.1 2017-03-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.46 1.9.1 1.2.8 1.0.2k 46 Argon +v4.8.0 2017-02-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.45 1.9.1 1.2.8 1.0.2k 46 Argon +v4.7.3 2017-01-31 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.43 1.9.1 1.2.8 1.0.2k 46 Argon +v4.7.2 2017-01-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.43 1.9.1 1.2.8 1.0.2j 46 Argon +v4.7.1 2017-01-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.43 1.9.1 1.2.8 1.0.2j 46 Argon +v4.7.0 2016-12-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.43 1.9.1 1.2.8 1.0.2j 46 Argon +v4.6.2 2016-11-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.42 1.9.1 1.2.8 1.0.2j 46 Argon +v4.6.1 2016-10-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.9 4.5.103.37 1.9.1 1.2.8 1.0.2j 46 Argon +v4.6.0 2016-09-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.9 4.5.103.37 1.9.1 1.2.8 1.0.2j 46 Argon +v4.5.0 2016-08-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.9 4.5.103.37 1.9.1 1.2.8 1.0.2h 46 Argon v4.4.7 2016-06-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.8 4.5.103.36 1.8.0 1.2.8 1.0.2h 46 Argon v4.4.6 2016-06-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.5 4.5.103.36 1.8.0 1.2.8 1.0.2h 46 Argon v4.4.5 2016-05-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.5 4.5.103.35 1.8.0 1.2.8 1.0.2h 46 Argon diff --git a/test/fast/Unit tests/mocks/nvm ls-remote lts.txt b/test/fast/Unit tests/mocks/nvm ls-remote lts.txt index 5eca14a..1912a96 100644 --- a/test/fast/Unit tests/mocks/nvm ls-remote lts.txt +++ b/test/fast/Unit tests/mocks/nvm ls-remote lts.txt @@ -24,11 +24,45 @@ v4.7.1  (LTS: Argon) v4.7.2  (LTS: Argon) v4.7.3  (LTS: Argon) - v4.8.0  (Latest LTS: Argon) + v4.8.0  (LTS: Argon) + v4.8.1  (LTS: Argon) + v4.8.2  (LTS: Argon) + v4.8.3  (LTS: Argon) + v4.8.4  (LTS: Argon) + v4.8.5  (LTS: Argon) + v4.8.6  (LTS: Argon) + v4.8.7  (LTS: Argon) + v4.9.0  (LTS: Argon) + v4.9.1  (Latest LTS: Argon) v6.9.0  (LTS: Boron) v6.9.1  (LTS: Boron) v6.9.2  (LTS: Boron) v6.9.3  (LTS: Boron) v6.9.4  (LTS: Boron) v6.9.5  (LTS: Boron) - v6.10.0  (Latest LTS: Boron) + v6.10.0  (LTS: Boron) + v6.10.1  (LTS: Boron) + v6.10.2  (LTS: Boron) + v6.10.3  (LTS: Boron) + v6.11.0  (LTS: Boron) + v6.11.1  (LTS: Boron) + v6.11.2  (LTS: Boron) + v6.11.3  (LTS: Boron) + v6.11.4  (LTS: Boron) + v6.11.5  (LTS: Boron) + v6.12.0  (LTS: Boron) + v6.12.1  (LTS: Boron) + v6.12.2  (LTS: Boron) + v6.12.3  (LTS: Boron) + v6.13.0  (LTS: Boron) + v6.13.1  (LTS: Boron) + v6.14.0  (LTS: Boron) + v6.14.1  (Latest LTS: Boron) + v8.9.0  (LTS: Carbon) + v8.9.1  (LTS: Carbon) + v8.9.2  (LTS: Carbon) + v8.9.3  (LTS: Carbon) + v8.9.4  (LTS: Carbon) + v8.10.0  (LTS: Carbon) + v8.11.0  (LTS: Carbon) + v8.11.1  (Latest LTS: Carbon) diff --git a/test/fast/Unit tests/mocks/nvm ls-remote node.txt b/test/fast/Unit tests/mocks/nvm ls-remote node.txt index 072b6b8..3e00d5b 100644 --- a/test/fast/Unit tests/mocks/nvm ls-remote node.txt +++ b/test/fast/Unit tests/mocks/nvm ls-remote node.txt @@ -265,7 +265,16 @@ v4.7.1  (LTS: Argon) v4.7.2  (LTS: Argon) v4.7.3  (LTS: Argon) - v4.8.0  (Latest LTS: Argon) + v4.8.0  (LTS: Argon) + v4.8.1  (LTS: Argon) + v4.8.2  (LTS: Argon) + v4.8.3  (LTS: Argon) + v4.8.4  (LTS: Argon) + v4.8.5  (LTS: Argon) + v4.8.6  (LTS: Argon) + v4.8.7  (LTS: Argon) + v4.9.0  (LTS: Argon) + v4.9.1  (Latest LTS: Argon) v5.0.0 v5.1.0 v5.1.1 @@ -304,7 +313,24 @@ v6.9.3  (LTS: Boron) v6.9.4  (LTS: Boron) v6.9.5  (LTS: Boron) - v6.10.0  (Latest LTS: Boron) + v6.10.0  (LTS: Boron) + v6.10.1  (LTS: Boron) + v6.10.2  (LTS: Boron) + v6.10.3  (LTS: Boron) + v6.11.0  (LTS: Boron) + v6.11.1  (LTS: Boron) + v6.11.2  (LTS: Boron) + v6.11.3  (LTS: Boron) + v6.11.4  (LTS: Boron) + v6.11.5  (LTS: Boron) + v6.12.0  (LTS: Boron) + v6.12.1  (LTS: Boron) + v6.12.2  (LTS: Boron) + v6.12.3  (LTS: Boron) + v6.13.0  (LTS: Boron) + v6.13.1  (LTS: Boron) + v6.14.0  (LTS: Boron) + v6.14.1  (Latest LTS: Boron) v7.0.0 v7.1.0 v7.2.0 @@ -316,3 +342,49 @@ v7.7.0 v7.7.1 v7.7.2 + v7.7.3 + v7.7.4 + v7.8.0 + v7.9.0 + v7.10.0 + v7.10.1 + v8.0.0 + v8.1.0 + v8.1.1 + v8.1.2 + v8.1.3 + v8.1.4 + v8.2.0 + v8.2.1 + v8.3.0 + v8.4.0 + v8.5.0 + v8.6.0 + v8.7.0 + v8.8.0 + v8.8.1 + v8.9.0  (LTS: Carbon) + v8.9.1  (LTS: Carbon) + v8.9.2  (LTS: Carbon) + v8.9.3  (LTS: Carbon) + v8.9.4  (LTS: Carbon) + v8.10.0  (LTS: Carbon) + v8.11.0  (LTS: Carbon) + v8.11.1  (Latest LTS: Carbon) + v9.0.0 + v9.1.0 + v9.2.0 + v9.2.1 + v9.3.0 + v9.4.0 + v9.5.0 + v9.6.0 + v9.6.1 + v9.7.0 + v9.7.1 + v9.8.0 + v9.9.0 + v9.10.0 + v9.10.1 + v9.11.0 + v9.11.1 diff --git a/test/fast/Unit tests/mocks/nvm ls-remote.txt b/test/fast/Unit tests/mocks/nvm ls-remote.txt index 1b99cd0..ac19faa 100644 --- a/test/fast/Unit tests/mocks/nvm ls-remote.txt +++ b/test/fast/Unit tests/mocks/nvm ls-remote.txt @@ -306,7 +306,16 @@ v4.7.1  (LTS: Argon) v4.7.2  (LTS: Argon) v4.7.3  (LTS: Argon) - v4.8.0  (Latest LTS: Argon) + v4.8.0  (LTS: Argon) + v4.8.1  (LTS: Argon) + v4.8.2  (LTS: Argon) + v4.8.3  (LTS: Argon) + v4.8.4  (LTS: Argon) + v4.8.5  (LTS: Argon) + v4.8.6  (LTS: Argon) + v4.8.7  (LTS: Argon) + v4.9.0  (LTS: Argon) + v4.9.1  (Latest LTS: Argon) v5.0.0 v5.1.0 v5.1.1 @@ -345,7 +354,24 @@ v6.9.3  (LTS: Boron) v6.9.4  (LTS: Boron) v6.9.5  (LTS: Boron) - v6.10.0  (Latest LTS: Boron) + v6.10.0  (LTS: Boron) + v6.10.1  (LTS: Boron) + v6.10.2  (LTS: Boron) + v6.10.3  (LTS: Boron) + v6.11.0  (LTS: Boron) + v6.11.1  (LTS: Boron) + v6.11.2  (LTS: Boron) + v6.11.3  (LTS: Boron) + v6.11.4  (LTS: Boron) + v6.11.5  (LTS: Boron) + v6.12.0  (LTS: Boron) + v6.12.1  (LTS: Boron) + v6.12.2  (LTS: Boron) + v6.12.3  (LTS: Boron) + v6.13.0  (LTS: Boron) + v6.13.1  (LTS: Boron) + v6.14.0  (LTS: Boron) + v6.14.1  (Latest LTS: Boron) v7.0.0 v7.1.0 v7.2.0 @@ -357,3 +383,49 @@ v7.7.0 v7.7.1 v7.7.2 + v7.7.3 + v7.7.4 + v7.8.0 + v7.9.0 + v7.10.0 + v7.10.1 + v8.0.0 + v8.1.0 + v8.1.1 + v8.1.2 + v8.1.3 + v8.1.4 + v8.2.0 + v8.2.1 + v8.3.0 + v8.4.0 + v8.5.0 + v8.6.0 + v8.7.0 + v8.8.0 + v8.8.1 + v8.9.0  (LTS: Carbon) + v8.9.1  (LTS: Carbon) + v8.9.2  (LTS: Carbon) + v8.9.3  (LTS: Carbon) + v8.9.4  (LTS: Carbon) + v8.10.0  (LTS: Carbon) + v8.11.0  (LTS: Carbon) + v8.11.1  (Latest LTS: Carbon) + v9.0.0 + v9.1.0 + v9.2.0 + v9.2.1 + v9.3.0 + v9.4.0 + v9.5.0 + v9.6.0 + v9.6.1 + v9.7.0 + v9.7.1 + v9.8.0 + v9.9.0 + v9.10.0 + v9.10.1 + v9.11.0 + v9.11.1 diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt b/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt index a7ab176..e20669e 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt @@ -25,3 +25,12 @@ v4.7.1 Argon v4.7.2 Argon v4.7.3 Argon v4.8.0 Argon +v4.8.1 Argon +v4.8.2 Argon +v4.8.3 Argon +v4.8.4 Argon +v4.8.5 Argon +v4.8.6 Argon +v4.8.7 Argon +v4.9.0 Argon +v4.9.1 Argon diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt b/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt index cf82829..2885bcf 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt @@ -25,6 +25,15 @@ v4.7.1 Argon v4.7.2 Argon v4.7.3 Argon v4.8.0 Argon +v4.8.1 Argon +v4.8.2 Argon +v4.8.3 Argon +v4.8.4 Argon +v4.8.5 Argon +v4.8.6 Argon +v4.8.7 Argon +v4.9.0 Argon +v4.9.1 Argon v6.9.0 Boron v6.9.1 Boron v6.9.2 Boron @@ -32,3 +41,28 @@ v6.9.3 Boron v6.9.4 Boron v6.9.5 Boron v6.10.0 Boron +v6.10.1 Boron +v6.10.2 Boron +v6.10.3 Boron +v6.11.0 Boron +v6.11.1 Boron +v6.11.2 Boron +v6.11.3 Boron +v6.11.4 Boron +v6.11.5 Boron +v6.12.0 Boron +v6.12.1 Boron +v6.12.2 Boron +v6.12.3 Boron +v6.13.0 Boron +v6.13.1 Boron +v6.14.0 Boron +v6.14.1 Boron +v8.9.0 Carbon +v8.9.1 Carbon +v8.9.2 Carbon +v8.9.3 Carbon +v8.9.4 Carbon +v8.10.0 Carbon +v8.11.0 Carbon +v8.11.1 Carbon diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt b/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt index fe5d597..0a7b8bc 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt @@ -1 +1 @@ -v7.7.2 +v9.11.1 diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote.txt b/test/fast/Unit tests/mocks/nvm_ls_remote.txt index 0025a90..d93b723 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote.txt @@ -266,6 +266,15 @@ v4.7.1 Argon v4.7.2 Argon v4.7.3 Argon v4.8.0 Argon +v4.8.1 Argon +v4.8.2 Argon +v4.8.3 Argon +v4.8.4 Argon +v4.8.5 Argon +v4.8.6 Argon +v4.8.7 Argon +v4.9.0 Argon +v4.9.1 Argon v5.0.0 v5.1.0 v5.1.1 @@ -305,6 +314,23 @@ v6.9.3 Boron v6.9.4 Boron v6.9.5 Boron v6.10.0 Boron +v6.10.1 Boron +v6.10.2 Boron +v6.10.3 Boron +v6.11.0 Boron +v6.11.1 Boron +v6.11.2 Boron +v6.11.3 Boron +v6.11.4 Boron +v6.11.5 Boron +v6.12.0 Boron +v6.12.1 Boron +v6.12.2 Boron +v6.12.3 Boron +v6.13.0 Boron +v6.13.1 Boron +v6.14.0 Boron +v6.14.1 Boron v7.0.0 v7.1.0 v7.2.0 @@ -316,3 +342,49 @@ v7.6.0 v7.7.0 v7.7.1 v7.7.2 +v7.7.3 +v7.7.4 +v7.8.0 +v7.9.0 +v7.10.0 +v7.10.1 +v8.0.0 +v8.1.0 +v8.1.1 +v8.1.2 +v8.1.3 +v8.1.4 +v8.2.0 +v8.2.1 +v8.3.0 +v8.4.0 +v8.5.0 +v8.6.0 +v8.7.0 +v8.8.0 +v8.8.1 +v8.9.0 Carbon +v8.9.1 Carbon +v8.9.2 Carbon +v8.9.3 Carbon +v8.9.4 Carbon +v8.10.0 Carbon +v8.11.0 Carbon +v8.11.1 Carbon +v9.0.0 +v9.1.0 +v9.2.0 +v9.2.1 +v9.3.0 +v9.4.0 +v9.5.0 +v9.6.0 +v9.6.1 +v9.7.0 +v9.7.1 +v9.8.0 +v9.9.0 +v9.10.0 +v9.10.1 +v9.11.0 +v9.11.1 diff --git a/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt b/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt index 863d90e..feea00a 100644 --- a/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt +++ b/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt @@ -1,3 +1,4 @@ -lts/*|lts/boron -lts/boron|v6.10.0 -lts/argon|v4.8.0 +lts/*|lts/carbon +lts/carbon|v8.11.1 +lts/boron|v6.14.1 +lts/argon|v4.9.1 diff --git a/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt b/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt index 25b629b..d4ce17d 100644 --- a/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt +++ b/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt @@ -1 +1 @@ -7.7 +9.11 diff --git a/test/fast/Unit tests/nvm_ls_remote LTS aliases b/test/fast/Unit tests/nvm_ls_remote LTS aliases index 250aefa..02e3f10 100755 --- a/test/fast/Unit tests/nvm_ls_remote LTS aliases +++ b/test/fast/Unit tests/nvm_ls_remote LTS aliases @@ -37,7 +37,7 @@ nvm_ls_remote >/dev/null || die "nvm_ls_remote_failed?!" CALL_COUNT="$(cat "$CALL_COUNT_PATH")" -EXPECTED_COUNT=3 +EXPECTED_COUNT=4 [ "$CALL_COUNT" = "$EXPECTED_COUNT" ] || die "nvm_make_alias called $CALL_COUNT times; expected $EXPECTED_COUNT" ARGS="$(cat "$ALIAS_ARGS_PATH")" From 37e0977e6060b1dfdebcd77a0aa8ecc9d3fd3ba4 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Tue, 10 Apr 2018 15:53:33 +0800 Subject: [PATCH 1103/1426] `install.sh`: Improve install.sh prompt output, add a newline --- install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/install.sh b/install.sh index 3fd6cab..22b4244 100755 --- a/install.sh +++ b/install.sh @@ -344,6 +344,7 @@ nvm_do_install() { echo " OR" echo "=> Append the following lines to the correct file yourself:" command printf "${SOURCE_STR}" + echo else if nvm_profile_is_bash_or_zsh "${NVM_PROFILE-}"; then BASH_OR_ZSH=true From 68fe26a5e43060b8d7c3ee7e4793f8658696d909 Mon Sep 17 00:00:00 2001 From: "Brian M. Jemilo II" Date: Mon, 9 Apr 2018 14:54:28 -0500 Subject: [PATCH 1104/1426] [Fix] Add autocompletion support to zsh Fixes #1707. --- bash_completion | 1 + install.sh | 3 +++ test/install_script/nvm_detect_profile | 18 ++++++++++-------- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/bash_completion b/bash_completion index 47eda3e..43df83b 100644 --- a/bash_completion +++ b/bash_completion @@ -92,6 +92,7 @@ __nvm () # ZSH, load and run bashcompinit before calling the complete function. if [[ -n ${ZSH_VERSION-} ]]; then autoload -U +X bashcompinit && bashcompinit + autoload -U +X compinit && compinit fi complete -o default -F __nvm nvm diff --git a/install.sh b/install.sh index 22b4244..db12c38 100755 --- a/install.sh +++ b/install.sh @@ -330,6 +330,8 @@ nvm_do_install() { PROFILE_INSTALL_DIR="$(nvm_install_dir | command sed "s:^$HOME:\$HOME:")" SOURCE_STR="\\nexport NVM_DIR=\"${PROFILE_INSTALL_DIR}\"\\n[ -s \"\$NVM_DIR/nvm.sh\" ] && \\. \"\$NVM_DIR/nvm.sh\" # This loads nvm\\n" + ZSH_COMPLETION_STR='# Load compinit/compdef\n autoload -U compinit\n compinit' + # shellcheck disable=SC2016 COMPLETION_STR='[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion\n' BASH_OR_ZSH=false @@ -358,6 +360,7 @@ nvm_do_install() { # shellcheck disable=SC2016 if ${BASH_OR_ZSH} && ! command grep -qc '$NVM_DIR/bash_completion' "$NVM_PROFILE"; then echo "=> Appending bash_completion source string to $NVM_PROFILE" + command printf "$ZSH_COMPLETION_STR" >> "$NVM_PROFILE" command printf "$COMPLETION_STR" >> "$NVM_PROFILE" else echo "=> bash_completion source string already in ${NVM_PROFILE}" diff --git a/test/install_script/nvm_detect_profile b/test/install_script/nvm_detect_profile index ba5a6ea..1044659 100755 --- a/test/install_script/nvm_detect_profile +++ b/test/install_script/nvm_detect_profile @@ -14,6 +14,8 @@ cleanup () { unset HOME unset NVM_ENV unset NVM_DETECT_PROFILE + unset BASH_VERSION + unset ZSH_VERSION unset -f setup cleanup die rm -f ".bashrc" ".bash_profile" ".zshrc" ".profile" "test_profile" > "/dev/null" 2>&1 } @@ -27,7 +29,7 @@ setup # # .bashrc should be detected for bash -NVM_DETECT_PROFILE="$(SHELL="/bin/bash"; unset PROFILE; nvm_detect_profile)" +NVM_DETECT_PROFILE="$(BASH_VERSION="1"; unset PROFILE; nvm_detect_profile)" if [ "$NVM_DETECT_PROFILE" != "$HOME/.bashrc" ]; then die "nvm_detect_profile didn't pick \$HOME/.bashrc for bash" fi @@ -39,7 +41,7 @@ if [ "$NVM_DETECT_PROFILE" != "test_profile" ]; then fi # .zshrc should be detected for zsh -NVM_DETECT_PROFILE="$(SHELL="/usr/bin/zsh"; unset PROFILE; nvm_detect_profile)" +NVM_DETECT_PROFILE="$(ZSH_VERSION="1"; unset PROFILE; unset BASH_VERSION; nvm_detect_profile)" if [ "$NVM_DETECT_PROFILE" != "$HOME/.zshrc" ]; then die "nvm_detect_profile didn't pick \$HOME/.zshrc for zsh" fi @@ -56,7 +58,7 @@ fi # # $PROFILE is a valid file -NVM_DETECT_PROFILE="$(PROFILE="test_profile"; nvm_detect_profile)" +NVM_DETECT_PROFILE="$(PROFILE="test_profile"; unset ZSH_VERSION; nvm_detect_profile)" if [ "$NVM_DETECT_PROFILE" != "test_profile" ]; then die "nvm_detect_profile didn't pick \$PROFILE when it was a valid file" fi @@ -75,35 +77,35 @@ fi # # It should favor .profile if file exists -NVM_DETECT_PROFILE="$(unset SHELL; nvm_detect_profile)" +NVM_DETECT_PROFILE="$(unset BASH_VERSION; unset ZSH_VERSION; nvm_detect_profile)" if [ "$NVM_DETECT_PROFILE" != "$HOME/.profile" ]; then die "nvm_detect_profile should have selected .profile" fi # Otherwise, it should favor .bashrc if file exists rm ".profile" -NVM_DETECT_PROFILE="$(unset SHELL; nvm_detect_profile)" +NVM_DETECT_PROFILE="$(unset BASH_VERSION; unset ZSH_VERSION; nvm_detect_profile)" if [ "$NVM_DETECT_PROFILE" != "$HOME/.bashrc" ]; then die "nvm_detect_profile should have selected .bashrc" fi # Otherwise, it should favor .bash_profile if file exists rm ".bashrc" -NVM_DETECT_PROFILE="$(unset SHELL; nvm_detect_profile)" +NVM_DETECT_PROFILE="$(unset BASH_VERSION; unset ZSH_VERSION; nvm_detect_profile)" if [ "$NVM_DETECT_PROFILE" != "$HOME/.bash_profile" ]; then die "nvm_detect_profile should have selected .bash_profile" fi # Otherwise, it should favor .zshrc if file exists rm ".bash_profile" -NVM_DETECT_PROFILE="$(unset SHELL; nvm_detect_profile)" +NVM_DETECT_PROFILE="$(unset BASH_VERSION; unset ZSH_VERSION; nvm_detect_profile)" if [ "$NVM_DETECT_PROFILE" != "$HOME/.zshrc" ]; then die "nvm_detect_profile should have selected .zshrc" fi # It should be empty if none is found rm ".zshrc" -NVM_DETECT_PROFILE="$(unset SHELL; nvm_detect_profile)" +NVM_DETECT_PROFILE="$(unset BASH_VERSION; unset ZSH_VERSION; nvm_detect_profile)" if [ ! -z "$NVM_DETECT_PROFILE" ]; then die "nvm_detect_profile should have returned an empty value" fi From 8b71861d06eea1a162fe3c0302089e60f70229c1 Mon Sep 17 00:00:00 2001 From: "Brian M. Jemilo II" Date: Mon, 9 Apr 2018 15:13:02 -0500 Subject: [PATCH 1105/1426] [Fix] `install.sh`: Detect profile with $BASH_VERSION and $ZSH_VERSION Using `$(basename "/$SHELL")` to detect the shell would also choose bash on mac --- install.sh | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/install.sh b/install.sh index db12c38..0c5f453 100755 --- a/install.sh +++ b/install.sh @@ -219,16 +219,14 @@ nvm_detect_profile() { local DETECTED_PROFILE DETECTED_PROFILE='' - local SHELLTYPE - SHELLTYPE="$(basename "/$SHELL")" - if [ "$SHELLTYPE" = "bash" ]; then + if [ -n "${BASH_VERSION-}" ]; then if [ -f "$HOME/.bashrc" ]; then DETECTED_PROFILE="$HOME/.bashrc" elif [ -f "$HOME/.bash_profile" ]; then DETECTED_PROFILE="$HOME/.bash_profile" fi - elif [ "$SHELLTYPE" = "zsh" ]; then + elif [ -n "${ZSH_VERSION-}" ]; then DETECTED_PROFILE="$HOME/.zshrc" fi @@ -330,8 +328,7 @@ nvm_do_install() { PROFILE_INSTALL_DIR="$(nvm_install_dir | command sed "s:^$HOME:\$HOME:")" SOURCE_STR="\\nexport NVM_DIR=\"${PROFILE_INSTALL_DIR}\"\\n[ -s \"\$NVM_DIR/nvm.sh\" ] && \\. \"\$NVM_DIR/nvm.sh\" # This loads nvm\\n" - ZSH_COMPLETION_STR='# Load compinit/compdef\n autoload -U compinit\n compinit' - + # shellcheck disable=SC2016 COMPLETION_STR='[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion\n' BASH_OR_ZSH=false @@ -360,7 +357,6 @@ nvm_do_install() { # shellcheck disable=SC2016 if ${BASH_OR_ZSH} && ! command grep -qc '$NVM_DIR/bash_completion' "$NVM_PROFILE"; then echo "=> Appending bash_completion source string to $NVM_PROFILE" - command printf "$ZSH_COMPLETION_STR" >> "$NVM_PROFILE" command printf "$COMPLETION_STR" >> "$NVM_PROFILE" else echo "=> bash_completion source string already in ${NVM_PROFILE}" From b15709e637d3f3dfb6d7219d6b78c51d19110591 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 12 Apr 2018 23:39:26 +0800 Subject: [PATCH 1106/1426] Turn off wget's output in nvm_get_latest() curl output is turned off by `-s` in the same place, we should unify the behavior on wget, also, this help removes those wget outputs that can't fit our coding style tests. cc #1739 --- nvm.sh | 2 +- test/slow/nvm_get_latest/nvm_get_latest | 22 +--------------------- 2 files changed, 2 insertions(+), 22 deletions(-) diff --git a/nvm.sh b/nvm.sh index 4117357..925f574 100644 --- a/nvm.sh +++ b/nvm.sh @@ -86,7 +86,7 @@ nvm_get_latest() { fi NVM_LATEST_URL="$(curl ${CURL_COMPRESSED_FLAG:-} -q -w "%{url_effective}\\n" -L -s -S http://latest.nvm.sh -o /dev/null)" elif nvm_has "wget"; then - NVM_LATEST_URL="$(wget http://latest.nvm.sh --server-response -O /dev/null 2>&1 | command awk '/^ Location: /{DEST=$2} END{ print DEST }')" + NVM_LATEST_URL="$(wget -q http://latest.nvm.sh --server-response -O /dev/null 2>&1 | command awk '/^ Location: /{DEST=$2} END{ print DEST }')" else nvm_err 'nvm needs curl or wget to proceed.' return 1 diff --git a/test/slow/nvm_get_latest/nvm_get_latest b/test/slow/nvm_get_latest/nvm_get_latest index 67345e3..77ef8d0 100755 --- a/test/slow/nvm_get_latest/nvm_get_latest +++ b/test/slow/nvm_get_latest/nvm_get_latest @@ -11,7 +11,7 @@ cleanup() { EXPECTED_VERSION="v12.3.456" URL="https://github.com/creationix/nvm/releases/tag/$EXPECTED_VERSION" EXPECTED_CURL_ARGS="--compressed -q -w %{url_effective}\n -L -s -S http://latest.nvm.sh -o /dev/null" -EXPECTED_WGET_ARGS="http://latest.nvm.sh --server-response -O /dev/null" +EXPECTED_WGET_ARGS="-q http://latest.nvm.sh --server-response -O /dev/null" curl() { if [ $# -eq 1 ] && [ "$1" = "-V" ]; then @@ -33,20 +33,11 @@ wget() { else local WGET_CONTENTS WGET_CONTENTS=" ---2014-12-21 18:11:14-- http://latest.nvm.sh/ -Resolving latest.nvm.sh... 50.31.209.229 -Connecting to latest.nvm.sh|50.31.209.229|:80... connected. -HTTP request sent, awaiting response... HTTP/1.1 301 Moved Permanently Location: https://github.com/creationix/nvm/releases/latest Content-Type: text/html; charset=utf-8 Content-Length: 84 Date: Mon, 22 Dec 2014 02:11:15 GMT -Location: https://github.com/creationix/nvm/releases/latest [following] ---2014-12-21 18:11:15-- https://github.com/creationix/nvm/releases/latest -Resolving github.com... 192.30.252.130 -Connecting to github.com|192.30.252.130|:443... connected. -HTTP request sent, awaiting response... HTTP/1.1 302 Found Server: GitHub.com Date: Mon, 22 Dec 2014 02:11:15 GMT @@ -70,10 +61,6 @@ HTTP request sent, awaiting response... X-Content-Type-Options: nosniff Vary: Accept-Encoding X-Served-By: ef97014f01ea59c1ef337fe51a4d0331 -Location: $URL [following] ---2014-12-21 18:11:15-- $URL -Reusing existing connection to github.com:443. -HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: GitHub.com Date: Mon, 22 Dec 2014 02:11:15 GMT @@ -95,13 +82,6 @@ HTTP request sent, awaiting response... X-Content-Type-Options: nosniff Vary: Accept-Encoding X-Served-By: 926b734ea1992f8ee1f88ab967a93dac -Length: unspecified [text/html] -Saving to: ‘/dev/null’ - - 0K .......... ......... 225K=0.09s - -2014-12-21 18:11:15 (225 KB/s) - ‘/dev/null’ saved [20298] - " "$WGET_CONTENTS" | while read line do From 8ff437ae5190f968f2d134c9c2f0113c63abc5cd Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 12 Apr 2018 23:58:30 +0800 Subject: [PATCH 1107/1426] [Doc] Fix manual install & upgrade guide, fix #1772 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c21bf30..94a0f24 100644 --- a/README.md +++ b/README.md @@ -149,7 +149,7 @@ For a fully manual install, create a folder somewhere in your filesystem with th export NVM_DIR="$HOME/.nvm" && ( git clone https://github.com/creationix/nvm.git "$NVM_DIR" cd "$NVM_DIR" - git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" origin` + git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1)` ) && \. "$NVM_DIR/nvm.sh" ``` @@ -174,7 +174,7 @@ For manual upgrade with `git` (requires git v1.7.10+): ( cd "$NVM_DIR" git fetch origin - git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" origin` + git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1)` ) && \. "$NVM_DIR/nvm.sh" ``` From ca66a13710070e1e3077aafe96ef12914ea9567b Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sat, 24 Feb 2018 02:53:40 +0800 Subject: [PATCH 1108/1426] `nvm debug`: Improve OS version detection --- nvm.sh | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 925f574..7aebd35 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2383,6 +2383,7 @@ nvm() { "debug" ) local ZSH_HAS_SHWORDSPLIT_UNSET + local OS_VERSION ZSH_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then ZSH_HAS_SHWORDSPLIT_UNSET="$(set +e ; setopt | nvm_grep -q shwordsplit ; nvm_echo $?)" @@ -2405,9 +2406,16 @@ nvm() { nvm_err "shell version: '$(${SHELL} --version | command head -n 1)'" nvm_err "uname -a: '$(command uname -a | command awk '{$2=""; print}' | command xargs)'" if [ "$(nvm_get_os)" = "darwin" ] && nvm_has sw_vers; then - nvm_err "OS version: $(sw_vers | command awk '{print $2}' | command xargs)" + OS_VERSION="$(sw_vers | command awk '{print $2}' | command xargs)" elif [ -r "/etc/issue" ]; then - nvm_err "OS version: $(command head -n 1 /etc/issue | command sed 's/\\.//g')" + OS_VERSION="$(command head -n 1 /etc/issue | command sed 's/\\.//g')" + if [ -z "${OS_VERSION}" ] && [ -r "/etc/os-release" ] ; then + # shellcheck disable=SC1091 + OS_VERSION="$(. /etc/os-release && echo "${NAME}" "${VERSION}")" + fi + fi + if [ -n "${OS_VERSION}" ]; then + nvm_err "OS version: ${OS_VERSION}" fi if nvm_has "curl"; then nvm_err "curl: $(nvm_command_info curl), $(command curl -V | command head -n 1)" From 0731003cfe84cf03cbdebcc12e942ac3c8fd4602 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 26 Feb 2018 02:29:38 +0800 Subject: [PATCH 1109/1426] [New] Integrate eclint to test partial coding style --- .travis.yml | 4 +++- package.json | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index f55badc..48d4224 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,11 +19,12 @@ before_install: - curl --version - wget --version install: - - if [ -z "${SHELLCHECK-}" ]; then nvm install node && npm install && npm prune && npm ls urchin doctoc; fi + - if [ -z "${SHELLCHECK-}" ]; then nvm install node && npm install && npm prune && npm ls urchin doctoc eclint; fi - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' script: - if [ -n "${MAKE_RELEASE-}" ]; then export GIT_EDITOR="sed -i '1 s/^/99.99.99 make release test/'" && git fetch --unshallow --tags && echo proceed | make TAG=99.99.99 release ; fi - if [ -n "${DOCTOCCHECK-}" ]; then cp README.md README.md.orig && npm run doctoc && diff -q README.md README.md.orig ; fi + - if [ -n "${ECLINT-}" ]; then npm run eclint ; fi - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash nvm.sh && shellcheck -s sh nvm.sh && shellcheck -s dash nvm.sh && shellcheck -s ksh nvm.sh ; fi - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash install.sh bash_completion nvm-exec ; fi - if [ -n "${SHELL-}" ] && [ -n "${TEST_SUITE}" ]; then if [ "${TEST_SUITE}" = 'installation_iojs' ]; then travis_retry make TEST_SUITE=$TEST_SUITE URCHIN="$(npm bin)/urchin" test-$SHELL ; else make TEST_SUITE=$TEST_SUITE URCHIN="$(npm bin)/urchin" test-$SHELL; fi; fi @@ -39,6 +40,7 @@ env: - MAKE_RELEASE=true - DOCTOCCHECK=true - SHELLCHECK=true + - ECLINT=true - SHELL=bash TEST_SUITE=install_script - SHELL=sh TEST_SUITE=fast - SHELL=dash TEST_SUITE=fast diff --git a/package.json b/package.json index e120235..6c56796 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,8 @@ "test/installation/node": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=installation_node test-$shell", "test/installation/iojs": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=installation_iojs test-$shell", "test/sourcing": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=sourcing test-$shell", - "doctoc": "doctoc --title='## Table of Contents' --github README.md" + "doctoc": "doctoc --title='## Table of Contents' --github README.md", + "eclint": "eclint check ." }, "repository": { "type": "git", @@ -34,6 +35,7 @@ }, "homepage": "https://github.com/creationix/nvm", "devDependencies": { + "eclint": "^2.6.0", "replace": "^0.3.0", "semver": "^5.0.1", "urchin": "^0.0.5", From 685312d60078c67c3c7e30fa837685e957a168fd Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 12 Apr 2018 14:14:58 +0800 Subject: [PATCH 1110/1426] [Fix] Remove $NVM_DIR trailing slash automatically, fix #1708 --- nvm.sh | 5 +++++ ... remove the last trailing slash in $NVM_DIR | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 test/fast/nvm should remove the last trailing slash in $NVM_DIR diff --git a/nvm.sh b/nvm.sh index 0ca5fd7..1a98f3c 100644 --- a/nvm.sh +++ b/nvm.sh @@ -257,6 +257,11 @@ if [ -z "${NVM_DIR-}" ]; then # shellcheck disable=SC1001 NVM_DIR="$(nvm_cd ${NVM_CD_FLAGS} "$(dirname "${NVM_SCRIPT_SOURCE:-$0}")" > /dev/null && \pwd)" export NVM_DIR +else + while echo "${NVM_DIR}" | nvm_grep -q "/$"; do + export NVM_DIR="${NVM_DIR%/}" + done + nvm_err "Warning: \$NVM_DIR should not have trailing slash" fi unset NVM_SCRIPT_SOURCE 2> /dev/null diff --git a/test/fast/nvm should remove the last trailing slash in $NVM_DIR b/test/fast/nvm should remove the last trailing slash in $NVM_DIR new file mode 100644 index 0000000..4babb54 --- /dev/null +++ b/test/fast/nvm should remove the last trailing slash in $NVM_DIR @@ -0,0 +1,18 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; exit 1; } + +export NVM_DIR_BASE="/tmp" +export NVM_DIR="${NVM_DIR_BASE}/" + +\. ../../nvm.sh + +[ "${NVM_DIR}" = "${NVM_DIR_BASE}" ] || die 'nvm should remove the last trailing slash in "$NVM_DIR"' + +export NVM_DIR="${NVM_DIR_BASE}//" + +\. ../../nvm.sh + +[ "${NVM_DIR}" = "${NVM_DIR_BASE}" ] || die 'nvm should remove all the last trailing slashes in "$NVM_DIR"' From d9dc8464fd4dc55f9b540e7240186720d9513ac9 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Fri, 13 Apr 2018 01:14:39 +0800 Subject: [PATCH 1111/1426] [Doc] Add macOS install script note about Git Closes #1782 --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 94a0f24..a476936 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,8 @@ command -v nvm ``` simply close your current terminal, open a new terminal, and try verifying again. +**Note:** Since OS X 10.9, `/usr/bin/git` was preset by Xcode command line tools, which caused Git can't be properly detected if it's installed or not. You need to manually install the Xcode command line tools before running the install script, otherwise, it'll fail. (see [#1782](https://github.com/creationix/nvm/issues/1782)) + **Note:** On OS X, if you get `nvm: command not found` after running the install script, one of the following might be the reason:- - your system may not have a [`.bash_profile file`] where the command is set up. Simply create one with `touch ~/.bash_profile` and run the install script again - you might need to restart your terminal instance. Try opening a new tab/window in your terminal and retry. From 0da699605e691f1f7e9ba80cd0bcd321bc3d98e0 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 14 Apr 2018 22:12:22 -0700 Subject: [PATCH 1112/1426] [eclint] only check non-ignored files --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6c56796..cc6f24f 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "test/installation/iojs": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=installation_iojs test-$shell", "test/sourcing": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=sourcing test-$shell", "doctoc": "doctoc --title='## Table of Contents' --github README.md", - "eclint": "eclint check ." + "eclint": "eclint check $(git ls-tree --name-only HEAD | xargs)" }, "repository": { "type": "git", From 1b14e6b4d95db3aedc2dc51e5a4d97012210e606 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 14 Apr 2018 22:38:18 -0700 Subject: [PATCH 1113/1426] v0.33.9 --- README.md | 14 +++++++------- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index a476936..1bba03b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Node Version Manager [![Build Status](https://travis-ci.org/creationix/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.33.8-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://travis-ci.org/creationix/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.33.9-yellow.svg)][4] [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/684/badge)](https://bestpractices.coreinfrastructure.org/projects/684) @@ -43,13 +43,13 @@ To install or update nvm, you can use the [install script][2] using cURL: ```sh -curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.9/install.sh | bash ``` or Wget: ```sh -wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash +wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.9/install.sh | bash ``` The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). @@ -131,7 +131,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/creationix/nvm.git .nvm` -2. `cd ~/.nvm` and check out the latest version with `git checkout v0.33.8` +2. `cd ~/.nvm` and check out the latest version with `git checkout v0.33.9` 3. 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: @@ -497,7 +497,7 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh ```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/creationix/nvm/v0.33.8/install.sh | bash +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.9/install.sh | bash ``` The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. @@ -580,8 +580,8 @@ sudo chmod ugo-x /usr/libexec/path_helper More on this issue in [dotphiles/dotzsh](https://github.com/dotphiles/dotzsh#mac-os-x). [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.33.8/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.33.9/install.sh [3]: https://travis-ci.org/creationix/nvm -[4]: https://github.com/creationix/nvm/releases/tag/v0.33.8 +[4]: https://github.com/creationix/nvm/releases/tag/v0.33.9 [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index 0c5f453..c8ff156 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ nvm_install_dir() { } nvm_latest_version() { - echo "v0.33.8" + echo "v0.33.9" } nvm_profile_is_bash_or_zsh() { diff --git a/nvm.sh b/nvm.sh index 7aebd35..bf28b7d 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3421,7 +3421,7 @@ nvm() { NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; "--version" ) - nvm_echo '0.33.8' + nvm_echo '0.33.9' ;; "unload" ) nvm deactivate >/dev/null 2>&1 diff --git a/package.json b/package.json index cc6f24f..b04e553 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.33.8", + "version": "0.33.9", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From d3a9272a0c8138fe78e051d6ec7f9107d10256dc Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 27 Apr 2017 21:57:04 +0800 Subject: [PATCH 1114/1426] [Refactor] Speedup nvm_list_aliases() --- nvm.sh | 45 +++++++++++++++++++++++++++++++-------------- 1 file changed, 31 insertions(+), 14 deletions(-) diff --git a/nvm.sh b/nvm.sh index 23b539a..9299467 100644 --- a/nvm.sh +++ b/nvm.sh @@ -747,25 +747,42 @@ nvm_list_aliases() { NVM_ALIAS_DIR="$(nvm_alias_path)" command mkdir -p "${NVM_ALIAS_DIR}/lts" - local ALIAS_PATH - for ALIAS_PATH in "${NVM_ALIAS_DIR}/${ALIAS}"*; do - NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_CURRENT="${NVM_CURRENT}" nvm_print_alias_path "${NVM_ALIAS_DIR}" "${ALIAS_PATH}" - done + ( + local ALIAS_PATH + for ALIAS_PATH in "${NVM_ALIAS_DIR}/${ALIAS}"*; do + NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_CURRENT="${NVM_CURRENT}" nvm_print_alias_path "${NVM_ALIAS_DIR}" "${ALIAS_PATH}" & + done + wait + ) | sort - local ALIAS_NAME - for ALIAS_NAME in "$(nvm_node_prefix)" "stable" "unstable" "$(nvm_iojs_prefix)"; do + ( + local ALIAS_NAME + for ALIAS_NAME in "$(nvm_node_prefix)" "stable" "unstable"; do + { + if [ ! -f "${NVM_ALIAS_DIR}/${ALIAS_NAME}" ] && ([ -z "${ALIAS}" ] || [ "${ALIAS_NAME}" = "${ALIAS}" ]); then + NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_CURRENT="${NVM_CURRENT}" nvm_print_default_alias "${ALIAS_NAME}" + fi + } & + done + wait + ALIAS_NAME="$(nvm_iojs_prefix)" if [ ! -f "${NVM_ALIAS_DIR}/${ALIAS_NAME}" ] && ([ -z "${ALIAS}" ] || [ "${ALIAS_NAME}" = "${ALIAS}" ]); then NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_CURRENT="${NVM_CURRENT}" nvm_print_default_alias "${ALIAS_NAME}" fi - done + ) | sort - local LTS_ALIAS - for ALIAS_PATH in "${NVM_ALIAS_DIR}/lts/${ALIAS}"*; do - LTS_ALIAS="$(NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_LTS=true nvm_print_alias_path "${NVM_ALIAS_DIR}" "${ALIAS_PATH}")" - if [ -n "${LTS_ALIAS}" ]; then - nvm_echo "${LTS_ALIAS}" - fi - done + ( + local LTS_ALIAS + for ALIAS_PATH in "${NVM_ALIAS_DIR}/lts/${ALIAS}"*; do + { + LTS_ALIAS="$(NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_LTS=true nvm_print_alias_path "${NVM_ALIAS_DIR}" "${ALIAS_PATH}")" + if [ -n "${LTS_ALIAS}" ]; then + nvm_echo "${LTS_ALIAS}" + fi + } & + done + wait + ) | sort return } From d5dacdf80f667996cbe9566bfb3a0a868204f062 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Tue, 17 Apr 2018 18:09:47 +0800 Subject: [PATCH 1115/1426] [Fix] `nvm debug`: Fix sed syntax error in nvm_command_info() --- nvm.sh | 2 +- test/fast/Unit tests/nvm_command_info | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 9299467..268c080 100644 --- a/nvm.sh +++ b/nvm.sh @@ -48,7 +48,7 @@ nvm_command_info() { local INFO COMMAND="${1}" if type "${COMMAND}" | nvm_grep -q hashed; then - INFO="$(type "${COMMAND}" | command sed -E 's/\(|)//g' | command awk '{print $4}')" + INFO="$(type "${COMMAND}" | command sed -E 's/\(|\)//g' | command awk '{print $4}')" elif type "${COMMAND}" | nvm_grep -q aliased; then INFO="$(which "${COMMAND}") ($(type "${COMMAND}" | command awk '{ $1=$2=$3=$4="" ;print }' | command sed -e 's/^\ *//g' -Ee "s/\`|'//g" ))" elif type "${COMMAND}" | nvm_grep -q "^${COMMAND} is an alias for"; then diff --git a/test/fast/Unit tests/nvm_command_info b/test/fast/Unit tests/nvm_command_info index a2f813a..d69e61a 100755 --- a/test/fast/Unit tests/nvm_command_info +++ b/test/fast/Unit tests/nvm_command_info @@ -38,3 +38,11 @@ WGET_EXPECTED_INFO="$(type wget)" [ "${WGET_COMMAND_INFO}" = "${WGET_EXPECTED_INFO}" ] || die "wget command info wrong(stage 3), expected: '${WGET_EXPECTED_INFO}', got '${WGET_COMMAND_INFO}'" cleanup + +# 4. nvm_command_info() should not have standard error +nvm_command_info ls 2>&1 >/dev/null | grep . && die "\`nvm_command_info ls\` should not return standard error message(stage 4)" +nvm_command_info rm 2>&1 >/dev/null | grep . && die "\`nvm_command_info rm\` should not return standard error message(stage 4)" +nvm_command_info git 2>&1 >/dev/null | grep . && die "\`nvm_command_info git\` should not return standard error message(stage 4)" +nvm_command_info grep 2>&1 >/dev/null | grep . && die "\`nvm_command_info grep\` should not return standard error message(stage 4)" + +cleanup From 09f7bbb78c978b54c96b0d5c61df930864bfefb3 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 24 Apr 2018 13:24:08 -0700 Subject: [PATCH 1116/1426] [Refactor] use a different approach to remove trailing slashes --- nvm.sh | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/nvm.sh b/nvm.sh index 1a98f3c..31e0705 100644 --- a/nvm.sh +++ b/nvm.sh @@ -258,10 +258,14 @@ if [ -z "${NVM_DIR-}" ]; then NVM_DIR="$(nvm_cd ${NVM_CD_FLAGS} "$(dirname "${NVM_SCRIPT_SOURCE:-$0}")" > /dev/null && \pwd)" export NVM_DIR else - while echo "${NVM_DIR}" | nvm_grep -q "/$"; do - export NVM_DIR="${NVM_DIR%/}" - done - nvm_err "Warning: \$NVM_DIR should not have trailing slash" + # https://unix.stackexchange.com/a/198289 + case $NVM_DIR in + *[!/]*/) + NVM_DIR="${NVM_DIR%"${NVM_DIR##*[!/]}"}" + export NVM_DIR + nvm_err "Warning: \$NVM_DIR should not have trailing slashes" + ;; + esac fi unset NVM_SCRIPT_SOURCE 2> /dev/null From 42f11acce17e04f42556d6e6839833183a764ed6 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 24 Apr 2018 14:39:46 -0700 Subject: [PATCH 1117/1426] [Fix] `install-latest-npm`: npm 6 is out, and requires node 6 or higher --- nvm.sh | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 268c080..0ca5fd7 100644 --- a/nvm.sh +++ b/nvm.sh @@ -206,15 +206,29 @@ nvm_install_latest_npm() { NVM_IS_4_4_OR_BELOW=1 fi + local NVM_IS_5_OR_ABOVE + NVM_IS_5_OR_ABOVE=0 + if [ $NVM_IS_4_4_OR_BELOW -eq 0 ] && nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 5.0.0; then + NVM_IS_5_OR_ABOVE=1 + fi + + local NVM_IS_6_OR_ABOVE + NVM_IS_6_OR_ABOVE=0 + if [ $NVM_IS_5_OR_ABOVE -eq 1 ] && nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 6.0.0; then + NVM_IS_6_OR_ABOVE=1 + fi + if [ $NVM_IS_4_4_OR_BELOW -eq 1 ] || (\ - nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 5.0.0 \ - && nvm_version_greater 5.10.0 "${NODE_VERSION}"\ + [ $NVM_IS_5_OR_ABOVE -eq 1 ] && nvm_version_greater 5.10.0 "${NODE_VERSION}"\ ); then nvm_echo '* `npm` `v5.3.x` is the last version that works on `node` 4.x versions below v4.4, or 5.x versions below v5.10, due to `Buffer.alloc`' $NVM_NPM_CMD install -g npm@5.3 elif [ $NVM_IS_4_4_OR_BELOW -eq 0 ] && nvm_version_greater 4.7.0 "${NODE_VERSION}"; then nvm_echo '* `npm` `v5.4.x` is the last version that works on `node` `v4.5` and `v4.6`' $NVM_NPM_CMD install -g npm@5.4 + elif [ $NVM_IS_6_OR_ABOVE -eq 0 ]; then + nvm_echo '* `npm` `v5.x` is the last version that works on `node` below `v6.0.0`' + $NVM_NPM_CMD install -g npm@5 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 From db98f8cdaf420146c8a1b87740767feca01ec650 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 24 Apr 2018 14:39:46 -0700 Subject: [PATCH 1118/1426] [Fix] `install-latest-npm`: npm 6 is out, and requires node 6 or higher --- nvm.sh | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index bf28b7d..db5f732 100644 --- a/nvm.sh +++ b/nvm.sh @@ -206,15 +206,29 @@ nvm_install_latest_npm() { NVM_IS_4_4_OR_BELOW=1 fi + local NVM_IS_5_OR_ABOVE + NVM_IS_5_OR_ABOVE=0 + if [ $NVM_IS_4_4_OR_BELOW -eq 0 ] && nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 5.0.0; then + NVM_IS_5_OR_ABOVE=1 + fi + + local NVM_IS_6_OR_ABOVE + NVM_IS_6_OR_ABOVE=0 + if [ $NVM_IS_5_OR_ABOVE -eq 1 ] && nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 6.0.0; then + NVM_IS_6_OR_ABOVE=1 + fi + if [ $NVM_IS_4_4_OR_BELOW -eq 1 ] || (\ - nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 5.0.0 \ - && nvm_version_greater 5.10.0 "${NODE_VERSION}"\ + [ $NVM_IS_5_OR_ABOVE -eq 1 ] && nvm_version_greater 5.10.0 "${NODE_VERSION}"\ ); then nvm_echo '* `npm` `v5.3.x` is the last version that works on `node` 4.x versions below v4.4, or 5.x versions below v5.10, due to `Buffer.alloc`' $NVM_NPM_CMD install -g npm@5.3 elif [ $NVM_IS_4_4_OR_BELOW -eq 0 ] && nvm_version_greater 4.7.0 "${NODE_VERSION}"; then nvm_echo '* `npm` `v5.4.x` is the last version that works on `node` `v4.5` and `v4.6`' $NVM_NPM_CMD install -g npm@5.4 + elif [ $NVM_IS_6_OR_ABOVE -eq 0 ]; then + nvm_echo '* `npm` `v5.x` is the last version that works on `node` below `v6.0.0`' + $NVM_NPM_CMD install -g npm@5 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 From 177a9673a791b47973e97f897a7c11aade6da8b6 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 24 Apr 2018 22:08:51 -0700 Subject: [PATCH 1119/1426] v0.33.10 --- README.md | 14 +++++++------- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 1bba03b..4bc78ac 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Node Version Manager [![Build Status](https://travis-ci.org/creationix/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.33.9-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://travis-ci.org/creationix/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.33.10-yellow.svg)][4] [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/684/badge)](https://bestpractices.coreinfrastructure.org/projects/684) @@ -43,13 +43,13 @@ To install or update nvm, you can use the [install script][2] using cURL: ```sh -curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.9/install.sh | bash +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.10/install.sh | bash ``` or Wget: ```sh -wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.9/install.sh | bash +wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.10/install.sh | bash ``` The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). @@ -131,7 +131,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/creationix/nvm.git .nvm` -2. `cd ~/.nvm` and check out the latest version with `git checkout v0.33.9` +2. `cd ~/.nvm` and check out the latest version with `git checkout v0.33.10` 3. 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: @@ -497,7 +497,7 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh ```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/creationix/nvm/v0.33.9/install.sh | bash +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.10/install.sh | bash ``` The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. @@ -580,8 +580,8 @@ sudo chmod ugo-x /usr/libexec/path_helper More on this issue in [dotphiles/dotzsh](https://github.com/dotphiles/dotzsh#mac-os-x). [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.33.9/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.33.10/install.sh [3]: https://travis-ci.org/creationix/nvm -[4]: https://github.com/creationix/nvm/releases/tag/v0.33.9 +[4]: https://github.com/creationix/nvm/releases/tag/v0.33.10 [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index c8ff156..96fa865 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ nvm_install_dir() { } nvm_latest_version() { - echo "v0.33.9" + echo "v0.33.10" } nvm_profile_is_bash_or_zsh() { diff --git a/nvm.sh b/nvm.sh index db5f732..5340990 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3435,7 +3435,7 @@ nvm() { NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; "--version" ) - nvm_echo '0.33.9' + nvm_echo '0.33.10' ;; "unload" ) nvm deactivate >/dev/null 2>&1 diff --git a/package.json b/package.json index b04e553..a803019 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.33.9", + "version": "0.33.10", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 1f2a3234d224c182e657228c18b88fa0ea376297 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 24 Apr 2018 22:23:44 -0700 Subject: [PATCH 1120/1426] [Tests] add `nvm install-latest-npm` tests for all node versions --- .travis.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.travis.yml b/.travis.yml index 48d4224..f743128 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,6 +30,7 @@ script: - if [ -n "${SHELL-}" ] && [ -n "${TEST_SUITE}" ]; then if [ "${TEST_SUITE}" = 'installation_iojs' ]; then travis_retry make TEST_SUITE=$TEST_SUITE URCHIN="$(npm bin)/urchin" test-$SHELL ; else make TEST_SUITE=$TEST_SUITE URCHIN="$(npm bin)/urchin" test-$SHELL; fi; fi before_cache: - if [ -n "$WITHOUT_CURL" ]; then sudo apt-get install curl -y ; fi + - if [ -n "${NODE-}" ]; then . nvm.sh && nvm install --latest-npm "${NODE}" && npm --version; fi env: global: - CXX=g++-4.8 @@ -77,3 +78,14 @@ env: - SHELL=zsh TEST_SUITE=installation_iojs WITHOUT_CURL=1 # - SHELL=ksh TEST_SUITE=installation_iojs # - SHELL=ksh TEST_SUITE=installation_iojs WITHOUT_CURL=1 + - NODE=10 TEST="nvm install-latest-npm" + - NODE=9 TEST="nvm install-latest-npm" + - NODE=8 TEST="nvm install-latest-npm" + - NODE=7 TEST="nvm install-latest-npm" + - NODE=6 TEST="nvm install-latest-npm" + - NODE=5 TEST="nvm install-latest-npm" + - NODE=5.9 TEST="nvm install-latest-npm" + - NODE=4 TEST="nvm install-latest-npm" + - NODE=4.6 TEST="nvm install-latest-npm" + - NODE=4.5 TEST="nvm install-latest-npm" + - NODE=4.4 TEST="nvm install-latest-npm" From a26ab8847887353d63bbf0b79679f25727ed5d56 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 24 Apr 2018 22:23:44 -0700 Subject: [PATCH 1121/1426] [Tests] fix `nvm install-latest-npm` tests to fail properly --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f743128..4fcfe5e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,7 +30,7 @@ script: - if [ -n "${SHELL-}" ] && [ -n "${TEST_SUITE}" ]; then if [ "${TEST_SUITE}" = 'installation_iojs' ]; then travis_retry make TEST_SUITE=$TEST_SUITE URCHIN="$(npm bin)/urchin" test-$SHELL ; else make TEST_SUITE=$TEST_SUITE URCHIN="$(npm bin)/urchin" test-$SHELL; fi; fi before_cache: - if [ -n "$WITHOUT_CURL" ]; then sudo apt-get install curl -y ; fi - - if [ -n "${NODE-}" ]; then . nvm.sh && nvm install --latest-npm "${NODE}" && npm --version; fi + - if [ -n "${NODE-}" ]; then . nvm.sh && set -ex && nvm install --latest-npm "${NODE}" && npm --version; fi env: global: - CXX=g++-4.8 From eb0a8442d8e6dc74c710352a1082a2ba5ba93747 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 25 Apr 2018 10:08:41 -0700 Subject: [PATCH 1122/1426] [Fix] `nvm install-latest-npm`: node v4.5 and v4.6 work on npm v5.4.1, but not v5.4.2 --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 4a85ea8..32689da 100644 --- a/nvm.sh +++ b/nvm.sh @@ -224,8 +224,8 @@ nvm_install_latest_npm() { nvm_echo '* `npm` `v5.3.x` is the last version that works on `node` 4.x versions below v4.4, or 5.x versions below v5.10, due to `Buffer.alloc`' $NVM_NPM_CMD install -g npm@5.3 elif [ $NVM_IS_4_4_OR_BELOW -eq 0 ] && nvm_version_greater 4.7.0 "${NODE_VERSION}"; then - nvm_echo '* `npm` `v5.4.x` is the last version that works on `node` `v4.5` and `v4.6`' - $NVM_NPM_CMD install -g npm@5.4 + nvm_echo '* `npm` `v5.4.1` is the last version that works on `node` `v4.5` and `v4.6`' + $NVM_NPM_CMD install -g npm@5.4.1 elif [ $NVM_IS_6_OR_ABOVE -eq 0 ]; then nvm_echo '* `npm` `v5.x` is the last version that works on `node` below `v6.0.0`' $NVM_NPM_CMD install -g npm@5 From 61c7b133f85fe1176007a8b1679e5ddc0e9a09ae Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 25 Apr 2018 10:08:41 -0700 Subject: [PATCH 1123/1426] [Fix] `nvm install-latest-npm`: node v4.5 and v4.6 work on npm v5.4.1, but not v5.4.2 --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 5340990..638e3c4 100644 --- a/nvm.sh +++ b/nvm.sh @@ -224,8 +224,8 @@ nvm_install_latest_npm() { nvm_echo '* `npm` `v5.3.x` is the last version that works on `node` 4.x versions below v4.4, or 5.x versions below v5.10, due to `Buffer.alloc`' $NVM_NPM_CMD install -g npm@5.3 elif [ $NVM_IS_4_4_OR_BELOW -eq 0 ] && nvm_version_greater 4.7.0 "${NODE_VERSION}"; then - nvm_echo '* `npm` `v5.4.x` is the last version that works on `node` `v4.5` and `v4.6`' - $NVM_NPM_CMD install -g npm@5.4 + nvm_echo '* `npm` `v5.4.1` is the last version that works on `node` `v4.5` and `v4.6`' + $NVM_NPM_CMD install -g npm@5.4.1 elif [ $NVM_IS_6_OR_ABOVE -eq 0 ]; then nvm_echo '* `npm` `v5.x` is the last version that works on `node` below `v6.0.0`' $NVM_NPM_CMD install -g npm@5 From 93990ab7da37007c8d9db16415cfb939aa5dd201 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 25 Apr 2018 13:25:35 -0700 Subject: [PATCH 1124/1426] v0.33.11 --- README.md | 14 +++++++------- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 4bc78ac..330d164 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Node Version Manager [![Build Status](https://travis-ci.org/creationix/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.33.10-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://travis-ci.org/creationix/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.33.11-yellow.svg)][4] [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/684/badge)](https://bestpractices.coreinfrastructure.org/projects/684) @@ -43,13 +43,13 @@ To install or update nvm, you can use the [install script][2] using cURL: ```sh -curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.10/install.sh | bash +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash ``` or Wget: ```sh -wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.10/install.sh | bash +wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash ``` The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). @@ -131,7 +131,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/creationix/nvm.git .nvm` -2. `cd ~/.nvm` and check out the latest version with `git checkout v0.33.10` +2. `cd ~/.nvm` and check out the latest version with `git checkout v0.33.11` 3. 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: @@ -497,7 +497,7 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh ```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/creationix/nvm/v0.33.10/install.sh | bash +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash ``` The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. @@ -580,8 +580,8 @@ sudo chmod ugo-x /usr/libexec/path_helper More on this issue in [dotphiles/dotzsh](https://github.com/dotphiles/dotzsh#mac-os-x). [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.33.10/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.33.11/install.sh [3]: https://travis-ci.org/creationix/nvm -[4]: https://github.com/creationix/nvm/releases/tag/v0.33.10 +[4]: https://github.com/creationix/nvm/releases/tag/v0.33.11 [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index 96fa865..77f7f31 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ nvm_install_dir() { } nvm_latest_version() { - echo "v0.33.10" + echo "v0.33.11" } nvm_profile_is_bash_or_zsh() { diff --git a/nvm.sh b/nvm.sh index 638e3c4..a039ce3 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3435,7 +3435,7 @@ nvm() { NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; "--version" ) - nvm_echo '0.33.10' + nvm_echo '0.33.11' ;; "unload" ) nvm deactivate >/dev/null 2>&1 diff --git a/package.json b/package.json index a803019..5a4fd87 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.33.10", + "version": "0.33.11", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 04c27e23fe82ff2edc7b3ff7f87fa191ad3e97e0 Mon Sep 17 00:00:00 2001 From: Josh Sleeper Date: Wed, 25 Apr 2018 14:55:31 -0700 Subject: [PATCH 1125/1426] add --tags to git fetch in manual upgrade facilitates older `git` fetching tags so that it can actually upgrade properly --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 330d164..78ae541 100644 --- a/README.md +++ b/README.md @@ -175,7 +175,7 @@ For manual upgrade with `git` (requires git v1.7.10+): ```sh ( cd "$NVM_DIR" - git fetch origin + git fetch --tags origin git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1)` ) && \. "$NVM_DIR/nvm.sh" ``` From 3fc7b737f59b1c81a582f9006e5610bdc41d0ebe Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 29 Apr 2018 15:35:38 -0700 Subject: [PATCH 1126/1426] [Fix] `install -s`: `zsh`: ensure `shwordsplit` opt is set Fixes #1719. --- nvm.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/nvm.sh b/nvm.sh index a211bb2..549a4f3 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2047,6 +2047,13 @@ nvm_install_source() { local TMPDIR local VERSION_PATH + local ZSH_HAS_SHWORDSPLIT_UNSET + ZSH_HAS_SHWORDSPLIT_UNSET=1 + if nvm_has "setopt"; then + ZSH_HAS_SHWORDSPLIT_UNSET="$(set +e ; setopt | nvm_grep -q shwordsplit ; nvm_echo $?)" + setopt shwordsplit + fi + TARBALL="$(nvm_download_artifact "${FLAVOR}" source "${TYPE}" "${VERSION}" | command tail -1)" && \ [ -f "${TARBALL}" ] && \ TMPDIR="$(dirname "${TARBALL}")/files" && \ @@ -2062,10 +2069,16 @@ nvm_install_source() { command rm -f "${VERSION_PATH}" 2>/dev/null && \ $make -j "${NVM_MAKE_JOBS}" ${MAKE_CXX-} install ); then + if [ "$ZSH_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then + unsetopt shwordsplit + fi nvm_err "nvm: install ${VERSION} failed!" command rm -rf "${TMPDIR-}" return 1 fi + if [ "$ZSH_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then + unsetopt shwordsplit + fi } nvm_use_if_needed() { From 113d807e5a57b7aa49827a3573a55e47d3a72763 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Fri, 10 Mar 2017 01:07:16 +0800 Subject: [PATCH 1127/1426] [New] Support `--no-progress` for `nvm install` Closes #1079. --- nvm.sh | 32 +++++++++++--- .../Unit tests/nvm_install_no_progress_bar | 43 +++++++++++++++++++ 2 files changed, 70 insertions(+), 5 deletions(-) create mode 100644 test/fast/Unit tests/nvm_install_no_progress_bar diff --git a/nvm.sh b/nvm.sh index 549a4f3..5ed70ae 100644 --- a/nvm.sh +++ b/nvm.sh @@ -113,6 +113,7 @@ nvm_download() { -e 's/-L //' \ -e 's/-I /--server-response /' \ -e 's/-s /-q /' \ + -e 's/-sS /-nv /' \ -e 's/-o /-O /' \ -e 's/-C - /-c /') # shellcheck disable=SC2086 @@ -1738,12 +1739,19 @@ nvm_install_binary() { local TMPDIR local VERSION_PATH + local PROGRESS_BAR local NODE_OR_IOJS if [ "${FLAVOR}" = 'node' ]; then NODE_OR_IOJS="${FLAVOR}" fi + if [ "${NVM_NO_PROGRESS-}" = "1" ]; then + # --silent, --show-error, use short option as @samrocketman mentions the compatibility issue. + PROGRESS_BAR="-sS" + else + PROGRESS_BAR="--progress-bar" + fi nvm_echo "Downloading and installing ${NODE_OR_IOJS-} ${VERSION}..." - TARBALL="$(nvm_download_artifact "${FLAVOR}" binary "${TYPE-}" "${VERSION}" | command tail -1)" + TARBALL="$(PROGRESS_BAR="${PROGRESS_BAR}" nvm_download_artifact "${FLAVOR}" binary "${TYPE-}" "${VERSION}" | command tail -1)" if [ -f "${TARBALL}" ]; then TMPDIR="$(dirname "${TARBALL}")/files" fi @@ -1900,7 +1908,7 @@ nvm_download_artifact() { command rm -rf "${TARBALL}" fi nvm_err "Downloading ${TARBALL_URL}..." - nvm_download -L -C - --progress-bar "${TARBALL_URL}" -o "${TARBALL}" || ( + nvm_download -L -C - "${PROGRESS_BAR}" "${TARBALL_URL}" -o "${TARBALL}" || ( command rm -rf "${TARBALL}" "${tmpdir}" nvm_err "Binary download from ${TARBALL_URL} failed, trying source." return 4 @@ -2047,6 +2055,13 @@ nvm_install_source() { local TMPDIR local VERSION_PATH + if [ "${NVM_NO_PROGRESS-}" = "1" ]; then + # --silent, --show-error, use short option as @samrocketman mentions the compatibility issue. + PROGRESS_BAR="-sS" + else + PROGRESS_BAR="--progress-bar" + fi + local ZSH_HAS_SHWORDSPLIT_UNSET ZSH_HAS_SHWORDSPLIT_UNSET=1 if nvm_has "setopt"; then @@ -2054,7 +2069,7 @@ nvm_install_source() { setopt shwordsplit fi - TARBALL="$(nvm_download_artifact "${FLAVOR}" source "${TYPE}" "${VERSION}" | command tail -1)" && \ + TARBALL="$(PROGRESS_BAR="${PROGRESS_BAR}" nvm_download_artifact "${FLAVOR}" source "${TYPE}" "${VERSION}" | command tail -1)" && \ [ -f "${TARBALL}" ] && \ TMPDIR="$(dirname "${TARBALL}")/files" && \ if ! ( @@ -2366,6 +2381,7 @@ nvm() { nvm_echo ' --lts= When installing, only select from versions for a specific LTS line' nvm_echo ' --skip-default-packages When installing, skip the default-packages file if it exists' nvm_echo ' --latest-npm After installing, attempt to upgrade to the latest working npm on the given node version' + nvm_echo ' --no-progress Disable the progress bar on any downloads' nvm_echo ' nvm uninstall Uninstall a version' nvm_echo ' nvm uninstall --lts Uninstall using automatic LTS (long-term support) alias `lts/*`, if available.' nvm_echo ' nvm uninstall --lts= Uninstall using automatic alias for provided LTS line, if available.' @@ -2517,7 +2533,9 @@ nvm() { fi local nobinary + local noprogress nobinary=0 + noprogress=0 local LTS local NVM_UPGRADE_NPM NVM_UPGRADE_NPM=0 @@ -2533,6 +2551,10 @@ nvm() { nvm_get_make_jobs "$1" shift # consume job count ;; + --no-progress) + noprogress=1 + shift + ;; --lts) LTS='*' shift @@ -2741,7 +2763,7 @@ nvm() { # skip binary install if "nobinary" option specified. if [ $nobinary -ne 1 ] && nvm_binary_available "$VERSION"; then - nvm_install_binary "${FLAVOR}" std "${VERSION}" + NVM_NO_PROGRESS="${NVM_NO_PROGRESS:-${noprogress}}" nvm_install_binary "${FLAVOR}" std "${VERSION}" EXIT_CODE=$? fi if [ "$EXIT_CODE" -ne 0 ]; then @@ -2749,7 +2771,7 @@ nvm() { nvm_get_make_jobs fi - nvm_install_source "${FLAVOR}" std "${VERSION}" "${NVM_MAKE_JOBS}" "${ADDITIONAL_PARAMETERS}" + NVM_NO_PROGRESS="${NVM_NO_PROGRESS:-${noprogress}}" nvm_install_source "${FLAVOR}" std "${VERSION}" "${NVM_MAKE_JOBS}" "${ADDITIONAL_PARAMETERS}" EXIT_CODE=$? fi diff --git a/test/fast/Unit tests/nvm_install_no_progress_bar b/test/fast/Unit tests/nvm_install_no_progress_bar new file mode 100644 index 0000000..d43194d --- /dev/null +++ b/test/fast/Unit tests/nvm_install_no_progress_bar @@ -0,0 +1,43 @@ +#!/bin/sh + +set -e + +cleanup () { + nvm cache clear + nvm deactivate + rm -rf ${NVM_DIR}/v* + nvm unalias default +} + +die () { >&2 echo "$@" ; cleanup ; exit 1; } + +\. ../../../nvm.sh + +nvm_has_colors() { return 1 ; } + +cleanup + +OUTPUT="$(2>&1 nvm install --no-progress v0.12.18)" +EXPECTED_OUTPUT="Downloading and installing node v0.12.18... +Downloading https://nodejs.org/dist/v0.12.18/node-v0.12.18-linux-x64.tar.xz... +Computing checksum with sha256sum +Checksums matched! +Now using node v0.12.18 (npm v2.15.11) +Creating default alias: default -> v0.12.18 *" + +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" + +cleanup + +OUTPUT="$(2>&1 nvm install v0.12.18)" +EXPECTED_OUTPUT="Downloading and installing node v0.12.18... +Downloading https://nodejs.org/dist/v0.12.18/node-v0.12.18-linux-x64.tar.xz... +######################################################################## 100.0% +Computing checksum with sha256sum +Checksums matched! +Now using node v0.12.18 (npm v2.15.11) +Creating default alias: default -> v0.12.18 *" + +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" + +cleanup From 62ee7cf9982c41db56dd7c3149b547ecc8076889 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 21 May 2018 19:59:01 +0800 Subject: [PATCH 1128/1426] [Refactor] `bash_completion`: Improve coding style --- bash_completion | 63 ++++++++++++++++++++++--------------------------- 1 file changed, 28 insertions(+), 35 deletions(-) diff --git a/bash_completion b/bash_completion index 43df83b..7a3a5c0 100644 --- a/bash_completion +++ b/bash_completion @@ -3,20 +3,18 @@ # bash completion for Node Version Manager (NVM) if ! command -v nvm &> /dev/null; then - return + return fi -__nvm_generate_completion() -{ +__nvm_generate_completion() { declare current_word current_word="${COMP_WORDS[COMP_CWORD]}" # shellcheck disable=SC2207 - COMPREPLY=($(compgen -W "$1" -- "$current_word")) + COMPREPLY=($(compgen -W "$1" -- "${current_word}")) return 0 } -__nvm_commands () -{ +__nvm_commands() { declare current_word declare command @@ -30,58 +28,53 @@ __nvm_commands () cache deactivate unload version version-remote which' - if [ ${#COMP_WORDS[@]} == 4 ]; then + if [ ${#COMP_WORDS[@]} == 4 ]; then - command="${COMP_WORDS[COMP_CWORD-2]}" - case "${command}" in - alias) __nvm_installed_nodes ;; - esac + command="${COMP_WORDS[COMP_CWORD - 2]}" + case "${command}" in + alias) __nvm_installed_nodes ;; + esac - else + else - case "${current_word}" in - -*) __nvm_options ;; - *) __nvm_generate_completion "$COMMANDS" ;; - esac + case "${current_word}" in + -*) __nvm_options ;; + *) __nvm_generate_completion "${COMMANDS}" ;; + esac - fi + fi } -__nvm_options () -{ +__nvm_options() { OPTIONS='' - __nvm_generate_completion "$OPTIONS" + __nvm_generate_completion "${OPTIONS}" } -__nvm_installed_nodes () -{ +__nvm_installed_nodes() { __nvm_generate_completion "$(nvm_ls) $(__nvm_aliases)" } -__nvm_aliases () -{ +__nvm_aliases() { declare aliases aliases="" - if [ -d "$NVM_DIR/alias" ]; then - aliases="$(cd "$NVM_DIR/alias" && command find "$PWD" -type f | command sed "s:$PWD/::")" + if [ -d "${NVM_DIR}/alias" ]; then + aliases="$(cd "${NVM_DIR}/alias" && command find "${PWD}" -type f | command sed "s:${PWD}/::")" fi echo "${aliases} node stable unstable iojs" } -__nvm_alias () -{ +__nvm_alias() { __nvm_generate_completion "$(__nvm_aliases)" } -__nvm () -{ +__nvm() { declare previous_word - previous_word="${COMP_WORDS[COMP_CWORD-1]}" + previous_word="${COMP_WORDS[COMP_CWORD - 1]}" - case "$previous_word" in - use|run|exec|ls|list|uninstall) __nvm_installed_nodes ;; - alias|unalias) __nvm_alias ;; - *) __nvm_commands ;; + case "${previous_word}" in + use | run | exec | ls | list | uninstall) __nvm_installed_nodes ;; + alias | unalias) __nvm_alias ;; + *) __nvm_commands ;; esac return 0 From c465a8351840d62ed61bee3300950226ba9de084 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 23 May 2018 23:48:04 -0400 Subject: [PATCH 1129/1426] [Tests] `nvm ls-remote`: add test for overly-large tab file --- .../nodejs.org-download-nightly-index.tab | 1084 +++++++++++++++++ .../mocks/nvm_ls_remote LTS nightly argon.txt | 1 + .../mocks/nvm_ls_remote LTS nightly.txt | 12 + .../mocks/nvm_ls_remote nightly.txt | 95 ++ .../mocks/nvm_ls_remote stable nightly.txt | 1 + ...t_implicit_alias remote stable nightly.txt | 1 + test/fast/Unit tests/nvm_ls_remote nightly | 65 + update_test_mocks.sh | 9 +- 8 files changed, 1267 insertions(+), 1 deletion(-) create mode 100644 test/fast/Unit tests/mocks/nodejs.org-download-nightly-index.tab create mode 100644 test/fast/Unit tests/mocks/nvm_ls_remote LTS nightly argon.txt create mode 100644 test/fast/Unit tests/mocks/nvm_ls_remote LTS nightly.txt create mode 100644 test/fast/Unit tests/mocks/nvm_ls_remote nightly.txt create mode 100644 test/fast/Unit tests/mocks/nvm_ls_remote stable nightly.txt create mode 100644 test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable nightly.txt create mode 100755 test/fast/Unit tests/nvm_ls_remote nightly diff --git a/test/fast/Unit tests/mocks/nodejs.org-download-nightly-index.tab b/test/fast/Unit tests/mocks/nodejs.org-download-nightly-index.tab new file mode 100644 index 0000000..f0571b4 --- /dev/null +++ b/test/fast/Unit tests/mocks/nodejs.org-download-nightly-index.tab @@ -0,0 +1,1084 @@ +version date files npm v8 uv zlib openssl modules lts +v11.0.0-nightly201805249a02de7084 2018-05-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - +v11.0.0-nightly201805235823938d15 2018-05-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - +v11.0.0-nightly201805224f0ab76b6c 2018-05-22 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - +v11.0.0-nightly201805217f0f978aff 2018-05-21 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - +v11.0.0-nightly20180520df511c6195 2018-05-20 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - +v11.0.0-nightly20180519064057b7ad 2018-05-19 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - +v11.0.0-nightly201805180419adc771 2018-05-18 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.31 1.20.3 1.2.11 1.1.0h 64 - +v11.0.0-nightly201805170d9500daed 2018-05-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.31 1.20.3 1.2.11 1.1.0h 64 - +v11.0.0-nightly201805162b8cd93246 2018-05-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.31 1.20.3 1.2.11 1.1.0h 64 - +v11.0.0-nightly20180515810af50ba2 2018-05-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.3 1.2.11 1.1.0h 64 - +v11.0.0-nightly20180514ffb503be5f 2018-05-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.3 1.2.11 1.1.0h 64 - +v11.0.0-nightly20180513c0359f0988 2018-05-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.3 1.2.11 1.1.0h 64 - +v11.0.0-nightly2018051220509ebee6 2018-05-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.3 1.2.11 1.1.0h 64 - +v11.0.0-nightly20180511f145a53a78 2018-05-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.3 1.2.11 1.1.0h 64 - +v11.0.0-nightly20180510b267d2aae6 2018-05-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.3 1.2.11 1.1.0h 64 - +v11.0.0-nightly20180509d5b259e22b 2018-05-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.2 1.2.11 1.1.0h 64 - +v11.0.0-nightly20180508dd03709148 2018-05-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.2 1.2.11 1.1.0h 64 - +v11.0.0-nightly201805075efbe4c1e8 2018-05-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.2 1.2.11 1.1.0h 64 - +v11.0.0-nightly2018050634bd9f318a 2018-05-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.2 1.2.11 1.1.0h 64 - +v11.0.0-nightly201805051cf7ef6433 2018-05-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.2 1.2.11 1.1.0h 64 - +v11.0.0-nightly20180504cd8ed1c447 2018-05-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - +v11.0.0-nightly20180503c493b98b0b 2018-05-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - +v11.0.0-nightly20180502392d80a617 2018-05-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - +v11.0.0-nightly20180501d3abb60b05 2018-05-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - +v11.0.0-nightly20180430283a967e35 2018-04-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - +v11.0.0-nightly20180429b55a11d1b1 2018-04-29 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - +v11.0.0-nightly2018042865d97c96aa 2018-04-28 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - +v11.0.0-nightly20180427e10cb7fdda 2018-04-27 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - +v11.0.0-nightly20180426d4726d2f3f 2018-04-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - +v11.0.0-nightly2018042595197ed2b0 2018-04-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - +v10.2.1-nightly20180524be71c5dea9 2018-05-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - +v10.1.1-nightly20180523235a272838 2018-05-23 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - +v10.1.1-nightly20180515981a2f7b16 2018-05-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.3 1.2.11 1.1.0h 64 - +v10.1.1-nightly20180513b6ea5df08a 2018-05-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.3 1.2.11 1.1.0h 64 - +v10.1.1-nightly20180509f55fdd1e5e 2018-05-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.2 1.2.11 1.1.0h 64 - +v10.0.1-nightly20180505ff148b987d 2018-05-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.2 1.2.11 1.1.0h 64 - +v10.0.1-nightly201804254289402aa3 2018-04-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - +v10.0.0-nightly20180424982adb5994 2018-04-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - +v10.0.0-nightly201804231c66a10a0c 2018-04-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - +v10.0.0-nightly20180422e5f53206dd 2018-04-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.0 1.2.11 1.1.0h 64 - +v10.0.0-nightly201804212a88f02f2f 2018-04-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.0 1.2.11 1.1.0h 64 - +v10.0.0-nightly201804201b438a7737 2018-04-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.0 1.2.11 1.1.0h 64 - +v10.0.0-nightly20180419bbdb4af0bd 2018-04-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.0 1.2.11 1.1.0h 64 - +v10.0.0-nightly2018041872549aa9cd 2018-04-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.0 1.2.11 1.1.0h 64 - +v10.0.0-nightly201804175eb9f3c91c 2018-04-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.0 1.2.11 1.1.0h 63 - +v10.0.0-nightly20180416978e1524bb 2018-04-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.23 1.20.0 1.2.11 1.1.0h 63 - +v10.0.0-nightly20180415b003c86bf4 2018-04-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.23 1.20.0 1.2.11 1.1.0h 63 - +v10.0.0-nightly2018041491e0f8db11 2018-04-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.23 1.20.0 1.2.11 1.1.0h 63 - +v10.0.0-nightly201804132a6ab9b37b 2018-04-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.23 1.20.0 1.2.11 1.1.0h 63 - +v10.0.0-nightly201804120aab8ff602 2018-04-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.23 1.20.0 1.2.11 1.1.0h 63 - +v10.0.0-nightly2018041142d8976dff 2018-04-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.20.0 1.2.11 1.1.0h 62 - +v10.0.0-nightly20180410d1156da815 2018-04-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.20.0 1.2.11 1.1.0h 62 - +v10.0.0-nightly20180409244af7a9d5 2018-04-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.20.0 1.2.11 1.0.2o 62 - +v10.0.0-nightly2018040808a36a0666 2018-04-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.20.0 1.2.11 1.0.2o 62 - +v10.0.0-nightly2018040777b52fd58f 2018-04-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.20.0 1.2.11 1.0.2o 62 - +v10.0.0-nightly2018040653aaa55a3a 2018-04-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.20.0 1.2.11 1.0.2o 62 - +v10.0.0-nightly20180405b29c36b807 2018-04-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.20.0 1.2.11 1.0.2o 62 - +v10.0.0-nightly20180404b22a189b43 2018-04-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2o 62 - +v10.0.0-nightly20180403d54f651910 2018-04-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2o 62 - +v10.0.0-nightly20180402a9a1f12b42 2018-04-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2o 62 - +v10.0.0-nightly20180401141be923f3 2018-04-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2o 62 - +v10.0.0-nightly2018033128b622cb08 2018-03-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2o 62 - +v10.0.0-nightly2018033083d44bee01 2018-04-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2o 62 - +v10.0.0-nightly20180329aec019030d 2018-03-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2o 62 - +v10.0.0-nightly20180328bc690e9ef5 2018-03-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2o 62 - +v10.0.0-nightly201803278eca6b8d3d 2018-03-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2n 62 - +v10.0.0-nightly201803269396b77238 2018-03-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.41 1.19.2 1.2.11 1.0.2n 62 - +v10.0.0-nightly201803259125479be9 2018-03-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.41 1.19.2 1.2.11 1.0.2n 62 - +v10.0.0-nightly20180324ca22c96f16 2018-03-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.41 1.19.2 1.2.11 1.0.2n 62 - +v10.0.0-nightly20180323b41ed29b80 2018-03-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.41 1.19.2 1.2.11 1.0.2n 62 - +v10.0.0-nightly20180322e714da6f0a 2018-03-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.41 1.19.2 1.2.11 1.0.2n 62 - +v10.0.0-nightly201803219b7a6914a7 2018-03-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.41 1.19.2 1.2.11 1.0.2n 62 - +v10.0.0-nightly201803206a958d2bf8 2018-03-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.40 1.19.2 1.2.11 1.0.2n 62 - +v10.0.0-nightly201803190fb017d684 2018-03-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.40 1.19.2 1.2.11 1.0.2n 62 - +v10.0.0-nightly20180318d74184c2fa 2018-03-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.38 1.19.2 1.2.11 1.0.2n 62 - +v10.0.0-nightly201803171329844a08 2018-03-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.38 1.19.2 1.2.11 1.0.2n 62 - +v10.0.0-nightly2018031696cb4fb795 2018-03-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.38 1.19.2 1.2.11 1.0.2n 62 - +v10.0.0-nightly201803153c61b87e59 2018-03-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.38 1.19.2 1.2.11 1.0.2n 62 - +v10.0.0-nightly20180314040dd244de 2018-03-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.38 1.19.2 1.2.11 1.0.2n 62 - +v10.0.0-nightly2018031352e869bee8 2018-03-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.31 1.19.2 1.2.11 1.0.2n 62 - +v10.0.0-nightly2018031222b6804259 2018-03-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.31 1.19.2 1.2.11 1.0.2n 62 - +v10.0.0-nightly2018031198a14e026b 2018-03-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.31 1.19.2 1.2.11 1.0.2n 62 - +v10.0.0-nightly2018031097579068b5 2018-03-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.31 1.19.2 1.2.11 1.0.2n 62 - +v10.0.0-nightly20180309099e621648 2018-03-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.31 1.19.2 1.2.11 1.0.2n 62 - +v10.0.0-nightly201803083dfce5cdad 2018-03-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.31 1.19.2 1.2.11 1.0.2n 62 - +v10.0.0-nightly20180307a6c14b2f42 2018-03-07 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.31 1.19.2 1.2.11 1.0.2n 62 - +v10.0.0-nightly2018030678a7536db3 2018-03-06 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - +v10.0.0-nightly20180305b20af8088a 2018-03-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - +v10.0.0-nightly20180304f2d93795bf 2018-03-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - +v10.0.0-nightly201803035a55a71150 2018-03-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - +v10.0.0-nightly201803029e9c516512 2018-03-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - +v10.0.0-nightly20180301740c426b21 2018-03-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - +v10.0.0-nightly201802283f78d3fcf8 2018-02-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - +v10.0.0-nightly20180227a27e6d7321 2018-02-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - +v10.0.0-nightly20180226dbe645f114 2018-02-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - +v10.0.0-nightly20180225da886d9a4c 2018-02-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - +v10.0.0-nightly2018022415e41a9951 2018-02-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - +v10.0.0-nightly20180223a29089d7c8 2018-02-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - +v10.0.0-nightly20180222fecc64d6dc 2018-02-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.1 1.2.11 1.0.2n 61 - +v10.0.0-nightly201802216bdc18c592 2018-02-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.1 1.2.11 1.0.2n 61 - +v10.0.0-nightly201802207514eb3cff 2018-02-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.1 1.2.11 1.0.2n 61 - +v10.0.0-nightly201802175156342105 2018-02-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.1 1.2.11 1.0.2n 61 - +v10.0.0-nightly20180216f25104e136 2018-02-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-exe 5.6.0 6.4.388.44 1.19.1 1.2.11 1.0.2n 61 - +v10.0.0-nightly20180215a16081cbad 2018-02-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.44 1.19.1 1.2.11 1.0.2n 61 - +v10.0.0-nightly2018021492c86fd84d 2018-02-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.44 1.19.1 1.2.11 1.0.2n 61 - +v10.0.0-nightly20180213e782715d0a 2018-02-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.44 1.19.1 1.2.11 1.0.2n 61 - +v10.0.0-nightly201802123d53848d75 2018-02-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.42 1.19.1 1.2.11 1.0.2n 61 - +v10.0.0-nightly201802112aa3e3b00f 2018-02-11 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.42 1.19.1 1.2.11 1.0.2n 61 - +v10.0.0-nightly2018021001d049165c 2018-02-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.42 1.19.1 1.2.11 1.0.2n 61 - +v10.0.0-nightly20180209dbd1d1d43f 2018-02-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.42 1.19.1 1.2.11 1.0.2n 61 - +v10.0.0-nightly20180208d3569b623c 2018-02-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.42 1.19.1 1.2.11 1.0.2n 61 - +v10.0.0-nightly2018020792ba624fa1 2018-02-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.42 1.19.1 1.2.11 1.0.2n 61 - +v10.0.0-nightly20180206ac829f0135 2018-02-06 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.41 1.19.1 1.2.11 1.0.2n 61 - +v10.0.0-nightly20180205d4b605b990 2018-02-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.41 1.19.1 1.2.11 1.0.2n 61 - +v10.0.0-nightly2018020447a984ada0 2018-02-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - +v10.0.0-nightly20180203f8fda0d5ad 2018-02-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - +v10.0.0-nightly2018020289dd21a8ad 2018-02-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - +v10.0.0-nightly20180201ad94be84f9 2018-02-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - +v10.0.0-nightly2018013126ce1ae647 2018-01-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - +v10.0.0-nightly20180130e56189ed58 2018-01-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - +v10.0.0-nightly201801295c8ce90c2f 2018-01-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - +v10.0.0-nightly201801294a498335f5 2018-01-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - +v10.0.0-nightly20180127f29c2cbec5 2018-01-27 osx-x64-pkg 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - +v10.0.0-nightly20180126fa33f026cc 2018-01-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - +v10.0.0-nightly20180125c016cc2b17 2018-01-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - +v10.0.0-nightly201801242313424abc 2018-01-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.3.292.48 1.19.1 1.2.11 1.0.2n 60 - +v10.0.0-nightly201801239870b53810 2018-01-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly20180122e7ff00d0c5 2018-01-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly201801218803b69c72 2018-01-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly20180120e1c29f2c52 2018-01-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly20180119cbd634947d 2018-01-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly201801187809f386b0 2018-01-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly201801171b0d9795b6 2018-01-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly20180116f75bc2c1a5 2018-01-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly2018011585739b6c5b 2018-01-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly20180114858b48b692 2018-01-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly20180113c770f43a91 2018-01-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly201801121385e1bc63 2018-01-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly20180111470bd39390 2018-01-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly201801106e3818f2a2 2018-01-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly20180109f3f3f8890c 2018-01-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly201801086aac05bf47 2018-01-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly201801078a86d9c1cf 2018-01-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly20180106b396c4db66 2018-01-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly20180105feaf6ac3dc 2018-01-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly201801043f2382bd9a 2018-01-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly201801033b1e263b7b 2018-01-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly201712294117e22cf3 2017-12-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly20171228120ea9b5c4 2017-12-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly2017122771396a200d 2017-12-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly2017122603b8ac14e7 2017-12-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly2017122581c2b59609 2017-12-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly20171224359819e760 2017-12-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly201712238599465d33 2017-12-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly20171222b5d415311b 2017-12-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly20171221a4f44acd69 2017-12-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly20171220d6b1b84ca0 2017-12-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly201712193b8da4cbe8 2017-12-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly20171218ce38c49fb8 2017-12-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly20171217b2432a7f00 2017-12-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly201712162ac7aded29 2017-12-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly20171214decab712ba 2017-12-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly2017121304ae4862e6 2017-12-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly201712127a055f1d39 2017-12-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly2017121151a7d97625 2017-12-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly20171210d2626ef6b7 2017-12-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly20171209e9d1e1265a 2017-12-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly201712084e65f9d504 2017-12-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - +v10.0.0-nightly201712070bc10b0472 2017-12-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2m 60 - +v10.0.0-nightly20171206cd174df353 2017-12-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2m 60 - +v10.0.0-nightly201712053549d9c2bc 2017-12-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.18.0 1.2.11 1.0.2m 59 - +v10.0.0-nightly20171204a322b8e316 2017-12-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.18.0 1.2.11 1.0.2m 59 - +v10.0.0-nightly20171203fff4272fa7 2017-12-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.18.0 1.2.11 1.0.2m 59 - +v10.0.0-nightly20171202c589561aaf 2017-12-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.18.0 1.2.11 1.0.2m 59 - +v10.0.0-nightly20171201e9e9863ca7 2017-12-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.18.0 1.2.11 1.0.2m 59 - +v10.0.0-nightly20171130701dc9a86e 2017-11-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.16.1 1.2.11 1.0.2m 59 - +v10.0.0-nightly201711294503da8a3a 2017-11-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.16.1 1.2.11 1.0.2m 59 - +v10.0.0-nightly201711280fb1e07689 2017-11-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.16.1 1.2.11 1.0.2m 59 - +v10.0.0-nightly201711274ca4db0d4c 2017-11-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.16.1 1.2.11 1.0.2m 59 - +v10.0.0-nightly20171126bb4462681c 2017-11-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.16.1 1.2.11 1.0.2m 59 - +v10.0.0-nightly2017112529423b49c7 2017-11-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - +v10.0.0-nightly20171124887e2327ee 2017-11-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - +v10.0.0-nightly20171123088bba31a3 2017-11-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - +v10.0.0-nightly20171121a95d88c881 2017-11-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - +v10.0.0-nightly20171120ad1967d656 2017-11-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - +v10.0.0-nightly2017111997ba69f915 2017-11-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - +v10.0.0-nightly20171118707cd3f615 2017-11-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - +v10.0.0-nightly20171117959c425a19 2017-11-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - +v10.0.0-nightly20171116b3127cd537 2017-11-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - +v10.0.0-nightly20171115157df5a47c 2017-11-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - +v10.0.0-nightly20171114803cacd228 2017-11-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - +v10.0.0-nightly2017111314d24cc4d2 2017-11-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - +v10.0.0-nightly20171112c5a49e148d 2017-11-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.16.1 1.2.11 1.0.2m 59 - +v10.0.0-nightly201711117b3446e7bb 2017-11-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.16.1 1.2.11 1.0.2m 59 - +v10.0.0-nightly201711106f02da255f 2017-11-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - +v10.0.0-nightly20171109f002c3d2ed 2017-11-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - +v10.0.0-nightly20171108d597317a20 2017-11-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - +v10.0.0-nightly20171107a77bfcaac7 2017-11-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - +v10.0.0-nightly201711060300565af9 2017-11-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - +v10.0.0-nightly201711059f3d59eabb 2017-11-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - +v10.0.0-nightly20171104291ff72f85 2017-11-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - +v10.0.0-nightly2017110372f21d248f 2017-11-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - +v10.0.0-nightly20171102d4471e06e8 2017-11-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - +v10.0.0-nightly2017110118df171307 2017-11-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - +v9.11.2-nightly201804135d9a7f81ae 2018-04-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.20.0 1.2.11 1.0.2o 59 - +v9.11.2-nightly201804065ecd82d07d 2018-04-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.20.0 1.2.11 1.0.2o 59 - +v9.11.2-nightly201804056bc6eeeabe 2018-04-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - +v9.10.2-nightly201804042bdf3ca235 2018-04-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - +v9.10.2-nightly20180403c1b83fcbc2 2018-04-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - +v9.10.2-nightly201804020bcad33c7a 2018-04-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - +v9.10.2-nightly20180330dac5f67e64 2018-04-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - +v9.10.1-nightly201803284844a263ce 2018-03-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - +v9.10.0-nightly201803270a18bf1304 2018-03-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - +v9.9.1-nightly201803256591d9f761 2018-03-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - +v9.9.1-nightly20180324d1c45e258c 2018-03-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - +v9.9.1-nightly20180322d3833b0734 2018-03-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - +v9.9.1-nightly201803215960cde4eb 2018-03-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - +v9.8.1-nightly20180320607b33cfcc 2018-03-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - +v9.8.1-nightly20180318d2b99e3774 2018-03-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - +v9.8.1-nightly20180317e7ce4d6c13 2018-03-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - +v9.8.1-nightly201803158daa6fa902 2018-03-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - +v9.8.1-nightly20180308fed51b3a15 2018-03-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - +v9.7.2-nightly20180307cde6671b41 2018-03-07 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - +v9.7.2-nightly20180305479b622e49 2018-03-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - +v9.7.2-nightly20180302e4fe235b5e 2018-03-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - +v9.7.1-nightly201803013f3995b7b7 2018-03-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - +v9.6.2-nightly201802277853a7fd2a 2018-02-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - +v9.6.2-nightly201802262177138db0 2018-02-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - +v9.6.2-nightly20180223aec66c660c 2018-02-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.1 1.2.11 1.0.2n 59 - +v9.6.1-nightly20180222927c1b1a7e 2018-02-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.1 1.2.11 1.0.2n 59 - +v9.5.1-nightly20180221b9b58100e0 2018-02-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.1 1.2.11 1.0.2n 59 - +v9.5.1-nightly2018020181da708f73 2018-02-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.1 1.2.11 1.0.2n 59 - +v9.4.1-nightly20180124dd56bd1591 2018-01-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - +v9.4.1-nightly20180117722fe464bc 2018-01-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - +v9.4.1-nightly20180115167e9c6dcd 2018-01-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - +v9.4.1-nightly20180111506d85bfba 2018-01-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - +v9.4.1-nightly2018011039970e9caf 2018-01-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - +v9.3.1-nightly2018010930273d400c 2018-01-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - +v9.3.1-nightly201712226bd0aff092 2017-12-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - +v9.3.1-nightly20171213b8ecf3c6f6 2017-12-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - +v9.2.2-nightly20171212f8143214be 2017-12-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - +v9.2.1-nightly20171208f0f9e1abf0 2017-12-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2n 59 - +v9.1.1-nightly20171207c81e9682c4 2017-12-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2n 59 - +v9.1.1-nightly201711075f5ef4226e 2017-11-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - +v9.0.1-nightly20171105ed0fbd8d72 2017-11-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - +v9.0.0-nightly2017103182790d84f2 2017-10-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - +v9.0.0-nightly20171030e567402aba 2017-10-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - +v9.0.0-nightly20171029896eaf6820 2017-10-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - +v9.0.0-nightly201710281c0772444c 2017-10-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - +v9.0.0-nightly2017102798eab4a461 2017-10-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - +v9.0.0-nightly20171025d2e44d5e7f 2017-10-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - +v9.0.0-nightly2017102447ed02cec6 2017-10-24 linux-ppc64le,linux-x64,linux-x86,sunos-x64,sunos-x86 5.3.0 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - +v9.0.0-nightly20171021fe4675b301 2017-10-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - +v9.0.0-nightly20171020686e092202 2017-10-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - +v9.0.0-nightly201710193c0ebf5aca 2017-10-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - +v9.0.0-nightly2017101870832bc353 2017-10-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - +v9.0.0-nightly20171017ff747e3fe8 2017-10-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - +v9.0.0-nightly20171016e2015b5347 2017-10-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - +v9.0.0-nightly2017101542479130a9 2017-10-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - +v9.0.0-nightly20171014971aad1b13 2017-10-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - +v9.0.0-nightly20171013981595c316 2017-10-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - +v9.0.0-nightly20171012bf8f1d3208 2017-10-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - +v9.0.0-nightly2017101107f1efc2ae 2017-10-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - +v9.0.0-nightly2017101092146e00fd 2017-10-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - +v9.0.0-nightly20171009fca31be833 2017-10-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - +v9.0.0-nightly2017100841b65b9fa3 2017-10-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - +v9.0.0-nightly20171007fabd618eef 2017-10-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - +v9.0.0-nightly201710064f339b54e9 2017-10-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - +v9.0.0-nightly20171004a3cd8ed168 2017-10-04 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 58 - +v9.0.0-nightly201710037cff6e80bf 2017-10-03 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 58 - +v9.0.0-nightly201710027069e633ca 2017-10-02 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 58 - +v9.0.0-nightly20171001f9be5fe52a 2017-10-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 58 - +v9.0.0-nightly20170930cec6e21668 2017-09-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 58 - +v9.0.0-nightly2017092998077446f9 2017-09-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 58 - +v9.0.0-nightly201709282f2f1cfa87 2017-09-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 58 - +v9.0.0-nightly20170924456d8e21ea 2017-09-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.38 1.14.1 1.2.11 1.0.2l 58 - +v9.0.0-nightly20170923150b8f7fda 2017-09-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.38 1.14.1 1.2.11 1.0.2l 58 - +v9.0.0-nightly2017092220259f9092 2017-09-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.38 1.14.1 1.2.11 1.0.2l 58 - +v9.0.0-nightly20170921cd1b55a942 2017-09-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.38 1.14.1 1.2.11 1.0.2l 58 - +v9.0.0-nightly2017092075606c4f69 2017-09-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.38 1.14.1 1.2.11 1.0.2l 58 - +v9.0.0-nightly2017091919766547fa 2017-09-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.38 1.14.1 1.2.11 1.0.2l 58 - +v9.0.0-nightly20170918c75f87cc4c 2017-09-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.38 1.14.1 1.2.11 1.0.2l 58 - +v9.0.0-nightly2017091775f7b2f577 2017-09-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.36 1.14.1 1.2.11 1.0.2l 58 - +v9.0.0-nightly20170916b0d3bec95c 2017-09-16 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.36 1.14.1 1.2.11 1.0.2l 58 - +v9.0.0-nightly20170915a5916107dd 2017-09-15 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.36 1.14.1 1.2.11 1.0.2l 58 - +v9.0.0-nightly201709141a0727d85e 2017-09-14 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.36 1.14.1 1.2.11 1.0.2l 58 - +v9.0.0-nightly20170913bf1ca8fb2e 2017-09-13 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.36 1.14.1 1.2.11 1.0.2l 58 - +v9.0.0-nightly20170912a10856a7d3 2017-09-12 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly2017091061e9ba1271 2017-09-10 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly201709095f22375922 2017-09-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly20170908aa76ce943b 2017-09-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly20170907641646463d 2017-09-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly201709068485a7c0b7 2017-09-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly20170905ea2e6363f2 2017-09-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly20170904b24e269a48 2017-09-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly20170903c7c9e20ed0 2017-09-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly2017090208984b26d3 2017-09-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly20170901dd52cad044 2017-09-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly20170831365c24591c 2017-08-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly20170830a80b1621b0 2017-08-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly201708291ffd01cf7f 2017-08-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly201708287854562143 2017-08-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly201708274d893e093a 2017-08-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly2017082699c478eb36 2017-08-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly20170825a1d34b3f49 2017-08-25 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly20170824abced13e29 2017-08-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly201708204cff2cc20f 2017-08-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly20170819467385a49b 2017-08-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly201708184d842e3d66 2017-08-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly2017081760f2fa9a8b 2017-08-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly20170816e9c0263696 2017-08-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly201708155f31d54720 2017-08-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly20170814afe68c1868 2017-08-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly2017081395bbb68175 2017-08-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly20170812ab2b331f5e 2017-08-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly201708117307839b55 2017-08-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly2017081097c43940c8 2017-08-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly201708091e569f42b6 2017-08-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly20170808f11379d25b 2017-08-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly201708073f98b0f33c 2017-08-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly20170806e96ca62480 2017-08-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly20170805ff65a2e051 2017-08-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly201708042dc09f656b 2017-08-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly20170803d41423fe72 2017-08-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly20170802e506bcd899 2017-08-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - +v9.0.0-nightly20170801cee8d6d65e 2017-08-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.39 1.13.1 1.2.11 1.0.2l 56 - +v9.0.0-nightly2017072975bf8a9db9 2017-07-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.39 1.13.1 1.2.11 1.0.2l 56 - +v9.0.0-nightly201707288dce05fa71 2017-07-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.39 1.13.1 1.2.11 1.0.2l 56 - +v9.0.0-nightly201707259ab3172e5d 2017-07-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - +v9.0.0-nightly201707245c2d1af310 2017-07-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - +v9.0.0-nightly2017072369f653dff9 2017-07-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - +v9.0.0-nightly201707228979b4fc9f 2017-07-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - +v9.0.0-nightly201707214f87522244 2017-07-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - +v9.0.0-nightly201707207fdcb68dc3 2017-07-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - +v9.0.0-nightly20170719aa496f4bee 2017-07-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - +v9.0.0-nightly20170718f406a7ebae 2017-07-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - +v9.0.0-nightly20170717a6cec04aaa 2017-07-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - +v9.0.0-nightly20170716e8170f2246 2017-07-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - +v9.0.0-nightly20170715785a9e5a57 2017-07-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - +v9.0.0-nightly20170714016d81ceec 2017-07-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.13.1 1.2.11 1.0.2l 56 - +v9.0.0-nightly20170713598a128ff4 2017-07-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.13.1 1.2.11 1.0.2l 56 - +v9.0.0-nightly20170712f52c707853 2017-07-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - +v9.0.0-nightly2017071180c9fd9569 2017-07-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - +v9.0.0-nightly2017071094dd42577c 2017-07-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - +v9.0.0-nightly2017070918069523f8 2017-07-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - +v9.0.0-nightly20170708b647f04df1 2017-07-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - +v9.0.0-nightly2017070749d13a17b1 2017-07-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - +v9.0.0-nightly20170706f651e40350 2017-07-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - +v9.0.0-nightly201707058520e6f280 2017-07-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - +v9.0.0-nightly201707045100cc6851 2017-07-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - +v9.0.0-nightly20170703fe730d34ce 2017-07-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - +v9.0.0-nightly201707023129b2c035 2017-07-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - +v9.0.0-nightly2017070171ca122def 2017-07-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - +v9.0.0-nightly20170630e6b69b9418 2017-06-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - +v9.0.0-nightly2017062947d1e125ac 2017-06-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - +v9.0.0-nightly2017062850ba13ef0e 2017-06-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - +v9.0.0-nightly20170627b714060e08 2017-06-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - +v9.0.0-nightly201706265fbbd25dc4 2017-06-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - +v9.0.0-nightly2017062487d682b69a 2017-06-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - +v9.0.0-nightly201706233b0e800f18 2017-06-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - +v9.0.0-nightly201706223e178848a5 2017-06-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - +v9.0.0-nightly2017062132c7f114c5 2017-06-21 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - +v9.0.0-nightly20170620d2913384aa 2017-06-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - +v9.0.0-nightly2017061924ecc331e2 2017-06-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - +v9.0.0-nightly2017061881c0045378 2017-06-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - +v9.0.0-nightly20170617ecf6a46d98 2017-06-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - +v9.0.0-nightly201706161e2905f46a 2017-06-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - +v9.0.0-nightly20170615de4a749788 2017-06-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - +v9.0.0-nightly201706142f34bf0f77 2017-06-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - +v9.0.0-nightly20170613e5a494857a 2017-06-13 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - +v9.0.0-nightly2017061227cc30aea8 2017-06-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - +v9.0.0-nightly20170608d0571a926a 2017-06-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - +v9.0.0-nightly20170607eef94a8bf8 2017-06-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - +v9.0.0-nightly20170606b830c976b5 2017-06-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2l 55 - +v9.0.0-nightly201706057024c5a302 2017-06-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2l 55 - +v9.0.0-nightly201706044d89e3c261 2017-06-04 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2l 55 - +v9.0.0-nightly20170603917f86ea35 2017-06-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2l 55 - +v9.0.0-nightly201706021609899142 2017-06-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2l 55 - +v9.0.0-nightly201706019b730620a7 2017-06-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2k 55 - +v9.0.0-nightly20170531102e1aa4e3 2017-05-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2k 55 - +v8.9.1-nightly20171104a815e1b6a2 2017-11-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.46 1.15.0 1.2.11 1.0.2m 57 Carbon +v8.9.1-nightly2017110308b75c1591 2017-11-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.46 1.15.0 1.2.11 1.0.2m 57 Carbon +v8.9.1-nightly20171102dfac6cc0bb 2017-11-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.46 1.15.0 1.2.11 1.0.2l 57 Carbon +v8.9.1-nightly2017103140d82118d8 2017-10-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.46 1.15.0 1.2.11 1.0.2l 57 Carbon +v8.8.2-nightly20171030f00ba6b142 2017-10-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - +v8.8.2-nightly201710264359a93cc9 2017-10-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - +v8.8.1-nightly201710256fbef7f350 2017-10-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - +v8.7.1-nightly2017102478a6ef46a9 2017-10-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - +v8.7.1-nightly20171018e34509e8ed 2017-10-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - +v8.7.1-nightly20171012415821c309 2017-10-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - +v8.6.1-nightly201710116f42b680e3 2017-10-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - +v8.6.1-nightly201710109eb991a827 2017-10-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - +v8.6.1-nightly201710088ae4ae605c 2017-10-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - +v8.6.1-nightly2017100497f7590c82 2017-10-04 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.14.1 1.2.11 1.0.2l 57 - +v8.6.1-nightly20171003b22014ef2b 2017-10-03 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.14.1 1.2.11 1.0.2l 57 - +v8.6.1-nightly20170930e4c6698c29 2017-09-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 57 - +v8.6.1-nightly2017092937d1779e05 2017-09-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 57 - +v8.6.1-nightly20170928b6a8e5cb18 2017-09-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.38 1.14.1 1.2.11 1.0.2l 57 - +v8.5.1-nightly20170921535f8d5281 2017-09-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - +v8.5.1-nightly201709204efc6fec6b 2017-09-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - +v8.5.1-nightly20170914a792ea7709 2017-09-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - +v8.5.1-nightly2017091299dc1f93a7 2017-09-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - +v8.4.1-nightly201709104b28e0055e 2017-09-10 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - +v8.3.1-nightly201708182d8d355a5f 2017-08-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - +v8.3.1-nightly20170814dd521d0a28 2017-08-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - +v8.3.1-nightly20170813ee2ae0f30b 2017-08-13 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - +v8.3.1-nightly20170812c5ee34e39b 2017-08-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - +v8.3.1-nightly20170811a781bb4508 2017-08-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - +v8.3.1-nightly201708109888bb1238 2017-08-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - +v8.2.1-nightly2017080791b7843aeb 2017-08-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - +v8.2.1-nightly201708028a3bc874fa 2017-08-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - +v8.2.1-nightly2017080132b30d519e 2017-08-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - +v8.2.1-nightly201707291a5927fc27 2017-07-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - +v8.2.1-nightly20170728e2356e72e7 2017-07-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - +v8.2.1-nightly20170724bdcd496c98 2017-07-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - +v8.2.1-nightly201707236fc0ceab00 2017-07-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - +v8.2.1-nightly2017072224b384d6a0 2017-07-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - +v8.2.1-nightly201707206fce1a314e 2017-07-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - +v8.1.5-nightly20170718e9491f1cd4 2017-07-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.37 1.13.1 1.2.11 1.0.2l 57 - +v8.1.5-nightly201707128d1f3dae37 2017-07-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 57 - +v8.1.5-nightly20170711f457b05499 2017-07-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 57 - +v8.1.4-nightly20170704c2c7eb1a41 2017-07-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 57 - +v8.1.4-nightly20170630ff71987764 2017-06-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 57 - +v8.1.4-nightly2017062982dc65bf6b 2017-06-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 57 - +v8.1.3-nightly201706220b96a2640b 2017-06-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 57 - +v8.1.3-nightly20170620f64ea03a3a 2017-06-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 57 - +v8.1.3-nightly201706175238fa248f 2017-06-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.35 1.12.0 1.2.11 1.0.2l 57 - +v8.1.2-nightly20170614a1b27dbfb4 2017-06-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.8.283.41 1.12.0 1.2.11 1.0.2l 57 - +v8.1.1-nightly2017061323318c7661 2017-06-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.8.283.41 1.12.0 1.2.11 1.0.2l 57 - +v8.1.0-nightly20170612f6fc46e036 2017-06-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.8.283.41 1.12.0 1.2.11 1.0.2l 57 - +v8.0.0-nightly20170530effeff1843 2017-05-30 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2k 55 - +v8.0.0-nightly2017052910913271bf 2017-05-29 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2k 55 - +v8.0.0-nightly2017052890877003c1 2017-05-28 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0-beta.56 5.8.283.41 1.11.0 1.2.11 1.0.2k 55 - +v8.0.0-nightly20170527f84666f923 2017-05-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0-beta.56 5.8.283.41 1.11.0 1.2.11 1.0.2k 55 - +v8.0.0-nightly2017052619685eac65 2017-05-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0-beta.56 5.8.283.41 1.11.0 1.2.11 1.0.2k 55 - +v8.0.0-nightly20170525413691fde0 2017-05-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0-beta.56 5.8.283.40 1.11.0 1.2.11 1.0.2k 55 - +v8.0.0-nightly20170524260cd411d4 2017-05-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0-beta.56 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - +v8.0.0-nightly2017052360390cd7fb 2017-05-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0-beta.56 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - +v8.0.0-nightly2017052206f62eb384 2017-05-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - +v8.0.0-nightly201705212b541471db 2017-05-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - +v8.0.0-nightly201705208250bfd1e5 2017-05-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - +v8.0.0-nightly201705196f216710eb 2017-05-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - +v8.0.0-nightly201705185de722ab6d 2017-05-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - +v8.0.0-nightly201705176342988053 2017-05-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - +v8.0.0-nightly2017051611918c4aed 2017-05-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - +v8.0.0-nightly20170515ef16319eff 2017-05-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - +v8.0.0-nightly20170514b5ae22dd1c 2017-05-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - +v8.0.0-nightly2017051384fc069b95 2017-05-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - +v8.0.0-nightly201705121d5f5aa7e1 2017-05-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - +v8.0.0-nightly20170511631cb42b4e 2017-05-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - +v8.0.0-nightly20170510cfe7b34058 2017-05-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - +v8.0.0-nightly20170509faf6654ff7 2017-05-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - +v8.0.0-nightly20170508ea1b8a5cbc 2017-05-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - +v8.0.0-nightly201705073fd890a06e 2017-05-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - +v8.0.0-nightly2017050673d9c0f903 2017-05-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly201705052614d247fb 2017-05-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly201705043f48ab3042 2017-05-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly20170503d56a7e640f 2017-05-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly201705029802d466cc 2017-05-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly201705010f58d3cbef 2017-05-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly20170430aa3eab00da 2017-04-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly2017042997ec72b76d 2017-04-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly20170428b2c7a51dd7 2017-04-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly20170427892ce06dbd 2017-04-27 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly20170426d7ba2a6035 2017-04-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly20170425ba7bac5c37 2017-04-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly2017042485a4e25775 2017-04-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly20170423cf68280ce1 2017-04-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly20170422bd97e48d9a 2017-04-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly2017042158066d16d5 2017-04-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly20170420468275ac79 2017-04-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly20170419a2843f2cf9 2017-04-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly201704186c912a8216 2017-04-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly20170417ade80eeb1a 2017-04-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly20170416b837bd2792 2017-04-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly20170415e125f174dc 2017-04-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly20170414635af7dc5f 2017-04-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly201704133900cf66a5 2017-04-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly201704122ced07ccaf 2017-04-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly20170411b8f416023d 2017-04-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly20170410b470a85f07 2017-04-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly201704094dde87620a 2017-04-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly20170408afd5966fa9 2017-04-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly20170407c6e0ba31ec 2017-04-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly20170406a94a5da78c 2017-04-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly20170405491d59da84 2017-04-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly20170404394b6ac5cb 2017-04-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly2017040353828e8bff 2017-04-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly201704022d039ffa29 2017-04-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly201704010ea45707a4 2017-04-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly201703314d255b04bf 2017-03-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly201703304ddd23f0ec 2017-03-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly2017032961ebfa8d1f 2017-03-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly20170328fd18243a50 2017-03-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly2017032766e7dc5587 2017-03-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly20170326d13bd4acc0 2017-03-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly20170325ed12ea371c 2017-03-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - +v8.0.0-nightly201703249ff7ed23cd 2017-03-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.6.326.57 1.11.0 1.2.11 1.0.2k 53 - +v8.0.0-nightly20170323ee19e2923a 2017-03-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.6.326.57 1.11.0 1.2.11 1.0.2k 53 - +v8.0.0-nightly2017032281ab78e62e 2017-03-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.57 1.11.0 1.2.11 1.0.2k 53 - +v8.0.0-nightly20170321ab2d49bcac 2017-03-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.57 1.11.0 1.2.11 1.0.2k 53 - +v8.0.0-nightly20170320ef4768754c 2017-03-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.57 1.11.0 1.2.11 1.0.2k 53 - +v8.0.0-nightly201703185bda5faffd 2017-03-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - +v8.0.0-nightly20170317704263139b 2017-03-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - +v8.0.0-nightly201703165bfd13b81e 2017-03-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - +v8.0.0-nightly20170315b5eccc4c7e 2017-03-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - +v8.0.0-nightly20170314879d6663ea 2017-03-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - +v8.0.0-nightly20170313b170fb7c55 2017-03-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - +v8.0.0-nightly20170312efec14a7d1 2017-03-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - +v8.0.0-nightly20170311c67207731f 2017-03-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - +v8.0.0-nightly20170310b806e18dd7 2017-03-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - +v8.0.0-nightly20170309e4fbd8e244 2017-03-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - +v8.0.0-nightly201703087e0410499d 2017-03-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - +v8.0.0-nightly20170307efaab8fccf 2017-03-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - +v8.0.0-nightly20170306fd17e8b8d2 2017-03-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - +v8.0.0-nightly2017030539f7e72440 2017-03-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - +v8.0.0-nightly20170304b535e25b27 2017-03-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - +v8.0.0-nightly201703034cb9f4fde4 2017-03-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - +v8.0.0-nightly20170302172be50fe1 2017-03-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - +v8.0.0-nightly2017030187a039d721 2017-03-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - +v8.0.0-nightly201702280a44b71c50 2017-02-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - +v8.0.0-nightly20170227893632ec07 2017-02-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - +v8.0.0-nightly20170226813b312b0e 2017-02-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - +v8.0.0-nightly20170225ee7b7f6935 2017-02-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - +v8.0.0-nightly201702246eb614adc8 2017-02-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - +v8.0.0-nightly201702238e8fbd80d0 2017-02-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - +v8.0.0-nightly20170222a1802e670d 2017-02-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - +v8.0.0-nightly201702211162e284ca 2017-02-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.11 1.0.2k 52 - +v8.0.0-nightly20170220dfa8abe1b5 2017-02-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.11 1.0.2k 52 - +v8.0.0-nightly20170219751404dc28 2017-02-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - +v8.0.0-nightly20170218ca37ec084a 2017-02-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - +v8.0.0-nightly20170217736814e064 2017-02-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - +v8.0.0-nightly20170216642eec162d 2017-02-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - +v8.0.0-nightly201702152ba4eeadbb 2017-02-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - +v8.0.0-nightly20170214ac602a251a 2017-02-14 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - +v8.0.0-nightly20170213f2023d7b6f 2017-02-13 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - +v8.0.0-nightly201702124cafa60c99 2017-02-12 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - +v8.0.0-nightly201702115cd9d76b02 2017-02-11 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - +v8.0.0-nightly20170210b471392f8c 2017-02-10 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - +v8.0.0-nightly20170209a4bb9fdb89 2017-02-09 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - +v8.0.0-nightly201702082db3b941a9 2017-02-08 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - +v8.0.0-nightly201702077ba847df1c 2017-02-07 aix-ppc64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - +v8.0.0-nightly201702063fffebbde3 2017-02-06 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - +v8.0.0-nightly201702059a0829d728 2017-02-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - +v8.0.0-nightly20170204e116cbe320 2017-02-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - +v8.0.0-nightly20170203907ce8dd6c 2017-02-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - +v8.0.0-nightly2017020258dc229d9a 2017-02-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - +v8.0.0-nightly201702011b30df1003 2017-02-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - +v8.0.0-nightly20170131aa8eb8747c 2017-01-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - +v8.0.0-nightly201701300d290a2ae0 2017-01-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.1 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - +v8.0.0-nightly201701291155ade002 2017-01-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.1 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - +v8.0.0-nightly2017012818d4ee97d8 2017-01-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.1 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - +v8.0.0-nightly20170127b19334e566 2017-01-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.1 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - +v8.0.0-nightly20170126a67a04d765 2017-01-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.1 5.4.500.46 1.10.2 1.2.8 1.0.2k 51 - +v8.0.0-nightly20170125124d155f5e 2017-01-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - +v8.0.0-nightly201701247eef09ddcf 2017-01-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - +v8.0.0-nightly201701234757ddcce1 2017-01-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - +v8.0.0-nightly20170122ff75e21662 2017-01-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - +v8.0.0-nightly2017012193c4820458 2017-01-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - +v8.0.0-nightly20170120ba776b3a56 2017-01-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - +v8.0.0-nightly2017011949902124a9 2017-01-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - +v8.0.0-nightly20170118622b43997f 2017-01-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - +v8.0.0-nightly20170117d86ff5fc29 2017-01-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - +v8.0.0-nightly20170116a0e13dae1f 2017-01-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - +v8.0.0-nightly2017011534bf31ea8a 2017-01-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - +v8.0.0-nightly20170114f18b4632b9 2017-01-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - +v8.0.0-nightly201701134424e847d5 2017-01-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - +v8.0.0-nightly201701127f20c8a3d4 2017-01-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - +v8.0.0-nightly20170111fa3836152d 2017-01-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly20170110762a303e1f 2017-01-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly2017010941567ee9d8 2017-01-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly201701078a12368a20 2017-01-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly20170106fc647fddff 2017-01-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly201701056830849b2e 2017-01-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly2017010426bf9545e0 2017-01-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly201701037c77932fa2 2017-01-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly20170102b978aff719 2017-01-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly20170101b465cd07fe 2017-01-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161231a6ca94a5f5 2016-12-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly201612302213f3640a 2016-12-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly201612298dcebe8c42 2016-12-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly201612281b2d3f7ae7 2016-12-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161226499efbd085 2016-12-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly2016122545c9ca7fd4 2016-12-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161224ff88a5a25b 2016-12-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly201612230bdd39f729 2016-12-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly2016122244b38bb001 2016-12-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly201612219e4a899d31 2016-12-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161220613798335c 2016-12-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly201612195d14602181 2016-12-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly201612180d3ac89ff7 2016-12-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly201612174a257568e2 2016-12-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161216885c80f3de 2016-12-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly201612154a5c719be5 2016-12-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly201612143c29b2f851 2016-12-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161213832960592f 2016-12-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161212a8e87084cf 2016-12-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161211aa77b767b6 2016-12-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly201612107c2dbd13b5 2016-12-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161209d8c7534fcd 2016-12-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161208df3978421b 2016-12-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161207b0c10a24a6 2016-12-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly201612068951d3e0e5 2016-12-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161205196d27dd8c 2016-12-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly201612045be66db688 2016-12-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161203e21e12944c 2016-12-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161202479822c45e 2016-12-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161201cf719152b0 2016-12-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161130330e63c581 2016-11-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly201611295887c2ba38 2016-11-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly201611284fffe32a4b 2016-11-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly201611276b2aa1a2b9 2016-11-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161126951ba0d0a9 2016-11-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161125630c63ee68 2016-11-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly201611245cf0157b82 2016-11-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161123fd644f51f8 2016-11-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly201611223f1e38c847 2016-11-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly201611213cbb553df8 2016-11-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161120440057eae0 2016-11-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly201611198f05611a5c 2016-11-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly2016111806198964e2 2016-11-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly201611171fca11e114 2016-11-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161116367065be4b 2016-11-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.0 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161115a804627837 2016-11-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.0 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161114fc44bd4d0b 2016-11-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.0 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161113195989d3a3 2016-11-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.0 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161112f673c97548 2016-11-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.0 1.2.8 1.0.2j 51 - +v8.0.0-nightly201611114affb8929f 2016-11-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.0 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161110ca57912e05 2016-11-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161109d548d28f51 2016-11-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - +v8.0.0-nightly201611080b5191f15d 2016-11-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - +v8.0.0-nightly201611071aa595e5bd 2016-11-07 aix-ppc64,headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161106f8f67d253e 2016-11-06 aix-ppc64,headers,linux-x64,linux-x86,osx-x64-tar,src,sunos-x86 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161105a99b441c2c 2016-11-05 aix-ppc64,headers,linux-x64,linux-x86,osx-x64-tar,src,sunos-x86 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - +v8.0.0-nightly201611041a55e9a567 2016-11-04 aix-ppc64,headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - +v8.0.0-nightly201611033c1e5b366f 2016-11-03 aix-ppc64,headers,linux-x64,linux-x86,osx-x64-tar,src,sunos-x86 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - +v8.0.0-nightly2016110254d34314e3 2016-11-02 aix-ppc64,headers,linux-x64,linux-x86,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - +v8.0.0-nightly2016110121427fded9 2016-11-01 aix-ppc64,headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - +v8.0.0-nightly201610310e92bb99c6 2016-10-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161030b9f6a2dc05 2016-10-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161029ec7c27f4cb 2016-10-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161028758ca8d179 2016-10-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - +v8.0.0-nightly201610274d896c44f3 2016-10-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - +v8.0.0-nightly201610268f00455c51 2016-10-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161025e8eaaa7724 2016-10-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.9.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly201610245532a7adec 2016-10-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly201610236e5389eb5a 2016-10-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly201610225d818ccc22 2016-10-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly201610206845d6e318 2016-10-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly20161019ef030da818 2016-10-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - +v8.0.0-nightly201610180e6750d1cd 2016-10-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - +v7.10.1-nightly2017050369a8053e8a 2017-05-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.5.372.43 1.11.0 1.2.11 1.0.2k 51 - +v7.9.1-nightly20170411675ece47b3 2017-04-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.5.372.43 1.11.0 1.2.11 1.0.2k 51 - +v7.8.1-nightly20170329517f13b607 2017-03-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.5.372.43 1.11.0 1.2.11 1.0.2k 51 - +v7.7.5-nightly20170322bc664cb034 2017-03-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.42 1.11.0 1.2.11 1.0.2k 51 - +v7.7.4-nightly20170315753adee6aa 2017-03-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - +v7.7.3-nightly20170309c62798034a 2017-03-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - +v7.7.2-nightly20170302b20bc130ef 2017-03-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - +v7.7.1-nightly201703019c75f4c78a 2017-03-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - +v7.6.1-nightly201702227a6367017c 2017-02-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.11 1.0.2k 51 - +v7.5.1-nightly2017020113a024d531 2017-02-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.4.500.48 1.10.2 1.2.8 1.0.2k 51 - +v7.4.1-nightly20170104e07b6516d7 2017-01-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - +v7.3.1-nightly20161221586967a078 2016-12-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - +v7.2.2-nightly20161207c2cc11b3c6 2016-12-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - +v7.2.1-nightly201611248cabe28efb 2016-11-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - +v7.2.0-nightly20161123c1aa949064 2016-11-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - +v7.1.1-nightly201611093daf11635d 2016-11-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - +v7.0.1-nightly2016102527e1749dcb 2016-10-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.9.1 1.2.8 1.0.2j 51 - +v7.0.0-nightly201610246bbdd668bd 2016-10-24 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-tar,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.9.1 1.2.8 1.0.2j 51 - +v7.0.0-nightly2016102260042ca70e 2016-10-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - +v7.0.0-nightly20161020d62e7bd1f9 2016-10-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - +v7.0.0-nightly201610193518372835 2016-10-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - +v7.0.0-nightly20161017e6d1d54230 2016-10-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - +v7.0.0-nightly201610171fcd088fd9 2016-10-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - +v7.0.0-nightly20161016f7842ad169 2016-10-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - +v7.0.0-nightly20161015113c697ded 2016-10-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - +v7.0.0-nightly20161014835fbeee00 2016-10-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - +v7.0.0-nightly201610146eece7773e 2016-10-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - +v7.0.0-nightly20161013e4ee09a5b3 2016-10-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - +v7.0.0-nightly20161013804d57db67 2016-10-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - +v7.0.0-nightly201610113d54ea4304 2016-10-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - +v7.0.0-nightly20161010c9dade48b4 2016-10-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - +v7.0.0-nightly201610097542bdddda 2016-10-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - +v7.0.0-nightly20161008b35f22b135 2016-10-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly201610087084b9c5a1 2016-10-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - +v7.0.0-nightly201610074d6297fef0 2016-10-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - +v7.0.0-nightly20161006bd0bedb86a 2016-10-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - +v7.0.0-nightly201610057b5ffa46fe 2016-10-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - +v7.0.0-nightly20161004e10516d5a4 2016-10-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - +v7.0.0-nightly20161003b3d283acd4 2016-10-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - +v7.0.0-nightly201610023c5cf12709 2016-10-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.27 1.9.1 1.2.8 1.0.2j 51 - +v7.0.0-nightly20161001c8c2544cd9 2016-10-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.27 1.9.1 1.2.8 1.0.2j 51 - +v7.0.0-nightly20160930f5d997c476 2016-09-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.27 1.9.1 1.2.8 1.0.2j 51 - +v7.0.0-nightly2016092933dd4ec645 2016-09-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.27 1.9.1 1.2.8 1.0.2j 51 - +v7.0.0-nightly201609288cd2306cc3 2016-09-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.27 1.9.1 1.2.8 1.0.2j 48 - +v7.0.0-nightly201609276b443d1731 2016-09-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.27 1.9.1 1.2.8 1.0.2j 48 - +v7.0.0-nightly2016092652b6cfb6eb 2016-09-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.4.500.27 1.9.1 1.2.8 1.0.2j 48 - +v7.0.0-nightly2016092550be885285 2016-09-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.4.500.27 1.9.1 1.2.8 1.0.2i 48 - +v7.0.0-nightly201609247f71419ee4 2016-09-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.4.500.27 1.9.1 1.2.8 1.0.2i 48 - +v7.0.0-nightly201609235cb5b1f8c4 2016-09-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.4.500.27 1.9.1 1.2.8 1.0.2i 48 - +v7.0.0-nightly201609224d958725b4 2016-09-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.4.500.27 1.9.1 1.2.8 1.0.2i 48 - +v7.0.0-nightly201609217b7d50a29e 2016-09-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly201609202b5acda7a2 2016-09-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160919366495d4e2 2016-09-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly2016091830701a72c0 2016-09-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160917ffe8dffbc4 2016-09-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160916d3834a1fa3 2016-09-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160915ea2a309e3b 2016-09-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly201609145ce117bab0 2016-09-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly2016091353178f908f 2016-09-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160912f1629e78c7 2016-09-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly2016091183a354c33b 2016-09-11 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160910e57ff455e2 2016-09-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160909cc00be6ace 2016-09-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160908c21458a15d 2016-09-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160907c436437d3e 2016-09-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160906a945244830 2016-09-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160905a290ddfdc9 2016-09-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160904dfe1c7e9b8 2016-09-04 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly201609037e8d994e33 2016-09-03 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly201609025930d59b0f 2016-09-02 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly201609013504a98b72 2016-09-01 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160831266270e618 2016-08-31 win-x64-7z,win-x64-exe,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160830eca74a9d91 2016-08-30 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly201608291657f12f75 2016-08-29 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160827c8619ea3c3 2016-08-27 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160826a6d53c6779 2016-08-26 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly2016082518017d675b 2016-08-25 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly2016082451f96dfcfc 2016-08-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly2016082309f861f231 2016-08-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly201608223242b27b54 2016-08-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly201608219a91ffbbde 2016-08-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160820f6a74345d1 2016-08-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly2016081976007079ec 2016-08-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160818dbbbf217de 2016-08-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly201608173177b99737 2016-08-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160816647826017e 2016-08-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.80 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly2016081524e4488891 2016-08-15 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.80 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly201608143fe55f6f91 2016-08-14 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.80 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160813fce4b981ea 2016-08-13 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.80 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160812ca6363b8ae 2016-08-12 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.80 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160811e40234d6e2 2016-08-11 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.80 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly201608104878e1c0e5 2016-08-10 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.79 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160809ae25ed3ccd 2016-08-09 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.79 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly201608085111e789e6 2016-08-08 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.79 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly201608074c86fa30d8 2016-08-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.79 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160806b779eb423d 2016-08-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.79 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160805769f63ccd8 2016-08-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.79 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly201608041a9e247c79 2016-08-04 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.79 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly2016080329e49fc286 2016-08-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.78 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160802b4258bba11 2016-08-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly2016080175c6d9dd95 2016-08-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160731df4ef63aa5 2016-07-31 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160729f789eb3106 2016-07-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly2016072899e2d43801 2016-07-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160727868638b903 2016-07-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160726e22ffefff2 2016-07-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160725809aabcc13 2016-07-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160722b3127df59a 2016-07-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly201607219359de9dd2 2016-07-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160720814b8c3cf7 2016-07-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160719f56cd32c70 2016-07-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly2016071817883dfaaf 2016-07-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.76 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160717c897d0ba71 2016-07-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.75 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly201607156510eb5ddc 2016-07-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.75 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly201607146e15ae98fe 2016-07-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.75 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly2016071311b23068cd 2016-07-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.75 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160712ef1f7661c7 2016-07-12 headers,linux-arm64,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.75 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160712863952ebad 2016-07-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.75 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160621ecc48a154d 2016-06-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly201606205bddc9a741 2016-06-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160619a92089b6bd 2016-06-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160618a06ccdbdb5 2016-06-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160617de9a84186e 2016-06-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160616336b027411 2016-06-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160615357f904169 2016-06-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160614f914f37742 2016-06-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160613e2e615e87e 2016-06-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160612d06820c624 2016-06-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly2016061147b9b14574 2016-06-11 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160610624734e640 2016-06-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160609a766ebf594 2016-06-09 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160608779091ffdb 2016-06-08 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160607671cffa313 2016-06-07 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160606a32f7eb4be 2016-06-06 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160605f44b18f010 2016-06-05 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160604de0aa23ad7 2016-06-04 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160603d0151695a7 2016-06-03 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160602aac79dfd78 2016-06-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160601f81f0c351a 2016-06-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160531ef9a8fa35b 2016-05-31 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160530894203dae3 2016-05-30 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160529a0c70808b3 2016-05-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160528ead6c2d5bb 2016-05-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly201605278af25a39d3 2016-05-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160526841c7025a9 2016-05-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly2016052518fb4f9a91 2016-05-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160524ed11ac6080 2016-05-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160523c111cf207a 2016-05-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly201605225b72f891a8 2016-05-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly201605207c3e920ba9 2016-05-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160519395cc885f4 2016-05-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly2016051803505052a1 2016-05-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160517b53473f0e7 2016-05-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - +v7.0.0-nightly2016051678520fa472 2016-05-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.0 1.2.8 1.0.2h 48 - +v7.0.0-nightly2016051532b46d91a7 2016-05-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.0 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160514f4f6c6e815 2016-05-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.0 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160513084b2ec198 2016-05-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.0 1.2.8 1.0.2h 48 - +v7.0.0-nightly201605122d524bcd1e 2016-05-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.0 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160510572e28efa2 2016-05-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - +v7.0.0-nightly201605097f1111b1bb 2016-05-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - +v7.0.0-nightly2016050883aa1f7f3f 2016-05-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - +v7.0.0-nightly201605073f69ea53fd 2016-05-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160506b8573d0555 2016-05-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160505a4f94b4271 2016-05-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160504bc8b525440 2016-05-04 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - +v7.0.0-nightly20160503a2e57192eb 2016-05-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - +v7.0.0-nightly201605028ebec086a5 2016-05-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - +v7.0.0-nightly201605019f8d0ea6db 2016-05-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - +v7.0.0-nightly20160430bcce05dba4 2016-04-30 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - +v7.0.0-nightly20160429706778a902 2016-04-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - +v7.0.0-nightly20160428ded3aea449 2016-04-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - +v7.0.0-nightly201604273cdb5063f2 2016-04-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - +v7.0.0-nightly20160426cc5d9767af 2016-04-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - +v6.11.1-nightly20170607f7ca483d68 2017-06-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.102 1.11.0 1.2.11 1.0.2k 48 Boron +v6.10.4-nightly20170502312091a196 2017-05-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.101 1.9.1 1.2.11 1.0.2k 48 Boron +v6.10.3-nightly2017040479546c0b5a 2017-04-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.98 1.9.1 1.2.11 1.0.2k 48 Boron +v6.10.2-nightly20170322426968ddd8 2017-03-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.95 1.9.1 1.2.8 1.0.2k 48 Boron +v6.10.1-nightly20170222ee10f21f3b 2017-02-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.93 1.9.1 1.2.8 1.0.2k 48 Boron +v6.9.6-nightly201702013f61aae59d 2017-02-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2k 48 Boron +v6.9.5-nightly2017013187ac44974a 2017-01-31 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2k 48 Boron +v6.9.5-nightly201701061a47e5f409 2017-01-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2j 48 Boron +v6.9.4-nightly201701049844692719 2017-01-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2j 48 Boron +v6.9.3-nightly20161206c350268432 2016-12-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.1.281.88 1.9.1 1.2.8 1.0.2j 48 Boron +v6.9.2-nightly201610208bb346d61a 2016-10-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 Boron +v6.9.1-nightly201610183843b96e46 2016-10-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 Boron +v6.8.2-nightly201610154613c22b00 2016-10-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 - +v6.8.1-nightly201610132540417ef5 2016-10-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 - +v6.7.1-nightly20161007d7454e7547 2016-10-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - +v6.7.1-nightly20161006d7454e7547 2016-10-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - +v6.7.1-nightly20161005d7454e7547 2016-10-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - +v6.7.1-nightly20161004d7454e7547 2016-10-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - +v6.7.1-nightly20161003d7454e7547 2016-10-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - +v6.7.1-nightly20161002d7454e7547 2016-10-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - +v6.7.1-nightly20161001d7454e7547 2016-10-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - +v6.7.1-nightly20160930d7454e7547 2016-09-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - +v6.7.1-nightly20160929d7454e7547 2016-09-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - +v6.7.1-nightly20160928d7454e7547 2016-09-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - +v6.6.1-nightly20160927f8ad0dc0e2 2016-09-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - +v6.6.1-nightly20160926f8ad0dc0e2 2016-09-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - +v6.6.1-nightly20160925a14d832884 2016-09-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2i 48 - +v6.6.1-nightly20160924a14d832884 2016-09-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2i 48 - +v6.6.1-nightly20160923a14d832884 2016-09-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2i 48 - +v6.6.1-nightly20160922a14d832884 2016-09-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2i 48 - +v6.6.1-nightly201609217d9afc7b52 2016-09-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - +v6.6.1-nightly201609207d9afc7b52 2016-09-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - +v6.6.1-nightly201609197d9afc7b52 2016-09-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - +v6.6.1-nightly201609187d9afc7b52 2016-09-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - +v6.6.1-nightly201609177d9afc7b52 2016-09-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - +v6.6.1-nightly201609167d9afc7b52 2016-09-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - +v6.6.1-nightly201609157d9afc7b52 2016-09-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - +v6.5.1-nightly20160914180867d6a6 2016-09-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v6.5.1-nightly20160913180867d6a6 2016-09-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v6.5.1-nightly20160912180867d6a6 2016-09-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v6.5.1-nightly20160911180867d6a6 2016-09-11 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v6.5.1-nightly20160910180867d6a6 2016-09-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v6.5.1-nightly20160909180867d6a6 2016-09-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v6.5.1-nightly20160908180867d6a6 2016-09-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v6.5.1-nightly20160907180867d6a6 2016-09-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v6.5.1-nightly20160906180867d6a6 2016-09-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v6.5.1-nightly20160905180867d6a6 2016-09-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v6.5.1-nightly20160904180867d6a6 2016-09-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v6.5.1-nightly20160903180867d6a6 2016-09-04 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v6.5.1-nightly20160902180867d6a6 2016-09-02 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v6.5.1-nightly20160901180867d6a6 2016-09-01 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v6.5.1-nightly20160831180867d6a6 2016-08-31 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v6.5.1-nightly20160830862610f9e8 2016-08-30 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v6.5.1-nightly20160829862610f9e8 2016-08-30 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v6.5.1-nightly20160828862610f9e8 2016-08-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v6.5.1-nightly20160827862610f9e8 2016-08-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v6.5.1-nightly20160826862610f9e8 2016-08-26 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v6.4.1-nightly20160825723fa9637c 2016-08-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - +v6.4.1-nightly2016082492ecbc4edc 2016-08-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.61 1.9.1 1.2.8 1.0.2h 48 - +v6.4.1-nightly20160823a146e683dd 2016-08-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.61 1.9.1 1.2.8 1.0.2h 48 - +v6.4.1-nightly20160822a146e683dd 2016-08-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.61 1.9.1 1.2.8 1.0.2h 48 - +v6.4.1-nightly20160821ffb2db8285 2016-08-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.61 1.9.1 1.2.8 1.0.2h 48 - +v6.4.1-nightly20160820ffb2db8285 2016-08-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.61 1.9.1 1.2.8 1.0.2h 48 - +v6.4.1-nightly2016081908e2b0408a 2016-08-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.61 1.9.1 1.2.8 1.0.2h 48 - +v6.4.1-nightly2016081808e2b0408a 2016-08-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.61 1.9.1 1.2.8 1.0.2h 48 - +v6.4.1-nightly2016081708e2b0408a 2016-08-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.61 1.9.1 1.2.8 1.0.2h 48 - +v6.4.1-nightly201608165cff1476b2 2016-08-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - +v6.3.2-nightly20160815da9bd2fc48 2016-08-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - +v6.3.2-nightly20160814da9bd2fc48 2016-08-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - +v6.3.2-nightly20160813da9bd2fc48 2016-08-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - +v6.3.2-nightly20160812da9bd2fc48 2016-08-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - +v6.3.2-nightly20160811da9bd2fc48 2016-08-11 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - +v6.3.2-nightly20160810da9bd2fc48 2016-08-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - +v6.3.2-nightly2016080975b37a6bac 2016-08-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - +v6.3.2-nightly2016080875b37a6bac 2016-08-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - +v6.3.2-nightly2016080775b37a6bac 2016-08-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - +v6.3.2-nightly2016080675b37a6bac 2016-08-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - +v6.3.2-nightly2016080575b37a6bac 2016-08-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - +v6.3.2-nightly20160804af63871593 2016-08-04 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.59 1.9.1 1.2.8 1.0.2h 48 - +v6.3.2-nightly20160803af63871593 2016-08-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.59 1.9.1 1.2.8 1.0.2h 48 - +v6.3.2-nightly20160802980f4da8c4 2016-08-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.58 1.9.1 1.2.8 1.0.2h 48 - +v6.3.2-nightly20160731e82e80417b 2016-07-31 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.58 1.9.1 1.2.8 1.0.2h 48 - +v6.3.2-nightly20160730e82e80417b 2016-07-30 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 3.10.3 5.0.71.58 1.9.1 1.2.8 1.0.2h 48 - +v6.3.2-nightly20160729e82e80417b 2016-07-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.58 1.9.1 1.2.8 1.0.2h 48 - +v6.3.2-nightly20160728342a85b1a7 2016-07-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - +v6.3.2-nightly20160727342a85b1a7 2016-07-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - +v6.3.2-nightly20160726342a85b1a7 2016-07-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - +v6.3.2-nightly20160725342a85b1a7 2016-07-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - +v6.3.2-nightly20160724342a85b1a7 2016-07-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - +v6.3.2-nightly20160723342a85b1a7 2016-07-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - +v6.3.2-nightly20160722342a85b1a7 2016-07-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - +v6.3.2-nightly20160721342a85b1a7 2016-07-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - +v6.3.1-nightly201607209e9d499b8b 2016-07-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.55 1.9.1 1.2.8 1.0.2h 48 - +v6.3.1-nightly20160719f3182f6971 2016-07-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.0.71.55 1.9.1 1.2.8 1.0.2h 48 - +v6.3.1-nightly20160718c10ade917a 2016-07-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.0.71.55 1.9.1 1.2.8 1.0.2h 48 - +v6.3.1-nightly20160717e1e477e2a0 2016-07-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.0.71.54 1.9.1 1.2.8 1.0.2h 48 - +v6.3.1-nightly20160716e1e477e2a0 2016-07-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.0.71.54 1.9.1 1.2.8 1.0.2h 48 - +v6.3.1-nightly20160715e1e477e2a0 2016-07-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.0.71.54 1.9.1 1.2.8 1.0.2h 48 - +v6.3.1-nightly201607144480b14fda 2016-07-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.54 1.9.1 1.2.8 1.0.2h 48 - +v6.3.1-nightly201607134480b14fda 2016-07-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.54 1.9.1 1.2.8 1.0.2h 48 - +v6.3.1-nightly20160712b4547340ee 2016-07-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.54 1.9.1 1.2.8 1.0.2h 48 - +v6.0.0-nightly20160425eb4201f07a 2016-04-25 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 47 - +v6.0.0-nightly20160424f1294f5bfd 2016-04-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.34 1.9.0 1.2.8 1.0.2g 47 - +v6.0.0-nightly20160423983a809456 2016-04-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.34 1.9.0 1.2.8 1.0.2g 47 - +v6.0.0-nightly201604227940ecfa00 2016-04-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.34 1.9.0 1.2.8 1.0.2g 47 - +v6.0.0-nightly201604211fa8fce210 2016-04-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.34 1.9.0 1.2.8 1.0.2g 47 - +v6.0.0-nightly201604207dc1a87a7b 2016-04-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.33 1.9.0 1.2.8 1.0.2g 47 - +v6.0.0-nightly20160419697790c117 2016-04-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.32 1.9.0 1.2.8 1.0.2g 47 - +v6.0.0-nightly2016041858561cf6a8 2016-04-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.32 1.9.0 1.2.8 1.0.2g 47 - +v6.0.0-nightly20160417978166796e 2016-04-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.32 1.9.0 1.2.8 1.0.2g 47 - +v6.0.0-nightly20160416f49a1d0501 2016-04-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.32 1.9.0 1.2.8 1.0.2g 47 - +v6.0.0-nightly2016041581fd4581b9 2016-04-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.32 1.9.0 1.2.8 1.0.2g 47 - +v6.0.0-nightly201604154a74fc9776 2016-04-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.32 1.9.0 1.2.8 1.0.2g 47 - +v6.0.0-nightly20160307449684752c 2016-03-07 linux-arm64,linux-ppc64le,linux-x64,linux-x86,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.9.385.27 1.8.0 1.2.8 1.0.2g 47 - +v6.0.0-nightly20160307061ebb39c9 2016-03-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.9.385.27 1.8.0 1.2.8 1.0.2g 47 - +v6.0.0-nightly201603058af4bb86c0 2016-03-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.9.385.27 1.8.0 1.2.8 1.0.2g 47 - +v6.0.0-nightly2016030417924703d6 2016-03-04 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.9.385.27 1.8.0 1.2.8 1.0.2g 47 - +v6.0.0-nightly20160303831b30eeb7 2016-03-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2g 47 - +v6.0.0-nightly201603024c724dd439 2016-03-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2g 47 - +v6.0.0-nightly20160301d9f7a597e4 2016-03-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2g 47 - +v6.0.0-nightly20160229f296a7f16f 2016-02-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2f 47 - +v6.0.0-nightly20160228f0c06147b3 2016-02-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2f 47 - +v6.0.0-nightly201602277fc6645982 2016-02-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2f 47 - +v6.0.0-nightly201602263e3d941495 2016-02-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2f 47 - +v6.0.0-nightly201602256e6ce09861 2016-02-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2f 47 - +v6.0.0-nightly201602247b0a83d2b0 2016-02-24 headers,linux-arm64,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2f 47 - +v6.0.0-nightly201602102848f84332 2016-02-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2f 47 - +v6.0.0-nightly201602091693349616 2016-02-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2f 47 - +v6.0.0-nightly20160127fcae05e4b5 2016-01-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.8.271.17 1.8.0 1.2.8 1.0.2e 47 - +v6.0.0-nightly201601266a73dbad51 2016-01-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.8.271.17 1.8.0 1.2.8 1.0.2e 47 - +v6.0.0-nightly201601250f8e63caff 2016-01-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.8.271.17 1.8.0 1.2.8 1.0.2e 47 - +v6.0.0-nightly2016012496934cbb30 2016-01-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.8.271.17 1.8.0 1.2.8 1.0.2e 47 - +v6.0.0-nightly2016012355607a0f32 2016-01-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.8.271.17 1.8.0 1.2.8 1.0.2e 47 - +v6.0.0-nightly20160122518548f1d8 2016-01-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.8.271.17 1.8.0 1.2.8 1.0.2e 47 - +v6.0.0-nightly201601215ef9989bd6 2016-01-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.7.80.32 1.8.0 1.2.8 1.0.2e 47 - +v6.0.0-nightly201601201e5a02628c 2016-01-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.7.80.32 1.8.0 1.2.8 1.0.2e 47 - +v6.0.0-nightly20160119df4d209ad5 2016-01-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.7.80.32 1.8.0 1.2.8 1.0.2e 47 - +v6.0.0-nightly20160118eee9dc7e9d 2016-01-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.7.80.32 1.8.0 1.2.8 1.0.2e 47 - +v6.0.0-nightly2016011783d2b7707e 2016-01-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.7.80.32 1.8.0 1.2.8 1.0.2e 47 - +v6.0.0-nightly20160116da550aa063 2016-01-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.7.80.32 1.8.0 1.2.8 1.0.2e 47 - +v6.0.0-nightly2016011666b9c0d8bd 2016-01-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.7.80.32 1.8.0 1.2.8 1.0.2e 47 - +v5.11.2-nightly2016062103d36aea4f 2016-06-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016062003d36aea4f 2016-06-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016061903d36aea4f 2016-06-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016061827785aeb37 2016-06-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016061727785aeb37 2016-06-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016061621552bd0c5 2016-06-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016061521552bd0c5 2016-06-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016061421552bd0c5 2016-06-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016061321552bd0c5 2016-06-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016061221552bd0c5 2016-06-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016061121552bd0c5 2016-06-11 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016061021552bd0c5 2016-06-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016060921552bd0c5 2016-06-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016060821552bd0c5 2016-06-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016060721552bd0c5 2016-06-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016060621552bd0c5 2016-06-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016060521552bd0c5 2016-06-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016060421552bd0c5 2016-06-04 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016060321552bd0c5 2016-06-03 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016060221552bd0c5 2016-06-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016060121552bd0c5 2016-06-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016053121552bd0c5 2016-05-31 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016053021552bd0c5 2016-05-30 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016052921552bd0c5 2016-05-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016052821552bd0c5 2016-05-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016052721552bd0c5 2016-05-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016052621552bd0c5 2016-05-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016052521552bd0c5 2016-05-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016052421552bd0c5 2016-05-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016052321552bd0c5 2016-05-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016052221552bd0c5 2016-05-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016052121552bd0c5 2016-05-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016052021552bd0c5 2016-05-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016051921552bd0c5 2016-05-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016051821552bd0c5 2016-05-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016051721552bd0c5 2016-05-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016051621552bd0c5 2016-05-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016051521552bd0c5 2016-05-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016051421552bd0c5 2016-05-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016051321552bd0c5 2016-05-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016051221552bd0c5 2016-05-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016051021552bd0c5 2016-05-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016050921552bd0c5 2016-05-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016050821552bd0c5 2016-05-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016050721552bd0c5 2016-05-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016050621552bd0c5 2016-05-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.2-nightly2016050521552bd0c5 2016-05-05 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.1-nightly20160504bec5d50f1e 2016-05-04 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - +v5.11.1-nightly2016050399920480ae 2016-05-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.11.1-nightly2016050299920480ae 2016-05-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.11.1-nightly2016050199920480ae 2016-05-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.11.1-nightly2016043099920480ae 2016-04-30 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.11.1-nightly2016042999920480ae 2016-04-29 linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.11.1-nightly2016042899920480ae 2016-04-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.11.1-nightly2016042799920480ae 2016-04-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.11.1-nightly2016042699920480ae 2016-04-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.11.1-nightly20160425ca215b98e4 2016-04-25 headers,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.11.1-nightly20160424ca215b98e4 2016-04-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.11.1-nightly20160423ca215b98e4 2016-04-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.11.1-nightly20160422ca215b98e4 2016-04-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.11.1-nightly20160421ca215b98e4 2016-04-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.10.2-nightly201604206d9c0c9aa7 2016-04-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.10.2-nightly201604196d9c0c9aa7 2016-04-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.10.2-nightly201604186d9c0c9aa7 2016-04-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.10.2-nightly201604176d9c0c9aa7 2016-04-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.10.2-nightly201604166d9c0c9aa7 2016-04-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.10.2-nightly201604156d9c0c9aa7 2016-04-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.7.2-nightly2016030801c331ea37 2016-03-08 linux-armv7l 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.7.2-nightly2016030701c331ea37 2016-03-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.7.2-nightly2016030601c331ea37 2016-03-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.7.2-nightly2016030501c331ea37 2016-03-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.7.2-nightly2016030401c331ea37 2016-03-04 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.7.2-nightly2016030301c331ea37 2016-03-03 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - +v5.7.1-nightly20160302c83725c604 2016-03-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - +v5.7.1-nightly20160301c83725c604 2016-03-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - +v5.7.1-nightly20160229c83725c604 2016-02-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - +v5.7.1-nightly20160228f349a9a2cf 2016-02-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - +v5.7.1-nightly201602271ecbdec2cf 2016-02-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - +v5.7.1-nightly201602261ecbdec2cf 2016-02-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - +v5.7.1-nightly201602251ecbdec2cf 2016-02-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - +v5.6.1-nightly201602106d8eba0e5e 2016-02-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - +v5.5.1-nightly20160127a8c2050c2d 2016-01-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - +v5.5.1-nightly20160126c8b6de244e 2016-01-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - +v5.5.1-nightly201601252d46ea0d93 2016-01-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - +v5.5.1-nightly201601242d46ea0d93 2016-01-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - +v5.5.1-nightly201601232d46ea0d93 2016-01-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - +v5.5.1-nightly201601222d46ea0d93 2016-01-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - +v5.4.2-nightly20160121e855b596f4 2016-01-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - +v5.4.2-nightly20160120e855b596f4 2016-01-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - +v5.4.2-nightly20160119e855b596f4 2016-01-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - +v5.4.2-nightly20160118e855b596f4 2016-01-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - +v5.4.2-nightly20160117e855b596f4 2016-01-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - +v5.4.2-nightly20160114e855b596f4 2016-01-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - +v5.4.2-nightly20160113e7d1c69707 2016-01-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - +v5.4.1-nightly20160107138e1e501e 2016-01-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - +v5.3.1-nightly20151224b4c51c5b76 2015-12-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - +v5.3.1-nightly2015121717fc5b4e03 2015-12-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - +v5.2.1-nightly20151210cb938aaa33 2015-12-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 - +v5.1.2-nightly201512091c1c1a0f2b 2015-12-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 - +v5.1.2-nightly201512079d16729b20 2015-12-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 - +v5.0.1-nightly2015111484bb74547d 2015-11-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2d 47 - +v5.0.1-nightly2015111384bb74547d 2015-11-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2d 47 - +v5.0.1-nightly2015111347f3735e88 2015-11-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2d 47 - +v5.0.1-nightly2015111247f3735e88 2015-11-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2d 47 - +v5.0.1-nightly2015111181997840f2 2015-11-11 win-x86-exe,win-x86-msi 3.3.12 4.6.85.28 1.7.5 1.2.8 1.0.2d 47 - +v5.0.1-nightly201510294e54dbec51 2015-10-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.6 4.6.85.28 1.7.5 1.2.8 1.0.2d 47 - +v5.0.0-nightly201510266a04cc0a43 2015-10-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi 3.3.6 4.6.85.28 1.7.5 1.2.8 1.0.2d 47 - +v5.0.0-nightly201510226e78382605 2015-10-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.7 4.6.85.25 1.7.5 1.2.8 1.0.2d 47 - +v5.0.0-nightly20151021bf7c3dabb4 2015-10-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.7 4.6.85.25 1.7.5 1.2.8 1.0.2d 47 - +v5.0.0-nightly201510192296a4fc0f 2015-10-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi 2.14.7 4.6.85.25 1.7.5 1.2.8 1.0.2d 46 - +v5.0.0-nightly20151017676e61872f 2015-10-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x86-exe,win-x86-msi 2.14.7 4.6.85.25 1.7.5 1.2.8 1.0.2d 46 - +v5.0.0-nightly20151016676e61872f 2015-10-16 headers,linux-arm64,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x86-exe,win-x86-msi 2.14.7 4.6.85.25 1.7.5 1.2.8 1.0.2d 46 - +v4.0.0-nightly201509079cae65c510 2015-09-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.2 4.5.103.30 1.7.3 1.2.8 1.0.2d 45 - +v0.12.10-nightly20160128a305339f66 2016-01-28 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.14.9 3.28.71.19 1.6.1 1.2.8 1.0.1q 14 - +v0.12.10-nightly20160113801f6ad8a3 2016-01-13 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.14.9 3.28.71.19 1.6.1 1.2.8 1.0.1q 14 - +v0.10.42-nightly20160128b125512a5c 2016-01-28 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.29 3.14.5.9 0.10.36 1.2.8 1.0.1q 11 - +v0.10.42-nightly2016011328ab7b0e75 2016-01-13 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.29 3.14.5.9 0.10.36 1.2.8 1.0.1q 11 - +v0.10.41-nightly20151203036580393d 2015-12-03 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.29 3.14.5.9 0.10.36 1.2.8 1.0.1p 11 - diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote LTS nightly argon.txt b/test/fast/Unit tests/mocks/nvm_ls_remote LTS nightly argon.txt new file mode 100644 index 0000000..f0a2463 --- /dev/null +++ b/test/fast/Unit tests/mocks/nvm_ls_remote LTS nightly argon.txt @@ -0,0 +1 @@ +N/A diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote LTS nightly.txt b/test/fast/Unit tests/mocks/nvm_ls_remote LTS nightly.txt new file mode 100644 index 0000000..d445d1a --- /dev/null +++ b/test/fast/Unit tests/mocks/nvm_ls_remote LTS nightly.txt @@ -0,0 +1,12 @@ +v6.9.1-nightly201610183843b96e46 Boron +v6.9.2-nightly201610208bb346d61a Boron +v6.9.3-nightly20161206c350268432 Boron +v6.9.4-nightly201701049844692719 Boron +v6.9.5-nightly2017013187ac44974a Boron +v6.9.6-nightly201702013f61aae59d Boron +v6.10.1-nightly20170222ee10f21f3b Boron +v6.10.2-nightly20170322426968ddd8 Boron +v6.10.3-nightly2017040479546c0b5a Boron +v6.10.4-nightly20170502312091a196 Boron +v6.11.1-nightly20170607f7ca483d68 Boron +v8.9.1-nightly20171104a815e1b6a2 Carbon diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote nightly.txt b/test/fast/Unit tests/mocks/nvm_ls_remote nightly.txt new file mode 100644 index 0000000..313e976 --- /dev/null +++ b/test/fast/Unit tests/mocks/nvm_ls_remote nightly.txt @@ -0,0 +1,95 @@ +v0.10.41-nightly20151203036580393d +v0.10.42-nightly20160128b125512a5c +v0.12.10-nightly20160128a305339f66 +v4.0.0-nightly201509079cae65c510 +v5.0.0-nightly201510266a04cc0a43 +v5.0.1-nightly2015111484bb74547d +v5.1.2-nightly201512091c1c1a0f2b +v5.2.1-nightly20151210cb938aaa33 +v5.3.1-nightly20151224b4c51c5b76 +v5.4.1-nightly20160107138e1e501e +v5.4.2-nightly20160121e855b596f4 +v5.5.1-nightly20160127a8c2050c2d +v5.6.1-nightly201602106d8eba0e5e +v5.7.1-nightly20160302c83725c604 +v5.7.2-nightly2016030801c331ea37 +v5.10.2-nightly201604206d9c0c9aa7 +v5.11.1-nightly20160504bec5d50f1e +v5.11.2-nightly2016062103d36aea4f +v6.0.0-nightly20160425eb4201f07a +v6.3.1-nightly201607209e9d499b8b +v6.3.2-nightly20160815da9bd2fc48 +v6.4.1-nightly20160825723fa9637c +v6.5.1-nightly20160914180867d6a6 +v6.6.1-nightly20160927f8ad0dc0e2 +v6.7.1-nightly20161007d7454e7547 +v6.8.1-nightly201610132540417ef5 +v6.8.2-nightly201610154613c22b00 +v6.9.1-nightly201610183843b96e46 Boron +v6.9.2-nightly201610208bb346d61a Boron +v6.9.3-nightly20161206c350268432 Boron +v6.9.4-nightly201701049844692719 Boron +v6.9.5-nightly2017013187ac44974a Boron +v6.9.6-nightly201702013f61aae59d Boron +v6.10.1-nightly20170222ee10f21f3b Boron +v6.10.2-nightly20170322426968ddd8 Boron +v6.10.3-nightly2017040479546c0b5a Boron +v6.10.4-nightly20170502312091a196 Boron +v6.11.1-nightly20170607f7ca483d68 Boron +v7.0.0-nightly201610246bbdd668bd +v7.0.1-nightly2016102527e1749dcb +v7.1.1-nightly201611093daf11635d +v7.2.0-nightly20161123c1aa949064 +v7.2.1-nightly201611248cabe28efb +v7.2.2-nightly20161207c2cc11b3c6 +v7.3.1-nightly20161221586967a078 +v7.4.1-nightly20170104e07b6516d7 +v7.5.1-nightly2017020113a024d531 +v7.6.1-nightly201702227a6367017c +v7.7.1-nightly201703019c75f4c78a +v7.7.2-nightly20170302b20bc130ef +v7.7.3-nightly20170309c62798034a +v7.7.4-nightly20170315753adee6aa +v7.7.5-nightly20170322bc664cb034 +v7.8.1-nightly20170329517f13b607 +v7.9.1-nightly20170411675ece47b3 +v7.10.1-nightly2017050369a8053e8a +v8.0.0-nightly20170530effeff1843 +v8.1.0-nightly20170612f6fc46e036 +v8.1.1-nightly2017061323318c7661 +v8.1.2-nightly20170614a1b27dbfb4 +v8.1.3-nightly201706220b96a2640b +v8.1.4-nightly20170704c2c7eb1a41 +v8.1.5-nightly20170718e9491f1cd4 +v8.2.1-nightly2017080791b7843aeb +v8.3.1-nightly201708182d8d355a5f +v8.4.1-nightly201709104b28e0055e +v8.5.1-nightly20170921535f8d5281 +v8.6.1-nightly201710116f42b680e3 +v8.7.1-nightly2017102478a6ef46a9 +v8.8.1-nightly201710256fbef7f350 +v8.8.2-nightly20171030f00ba6b142 +v8.9.1-nightly20171104a815e1b6a2 Carbon +v9.0.0-nightly2017103182790d84f2 +v9.0.1-nightly20171105ed0fbd8d72 +v9.1.1-nightly20171207c81e9682c4 +v9.2.1-nightly20171208f0f9e1abf0 +v9.2.2-nightly20171212f8143214be +v9.3.1-nightly2018010930273d400c +v9.4.1-nightly20180124dd56bd1591 +v9.5.1-nightly20180221b9b58100e0 +v9.6.1-nightly20180222927c1b1a7e +v9.6.2-nightly201802277853a7fd2a +v9.7.1-nightly201803013f3995b7b7 +v9.7.2-nightly20180307cde6671b41 +v9.8.1-nightly20180320607b33cfcc +v9.9.1-nightly201803256591d9f761 +v9.10.0-nightly201803270a18bf1304 +v9.10.1-nightly201803284844a263ce +v9.10.2-nightly201804042bdf3ca235 +v9.11.2-nightly201804135d9a7f81ae +v10.0.0-nightly20180424982adb5994 +v10.0.1-nightly20180505ff148b987d +v10.1.1-nightly20180523235a272838 +v10.2.1-nightly20180524be71c5dea9 +v11.0.0-nightly201805249a02de7084 diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote stable nightly.txt b/test/fast/Unit tests/mocks/nvm_ls_remote stable nightly.txt new file mode 100644 index 0000000..6ca0bcb --- /dev/null +++ b/test/fast/Unit tests/mocks/nvm_ls_remote stable nightly.txt @@ -0,0 +1 @@ +v11.0.0-nightly201805249a02de7084 diff --git a/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable nightly.txt b/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable nightly.txt new file mode 100644 index 0000000..2dbc24b --- /dev/null +++ b/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable nightly.txt @@ -0,0 +1 @@ +11.0 diff --git a/test/fast/Unit tests/nvm_ls_remote nightly b/test/fast/Unit tests/nvm_ls_remote nightly new file mode 100755 index 0000000..14d12cf --- /dev/null +++ b/test/fast/Unit tests/nvm_ls_remote nightly @@ -0,0 +1,65 @@ +#!/bin/sh + +die () { echo "$@" ; cleanup ; exit 1; } + +cleanup() { + unset -f nvm_download +} + +\. ../../../nvm.sh + +MOCKS_DIR="$PWD/mocks" + +# sample output at the time the test was written +TAB_PATH="$MOCKS_DIR/nodejs.org-download-nightly-index.tab" +nvm_download() { + cat "$TAB_PATH" +} + +EXPECTED_OUTPUT_PATH="$MOCKS_DIR/nvm_ls_remote nightly.txt" + +OUTPUT="$(nvm_ls_remote foo)" +EXIT_CODE="$(nvm_ls_remote foo >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_N/A" ] || die "nonexistent version did not report N/A" +[ "_$EXIT_CODE" = "_3" ] || die "nonexistent version did not exit with code 3, got $EXIT_CODE" + +OUTPUT="$(nvm_ls_remote)" +EXPECTED_OUTPUT="$(cat "$EXPECTED_OUTPUT_PATH")" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "bare nvm_ls_remote did not output expected sorted versions; got $(echo ">$OUTPUT<") expected $(echo ">$EXPECTED_OUTPUT<")" + +OUTPUT="$(nvm_ls_remote 10.0)" +EXPECTED_OUTPUT="v10.0.0-nightly20180424982adb5994 +v10.0.1-nightly20180505ff148b987d" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote 10.0 did not output 10.0 nightly versions; got $OUTPUT" + +# Sanity checks +OUTPUT="$(nvm_print_implicit_alias remote stable)" +EXPECTED_OUTPUT_PATH="${MOCKS_DIR}/nvm_print_implicit_alias remote stable nightly.txt" +EXPECTED_OUTPUT="$(cat "${EXPECTED_OUTPUT_PATH}")" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_print_implicit_alias remote stable did not output $EXPECTED_OUTPUT; got $OUTPUT" + +OUTPUT="$(nvm_print_implicit_alias remote unstable)" +EXPECTED_OUTPUT="N/A" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_print_implicit_alias remote unstable did not output |$EXPECTED_OUTPUT|; got |$OUTPUT|" + +OUTPUT="$(nvm_ls_remote stable)" +EXPECTED_OUTPUT_PATH="${MOCKS_DIR}/nvm_ls_remote stable nightly.txt" +EXPECTED_OUTPUT="$(cat "${EXPECTED_OUTPUT_PATH}")" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote stable did not output $EXPECTED_OUTPUT; got $OUTPUT" + +OUTPUT="$(nvm_ls_remote unstable)" +EXPECTED_OUTPUT="N/A" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote unstable did not output |$EXPECTED_OUTPUT|; got |$OUTPUT|" + +EXPECTED_OUTPUT_PATH="$MOCKS_DIR/nvm_ls_remote LTS nightly.txt" +EXPECTED_OUTPUT="$(cat "$EXPECTED_OUTPUT_PATH")" +OUTPUT="$(NVM_LTS='*' nvm_ls_remote)" + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "\`NVM_LTS='*' nvm_ls_remote\` did not output >$EXPECTED_OUTPUT<; got >$OUTPUT<" + +EXPECTED_OUTPUT_PATH="$MOCKS_DIR/nvm_ls_remote LTS nightly argon.txt" +EXPECTED_OUTPUT="$(cat "$EXPECTED_OUTPUT_PATH")" +OUTPUT="$(NVM_LTS=argon nvm_ls_remote)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "\`NVM_LTS=argon nvm_ls_remote\` did not output >$EXPECTED_OUTPUT<; got >$OUTPUT<" + +cleanup diff --git a/update_test_mocks.sh b/update_test_mocks.sh index 981b32f..91de3c0 100755 --- a/update_test_mocks.sh +++ b/update_test_mocks.sh @@ -24,7 +24,7 @@ nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote.txt" nvm_ls_remote_iojs > "$MOCKS_DIR/nvm_ls_remote_iojs.txt" NVM_LTS=* nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote LTS.txt" NVM_LTS=argon nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote LTS argon.txt" -nvm_download -L -s "$(nvm_get_mirror node std)/index.tab" -o - > "$MOCKS_DIR/nodejs.org-dist-index.tab" +nvm_download -L -s "https://nodejs.org/download/nightly/index.tab" -o - > "$MOCKS_DIR/nodejs.org-download-nightly-index.tab" nvm_download -L -s "$(nvm_get_mirror iojs std)/index.tab" -o - > "$MOCKS_DIR/iojs.org-dist-index.tab" nvm ls-remote > "$MOCKS_DIR/nvm ls-remote.txt" nvm ls-remote --lts > "$MOCKS_DIR/nvm ls-remote lts.txt" @@ -33,6 +33,13 @@ nvm ls-remote iojs > "$MOCKS_DIR/nvm ls-remote iojs.txt" nvm_print_implicit_alias remote stable > "$MOCKS_DIR/nvm_print_implicit_alias remote stable.txt" nvm_ls_remote stable > "$MOCKS_DIR/nvm_ls_remote stable.txt" +NVM_NODEJS_ORG_MIRROR=https://nodejs.org/download/nightly/ nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote nightly.txt" +nvm_download -L -s "$(nvm_get_mirror node std)/index.tab" -o - > "$MOCKS_DIR/nodejs.org-dist-index.tab" +NVM_NODEJS_ORG_MIRROR=https://nodejs.org/download/nightly/ nvm_print_implicit_alias remote stable > "$MOCKS_DIR/nvm_print_implicit_alias remote stable nightly.txt" +NVM_NODEJS_ORG_MIRROR=https://nodejs.org/download/nightly/ nvm_ls_remote stable > "$MOCKS_DIR/nvm_ls_remote stable nightly.txt" +NVM_NODEJS_ORG_MIRROR=https://nodejs.org/download/nightly/ NVM_LTS=* nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote LTS nightly.txt" +NVM_NODEJS_ORG_MIRROR=https://nodejs.org/download/nightly/ NVM_LTS=argon nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote LTS nightly argon.txt" + ALIAS_PATH="$MOCKS_DIR/nvm_make_alias LTS alias calls.txt" : > "$ALIAS_PATH" nvm_make_alias() { From f5f029c40919645011d7562b7fe3bf8aa0a5ddf9 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 24 May 2018 12:23:02 -0400 Subject: [PATCH 1130/1426] =?UTF-8?q?[Fix]=20=E2=80=9Cunstable=E2=80=9D=20?= =?UTF-8?q?alias:=20when=20there=E2=80=99s=20no=20=E2=80=9Cunstable?= =?UTF-8?q?=E2=80=9D=20minors,=20output=20=E2=80=9CN/A=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nvm.sh | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 5ed70ae..c23c035 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1107,7 +1107,13 @@ nvm_ls_remote() { local PATTERN PATTERN="${1-}" if nvm_validate_implicit_alias "${PATTERN}" 2> /dev/null ; then - PATTERN="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote "$(nvm_print_implicit_alias remote "${PATTERN}")" | command tail -1 | command awk '{ print $1 }')" + local IMPLICIT + IMPLICIT="$(nvm_print_implicit_alias remote "${PATTERN}")" + if [ -z "${IMPLICIT-}" ] || [ "${IMPLICIT}" = 'N/A' ]; then + nvm_echo "N/A" + return 3 + fi + PATTERN="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote "${IMPLICIT}" | command tail -1 | command awk '{ print $1 }')" elif [ -n "${PATTERN}" ]; then PATTERN="$(nvm_ensure_version_prefix "${PATTERN}")" else @@ -1590,7 +1596,7 @@ nvm_print_implicit_alias() { if [ "_$2" = '_stable' ]; then nvm_echo "${STABLE}" elif [ "_$2" = '_unstable' ]; then - nvm_echo "${UNSTABLE}" + nvm_echo "${UNSTABLE:-"N/A"}" fi } From 7a5ff0d13376e9b668c1ddb61ac51ec1d6177bbd Mon Sep 17 00:00:00 2001 From: adedomin Date: Wed, 23 May 2018 19:47:11 -0400 Subject: [PATCH 1131/1426] [Fix] `ls-remote`: fix issues in zsh when using a mirror with a ton of entries Fixes #1813 --- nvm.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index c23c035..8972e2a 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1218,8 +1218,7 @@ nvm_ls_remote_index_tab() { nvm_make_alias "$LTS_ALIAS" "$LTS_VERSION" >/dev/null 2>&1 done - VERSIONS="$(nvm_echo "${VERSION_LIST}" \ - | command awk -v pattern="${PATTERN-}" -v lts="${LTS-}" '{ + VERSIONS="$({ command awk -v pattern="${PATTERN-}" -v lts="${LTS-}" '{ if (!$1) { next } if (pattern && tolower($1) !~ tolower(pattern)) { next } if (lts == "*" && $10 ~ /^\-?$/) { next } @@ -1227,7 +1226,10 @@ nvm_ls_remote_index_tab() { if ($10 !~ /^\-?$/) print $1, $10; else print $1 }' \ | nvm_grep -w "${PATTERN:-.*}" \ - | $SORT_COMMAND)" + | $SORT_COMMAND; } << EOF +$VERSION_LIST +EOF +)" if [ "$ZSH_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then unsetopt shwordsplit fi From 38b32c27f38ce1e4d143fcfe16b0a635d20c5e14 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 23 May 2018 23:48:50 -0400 Subject: [PATCH 1132/1426] [Tests] update mock data --- test/fast/Unit tests/mocks/nodejs.org-dist-index.tab | 5 +++++ test/fast/Unit tests/mocks/nvm ls-remote lts.txt | 6 ++++-- test/fast/Unit tests/mocks/nvm ls-remote node.txt | 9 +++++++-- test/fast/Unit tests/mocks/nvm ls-remote.txt | 9 +++++++-- test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt | 2 ++ test/fast/Unit tests/mocks/nvm_ls_remote stable.txt | 2 +- test/fast/Unit tests/mocks/nvm_ls_remote.txt | 5 +++++ .../Unit tests/mocks/nvm_make_alias LTS alias calls.txt | 4 ++-- .../mocks/nvm_print_implicit_alias remote stable.txt | 2 +- 9 files changed, 34 insertions(+), 10 deletions(-) diff --git a/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab b/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab index 440ab6f..8767813 100644 --- a/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab +++ b/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab @@ -1,4 +1,7 @@ version date files npm v8 uv zlib openssl modules lts +v10.2.0 2018-05-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - +v10.1.0 2018-05-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.2 1.2.11 1.1.0h 64 - +v10.0.0 2018-04-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - v9.11.1 2018-04-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - v9.11.0 2018-04-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - v9.10.1 2018-03-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - @@ -16,6 +19,7 @@ v9.2.1 2017-12-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux- v9.2.0 2017-11-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - v9.1.0 2017-11-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - v9.0.0 2017-10-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - +v8.11.2 2018-05-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.54 1.19.1 1.2.11 1.0.2o 57 Carbon v8.11.1 2018-03-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.50 1.19.1 1.2.11 1.0.2o 57 Carbon v8.11.0 2018-03-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.50 1.19.1 1.2.11 1.0.2o 57 Carbon v8.10.0 2018-03-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.50 1.19.1 1.2.11 1.0.2n 57 Carbon @@ -56,6 +60,7 @@ v7.2.1 2016-12-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux- v7.2.0 2016-11-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - v7.1.0 2016-11-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - v7.0.0 2016-10-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.9.1 1.2.8 1.0.2j 51 - +v6.14.2 2018-04-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2o 48 Boron v6.14.1 2018-03-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2o 48 Boron v6.14.0 2018-03-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2o 48 Boron v6.13.1 2018-03-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2n 48 Boron diff --git a/test/fast/Unit tests/mocks/nvm ls-remote lts.txt b/test/fast/Unit tests/mocks/nvm ls-remote lts.txt index 1912a96..ed278be 100644 --- a/test/fast/Unit tests/mocks/nvm ls-remote lts.txt +++ b/test/fast/Unit tests/mocks/nvm ls-remote lts.txt @@ -57,7 +57,8 @@ v6.13.0  (LTS: Boron) v6.13.1  (LTS: Boron) v6.14.0  (LTS: Boron) - v6.14.1  (Latest LTS: Boron) + v6.14.1  (LTS: Boron) + v6.14.2  (Latest LTS: Boron) v8.9.0  (LTS: Carbon) v8.9.1  (LTS: Carbon) v8.9.2  (LTS: Carbon) @@ -65,4 +66,5 @@ v8.9.4  (LTS: Carbon) v8.10.0  (LTS: Carbon) v8.11.0  (LTS: Carbon) - v8.11.1  (Latest LTS: Carbon) + v8.11.1  (LTS: Carbon) + v8.11.2  (Latest LTS: Carbon) diff --git a/test/fast/Unit tests/mocks/nvm ls-remote node.txt b/test/fast/Unit tests/mocks/nvm ls-remote node.txt index 3e00d5b..819b636 100644 --- a/test/fast/Unit tests/mocks/nvm ls-remote node.txt +++ b/test/fast/Unit tests/mocks/nvm ls-remote node.txt @@ -330,7 +330,8 @@ v6.13.0  (LTS: Boron) v6.13.1  (LTS: Boron) v6.14.0  (LTS: Boron) - v6.14.1  (Latest LTS: Boron) + v6.14.1  (LTS: Boron) + v6.14.2  (Latest LTS: Boron) v7.0.0 v7.1.0 v7.2.0 @@ -370,7 +371,8 @@ v8.9.4  (LTS: Carbon) v8.10.0  (LTS: Carbon) v8.11.0  (LTS: Carbon) - v8.11.1  (Latest LTS: Carbon) + v8.11.1  (LTS: Carbon) + v8.11.2  (Latest LTS: Carbon) v9.0.0 v9.1.0 v9.2.0 @@ -388,3 +390,6 @@ v9.10.1 v9.11.0 v9.11.1 + v10.0.0 + v10.1.0 + v10.2.0 diff --git a/test/fast/Unit tests/mocks/nvm ls-remote.txt b/test/fast/Unit tests/mocks/nvm ls-remote.txt index ac19faa..b58bd3b 100644 --- a/test/fast/Unit tests/mocks/nvm ls-remote.txt +++ b/test/fast/Unit tests/mocks/nvm ls-remote.txt @@ -371,7 +371,8 @@ v6.13.0  (LTS: Boron) v6.13.1  (LTS: Boron) v6.14.0  (LTS: Boron) - v6.14.1  (Latest LTS: Boron) + v6.14.1  (LTS: Boron) + v6.14.2  (Latest LTS: Boron) v7.0.0 v7.1.0 v7.2.0 @@ -411,7 +412,8 @@ v8.9.4  (LTS: Carbon) v8.10.0  (LTS: Carbon) v8.11.0  (LTS: Carbon) - v8.11.1  (Latest LTS: Carbon) + v8.11.1  (LTS: Carbon) + v8.11.2  (Latest LTS: Carbon) v9.0.0 v9.1.0 v9.2.0 @@ -429,3 +431,6 @@ v9.10.1 v9.11.0 v9.11.1 + v10.0.0 + v10.1.0 + v10.2.0 diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt b/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt index 2885bcf..63b9864 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt @@ -58,6 +58,7 @@ v6.13.0 Boron v6.13.1 Boron v6.14.0 Boron v6.14.1 Boron +v6.14.2 Boron v8.9.0 Carbon v8.9.1 Carbon v8.9.2 Carbon @@ -66,3 +67,4 @@ v8.9.4 Carbon v8.10.0 Carbon v8.11.0 Carbon v8.11.1 Carbon +v8.11.2 Carbon diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt b/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt index 0a7b8bc..ccc8860 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt @@ -1 +1 @@ -v9.11.1 +v10.2.0 diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote.txt b/test/fast/Unit tests/mocks/nvm_ls_remote.txt index d93b723..c08b036 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote.txt @@ -331,6 +331,7 @@ v6.13.0 Boron v6.13.1 Boron v6.14.0 Boron v6.14.1 Boron +v6.14.2 Boron v7.0.0 v7.1.0 v7.2.0 @@ -371,6 +372,7 @@ v8.9.4 Carbon v8.10.0 Carbon v8.11.0 Carbon v8.11.1 Carbon +v8.11.2 Carbon v9.0.0 v9.1.0 v9.2.0 @@ -388,3 +390,6 @@ v9.10.0 v9.10.1 v9.11.0 v9.11.1 +v10.0.0 +v10.1.0 +v10.2.0 diff --git a/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt b/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt index feea00a..b70f44b 100644 --- a/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt +++ b/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt @@ -1,4 +1,4 @@ lts/*|lts/carbon -lts/carbon|v8.11.1 -lts/boron|v6.14.1 +lts/carbon|v8.11.2 +lts/boron|v6.14.2 lts/argon|v4.9.1 diff --git a/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt b/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt index d4ce17d..e2498ea 100644 --- a/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt +++ b/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt @@ -1 +1 @@ -9.11 +10.2 From b81c120e0c7b2ce03062d4f1a3aaefae38362e89 Mon Sep 17 00:00:00 2001 From: Siddharth Sakhadeo Date: Fri, 25 May 2018 15:33:42 -0700 Subject: [PATCH 1133/1426] fix failing if check in autoload script --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 78ae541..080d4b2 100644 --- a/README.md +++ b/README.md @@ -378,7 +378,7 @@ load-nvmrc() { if [ "$nvmrc_node_version" = "N/A" ]; then nvm install - elif [ "$nvmrc_node_version" != "$node_version" ]; then + elif [ "$nvmrc_node_version" = "$node_version" ]; then nvm use fi elif [ "$node_version" != "$(nvm version default)" ]; then From e7b53a01fd879f46e6c2dce9b46f4a452fcdffd8 Mon Sep 17 00:00:00 2001 From: Jay Williams Date: Sat, 26 May 2018 23:17:08 +0100 Subject: [PATCH 1134/1426] Grammar update --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 080d4b2..f9ffe0f 100644 --- a/README.md +++ b/README.md @@ -71,7 +71,7 @@ command -v nvm ``` simply close your current terminal, open a new terminal, and try verifying again. -**Note:** Since OS X 10.9, `/usr/bin/git` was preset by Xcode command line tools, which caused Git can't be properly detected if it's installed or not. You need to manually install the Xcode command line tools before running the install script, otherwise, it'll fail. (see [#1782](https://github.com/creationix/nvm/issues/1782)) +**Note:** Since OS X 10.9, `/usr/bin/git` has been preset by Xcode command line tools, which means we can't properly detect if Git is installed or not. You need to manually install the Xcode command line tools before running the install script, otherwise, it'll fail. (see [#1782](https://github.com/creationix/nvm/issues/1782)) **Note:** On OS X, if you get `nvm: command not found` after running the install script, one of the following might be the reason:- - your system may not have a [`.bash_profile file`] where the command is set up. Simply create one with `touch ~/.bash_profile` and run the install script again From d08d8607f5bc3aed6705a1244b4f39fee61ca71c Mon Sep 17 00:00:00 2001 From: SrHuevo Date: Wed, 30 May 2018 09:02:29 +0200 Subject: [PATCH 1135/1426] fix for .nvmrc script --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f9ffe0f..96e0782 100644 --- a/README.md +++ b/README.md @@ -378,7 +378,7 @@ load-nvmrc() { if [ "$nvmrc_node_version" = "N/A" ]; then nvm install - elif [ "$nvmrc_node_version" = "$node_version" ]; then + elif [ "$nvmrc_node_version" != "$node_version" ]; then nvm use fi elif [ "$node_version" != "$(nvm version default)" ]; then From 628d4fac8448197444ed39f5bcba481d08cf777b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 31 May 2018 23:49:15 -0700 Subject: [PATCH 1136/1426] =?UTF-8?q?[shellcheck]=20use=20`{=20=E2=80=A6;?= =?UTF-8?q?=20}`=20instead=20of=20`(=E2=80=A6)`=20to=20group=20test=20comm?= =?UTF-8?q?ands?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nvm.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/nvm.sh b/nvm.sh index 8972e2a..96873fa 100644 --- a/nvm.sh +++ b/nvm.sh @@ -533,9 +533,9 @@ nvm_remote_versions() { NVM_LS_REMOTE_IOJS_EXIT_CODE=0 local NVM_LS_REMOTE_IOJS_OUTPUT NVM_LS_REMOTE_IOJS_OUTPUT='' - if [ -z "${NVM_LTS-}" ] && ( \ - [ -z "${NVM_FLAVOR-}" ] || [ "${NVM_FLAVOR-}" = "${NVM_IOJS_PREFIX}" ] \ - ); then + if [ -z "${NVM_LTS-}" ] && { + [ -z "${NVM_FLAVOR-}" ] || [ "${NVM_FLAVOR-}" = "${NVM_IOJS_PREFIX}" ]; + }; then NVM_LS_REMOTE_IOJS_OUTPUT=$(nvm_ls_remote_iojs "${PATTERN-}") &&: NVM_LS_REMOTE_IOJS_EXIT_CODE=$? fi @@ -783,14 +783,14 @@ nvm_list_aliases() { local ALIAS_NAME for ALIAS_NAME in "$(nvm_node_prefix)" "stable" "unstable"; do { - if [ ! -f "${NVM_ALIAS_DIR}/${ALIAS_NAME}" ] && ([ -z "${ALIAS}" ] || [ "${ALIAS_NAME}" = "${ALIAS}" ]); then + if [ ! -f "${NVM_ALIAS_DIR}/${ALIAS_NAME}" ] && { [ -z "${ALIAS}" ] || [ "${ALIAS_NAME}" = "${ALIAS}" ]; }; then NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_CURRENT="${NVM_CURRENT}" nvm_print_default_alias "${ALIAS_NAME}" fi } & done wait ALIAS_NAME="$(nvm_iojs_prefix)" - if [ ! -f "${NVM_ALIAS_DIR}/${ALIAS_NAME}" ] && ([ -z "${ALIAS}" ] || [ "${ALIAS_NAME}" = "${ALIAS}" ]); then + if [ ! -f "${NVM_ALIAS_DIR}/${ALIAS_NAME}" ] && { [ -z "${ALIAS}" ] || [ "${ALIAS_NAME}" = "${ALIAS}" ]; }; then NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_CURRENT="${NVM_CURRENT}" nvm_print_default_alias "${ALIAS_NAME}" fi ) | sort From c50ea6f0a387357944e208c7af62f8da717d43a9 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 31 May 2018 23:56:20 -0700 Subject: [PATCH 1137/1426] [shellcheck] quote variables in for loops to avoid unintentional expansion --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 96873fa..5d488fe 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2316,7 +2316,7 @@ nvm_check_file_permissions() { ZSH_HAS_NONOMATCH_UNSET="$(set +e ; setopt | nvm_grep -q nonomatch ; nvm_echo $?)" setopt nonomatch fi - for FILE in $1/* $1/.[!.]* $1/..?* ; do + for FILE in "$1"/* "$1"/.[!.]* "$1"/..?* ; do if [ -d "$FILE" ]; then if ! nvm_check_file_permissions "$FILE"; then if [ "${ZSH_HAS_NONOMATCH_UNSET}" -eq 1 ] && nvm_has "setopt"; then From 9854928ba9ff6f24360207fa90135574746838f5 Mon Sep 17 00:00:00 2001 From: Spike Grobstein Date: Thu, 3 May 2018 08:22:07 -0700 Subject: [PATCH 1138/1426] [New] `install.sh`: allow user to explicitly opt out of nvm adding the source string this is done by checking if the user supplies `PROFILE=/dev/null` when running `install.sh`, the `nvm_detect_profile` function will not output any strings, causing `nvm_do_install` to skip adding `SOURCE_STR`. --- install.sh | 5 +++++ test/install_script/nvm_detect_profile | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/install.sh b/install.sh index 77f7f31..7bf62df 100755 --- a/install.sh +++ b/install.sh @@ -212,6 +212,11 @@ nvm_try_profile() { # Otherwise, an empty string is returned # nvm_detect_profile() { + if [ "${PROFILE-}" = '/dev/null' ]; then + # the user has specifically requested NOT to have nvm touch their profile + return + fi + if [ -n "${PROFILE}" ] && [ -f "${PROFILE}" ]; then echo "${PROFILE}" return diff --git a/test/install_script/nvm_detect_profile b/test/install_script/nvm_detect_profile index 1044659..54815ec 100755 --- a/test/install_script/nvm_detect_profile +++ b/test/install_script/nvm_detect_profile @@ -28,6 +28,12 @@ setup # Confirm profile detection via $SHELL works and that $PROFILE overrides profile detection # +# setting $PROFILE to /dev/null should return no detected profile +NVM_DETECT_PROFILE="$(PROFILE='/dev/null'; nvm_detect_profile)" +if [ -n "$NVM_DETECT_PROFILE" ]; then + die "nvm_detect_profile still detected a profile even though PROFILE=/dev/null" +fi + # .bashrc should be detected for bash NVM_DETECT_PROFILE="$(BASH_VERSION="1"; unset PROFILE; nvm_detect_profile)" if [ "$NVM_DETECT_PROFILE" != "$HOME/.bashrc" ]; then From b111436fde25e0a0fe2f3392c6199df6c2bc603e Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 6 Jun 2018 22:49:56 -0700 Subject: [PATCH 1139/1426] [Tests] test `nvm install-latest-npm` on io.js v2 --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 4fcfe5e..6c32943 100644 --- a/.travis.yml +++ b/.travis.yml @@ -89,3 +89,4 @@ env: - NODE=4.6 TEST="nvm install-latest-npm" - NODE=4.5 TEST="nvm install-latest-npm" - NODE=4.4 TEST="nvm install-latest-npm" + - NODE=2 TEST="nvm install-latest-npm" From eabd7ab13d4823928fd61629c32c9bf14accdeb2 Mon Sep 17 00:00:00 2001 From: Xandor Schiefer Date: Mon, 14 Nov 2016 19:18:24 +0200 Subject: [PATCH 1140/1426] Respect previously nvm-loaded node version when sourcing --- nvm.sh | 16 ++++++++++----- ...vm.sh should keep version if one is active | 20 +++++++++++++++++++ ...lt if available and no nvm node is loaded} | 19 ++++++++++++++---- test/sourcing/setup | 1 + test/sourcing/teardown | 1 + 5 files changed, 48 insertions(+), 9 deletions(-) create mode 100755 test/sourcing/Sourcing nvm.sh should keep version if one is active rename test/sourcing/{Sourcing nvm.sh should use the default if available => Sourcing nvm.sh should use the default if available and no nvm node is loaded} (53%) diff --git a/nvm.sh b/nvm.sh index 5d488fe..d854605 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3606,6 +3606,8 @@ nvm_supports_xz() { } nvm_auto() { + local NVM_CURRENT + NVM_CURRENT="$(nvm_ls_current)" local NVM_MODE NVM_MODE="${1-}" local VERSION @@ -3617,11 +3619,15 @@ nvm_auto() { nvm install >/dev/null fi elif [ "_$NVM_MODE" = '_use' ]; then - VERSION="$(nvm_resolve_local_alias default 2>/dev/null || nvm_echo)" - if [ -n "$VERSION" ]; then - nvm use --silent "$VERSION" >/dev/null - elif nvm_rc_version >/dev/null 2>&1; then - nvm use --silent >/dev/null + if [ "_${NVM_CURRENT}" = '_none' ] || [ "_${NVM_CURRENT}" = '_system' ]; then + VERSION="$(nvm_resolve_local_alias default 2>/dev/null || nvm_echo)" + if [ -n "${VERSION}" ]; then + nvm use --silent "${VERSION}" >/dev/null + elif nvm_rc_version >/dev/null 2>&1; then + nvm use --silent >/dev/null + fi + else + nvm use --silent "${NVM_CURRENT}" >/dev/null fi elif [ "_$NVM_MODE" != '_none' ]; then nvm_err 'Invalid auto mode supplied.' diff --git a/test/sourcing/Sourcing nvm.sh should keep version if one is active b/test/sourcing/Sourcing nvm.sh should keep version if one is active new file mode 100755 index 0000000..4254159 --- /dev/null +++ b/test/sourcing/Sourcing nvm.sh should keep version if one is active @@ -0,0 +1,20 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +echo '0.10.1' > ../../alias/default || die "couldn't create default alias" + +\. ../../nvm.sh || die 'sourcing returned nonzero exit code' + +NVM_TARGET=0.10.3 +NVM_DEFAULT="$(nvm_resolve_local_alias default)" + +[ "_$NVM_DEFAULT" != "_$NVM_TARGET" ] || die "default $NVM_DEFAULT is the same as target $NVM_TARGET" + +nvm use $NVM_TARGET || die "nvm use $NVM_TARGET failed" + +\. ../../nvm.sh || die 'sourcing returned nonzero exit code' + +NVM_CURRENT="$(nvm current)" + +[ "_${NVM_CURRENT#v}" = "_$NVM_TARGET" ] || die "node version not retained after sourcing" diff --git a/test/sourcing/Sourcing nvm.sh should use the default if available b/test/sourcing/Sourcing nvm.sh should use the default if available and no nvm node is loaded similarity index 53% rename from test/sourcing/Sourcing nvm.sh should use the default if available rename to test/sourcing/Sourcing nvm.sh should use the default if available and no nvm node is loaded index 67e3048..fe837f2 100755 --- a/test/sourcing/Sourcing nvm.sh should use the default if available +++ b/test/sourcing/Sourcing nvm.sh should use the default if available and no nvm node is loaded @@ -2,13 +2,24 @@ die () { echo "$@" ; exit 1; } -echo '0.10.1' > ../../alias/default || die 'creation of default alias failed' - -\. ../../nvm.sh || die 'sourcing returned nonzero exit code' \. ../common.sh +# We need to unload nvm again first, as by the time this test is run, +# despite being unloaded in setup, the inherited PATH still contains +# an nvm-installed node version. We have to reset NVM_DIR after the unload. +\. ../../nvm.sh || die 'sourcing returned nonzero exit code' +NVM_DIR_CACHED="$NVM_DIR" +nvm unload || die 'unloading returned nonzero exit code' +NVM_DIR="$NVM_DIR_CACHED" + +echo '0.10.1' > ../../alias/default || die 'creation of default alias failed' + +# Now to begin the real test +\. ../../nvm.sh || die 'sourcing returned nonzero exit code' + +NVM_LS_CURRENT_NOT_GREPPED="$(nvm ls current | strip_colors)" NVM_LS_CURRENT="$(nvm ls current | strip_colors | \grep -o v0.10.1)" -[ "_$NVM_LS_CURRENT" = '_v0.10.1' ] || die "'nvm ls current' did not return '-> v0.10.1', got '$NVM_LS_CURRENT'" +[ "_$NVM_LS_CURRENT" = '_v0.10.1' ] || die "'nvm ls current' did not return '-> v0.10.1', got '$NVM_LS_CURRENT_NOT_GREPPED'" # NVM_LS_CURRENT_COLORED="$(nvm ls current | sed -n l)" diff --git a/test/sourcing/setup b/test/sourcing/setup index 44b688e..a7f6be8 100755 --- a/test/sourcing/setup +++ b/test/sourcing/setup @@ -9,5 +9,6 @@ rm -rf ../../v0.9.12 \. ../../nvm.sh nvm install 0.10.1 || echo >&2 'nvm install 0.10.1 failed' +nvm install 0.10.3 || echo >&2 'nvm install 0.10.3 failed' nvm unalias default || 'removing default alias failed' nvm unload || echo >&2 'nvm unload failed' diff --git a/test/sourcing/teardown b/test/sourcing/teardown index 00a8749..9bb52b0 100755 --- a/test/sourcing/teardown +++ b/test/sourcing/teardown @@ -3,4 +3,5 @@ rm -rf ../../alias rm -rf ../../v0.10.1 rm -rf ../../v0.10.2 +rm -rf ../../v0.10.3 rm -f ../../.nvmrc From a5f42d9cea7f9d13b38a9df9007ec3849483edf1 Mon Sep 17 00:00:00 2001 From: Joshua Li Date: Wed, 13 Jun 2018 10:38:19 -0700 Subject: [PATCH 1141/1426] [Tests] update most mkdirs to use make_fake_{node,iojs} --- ... instead of implicit aliases when present" | 6 +-- ....0.2\" should display only version 0.0.2." | 7 ++-- ....0.2\" should display only version 0.0.2." | 5 ++- ...0.2\" should display only 0.2.x versions." | 7 ++-- ...uld return the appropriate implicit alias" | 13 ++++--- ...hould include \"system\" when appropriate" | 13 ++++--- ...\" should display all installed versions." | 39 ++++++++++--------- ...ing \"nvm ls\" should filter out \".nvm\"" | 5 ++- ...\"nvm ls\" should filter out \"versions\"" | 6 +-- ...hould include \"system\" when appropriate" | 13 ++++--- ...st versions in the \"versions\" directory" | 5 ++- ...vx.x.x should only list a matched version" | 3 +- .../Using a nonstandard IFS should not break | 21 +++++----- test/fast/Listing versions/teardown | 1 + ...-packages-from\" requires a valid version" | 3 +- ...create and change the \"current\" symlink" | 9 +++-- ... symlink if $NVM_SYMLINK_CURRENT is false" | 5 ++- .../Unit tests/nvm_ensure_version_installed | 3 +- test/fast/Unit tests/nvm_has_system_iojs | 9 ++--- test/fast/Unit tests/nvm_has_system_node | 6 +-- .../nvm_print_implicit_alias success | 18 +++++---- 21 files changed, 107 insertions(+), 90 deletions(-) diff --git "a/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" "b/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" index 25871fd..1857f44 100755 --- "a/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" +++ "b/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" @@ -14,9 +14,9 @@ cleanup () { rm -rf "${NVM_DIR}/versions/io.js/v0.2.1" } -mkdir "${NVM_DIR}/v0.8.1" -mkdir "${NVM_DIR}/v0.9.1" -mkdir -p "${NVM_DIR}/versions/io.js/v0.2.1" +make_fake_node v0.8.1 +make_fake_node v0.9.1 +make_fake_iojs v0.2.1 EXPECTED_STABLE="$(nvm_print_implicit_alias local stable)" STABLE_VERSION="$(nvm_version "$EXPECTED_STABLE")" diff --git "a/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." "b/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." index adbdb8c..1f4eb11 100755 --- "a/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." +++ "b/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." @@ -1,10 +1,11 @@ #!/bin/sh \. ../../../nvm.sh +\. ../../common.sh -mkdir -p "${NVM_DIR}/v0.0.2" -mkdir -p "${NVM_DIR}/v0.0.20" -mkdir -p "${NVM_DIR}/versions/node/v0.12.0" +make_fake_node v0.0.2 +make_fake_node v0.0.20 +make_fake_node v0.12.0 die () { echo "$@" ; exit 1; } diff --git "a/test/fast/Listing versions/Running \"nvm ls 0.0.2\" should display only version 0.0.2." "b/test/fast/Listing versions/Running \"nvm ls 0.0.2\" should display only version 0.0.2." index faed0a6..666a3f0 100755 --- "a/test/fast/Listing versions/Running \"nvm ls 0.0.2\" should display only version 0.0.2." +++ "b/test/fast/Listing versions/Running \"nvm ls 0.0.2\" should display only version 0.0.2." @@ -1,9 +1,10 @@ #!/bin/sh \. ../../../nvm.sh +\. ../../common.sh -mkdir "${NVM_DIR}/v0.0.2" -mkdir "${NVM_DIR}/v0.0.20" +make_fake_node v0.0.2 +make_fake_node v0.0.20 die () { echo "$@" ; exit 1; } diff --git "a/test/fast/Listing versions/Running \"nvm ls 0.2\" should display only 0.2.x versions." "b/test/fast/Listing versions/Running \"nvm ls 0.2\" should display only 0.2.x versions." index edddf01..b02efa3 100755 --- "a/test/fast/Listing versions/Running \"nvm ls 0.2\" should display only 0.2.x versions." +++ "b/test/fast/Listing versions/Running \"nvm ls 0.2\" should display only 0.2.x versions." @@ -1,10 +1,11 @@ #!/bin/sh \. ../../../nvm.sh +\. ../../common.sh -mkdir "${NVM_DIR}/v0.1.3" -mkdir "${NVM_DIR}/v0.2.3" -mkdir "${NVM_DIR}/v0.20.3" +make_fake_node v0.1.3 +make_fake_node v0.2.3 +make_fake_node v0.20.3 die () { echo "$@" ; exit 1; } diff --git "a/test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" "b/test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" index 61e890a..78d0a50 100755 --- "a/test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" +++ "b/test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" @@ -1,11 +1,12 @@ #!/bin/sh \. ../../../nvm.sh +\. ../../common.sh die () { echo "$@" ; exit 1; } -mkdir "${NVM_DIR}/v0.2.3" -mkdir "${NVM_DIR}/v0.3.3" +make_fake_node v0.2.3 +make_fake_node v0.3.3 EXPECTED_STABLE="$(nvm_print_implicit_alias local stable)" STABLE_VERSION="$(nvm_version "$EXPECTED_STABLE")" @@ -19,10 +20,10 @@ nvm ls stable | \grep "$STABLE_VERSION" >/dev/null \ nvm ls unstable | \grep "$UNSTABLE_VERSION" >/dev/null \ || die "expected 'nvm ls unstable' to give $UNSTABLE_VERSION, got $(nvm ls unstable)" -mkdir "${NVM_DIR}/v0.1.2" +make_fake_node v0.1.4 nvm alias stable 0.1 nvm ls stable | \grep -v "$STABLE_VERSION" >/dev/null \ - || die "'nvm ls stable' contained $STABLE_VERSION instead of v0.1.2" -nvm ls stable | \grep v0.1.2 >/dev/null \ - || die "'nvm ls stable' did not contain v0.1.2" + || die "'nvm ls stable' contained $STABLE_VERSION instead of v0.1.4" +nvm ls stable | \grep v0.1.4 >/dev/null \ + || die "'nvm ls stable' did not contain v0.1.4" diff --git "a/test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" "b/test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" index c858876..1d39a41 100755 --- "a/test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" +++ "b/test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" @@ -3,13 +3,14 @@ die () { echo "$@" ; exit 1; } \. ../../../nvm.sh +\. ../../common.sh -mkdir -p "${NVM_DIR}/v0.0.1" -mkdir -p "${NVM_DIR}/v0.0.3" -mkdir -p "${NVM_DIR}/v0.0.9" -mkdir -p "${NVM_DIR}/v0.3.1" -mkdir -p "${NVM_DIR}/v0.3.3" -mkdir -p "${NVM_DIR}/v0.3.9" +make_fake_node v0.0.1 +make_fake_node v0.0.3 +make_fake_node v0.0.9 +make_fake_node v0.3.1 +make_fake_node v0.3.3 +make_fake_node v0.3.9 nvm_has_system_node() { return 0; } nvm ls system | grep system 2>&1 > /dev/null diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." "b/test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." index d9fdce0..6b71e1e 100755 --- "a/test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." +++ "b/test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." @@ -1,24 +1,27 @@ #!/bin/sh \. ../../../nvm.sh +\. ../../common.sh -mkdir "${NVM_DIR}/v0.0.1" -mkdir "${NVM_DIR}/v0.0.3" -mkdir "${NVM_DIR}/v0.0.9" -mkdir "${NVM_DIR}/v0.3.1" -mkdir "${NVM_DIR}/v0.3.3" -mkdir "${NVM_DIR}/v0.3.9" -mkdir -p "${NVM_DIR}/versions/node/v0.12.87" -mkdir -p "${NVM_DIR}/versions/node/v0.12.9" -mkdir -p "${NVM_DIR}/versions/io.js/v0.1.2" -mkdir -p "${NVM_DIR}/versions/io.js/v0.10.2" +die () { echo "$@" ; exit 1; } + +make_fake_node v0.0.1 +make_fake_node v0.0.3 +make_fake_node v0.0.9 +make_fake_node v0.3.1 +make_fake_node v0.3.3 +make_fake_node v0.3.9 +make_fake_node v0.12.87 +make_fake_node v0.12.9 +make_fake_iojs v0.1.2 +make_fake_iojs v0.10.2 # The result should contain the version numbers. -nvm ls | grep v0.0.1 >/dev/null && -nvm ls | grep v0.0.3 >/dev/null && -nvm ls | grep v0.0.9 >/dev/null && -nvm ls | grep v0.3.1 >/dev/null && -nvm ls | grep v0.3.3 >/dev/null && -nvm ls | grep v0.3.9 >/dev/null && -nvm ls | grep v0.12.87 >/dev/null && -nvm ls | grep iojs-v0.1.2 >/dev/null +nvm ls | grep v0.0.1 >/dev/null || die "v0.0.1 not found in: $(nvm ls)" +nvm ls | grep v0.0.3 >/dev/null || die "v0.0.3 not found in: $(nvm ls)" +nvm ls | grep v0.0.9 >/dev/null || die "v0.0.9 not found in: $(nvm ls)" +nvm ls | grep v0.3.1 >/dev/null || die "v0.3.1 not found in: $(nvm ls)" +nvm ls | grep v0.3.3 >/dev/null || die "v0.3.3 not found in: $(nvm ls)" +nvm ls | grep v0.3.9 >/dev/null || die "v0.3.9 not found in: $(nvm ls)" +nvm ls | grep v0.12.87 >/dev/null || die "v0.12.87 not found in: $(nvm ls)" +nvm ls | grep iojs-v0.1.2 >/dev/null || die "iojs-v0.1.2 not found in: $(nvm ls)" diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should filter out \".nvm\"" "b/test/fast/Listing versions/Running \"nvm ls\" should filter out \".nvm\"" index 2946ad8..dedb541 100755 --- "a/test/fast/Listing versions/Running \"nvm ls\" should filter out \".nvm\"" +++ "b/test/fast/Listing versions/Running \"nvm ls\" should filter out \".nvm\"" @@ -1,9 +1,10 @@ #!/bin/sh \. ../../../nvm.sh +\. ../../common.sh -mkdir "${NVM_DIR}/v0.1.3" -mkdir "${NVM_DIR}/v0.2.3" +make_fake_node v0.1.3 +make_fake_node v0.2.3 [ -z `nvm ls | grep '^ *\.'` ] # The result should contain only the appropriate version numbers. diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" "b/test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" index eae526a..bd0c709 100755 --- "a/test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" +++ "b/test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" @@ -1,10 +1,10 @@ #!/bin/sh \. ../../../nvm.sh +\. ../../common.sh -mkdir "${NVM_DIR}/v0.1.3" -mkdir "${NVM_DIR}/v0.2.3" -mkdir -p "${NVM_DIR}/versions/node" +make_fake_node v0.1.3 +make_fake_node v0.2.3 [ -z "$(nvm ls | \grep 'versions')" ] # The result should contain only the appropriate version numbers. diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should include \"system\" when appropriate" "b/test/fast/Listing versions/Running \"nvm ls\" should include \"system\" when appropriate" index 3ab0f2d..9c465c0 100755 --- "a/test/fast/Listing versions/Running \"nvm ls\" should include \"system\" when appropriate" +++ "b/test/fast/Listing versions/Running \"nvm ls\" should include \"system\" when appropriate" @@ -3,13 +3,14 @@ die () { echo "$@" ; exit 1; } \. ../../../nvm.sh +\. ../../common.sh -mkdir -p "${NVM_DIR}/v0.0.1" -mkdir -p "${NVM_DIR}/v0.0.3" -mkdir -p "${NVM_DIR}/v0.0.9" -mkdir -p "${NVM_DIR}/v0.3.1" -mkdir -p "${NVM_DIR}/v0.3.3" -mkdir -p "${NVM_DIR}/v0.3.9" +make_fake_node v0.0.1 +make_fake_node v0.0.3 +make_fake_node v0.0.9 +make_fake_node v0.3.1 +make_fake_node v0.3.3 +make_fake_node v0.3.9 nvm_has_system_node() { return 0; } nvm ls | grep system 2>&1 > /dev/null diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" "b/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" index 864494a..a2a31e2 100755 --- "a/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" +++ "b/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" @@ -3,9 +3,10 @@ die () { echo "$@" ; exit 1; } \. ../../../nvm.sh +\. ../../common.sh -mkdir -p "${NVM_DIR}/versions/node/v0.12.1" -mkdir "${NVM_DIR}/v0.1.3" +make_fake_node v0.12.1 +make_fake_node v0.1.3 nvm ls 0.12 | grep v0.12.1 || die '"nvm ls" did not list a version in the versions/ directory' nvm ls 0.1 | grep v0.1.3 || die '"nvm ls" did not list a version not in the versions/ directory' diff --git "a/test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" "b/test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" index 2884531..cb54278 100755 --- "a/test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" +++ "b/test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" @@ -1,8 +1,9 @@ #!/bin/sh \. ../../../nvm.sh +\. ../../common.sh -mkdir "${NVM_DIR}/v0.1.2" +make_fake_node v0.1.2 nvm ls v0.1 | grep v0.1.2 && nvm ls v0.1.2 | grep v0.1.2 && diff --git a/test/fast/Listing versions/Using a nonstandard IFS should not break b/test/fast/Listing versions/Using a nonstandard IFS should not break index c707dbc..27cf2de 100755 --- a/test/fast/Listing versions/Using a nonstandard IFS should not break +++ b/test/fast/Listing versions/Using a nonstandard IFS should not break @@ -1,17 +1,18 @@ #!/bin/sh \. ../../../nvm.sh +\. ../../common.sh -mkdir "${NVM_DIR}/v0.0.1" -mkdir "${NVM_DIR}/v0.0.3" -mkdir "${NVM_DIR}/v0.0.9" -mkdir "${NVM_DIR}/v0.3.1" -mkdir "${NVM_DIR}/v0.3.3" -mkdir "${NVM_DIR}/v0.3.9" -mkdir -p "${NVM_DIR}/versions/node/v0.12.87" -mkdir -p "${NVM_DIR}/versions/node/v0.12.9" -mkdir -p "${NVM_DIR}/versions/io.js/v0.1.2" -mkdir -p "${NVM_DIR}/versions/io.js/v0.10.2" +make_fake_node v0.0.1 +make_fake_node v0.0.3 +make_fake_node v0.0.9 +make_fake_node v0.3.1 +make_fake_node v0.3.3 +make_fake_node v0.3.9 +make_fake_node v0.12.87 +make_fake_node v0.12.9 +make_fake_iojs v0.1.2 +make_fake_iojs v0.10.2 set -e diff --git a/test/fast/Listing versions/teardown b/test/fast/Listing versions/teardown index 7c965ac..8ae7d96 100755 --- a/test/fast/Listing versions/teardown +++ b/test/fast/Listing versions/teardown @@ -5,6 +5,7 @@ rmdir ../../../v0.0.9 >/dev/null 2>&1 rmdir ../../../v0.0.20 >/dev/null 2>&1 rmdir ../../../v0.1.2 >/dev/null 2>&1 rmdir ../../../v0.1.3 >/dev/null 2>&1 +rmdir ../../../v0.1.4 >/dev/null 2>&1 rmdir ../../../v0.2.3 >/dev/null 2>&1 rmdir ../../../v0.3.1 >/dev/null 2>&1 rmdir ../../../v0.3.3 >/dev/null 2>&1 diff --git "a/test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" "b/test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" index 36e1127..41016da 100755 --- "a/test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" +++ "b/test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" @@ -8,8 +8,9 @@ cleanup () { } \. ../../nvm.sh +\. ../common.sh -mkdir "${NVM_DIR}/v0.10.4" +make_fake_node v0.10.4 nvm deactivate >/dev/null 2>&1 diff --git "a/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" "b/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" index 71f208c..fc1a086 100755 --- "a/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" +++ "b/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" @@ -4,11 +4,12 @@ set -ex export NVM_SYMLINK_CURRENT=true \. ../../nvm.sh +\. ../common.sh rm -rf "${NVM_DIR}/v0.10.29" -mkdir "${NVM_DIR}/v0.10.29" +make_fake_node v0.10.29 nvm use --delete-prefix 0.10.29 -rmdir "${NVM_DIR}/v0.10.29" +rm -rf "${NVM_DIR}/v0.10.29" if [ ! -L "${NVM_DIR}/current" ];then echo "Expected 'current' symlink to be created!" @@ -23,9 +24,9 @@ if [ "$(basename "${oldLink}")" != 'v0.10.29' ];then fi rm -rf "${NVM_DIR}/v0.11.13" -mkdir "${NVM_DIR}/v0.11.13" +make_fake_node v0.11.13 nvm use --delete-prefix 0.11.13 -rmdir "${NVM_DIR}/v0.11.13" +rm -rf "${NVM_DIR}/v0.11.13" newLink="$(readlink "${NVM_DIR}/current")" diff --git "a/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" "b/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" index be6284d..1450659 100755 --- "a/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" +++ "b/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" @@ -3,6 +3,7 @@ set -ex \. ../../nvm.sh +\. ../common.sh TEST_NODE_VERSION="v0.10.29" @@ -35,9 +36,9 @@ cleanup() { } runNvmUse() { - mkdir "${NVM_DIR}/${TEST_NODE_VERSION}" + make_fake_node "$TEST_NODE_VERSION" nvm use --delete-prefix "${TEST_NODE_VERSION}" > /dev/null 2>&1 - rmdir "${NVM_DIR}/${TEST_NODE_VERSION}" + rm -rf "${NVM_DIR}/${TEST_NODE_VERSION}" } isCurrentSymlinkPresent() { diff --git a/test/fast/Unit tests/nvm_ensure_version_installed b/test/fast/Unit tests/nvm_ensure_version_installed index e819657..e239e0e 100755 --- a/test/fast/Unit tests/nvm_ensure_version_installed +++ b/test/fast/Unit tests/nvm_ensure_version_installed @@ -7,8 +7,9 @@ cleanup () { } \. ../../../nvm.sh +\. ../../common.sh -mkdir -p "$(nvm_version_path v0.1.2)" +make_fake_node v0.1.2 OUTPUT="$(nvm_ensure_version_installed foo 2>&1)" EXIT_CODE=$? diff --git a/test/fast/Unit tests/nvm_has_system_iojs b/test/fast/Unit tests/nvm_has_system_iojs index 5d3240b..0d4eadb 100755 --- a/test/fast/Unit tests/nvm_has_system_iojs +++ b/test/fast/Unit tests/nvm_has_system_iojs @@ -1,17 +1,14 @@ #!/bin/sh cleanup () { - rm "${NVM_DIR}/versions/io.js/v0.1.2/node" - rm "${NVM_DIR}/versions/io.js/v0.1.2/iojs" - rmdir "${NVM_DIR}/versions/io.js/v0.1.2" + rm -rf "${NVM_DIR}/versions/io.js/v0.1.2" } die () { echo "$@" ; exit 1; } \. ../../../nvm.sh +\. ../../common.sh -mkdir "${NVM_DIR}/versions/io.js/v0.1.2" -touch "${NVM_DIR}/versions/io.js/v0.1.2/node" -touch "${NVM_DIR}/versions/io.js/v0.1.2/iojs" +make_fake_iojs v0.1.2 nvm use iojs-v0.1.2 diff --git a/test/fast/Unit tests/nvm_has_system_node b/test/fast/Unit tests/nvm_has_system_node index 86f6bbc..9a71979 100755 --- a/test/fast/Unit tests/nvm_has_system_node +++ b/test/fast/Unit tests/nvm_has_system_node @@ -1,14 +1,14 @@ #!/bin/sh \. ../../../nvm.sh +\. ../../common.sh cleanup () { - rm -rf "${NVM_DIR}/v0.1.2/node" + rm -rf "${NVM_DIR}/v0.1.2" } die () { echo "$@" ; exit 1; } -mkdir "${NVM_DIR}/v0.1.2" -touch "${NVM_DIR}/v0.1.2/node" +make_fake_node v0.1.2 nvm use 0.1.2 diff --git a/test/fast/Unit tests/nvm_print_implicit_alias success b/test/fast/Unit tests/nvm_print_implicit_alias success index fe99b58..ded8174 100755 --- a/test/fast/Unit tests/nvm_print_implicit_alias success +++ b/test/fast/Unit tests/nvm_print_implicit_alias success @@ -14,13 +14,14 @@ cleanup() { } \. ../../../nvm.sh +\. ../../common.sh -mkdir "${NVM_DIR}/v0.2.3" -mkdir "${NVM_DIR}/v0.3.4" -mkdir "${NVM_DIR}/v0.4.6" -mkdir "${NVM_DIR}/v0.5.7" -mkdir "${NVM_DIR}/v0.7.7" -mkdir -p "${NVM_DIR}/versions/io.js/v0.98.0" +make_fake_node v0.2.3 +make_fake_node v0.3.4 +make_fake_node v0.4.6 +make_fake_node v0.5.7 +make_fake_node v0.7.7 +make_fake_iojs v0.98.0 LATEST_STABLE="$(nvm_print_implicit_alias local stable)" [ "_$LATEST_STABLE" = "_0.4" ] || die "local stable is not latest even minor: expected 0.4, got $LATEST_STABLE" @@ -35,8 +36,9 @@ LATEST_IOJS="$(nvm_print_implicit_alias local iojs)" [ "_$LATEST_IOJS" = "_iojs-v0.98" ] || die "local iojs is not latest iojs: expected iojs-v0.98, got $LATEST_IOJS" ## node post v1.0/io.js merger ## -mkdir -p "${NVM_DIR}/versions/node/v1.0.0" -mkdir -p "${NVM_DIR}/versions/node/v1.1.0" +make_fake_node v1.0.0 +make_fake_node v1.1.0 + LATEST_STABLE="$(nvm_print_implicit_alias local stable)" [ "_$LATEST_STABLE" = "_1.1" ] || die "local stable when post-v1.0 exists is not latest: expected 1.1, got $LATEST_STABLE" From 0cdc1841688eedc28e20489caccd43d0ff03c7eb Mon Sep 17 00:00:00 2001 From: Joshua Li Date: Thu, 31 May 2018 15:26:30 -0700 Subject: [PATCH 1142/1426] [Fix] Improve `nvm_is_version_installed` to check for a node executable instead of root dir --- nvm.sh | 2 +- test/fast/Aliases/setup | 9 ++++++--- ...vate\" should unset the nvm environment variables." | 9 +++++---- ...install\" should remove the appropriate directory." | 10 +++++----- ...all\" with incorrect file permissions fails nicely" | 10 ++++------ test/installation_node/install hook | 6 ++++++ 6 files changed, 27 insertions(+), 19 deletions(-) diff --git a/nvm.sh b/nvm.sh index d854605..b4da6b3 100644 --- a/nvm.sh +++ b/nvm.sh @@ -130,7 +130,7 @@ nvm_has_system_iojs() { } nvm_is_version_installed() { - [ -n "${1-}" ] && [ -d "$(nvm_version_path "${1-}" 2> /dev/null)" ] + [ -n "${1-}" ] && [ -x "$(nvm_version_path "$1" 2> /dev/null)"/bin/node ] } nvm_print_npm_version() { diff --git a/test/fast/Aliases/setup b/test/fast/Aliases/setup index a28a5c2..7055a4d 100755 --- a/test/fast/Aliases/setup +++ b/test/fast/Aliases/setup @@ -1,11 +1,14 @@ #!/bin/sh +\. ../../../nvm.sh +\. ../../common.sh + for i in $(seq 1 10) do echo 0.0.$i > ../../../alias/test-stable-$i - mkdir -p ../../../v0.0.$i + make_fake_node v0.0.$i echo 0.1.$i > ../../../alias/test-unstable-$i - mkdir -p ../../../v0.1.$i + make_fake_node v0.1.$i echo 0.2.$i > ../../../alias/test-iojs-$i - mkdir -p ../../../versions/io.js/v0.2.$i + make_fake_iojs v0.2.$i done diff --git "a/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." "b/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." index 568f000..5cb5594 100755 --- "a/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." +++ "b/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." @@ -2,13 +2,14 @@ set -ex -mkdir -p ../../v0.2.3 - die () { echo "$@" ; exit 1; } -[ `expr $PATH : ".*v0.2.3/.*/bin.*"` = 0 ] || echo "WARNING: Unexpectedly found v0.2.3 already active" >&2 - \. ../../nvm.sh +\. ../common.sh + +make_fake_node v0.2.3 + +[ `expr $PATH : ".*v0.2.3/.*/bin.*"` = 0 ] || echo "WARNING: Unexpectedly found v0.2.3 already active" >&2 nvm use --delete-prefix v0.2.3 || die "Failed to activate v0.2.3" [ `expr "$PATH" : ".*v0.2.3/.*/bin.*"` != 0 ] || die "PATH not set up properly" diff --git "a/test/fast/Running \"nvm uninstall\" should remove the appropriate directory." "b/test/fast/Running \"nvm uninstall\" should remove the appropriate directory." index 5ef1827..9d5fa1b 100755 --- "a/test/fast/Running \"nvm uninstall\" should remove the appropriate directory." +++ "b/test/fast/Running \"nvm uninstall\" should remove the appropriate directory." @@ -2,11 +2,11 @@ set -ex -cd ../.. -mkdir v0.0.1 -mkdir src/node-v0.0.1 +\. ../../nvm.sh +\. ../common.sh + +make_fake_node v0.0.1 -. ./nvm.sh nvm uninstall v0.0.1 -[ ! -d 'v0.0.1' ] && [ ! -d 'src/node-v0.0.1/files' ] +[ ! -d 'v0.0.1' ] diff --git "a/test/fast/Running \"nvm uninstall\" with incorrect file permissions fails nicely" "b/test/fast/Running \"nvm uninstall\" with incorrect file permissions fails nicely" index 5fd2638..23f6f54 100755 --- "a/test/fast/Running \"nvm uninstall\" with incorrect file permissions fails nicely" +++ "b/test/fast/Running \"nvm uninstall\" with incorrect file permissions fails nicely" @@ -2,13 +2,11 @@ set -ex -cd ../.. -mkdir v0.0.1 -mkdir src/node-v0.0.1 +\. ../../nvm.sh +\. ../common.sh -sudo touch v0.0.1/sudo - -. ./nvm.sh +make_fake_node v0.0.1 +sudo touch ""$(nvm_version_path v0.0.1)"/sudo" RETURN_MESSAGE="$(nvm uninstall v0.0.1 2>&1 || echo)" CHECK_FOR="Cannot uninstall, incorrect permissions on installation folder" diff --git a/test/installation_node/install hook b/test/installation_node/install hook index 896037b..4290bb1 100755 --- a/test/installation_node/install hook +++ b/test/installation_node/install hook @@ -19,6 +19,12 @@ fail() { ! nvm_is_version_installed "${VERSION}" || nvm uninstall "${VERSION}" || die 'uninstall failed' +# an existing but empty VERSION_PATH directory should not be enough to satisfy nvm_is_version_installed +rm -rf "${VERSION_PATH}" +mkdir -p "${VERSION_PATH}" +nvm_is_version_installed "${VERSION}" && die 'nvm_is_version_installed check not strict enough' +rmdir "${VERSION_PATH}" + OUTPUT="$(NVM_INSTALL_THIRD_PARTY_HOOK=succeed nvm install "${VERSION}")" USE_OUTPUT="$(nvm use "${VERSION}")" EXPECTED_OUTPUT="${VERSION} node std binary ${VERSION_PATH} From 90cfb5d7713315f6684c5118977098e1d24ff705 Mon Sep 17 00:00:00 2001 From: Xandor Schiefer Date: Fri, 8 Jun 2018 15:23:02 +0200 Subject: [PATCH 1143/1426] [Fix] `use`: Prepend instead of changing if shadowed by system dirs (fixes #1652) --- nvm.sh | 11 +++++++++-- test/fast/Unit tests/nvm_change_path | 14 ++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index b4da6b3..d710274 100644 --- a/nvm.sh +++ b/nvm.sh @@ -638,12 +638,19 @@ nvm_change_path() { elif ! nvm_echo "${1-}" | nvm_grep -q "${NVM_DIR}/[^/]*${2-}" \ && ! nvm_echo "${1-}" | nvm_grep -q "${NVM_DIR}/versions/[^/]*/[^/]*${2-}"; then nvm_echo "${3-}${2-}:${1-}" + # if the initial path contains BOTH an nvm path (checked for above) and + # that nvm path is preceded by a system binary path, just prepend the + # supplementary path instead of replacing it. + # https://github.com/creationix/nvm/issues/1652#issuecomment-342571223 + elif nvm_echo "${1-}" | nvm_grep -Eq "(^|:)(/usr(/local)?)?${2-}:.*${NVM_DIR}/[^/]*${2-}" \ + || nvm_echo "${1-}" | nvm_grep -Eq "(^|:)(/usr(/local)?)?${2-}:.*${NVM_DIR}/versions/[^/]*/[^/]*${2-}"; then + nvm_echo "${3-}${2-}:${1-}" # use sed to replace the existing nvm path with the supplementary path. This # preserves the order of the path. else nvm_echo "${1-}" | command sed \ - -e "s#${NVM_DIR}/[^/]*${2-}[^:]*#${3-}${2-}#g" \ - -e "s#${NVM_DIR}/versions/[^/]*/[^/]*${2-}[^:]*#${3-}${2-}#g" + -e "s#${NVM_DIR}/[^/]*${2-}[^:]*#${3-}${2-}#" \ + -e "s#${NVM_DIR}/versions/[^/]*/[^/]*${2-}[^:]*#${3-}${2-}#" fi } diff --git a/test/fast/Unit tests/nvm_change_path b/test/fast/Unit tests/nvm_change_path index 621729f..8c0f937 100755 --- a/test/fast/Unit tests/nvm_change_path +++ b/test/fast/Unit tests/nvm_change_path @@ -41,3 +41,17 @@ NEW_PATH=`nvm_change_path "$EMPTY_PATH" "/bin" "$NVM_DIR/versions/node/v7.1.0"` NEW_PATH=`nvm_change_path "$EMPTY_PATH" "/bin" "$NVM_DIR/v0.1.2"` [ "$NEW_PATH" = "$NVM_DIR/v0.1.2/bin" ] || die "Not correctly prepended: $NEW_PATH " + + +# https://github.com/creationix/nvm/issues/1652#issuecomment-342571223 +MAC_OS_NESTED_SESSION_PATH=/usr/bin:/usr/local/bin:$NVM_DIR/versions/node/v4.5.0/bin + +# New version dir +NEW_PATH=`nvm_change_path "$MAC_OS_NESTED_SESSION_PATH" "/bin" "$NVM_DIR/versions/node/v7.1.0"` + +[ "$NEW_PATH" = "$NVM_DIR/versions/node/v7.1.0/bin:/usr/bin:/usr/local/bin:$NVM_DIR/versions/node/v4.5.0/bin" ] || die "Not correctly changed: $NEW_PATH " + +# Old version dir +NEW_PATH=`nvm_change_path "$MAC_OS_NESTED_SESSION_PATH" "/bin" "$NVM_DIR/v0.1.2"` + +[ "$NEW_PATH" = "$NVM_DIR/v0.1.2/bin:/usr/bin:/usr/local/bin:$NVM_DIR/versions/node/v4.5.0/bin" ] || die "Not correctly changed: $NEW_PATH " From 41dc4218b9ab1ad15ac3cacba2710c1804bb2c51 Mon Sep 17 00:00:00 2001 From: JBallin Date: Sun, 17 Jun 2018 21:31:56 -0700 Subject: [PATCH 1144/1426] [Docs] add --no-use option to installation --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 96e0782..38771f0 100644 --- a/README.md +++ b/README.md @@ -59,6 +59,8 @@ export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm ``` +**Note:** You can add `--no-use` to the end of the above script (...`nvm.sh --no-use`) to postpone using `nvm` until you manually [`use`](#usage) it. + You can customize the install source, directory, profile, and version using the `NVM_SOURCE`, `NVM_DIR`, `PROFILE`, and `NODE_VERSION` variables. Eg: `curl ... | NVM_DIR="path/to/nvm"`. Ensure that the `NVM_DIR` does not contain a trailing slash. From e2195b4c357847da2e8e0db71096d34fc10015ce Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 8 Jul 2018 20:47:46 +0800 Subject: [PATCH 1145/1426] [Dockerfile] Use LABEL instead of deprecated MAINTAINER command --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 79cb15b..314285e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,7 +9,7 @@ # Use Ubuntu Trusty Tahr as base image as we're using on Travis CI # I also tested with Ubuntu 16.04, should be good with it! From ubuntu:14.04 -MAINTAINER Peter Dave Hello +LABEL maintainer="Peter Dave Hello " # Prevent dialog during apt install ENV DEBIAN_FRONTEND noninteractive From 265ec905326df95f4cdb86d78747ff8a3c84e321 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 8 Jul 2018 21:00:23 +0800 Subject: [PATCH 1146/1426] [Dockerfile] Add missing name & version LABEL --- Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Dockerfile b/Dockerfile index 314285e..d972cfd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,6 +10,8 @@ # I also tested with Ubuntu 16.04, should be good with it! From ubuntu:14.04 LABEL maintainer="Peter Dave Hello " +LABEL name="nvm-dev-env" +LABEL version="latest" # Prevent dialog during apt install ENV DEBIAN_FRONTEND noninteractive From af8038ffecaf1f21315fa1e588126ec5d205e056 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 8 Jul 2018 21:40:17 +0800 Subject: [PATCH 1147/1426] [Dockerfile] Update ShellCheck version to v0.5.0 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index d972cfd..9695df6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,7 +17,7 @@ LABEL version="latest" ENV DEBIAN_FRONTEND noninteractive # ShellCheck version -ENV SHELLCHECK_VERSION=0.4.7 +ENV SHELLCHECK_VERSION=0.5.0 # Pick a Ubuntu apt mirror site for better speed # ref: https://launchpad.net/ubuntu/+archivemirrors From f121e5ace02638532e8be5bfabf36cc6edb12a74 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 9 Jul 2018 05:31:20 +0800 Subject: [PATCH 1148/1426] [Dockerfile] Add missing quotes for variables --- Dockerfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 9695df6..621ac3f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -93,10 +93,10 @@ USER nvm # nvm COPY . /home/nvm/.nvm/ -RUN sudo chown nvm:nvm -R $HOME/.nvm -RUN echo 'export NVM_DIR="$HOME/.nvm"' >> $HOME/.bashrc -RUN echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> $HOME/.bashrc -RUN echo '[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" # This loads nvm bash_completion' >> $HOME/.bashrc +RUN sudo chown nvm:nvm -R "$HOME/.nvm" +RUN echo 'export NVM_DIR="$HOME/.nvm"' >> "$HOME/.bashrc" +RUN echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> "$HOME/.bashrc" +RUN echo '[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" # This loads nvm bash_completion' >> "$HOME/.bashrc" # nodejs and tools RUN bash -c 'source $HOME/.nvm/nvm.sh && \ From aacb0b9b97ea8ca7ca47c465c5d5ba8e549bf4a2 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 9 Jul 2018 06:07:41 +0800 Subject: [PATCH 1149/1426] [Dockerfile] Fix command `From` to be `FROM` --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 621ac3f..50c11ee 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,7 +8,7 @@ # Use Ubuntu Trusty Tahr as base image as we're using on Travis CI # I also tested with Ubuntu 16.04, should be good with it! -From ubuntu:14.04 +FROM ubuntu:14.04 LABEL maintainer="Peter Dave Hello " LABEL name="nvm-dev-env" LABEL version="latest" From 04b35b544077d3d7833a788f8d806de085eb9cbf Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 9 Jul 2018 06:09:30 +0800 Subject: [PATCH 1150/1426] [Dockerfile] Use arguments JSON notation for ENTRYPOINT --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 50c11ee..49bc3c5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -107,4 +107,4 @@ RUN bash -c 'source $HOME/.nvm/nvm.sh && \ # Set WORKDIR to nvm directory WORKDIR /home/nvm/.nvm -ENTRYPOINT /bin/bash +ENTRYPOINT ["/bin/bash"] From cdde74a55d05b7925bb3822e8f31c05789e56968 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 12 Jul 2018 14:27:20 +0800 Subject: [PATCH 1151/1426] [Dockerfile] install missing eclint package --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 49bc3c5..22e759a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -101,7 +101,7 @@ RUN echo '[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" # Th # nodejs and tools RUN bash -c 'source $HOME/.nvm/nvm.sh && \ nvm install node && \ - npm install -g doctoc urchin && \ + npm install -g doctoc urchin eclint && \ npm install --prefix "$HOME/.nvm/"' # Set WORKDIR to nvm directory From 7ff20855a2b7328ada8049e4570078f7db6d68cc Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 12 Jul 2018 12:14:06 +0800 Subject: [PATCH 1152/1426] [Tests] Integrate dockerfile_lint to test Dockerfile --- .travis.yml | 4 +++- Dockerfile | 2 +- package.json | 4 +++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6c32943..8af8a2c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,12 +19,13 @@ before_install: - curl --version - wget --version install: - - if [ -z "${SHELLCHECK-}" ]; then nvm install node && npm install && npm prune && npm ls urchin doctoc eclint; fi + - if [ -z "${SHELLCHECK-}" ]; then nvm install node && npm install && npm prune && npm ls urchin doctoc eclint dockerfile_lint; fi - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' script: - if [ -n "${MAKE_RELEASE-}" ]; then export GIT_EDITOR="sed -i '1 s/^/99.99.99 make release test/'" && git fetch --unshallow --tags && echo proceed | make TAG=99.99.99 release ; fi - if [ -n "${DOCTOCCHECK-}" ]; then cp README.md README.md.orig && npm run doctoc && diff -q README.md README.md.orig ; fi - if [ -n "${ECLINT-}" ]; then npm run eclint ; fi + - if [ -n "${DOCKERFILE_LINT-}" ]; then npm run dockerfile_lint ; fi - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash nvm.sh && shellcheck -s sh nvm.sh && shellcheck -s dash nvm.sh && shellcheck -s ksh nvm.sh ; fi - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash install.sh bash_completion nvm-exec ; fi - if [ -n "${SHELL-}" ] && [ -n "${TEST_SUITE}" ]; then if [ "${TEST_SUITE}" = 'installation_iojs' ]; then travis_retry make TEST_SUITE=$TEST_SUITE URCHIN="$(npm bin)/urchin" test-$SHELL ; else make TEST_SUITE=$TEST_SUITE URCHIN="$(npm bin)/urchin" test-$SHELL; fi; fi @@ -42,6 +43,7 @@ env: - DOCTOCCHECK=true - SHELLCHECK=true - ECLINT=true + - DOCKERFILE_LINT=true - SHELL=bash TEST_SUITE=install_script - SHELL=sh TEST_SUITE=fast - SHELL=dash TEST_SUITE=fast diff --git a/Dockerfile b/Dockerfile index 22e759a..22cc068 100644 --- a/Dockerfile +++ b/Dockerfile @@ -101,7 +101,7 @@ RUN echo '[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" # Th # nodejs and tools RUN bash -c 'source $HOME/.nvm/nvm.sh && \ nvm install node && \ - npm install -g doctoc urchin eclint && \ + npm install -g doctoc urchin eclint dockerfile_lint && \ npm install --prefix "$HOME/.nvm/"' # Set WORKDIR to nvm directory diff --git a/package.json b/package.json index 5a4fd87..310b802 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,8 @@ "test/installation/iojs": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=installation_iojs test-$shell", "test/sourcing": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=sourcing test-$shell", "doctoc": "doctoc --title='## Table of Contents' --github README.md", - "eclint": "eclint check $(git ls-tree --name-only HEAD | xargs)" + "eclint": "eclint check $(git ls-tree --name-only HEAD | xargs)", + "dockerfile_lint": "dockerfile_lint" }, "repository": { "type": "git", @@ -35,6 +36,7 @@ }, "homepage": "https://github.com/creationix/nvm", "devDependencies": { + "dockerfile_lint": "^0.3.2", "eclint": "^2.6.0", "replace": "^0.3.0", "semver": "^5.0.1", From 5f9ccaada08940eabe1c95ecdc44d781fce987b0 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 12 Jul 2018 12:22:41 +0800 Subject: [PATCH 1153/1426] [Dockerfile] Set the SHELL to bash with pipefail option --- Dockerfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Dockerfile b/Dockerfile index 22cc068..d2ac044 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,6 +13,9 @@ LABEL maintainer="Peter Dave Hello " LABEL name="nvm-dev-env" LABEL version="latest" +# Set the SHELL to bash with pipefail option +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + # Prevent dialog during apt install ENV DEBIAN_FRONTEND noninteractive From 4bd99bcfa21a2c83c1958445ea7347439e894309 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 12 Jul 2018 12:29:46 +0800 Subject: [PATCH 1154/1426] [Dockerfile] Refactor to prevent using `sudo` during build `sudo` may lead to unpredictable behavior in some cases, and we don't really need to use `sudo` to reach what we need. --- Dockerfile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index d2ac044..d4b0f1b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -88,6 +88,10 @@ RUN wget --version # Add user "nvm" as non-root user RUN useradd -ms /bin/bash nvm +# Copy and set permission for nvm directory +COPY . /home/nvm/.nvm/ +RUN chown nvm:nvm -R "home/nvm/.nvm" + # Set sudoer for "nvm" RUN echo 'nvm ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers @@ -95,8 +99,6 @@ RUN echo 'nvm ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers USER nvm # nvm -COPY . /home/nvm/.nvm/ -RUN sudo chown nvm:nvm -R "$HOME/.nvm" RUN echo 'export NVM_DIR="$HOME/.nvm"' >> "$HOME/.bashrc" RUN echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> "$HOME/.bashrc" RUN echo '[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" # This loads nvm bash_completion' >> "$HOME/.bashrc" From 355c4c7915b22de2ca6ddfcaea7242e483ad3ec7 Mon Sep 17 00:00:00 2001 From: Daniel Li Date: Sun, 15 Jul 2018 19:08:15 +0100 Subject: [PATCH 1155/1426] [Docs] Add section on automatic `nvm use` in Bash --- README.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/README.md b/README.md index baf3ce5..373a951 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,8 @@ - [Listing versions](#listing-versions) - [.nvmrc](#nvmrc) - [Deeper Shell Integration](#deeper-shell-integration) + - [bash](#bash) + - [Automatically call `nvm use`](#automatically-call-nvm-use) - [zsh](#zsh) - [Calling `nvm use` automatically in a directory with a `.nvmrc` file](#calling-nvm-use-automatically-in-a-directory-with-a-nvmrc-file) - [License](#license) @@ -377,6 +379,38 @@ You can use [`avn`](https://github.com/wbyoung/avn) to deeply integrate into you If you prefer a lighter-weight solution, the recipes below have been contributed by `nvm` users. They are **not** supported by the `nvm` development team. We are, however, accepting pull requests for more examples. +#### bash + +##### Automatically call `nvm use` + +Put the following at the end of your `$HOME/.bashrc`: + +```bash +cdnvm(){ + cd $@ + if [[ -f .nvmrc && -s .nvmrc && -r .nvmrc ]]; then + <.nvmrc nvm install; + elif [[ $(nvm current) != $(nvm version default) ]]; then + nvm use default; + fi +} +alias cd='cdnvm' +``` + +This alias would automatically detect a `.nvmrc` file in the directory you're `cd`ing into, and switch to that version. And when you `cd` back, it will automatically switch back to the `default` version. + +If you prefer one-liners: + +``` +alias cd='cdnvm(){ cd $@; if [[ -f .nvmrc && -s .nvmrc && -r .nvmrc ]]; then <.nvmrc nvm install; elif [[ $(nvm current) != $(nvm version default) ]]; then nvm use default; fi; };cdnvm' +``` + +You may also run this directly on your terminal: + +```bash +$ echo 'alias cd='\''cdnvm(){ cd $@; if [[ -f .nvmrc && -s .nvmrc && -r .nvmrc ]]; then <.nvmrc nvm install; elif [[ $(nvm current) != $(nvm version default) ]]; then nvm use default; fi; };cdnvm'\''' >> ~/.bashrc +``` + #### zsh ##### Calling `nvm use` automatically in a directory with a `.nvmrc` file From e06f73577640dfd1a146464bdb55d0288fdf70d8 Mon Sep 17 00:00:00 2001 From: Daniel Li Date: Thu, 26 Jul 2018 16:13:07 +0100 Subject: [PATCH 1156/1426] Improve Bash alias This will take into account nested directories inside your main project directory --- README.md | 67 +++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 48 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 373a951..0a6b55a 100644 --- a/README.md +++ b/README.md @@ -386,30 +386,59 @@ If you prefer a lighter-weight solution, the recipes below have been contributed Put the following at the end of your `$HOME/.bashrc`: ```bash +find-up () { + path=$(pwd) + while [[ "$path" != "" && ! -e "$path/$1" ]]; do + path=${path%/*} + done + echo "$path" +} + cdnvm(){ - cd $@ - if [[ -f .nvmrc && -s .nvmrc && -r .nvmrc ]]; then - <.nvmrc nvm install; - elif [[ $(nvm current) != $(nvm version default) ]]; then - nvm use default; - fi + cd $@; + nvm_path=$(find-up .nvmrc | tr -d '[:space:]') + + # If there are no .nvmrc file, use the default nvm version + if [[ ! $nvm_path = *[^[:space:]]* ]]; then + + declare default_version; + default_version=$(nvm version default); + + # If there is no default version, set it to `node` + # This will use the latest version on your machine + if [[ $default_version == "N/A" ]]; then + nvm alias default node; + default_version=$(nvm version default); + fi + + # If the current version is not the default version, set it to use the default version + if [[ $(nvm current) != "$default_version" ]]; then + nvm use default; + fi + + elif [[ -s $nvm_path/.nvmrc && -r $nvm_path/.nvmrc ]]; then + declare nvm_version + nvm_version=$(<"$nvm_path"/.nvmrc) + + # Add the `v` suffix if it does not exists in the .nvmrc file + if [[ $nvm_version != v* ]]; then + nvm_version="v""$nvm_version" + fi + + # If it is not already installed, install it + if [[ $(nvm ls "$nvm_version" | tr -d '[:space:]') == "N/A" ]]; then + nvm install "$nvm_version"; + fi + + if [[ $(nvm current) != "$nvm_version" ]]; then + nvm use "$nvm_version"; + fi + fi } alias cd='cdnvm' ``` -This alias would automatically detect a `.nvmrc` file in the directory you're `cd`ing into, and switch to that version. And when you `cd` back, it will automatically switch back to the `default` version. - -If you prefer one-liners: - -``` -alias cd='cdnvm(){ cd $@; if [[ -f .nvmrc && -s .nvmrc && -r .nvmrc ]]; then <.nvmrc nvm install; elif [[ $(nvm current) != $(nvm version default) ]]; then nvm use default; fi; };cdnvm' -``` - -You may also run this directly on your terminal: - -```bash -$ echo 'alias cd='\''cdnvm(){ cd $@; if [[ -f .nvmrc && -s .nvmrc && -r .nvmrc ]]; then <.nvmrc nvm install; elif [[ $(nvm current) != $(nvm version default) ]]; then nvm use default; fi; };cdnvm'\''' >> ~/.bashrc -``` +This alias would search 'up' from your current directory in order to detect a `.nvmrc` file. If it finds it, it will switch to that version; if not, it will use the default version. #### zsh From e7a37f336df425dc178d05fe6874d2171d10343d Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 15 Aug 2018 15:01:47 -0700 Subject: [PATCH 1157/1426] [Tests] fix failing tests on master due to npm registry SSL changes --- test/installation_node/install latest npm | 3 ++- .../install while reinstalling packages | 22 +++++++++---------- test/installation_node/teardown_dir | 4 ++++ 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/test/installation_node/install latest npm b/test/installation_node/install latest npm index bb7e57f..8bb7a62 100755 --- a/test/installation_node/install latest npm +++ b/test/installation_node/install latest npm @@ -26,6 +26,8 @@ nvm install-latest-npm || die 'nvm install-latest-npm failed: 3' NPM_VERSION="$(npm --version)" [ "${NPM_VERSION}" = '4.6.1' ] || die "io.js v1.x updates to ${NPM_VERSION}; expected v4.6.1" +export NPM_CONFIG_STRICT_SSL=false # the npm registry tightened up their SSL certs + nvm deactivate >/dev/null 2>&1 || die 'unable to deactivate: 4' nvm install 0.8.27 >/dev/null 2>&1 || die 'install v0.8 failed' nvm install-latest-npm || die 'nvm install-latest-npm failed: 4' @@ -35,7 +37,6 @@ NPM_VERSION="$(npm --version)" ## Commented to work around travis-ci breaking 0,6 installs # nvm deactivate >/dev/null 2>&1 || die 'unable to deactivate: 5' # nvm install 0.6.21 >/dev/null 2>&1 || die 'install v0.6 failed' -# export NPM_CONFIG_STRICT_SSL=false # npm 1 on travis can't handle SSL to npm # nvm install-latest-npm || die 'nvm install-latest-npm failed: 5' # NPM_VERSION="$(npm --version)" # [ "${NPM_VERSION}" = '1.3.26' ] || die "node 0.6.21 updates to ${NPM_VERSION}; expected v1.3.26" diff --git a/test/installation_node/install while reinstalling packages b/test/installation_node/install while reinstalling packages index 0c1046d..5588842 100755 --- a/test/installation_node/install while reinstalling packages +++ b/test/installation_node/install while reinstalling packages @@ -5,29 +5,29 @@ die () { echo "$@" ; exit 1; } \. ../../nvm.sh # Remove the stuff we're clobbering. -[ -e "${NVM_DIR}/v0.9.7" ] && rm -R "${NVM_DIR}/v0.9.7" -[ -e "${NVM_DIR}/v0.9.12" ] && rm -R "${NVM_DIR}/v0.9.12" +[ -e "${NVM_DIR}/versions/node/v9.7.0" ] && rm -R "${NVM_DIR}/versions/node/v9.7.0" +[ -e "${NVM_DIR}/versions/node/v9.10.0" ] && rm -R "${NVM_DIR}/versions/node/v9.10.0" # Install from binary -nvm install 0.9.7 +nvm install 9.7.0 # Check -[ -d "${NVM_DIR}/v0.9.7" ] || die "nvm install 0.9.7 didn't install" +[ -d "${NVM_DIR}/versions/node/v9.7.0" ] || die "nvm install 9.7.0 didn't install" -nvm use 0.9.7 +nvm use 9.7.0 -node --version | grep v0.9.7 > /dev/null || die "nvm use 0.9.7 failed" +node --version | grep v9.7.0 > /dev/null || die "nvm use 9.7.0 failed" npm install -g object-is@0.0.0 || die "npm install -g object-is failed" npm list --global | grep object-is > /dev/null || die "object-is isn't installed" -nvm ls 0.9 | grep v0.9.7 > /dev/null || die "nvm ls 0.9 didn't show v0.9.7" +nvm ls 9 | grep v9.7.0 > /dev/null || die "nvm ls 9 didn't show v9.7.0" -nvm install 0.9.12 --reinstall-packages-from=0.9 || die "nvm install 0.9.12 --reinstall-packages-from=0.9 failed" +nvm install 9.10.0 --reinstall-packages-from=9 || die "nvm install 9.10.0 --reinstall-packages-from=9 failed" -[ -d "${NVM_DIR}/v0.9.12" ] || die "nvm install 0.9.12 didn't install" +[ -d "${NVM_DIR}/versions/node/v9.10.0" ] || die "nvm install 9.10.0 didn't install" -nvm use 0.9 -node --version | grep v0.9.12 > /dev/null || die "nvm ls 0.9 didn't use v0.9.12" +nvm use 9 +node --version | grep v9.10.0 > /dev/null || die "nvm ls 9 didn't use v9.10.0" npm list --global | grep object-is > /dev/null || die "object-is isn't installed" diff --git a/test/installation_node/teardown_dir b/test/installation_node/teardown_dir index 2aad120..adb23c4 100755 --- a/test/installation_node/teardown_dir +++ b/test/installation_node/teardown_dir @@ -4,6 +4,10 @@ nvm deactivate nvm uninstall v0.10.7 nvm uninstall v4.2.2 +nvm uninstall v0.9.7 +nvm uninstall v9.7.0 +nvm uninstall v0.9.12 +nvm uninstall v9.10.0 if [ -f ".nvmrc" ]; then rm .nvmrc From f218a8545406cb45b48f1d1bdc2552b3a4749ca1 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 9 Sep 2018 14:56:17 -0700 Subject: [PATCH 1158/1426] [Tests] eslint 5.5+ seems to not install on node 0.10 --- test/slow/nvm reinstall-packages/should work as expected | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/slow/nvm reinstall-packages/should work as expected b/test/slow/nvm reinstall-packages/should work as expected index f4edca4..68c0fb1 100755 --- a/test/slow/nvm reinstall-packages/should work as expected +++ b/test/slow/nvm reinstall-packages/should work as expected @@ -10,7 +10,7 @@ nvm exec 0.10.29 npm install -g npm@~1.4.11 && nvm install-latest-npm # this is nvm use 0.10.28 (cd test-npmlink && npm link) -EXPECTED_PACKAGES="autoprefixer bower david eslint grunt-cli grunth-cli http-server jshint marked node-gyp npmlist recursive-blame spawn-sync test-npmlink uglify-js" +EXPECTED_PACKAGES="autoprefixer bower david grunt-cli grunth-cli http-server jshint marked node-gyp npmlist recursive-blame spawn-sync test-npmlink uglify-js" echo "$EXPECTED_PACKAGES yo@1" | sed -e 's/test-npmlink //' | xargs npm install -g --quiet From 8542df4ac503b6ee0dd055a67b07a88031e1804f Mon Sep 17 00:00:00 2001 From: Erik Lilja Date: Tue, 14 Aug 2018 21:45:40 +0200 Subject: [PATCH 1159/1426] [New] add support for `$XDG_CONFIG_HOME` --- README.md | 4 +++- install.sh | 8 +++++++- test/install_script/nvm_install_dir | 5 +++-- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 38771f0..2151f8c 100644 --- a/README.md +++ b/README.md @@ -54,8 +54,10 @@ wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). +**Note:** If the environment variable `$XDG_CONFIG_HOME` is present, it will place the `nvm` files there. + ```sh -export NVM_DIR="$HOME/.nvm" +export NVM_DIR="${XDG_CONFIG_HOME/:-$HOME/.}nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm ``` diff --git a/install.sh b/install.sh index 7bf62df..2115f3f 100755 --- a/install.sh +++ b/install.sh @@ -7,7 +7,13 @@ nvm_has() { } nvm_install_dir() { - command printf %s "${NVM_DIR:-"$HOME/.nvm"}" + if [ ! -z "$NVM_DIR" ]; then + printf %s "${NVM_DIR}" + elif [ ! -z "$XDG_CONFIG_HOME" ]; then + printf %s "${XDG_CONFIG_HOME/nvm}" + else + printf %s "$HOME/.nvm" + fi } nvm_latest_version() { diff --git a/test/install_script/nvm_install_dir b/test/install_script/nvm_install_dir index 1aeea18..78da611 100755 --- a/test/install_script/nvm_install_dir +++ b/test/install_script/nvm_install_dir @@ -16,9 +16,10 @@ install_dir=$(nvm_install_dir) [ "_$install_dir" = "_$NVM_DIR" ] || die "nvm_install_dir should use \$NVM_DIR if it exists. Current output: $install_dir" unset NVM_DIR - # NVM_DIR is not set install_dir=$(nvm_install_dir) -[ "_$install_dir" = "_$HOME/.nvm" ] || die "nvm_install_dir should default to \$HOME/.nvm. Current output: $install_dir" +fallback_dir="" +[ ! -z "$XDG_CONFIG_HOME" ] && fallback_dir="$XDG_CONFIG_HOME/nvm" || fallback_dir="$HOME/.nvm" +[ "_$install_dir" = "_$fallback_dir" ] || die "nvm_install_dir should default to \$XDG_CONFIG_DIR/.nvm. Current output: $install_dir" cleanup From 2d97ce5f7b1cebc22feb054c4d20e4a11f8122dc Mon Sep 17 00:00:00 2001 From: et304383 <2693414+et304383@users.noreply.github.com> Date: Mon, 27 Aug 2018 11:50:48 -0300 Subject: [PATCH 1160/1426] [Docs] add instructions for installing a specific version --- README.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2151f8c..c6b8cfd 100644 --- a/README.md +++ b/README.md @@ -189,7 +189,19 @@ For manual upgrade with `git` (requires git v1.7.10+): To download, compile, and install the latest release of node, do this: ```sh -nvm install node +nvm install node # "node" is an alias for the latest version +``` + +To install a specific version of node: + +```sh +nvm install 6.14.4 # or 10.10.0, 8.9.1, etc +``` + +You can list available versions using ls-remote: + +```sh +nvm ls-remote ``` And then in any new shell just use the installed version: @@ -203,6 +215,7 @@ Or you can just run it: ```sh nvm run node --version ``` + Or, you can run any arbitrary command in a subshell with the desired version of node: ```sh From 0c2efed407e1c10d769df237ff4e5adba01f79c5 Mon Sep 17 00:00:00 2001 From: Nathan Burchill Date: Tue, 18 Sep 2018 16:15:35 -0400 Subject: [PATCH 1161/1426] [New] `bash_completion`: Add support for `ZSH_DISABLE_COMPFIX` flag. When using Oh My Zsh the ZSH_DISABLE_COMPFIX flag allows the zsh completion system to use files it deems to be insecure. --- bash_completion | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/bash_completion b/bash_completion index 7a3a5c0..0c872ee 100644 --- a/bash_completion +++ b/bash_completion @@ -85,7 +85,11 @@ __nvm() { # ZSH, load and run bashcompinit before calling the complete function. if [[ -n ${ZSH_VERSION-} ]]; then autoload -U +X bashcompinit && bashcompinit - autoload -U +X compinit && compinit + autoload -U +X compinit && if [[ ${ZSH_DISABLE_COMPFIX-} = true ]]; then + compinit -u + else + compinit + fi fi complete -o default -F __nvm nvm From caf6208dbd25e9632d7a6291ca94eaccee7a5e75 Mon Sep 17 00:00:00 2001 From: Paul Nickerson Date: Tue, 2 Oct 2018 13:46:26 -0400 Subject: [PATCH 1162/1426] `install.sh`: Print an error and exit the script if $METHOD is set to something unexpected. --- install.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/install.sh b/install.sh index 2115f3f..799dbe2 100755 --- a/install.sh +++ b/install.sh @@ -329,6 +329,9 @@ nvm_do_install() { exit 1 fi install_nvm_as_script + else + echo >&2 "The environment variable \$METHOD is set to \"${METHOD}\", which is not recognized as a valid installation method." + exit 1 fi echo From 217a5bb0de8290a229fdceba4671e3c219b68549 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A1bio=20Antunes?= Date: Sat, 20 Oct 2018 13:07:31 +0100 Subject: [PATCH 1163/1426] [Docs] Added fish nvm --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c6b8cfd..baf3ce5 100644 --- a/README.md +++ b/README.md @@ -110,6 +110,7 @@ If you're running a system without prepackaged binary available, which means you - [fast-nvm-fish](https://github.com/brigand/fast-nvm-fish) only works with version numbers (not aliases) but doesn't significantly slow your shell startup - [plugin-nvm](https://github.com/derekstavis/plugin-nvm) plugin for [Oh My Fish](https://github.com/oh-my-fish/oh-my-fish), which makes nvm and its completions available in fish shell - [fnm](https://github.com/fisherman/fnm) - [fisherman](https://github.com/fisherman/fisherman)-based version manager for fish + - [fish-nvm](https://github.com/FabioAntunes/fish-nvm) - Wrapper around nvm for fish, delays sourcing nvm until it's actually used. **Note:** We still have some problems with FreeBSD, because there is no official pre-built binary for FreeBSD, and building from source may need [patches](https://www.freshports.org/www/node/files/patch-deps_v8_src_base_platform_platform-posix.cc); see the issue ticket: - [[#900] [Bug] nodejs on FreeBSD may need to be patched ](https://github.com/creationix/nvm/issues/900) From 2a294ebd61f509bf6bdf25d086aab7fb935fa05b Mon Sep 17 00:00:00 2001 From: Ole Johan Andersen Date: Wed, 24 Oct 2018 19:49:55 +0200 Subject: [PATCH 1164/1426] [Docs] improve instructions for manual install --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0a6b55a..2ff2c1c 100644 --- a/README.md +++ b/README.md @@ -152,7 +152,7 @@ export NVM_DIR="$HOME/.nvm" ### Manual Install -For a fully manual install, create a folder somewhere in your filesystem with the `nvm.sh` file inside it. I put mine in `~/.nvm` and added the following to the `nvm.sh` file. +For a fully manual install, execute the following lines to first clone the nvm repository into `$HOME/.nvm`, and then load nvm: ```sh export NVM_DIR="$HOME/.nvm" && ( From 423252a99c7bb5942cff6428d88dab6fc3eca384 Mon Sep 17 00:00:00 2001 From: Kayla Altepeter Date: Thu, 18 Oct 2018 22:30:05 -0500 Subject: [PATCH 1165/1426] [docs] update README to fix docker run command flag order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2ff2c1c..69d8a80 100644 --- a/README.md +++ b/README.md @@ -621,7 +621,7 @@ nvm-dev latest 9ca4c57a97d8 7 days ago 6 If you got no error message, now you can easily involve in: ```sh -$ docker run -it nvm-dev -h nvm-dev +$ docker run -h nvm-dev -it nvm-dev nvm@nvm-dev:~/.nvm$ ``` From f3fd5eff4655bf6336de648a3ba51e2cb8dafe80 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 15 Jul 2018 02:26:05 +0800 Subject: [PATCH 1166/1426] [Docs] Improve md file syntax - Lists should be surrounded by blank lines - Use only `1.` for ordered list item prefix - Starting bulleted lists at the beginning of the line - Fenced code blocks should be surrounded by blank lines --- CONTRIBUTING.md | 2 ++ README.md | 35 ++++++++++++++++++++++++++++++++--- 2 files changed, 34 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4834ab4..dc3d18a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -5,10 +5,12 @@ We love pull requests and issues, they're our favorite. However, before submitting, please review the following: For bug reports: + - Please make sure the bug is reproducible, and give us the steps to reproduce it, so that we can dig into the problem. - Please give us as much detail as possible about your environment, so we can more easily confirm the problem. For pull requests: + - Please include tests. Changes with tests will be merged very quickly. - Please manually confirm that your changes work in `bash`, `sh`/`dash`, `ksh`, and `zsh`. Fast tests do run in these shells, but it's nice to manually verify also. - Please maintain consistent whitespace - 2-space indentation, trailing newlines in all files, etc. diff --git a/README.md b/README.md index 69d8a80..b62cc26 100644 --- a/README.md +++ b/README.md @@ -75,11 +75,13 @@ Eg: `curl ... | NVM_DIR="path/to/nvm"`. Ensure that the `NVM_DIR` does not conta ```sh command -v nvm ``` + simply close your current terminal, open a new terminal, and try verifying again. **Note:** Since OS X 10.9, `/usr/bin/git` has been preset by Xcode command line tools, which means we can't properly detect if Git is installed or not. You need to manually install the Xcode command line tools before running the install script, otherwise, it'll fail. (see [#1782](https://github.com/creationix/nvm/issues/1782)) **Note:** On OS X, if you get `nvm: command not found` after running the install script, one of the following might be the reason:- + - your system may not have a [`.bash_profile file`] where the command is set up. Simply create one with `touch ~/.bash_profile` and run the install script again - you might need to restart your terminal instance. Try opening a new tab/window in your terminal and retry. @@ -104,10 +106,12 @@ which should output 'nvm' if the installation was successful. Please note that ` If you're running a system without prepackaged binary available, which means you're going to install nodejs or io.js from its source code, you need to make sure your system has a C++ compiler. For OS X, Xcode will work, for Debian/Ubuntu based GNU/Linux, the `build-essential` and `libssl-dev` packages work. **Note:** `nvm` does not support Windows (see [#284](https://github.com/creationix/nvm/issues/284)). Two alternatives exist, which are neither supported nor developed by us: + - [nvm-windows](https://github.com/coreybutler/nvm-windows) - [nodist](https://github.com/marcelklehr/nodist) **Note:** `nvm` does not support [Fish] either (see [#303](https://github.com/creationix/nvm/issues/303)). Alternatives exist, which are neither supported nor developed by us: + - [bass](https://github.com/edc/bass) allows you to use utilities written for Bash in fish shell - [fast-nvm-fish](https://github.com/brigand/fast-nvm-fish) only works with version numbers (not aliases) but doesn't significantly slow your shell startup - [plugin-nvm](https://github.com/derekstavis/plugin-nvm) plugin for [Oh My Fish](https://github.com/oh-my-fish/oh-my-fish), which makes nvm and its completions available in fish shell @@ -115,13 +119,16 @@ If you're running a system without prepackaged binary available, which means you - [fish-nvm](https://github.com/FabioAntunes/fish-nvm) - Wrapper around nvm for fish, delays sourcing nvm until it's actually used. **Note:** We still have some problems with FreeBSD, because there is no official pre-built binary for FreeBSD, and building from source may need [patches](https://www.freshports.org/www/node/files/patch-deps_v8_src_base_platform_platform-posix.cc); see the issue ticket: - - [[#900] [Bug] nodejs on FreeBSD may need to be patched ](https://github.com/creationix/nvm/issues/900) + + - [[#900] [Bug] nodejs on FreeBSD may need to be patched](https://github.com/creationix/nvm/issues/900) - [nodejs/node#3716](https://github.com/nodejs/node/issues/3716) **Note:** On OS X, if you do not have Xcode installed and you do not wish to download the ~4.3GB file, you can install the `Command Line Tools`. You can check out this blog post on how to just that: + - [How to Install Command Line Tools in OS X Mavericks & Yosemite (Without Xcode)](http://osxdaily.com/2014/02/12/install-command-line-tools-mac-os-x/) **Note:** On OS X, if you have/had a "system" node installed and want to install modules globally, keep in mind that: + - When using nvm you do not need `sudo` to globally install a module with `npm -g`, so instead of doing `sudo npm install -g grunt`, do instead `npm install -g grunt` - If you have an `~/.npmrc` file, make sure it does not contain any `prefix` settings (which is not compatible with nvm) - You can (but should not?) keep your previous "system" node install, but nvm will only be available to your user account (the one used to install nvm). This might cause version mismatches, as other users will be using `/usr/local/lib/node_modules/*` VS your user account using `~/.nvm/versions/node/vX.X.X/lib/node_modules/*` @@ -138,8 +145,8 @@ 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/creationix/nvm.git .nvm` -2. `cd ~/.nvm` and check out the latest version with `git checkout v0.33.11` -3. activate nvm by sourcing it from your shell: `. nvm.sh` +1. `cd ~/.nvm` and check out the latest version with `git checkout v0.33.11` +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: (you may have to add to more than one of the above files) @@ -239,7 +246,9 @@ In place of a version pointer like "0.10" or "5.0" or "4.2.1", you can use the f - `unstable`: this alias points to `node` `v0.11` - the last "unstable" node release, since post-1.0, all node versions are stable. (in SemVer, versions communicate breakage, not stability). ### Long-term support + Node has a [schedule](https://github.com/nodejs/LTS#lts_schedule) for long-term support (LTS) You can reference LTS versions in aliases and `.nvmrc` files with the notation `lts/*` for the latest LTS, and `lts/argon` for LTS releases from the "argon" line, for example. In addition, the following commands support LTS arguments: + - `nvm install --lts` / `nvm install --lts=argon` / `nvm install 'lts/*'` / `nvm install lts/argon` - `nvm uninstall --lts` / `nvm uninstall --lts=argon` / `nvm uninstall 'lts/*'` / `nvm uninstall lts/argon` - `nvm use --lts` / `nvm use --lts=argon` / `nvm use 'lts/*'` / `nvm use lts/argon` @@ -251,6 +260,7 @@ Node has a [schedule](https://github.com/nodejs/LTS#lts_schedule) for long-term Any time your local copy of `nvm` connects to https://nodejs.org, it will re-create the appropriate local aliases for all available LTS lines. These aliases (stored under `$NVM_DIR/alias/lts`), are managed by `nvm`, and you should not modify, remove, or create these files - expect your changes to be undone, and expect meddling with these files to cause bugs that will likely not be supported. ### Migrating global packages while installing + If you want to install a new version of Node.js and migrate npm packages from a previous version: ```sh @@ -279,6 +289,7 @@ stevemao/left-pad ``` ### io.js + If you want to install [io.js](https://github.com/iojs/io.js/): ```sh @@ -294,6 +305,7 @@ nvm install iojs --reinstall-packages-from=iojs The same guidelines mentioned for migrating npm packages in Node.js are applicable to io.js. ### System version of node + If you want to use the system-installed version of node, you can use the special default alias "system": ```sh @@ -302,6 +314,7 @@ nvm run system --version ``` ### Listing versions + If you want to see what versions are installed: ```sh @@ -485,6 +498,7 @@ The above copyright notice and this permission notice shall be included in all c THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ## Running tests + Tests are written in [Urchin]. Install Urchin (and other dependencies) like so: npm install @@ -520,6 +534,7 @@ Put the above sourcing line just below the sourcing line for nvm in your profile nvm: > $ nvm Tab + ``` alias deactivate install ls run unload clear-cache exec list ls-remote unalias use @@ -528,46 +543,57 @@ current help list-remote reinstall-packages nvm alias: > $ nvm alias Tab + ``` default ``` > $ nvm alias my_alias Tab + ``` v0.6.21 v0.8.26 v0.10.28 ``` nvm use: > $ nvm use Tab + ``` my_alias default v0.6.21 v0.8.26 v0.10.28 ``` nvm uninstall: > $ nvm uninstall Tab + ``` my_alias default v0.6.21 v0.8.26 v0.10.28 ``` ## Compatibility Issues + `nvm` will encounter some issues if you have some non-default settings set. (see [#606](/../../issues/606)) The following are known to cause issues: Inside `~/.npmrc`: + ```sh prefix='some/path' ``` + Environment Variables: + ```sh $NPM_CONFIG_PREFIX $PREFIX ``` + Shell settings: + ```sh set -e ``` ## Installing nvm on Alpine Linux + In order to provide the best performance (and other optimisations), nvm will download and install pre-compiled binaries for Node (and npm) when you run `nvm install X`. The Node project compiles, tests and hosts/provides pre-these compiled binaries which are built for mainstream/traditional Linux distributions (such as Debian, Ubuntu, CentOS, RedHat et al). Alpine Linux, unlike mainstream/traditional Linux distributions, is based on [BusyBox](https://www.busybox.net/), a very compact (~5MB) Linux distribution. BusyBox (and thus Alpine Linux) uses a different C/C++ stack to most mainstream/traditional Linux distributions - [musl](https://www.musl-libc.org/). This makes binary programs built for such mainstream/traditional incompatible with Alpine Linux, thus we cannot simply `nvm install X` on Alpine Linux and expect the downloaded binary to run correctly - you'll likely see "...does not exist" errors if you try that. @@ -590,11 +616,13 @@ As a potential alternative, @mhart (a Node contributor) has some [Docker images ### Manual Uninstall To remove nvm manually, execute the following: + ```sh $ rm -rf "$NVM_DIR" ``` Edit ~/.bashrc (or other shell resource config) and remove the lines below: + ```sh export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm @@ -629,6 +657,7 @@ nvm@nvm-dev:~/.nvm$ Please note that it'll take about 8 minutes to build the image and the image size would be about 650MB, so it's not suitable for production usage. For more information and documentation about docker, please refer to its official website: + - https://www.docker.com/ - https://docs.docker.com/ From 17586b971a750dcc8019aa59169bbfa360374714 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20Gro=C3=9F?= Date: Thu, 8 Nov 2018 00:55:52 +0100 Subject: [PATCH 1167/1426] [Fix] Allow zsh users to have the nomatch option set Closes #1937. --- nvm.sh | 109 ++++++++------------------------------------------------- 1 file changed, 15 insertions(+), 94 deletions(-) diff --git a/nvm.sh b/nvm.sh index d710274..1b23698 100644 --- a/nvm.sh +++ b/nvm.sh @@ -12,6 +12,10 @@ NVM_SCRIPT_SOURCE="$_" +nvm_is_zsh() { + [ -n "${ZSH_VERSION-}" ] +} + nvm_echo() { command printf %s\\n "$*" 2>/dev/null } @@ -243,8 +247,7 @@ nvm_install_latest_npm() { if [ -z "${NVM_CD_FLAGS-}" ]; then export NVM_CD_FLAGS='' fi -if nvm_has "unsetopt"; then - unsetopt nomatch 2>/dev/null +if nvm_is_zsh; then NVM_CD_FLAGS="-q" fi @@ -1017,12 +1020,7 @@ nvm_ls() { ;; esac - local ZSH_HAS_SHWORDSPLIT_UNSET - ZSH_HAS_SHWORDSPLIT_UNSET=1 - if nvm_has "setopt"; then - ZSH_HAS_SHWORDSPLIT_UNSET="$(set +e ; setopt | nvm_grep -q shwordsplit ; nvm_echo $?)" - setopt shwordsplit - fi + nvm_is_zsh && setopt local_options shwordsplit local NVM_DIRS_TO_SEARCH1 NVM_DIRS_TO_SEARCH1='' @@ -1088,10 +1086,6 @@ nvm_ls() { -e "s#^${NVM_NODE_PREFIX}-##;" \ )" fi - - if [ "${ZSH_HAS_SHWORDSPLIT_UNSET}" -eq 1 ] && nvm_has "unsetopt"; then - unsetopt shwordsplit - fi fi if [ "${NVM_ADD_SYSTEM-}" = true ]; then @@ -1188,11 +1182,7 @@ nvm_ls_remote_index_tab() { unset PATTERN fi - ZSH_HAS_SHWORDSPLIT_UNSET=1 - if nvm_has "setopt"; then - ZSH_HAS_SHWORDSPLIT_UNSET="$(set +e ; setopt | nvm_grep -q shwordsplit ; nvm_echo $?)" - setopt shwordsplit - fi + nvm_is_zsh && setopt local_options shwordsplit local VERSION_LIST VERSION_LIST="$(nvm_download -L -s "${MIRROR}/index.tab" -o - \ | command sed " @@ -1237,9 +1227,6 @@ nvm_ls_remote_index_tab() { $VERSION_LIST EOF )" - if [ "$ZSH_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then - unsetopt shwordsplit - fi if [ -z "${VERSIONS}" ]; then nvm_echo 'N/A' return 3 @@ -1509,8 +1496,6 @@ nvm_print_implicit_alias() { return 2 fi - local ZSH_HAS_SHWORDSPLIT_UNSET - local NVM_IOJS_PREFIX NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" local NVM_NODE_PREFIX @@ -1526,11 +1511,7 @@ nvm_print_implicit_alias() { NVM_COMMAND="nvm_ls $NVM_IMPLICIT" fi - ZSH_HAS_SHWORDSPLIT_UNSET=1 - if nvm_has "setopt"; then - ZSH_HAS_SHWORDSPLIT_UNSET="$(set +e ; setopt | nvm_grep -q shwordsplit ; nvm_echo $?)" - setopt shwordsplit - fi + nvm_is_zsh && setopt local_options shwordsplit local NVM_IOJS_VERSION local EXIT_CODE @@ -1540,10 +1521,6 @@ nvm_print_implicit_alias() { NVM_IOJS_VERSION="$(nvm_echo "$NVM_IOJS_VERSION" | command sed "s/^$NVM_IMPLICIT-//" | nvm_grep -e '^v' | command cut -c2- | command cut -d . -f 1,2 | uniq | command tail -1)" fi - if [ "$ZSH_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then - unsetopt shwordsplit - fi - if [ "_$NVM_IOJS_VERSION" = "_N/A" ]; then nvm_echo 'N/A' else @@ -1561,17 +1538,9 @@ nvm_print_implicit_alias() { NVM_COMMAND="nvm_ls node" fi - ZSH_HAS_SHWORDSPLIT_UNSET=1 - if nvm_has "setopt"; then - ZSH_HAS_SHWORDSPLIT_UNSET="$(set +e ; setopt | nvm_grep -q shwordsplit ; nvm_echo $?)" - setopt shwordsplit - fi + nvm_is_zsh && setopt local_options shwordsplit LAST_TWO=$($NVM_COMMAND | nvm_grep -e '^v' | command cut -c2- | command cut -d . -f 1,2 | uniq) - - if [ "$ZSH_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then - unsetopt shwordsplit - fi ;; esac local MINOR @@ -1580,11 +1549,7 @@ nvm_print_implicit_alias() { local MOD local NORMALIZED_VERSION - ZSH_HAS_SHWORDSPLIT_UNSET=1 - if nvm_has "setopt"; then - ZSH_HAS_SHWORDSPLIT_UNSET="$(set +e ; setopt | nvm_grep -q shwordsplit ; nvm_echo $?)" - setopt shwordsplit - fi + nvm_is_zsh && setopt local_options shwordsplit for MINOR in $LAST_TWO; do NORMALIZED_VERSION="$(nvm_normalize_version "$MINOR")" if [ "_0${NORMALIZED_VERSION#?}" != "_$NORMALIZED_VERSION" ]; then @@ -1598,9 +1563,6 @@ nvm_print_implicit_alias() { fi fi done - if [ "$ZSH_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then - unsetopt shwordsplit - fi if [ "_$2" = '_stable' ]; then nvm_echo "${STABLE}" @@ -2077,12 +2039,7 @@ nvm_install_source() { PROGRESS_BAR="--progress-bar" fi - local ZSH_HAS_SHWORDSPLIT_UNSET - ZSH_HAS_SHWORDSPLIT_UNSET=1 - if nvm_has "setopt"; then - ZSH_HAS_SHWORDSPLIT_UNSET="$(set +e ; setopt | nvm_grep -q shwordsplit ; nvm_echo $?)" - setopt shwordsplit - fi + nvm_is_zsh && setopt local_options shwordsplit TARBALL="$(PROGRESS_BAR="${PROGRESS_BAR}" nvm_download_artifact "${FLAVOR}" source "${TYPE}" "${VERSION}" | command tail -1)" && \ [ -f "${TARBALL}" ] && \ @@ -2099,16 +2056,10 @@ nvm_install_source() { command rm -f "${VERSION_PATH}" 2>/dev/null && \ $make -j "${NVM_MAKE_JOBS}" ${MAKE_CXX-} install ); then - if [ "$ZSH_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then - unsetopt shwordsplit - fi nvm_err "nvm: install ${VERSION} failed!" command rm -rf "${TMPDIR-}" return 1 fi - if [ "$ZSH_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then - unsetopt shwordsplit - fi } nvm_use_if_needed() { @@ -2317,31 +2268,17 @@ nvm_is_natural_num() { # Check version dir permissions nvm_check_file_permissions() { - local ZSH_HAS_NONOMATCH_UNSET - ZSH_HAS_NONOMATCH_UNSET=1 - if nvm_has "setopt"; then - ZSH_HAS_NONOMATCH_UNSET="$(set +e ; setopt | nvm_grep -q nonomatch ; nvm_echo $?)" - setopt nonomatch - fi + nvm_is_zsh && setopt local_options nonomatch for FILE in "$1"/* "$1"/.[!.]* "$1"/..?* ; do if [ -d "$FILE" ]; then if ! nvm_check_file_permissions "$FILE"; then - if [ "${ZSH_HAS_NONOMATCH_UNSET}" -eq 1 ] && nvm_has "setopt"; then - setopt nomatch - fi return 2 fi elif [ -e "$FILE" ] && [ ! -w "$FILE" ] && [ ! -O "$FILE" ]; then nvm_err "file is not writable or self-owned: $(nvm_sanitize_path "$FILE")" - if [ "${ZSH_HAS_NONOMATCH_UNSET}" -eq 1 ] && nvm_has "setopt"; then - setopt nomatch - fi return 1 fi done - if [ "${ZSH_HAS_NONOMATCH_UNSET}" -eq 1 ] && nvm_has "setopt"; then - setopt nomatch - fi return 0 } @@ -2466,13 +2403,8 @@ nvm() { ;; "debug" ) - local ZSH_HAS_SHWORDSPLIT_UNSET local OS_VERSION - ZSH_HAS_SHWORDSPLIT_UNSET=1 - if nvm_has "setopt"; then - ZSH_HAS_SHWORDSPLIT_UNSET="$(set +e ; setopt | nvm_grep -q shwordsplit ; nvm_echo $?)" - setopt shwordsplit - fi + nvm_is_zsh && setopt local_options shwordsplit nvm_err "nvm --version: v$(nvm --version)" if [ -n "${TERM_PROGRAM-}" ]; then nvm_err "\$TERM_PROGRAM: $TERM_PROGRAM" @@ -2526,9 +2458,6 @@ nvm() { NVM_DEBUG_OUTPUT="$($NVM_DEBUG_COMMAND 2>&1)" nvm_err "$NVM_DEBUG_COMMAND: $(nvm_sanitize_path "$NVM_DEBUG_OUTPUT")" done - if [ "$ZSH_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then - unsetopt shwordsplit - fi return 42 ;; @@ -3115,12 +3044,7 @@ nvm() { local EXIT_CODE - local ZSH_HAS_SHWORDSPLIT_UNSET - ZSH_HAS_SHWORDSPLIT_UNSET=1 - if nvm_has "setopt"; then - ZSH_HAS_SHWORDSPLIT_UNSET="$(set +e ; setopt | nvm_grep -q shwordsplit ; nvm_echo $?)" - setopt shwordsplit - fi + nvm_is_zsh && setopt local_options shwordsplit local LTS_ARG if [ -n "${NVM_LTS-}" ]; then LTS_ARG="--lts=${NVM_LTS-}" @@ -3134,9 +3058,6 @@ nvm() { nvm exec "${NVM_SILENT-}" "${LTS_ARG-}" "$VERSION" node "$@" fi EXIT_CODE="$?" - if [ "$ZSH_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then - unsetopt shwordsplit - fi return $EXIT_CODE ;; "exec" ) @@ -3549,7 +3470,7 @@ nvm() { nvm_print_default_alias nvm_print_formatted_alias nvm_resolve_local_alias \ nvm_sanitize_path nvm_has_colors nvm_process_parameters \ node_version_has_solaris_binary iojs_version_has_solaris_binary \ - nvm_curl_libz_support nvm_command_info \ + nvm_curl_libz_support nvm_command_info nvm_is_zsh \ > /dev/null 2>&1 unset NVM_RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_IOJS_ORG_MIRROR NVM_DIR \ NVM_CD_FLAGS NVM_BIN NVM_MAKE_JOBS \ From a49d9163ef11d3f980825935f0d095fce8a9dafb Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 21 Nov 2018 21:25:20 -0600 Subject: [PATCH 1168/1426] [Fix] avoid unbound variable Fixes #1949. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 1b23698..8c94401 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3419,7 +3419,7 @@ nvm() { esac shift done - case "${PATTERN}" in + case "${PATTERN-}" in 'lts/*') NVM_LTS='*' unset PATTERN From 22d32bede0b0513565dc8af992919ca37eab3aa5 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 18 Nov 2018 16:38:36 +0800 Subject: [PATCH 1169/1426] [New] Enable ccache on Travis CI to speed up compilation --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 8af8a2c..e032228 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,6 +10,7 @@ addons: # - g++-4.8 cache: + ccache: true directories: - $HOME/.npm - $TRAVIS_BUILD_DIR/.cache @@ -37,6 +38,7 @@ env: - CXX=g++-4.8 - CC=gcc-4.8 - PATH="$(echo $PATH | sed 's/::/:/')" + - PATH="/usr/lib/ccache/:$PATH" - NVM_DIR="${TRAVIS_BUILD_DIR}" matrix: - MAKE_RELEASE=true From ad1110ef1aa6dd9b1736fe7eb04a6ed78d75e044 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 25 Nov 2018 23:39:33 -0800 Subject: [PATCH 1170/1426] [Tests] print out shellcheck version --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index e032228..353ea00 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,6 +19,7 @@ before_install: - $SHELL --version 2> /dev/null || dpkg -s $SHELL 2> /dev/null || which $SHELL - curl --version - wget --version + - shellcheck --version install: - if [ -z "${SHELLCHECK-}" ]; then nvm install node && npm install && npm prune && npm ls urchin doctoc eclint dockerfile_lint; fi - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' From c1150c41ab36a0bad31860513e11feea5b8996dd Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 26 Nov 2018 11:18:11 -0800 Subject: [PATCH 1171/1426] [Tests] avoid using shopt in zsh --- test/fast/Unit tests/nvm_command_info | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/test/fast/Unit tests/nvm_command_info b/test/fast/Unit tests/nvm_command_info index d69e61a..625e550 100755 --- a/test/fast/Unit tests/nvm_command_info +++ b/test/fast/Unit tests/nvm_command_info @@ -19,8 +19,14 @@ WGET_EXPECTED_INFO="$(which wget)" cleanup # 2. test aliased wget -shopt -s expand_aliases -# enable expand_aliases to make alias working in interactive shell + +# enable expand_aliases/aliases to make alias work in interactive shell +if nvm_has shopt; then + shopt -s expand_aliases +elif nvm_has setopt; then + setopt aliases +fi + alias wget="wget -V" WGET_COMMAND_INFO="$(nvm_command_info wget)" WGET_EXPECTED_INFO="$(which wget) (wget -V)" From 153506c8daa08c6032f9ef66599ab7b5493d09f9 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 25 Nov 2018 16:22:25 -0800 Subject: [PATCH 1172/1426] [shellcheck] ignore SC2230 errors --- nvm.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nvm.sh b/nvm.sh index 8c94401..4db973c 100644 --- a/nvm.sh +++ b/nvm.sh @@ -54,8 +54,10 @@ nvm_command_info() { if type "${COMMAND}" | nvm_grep -q hashed; then INFO="$(type "${COMMAND}" | command sed -E 's/\(|\)//g' | command awk '{print $4}')" elif type "${COMMAND}" | nvm_grep -q aliased; then + # shellcheck disable=SC2230 INFO="$(which "${COMMAND}") ($(type "${COMMAND}" | command awk '{ $1=$2=$3=$4="" ;print }' | command sed -e 's/^\ *//g' -Ee "s/\`|'//g" ))" elif type "${COMMAND}" | nvm_grep -q "^${COMMAND} is an alias for"; then + # shellcheck disable=SC2230 INFO="$(which "${COMMAND}") ($(type "${COMMAND}" | command awk '{ $1=$2=$3=$4=$5="" ;print }' | command sed 's/^\ *//g'))" elif type "${COMMAND}" | nvm_grep -q "^${COMMAND} is \\/"; then INFO="$(type "${COMMAND}" | command awk '{print $3}')" From 14179bc8cede48ee6d66ec07a9d088ed39886b5b Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 3 Dec 2018 13:59:19 +0800 Subject: [PATCH 1173/1426] [shellcheck] Use `-n/-z` instead of `! -z/! -n` condition https://github.com/koalaman/shellcheck/wiki/SC2236 --- install.sh | 8 ++++---- nvm.sh | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/install.sh b/install.sh index 799dbe2..ce43685 100755 --- a/install.sh +++ b/install.sh @@ -7,9 +7,9 @@ nvm_has() { } nvm_install_dir() { - if [ ! -z "$NVM_DIR" ]; then + if [ -n "$NVM_DIR" ]; then printf %s "${NVM_DIR}" - elif [ ! -z "$XDG_CONFIG_HOME" ]; then + elif [ -n "$XDG_CONFIG_HOME" ]; then printf %s "${XDG_CONFIG_HOME/nvm}" else printf %s "$HOME/.nvm" @@ -123,7 +123,7 @@ install_nvm_from_git() { fi fi command git -c advice.detachedHead=false --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" checkout -f --quiet "$(nvm_latest_version)" - if [ ! -z "$(command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" show-ref refs/heads/master)" ]; then + if [ -n "$(command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" show-ref refs/heads/master)" ]; then if command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" branch --quiet 2>/dev/null; then command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" branch --quiet -D master >/dev/null 2>&1 else @@ -250,7 +250,7 @@ nvm_detect_profile() { done fi - if [ ! -z "$DETECTED_PROFILE" ]; then + if [ -n "$DETECTED_PROFILE" ]; then echo "$DETECTED_PROFILE" fi } diff --git a/nvm.sh b/nvm.sh index 4db973c..b0df452 100644 --- a/nvm.sh +++ b/nvm.sh @@ -323,7 +323,7 @@ nvm_rc_version() { return 1 fi NVM_RC_VERSION="$(command head -n 1 "${NVMRC_PATH}" | command tr -d '\r')" || command printf '' - if [ ! -n "${NVM_RC_VERSION}" ]; then + if [ -z "${NVM_RC_VERSION}" ]; then nvm_err "Warning: empty .nvmrc file found at \"${NVMRC_PATH}\"" return 2 fi From fb83eeb140eb32c641e8c1f5450673f1e23fa8a6 Mon Sep 17 00:00:00 2001 From: Joel Parker Henderson Date: Wed, 19 Dec 2018 12:45:59 -0800 Subject: [PATCH 1174/1426] [Docs] Add Ansible task example Add Ansible task example to show how to install nvm and update it. Ansible is a systems administration tool. See https://github.com/ansible/ansible My personal experience of `nvm` is that installing via Ansible is good, and that a good example can help. This example took me about an hour to learn, so I'm hoping to save other people some time. This example is somewhat different than any others that I found on the web. There may be a better way to write it, and if so, please improve it. --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index b62cc26..820fa80 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ - [Installation](#installation) - [Install script](#install-script) + - [Ansible](#ansible) - [Verify installation](#verify-installation) - [Important Notes](#important-notes) - [Git install](#git-install) @@ -91,6 +92,17 @@ If the above doesn't fix the problem, open your `.bash_profile` and add the foll - For more information about this issue and possible workarounds, please [refer here](https://github.com/creationix/nvm/issues/576) +#### Ansible + You can use a task: + +``` +- name: nvm + shell: > + curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash + args: + creates: "{{ ansible_env.HOME }}/.nvm/nvm.sh" +``` + ### Verify installation To verify that nvm has been installed, do: From deb2a9b82188f9dce6059bc5569a59d07dcd343f Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 19 Dec 2018 15:36:24 -0800 Subject: [PATCH 1175/1426] [Docs] fix eclint --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 820fa80..0e3f939 100644 --- a/README.md +++ b/README.md @@ -93,7 +93,7 @@ If the above doesn't fix the problem, open your `.bash_profile` and add the foll - For more information about this issue and possible workarounds, please [refer here](https://github.com/creationix/nvm/issues/576) #### Ansible - You can use a task: + You can use a task: ``` - name: nvm From 206d503a21371a9e0ea38f0febb564e211cec6f8 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Wed, 26 Dec 2018 03:46:13 +0800 Subject: [PATCH 1176/1426] [Docs] Improve indent of output block in GitHub Issue template --- .github/ISSUE_TEMPLATE.md | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index a90ee15..43ee5fb 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -4,22 +4,22 @@ - Operating system and version: - `nvm debug` output: -
- +
+ -```sh + ```sh -``` -
+ ``` +
- `nvm ls` output: -
- +
+ -```sh + ```sh -``` -
+ ``` +
- How did you install `nvm`? (e.g. install script in readme, Homebrew): @@ -33,9 +33,10 @@ - If you are having installation issues, or getting "N/A", what does `curl -I --compressed -v https://nodejs.org/dist/` print out? -
- +
+ -```sh -``` -
+ ```sh + + ``` +
From 5e065ec026bb5386338904109708062af9ca352f Mon Sep 17 00:00:00 2001 From: Javier Infante Date: Mon, 31 Dec 2018 08:42:58 +0100 Subject: [PATCH 1177/1426] [Docs] fixing cdnvm on .bashrc --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0e3f939..3faf89e 100644 --- a/README.md +++ b/README.md @@ -420,7 +420,7 @@ find-up () { } cdnvm(){ - cd $@; + cd "$@"; nvm_path=$(find-up .nvmrc | tr -d '[:space:]') # If there are no .nvmrc file, use the default nvm version From 6354b170d77d1672d440633fe6d4716cd3b31dd7 Mon Sep 17 00:00:00 2001 From: Valerie Mettler Date: Sat, 5 Jan 2019 12:20:56 -0800 Subject: [PATCH 1178/1426] Improve phrasing of 'nvm current' To help beginners know that 'nvm current' is talking about node and not nvm. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index b0df452..ce9e802 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2348,7 +2348,7 @@ nvm() { nvm_echo ' nvm run [--silent] [] Run `node` on with as arguments. Uses .nvmrc if available' nvm_echo ' --lts Uses automatic LTS (long-term support) alias `lts/*`, if available.' nvm_echo ' --lts= Uses automatic alias for provided LTS line, if available.' - nvm_echo ' nvm current Display currently activated version' + nvm_echo ' nvm current Display currently activated version of Node' nvm_echo ' nvm ls List installed versions' nvm_echo ' nvm ls List versions matching a given ' nvm_echo ' nvm ls-remote List remote versions available for install' From 3d9c31d94488884e74ae1ba0d46bc6607bc74667 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 7 Jan 2019 23:01:16 -0800 Subject: [PATCH 1179/1426] v0.34.0 --- README.md | 16 ++++++++-------- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 3faf89e..bcdce4e 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Node Version Manager [![Build Status](https://travis-ci.org/creationix/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.33.11-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://travis-ci.org/creationix/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.34.0-yellow.svg)][4] [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/684/badge)](https://bestpractices.coreinfrastructure.org/projects/684) @@ -46,13 +46,13 @@ To install or update nvm, you can use the [install script][2] using cURL: ```sh -curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash ``` or Wget: ```sh -wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash +wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash ``` The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). @@ -98,7 +98,7 @@ If the above doesn't fix the problem, open your `.bash_profile` and add the foll ``` - name: nvm shell: > - curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash + curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash args: creates: "{{ ansible_env.HOME }}/.nvm/nvm.sh" ``` @@ -157,7 +157,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/creationix/nvm.git .nvm` -1. `cd ~/.nvm` and check out the latest version with `git checkout v0.33.11` +1. `cd ~/.nvm` and check out the latest version with `git checkout v0.34.0` 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: @@ -616,7 +616,7 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh ```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/creationix/nvm/v0.33.11/install.sh | bash +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash ``` The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. @@ -702,8 +702,8 @@ sudo chmod ugo-x /usr/libexec/path_helper More on this issue in [dotphiles/dotzsh](https://github.com/dotphiles/dotzsh#mac-os-x). [1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.33.11/install.sh +[2]: https://github.com/creationix/nvm/blob/v0.34.0/install.sh [3]: https://travis-ci.org/creationix/nvm -[4]: https://github.com/creationix/nvm/releases/tag/v0.33.11 +[4]: https://github.com/creationix/nvm/releases/tag/v0.34.0 [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index ce43685..a9c9c16 100755 --- a/install.sh +++ b/install.sh @@ -17,7 +17,7 @@ nvm_install_dir() { } nvm_latest_version() { - echo "v0.33.11" + echo "v0.34.0" } nvm_profile_is_bash_or_zsh() { diff --git a/nvm.sh b/nvm.sh index ce9e802..e9bd537 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3434,7 +3434,7 @@ nvm() { NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; "--version" ) - nvm_echo '0.33.11' + nvm_echo '0.34.0' ;; "unload" ) nvm deactivate >/dev/null 2>&1 diff --git a/package.json b/package.json index 310b802..52f49f2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.33.11", + "version": "0.34.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 13f3cdcdf7527a1ed0454af5e7131b66241c63e2 Mon Sep 17 00:00:00 2001 From: Waldir Pimenta Date: Fri, 11 Jan 2019 10:42:33 +0000 Subject: [PATCH 1180/1426] README: clarify how to specify default packages --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bcdce4e..48c657a 100644 --- a/README.md +++ b/README.md @@ -290,7 +290,7 @@ nvm install v4.2 --reinstall-packages-from=iojs ### Default global packages from file while installing -If you have a list of default packages you want installed every time you install a new version we support that too. You can add anything npm would accept as a package argument on the command line. +If you have a list of default packages you want installed every time you install a new version, we support that too -- just add the package names, one per line, to the file `$NVM_DIR/default-packages`. You can add anything npm would accept as a package argument on the command line. ```sh # $NVM_DIR/default-packages From 653456874556085a9727bb032f37128f0d19017a Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sat, 4 Nov 2017 22:52:35 +0800 Subject: [PATCH 1181/1426] [Fix] Enhance nvm debug for different environments --- nvm.sh | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index e9bd537..cea5a8b 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2446,13 +2446,35 @@ nvm() { nvm_err "wget: not found" fi - for tool in git grep awk sed cut basename rm mkdir xargs; do + local TEST_TOOLS ADD_TEST_TOOLS + TEST_TOOLS="git grep awk" + ADD_TEST_TOOLS="sed cut basename rm mkdir xargs" + if [ "darwin" != "$(nvm_get_os)" ] && [ "freebsd" != "$(nvm_get_os)" ]; then + TEST_TOOLS="${TEST_TOOLS} ${ADD_TEST_TOOLS}" + else + for tool in ${ADD_TEST_TOOLS} ; do + if nvm_has "${tool}"; then + nvm_err "${tool}: $(nvm_command_info "${tool}")" + else + nvm_err "${tool}: not found" + fi + done + fi + for tool in ${TEST_TOOLS} ; do + local NVM_TOOL_VERSION if nvm_has "${tool}"; then - nvm_err "${tool}: $(nvm_command_info ${tool}), $(command ${tool} --version | command head -n 1)" + if command ls -l "$(nvm_command_info "${tool}" | command awk '{print $1}')" | command grep -q busybox; then + NVM_TOOL_VERSION="$(command "${tool}" --help 2>&1 | command head -n 1)" + else + NVM_TOOL_VERSION="$(command "${tool}" --version 2>&1 | command head -n 1)" + fi + nvm_err "${tool}: $(nvm_command_info "${tool}"), ${NVM_TOOL_VERSION}" else nvm_err "${tool}: not found" fi + unset NVM_TOOL_VERSION done + unset TEST_TOOLS ADD_TEST_TOOLS local NVM_DEBUG_OUTPUT for NVM_DEBUG_COMMAND in 'nvm current' 'which node' 'which iojs' 'which npm' 'npm config get prefix' 'npm root -g' From e367533eb8bb5da19679cc55bf605a79514a407e Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Tue, 28 Mar 2017 23:15:35 +0800 Subject: [PATCH 1182/1426] [Refactor] Reduce one more `sed` & pipe to speedup --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index cea5a8b..9fa2fb6 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1083,9 +1083,9 @@ nvm_ls() { \\#${SEARCH_PATTERN}# !d; " \ -e 's#^\([^/]\{1,\}\)/\(.*\)$#\2.\1#;' \ + -e 's#\(.*\)\.\([^\.]\{1,\}\)$#\2-\1#;' \ + -e "s#^${NVM_NODE_PREFIX}-##;" \ | command sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n \ - | command sed -e 's#\(.*\)\.\([^\.]\{1,\}\)$#\2-\1#;' \ - -e "s#^${NVM_NODE_PREFIX}-##;" \ )" fi fi From 10f24d6d4be28ba0d3e0e7e2e043d108382d8d96 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Tue, 22 May 2018 20:57:40 +0800 Subject: [PATCH 1183/1426] [Refactor] `nvm.sh`: make coding style more consistent --- nvm.sh | 579 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 282 insertions(+), 297 deletions(-) diff --git a/nvm.sh b/nvm.sh index 9fa2fb6..2232d85 100644 --- a/nvm.sh +++ b/nvm.sh @@ -34,7 +34,7 @@ nvm_grep() { } nvm_has() { - type "${1-}" > /dev/null 2>&1 + type "${1-}" >/dev/null 2>&1 } nvm_has_non_aliased() { @@ -44,7 +44,7 @@ nvm_has_non_aliased() { nvm_is_alias() { # this is intentionally not "command alias" so it works in zsh. # shellcheck disable=SC1001 - \alias "${1-}" > /dev/null 2>&1 + \alias "${1-}" >/dev/null 2>&1 } nvm_command_info() { @@ -55,7 +55,7 @@ nvm_command_info() { INFO="$(type "${COMMAND}" | command sed -E 's/\(|\)//g' | command awk '{print $4}')" elif type "${COMMAND}" | nvm_grep -q aliased; then # shellcheck disable=SC2230 - INFO="$(which "${COMMAND}") ($(type "${COMMAND}" | command awk '{ $1=$2=$3=$4="" ;print }' | command sed -e 's/^\ *//g' -Ee "s/\`|'//g" ))" + INFO="$(which "${COMMAND}") ($(type "${COMMAND}" | command awk '{ $1=$2=$3=$4="" ;print }' | command sed -e 's/^\ *//g' -Ee "s/\`|'//g"))" elif type "${COMMAND}" | nvm_grep -q "^${COMMAND} is an alias for"; then # shellcheck disable=SC2230 INFO="$(which "${COMMAND}") ($(type "${COMMAND}" | command awk '{ $1=$2=$3=$4=$5="" ;print }' | command sed 's/^\ *//g'))" @@ -80,7 +80,7 @@ nvm_curl_libz_support() { } nvm_curl_use_compression() { - nvm_curl_libz_support && nvm_version_greater_than_or_equal_to "$(nvm_curl_version)" 7.21.0; + nvm_curl_libz_support && nvm_version_greater_than_or_equal_to "$(nvm_curl_version)" 7.21.0 } nvm_get_latest() { @@ -136,7 +136,7 @@ nvm_has_system_iojs() { } nvm_is_version_installed() { - [ -n "${1-}" ] && [ -x "$(nvm_version_path "$1" 2> /dev/null)"/bin/node ] + [ -n "${1-}" ] && [ -x "$(nvm_version_path "$1" 2>/dev/null)"/bin/node ] } nvm_print_npm_version() { @@ -226,7 +226,7 @@ nvm_install_latest_npm() { 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}"\ + [ $NVM_IS_5_OR_ABOVE -eq 1 ] && nvm_version_greater 5.10.0 "${NODE_VERSION}" \ ); then nvm_echo '* `npm` `v5.3.x` is the last version that works on `node` 4.x versions below v4.4, or 5.x versions below v5.10, due to `Buffer.alloc`' $NVM_NPM_CMD install -g npm@5.3 @@ -261,7 +261,7 @@ if [ -z "${NVM_DIR-}" ]; then NVM_SCRIPT_SOURCE="${BASH_SOURCE[0]}" fi # shellcheck disable=SC1001 - NVM_DIR="$(nvm_cd ${NVM_CD_FLAGS} "$(dirname "${NVM_SCRIPT_SOURCE:-$0}")" > /dev/null && \pwd)" + NVM_DIR="$(nvm_cd ${NVM_CD_FLAGS} "$(dirname "${NVM_SCRIPT_SOURCE:-$0}")" >/dev/null && \pwd)" export NVM_DIR else # https://unix.stackexchange.com/a/198289 @@ -273,7 +273,7 @@ else ;; esac fi -unset NVM_SCRIPT_SOURCE 2> /dev/null +unset NVM_SCRIPT_SOURCE 2>/dev/null nvm_tree_contains_path() { local tree @@ -304,7 +304,6 @@ nvm_find_up() { nvm_echo "${path_}" } - nvm_find_nvmrc() { local dir dir="$(nvm_find_up '.nvmrc')" @@ -350,7 +349,7 @@ nvm_version_greater() { else if (a[i] > b[i]) exit(0); } exit(4) - }' "${1#v}" "${2#v}"; + }' "${1#v}" "${2#v}" } nvm_version_greater_than_or_equal_to() { @@ -364,7 +363,7 @@ nvm_version_greater_than_or_equal_to() { else if (a[i] > b[i]) exit(0); } exit(0) - }' "${1#v}" "${2#v}"; + }' "${1#v}" "${2#v}" } nvm_version_dir() { @@ -455,7 +454,7 @@ nvm_version() { VERSION="$(nvm_ls "${PATTERN}" | command tail -1)" if [ -z "${VERSION}" ] || [ "_${VERSION}" = "_N/A" ]; then nvm_echo "N/A" - return 3; + return 3 fi nvm_echo "${VERSION}" } @@ -464,7 +463,7 @@ nvm_remote_version() { local PATTERN PATTERN="${1-}" local VERSION - if nvm_validate_implicit_alias "${PATTERN}" 2> /dev/null ; then + if nvm_validate_implicit_alias "${PATTERN}" 2>/dev/null; then case "${PATTERN}" in "$(nvm_iojs_prefix)") VERSION="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote_iojs | command tail -1)" &&: @@ -514,7 +513,7 @@ nvm_remote_versions() { ;; esac - if nvm_validate_implicit_alias "${PATTERN-}" 2> /dev/null ; then + if nvm_validate_implicit_alias "${PATTERN-}" 2>/dev/null; then nvm_err 'Implicit aliases are not supported in nvm_remote_versions.' return 1 fi @@ -558,7 +557,7 @@ ${NVM_LS_REMOTE_POST_MERGED_OUTPUT}" | nvm_grep -v "N/A" | command sed '/^$/d')" } nvm_is_valid_version() { - if nvm_validate_implicit_alias "${1-}" 2> /dev/null; then + if nvm_validate_implicit_alias "${1-}" 2>/dev/null; then return 0 fi case "${1-}" in @@ -711,7 +710,7 @@ nvm_print_formatted_alias() { if [ "_${DEST%/*}" = "_lts" ]; then DEST_FORMAT='\033[1;33m%s\033[0m' fi - elif [ "_$VERSION" != '_∞' ] && [ "_$VERSION" != '_N/A' ]; then + elif [ "_${VERSION}" != '_∞' ] && [ "_${VERSION}" != '_N/A' ]; then VERSION_FORMAT='%s *' fi if [ "${DEST}" = "${VERSION}" ]; then @@ -737,7 +736,7 @@ nvm_print_alias_path() { local ALIAS ALIAS="${ALIAS_PATH##${NVM_ALIAS_DIR}\/}" local DEST - DEST="$(nvm_alias "${ALIAS}" 2> /dev/null)" ||: + DEST="$(nvm_alias "${ALIAS}" 2>/dev/null)" ||: if [ -n "${DEST}" ]; then NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_LTS="${NVM_LTS-}" DEFAULT=false nvm_print_formatted_alias "${ALIAS}" "${DEST}" fi @@ -842,7 +841,7 @@ nvm_alias() { nvm_ls_current() { local NVM_LS_CURRENT_NODE_PATH - if ! NVM_LS_CURRENT_NODE_PATH="$(command which node 2> /dev/null)"; then + if ! NVM_LS_CURRENT_NODE_PATH="$(command which node 2>/dev/null)"; then nvm_echo 'none' elif nvm_tree_contains_path "$(nvm_version_dir iojs)" "${NVM_LS_CURRENT_NODE_PATH}"; then nvm_add_iojs_prefix "$(iojs --version 2>/dev/null)" @@ -874,13 +873,13 @@ nvm_resolve_alias() { local SEEN_ALIASES SEEN_ALIASES="${ALIAS}" while true; do - ALIAS_TEMP="$(nvm_alias "${ALIAS}" 2> /dev/null || nvm_echo)" + ALIAS_TEMP="$(nvm_alias "${ALIAS}" 2>/dev/null || nvm_echo)" if [ -z "${ALIAS_TEMP}" ]; then break fi - if command printf "${SEEN_ALIASES}" | nvm_grep -q -e "^${ALIAS_TEMP}$" ; then + if command printf "${SEEN_ALIASES}" | nvm_grep -q -e "^${ALIAS_TEMP}$"; then ALIAS="∞" break fi @@ -897,7 +896,7 @@ nvm_resolve_alias() { case "${ALIAS}" in '∞' | \ "${NVM_IOJS_PREFIX}" | "${NVM_IOJS_PREFIX}-" | \ - "${NVM_NODE_PREFIX}" ) + "${NVM_NODE_PREFIX}") nvm_echo "${ALIAS}" ;; *) @@ -907,9 +906,9 @@ nvm_resolve_alias() { return 0 fi - if nvm_validate_implicit_alias "${PATTERN}" 2> /dev/null ; then + if nvm_validate_implicit_alias "${PATTERN}" 2>/dev/null; then local IMPLICIT - IMPLICIT="$(nvm_print_implicit_alias local "${PATTERN}" 2> /dev/null)" + IMPLICIT="$(nvm_print_implicit_alias local "${PATTERN}" 2>/dev/null)" if [ -n "${IMPLICIT}" ]; then nvm_ensure_version_prefix "${IMPLICIT}" fi @@ -985,7 +984,7 @@ nvm_ls() { NVM_VERSION_DIR_OLD="$(nvm_version_dir old)" case "${PATTERN}" in - "${NVM_IOJS_PREFIX}" | "${NVM_NODE_PREFIX}" ) + "${NVM_IOJS_PREFIX}" | "${NVM_NODE_PREFIX}") PATTERN="${PATTERN}-" ;; *) @@ -1109,7 +1108,7 @@ nvm_ls() { nvm_ls_remote() { local PATTERN PATTERN="${1-}" - if nvm_validate_implicit_alias "${PATTERN}" 2> /dev/null ; then + if nvm_validate_implicit_alias "${PATTERN}" 2>/dev/null ; then local IMPLICIT IMPLICIT="$(nvm_print_implicit_alias remote "${PATTERN}")" if [ -z "${IMPLICIT-}" ] || [ "${IMPLICIT}" = 'N/A' ]; then @@ -1214,7 +1213,7 @@ nvm_ls_remote_index_tab() { | while read -r LTS_ALIAS_LINE; do LTS_ALIAS="${LTS_ALIAS_LINE%% *}" LTS_VERSION="${LTS_ALIAS_LINE#* }" - nvm_make_alias "$LTS_ALIAS" "$LTS_VERSION" >/dev/null 2>&1 + nvm_make_alias "${LTS_ALIAS}" "${LTS_VERSION}" >/dev/null 2>&1 done VERSIONS="$({ command awk -v pattern="${PATTERN-}" -v lts="${LTS-}" '{ @@ -1425,17 +1424,17 @@ nvm_print_versions() { VERSION="${VERSION_LINE%% *}" LTS="${VERSION_LINE#* }" FORMAT='%15s' - if [ "_$VERSION" = "_$NVM_CURRENT" ]; then + if [ "_${VERSION}" = "_${NVM_CURRENT}" ]; then if [ "${NVM_HAS_COLORS-}" = '1' ]; then FORMAT='\033[0;32m-> %12s\033[0m' else FORMAT='-> %12s *' fi - elif [ "$VERSION" = "system" ]; then + elif [ "${VERSION}" = "system" ]; then if [ "${NVM_HAS_COLORS-}" = '1' ]; then FORMAT='\033[0;33m%15s\033[0m' fi - elif nvm_is_version_installed "$VERSION"; then + elif nvm_is_version_installed "${VERSION}"; then if [ "${NVM_HAS_COLORS-}" = '1' ]; then FORMAT='\033[0;34m%15s\033[0m' else @@ -1462,9 +1461,9 @@ nvm_print_versions() { fi ;; esac - command printf -- "${FORMAT}${LTS_FORMAT}\\n" "$VERSION" " $LTS" + command printf -- "${FORMAT}${LTS_FORMAT}\\n" "${VERSION}" " ${LTS}" else - command printf -- "${FORMAT}\\n" "$VERSION" + command printf -- "${FORMAT}\\n" "${VERSION}" fi done } @@ -1476,11 +1475,11 @@ nvm_validate_implicit_alias() { NVM_NODE_PREFIX="$(nvm_node_prefix)" case "$1" in - "stable" | "unstable" | "$NVM_IOJS_PREFIX" | "$NVM_NODE_PREFIX" ) + "stable" | "unstable" | "${NVM_IOJS_PREFIX}" | "${NVM_NODE_PREFIX}") return ;; *) - nvm_err "Only implicit aliases 'stable', 'unstable', '$NVM_IOJS_PREFIX', and '$NVM_NODE_PREFIX' are supported." + nvm_err "Only implicit aliases 'stable', 'unstable', '${NVM_IOJS_PREFIX}', and '${NVM_NODE_PREFIX}' are supported." return 1 ;; esac @@ -1494,7 +1493,7 @@ nvm_print_implicit_alias() { local NVM_IMPLICIT NVM_IMPLICIT="$2" - if ! nvm_validate_implicit_alias "$NVM_IMPLICIT"; then + if ! nvm_validate_implicit_alias "${NVM_IMPLICIT}"; then return 2 fi @@ -1505,32 +1504,32 @@ nvm_print_implicit_alias() { local NVM_COMMAND local NVM_ADD_PREFIX_COMMAND local LAST_TWO - case "$NVM_IMPLICIT" in - "$NVM_IOJS_PREFIX") + case "${NVM_IMPLICIT}" in + "${NVM_IOJS_PREFIX}") NVM_COMMAND="nvm_ls_remote_iojs" NVM_ADD_PREFIX_COMMAND="nvm_add_iojs_prefix" if [ "_$1" = "_local" ]; then - NVM_COMMAND="nvm_ls $NVM_IMPLICIT" + NVM_COMMAND="nvm_ls ${NVM_IMPLICIT}" fi nvm_is_zsh && setopt local_options shwordsplit local NVM_IOJS_VERSION local EXIT_CODE - NVM_IOJS_VERSION="$($NVM_COMMAND)" &&: + NVM_IOJS_VERSION="$(${NVM_COMMAND})" &&: EXIT_CODE="$?" - if [ "_$EXIT_CODE" = "_0" ]; then - NVM_IOJS_VERSION="$(nvm_echo "$NVM_IOJS_VERSION" | command sed "s/^$NVM_IMPLICIT-//" | nvm_grep -e '^v' | command cut -c2- | command cut -d . -f 1,2 | uniq | command tail -1)" + if [ "_${EXIT_CODE}" = "_0" ]; then + NVM_IOJS_VERSION="$(nvm_echo "${NVM_IOJS_VERSION}" | command sed "s/^${NVM_IMPLICIT}-//" | nvm_grep -e '^v' | command cut -c2- | command cut -d . -f 1,2 | uniq | command tail -1)" fi if [ "_$NVM_IOJS_VERSION" = "_N/A" ]; then nvm_echo 'N/A' else - $NVM_ADD_PREFIX_COMMAND "$NVM_IOJS_VERSION" + ${NVM_ADD_PREFIX_COMMAND} "${NVM_IOJS_VERSION}" fi return $EXIT_CODE ;; - "$NVM_NODE_PREFIX") + "${NVM_NODE_PREFIX}") nvm_echo 'stable' return ;; @@ -1557,11 +1556,11 @@ nvm_print_implicit_alias() { if [ "_0${NORMALIZED_VERSION#?}" != "_$NORMALIZED_VERSION" ]; then STABLE="$MINOR" else - MOD="$(awk 'BEGIN { print int(ARGV[1] / 1000000) % 2 ; exit(0) }' "$NORMALIZED_VERSION")" - if [ "$MOD" -eq 0 ]; then - STABLE="$MINOR" - elif [ "$MOD" -eq 1 ]; then - UNSTABLE="$MINOR" + MOD="$(awk 'BEGIN { print int(ARGV[1] / 1000000) % 2 ; exit(0) }' "${NORMALIZED_VERSION}")" + if [ "${MOD}" -eq 0 ]; then + STABLE="${MINOR}" + elif [ "${MOD}" -eq 1 ]; then + UNSTABLE="${MINOR}" fi fi done @@ -1577,7 +1576,7 @@ nvm_get_os() { local NVM_UNAME NVM_UNAME="$(command uname -a)" local NVM_OS - case "$NVM_UNAME" in + case "${NVM_UNAME}" in Linux\ *) NVM_OS=linux ;; Darwin\ *) NVM_OS=darwin ;; SunOS\ *) NVM_OS=sunos ;; @@ -1597,24 +1596,24 @@ nvm_get_arch() { # the most appropriate arch. If it's not available, use # isainfo to get the instruction set supported by the # kernel. - if [ "_$NVM_OS" = "_sunos" ]; then + if [ "_${NVM_OS}" = "_sunos" ]; then if HOST_ARCH=$(pkg_info -Q MACHINE_ARCH pkg_install); then HOST_ARCH=$(nvm_echo "${HOST_ARCH}" | command tail -1) else HOST_ARCH=$(isainfo -n) fi - elif [ "_$NVM_OS" = "_aix" ]; then + elif [ "_${NVM_OS}" = "_aix" ]; then HOST_ARCH=ppc64 else HOST_ARCH="$(command uname -m)" fi local NVM_ARCH - case "$HOST_ARCH" in + case "${HOST_ARCH}" in x86_64 | amd64) NVM_ARCH="x64" ;; i*86) NVM_ARCH="x86" ;; aarch64) NVM_ARCH="arm64" ;; - *) NVM_ARCH="$HOST_ARCH" ;; + *) NVM_ARCH="${HOST_ARCH}" ;; esac nvm_echo "${NVM_ARCH}" } @@ -1623,12 +1622,12 @@ nvm_get_minor_version() { local VERSION VERSION="$1" - if [ -z "$VERSION" ]; then + if [ -z "${VERSION}" ]; then nvm_err 'a version is required' return 1 fi - case "$VERSION" in + case "${VERSION}" in v | .* | *..* | v*[!.0123456789]* | [!v]*[!.0123456789]* | [!v0123456789]* | v[!0123456789]*) nvm_err 'invalid version number' return 2 @@ -1636,11 +1635,11 @@ nvm_get_minor_version() { esac local PREFIXED_VERSION - PREFIXED_VERSION="$(nvm_format_version "$VERSION")" + PREFIXED_VERSION="$(nvm_format_version "${VERSION}")" local MINOR - MINOR="$(nvm_echo "$PREFIXED_VERSION" | nvm_grep -e '^v' | command cut -c2- | command cut -d . -f 1,2)" - if [ -z "$MINOR" ]; then + MINOR="$(nvm_echo "${PREFIXED_VERSION}" | nvm_grep -e '^v' | command cut -c2- | command cut -d . -f 1,2)" + if [ -z "${MINOR}" ]; then nvm_err 'invalid version number! (please report this)' return 3 fi @@ -1650,7 +1649,7 @@ nvm_get_minor_version() { nvm_ensure_default_set() { local VERSION VERSION="$1" - if [ -z "$VERSION" ]; then + if [ -z "${VERSION}" ]; then nvm_err 'nvm_ensure_default_set: a version is required' return 1 elif nvm_alias default >/dev/null 2>&1; then @@ -1658,10 +1657,10 @@ nvm_ensure_default_set() { return 0 fi local OUTPUT - OUTPUT="$(nvm alias default "$VERSION")" + OUTPUT="$(nvm alias default "${VERSION}")" local EXIT_CODE EXIT_CODE="$?" - nvm_echo "Creating default alias: $OUTPUT" + nvm_echo "Creating default alias: ${OUTPUT}" return $EXIT_CODE } @@ -1894,8 +1893,8 @@ nvm_download_artifact() { ) if nvm_grep '404 Not Found' "${TARBALL}" >/dev/null; then - command rm -rf "${TARBALL}" "$tmpdir" - nvm_err "HTTP 404 at URL ${TARBALL_URL}"; + command rm -rf "${TARBALL}" "${tmpdir}" + nvm_err "HTTP 404 at URL ${TARBALL_URL}" return 5 fi @@ -1910,7 +1909,7 @@ nvm_download_artifact() { nvm_get_make_jobs() { if nvm_is_natural_num "${1-}"; then NVM_MAKE_JOBS="$1" - nvm_echo "number of \`make\` jobs: $NVM_MAKE_JOBS" + nvm_echo "number of \`make\` jobs: ${NVM_MAKE_JOBS}" return elif [ -n "${1-}" ]; then unset NVM_MAKE_JOBS @@ -1919,7 +1918,7 @@ nvm_get_make_jobs() { local NVM_OS NVM_OS="$(nvm_get_os)" local NVM_CPU_CORES - case "_$NVM_OS" in + case "_${NVM_OS}" in "_linux") NVM_CPU_CORES="$(nvm_grep -c -E '^processor.+: [0-9]+' /proc/cpuinfo)" ;; @@ -1933,15 +1932,15 @@ nvm_get_make_jobs() { NVM_CPU_CORES="$(pmcycles -m | wc -l)" ;; esac - if ! nvm_is_natural_num "$NVM_CPU_CORES" ; then + if ! nvm_is_natural_num "${NVM_CPU_CORES}"; then nvm_err 'Can not determine how many core(s) are available, running in single-threaded mode.' nvm_err 'Please report an issue on GitHub to help us make nvm run faster on your computer!' NVM_MAKE_JOBS=1 else - nvm_echo "Detected that you have $NVM_CPU_CORES CPU core(s)" - if [ "$NVM_CPU_CORES" -gt 2 ]; then + nvm_echo "Detected that you have ${NVM_CPU_CORES} CPU core(s)" + if [ "${NVM_CPU_CORES}" -gt 2 ]; then NVM_MAKE_JOBS=$((NVM_CPU_CORES - 1)) - nvm_echo "Running with $NVM_MAKE_JOBS threads to speed up the build" + nvm_echo "Running with ${NVM_MAKE_JOBS} threads to speed up the build" else NVM_MAKE_JOBS=1 nvm_echo 'Number of CPU core(s) less than or equal to 2, running in single-threaded mode' @@ -2012,7 +2011,7 @@ nvm_install_source() { ;; esac if nvm_has "clang++" && nvm_has "clang" && nvm_version_greater_than_or_equal_to "$(nvm_clang_version)" 3.5; then - if [ -z "${CC-}" ] || [ -z "${CXX-}" ] ; then + if [ -z "${CC-}" ] || [ -z "${CXX-}" ]; then nvm_echo "Clang v3.5+ detected! CC or CXX not specified, will use Clang as C/C++ compiler!" MAKE_CXX="CC=${CC:-cc} CXX=${CXX:-c++}" fi @@ -2076,10 +2075,10 @@ nvm_install_npm_if_needed() { VERSION="$(nvm_ls_current)" if ! nvm_has "npm"; then nvm_echo 'Installing npm...' - if nvm_version_greater 0.2.0 "$VERSION"; then + if nvm_version_greater 0.2.0 "${VERSION}"; then nvm_err 'npm requires node v0.2.3 or higher' - elif nvm_version_greater_than_or_equal_to "$VERSION" 0.2.0; then - if nvm_version_greater 0.2.3 "$VERSION"; then + elif nvm_version_greater_than_or_equal_to "${VERSION}" 0.2.0; then + if nvm_version_greater 0.2.3 "${VERSION}"; then nvm_err 'npm requires node v0.2.3 or higher' else nvm_download -L https://npmjs.org/install.sh -o - | clean=yes npm_install=0.2.19 sh @@ -2096,15 +2095,15 @@ nvm_match_version() { NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" local PROVIDED_VERSION PROVIDED_VERSION="$1" - case "_$PROVIDED_VERSION" in - "_$NVM_IOJS_PREFIX" | '_io.js') - nvm_version "$NVM_IOJS_PREFIX" + case "_${PROVIDED_VERSION}" in + "_${NVM_IOJS_PREFIX}" | '_io.js') + nvm_version "${NVM_IOJS_PREFIX}" ;; '_system') nvm_echo 'system' ;; *) - nvm_version "$PROVIDED_VERSION" + nvm_version "${PROVIDED_VERSION}" ;; esac } @@ -2113,22 +2112,22 @@ nvm_npm_global_modules() { local NPMLIST local VERSION VERSION="$1" - NPMLIST=$(nvm use "$VERSION" > /dev/null && npm list -g --depth=0 2> /dev/null | command sed 1,1d) + NPMLIST=$(nvm use "${VERSION}" >/dev/null && npm list -g --depth=0 2>/dev/null | command sed 1,1d) local INSTALLS - INSTALLS=$(nvm_echo "$NPMLIST" | command sed -e '/ -> / d' -e '/\(empty\)/ d' -e 's/^.* \(.*@[^ ]*\).*/\1/' -e '/^npm@[^ ]*.*$/ d' | command xargs) + INSTALLS=$(nvm_echo "${NPMLIST}" | command sed -e '/ -> / d' -e '/\(empty\)/ d' -e 's/^.* \(.*@[^ ]*\).*/\1/' -e '/^npm@[^ ]*.*$/ d' | command xargs) local LINKS - LINKS="$(nvm_echo "$NPMLIST" | command sed -n 's/.* -> \(.*\)/\1/ p')" + LINKS="$(nvm_echo "${NPMLIST}" | command sed -n 's/.* -> \(.*\)/\1/ p')" - nvm_echo "$INSTALLS //// $LINKS" + nvm_echo "${INSTALLS} //// ${LINKS}" } nvm_die_on_prefix() { local NVM_DELETE_PREFIX NVM_DELETE_PREFIX="$1" - case "$NVM_DELETE_PREFIX" in - 0|1) ;; + case "${NVM_DELETE_PREFIX}" in + 0 | 1) ;; *) nvm_err 'First argument "delete the prefix" must be zero or one' return 1 @@ -2136,7 +2135,7 @@ nvm_die_on_prefix() { esac local NVM_COMMAND NVM_COMMAND="$2" - if [ -z "$NVM_COMMAND" ]; then + if [ -z "${NVM_COMMAND}" ]; then nvm_err 'Second argument "nvm command" must be nonempty' return 2 fi @@ -2175,16 +2174,16 @@ nvm_die_on_prefix() { local NVM_NPM_PREFIX NVM_NPM_PREFIX="$(npm config --loglevel=warn get prefix)" - if ! (nvm_tree_contains_path "$NVM_DIR" "$NVM_NPM_PREFIX" >/dev/null 2>&1); then - if [ "_$NVM_DELETE_PREFIX" = "_1" ]; then + if ! (nvm_tree_contains_path "${NVM_DIR}" "${NVM_NPM_PREFIX}" >/dev/null 2>&1); then + if [ "_${NVM_DELETE_PREFIX}" = "_1" ]; then npm config --loglevel=warn delete prefix else nvm deactivate >/dev/null 2>&1 - nvm_err "nvm is not compatible with the npm config \"prefix\" option: currently set to \"$NVM_NPM_PREFIX\"" + nvm_err "nvm is not compatible with the npm config \"prefix\" option: currently set to \"${NVM_NPM_PREFIX}\"" if nvm_has 'npm'; then - nvm_err "Run \`npm config delete prefix\` or \`$NVM_COMMAND\` to unset it." + nvm_err "Run \`npm config delete prefix\` or \`${NVM_COMMAND}\` to unset it." else - nvm_err "Run \`$NVM_COMMAND\` to unset it." + nvm_err "Run \`${NVM_COMMAND}\` to unset it." fi return 10 fi @@ -2200,13 +2199,13 @@ iojs_version_has_solaris_binary() { local IOJS_VERSION IOJS_VERSION="$1" local STRIPPED_IOJS_VERSION - STRIPPED_IOJS_VERSION="$(nvm_strip_iojs_prefix "$IOJS_VERSION")" - if [ "_$STRIPPED_IOJS_VERSION" = "$IOJS_VERSION" ]; then + STRIPPED_IOJS_VERSION="$(nvm_strip_iojs_prefix "${IOJS_VERSION}")" + if [ "_${STRIPPED_IOJS_VERSION}" = "${IOJS_VERSION}" ]; then return 1 fi # io.js started shipping Solaris binaries with io.js v3.3.1 - nvm_version_greater_than_or_equal_to "$STRIPPED_IOJS_VERSION" v3.3.1 + nvm_version_greater_than_or_equal_to "${STRIPPED_IOJS_VERSION}" v3.3.1 } # Succeeds if $NODE_VERSION represents a node version that has a @@ -2218,41 +2217,41 @@ node_version_has_solaris_binary() { NODE_VERSION="$1" # Error out if $NODE_VERSION is actually an io.js version local STRIPPED_IOJS_VERSION - STRIPPED_IOJS_VERSION="$(nvm_strip_iojs_prefix "$NODE_VERSION")" - if [ "_$STRIPPED_IOJS_VERSION" != "_$NODE_VERSION" ]; then + STRIPPED_IOJS_VERSION="$(nvm_strip_iojs_prefix "${NODE_VERSION}")" + if [ "_${STRIPPED_IOJS_VERSION}" != "_${NODE_VERSION}" ]; then return 1 fi # node (unmerged) started shipping Solaris binaries with v0.8.6 and # node versions v1.0.0 or greater are not considered valid "unmerged" node # versions. - nvm_version_greater_than_or_equal_to "$NODE_VERSION" v0.8.6 && - ! nvm_version_greater_than_or_equal_to "$NODE_VERSION" v1.0.0 + nvm_version_greater_than_or_equal_to "${NODE_VERSION}" v0.8.6 \ + && ! nvm_version_greater_than_or_equal_to "${NODE_VERSION}" v1.0.0 } # Succeeds if $VERSION represents a version (node, io.js or merged) that has a # Solaris binary, fails otherwise. nvm_has_solaris_binary() { local VERSION=$1 - if nvm_is_merged_node_version "$VERSION"; then + if nvm_is_merged_node_version "${VERSION}"; then return 0 # All merged node versions have a Solaris binary - elif nvm_is_iojs_version "$VERSION"; then - iojs_version_has_solaris_binary "$VERSION" + elif nvm_is_iojs_version "${VERSION}"; then + iojs_version_has_solaris_binary "${VERSION}" else - node_version_has_solaris_binary "$VERSION" + node_version_has_solaris_binary "${VERSION}" fi } nvm_sanitize_path() { local SANITIZED_PATH SANITIZED_PATH="${1-}" - if [ "_$SANITIZED_PATH" != "_$NVM_DIR" ]; then - SANITIZED_PATH="$(nvm_echo "$SANITIZED_PATH" | command sed -e "s#$NVM_DIR#\$NVM_DIR#g")" + if [ "_${SANITIZED_PATH}" != "_${NVM_DIR}" ]; then + SANITIZED_PATH="$(nvm_echo "${SANITIZED_PATH}" | command sed -e "s#${NVM_DIR}#\${NVM_DIR}#g")" fi - if [ "_$SANITIZED_PATH" != "_$HOME" ]; then - SANITIZED_PATH="$(nvm_echo "$SANITIZED_PATH" | command sed -e "s#$HOME#\$HOME#g")" + if [ "_${SANITIZED_PATH}" != "_${HOME}" ]; then + SANITIZED_PATH="$(nvm_echo "${SANITIZED_PATH}" | command sed -e "s#${HOME}#\${HOME}#g")" fi - nvm_echo "$SANITIZED_PATH" + nvm_echo "${SANITIZED_PATH}" } nvm_is_natural_num() { @@ -2263,7 +2262,7 @@ nvm_is_natural_num() { 0) return 1 ;; -*) return 3 ;; # some BSDs return false positives for double-negated args *) - [ "$1" -eq "$1" ] 2> /dev/null # returns 2 if it doesn't match + [ "$1" -eq "$1" ] 2>/dev/null # returns 2 if it doesn't match ;; esac } @@ -2311,7 +2310,7 @@ nvm() { local ADDITIONAL_PARAMETERS case $COMMAND in - 'help' | '--help' ) + 'help' | '--help') local NVM_IOJS_PREFIX NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" local NVM_NODE_PREFIX @@ -2321,7 +2320,7 @@ nvm() { nvm_echo nvm_echo 'Note: refers to any version-like string nvm understands. This includes:' nvm_echo ' - full or partial version numbers, starting with an optional "v" (0.10, v0.1.2, v1)' - nvm_echo " - default (built-in) aliases: $NVM_NODE_PREFIX, stable, unstable, $NVM_IOJS_PREFIX, system" + nvm_echo " - default (built-in) aliases: ${NVM_NODE_PREFIX}, stable, unstable, ${NVM_IOJS_PREFIX}, system" nvm_echo ' - custom aliases you define with `nvm alias foo`' nvm_echo nvm_echo ' Any options that produce colorized output should respect the `--no-colors` option.' @@ -2384,7 +2383,7 @@ nvm() { nvm_echo ;; - "cache" ) + "cache") case "${1-}" in dir) nvm_cache_dir ;; clear) @@ -2404,21 +2403,21 @@ nvm() { esac ;; - "debug" ) + "debug") local OS_VERSION nvm_is_zsh && setopt local_options shwordsplit nvm_err "nvm --version: v$(nvm --version)" if [ -n "${TERM_PROGRAM-}" ]; then - nvm_err "\$TERM_PROGRAM: $TERM_PROGRAM" + nvm_err "\$TERM_PROGRAM: ${TERM_PROGRAM}" fi - nvm_err "\$SHELL: $SHELL" + nvm_err "\$SHELL: ${SHELL}" # shellcheck disable=SC2169 nvm_err "\$SHLVL: ${SHLVL-}" - nvm_err "\$HOME: $HOME" - nvm_err "\$NVM_DIR: '$(nvm_sanitize_path "$NVM_DIR")'" - nvm_err "\$PATH: $(nvm_sanitize_path "$PATH")" - nvm_err "\$PREFIX: '$(nvm_sanitize_path "$PREFIX")'" - nvm_err "\$NPM_CONFIG_PREFIX: '$(nvm_sanitize_path "$NPM_CONFIG_PREFIX")'" + nvm_err "\${HOME}: ${HOME}" + nvm_err "\${NVM_DIR}: '$(nvm_sanitize_path "${NVM_DIR}")'" + nvm_err "\${PATH}: $(nvm_sanitize_path "${PATH}")" + nvm_err "\$PREFIX: '$(nvm_sanitize_path "${PREFIX}")'" + nvm_err "\${NPM_CONFIG_PREFIX}: '$(nvm_sanitize_path "${NPM_CONFIG_PREFIX}")'" nvm_err "\$NVM_NODEJS_ORG_MIRROR: '${NVM_NODEJS_ORG_MIRROR}'" nvm_err "\$NVM_IOJS_ORG_MIRROR: '${NVM_IOJS_ORG_MIRROR}'" nvm_err "shell version: '$(${SHELL} --version | command head -n 1)'" @@ -2427,7 +2426,7 @@ nvm() { OS_VERSION="$(sw_vers | command awk '{print $2}' | command xargs)" elif [ -r "/etc/issue" ]; then OS_VERSION="$(command head -n 1 /etc/issue | command sed 's/\\.//g')" - if [ -z "${OS_VERSION}" ] && [ -r "/etc/os-release" ] ; then + if [ -z "${OS_VERSION}" ] && [ -r "/etc/os-release" ]; then # shellcheck disable=SC1091 OS_VERSION="$(. /etc/os-release && echo "${NAME}" "${VERSION}")" fi @@ -2477,15 +2476,14 @@ nvm() { unset TEST_TOOLS ADD_TEST_TOOLS local NVM_DEBUG_OUTPUT - for NVM_DEBUG_COMMAND in 'nvm current' 'which node' 'which iojs' 'which npm' 'npm config get prefix' 'npm root -g' - do - NVM_DEBUG_OUTPUT="$($NVM_DEBUG_COMMAND 2>&1)" - nvm_err "$NVM_DEBUG_COMMAND: $(nvm_sanitize_path "$NVM_DEBUG_OUTPUT")" + for NVM_DEBUG_COMMAND in 'nvm current' 'which node' 'which iojs' 'which npm' 'npm config get prefix' 'npm root -g'; do + NVM_DEBUG_OUTPUT="$(${NVM_DEBUG_COMMAND} 2>&1)" + nvm_err "${NVM_DEBUG_COMMAND}: $(nvm_sanitize_path "${NVM_DEBUG_OUTPUT}")" done return 42 ;; - "install" | "i" ) + "install" | "i") local version_not_provided version_not_provided=0 local NVM_OS @@ -2507,8 +2505,7 @@ nvm() { local LTS local NVM_UPGRADE_NPM NVM_UPGRADE_NPM=0 - while [ $# -ne 0 ] - do + while [ $# -ne 0 ]; do case "$1" in -s) shift # consume "-s" @@ -2544,25 +2541,25 @@ nvm() { local provided_version provided_version="${1-}" - if [ -z "$provided_version" ]; then + if [ -z "${provided_version}" ]; then if [ "_${LTS-}" = '_*' ]; then nvm_echo 'Installing latest LTS version.' if [ $# -gt 0 ]; then shift fi elif [ "_${LTS-}" != '_' ]; then - nvm_echo "Installing with latest version of LTS line: $LTS" + nvm_echo "Installing with latest version of LTS line: ${LTS}" if [ $# -gt 0 ]; then shift fi else nvm_rc_version - if [ $version_not_provided -eq 1 ] && [ -z "$NVM_RC_VERSION" ]; then + if [ $version_not_provided -eq 1 ] && [ -z "${NVM_RC_VERSION}" ]; then unset NVM_RC_VERSION >&2 nvm --help return 127 fi - provided_version="$NVM_RC_VERSION" + provided_version="${NVM_RC_VERSION}" unset NVM_RC_VERSION fi elif [ $# -gt 0 ]; then @@ -2589,12 +2586,12 @@ nvm() { LTS_MSG='(with LTS filter) ' REMOTE_CMD='nvm ls-remote --lts' elif [ -n "${LTS-}" ]; then - LTS_MSG="(with LTS filter '$LTS') " + LTS_MSG="(with LTS filter '${LTS}') " REMOTE_CMD="nvm ls-remote --lts=${LTS}" else REMOTE_CMD='nvm ls-remote' fi - nvm_err "Version '$provided_version' ${LTS_MSG-}not found - try \`${REMOTE_CMD}\` to browse available versions." + nvm_err "Version '${provided_version}' ${LTS_MSG-}not found - try \`${REMOTE_CMD}\` to browse available versions." return 3 fi @@ -2604,8 +2601,7 @@ nvm() { local SKIP_DEFAULT_PACKAGES local DEFAULT_PACKAGES - while [ $# -ne 0 ] - do + while [ $# -ne 0 ]; do case "$1" in --reinstall-packages-from=*) PROVIDED_REINSTALL_PACKAGES_FROM="$(nvm_echo "$1" | command cut -c 27-)" @@ -2613,7 +2609,7 @@ nvm() { nvm_err 'If --reinstall-packages-from is provided, it must point to an installed version of node.' return 6 fi - REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM")" ||: + REINSTALL_PACKAGES_FROM="$(nvm_version "${PROVIDED_REINSTALL_PACKAGES_FROM}")" ||: ;; --reinstall-packages-from) nvm_err 'If --reinstall-packages-from is provided, it must point to an installed version of node using `=`.' @@ -2621,13 +2617,13 @@ nvm() { ;; --copy-packages-from=*) PROVIDED_REINSTALL_PACKAGES_FROM="$(nvm_echo "$1" | command cut -c 22-)" - REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM")" ||: + REINSTALL_PACKAGES_FROM="$(nvm_version "${PROVIDED_REINSTALL_PACKAGES_FROM}")" ||: ;; --skip-default-packages) SKIP_DEFAULT_PACKAGES=true ;; *) - ADDITIONAL_PARAMETERS="$ADDITIONAL_PARAMETERS $1" + ADDITIONAL_PARAMETERS="${ADDITIONAL_PARAMETERS} $1" ;; esac shift @@ -2643,11 +2639,11 @@ nvm() { [ -n "${line}" ] || continue # Skip comment lines that begin with `#`. - [ "$(nvm_echo "$line" | command cut -c1)" != "#" ] || continue + [ "$(nvm_echo "${line}" | command cut -c1)" != "#" ] || continue # Fail on lines that have multiple space-separated words - case ${line} in - *\ * ) + case $line in + *\ *) nvm_err "Only one package per line is allowed in the ${NVM_DIR}/default-packages file. Please remove any lines with multiple space-separated values." return 1 ;; @@ -2666,30 +2662,30 @@ nvm() { fi local FLAVOR - if nvm_is_iojs_version "$VERSION"; then + if nvm_is_iojs_version "${VERSION}"; then FLAVOR="$(nvm_iojs_prefix)" else FLAVOR="$(nvm_node_prefix)" fi - if nvm_is_version_installed "$VERSION"; then - nvm_err "$VERSION is already installed." - if nvm use "$VERSION"; then + if nvm_is_version_installed "${VERSION}"; then + nvm_err "${VERSION} is already installed." + if nvm use "${VERSION}"; then if [ "${NVM_UPGRADE_NPM}" = 1 ]; then nvm install-latest-npm fi if [ -z "${SKIP_DEFAULT_PACKAGES-}" ] && [ -n "${DEFAULT_PACKAGES-}" ]; then - nvm_install_default_packages "$DEFAULT_PACKAGES" + nvm_install_default_packages "${DEFAULT_PACKAGES}" fi - if [ -n "${REINSTALL_PACKAGES_FROM-}" ] && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then - nvm reinstall-packages "$REINSTALL_PACKAGES_FROM" + if [ -n "${REINSTALL_PACKAGES_FROM-}" ] && [ "_${REINSTALL_PACKAGES_FROM}" != "_N/A" ]; then + nvm reinstall-packages "${REINSTALL_PACKAGES_FROM}" fi fi if [ -n "${LTS-}" ]; then LTS="$(echo "${LTS}" | tr '[:upper:]' '[:lower:]')" nvm_ensure_default_set "lts/${LTS}" else - nvm_ensure_default_set "$provided_version" + nvm_ensure_default_set "${provided_version}" fi return $? fi @@ -2717,24 +2713,24 @@ nvm() { EXIT_CODE=0 else - if [ "_$NVM_OS" = "_freebsd" ]; then + if [ "_${NVM_OS}" = "_freebsd" ]; then # node.js and io.js do not have a FreeBSD binary nobinary=1 nvm_err "Currently, there is no binary for FreeBSD" - elif [ "_$NVM_OS" = "_sunos" ]; then + elif [ "_${NVM_OS}" = "_sunos" ]; then # Not all node/io.js versions have a Solaris binary - if ! nvm_has_solaris_binary "$VERSION"; then + if ! nvm_has_solaris_binary "${VERSION}"; then nobinary=1 - nvm_err "Currently, there is no binary of version $VERSION for SunOS" + nvm_err "Currently, there is no binary of version ${VERSION} for SunOS" fi fi # skip binary install if "nobinary" option specified. - if [ $nobinary -ne 1 ] && nvm_binary_available "$VERSION"; then + if [ $nobinary -ne 1 ] && nvm_binary_available "${VERSION}"; then NVM_NO_PROGRESS="${NVM_NO_PROGRESS:-${noprogress}}" nvm_install_binary "${FLAVOR}" std "${VERSION}" EXIT_CODE=$? fi - if [ "$EXIT_CODE" -ne 0 ]; then + if [ $EXIT_CODE -ne 0 ]; then if [ -z "${NVM_MAKE_JOBS-}" ]; then nvm_get_make_jobs fi @@ -2745,21 +2741,21 @@ nvm() { fi - if [ "$EXIT_CODE" -eq 0 ] && nvm_use_if_needed "${VERSION}" && nvm_install_npm_if_needed "${VERSION}"; then + if [ $EXIT_CODE -eq 0 ] && nvm_use_if_needed "${VERSION}" && nvm_install_npm_if_needed "${VERSION}"; then if [ -n "${LTS-}" ]; then nvm_ensure_default_set "lts/${LTS}" else - nvm_ensure_default_set "$provided_version" + nvm_ensure_default_set "${provided_version}" fi if [ "${NVM_UPGRADE_NPM}" = 1 ]; then nvm install-latest-npm EXIT_CODE=$? fi if [ -z "${SKIP_DEFAULT_PACKAGES-}" ] && [ -n "${DEFAULT_PACKAGES-}" ]; then - nvm_install_default_packages "$DEFAULT_PACKAGES" + nvm_install_default_packages "${DEFAULT_PACKAGES}" fi - if [ -n "${REINSTALL_PACKAGES_FROM-}" ] && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then - nvm reinstall-packages "$REINSTALL_PACKAGES_FROM" + if [ -n "${REINSTALL_PACKAGES_FROM-}" ] && [ "_${REINSTALL_PACKAGES_FROM}" != "_N/A" ]; then + nvm reinstall-packages "${REINSTALL_PACKAGES_FROM}" EXIT_CODE=$? fi else @@ -2767,7 +2763,7 @@ nvm() { fi return $EXIT_CODE ;; - "uninstall" ) + "uninstall") if [ $# -ne 1 ]; then >&2 nvm --help return 127 @@ -2802,7 +2798,7 @@ nvm() { if ! nvm_is_version_installed "${VERSION}"; then nvm_err "${VERSION} version is not installed..." - return; + return fi local SLUG_BINARY @@ -2843,42 +2839,41 @@ nvm() { nvm_echo "${NVM_SUCCESS_MSG}" # rm any aliases that point to uninstalled version. - for ALIAS in $(nvm_grep -l "$VERSION" "$(nvm_alias_path)/*" 2>/dev/null) - do - nvm unalias "$(command basename "$ALIAS")" + for ALIAS in $(nvm_grep -l "${VERSION}" "$(nvm_alias_path)/*" 2>/dev/null); do + nvm unalias "$(command basename "${ALIAS}")" done ;; - "deactivate" ) + "deactivate") local NEWPATH - NEWPATH="$(nvm_strip_path "$PATH" "/bin")" - if [ "_$PATH" = "_$NEWPATH" ]; then - nvm_err "Could not find $NVM_DIR/*/bin in \$PATH" + NEWPATH="$(nvm_strip_path "${PATH}" "/bin")" + if [ "_${PATH}" = "_${NEWPATH}" ]; then + nvm_err "Could not find ${NVM_DIR}/*/bin in \${PATH}" else - export PATH="$NEWPATH" + export PATH="${NEWPATH}" hash -r - nvm_echo "$NVM_DIR/*/bin removed from \$PATH" + nvm_echo "${NVM_DIR}/*/bin removed from \${PATH}" fi if [ -n "${MANPATH-}" ]; then - NEWPATH="$(nvm_strip_path "$MANPATH" "/share/man")" - if [ "_$MANPATH" = "_$NEWPATH" ]; then - nvm_err "Could not find $NVM_DIR/*/share/man in \$MANPATH" + NEWPATH="$(nvm_strip_path "${MANPATH}" "/share/man")" + if [ "_${MANPATH}" = "_${NEWPATH}" ]; then + nvm_err "Could not find ${NVM_DIR}/*/share/man in \${MANPATH}" else - export MANPATH="$NEWPATH" - nvm_echo "$NVM_DIR/*/share/man removed from \$MANPATH" + export MANPATH="${NEWPATH}" + nvm_echo "${NVM_DIR}/*/share/man removed from \${MANPATH}" fi fi if [ -n "${NODE_PATH-}" ]; then - NEWPATH="$(nvm_strip_path "$NODE_PATH" "/lib/node_modules")" - if [ "_$NODE_PATH" != "_$NEWPATH" ]; then - export NODE_PATH="$NEWPATH" - nvm_echo "$NVM_DIR/*/lib/node_modules removed from \$NODE_PATH" + NEWPATH="$(nvm_strip_path "${NODE_PATH}" "/lib/node_modules")" + if [ "_${NODE_PATH}" != "_${NEWPATH}" ]; then + export NODE_PATH="${NEWPATH}" + nvm_echo "${NVM_DIR}/*/lib/node_modules removed from \${NODE_PATH}" fi fi unset NVM_BIN ;; - "use" ) + "use") local PROVIDED_VERSION local NVM_USE_SILENT NVM_USE_SILENT=0 @@ -2886,8 +2881,7 @@ nvm() { NVM_DELETE_PREFIX=0 local NVM_LTS - while [ $# -ne 0 ] - do + while [ $# -ne 0 ]; do case "$1" in --silent) NVM_USE_SILENT=1 ;; --delete-prefix) NVM_DELETE_PREFIX=1 ;; @@ -2909,12 +2903,12 @@ nvm() { elif [ -z "${PROVIDED_VERSION-}" ]; then nvm_rc_version if [ -n "${NVM_RC_VERSION-}" ]; then - PROVIDED_VERSION="$NVM_RC_VERSION" - VERSION="$(nvm_version "$PROVIDED_VERSION")" + PROVIDED_VERSION="${NVM_RC_VERSION}" + VERSION="$(nvm_version "${PROVIDED_VERSION}")" fi unset NVM_RC_VERSION else - VERSION="$(nvm_match_version "$PROVIDED_VERSION")" + VERSION="$(nvm_match_version "${PROVIDED_VERSION}")" fi if [ -z "${VERSION}" ]; then @@ -2922,7 +2916,7 @@ nvm() { return 127 fi - if [ "_$VERSION" = '_system' ]; then + if [ "_${VERSION}" = '_system' ]; then if nvm_has_system_node && nvm deactivate >/dev/null 2>&1; then if [ $NVM_USE_SILENT -ne 1 ]; then nvm_echo "Now using system version of node: $(node -v 2>/dev/null)$(nvm_print_npm_version)" @@ -2937,9 +2931,9 @@ nvm() { nvm_err 'System version of node not found.' fi return 127 - elif [ "_$VERSION" = "_∞" ]; then + elif [ "_${VERSION}" = "_∞" ]; then if [ $NVM_USE_SILENT -ne 1 ]; then - nvm_err "The alias \"$PROVIDED_VERSION\" leads to an infinite loop. Aborting." + nvm_err "The alias \"${PROVIDED_VERSION}\" leads to an infinite loop. Aborting." fi return 8 fi @@ -2955,52 +2949,52 @@ nvm() { fi local NVM_VERSION_DIR - NVM_VERSION_DIR="$(nvm_version_path "$VERSION")" + NVM_VERSION_DIR="$(nvm_version_path "${VERSION}")" # Change current version - PATH="$(nvm_change_path "$PATH" "/bin" "$NVM_VERSION_DIR")" + PATH="$(nvm_change_path "${PATH}" "/bin" "${NVM_VERSION_DIR}")" if nvm_has manpath; then if [ -z "${MANPATH-}" ]; then local MANPATH MANPATH=$(manpath) fi # Change current version - MANPATH="$(nvm_change_path "$MANPATH" "/share/man" "$NVM_VERSION_DIR")" + MANPATH="$(nvm_change_path "${MANPATH}" "/share/man" "${NVM_VERSION_DIR}")" export MANPATH fi export PATH hash -r - export NVM_BIN="$NVM_VERSION_DIR/bin" + export NVM_BIN="${NVM_VERSION_DIR}/bin" if [ "${NVM_SYMLINK_CURRENT-}" = true ]; then - command rm -f "$NVM_DIR/current" && ln -s "$NVM_VERSION_DIR" "$NVM_DIR/current" + command rm -f "${NVM_DIR}/current" && ln -s "${NVM_VERSION_DIR}" "${NVM_DIR}/current" fi local NVM_USE_OUTPUT NVM_USE_OUTPUT='' if [ $NVM_USE_SILENT -ne 1 ]; then - if nvm_is_iojs_version "$VERSION"; then - NVM_USE_OUTPUT="Now using io.js $(nvm_strip_iojs_prefix "$VERSION")$(nvm_print_npm_version)" + if nvm_is_iojs_version "${VERSION}"; then + NVM_USE_OUTPUT="Now using io.js $(nvm_strip_iojs_prefix "${VERSION}")$(nvm_print_npm_version)" else - NVM_USE_OUTPUT="Now using node $VERSION$(nvm_print_npm_version)" + NVM_USE_OUTPUT="Now using node ${VERSION}$(nvm_print_npm_version)" fi fi - if [ "_$VERSION" != "_system" ]; then + if [ "_${VERSION}" != "_system" ]; then local NVM_USE_CMD NVM_USE_CMD="nvm use --delete-prefix" - if [ -n "$PROVIDED_VERSION" ]; then - NVM_USE_CMD="$NVM_USE_CMD $VERSION" + if [ -n "${PROVIDED_VERSION}" ]; then + NVM_USE_CMD="${NVM_USE_CMD} ${VERSION}" fi if [ $NVM_USE_SILENT -eq 1 ]; then - NVM_USE_CMD="$NVM_USE_CMD --silent" + NVM_USE_CMD="${NVM_USE_CMD} --silent" fi - if ! nvm_die_on_prefix "$NVM_DELETE_PREFIX" "$NVM_USE_CMD"; then + if ! nvm_die_on_prefix "${NVM_DELETE_PREFIX}" "${NVM_USE_CMD}"; then return 11 fi fi if [ -n "${NVM_USE_OUTPUT-}" ]; then - nvm_echo "$NVM_USE_OUTPUT" + nvm_echo "${NVM_USE_OUTPUT}" fi ;; - "run" ) + "run") local provided_version local has_checked_nvmrc has_checked_nvmrc=0 @@ -3008,8 +3002,7 @@ nvm() { local NVM_SILENT local NVM_LTS - while [ $# -gt 0 ] - do + while [ $# -gt 0 ]; do case "$1" in --silent) NVM_SILENT='--silent' ; shift ;; --lts) NVM_LTS='*' ; shift ;; @@ -3030,8 +3023,8 @@ nvm() { else nvm_rc_version && has_checked_nvmrc=1 fi - if [ -n "$NVM_RC_VERSION" ]; then - VERSION="$(nvm_version "$NVM_RC_VERSION")" ||: + if [ -n "${NVM_RC_VERSION-}" ]; then + VERSION="$(nvm_version "${NVM_RC_VERSION-}")" ||: fi unset NVM_RC_VERSION if [ "${VERSION:-N/A}" = 'N/A' ]; then @@ -3042,9 +3035,9 @@ nvm() { if [ -z "${NVM_LTS-}" ]; then provided_version="$1" - if [ -n "$provided_version" ]; then - VERSION="$(nvm_version "$provided_version")" ||: - if [ "_${VERSION:-N/A}" = '_N/A' ] && ! nvm_is_valid_version "$provided_version"; then + if [ -n "${provided_version}" ]; then + VERSION="$(nvm_version "${provided_version}")" ||: + if [ "_${VERSION:-N/A}" = '_N/A' ] && ! nvm_is_valid_version "${provided_version}"; then provided_version='' if [ $has_checked_nvmrc -ne 1 ]; then if [ -n "${NVM_SILENT-}" ]; then @@ -3053,7 +3046,7 @@ nvm() { nvm_rc_version && has_checked_nvmrc=1 fi fi - VERSION="$(nvm_version "$NVM_RC_VERSION")" ||: + VERSION="$(nvm_version "${NVM_RC_VERSION}")" ||: unset NVM_RC_VERSION else shift @@ -3062,7 +3055,7 @@ nvm() { fi local NVM_IOJS - if nvm_is_iojs_version "$VERSION"; then + if nvm_is_iojs_version "${VERSION}"; then NVM_IOJS=true fi @@ -3074,21 +3067,20 @@ nvm() { LTS_ARG="--lts=${NVM_LTS-}" VERSION='' fi - if [ "_$VERSION" = "_N/A" ]; then - nvm_ensure_version_installed "$provided_version" - elif [ "$NVM_IOJS" = true ]; then - nvm exec "${NVM_SILENT-}" "${LTS_ARG-}" "$VERSION" iojs "$@" + if [ "_${VERSION}" = "_N/A" ]; then + nvm_ensure_version_installed "${provided_version}" + elif [ "${NVM_IOJS}" = true ]; then + nvm exec "${NVM_SILENT-}" "${LTS_ARG-}" "${VERSION}" iojs "$@" else - nvm exec "${NVM_SILENT-}" "${LTS_ARG-}" "$VERSION" node "$@" + nvm exec "${NVM_SILENT-}" "${LTS_ARG-}" "${VERSION}" node "$@" fi EXIT_CODE="$?" return $EXIT_CODE ;; - "exec" ) + "exec") local NVM_SILENT local NVM_LTS - while [ $# -gt 0 ] - do + while [ $# -gt 0 ]; do case "$1" in --silent) NVM_SILENT='--silent' ; shift ;; --lts) NVM_LTS='*' ; shift ;; @@ -3112,53 +3104,52 @@ nvm() { provided_version="$1" if [ "${NVM_LTS-}" != '' ]; then provided_version="lts/${NVM_LTS:-*}" - VERSION="$provided_version" - elif [ -n "$provided_version" ]; then - VERSION="$(nvm_version "$provided_version")" ||: - if [ "_$VERSION" = '_N/A' ] && ! nvm_is_valid_version "$provided_version"; then + VERSION="${provided_version}" + elif [ -n "${provided_version}" ]; then + VERSION="$(nvm_version "${provided_version}")" ||: + if [ "_${VERSION}" = '_N/A' ] && ! nvm_is_valid_version "${provided_version}"; then if [ -n "${NVM_SILENT-}" ]; then nvm_rc_version >/dev/null 2>&1 else nvm_rc_version fi - provided_version="$NVM_RC_VERSION" + provided_version="${NVM_RC_VERSION}" unset NVM_RC_VERSION - VERSION="$(nvm_version "$provided_version")" ||: + VERSION="$(nvm_version "${provided_version}")" ||: else shift fi fi - nvm_ensure_version_installed "$provided_version" + nvm_ensure_version_installed "${provided_version}" EXIT_CODE=$? - if [ "$EXIT_CODE" != "0" ]; then + if [ "${EXIT_CODE}" != "0" ]; then return $EXIT_CODE fi if [ -z "${NVM_SILENT-}" ]; then if [ "${NVM_LTS-}" = '*' ]; then - nvm_echo "Running node latest LTS -> $(nvm_version "$VERSION")$(nvm use --silent "$VERSION" && nvm_print_npm_version)" + nvm_echo "Running node latest LTS -> $(nvm_version "${VERSION}")$(nvm use --silent "${VERSION}" && nvm_print_npm_version)" elif [ -n "${NVM_LTS-}" ]; then - nvm_echo "Running node LTS \"${NVM_LTS-}\" -> $(nvm_version "$VERSION")$(nvm use --silent "$VERSION" && nvm_print_npm_version)" - elif nvm_is_iojs_version "$VERSION"; then - nvm_echo "Running io.js $(nvm_strip_iojs_prefix "$VERSION")$(nvm use --silent "$VERSION" && nvm_print_npm_version)" + nvm_echo "Running node LTS \"${NVM_LTS-}\" -> $(nvm_version "${VERSION}")$(nvm use --silent "${VERSION}" && nvm_print_npm_version)" + elif nvm_is_iojs_version "${VERSION}"; then + nvm_echo "Running io.js $(nvm_strip_iojs_prefix "${VERSION}")$(nvm use --silent "${VERSION}" && nvm_print_npm_version)" else - nvm_echo "Running node $VERSION$(nvm use --silent "$VERSION" && nvm_print_npm_version)" + nvm_echo "Running node ${VERSION}$(nvm use --silent "${VERSION}" && nvm_print_npm_version)" fi fi - NODE_VERSION="$VERSION" "$NVM_DIR/nvm-exec" "$@" + NODE_VERSION="${VERSION}" "${NVM_DIR}/nvm-exec" "$@" ;; - "ls" | "list" ) + "ls" | "list") local PATTERN local NVM_NO_COLORS - while [ $# -gt 0 ] - do + while [ $# -gt 0 ]; do case "${1}" in --) ;; --no-colors) NVM_NO_COLORS="${1}" ;; --*) nvm_err "Unsupported option \"${1}\"." - return 55; + return 55 ;; *) PATTERN="${PATTERN:-$1}" @@ -3170,7 +3161,7 @@ nvm() { local NVM_LS_EXIT_CODE NVM_LS_OUTPUT=$(nvm_ls "${PATTERN-}") NVM_LS_EXIT_CODE=$? - NVM_NO_COLORS="${NVM_NO_COLORS-}" nvm_print_versions "$NVM_LS_OUTPUT" + NVM_NO_COLORS="${NVM_NO_COLORS-}" nvm_print_versions "${NVM_LS_OUTPUT}" if [ -z "${PATTERN-}" ]; then if [ -n "${NVM_NO_COLORS-}" ]; then nvm alias --no-colors @@ -3180,12 +3171,11 @@ nvm() { fi return $NVM_LS_EXIT_CODE ;; - "ls-remote" | "list-remote" ) + "ls-remote" | "list-remote") local NVM_LTS local PATTERN local NVM_NO_COLORS - while [ $# -gt 0 ] - do + while [ $# -gt 0 ]; do case "${1-}" in --) ;; --lts) @@ -3197,7 +3187,7 @@ nvm() { --no-colors) NVM_NO_COLORS="${1}" ;; --*) nvm_err "Unsupported option \"${1}\"." - return 55; + return 55 ;; *) if [ -z "${PATTERN-}" ]; then @@ -3218,17 +3208,17 @@ nvm() { local EXIT_CODE NVM_OUTPUT="$(NVM_LTS="${NVM_LTS-}" nvm_remote_versions "${PATTERN}" &&:)" EXIT_CODE=$? - if [ -n "$NVM_OUTPUT" ]; then - NVM_NO_COLORS="${NVM_NO_COLORS-}" nvm_print_versions "$NVM_OUTPUT" + if [ -n "${NVM_OUTPUT}" ]; then + NVM_NO_COLORS="${NVM_NO_COLORS-}" nvm_print_versions "${NVM_OUTPUT}" return $EXIT_CODE fi NVM_NO_COLORS="${NVM_NO_COLORS-}" nvm_print_versions "N/A" return 3 ;; - "current" ) + "current") nvm_version current ;; - "which" ) + "which") local provided_version provided_version="${1-}" if [ $# -eq 0 ]; then @@ -3248,33 +3238,33 @@ nvm() { return 127 fi - if [ "_$VERSION" = '_system' ]; then + if [ "_${VERSION}" = '_system' ]; then if nvm_has_system_iojs >/dev/null 2>&1 || nvm_has_system_node >/dev/null 2>&1; then local NVM_BIN NVM_BIN="$(nvm use system >/dev/null 2>&1 && command which node)" - if [ -n "$NVM_BIN" ]; then - nvm_echo "$NVM_BIN" + if [ -n "${NVM_BIN}" ]; then + nvm_echo "${NVM_BIN}" return fi return 1 fi nvm_err 'System version of node not found.' return 127 - elif [ "_$VERSION" = "_∞" ]; then + elif [ "_${VERSION}" = "_∞" ]; then nvm_err "The alias \"$2\" leads to an infinite loop. Aborting." return 8 fi - nvm_ensure_version_installed "$provided_version" + nvm_ensure_version_installed "${provided_version}" EXIT_CODE=$? - if [ "$EXIT_CODE" != "0" ]; then + if [ "${EXIT_CODE}" != "0" ]; then return $EXIT_CODE fi local NVM_VERSION_DIR - NVM_VERSION_DIR="$(nvm_version_path "$VERSION")" - nvm_echo "$NVM_VERSION_DIR/bin/node" + NVM_VERSION_DIR="$(nvm_version_path "${VERSION}")" + nvm_echo "${NVM_VERSION_DIR}/bin/node" ;; - "alias" ) + "alias") local NVM_ALIAS_DIR NVM_ALIAS_DIR="$(nvm_alias_path)" local NVM_CURRENT @@ -3287,8 +3277,7 @@ nvm() { local NVM_NO_COLORS ALIAS='--' TARGET='--' - while [ $# -gt 0 ] - do + while [ $# -gt 0 ]; do case "${1-}" in --) ;; --no-colors) NVM_NO_COLORS="${1}" ;; @@ -3323,7 +3312,7 @@ nvm() { nvm_err "! WARNING: Version '${TARGET}' does not exist." fi nvm_make_alias "${ALIAS}" "${TARGET}" - NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_CURRENT="${NVM_CURRENT-}" DEFAULT=false nvm_print_formatted_alias "${ALIAS}" "${TARGET}" "$VERSION" + NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_CURRENT="${NVM_CURRENT-}" DEFAULT=false nvm_print_formatted_alias "${ALIAS}" "${TARGET}" "${VERSION}" else if [ "${ALIAS-}" = '--' ]; then unset ALIAS @@ -3332,10 +3321,10 @@ nvm() { nvm_list_aliases "${ALIAS-}" fi ;; - "unalias" ) + "unalias") local NVM_ALIAS_DIR NVM_ALIAS_DIR="$(nvm_alias_path)" - command mkdir -p "$NVM_ALIAS_DIR" + command mkdir -p "${NVM_ALIAS_DIR}" if [ $# -ne 1 ]; then >&2 nvm --help return 127 @@ -3344,11 +3333,11 @@ nvm() { nvm_err 'Aliases in subdirectories are not supported.' return 1 fi - [ ! -f "$NVM_ALIAS_DIR/${1-}" ] && nvm_err "Alias ${1-} doesn't exist!" && return + [ ! -f "${NVM_ALIAS_DIR}/${1-}" ] && nvm_err "Alias ${1-} doesn't exist!" && return local NVM_ALIAS_ORIGINAL NVM_ALIAS_ORIGINAL="$(nvm_alias "${1}")" - command rm -f "$NVM_ALIAS_DIR/${1}" - nvm_echo "Deleted alias ${1} - restore it with \`nvm alias \"${1}\" \"$NVM_ALIAS_ORIGINAL\"\`" + command rm -f "${NVM_ALIAS_DIR}/${1}" + nvm_echo "Deleted alias ${1} - restore it with \`nvm alias \"${1}\" \"${NVM_ALIAS_ORIGINAL}\"\`" ;; "install-latest-npm") if [ $# -ne 0 ]; then @@ -3358,7 +3347,7 @@ nvm() { nvm_install_latest_npm ;; - "reinstall-packages" | "copy-packages" ) + "reinstall-packages" | "copy-packages") if [ $# -ne 1 ]; then >&2 nvm --help return 127 @@ -3367,45 +3356,45 @@ nvm() { local PROVIDED_VERSION PROVIDED_VERSION="${1-}" - if [ "$PROVIDED_VERSION" = "$(nvm_ls_current)" ] || [ "$(nvm_version "$PROVIDED_VERSION" ||:)" = "$(nvm_ls_current)" ]; then + if [ "${PROVIDED_VERSION}" = "$(nvm_ls_current)" ] || [ "$(nvm_version "${PROVIDED_VERSION}" ||:)" = "$(nvm_ls_current)" ]; then nvm_err 'Can not reinstall packages from the current version of node.' return 2 fi local VERSION - if [ "_$PROVIDED_VERSION" = "_system" ]; then + if [ "_${PROVIDED_VERSION}" = "_system" ]; then if ! nvm_has_system_node && ! nvm_has_system_iojs; then nvm_err 'No system version of node or io.js detected.' return 3 fi VERSION="system" else - VERSION="$(nvm_version "$PROVIDED_VERSION")" ||: + VERSION="$(nvm_version "${PROVIDED_VERSION}")" ||: fi local NPMLIST - NPMLIST="$(nvm_npm_global_modules "$VERSION")" + NPMLIST="$(nvm_npm_global_modules "${VERSION}")" local INSTALLS local LINKS INSTALLS="${NPMLIST%% //// *}" LINKS="${NPMLIST##* //// }" - nvm_echo "Reinstalling global packages from $VERSION..." + nvm_echo "Reinstalling global packages from ${VERSION}..." if [ -n "${INSTALLS}" ]; then - nvm_echo "$INSTALLS" | command xargs npm install -g --quiet + nvm_echo "${INSTALLS}" | command xargs npm install -g --quiet else nvm_echo "No installed global packages found..." fi - nvm_echo "Linking global packages from $VERSION..." + nvm_echo "Linking global packages from ${VERSION}..." if [ -n "${LINKS}" ]; then ( set -f; IFS=' ' # necessary to turn off variable expansion except for newlines - for LINK in $LINKS; do + for LINK in ${LINKS}; do set +f; unset IFS # restore variable expansion - if [ -n "$LINK" ]; then - (nvm_cd "$LINK" && npm link) + if [ -n "${LINK}" ]; then + (nvm_cd "${LINK}" && npm link) fi done ) @@ -3413,18 +3402,17 @@ nvm() { nvm_echo "No linked global packages found..." fi ;; - "clear-cache" ) - command rm -f "$NVM_DIR/v*" "$(nvm_version_dir)" 2>/dev/null + "clear-cache") + command rm -f "${NVM_DIR}/v*" "$(nvm_version_dir)" 2>/dev/null nvm_echo 'nvm cache cleared.' ;; - "version" ) + "version") nvm_version "${1}" ;; - "version-remote" ) + "version-remote") local NVM_LTS local PATTERN - while [ $# -gt 0 ] - do + while [ $# -gt 0 ]; do case "${1-}" in --) ;; --lts) @@ -3435,7 +3423,7 @@ nvm() { ;; --*) nvm_err "Unsupported option \"${1}\"." - return 55; + return 55 ;; *) PATTERN="${PATTERN:-${1}}" @@ -3455,10 +3443,10 @@ nvm() { esac NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; - "--version" ) + "--version") nvm_echo '0.34.0' ;; - "unload" ) + "unload") nvm deactivate >/dev/null 2>&1 unset -f nvm \ nvm_iojs_prefix nvm_node_prefix \ @@ -3495,12 +3483,12 @@ nvm() { nvm_sanitize_path nvm_has_colors nvm_process_parameters \ node_version_has_solaris_binary iojs_version_has_solaris_binary \ nvm_curl_libz_support nvm_command_info nvm_is_zsh \ - > /dev/null 2>&1 + >/dev/null 2>&1 unset NVM_RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_IOJS_ORG_MIRROR NVM_DIR \ NVM_CD_FLAGS NVM_BIN NVM_MAKE_JOBS \ - > /dev/null 2>&1 + >/dev/null 2>&1 ;; - * ) + *) >&2 nvm --help return 127 ;; @@ -3518,7 +3506,7 @@ nvm_install_default_packages() { nvm_supports_source_options() { # shellcheck disable=SC1091 - [ "_$(nvm_echo '[ $# -gt 0 ] && nvm_echo $1' | . /dev/stdin yes 2> /dev/null)" = "_yes" ] + [ "_$(nvm_echo '[ $# -gt 0 ] && nvm_echo $1' | . /dev/stdin yes 2>/dev/null)" = "_yes" ] } nvm_supports_xz() { @@ -3532,14 +3520,12 @@ nvm_supports_xz() { fi # 0.12x: node v0.12.10 and later have xz - if nvm_version_greater_than_or_equal_to "${1}" "0.12.10" \ - && nvm_version_greater "0.13.0" "${1}"; then + if nvm_version_greater_than_or_equal_to "${1}" "0.12.10" && nvm_version_greater "0.13.0" "${1}"; then return 0 fi # 0.10x: node v0.10.42 and later have xz - if nvm_version_greater_than_or_equal_to "${1}" "0.10.42" \ - && nvm_version_greater "0.11.0" "${1}"; then + if nvm_version_greater_than_or_equal_to "${1}" "0.10.42" && nvm_version_greater "0.11.0" "${1}"; then return 0 fi @@ -3563,10 +3549,10 @@ nvm_auto() { local NVM_MODE NVM_MODE="${1-}" local VERSION - if [ "_$NVM_MODE" = '_install' ]; then + if [ "_${NVM_MODE}" = '_install' ]; then VERSION="$(nvm_alias default 2>/dev/null || nvm_echo)" - if [ -n "$VERSION" ]; then - nvm install "$VERSION" >/dev/null + if [ -n "${VERSION}" ]; then + nvm install "${VERSION}" >/dev/null elif nvm_rc_version >/dev/null 2>&1; then nvm install >/dev/null fi @@ -3581,7 +3567,7 @@ nvm_auto() { else nvm use --silent "${NVM_CURRENT}" >/dev/null fi - elif [ "_$NVM_MODE" != '_none' ]; then + elif [ "_${NVM_MODE}" != '_none' ]; then nvm_err 'Invalid auto mode supplied.' return 1 fi @@ -3591,8 +3577,7 @@ nvm_process_parameters() { local NVM_AUTO_MODE NVM_AUTO_MODE='use' if nvm_supports_source_options; then - while [ $# -ne 0 ] - do + while [ $# -ne 0 ]; do case "$1" in --install) NVM_AUTO_MODE='install' ;; --no-use) NVM_AUTO_MODE='none' ;; @@ -3600,7 +3585,7 @@ nvm_process_parameters() { shift done fi - nvm_auto "$NVM_AUTO_MODE" + nvm_auto "${NVM_AUTO_MODE}" } nvm_process_parameters "$@" From 703babe60a9fa09d55fbc67107a07beba09ef090 Mon Sep 17 00:00:00 2001 From: Ahmed El Sayegh Date: Mon, 21 Jan 2019 02:15:02 +0200 Subject: [PATCH 1184/1426] [Fix] Make installation less restrictive when NVM_DIR is set --- install.sh | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index a9c9c16..a0d2863 100755 --- a/install.sh +++ b/install.sh @@ -304,8 +304,17 @@ nvm_check_global_modules() { nvm_do_install() { if [ -n "${NVM_DIR-}" ] && ! [ -d "${NVM_DIR}" ]; then - echo >&2 "You have \$NVM_DIR set to \"${NVM_DIR}\", but that directory does not exist. Check your profile files and environment." - exit 1 + if [ "${NVM_DIR}" == "$HOME/.nvm" ]; then + if [ -e "${NVM_DIR}" ]; then + echo >&2 "File \"${NVM_DIR}\" has the same name as installation directory." + exit 1 + else + mkdir "${NVM_DIR}" + fi + else + echo >&2 "You have \$NVM_DIR set to \"${NVM_DIR}\", but that directory does not exist. Check your profile files and environment." + exit 1 + fi fi if [ -z "${METHOD}" ]; then # Autodetect install method From a56c6f1485814dad648d54933fcb09b9a9682773 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 21 Jan 2019 21:58:43 -0800 Subject: [PATCH 1185/1426] tweak logic --- install.sh | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/install.sh b/install.sh index a0d2863..8dd6f07 100755 --- a/install.sh +++ b/install.sh @@ -6,16 +6,22 @@ nvm_has() { type "$1" > /dev/null 2>&1 } -nvm_install_dir() { - if [ -n "$NVM_DIR" ]; then - printf %s "${NVM_DIR}" - elif [ -n "$XDG_CONFIG_HOME" ]; then +nvm_default_install_dir() { + if [ -n "$XDG_CONFIG_HOME" ]; then printf %s "${XDG_CONFIG_HOME/nvm}" else printf %s "$HOME/.nvm" fi } +nvm_install_dir() { + if [ -n "$NVM_DIR" ]; then + printf %s "${NVM_DIR}" + else + nvm_default_install_dir + fi +} + nvm_latest_version() { echo "v0.34.0" } @@ -304,13 +310,13 @@ nvm_check_global_modules() { nvm_do_install() { if [ -n "${NVM_DIR-}" ] && ! [ -d "${NVM_DIR}" ]; then - if [ "${NVM_DIR}" == "$HOME/.nvm" ]; then - if [ -e "${NVM_DIR}" ]; then - echo >&2 "File \"${NVM_DIR}\" has the same name as installation directory." - exit 1 - else - mkdir "${NVM_DIR}" - fi + if [ -e "${NVM_DIR}" ]; then + echo >&2 "File \"${NVM_DIR}\" has the same name as installation directory." + exit 1 + fi + + if [ "${NVM_DIR}" = "$(nvm_default_install_dir)" ]; then + mkdir "${NVM_DIR}" else echo >&2 "You have \$NVM_DIR set to \"${NVM_DIR}\", but that directory does not exist. Check your profile files and environment." exit 1 @@ -415,7 +421,7 @@ nvm_reset() { unset -f nvm_has nvm_install_dir nvm_latest_version nvm_profile_is_bash_or_zsh \ nvm_source nvm_node_version nvm_download install_nvm_from_git nvm_install_node \ install_nvm_as_script nvm_try_profile nvm_detect_profile nvm_check_global_modules \ - nvm_do_install nvm_reset + nvm_do_install nvm_reset nvm_default_install_dir } [ "_$NVM_ENV" = "_testing" ] || nvm_do_install From 7e715d5c73b3452efb3f1f3e562af2043370aead Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Wed, 23 Jan 2019 03:10:03 +0800 Subject: [PATCH 1186/1426] [Tests] Improve syntax in "test/installation_iojs/nvm install v1 works" --- test/installation_iojs/nvm install v1 works | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/installation_iojs/nvm install v1 works b/test/installation_iojs/nvm install v1 works index bb3e7c3..4498ee2 100755 --- a/test/installation_iojs/nvm install v1 works +++ b/test/installation_iojs/nvm install v1 works @@ -9,11 +9,11 @@ NVM_PREFIXED_TEST_VERSION="$(nvm ls-remote "$NVM_VERSION" | tail -1 | sed 's/^[ NVM_TEST_VERSION="$(nvm_strip_iojs_prefix "$NVM_PREFIXED_TEST_VERSION")" # Remove the stuff we're clobbering. -[ -e ../../$NVM_TEST_VERSION ] && rm -R ../../$NVM_TEST_VERSION +[ -e "../../$NVM_TEST_VERSION" ] && rm -R "../../$NVM_TEST_VERSION" # Install from binary nvm install "$NVM_VERSION" || die "nvm install $NVM_VERSION failed" # Check [ -d "${NVM_DIR}/versions/io.js/$NVM_TEST_VERSION" ] -nvm run $NVM_PREFIXED_TEST_VERSION --version | grep $NVM_TEST_VERSION || die "'nvm run $NVM_PREFIXED_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" +nvm run "$NVM_PREFIXED_TEST_VERSION" --version | grep "$NVM_TEST_VERSION" || die "'nvm run $NVM_PREFIXED_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" From cc0750eb5dbedb2b72d9bf6e5e1fde9a492137b9 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Tue, 22 Jan 2019 15:46:29 +0800 Subject: [PATCH 1187/1426] [Fix] `install`: Add missing io.js installation message Fixes #1988 --- nvm.sh | 2 ++ test/installation_iojs/install from binary | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 2232d85..5581998 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1721,6 +1721,8 @@ nvm_install_binary() { local NODE_OR_IOJS if [ "${FLAVOR}" = 'node' ]; then NODE_OR_IOJS="${FLAVOR}" + elif [ "${FLAVOR}" = 'iojs' ]; then + NODE_OR_IOJS="io.js" fi if [ "${NVM_NO_PROGRESS-}" = "1" ]; then # --silent, --show-error, use short option as @samrocketman mentions the compatibility issue. diff --git a/test/installation_iojs/install from binary b/test/installation_iojs/install from binary index b20f50f..3ffe8aa 100755 --- a/test/installation_iojs/install from binary +++ b/test/installation_iojs/install from binary @@ -9,9 +9,13 @@ NVM_PREFIXED_TEST_VERSION="iojs-$NVM_TEST_VERSION" # Remove the stuff we're clobbering. [ -e "${NVM_DIR}/versions/io.js/${NVM_TEST_VERSION}" ] && rm -R "${NVM_DIR}/versions/io.js/${NVM_TEST_VERSION}" +[ -e "${NVM_DIR}/.cache/bin/${NVM_TEST_VERSION}-linux-x64/" ] && rm -R "${NVM_DIR}/.cache/bin/${NVM_TEST_VERSION}-linux-x64/" # Install from binary -nvm install $NVM_PREFIXED_TEST_VERSION || die "install $NVM_PREFIXED_TEST_VERSION failed" +OUTPUT_HEAD="$(2>&1 nvm install --no-progress $NVM_PREFIXED_TEST_VERSION | tac | tail -n 1)" || die "install $NVM_PREFIXED_TEST_VERSION failed" +EXPECTED_OUTPUT_HEAD="Downloading and installing io.js v1.0.0..." + +[ "${OUTPUT_HEAD}" = "${EXPECTED_OUTPUT_HEAD}" ] || die "expected >${EXPECTED_OUTPUT_HEAD}<; got >${OUTPUT_HEAD}<" # Check [ -d "${NVM_DIR}/versions/io.js/${NVM_TEST_VERSION}" ] From 02997b0753f66c9790c6016ed022ed2072c22603 Mon Sep 17 00:00:00 2001 From: Lucas Kellner Date: Wed, 23 Jan 2019 16:39:57 -0800 Subject: [PATCH 1188/1426] [Docs] `unalias`: add more specific error message for builtin aliases --- nvm.sh | 12 +++++++++ ...liases with names equal to built-in alias" | 25 +++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100755 "test/fast/Aliases/\"nvm unalias\" should not accept aliases with names equal to built-in alias" diff --git a/nvm.sh b/nvm.sh index 5581998..f2744c6 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3335,6 +3335,18 @@ nvm() { nvm_err 'Aliases in subdirectories are not supported.' return 1 fi + + local NVM_IOJS_PREFIX + local NVM_NODE_PREFIX + NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" + NVM_NODE_PREFIX="$(nvm_node_prefix)" + case "$1" in + "stable" | "unstable" | "${NVM_IOJS_PREFIX}" | "${NVM_NODE_PREFIX}" | "system") + nvm_err "${1-} is a default (built-in) alias and cannot be deleted." + return 1 + ;; + esac + [ ! -f "${NVM_ALIAS_DIR}/${1-}" ] && nvm_err "Alias ${1-} doesn't exist!" && return local NVM_ALIAS_ORIGINAL NVM_ALIAS_ORIGINAL="$(nvm_alias "${1}")" diff --git "a/test/fast/Aliases/\"nvm unalias\" should not accept aliases with names equal to built-in alias" "b/test/fast/Aliases/\"nvm unalias\" should not accept aliases with names equal to built-in alias" new file mode 100755 index 0000000..35bdc8f --- /dev/null +++ "b/test/fast/Aliases/\"nvm unalias\" should not accept aliases with names equal to built-in alias" @@ -0,0 +1,25 @@ +#!/bin/sh + +\. ../../../nvm.sh + +die () { echo "$@" ; exit 1; } + +OUTPUT="$(nvm unalias node 2>&1)" +EXPECTED_OUTPUT="node is a default (built-in) alias and cannot be deleted." +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "trying to remove a built-in alias should fail with '$EXPECTED_OUTPUT', got '$OUTPUT'" + +OUTPUT="$(nvm unalias stable 2>&1)" +EXPECTED_OUTPUT="stable is a default (built-in) alias and cannot be deleted." +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "trying to remove a built-in alias should fail with '$EXPECTED_OUTPUT', got '$OUTPUT'" + +OUTPUT="$(nvm unalias unstable 2>&1)" +EXPECTED_OUTPUT="unstable is a default (built-in) alias and cannot be deleted." +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "trying to remove a built-in alias should fail with '$EXPECTED_OUTPUT', got '$OUTPUT'" + +OUTPUT="$(nvm unalias iojs 2>&1)" +EXPECTED_OUTPUT="iojs is a default (built-in) alias and cannot be deleted." +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "trying to remove a built-in alias should fail with '$EXPECTED_OUTPUT', got '$OUTPUT'" + +OUTPUT="$(nvm unalias system 2>&1)" +EXPECTED_OUTPUT="system is a default (built-in) alias and cannot be deleted." +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "trying to remove a built-in alias should fail with '$EXPECTED_OUTPUT', got '$OUTPUT'" From 5c117e6ab329cb1c5dc1c6fa932e7a590919a26f Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 1 Feb 2019 13:27:18 -0800 Subject: [PATCH 1189/1426] =?UTF-8?q?[Refactor]=20extract=20=E2=80=9Cget?= =?UTF-8?q?=20default=20packages=E2=80=9D=20logic=20to=20`nvm=5Fget=5Fdefa?= =?UTF-8?q?ult=5Fpackages`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 +- nvm.sh | 60 +++++++++------ test/fast/Unit tests/nvm_get_default_packages | 76 +++++++++++++++++++ .../default-packages} | 4 +- 4 files changed, 116 insertions(+), 26 deletions(-) create mode 100755 test/fast/Unit tests/nvm_get_default_packages rename test/{fast/Unit tests/nvm_default_packages => installation_node/default-packages} (98%) diff --git a/.gitignore b/.gitignore index 6d7d6d6..fcf59f8 100644 --- a/.gitignore +++ b/.gitignore @@ -15,7 +15,7 @@ npm-debug.log .DS_Store current -default-packages +/default-packages # Only apps should have lockfiles npm-shrinkwrap.json diff --git a/nvm.sh b/nvm.sh index f2744c6..bf9a1a3 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2631,28 +2631,12 @@ nvm() { shift done - if [ -z "${SKIP_DEFAULT_PACKAGES-}" ] && [ -f "${NVM_DIR}/default-packages" ]; then - DEFAULT_PACKAGES="" - - # Read lines from $NVM_DIR/default-packages - local line - while IFS=" " read -r line; do - # Skip empty lines. - [ -n "${line}" ] || continue - - # Skip comment lines that begin with `#`. - [ "$(nvm_echo "${line}" | command cut -c1)" != "#" ] || continue - - # Fail on lines that have multiple space-separated words - case $line in - *\ *) - nvm_err "Only one package per line is allowed in the ${NVM_DIR}/default-packages file. Please remove any lines with multiple space-separated values." - return 1 - ;; - esac - - DEFAULT_PACKAGES="${DEFAULT_PACKAGES}${line} " - done < "${NVM_DIR}/default-packages" + if [ -z "${SKIP_DEFAULT_PACKAGES-}" ]; then + DEFAULT_PACKAGES="$(nvm_get_default_packages)" + EXIT_CODE=$? + if [ $EXIT_CODE -ne 0 ]; then + return $EXIT_CODE + fi fi if [ -n "${PROVIDED_REINSTALL_PACKAGES_FROM-}" ] && [ "$(nvm_ensure_version_prefix "${PROVIDED_REINSTALL_PACKAGES_FROM}")" = "${VERSION}" ]; then @@ -3486,7 +3470,8 @@ nvm() { nvm_version_greater nvm_version_greater_than_or_equal_to \ nvm_print_npm_version nvm_install_latest_npm nvm_npm_global_modules \ nvm_has_system_node nvm_has_system_iojs \ - nvm_download nvm_get_latest nvm_has nvm_install_default_packages nvm_curl_use_compression nvm_curl_version \ + nvm_download nvm_get_latest nvm_has nvm_install_default_packages nvm_get_default_packages \ + nvm_curl_use_compression nvm_curl_version \ nvm_supports_source_options nvm_auto nvm_supports_xz \ nvm_echo nvm_err nvm_grep nvm_cd \ nvm_die_on_prefix nvm_get_make_jobs nvm_get_minor_version \ @@ -3509,8 +3494,37 @@ nvm() { esac } +nvm_get_default_packages() { + if [ -f "${NVM_DIR}/default-packages" ]; then + local DEFAULT_PACKAGES + DEFAULT_PACKAGES='' + + # Read lines from $NVM_DIR/default-packages + local line + while IFS=' ' read -r line; do + # Skip empty lines. + [ -n "${line-}" ] || continue + + # Skip comment lines that begin with `#`. + [ "$(nvm_echo "${line}" | command cut -c1)" != "#" ] || continue + + # Fail on lines that have multiple space-separated words + case $line in + *\ *) + nvm_err "Only one package per line is allowed in the ${NVM_DIR}/default-packages file. Please remove any lines with multiple space-separated values." + return 1 + ;; + esac + + DEFAULT_PACKAGES="${DEFAULT_PACKAGES}${line} " + done < "${NVM_DIR}/default-packages" + echo "${DEFAULT_PACKAGES}" | xargs + fi +} + nvm_install_default_packages() { nvm_echo "Installing default global packages from ${NVM_DIR}/default-packages..." + nvm_echo "npm install -g --quiet $1" if ! nvm_echo "$1" | command xargs npm install -g --quiet; then nvm_err "Failed installing default packages. Please check if your default-packages file or a package in it has problems!" diff --git a/test/fast/Unit tests/nvm_get_default_packages b/test/fast/Unit tests/nvm_get_default_packages new file mode 100755 index 0000000..115bdf6 --- /dev/null +++ b/test/fast/Unit tests/nvm_get_default_packages @@ -0,0 +1,76 @@ +#!/bin/sh + +FILE="$NVM_DIR/default-packages" +\. ../../../nvm.sh + +die () { echo "$@" ; cleanup ; exit 1; } +setup () { + if [ -f $FILE ]; then + ORIG_DEFAULT_PACKAGES=$(cat $FILE) + mkdir -p ./tmp/ ||: + mv $FILE ./tmp/default-packages ||: + fi + touch $FILE +} +cleanup () { + if [ "$ORIG_DEFAULT_PACKAGES" != "" ]; then + rm -rf ./tmp/ + echo "$ORIG_DEFAULT_PACKAGES" > $FILE + fi +} + +setup + +cat > $FILE << EOF +rimraf +object-inspect@1.0.2 + +# commented-package + +stevemao/left-pad +EOF + +DEFAULT_PKGS="$(nvm_get_default_packages)" +EXPECTED_PKGS='rimraf object-inspect@1.0.2 stevemao/left-pad' +[ "${DEFAULT_PKGS}" = "${EXPECTED_PKGS}" ] || die "1: expected default packages >${EXPECTED_PKGS}<; got >${DEFAULT_PKGS}<" + +cleanup + +setup + +cat > $FILE << EOF +rimraf +not~a~package~name +mkdirp +EOF + +DEFAULT_PKGS="$(nvm_get_default_packages)" +EXPECTED_PKGS='rimraf not~a~package~name mkdirp' +[ "${DEFAULT_PKGS}" = "${EXPECTED_PKGS}" ] || die "2: expected default packages >${EXPECTED_PKGS}<; got >${DEFAULT_PKGS}<" + +cleanup + +setup + +cat > $FILE << EOF +object-inspect @ 1.0.2 +rimraf +EOF + +DEFAULT_PKGS="$(nvm_get_default_packages 2>&1 >/dev/null)" +EXPECTED_PKGS="Only one package per line is allowed in the $FILE file. Please remove any lines with multiple space-separated values." +[ "${DEFAULT_PKGS}" = "${EXPECTED_PKGS}" ] || die "3: expected default packages >${EXPECTED_PKGS}<; got >${DEFAULT_PKGS}<" + +cleanup + +setup + +rm -rf $FILE + +DEFAULT_PKGS="$(nvm_get_default_packages)" +EXPECTED_PKGS='' +[ "${DEFAULT_PKGS}" = "${EXPECTED_PKGS}" ] || die "4: expected default packages >${EXPECTED_PKGS}<; got >${DEFAULT_PKGS}<" + +touch $FILE + +cleanup diff --git a/test/fast/Unit tests/nvm_default_packages b/test/installation_node/default-packages similarity index 98% rename from test/fast/Unit tests/nvm_default_packages rename to test/installation_node/default-packages index 0ae318d..ad08aa5 100755 --- a/test/fast/Unit tests/nvm_default_packages +++ b/test/installation_node/default-packages @@ -21,7 +21,7 @@ cleanup () { setup -\. ../../../nvm.sh +\. ../../nvm.sh cat > $FILE << EOF rimraf @@ -45,7 +45,7 @@ cleanup setup -\. ../../../nvm.sh +\. ../../nvm.sh cat > $FILE << EOF rimraf From db19450caafb37734a3302b24ac9fe2cde40638d Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 2 Feb 2019 13:45:11 -0800 Subject: [PATCH 1190/1426] [Fix] `default_packages`: work when the file lacks a trailing newline Fixes #1995. --- nvm.sh | 10 ++++++++-- test/fast/Unit tests/nvm_get_default_packages | 19 +++++++++++++++++-- test/installation_node/default-packages | 8 ++++++++ 3 files changed, 33 insertions(+), 4 deletions(-) diff --git a/nvm.sh b/nvm.sh index bf9a1a3..a1cc7bf 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3495,12 +3495,18 @@ nvm() { } nvm_get_default_packages() { - if [ -f "${NVM_DIR}/default-packages" ]; then + local NVM_DEFAULT_PACKAGE_FILE="${NVM_DIR}/default-packages" + if [ -f "${NVM_DEFAULT_PACKAGE_FILE}" ]; then local DEFAULT_PACKAGES DEFAULT_PACKAGES='' # Read lines from $NVM_DIR/default-packages local line + # ensure a trailing newline + WORK=$(mktemp -d) || exit $? + trap "rm -rf '$WORK'" EXIT + # shellcheck disable=SC1003 + sed -e '$a\' "${NVM_DEFAULT_PACKAGE_FILE}" > "${WORK}/default-packages" while IFS=' ' read -r line; do # Skip empty lines. [ -n "${line-}" ] || continue @@ -3517,7 +3523,7 @@ nvm_get_default_packages() { esac DEFAULT_PACKAGES="${DEFAULT_PACKAGES}${line} " - done < "${NVM_DIR}/default-packages" + done < "${WORK}/default-packages" echo "${DEFAULT_PACKAGES}" | xargs fi } diff --git a/test/fast/Unit tests/nvm_get_default_packages b/test/fast/Unit tests/nvm_get_default_packages index 115bdf6..75730b0 100755 --- a/test/fast/Unit tests/nvm_get_default_packages +++ b/test/fast/Unit tests/nvm_get_default_packages @@ -52,6 +52,21 @@ cleanup setup +cat > $FILE << EOF +rimraf +not~a~package~name +mkdirp +EOF +printf %s "$(cat "${FILE}")" > $FILE # strip trailing newline + +DEFAULT_PKGS="$(nvm_get_default_packages)" +EXPECTED_PKGS='rimraf not~a~package~name mkdirp' +[ "${DEFAULT_PKGS}" = "${EXPECTED_PKGS}" ] || die "3: expected default packages >${EXPECTED_PKGS}<; got >${DEFAULT_PKGS}<" + +cleanup + +setup + cat > $FILE << EOF object-inspect @ 1.0.2 rimraf @@ -59,7 +74,7 @@ EOF DEFAULT_PKGS="$(nvm_get_default_packages 2>&1 >/dev/null)" EXPECTED_PKGS="Only one package per line is allowed in the $FILE file. Please remove any lines with multiple space-separated values." -[ "${DEFAULT_PKGS}" = "${EXPECTED_PKGS}" ] || die "3: expected default packages >${EXPECTED_PKGS}<; got >${DEFAULT_PKGS}<" +[ "${DEFAULT_PKGS}" = "${EXPECTED_PKGS}" ] || die "4: expected default packages >${EXPECTED_PKGS}<; got >${DEFAULT_PKGS}<" cleanup @@ -69,7 +84,7 @@ rm -rf $FILE DEFAULT_PKGS="$(nvm_get_default_packages)" EXPECTED_PKGS='' -[ "${DEFAULT_PKGS}" = "${EXPECTED_PKGS}" ] || die "4: expected default packages >${EXPECTED_PKGS}<; got >${DEFAULT_PKGS}<" +[ "${DEFAULT_PKGS}" = "${EXPECTED_PKGS}" ] || die "5: expected default packages >${EXPECTED_PKGS}<; got >${DEFAULT_PKGS}<" touch $FILE diff --git a/test/installation_node/default-packages b/test/installation_node/default-packages index ad08aa5..7b1cfca 100755 --- a/test/installation_node/default-packages +++ b/test/installation_node/default-packages @@ -30,8 +30,11 @@ object-inspect@1.0.2 # commented-package stevemao/left-pad +daytime EOF +printf %s "$(cat "${FILE}")" > $FILE # strip trailing newline + nvm install v6.10.1 2>&1 EXIT_CODE=$? [ "_$EXIT_CODE" = "_0" ] || die "expected 'nvm install v6.10.1' to exit with 0, got $EXIT_CODE" @@ -41,6 +44,11 @@ if [ -z "$?" ]; then die "expected 'nvm exec v6.10.1 npm ls -g --depth=0 | grep -q 'rimraf'' to exit with 0, got $?" fi +nvm exec v6.10.1 npm ls -g --depth=0 | grep -q 'daytime' +if [ -z "$?" ]; then + die "expected 'nvm exec v6.10.1 npm ls -g --depth=0 | grep -q 'daytime'' to exit with 0, got $?" +fi + cleanup setup From e1bb44f7122720f27de9f11811d21880ce639304 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 4 Feb 2019 14:45:04 -0800 Subject: [PATCH 1191/1426] [shellcheck] add overrides --- nvm.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index a1cc7bf..31a9296 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3504,6 +3504,7 @@ nvm_get_default_packages() { local line # ensure a trailing newline WORK=$(mktemp -d) || exit $? + # shellcheck disable=SC2064 trap "rm -rf '$WORK'" EXIT # shellcheck disable=SC1003 sed -e '$a\' "${NVM_DEFAULT_PACKAGE_FILE}" > "${WORK}/default-packages" @@ -3539,7 +3540,7 @@ nvm_install_default_packages() { } nvm_supports_source_options() { - # shellcheck disable=SC1091 + # shellcheck disable=SC1091,SC2240 [ "_$(nvm_echo '[ $# -gt 0 ] && nvm_echo $1' | . /dev/stdin yes 2>/dev/null)" = "_yes" ] } From 890fbb5581b90be206da275b78d06da1231a717a Mon Sep 17 00:00:00 2001 From: jjangga0214 Date: Fri, 15 Feb 2019 11:11:01 +0900 Subject: [PATCH 1192/1426] Update README: sync node release schedule url --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 48c657a..90b4ee8 100644 --- a/README.md +++ b/README.md @@ -259,7 +259,7 @@ In place of a version pointer like "0.10" or "5.0" or "4.2.1", you can use the f ### Long-term support -Node has a [schedule](https://github.com/nodejs/LTS#lts_schedule) for long-term support (LTS) You can reference LTS versions in aliases and `.nvmrc` files with the notation `lts/*` for the latest LTS, and `lts/argon` for LTS releases from the "argon" line, for example. In addition, the following commands support LTS arguments: +Node has a [schedule](https://github.com/nodejs/Release#release-schedule) for long-term support (LTS) You can reference LTS versions in aliases and `.nvmrc` files with the notation `lts/*` for the latest LTS, and `lts/argon` for LTS releases from the "argon" line, for example. In addition, the following commands support LTS arguments: - `nvm install --lts` / `nvm install --lts=argon` / `nvm install 'lts/*'` / `nvm install lts/argon` - `nvm uninstall --lts` / `nvm uninstall --lts=argon` / `nvm uninstall 'lts/*'` / `nvm uninstall lts/argon` From 7f9220dbd88eac208b9d7b8ce23d86d951794005 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 23 Feb 2019 14:41:57 -0800 Subject: [PATCH 1193/1426] [Fix] `nvm ls`: `--no-colors`: `system`: print an asterisk --- nvm.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nvm.sh b/nvm.sh index 31a9296..43caa24 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1433,6 +1433,8 @@ nvm_print_versions() { elif [ "${VERSION}" = "system" ]; then if [ "${NVM_HAS_COLORS-}" = '1' ]; then FORMAT='\033[0;33m%15s\033[0m' + else + FORMAT='%15s *' fi elif nvm_is_version_installed "${VERSION}"; then if [ "${NVM_HAS_COLORS-}" = '1' ]; then From 48196d24368f5f7c6ccb5b093b588dfecd9bd941 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 23 Feb 2019 14:47:49 -0800 Subject: [PATCH 1194/1426] [Tests] fix fake node versions --- test/common.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/common.sh b/test/common.sh index 095c1a8..8162b8a 100644 --- a/test/common.sh +++ b/test/common.sh @@ -30,7 +30,7 @@ make_fake_node() { [ -n "${VERSION}" ] || return 1 local BIN_PATH - BIN_PATH="$(nvm_version_path "${VERSION}")/bin" + BIN_PATH="$(nvm_version_path "$(nvm_format_version "${VERSION}")")/bin" mkdir -p "${BIN_PATH}" || { echo >&2 'unable to make bin dir' return 2 @@ -48,7 +48,7 @@ make_fake_iojs() { [ -n "${VERSION}" ] || return 1 local BIN_PATH - BIN_PATH="$(nvm_version_path "iojs-${VERSION}")/bin" + BIN_PATH="$(nvm_version_path "$(nvm_format_version "iojs-${VERSION}")")/bin" mkdir -p "${BIN_PATH}" || { echo >&2 'unable to make bin dir' return 2 From 2a513a1bc07d76ed30cde463b3c8b1aa920d4767 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 23 Feb 2019 15:02:31 -0800 Subject: [PATCH 1195/1426] [Fix] `nvm_ls`: Reverts #1462 to fix io.js sorting.
Before this revert: ```sh iojs-v3.3.1 iojs-v2.5.0 v0.6.21 v0.7.12 iojs-v1.8.4 v0.8.28 v0.9.12 v0.10.48 v0.11.16 v0.12.9 v0.12.18 v0.12.87 v4.9.1 v5.11.1 v5.12.0 v6.14.4 v6.16.0 v7.10.1 v8.6.0 v8.9.1 v8.10.0 v8.11.3 v8.11.4 v8.12.0 v8.13.0 v8.14.1 v8.15.0 v9.11.2 v10.0.0 v10.1.0 v10.2.1 v10.3.0 v10.4.1 v10.5.0 v10.6.0 v10.7.0 v10.8.0 v10.9.0 v10.10.0 v10.11.0 v10.12.0 v10.13.0 v10.14.2 v10.15.1 v11.0.0 v11.1.0 v11.2.0 v11.3.0 v11.4.0 v11.5.0 v11.6.0 v11.7.0 v11.8.0 v11.9.0 v11.10.0 ```
After this revert: ```sh v0.6.21 v0.7.12 v0.8.28 v0.9.12 v0.10.48 v0.11.16 v0.12.9 v0.12.18 v0.12.87 iojs-v1.8.4 iojs-v2.5.0 iojs-v3.3.1 v4.9.1 v5.11.1 v5.12.0 v6.14.4 v6.16.0 v7.10.1 v8.6.0 v8.9.1 v8.10.0 v8.11.3 v8.11.4 v8.12.0 v8.13.0 v8.14.1 v8.15.0 v9.11.2 v10.0.0 v10.1.0 v10.2.1 v10.3.0 v10.4.1 v10.5.0 v10.6.0 v10.7.0 v10.8.0 v10.9.0 v10.10.0 v10.11.0 v10.12.0 v10.13.0 v10.14.2 v10.15.1 v11.0.0 v11.1.0 v11.2.0 v11.3.0 v11.4.0 v11.5.0 v11.6.0 v11.7.0 v11.8.0 v11.9.0 v11.10.0 ```
In other words, the sorting needs to happen *before* the `NVM_NODE_PREFIX` is removed. --- nvm.sh | 4 ++-- ...\" should display all installed versions." | 23 +++++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 43caa24..4906a92 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1082,9 +1082,9 @@ nvm_ls() { \\#${SEARCH_PATTERN}# !d; " \ -e 's#^\([^/]\{1,\}\)/\(.*\)$#\2.\1#;' \ - -e 's#\(.*\)\.\([^\.]\{1,\}\)$#\2-\1#;' \ - -e "s#^${NVM_NODE_PREFIX}-##;" \ | command sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n \ + | command sed -e 's#\(.*\)\.\([^\.]\{1,\}\)$#\2-\1#;' \ + -e "s#^${NVM_NODE_PREFIX}-##;" \ )" fi fi diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." "b/test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." index 6b71e1e..9f0eecd 100755 --- "a/test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." +++ "b/test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." @@ -25,3 +25,26 @@ nvm ls | grep v0.3.3 >/dev/null || die "v0.3.3 not found in: $(nvm ls)" nvm ls | grep v0.3.9 >/dev/null || die "v0.3.9 not found in: $(nvm ls)" nvm ls | grep v0.12.87 >/dev/null || die "v0.12.87 not found in: $(nvm ls)" nvm ls | grep iojs-v0.1.2 >/dev/null || die "iojs-v0.1.2 not found in: $(nvm ls)" + +OUTPUT="$(nvm_ls)" +EXPECTED_OUTPUT="v0.0.1 +v0.0.2 +v0.0.3 +v0.0.9 +v0.0.20 +iojs-v0.1.2 +v0.1.3 +v0.1.4 +v0.2.3 +v0.3.1 +v0.3.3 +v0.3.9 +iojs-v0.10.2 +v0.12.9 +v0.12.87 +v0.20.3" +if nvm_has_system_node || nvm_has_system_iojs; then + EXPECTED_OUTPUT="${EXPECTED_OUTPUT} +system" +fi +[ "${OUTPUT-}" = "${EXPECTED_OUTPUT-}" ] || die "expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" From 2a5d2c06ffb04d40ae31e60529efccb73cae1d62 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 23 Feb 2019 15:24:02 -0800 Subject: [PATCH 1196/1426] [Tests] add more checks to make_fake_* helpers --- test/common.sh | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/test/common.sh b/test/common.sh index 8162b8a..beadafa 100644 --- a/test/common.sh +++ b/test/common.sh @@ -29,8 +29,16 @@ make_fake_node() { VERSION="${1-}" [ -n "${VERSION}" ] || return 1 + local FORMATTED_VERSION + FORMATTED_VERSION="$(nvm_format_version "${VERSION}")" + local BIN_PATH - BIN_PATH="$(nvm_version_path "$(nvm_format_version "${VERSION}")")/bin" + BIN_PATH="$(nvm_version_path "${FORMATTED_VERSION}")/bin" + [ "${BIN_PATH}" != "/bin" ] || { + echo >&2 'nvm_version_path was empty' + return 5 + } + mkdir -p "${BIN_PATH}" || { echo >&2 'unable to make bin dir' return 2 @@ -40,6 +48,11 @@ make_fake_node() { echo >&2 'unable to make fake node bin' return 3 } + + nvm_is_version_installed "${FORMATTED_VERSION}" || { + echo >&2 'fake node is not installed' + return 4 + } } make_fake_iojs() { @@ -47,8 +60,16 @@ make_fake_iojs() { VERSION="${1-}" [ -n "${VERSION}" ] || return 1 + local FORMATTED_VERSION + FORMATTED_VERSION="$(nvm_format_version "iojs-${VERSION}")" + local BIN_PATH - BIN_PATH="$(nvm_version_path "$(nvm_format_version "iojs-${VERSION}")")/bin" + BIN_PATH="$(nvm_version_path "${FORMATTED_VERSION}")/bin" + [ "${BIN_PATH}" != "/bin" ] || { + echo >&2 'nvm_version_path was empty' + return 5 + } + mkdir -p "${BIN_PATH}" || { echo >&2 'unable to make bin dir' return 2 @@ -62,6 +83,11 @@ make_fake_iojs() { echo >&2 'unable to make fake iojs bin' return 3 } + + nvm_is_version_installed "${FORMATTED_VERSION}" || { + echo >&2 'fake iojs is not installed' + return 4 + } } watch() { From 58d0933f72c3b819d8180e3fe68b66201a87c0a4 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 23 Feb 2019 22:21:46 -0800 Subject: [PATCH 1197/1426] [Fix] attempt to fix a bug in bash 3.2, fixed in 4.4, that improperly exits on `-e` in a test. See https://gist.github.com/ljharb/6e70a79ac5fcf11a8b9de654a88642aa for details. --- nvm.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 4906a92..0dcd274 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2300,7 +2300,14 @@ nvm() { local DEFAULT_IFS DEFAULT_IFS=" $(nvm_echo t | command tr t \\t) " - if [ "${IFS}" != "${DEFAULT_IFS}" ]; then + if [ "${-#*e}" != "$-" ]; then + set +e + local EXIT_CODE + IFS="${DEFAULT_IFS}" nvm "$@" + EXIT_CODE=$? + set -e + return $EXIT_CODE + elif [ "${IFS}" != "${DEFAULT_IFS}" ]; then IFS="${DEFAULT_IFS}" nvm "$@" return $? fi From 04fdb2331bae0822fb4016ac5a5242b2fbd2a98f Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 23 Feb 2019 22:22:18 -0800 Subject: [PATCH 1198/1426] [Tests] `nvm ls`: ensure `nvm alias` is called --- .editorconfig | 3 ++ .../Running \"nvm ls\" calls into nvm_alias" | 35 +++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100755 "test/fast/Listing versions/Running \"nvm ls\" calls into nvm_alias" diff --git a/.editorconfig b/.editorconfig index 32de192..ea25d86 100644 --- a/.editorconfig +++ b/.editorconfig @@ -12,5 +12,8 @@ trim_trailing_whitespace = true [*.txt] indent_size = false +[test/fast/Listing versions/Running "nvm ls" calls into nvm_alias] +indent_size = false + [Makefile] indent_style = tab diff --git "a/test/fast/Listing versions/Running \"nvm ls\" calls into nvm_alias" "b/test/fast/Listing versions/Running \"nvm ls\" calls into nvm_alias" new file mode 100755 index 0000000..a5f7457 --- /dev/null +++ "b/test/fast/Listing versions/Running \"nvm ls\" calls into nvm_alias" @@ -0,0 +1,35 @@ +#!/bin/sh + +\. ../../../nvm.sh +\. ../../common.sh + +die () { echo "$@" ; unset -f nvm_ls nvm_list_aliases; exit 1; } + +make_fake_node v0.12.87 || die 'fake v0.12.87 could not be made' +make_fake_node v0.12.9 || die 'fake v0.12.9 could not be made' +make_fake_iojs v0.1.2 || die 'fake iojs-v0.1.2 could not be made' +make_fake_iojs v0.10.2 || die 'fake iojs-v0.10.2 could not be made' + +set -e + +nvm_list_aliases() { + echo 'sd-6' +} +# sanity check +OUTPUT="$(nvm alias)" +EXPECTED_OUTPUT='sd-6' +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "1: expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" + +nvm_ls() { + echo v0.12.87 + echo v0.12.9 + echo iojs-v0.1.2 + echo iojs-v0.10.2 +} +OUTPUT="$(nvm ls --no-colors)" +EXPECTED_OUTPUT=" v0.12.87 * + v0.12.9 * + iojs-v0.1.2 * + iojs-v0.10.2 * +sd-6" +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "2: expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" From c6740f5a6ebab68051f1790afe5da69641b904f9 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 23 Feb 2019 22:41:46 -0800 Subject: [PATCH 1199/1426] [New] `nvm ls`: add `--no-alias` to suppress alias output Per https://github.com/creationix/nvm/issues/1792#issuecomment-466696504 --- .editorconfig | 3 ++ nvm.sh | 8 ++++- ...--no-alias\" does not call into nvm_alias" | 34 +++++++++++++++++++ ...nvm ls --no-alias\" with a pattern errors" | 15 ++++++++ 4 files changed, 59 insertions(+), 1 deletion(-) create mode 100755 "test/fast/Listing versions/Running \"nvm ls --no-alias\" does not call into nvm_alias" create mode 100755 "test/fast/Listing versions/Running \"nvm ls --no-alias\" with a pattern errors" diff --git a/.editorconfig b/.editorconfig index ea25d86..c1b7c13 100644 --- a/.editorconfig +++ b/.editorconfig @@ -15,5 +15,8 @@ indent_size = false [test/fast/Listing versions/Running "nvm ls" calls into nvm_alias] indent_size = false +[test/fast/Listing versions/Running "nvm ls --no-alias" does not call into nvm_alias] +indent_size = false + [Makefile] indent_style = tab diff --git a/nvm.sh b/nvm.sh index 0dcd274..52aba8a 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3138,10 +3138,12 @@ nvm() { "ls" | "list") local PATTERN local NVM_NO_COLORS + local NVM_NO_ALIAS while [ $# -gt 0 ]; do case "${1}" in --) ;; --no-colors) NVM_NO_COLORS="${1}" ;; + --no-alias) NVM_NO_ALIAS="${1}" ;; --*) nvm_err "Unsupported option \"${1}\"." return 55 @@ -3152,12 +3154,16 @@ nvm() { esac shift done + if [ -n "${PATTERN-}" ] && [ -n "${NVM_NO_ALIAS}" ]; then + nvm_err '`--no-alias` is not supported when a pattern is provided.' + return 55 + fi local NVM_LS_OUTPUT local NVM_LS_EXIT_CODE NVM_LS_OUTPUT=$(nvm_ls "${PATTERN-}") NVM_LS_EXIT_CODE=$? NVM_NO_COLORS="${NVM_NO_COLORS-}" nvm_print_versions "${NVM_LS_OUTPUT}" - if [ -z "${PATTERN-}" ]; then + if [ -z "${NVM_NO_ALIAS-}" ] && [ -z "${PATTERN-}" ]; then if [ -n "${NVM_NO_COLORS-}" ]; then nvm alias --no-colors else diff --git "a/test/fast/Listing versions/Running \"nvm ls --no-alias\" does not call into nvm_alias" "b/test/fast/Listing versions/Running \"nvm ls --no-alias\" does not call into nvm_alias" new file mode 100755 index 0000000..20e28ec --- /dev/null +++ "b/test/fast/Listing versions/Running \"nvm ls --no-alias\" does not call into nvm_alias" @@ -0,0 +1,34 @@ +#!/bin/sh + +\. ../../../nvm.sh +\. ../../common.sh + +die () { echo "$@" ; unset -f nvm_ls nvm_list_aliases; exit 1; } + +make_fake_node v0.12.87 || die 'fake v0.12.87 could not be made' +make_fake_node v0.12.9 || die 'fake v0.12.9 could not be made' +make_fake_iojs v0.1.2 || die 'fake iojs-v0.1.2 could not be made' +make_fake_iojs v0.10.2 || die 'fake iojs-v0.10.2 could not be made' + +set -e + +nvm_list_aliases() { + echo 'sd-6' +} +# sanity check +OUTPUT="$(nvm alias)" +EXPECTED_OUTPUT='sd-6' +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "1: expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" + +nvm_ls() { + echo v0.12.87 + echo v0.12.9 + echo iojs-v0.1.2 + echo iojs-v0.10.2 +} +OUTPUT="$(nvm ls --no-colors --no-alias)" +EXPECTED_OUTPUT=" v0.12.87 * + v0.12.9 * + iojs-v0.1.2 * + iojs-v0.10.2 *" +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "2: expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" diff --git "a/test/fast/Listing versions/Running \"nvm ls --no-alias\" with a pattern errors" "b/test/fast/Listing versions/Running \"nvm ls --no-alias\" with a pattern errors" new file mode 100755 index 0000000..6f5a809 --- /dev/null +++ "b/test/fast/Listing versions/Running \"nvm ls --no-alias\" with a pattern errors" @@ -0,0 +1,15 @@ +#!/bin/sh + +\. ../../../nvm.sh +\. ../../common.sh + +die () { echo "$@" ; unset -f nvm_ls nvm_list_aliases; exit 1; } + +set -e + +OUTPUT="$(nvm ls --no-colors --no-alias pattern 2>&1 ||:)" +EXPECTED_OUTPUT='`--no-alias` is not supported when a pattern is provided.' +EXIT_CODE="$(nvm ls --no-colors --no-alias pattern >/dev/null 2>&1 || echo $?)" +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" + +[ "${EXIT_CODE}" = 55 ] || die "expected 55; got >${EXIT_CODE}<" From 41eb40821ba06c2a032bc693fb6c8e744bc0ed3b Mon Sep 17 00:00:00 2001 From: "Jarvis Mercer - Amir Mohammad Safari (AMSL)" Date: Sat, 26 Jan 2019 01:00:43 +0330 Subject: [PATCH 1200/1426] =?UTF-8?q?[Docs]=20add=20=E2=80=9Cupdate?= =?UTF-8?q?=E2=80=9D=20terminology=20to=20installation=20section?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 90b4ee8..a9fc2b8 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,8 @@ ## Table of Contents -- [Installation](#installation) - - [Install script](#install-script) +- [Installation and Update](#installation-and-update) + - [Install & Update script](#install--update-script) - [Ansible](#ansible) - [Verify installation](#verify-installation) - [Important Notes](#important-notes) @@ -39,11 +39,11 @@ -## Installation +## Installation and Update -### Install script +### Install & Update script -To install or update nvm, you can use the [install script][2] using cURL: +To **install** or **update** nvm, you can use the [install script][2] using cURL: ```sh curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash From 1f7f0c2d81c794410dec02821e4f13383318cc8a Mon Sep 17 00:00:00 2001 From: "Jarvis Mercer - Amir Mohammad Safari (AMSL)" Date: Sun, 27 Jan 2019 04:13:12 +0330 Subject: [PATCH 1201/1426] =?UTF-8?q?[Docs]=20add=20version=20number=20to?= =?UTF-8?q?=20`nvm=20=E2=80=94help`=20output?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nvm.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 52aba8a..c0d5bfd 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2326,8 +2326,9 @@ nvm() { NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" local NVM_NODE_PREFIX NVM_NODE_PREFIX="$(nvm_node_prefix)" + NVM_VERSION="$(nvm --version)" nvm_echo - nvm_echo "Node Version Manager" + nvm_echo "Node Version Manager (v${NVM_VERSION})" nvm_echo nvm_echo 'Note: refers to any version-like string nvm understands. This includes:' nvm_echo ' - full or partial version numbers, starting with an optional "v" (0.10, v0.1.2, v1)' From 4c8ced736dd3045f5e49fa486ea782fd7b4a7a59 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 24 Feb 2019 00:04:40 -0800 Subject: [PATCH 1202/1426] [Docs] `nvm --help`: add `--no-colors` and `--no-alias` --- nvm.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nvm.sh b/nvm.sh index c0d5bfd..82393cf 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2361,9 +2361,12 @@ nvm() { nvm_echo ' --lts= Uses automatic alias for provided LTS line, if available.' nvm_echo ' nvm current Display currently activated version of Node' nvm_echo ' nvm ls List installed versions' + nvm_echo ' --no-colors Suppress colored output' + nvm_echo ' --no-alias Suppress `nvm alias` output' nvm_echo ' nvm ls List versions matching a given ' nvm_echo ' nvm ls-remote List remote versions available for install' nvm_echo ' --lts When listing, only show LTS (long-term support) versions' + nvm_echo ' --no-colors Suppress colored output' nvm_echo ' nvm ls-remote List remote versions available for install, matching a given ' nvm_echo ' --lts When listing, only show LTS (long-term support) versions' nvm_echo ' --lts= When listing, only show versions for a specific LTS line' @@ -2373,6 +2376,7 @@ nvm() { nvm_echo ' --lts= When listing, only select from versions for a specific LTS line' nvm_echo ' nvm deactivate Undo effects of `nvm` on current shell' nvm_echo ' nvm alias [] Show all aliases beginning with ' + nvm_echo ' --no-colors Suppress colored output' nvm_echo ' nvm alias Set an alias named pointing to ' nvm_echo ' nvm unalias Deletes the alias named ' nvm_echo ' nvm install-latest-npm Attempt to upgrade to the latest working `npm` on the current node version' From 930507dbbc590d39fc0e6de67c555d4f13c2fc10 Mon Sep 17 00:00:00 2001 From: Christopher Sahnwaldt Date: Sat, 23 Feb 2019 09:53:56 +0100 Subject: [PATCH 1203/1426] [Docs] README.md: mention --no-colors option --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index a9fc2b8..51963ec 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,7 @@ - [io.js](#iojs) - [System version of node](#system-version-of-node) - [Listing versions](#listing-versions) + - [Suppressing colorized output](#suppressing-colorized-output) - [.nvmrc](#nvmrc) - [Deeper Shell Integration](#deeper-shell-integration) - [bash](#bash) @@ -339,6 +340,15 @@ If you want to see what versions are available to install: nvm ls-remote ``` +#### Suppressing colorized output + +`nvm ls`, `nvm ls-remote` and `nvm alias` usually produce colorized output. You can disable colors with the `--no-colors` option (or by setting the environment variable `TERM=dumb`): + +```sh +nvm ls --no-colors +TERM=dumb nvm ls +``` + To restore your PATH, you can deactivate it: ```sh From 216c24fba0d4b0512157a4683c9cb3a9ef69ae87 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 24 Feb 2019 22:57:06 -0800 Subject: [PATCH 1204/1426] [Docs] `--help`: consolidate some help output --- nvm.sh | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/nvm.sh b/nvm.sh index 82393cf..09538d5 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2360,16 +2360,13 @@ nvm() { nvm_echo ' --lts Uses automatic LTS (long-term support) alias `lts/*`, if available.' nvm_echo ' --lts= Uses automatic alias for provided LTS line, if available.' nvm_echo ' nvm current Display currently activated version of Node' - nvm_echo ' nvm ls List installed versions' + nvm_echo ' nvm ls [] List installed versions, matching a given if provided' nvm_echo ' --no-colors Suppress colored output' nvm_echo ' --no-alias Suppress `nvm alias` output' - nvm_echo ' nvm ls List versions matching a given ' - nvm_echo ' nvm ls-remote List remote versions available for install' - nvm_echo ' --lts When listing, only show LTS (long-term support) versions' - nvm_echo ' --no-colors Suppress colored output' - nvm_echo ' nvm ls-remote List remote versions available for install, matching a given ' + nvm_echo ' nvm ls-remote [] List remote versions available for install, matching a given if provided' nvm_echo ' --lts When listing, only show LTS (long-term support) versions' nvm_echo ' --lts= When listing, only show versions for a specific LTS line' + nvm_echo ' --no-colors Suppress colored output' nvm_echo ' nvm version Resolve the given description to a single local version' nvm_echo ' nvm version-remote Resolve the given description to a single remote version' nvm_echo ' --lts When listing, only select from LTS (long-term support) versions' From 226487d358cb7a31768a8c571a46ae8416d960f0 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 25 Feb 2019 00:13:50 -0800 Subject: [PATCH 1205/1426] [Fix] `install`: error out when an argument has `---` Fixes #1915. --- nvm.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nvm.sh b/nvm.sh index 09538d5..63ab8a9 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2520,6 +2520,10 @@ nvm() { NVM_UPGRADE_NPM=0 while [ $# -ne 0 ]; do case "$1" in + ---*) + nvm_err 'arguments with `---` are not supported - this is likely a typo' + return 55; + ;; -s) shift # consume "-s" nobinary=1 From 9daf26f0a00f593eb6f713e5e7908def85046f69 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 25 Feb 2019 13:17:10 -0800 Subject: [PATCH 1206/1426] [Tests] `nvm_command_info`: make error output more helpful --- test/fast/Unit tests/nvm_command_info | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/test/fast/Unit tests/nvm_command_info b/test/fast/Unit tests/nvm_command_info index 625e550..6eebefc 100755 --- a/test/fast/Unit tests/nvm_command_info +++ b/test/fast/Unit tests/nvm_command_info @@ -46,9 +46,13 @@ WGET_EXPECTED_INFO="$(type wget)" cleanup # 4. nvm_command_info() should not have standard error -nvm_command_info ls 2>&1 >/dev/null | grep . && die "\`nvm_command_info ls\` should not return standard error message(stage 4)" -nvm_command_info rm 2>&1 >/dev/null | grep . && die "\`nvm_command_info rm\` should not return standard error message(stage 4)" -nvm_command_info git 2>&1 >/dev/null | grep . && die "\`nvm_command_info git\` should not return standard error message(stage 4)" -nvm_command_info grep 2>&1 >/dev/null | grep . && die "\`nvm_command_info grep\` should not return standard error message(stage 4)" +OUTPUT="$(nvm_command_info ls 2>&1 >/dev/null)" +[ -z "${OUTPUT}" ] || die "\`nvm_command_info ls\` expected no stderr; got >${OUTPUT}< (stage 4)" +OUTPUT="$(nvm_command_info rm 2>&1 >/dev/null)" +[ -z "${OUTPUT}" ] || die "\`nvm_command_info rm\` expected no stderr; got >${OUTPUT}< (stage 4)" +OUTPUT="$(nvm_command_info git 2>&1 >/dev/null)" +[ -z "${OUTPUT}" ] || die "\`nvm_command_info git\` expected no stderr; got >${OUTPUT}< (stage 4)" +OUTPUT="$(nvm_command_info grep 2>&1 >/dev/null)" +[ -z "${OUTPUT}" ] || die "\`nvm_command_info grep\` expected no stderr; got >${OUTPUT}< (stage 4)" cleanup From 924a175bd876fd9f3b5ba7d386e383185131df46 Mon Sep 17 00:00:00 2001 From: Refael Ackermann Date: Mon, 25 Feb 2019 15:02:15 -0500 Subject: [PATCH 1207/1426] [Tests] update dist from trusty to xenial --- .travis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 353ea00..3deb676 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,5 @@ language: generic -dist: trusty +dist: xenial sudo: required addons: apt: @@ -36,8 +36,8 @@ before_cache: - if [ -n "${NODE-}" ]; then . nvm.sh && set -ex && nvm install --latest-npm "${NODE}" && npm --version; fi env: global: - - CXX=g++-4.8 - - CC=gcc-4.8 + - CXX=g++ + - CC=gcc - PATH="$(echo $PATH | sed 's/::/:/')" - PATH="/usr/lib/ccache/:$PATH" - NVM_DIR="${TRAVIS_BUILD_DIR}" From e0d87528f3cf00c693a45ea65f85533b7f145ebf Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 24 Feb 2019 23:04:13 -0800 Subject: [PATCH 1208/1426] [shellcheck] remove unnecessary overrides --- nvm.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index 63ab8a9..3170252 100644 --- a/nvm.sh +++ b/nvm.sh @@ -21,7 +21,6 @@ nvm_echo() { } nvm_cd() { - # shellcheck disable=SC1001,SC2164 \cd "$@" } @@ -43,7 +42,6 @@ nvm_has_non_aliased() { nvm_is_alias() { # this is intentionally not "command alias" so it works in zsh. - # shellcheck disable=SC1001 \alias "${1-}" >/dev/null 2>&1 } @@ -260,7 +258,6 @@ if [ -z "${NVM_DIR-}" ]; then # shellcheck disable=SC2169 NVM_SCRIPT_SOURCE="${BASH_SOURCE[0]}" fi - # shellcheck disable=SC1001 NVM_DIR="$(nvm_cd ${NVM_CD_FLAGS} "$(dirname "${NVM_SCRIPT_SOURCE:-$0}")" >/dev/null && \pwd)" export NVM_DIR else From 1ede50cbae8bc13402a7ad681add4ae7c7fc2f04 Mon Sep 17 00:00:00 2001 From: Eric Lewis Date: Fri, 22 Feb 2019 10:04:13 -0500 Subject: [PATCH 1209/1426] [Docs] Add note about what version of node new shells run with. Fixes #2000 --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 51963ec..2ba1b25 100644 --- a/README.md +++ b/README.md @@ -221,6 +221,8 @@ To install a specific version of node: nvm install 6.14.4 # or 10.10.0, 8.9.1, etc ``` +The first version installed becomes the default. New shells will start with the default version of node (e.g., `nvm alias default`). + You can list available versions using ls-remote: ```sh From 43402df89629a25ce0e63c73d756a3bf49acc589 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 26 Feb 2019 16:53:36 -0800 Subject: [PATCH 1210/1426] [Fix] `nvm_supports_source_options`: work around a bug in bash 3.2 See https://github.com/creationix/nvm/issues/1978#issuecomment-453480231 Fixes #1978. --- nvm.sh | 5 +++- .../Unit tests/nvm_supports_source_options | 27 +++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100755 test/fast/Unit tests/nvm_supports_source_options diff --git a/nvm.sh b/nvm.sh index 3170252..01213a3 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3559,7 +3559,10 @@ nvm_install_default_packages() { nvm_supports_source_options() { # shellcheck disable=SC1091,SC2240 - [ "_$(nvm_echo '[ $# -gt 0 ] && nvm_echo $1' | . /dev/stdin yes 2>/dev/null)" = "_yes" ] + [ "_$( . /dev/stdin yes 2> /dev/null <<'EOF' +[ $# -gt 0 ] && nvm_echo $1 +EOF + )" = "_yes" ] } nvm_supports_xz() { diff --git a/test/fast/Unit tests/nvm_supports_source_options b/test/fast/Unit tests/nvm_supports_source_options new file mode 100755 index 0000000..ceeff91 --- /dev/null +++ b/test/fast/Unit tests/nvm_supports_source_options @@ -0,0 +1,27 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +x=0 +i=0 +runs=5 +calls=500 +first_result=false +if (nvm_supports_source_options && printf .); then + first_result=true +fi +while [ $x -le $runs ]; do + y=$x + x=$(( x + 1 )) + while [ $i -le $calls ]; do + this_result=false + if (nvm_supports_source_options && printf .); then + this_result=true + fi + [ $this_result = $first_result ] || die "call ${i}, run ${y} got ${this_result}; expected ${first_result}" + i=$(( i + 1 )) + done +done +echo "${runs} runs of ${calls} calls succeeded" From a1abfd1fe42308599b77461eb15460427fe05b9e Mon Sep 17 00:00:00 2001 From: Christopher Sahnwaldt Date: Wed, 27 Feb 2019 10:50:59 +0100 Subject: [PATCH 1211/1426] [Tests] use rimraf over `rmdir` in teardowns - fix test 'Running "nvm ls" should display all installed versions.': only expect versions created by this test, but no versions created by other tests --- test/fast/Listing paths/teardown | 6 ++-- ...\" should display all installed versions." | 8 +---- test/fast/Listing versions/teardown | 33 +++++++++---------- 3 files changed, 20 insertions(+), 27 deletions(-) diff --git a/test/fast/Listing paths/teardown b/test/fast/Listing paths/teardown index 25277fe..7c3e727 100755 --- a/test/fast/Listing paths/teardown +++ b/test/fast/Listing paths/teardown @@ -1,3 +1,3 @@ -rmdir ../../../v0.0.2 >/dev/null 2>&1 -rmdir ../../../v0.0.20 >/dev/null 2>&1 -rmdir ../../../v0.12.0 >/dev/null 2>&1 +rm -rf ../../../v0.0.2 +rm -rf ../../../v0.0.20 +rm -rf ../../../v0.12.0 diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." "b/test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." index 9f0eecd..92e0270 100755 --- "a/test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." +++ "b/test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." @@ -28,21 +28,15 @@ nvm ls | grep iojs-v0.1.2 >/dev/null || die "iojs-v0.1.2 not found in: $(nvm ls) OUTPUT="$(nvm_ls)" EXPECTED_OUTPUT="v0.0.1 -v0.0.2 v0.0.3 v0.0.9 -v0.0.20 iojs-v0.1.2 -v0.1.3 -v0.1.4 -v0.2.3 v0.3.1 v0.3.3 v0.3.9 iojs-v0.10.2 v0.12.9 -v0.12.87 -v0.20.3" +v0.12.87" if nvm_has_system_node || nvm_has_system_iojs; then EXPECTED_OUTPUT="${EXPECTED_OUTPUT} system" diff --git a/test/fast/Listing versions/teardown b/test/fast/Listing versions/teardown index 8ae7d96..eb9610b 100755 --- a/test/fast/Listing versions/teardown +++ b/test/fast/Listing versions/teardown @@ -1,17 +1,16 @@ -rmdir ../../../v0.0.1 >/dev/null 2>&1 -rmdir ../../../v0.0.2 >/dev/null 2>&1 -rmdir ../../../v0.0.3 >/dev/null 2>&1 -rmdir ../../../v0.0.9 >/dev/null 2>&1 -rmdir ../../../v0.0.20 >/dev/null 2>&1 -rmdir ../../../v0.1.2 >/dev/null 2>&1 -rmdir ../../../v0.1.3 >/dev/null 2>&1 -rmdir ../../../v0.1.4 >/dev/null 2>&1 -rmdir ../../../v0.2.3 >/dev/null 2>&1 -rmdir ../../../v0.3.1 >/dev/null 2>&1 -rmdir ../../../v0.3.3 >/dev/null 2>&1 -rmdir ../../../v0.3.9 >/dev/null 2>&1 -rmdir ../../../v0.20.3 >/dev/null 2>&1 -rmdir ../../../versions >/dev/null 2>&1 -unalias nvm_has_system_node >/dev/null 2>&1 -rm -f ../../../alias/stable >/dev/null 2>&1 -rm -f ../../../alias/unstable >/dev/null 2>&1 +rm -rf ../../../v0.0.1 +rm -rf ../../../v0.0.2 +rm -rf ../../../v0.0.3 +rm -rf ../../../v0.0.9 +rm -rf ../../../v0.0.20 +rm -rf ../../../v0.1.2 +rm -rf ../../../v0.1.3 +rm -rf ../../../v0.1.4 +rm -rf ../../../v0.2.3 +rm -rf ../../../v0.3.1 +rm -rf ../../../v0.3.3 +rm -rf ../../../v0.3.9 +rm -rf ../../../v0.20.3 +rm -rf ../../../versions +rm -f ../../../alias/stable +rm -f ../../../alias/unstable From 2410215b6a96c5a4376af8a41b6e2942b4b6cc2d Mon Sep 17 00:00:00 2001 From: Christopher Sahnwaldt Date: Sun, 24 Feb 2019 00:03:19 +0100 Subject: [PATCH 1212/1426] [Refactor] add `nvm_stdout_is_terminal` helper --- nvm.sh | 6 +++- test/fast/Unit tests/nvm_stdout_is_terminal | 32 +++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100755 test/fast/Unit tests/nvm_stdout_is_terminal diff --git a/nvm.sh b/nvm.sh index 01213a3..6bc0082 100644 --- a/nvm.sh +++ b/nvm.sh @@ -16,6 +16,10 @@ nvm_is_zsh() { [ -n "${ZSH_VERSION-}" ] } +nvm_stdout_is_terminal() { + [ -t 1 ] +} + nvm_echo() { command printf %s\\n "$*" 2>/dev/null } @@ -3499,7 +3503,7 @@ nvm() { nvm_print_default_alias nvm_print_formatted_alias nvm_resolve_local_alias \ nvm_sanitize_path nvm_has_colors nvm_process_parameters \ node_version_has_solaris_binary iojs_version_has_solaris_binary \ - nvm_curl_libz_support nvm_command_info nvm_is_zsh \ + nvm_curl_libz_support nvm_command_info nvm_is_zsh nvm_stdout_is_terminal \ >/dev/null 2>&1 unset NVM_RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_IOJS_ORG_MIRROR NVM_DIR \ NVM_CD_FLAGS NVM_BIN NVM_MAKE_JOBS \ diff --git a/test/fast/Unit tests/nvm_stdout_is_terminal b/test/fast/Unit tests/nvm_stdout_is_terminal new file mode 100755 index 0000000..31b4666 --- /dev/null +++ b/test/fast/Unit tests/nvm_stdout_is_terminal @@ -0,0 +1,32 @@ +#!/bin/sh + +tempfile=$(mktemp) + +die () { echo "$@" ; cleanup; exit 1; } +cleanup() { rm -f "$tempfile"; } + +\. ../../../nvm.sh + +if [ -t 1 ] ; then + # test is running in a terminal, e.g. locally + nvm_stdout_is_terminal || die 'nvm_stdout_is_terminal should be true' + nvm_stdout_is_terminal 2>/dev/null || die 'nvm_stdout_is_terminal should be true when stderr is redirected' + nvm_stdout_is_terminal /dev/null || die 'nvm_stdout_is_terminal should be false when stderr is redirected' + ! nvm_stdout_is_terminal /dev/null || die 'nvm_stdout_is_terminal should be false when stdout goes to /dev/null' +! nvm_stdout_is_terminal >"$tempfile" || die 'nvm_stdout_is_terminal should be false when stdout goes to a file' +[ "$(nvm_stdout_is_terminal; echo $?)" = "1" ] || die 'nvm_stdout_is_terminal should be false in command substitution' + +# also test the 'true' case while running on travis-ci or similar environments +nvm_stdout_is_terminal >/dev/tty || die 'nvm_stdout_is_terminal should be true when stdout goes to /dev/tty' +nvm_stdout_is_terminal >/dev/tty 2>/dev/null || die 'nvm_stdout_is_terminal should be true when stdout goes to /dev/tty and stderr is redirected' +nvm_stdout_is_terminal >/dev/tty Date: Tue, 12 Mar 2019 16:43:08 +0000 Subject: [PATCH 1213/1426] [Docs] update `bash` `cdnvm` script to properly handle aliases - Only works for common aliases like `default`, `system`, `node`, `lts/*`, `iojs` etc. - Prevent unnecessary running of `nvm use` --- README.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 2ba1b25..2226a57 100644 --- a/README.md +++ b/README.md @@ -457,17 +457,18 @@ cdnvm(){ declare nvm_version nvm_version=$(<"$nvm_path"/.nvmrc) - # Add the `v` suffix if it does not exists in the .nvmrc file - if [[ $nvm_version != v* ]]; then - nvm_version="v""$nvm_version" - fi + declare locally_resolved_nvm_version + # `nvm ls` will check all locally-available versions + # If there are multiple matching versions, take the latest one + # Remove the `->` and `*` characters and spaces + # `locally_resolved_nvm_version` will be `N/A` if no local versions are found + locally_resolved_nvm_version=$(nvm ls --no-colors $(<"./.nvmrc") | tail -1 | tr -d '\->*' | tr -d '[:space:]') # If it is not already installed, install it - if [[ $(nvm ls "$nvm_version" | tr -d '[:space:]') == "N/A" ]]; then + # `nvm install` will implicitly use the newly-installed version + if [[ "$locally_resolved_nvm_version" == "N/A" ]]; then nvm install "$nvm_version"; - fi - - if [[ $(nvm current) != "$nvm_version" ]]; then + elif [[ $(nvm current) != "$locally_resolved_nvm_version" ]]; then nvm use "$nvm_version"; fi fi From e7a5b7992bb6bb27873367c59d72ecc96d07fc6f Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 24 Apr 2019 16:08:34 -0700 Subject: [PATCH 1214/1426] [meta] update repo links to point to org --- README.md | 36 +++++++++---------- ROADMAP.md | 10 +++--- install.sh | 8 ++--- nvm.sh | 2 +- package.json | 6 ++-- test/fast/Unit tests/nvm_change_path | 2 +- ...nvm uninstall 0.12.6\" uninstalls v0.12.6" | 2 +- test/slow/nvm_get_latest/nvm_get_latest | 4 +-- 8 files changed, 35 insertions(+), 35 deletions(-) diff --git a/README.md b/README.md index 2226a57..769db8b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Node Version Manager [![Build Status](https://travis-ci.org/creationix/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.34.0-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://travis-ci.org/nvm-sh/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.34.0-yellow.svg)][4] [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/684/badge)](https://bestpractices.coreinfrastructure.org/projects/684) @@ -47,13 +47,13 @@ To **install** or **update** nvm, you can use the [install script][2] using cURL: ```sh -curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash ``` or Wget: ```sh -wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash +wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash ``` The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). @@ -80,7 +80,7 @@ command -v nvm simply close your current terminal, open a new terminal, and try verifying again. -**Note:** Since OS X 10.9, `/usr/bin/git` has been preset by Xcode command line tools, which means we can't properly detect if Git is installed or not. You need to manually install the Xcode command line tools before running the install script, otherwise, it'll fail. (see [#1782](https://github.com/creationix/nvm/issues/1782)) +**Note:** Since OS X 10.9, `/usr/bin/git` has been preset by Xcode command line tools, which means we can't properly detect if Git is installed or not. You need to manually install the Xcode command line tools before running the install script, otherwise, it'll fail. (see [#1782](https://github.com/nvm-sh/nvm/issues/1782)) **Note:** On OS X, if you get `nvm: command not found` after running the install script, one of the following might be the reason:- @@ -91,7 +91,7 @@ If the above doesn't fix the problem, open your `.bash_profile` and add the foll `source ~/.bashrc` -- For more information about this issue and possible workarounds, please [refer here](https://github.com/creationix/nvm/issues/576) +- For more information about this issue and possible workarounds, please [refer here](https://github.com/nvm-sh/nvm/issues/576) #### Ansible You can use a task: @@ -99,7 +99,7 @@ If the above doesn't fix the problem, open your `.bash_profile` and add the foll ``` - name: nvm shell: > - curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash + curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash args: creates: "{{ ansible_env.HOME }}/.nvm/nvm.sh" ``` @@ -118,12 +118,12 @@ which should output 'nvm' if the installation was successful. Please note that ` If you're running a system without prepackaged binary available, which means you're going to install nodejs or io.js from its source code, you need to make sure your system has a C++ compiler. For OS X, Xcode will work, for Debian/Ubuntu based GNU/Linux, the `build-essential` and `libssl-dev` packages work. -**Note:** `nvm` does not support Windows (see [#284](https://github.com/creationix/nvm/issues/284)). Two alternatives exist, which are neither supported nor developed by us: +**Note:** `nvm` does not support Windows (see [#284](https://github.com/nvm-sh/nvm/issues/284)). Two alternatives exist, which are neither supported nor developed by us: - [nvm-windows](https://github.com/coreybutler/nvm-windows) - [nodist](https://github.com/marcelklehr/nodist) -**Note:** `nvm` does not support [Fish] either (see [#303](https://github.com/creationix/nvm/issues/303)). Alternatives exist, which are neither supported nor developed by us: +**Note:** `nvm` does not support [Fish] either (see [#303](https://github.com/nvm-sh/nvm/issues/303)). Alternatives exist, which are neither supported nor developed by us: - [bass](https://github.com/edc/bass) allows you to use utilities written for Bash in fish shell - [fast-nvm-fish](https://github.com/brigand/fast-nvm-fish) only works with version numbers (not aliases) but doesn't significantly slow your shell startup @@ -133,7 +133,7 @@ If you're running a system without prepackaged binary available, which means you **Note:** We still have some problems with FreeBSD, because there is no official pre-built binary for FreeBSD, and building from source may need [patches](https://www.freshports.org/www/node/files/patch-deps_v8_src_base_platform_platform-posix.cc); see the issue ticket: - - [[#900] [Bug] nodejs on FreeBSD may need to be patched](https://github.com/creationix/nvm/issues/900) + - [[#900] [Bug] nodejs on FreeBSD may need to be patched](https://github.com/nvm-sh/nvm/issues/900) - [nodejs/node#3716](https://github.com/nodejs/node/issues/3716) **Note:** On OS X, if you do not have Xcode installed and you do not wish to download the ~4.3GB file, you can install the `Command Line Tools`. You can check out this blog post on how to just that: @@ -157,7 +157,7 @@ Homebrew installation is not supported. If you have issues with homebrew-install 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/creationix/nvm.git .nvm` + - `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.34.0` 1. activate nvm by sourcing it from your shell: `. nvm.sh` @@ -176,7 +176,7 @@ For a fully manual install, execute the following lines to first clone the nvm r ```sh export NVM_DIR="$HOME/.nvm" && ( - git clone https://github.com/creationix/nvm.git "$NVM_DIR" + git clone https://github.com/nvm-sh/nvm.git "$NVM_DIR" cd "$NVM_DIR" git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1)` ) && \. "$NVM_DIR/nvm.sh" @@ -629,7 +629,7 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh ```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/creationix/nvm/v0.34.0/install.sh | bash +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash ``` The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. @@ -692,7 +692,7 @@ For more information and documentation about docker, please refer to its officia curl: (33) HTTP server doesn't seem to support byte ranges. Cannot resume. - - Where's my `sudo node`? Check out [#43](https://github.com/creationix/nvm/issues/43) + - Where's my `sudo node`? Check out [#43](https://github.com/nvm-sh/nvm/issues/43) - After the v0.8.6 release of node, nvm tries to install from binary packages. But in some systems, the official binary packages don't work due to incompatibility of shared libs. In such cases, use `-s` option to force install from source: @@ -700,7 +700,7 @@ For more information and documentation about docker, please refer to its officia nvm install -s 0.8.6 ``` - - If setting the `default` alias does not establish the node version in new shells (i.e. `nvm current` yields `system`), ensure that the system's node `PATH` is set before the `nvm.sh` source line in your shell profile (see [#658](https://github.com/creationix/nvm/issues/658)) + - If setting the `default` alias does not establish the node version in new shells (i.e. `nvm current` yields `system`), ensure that the system's node `PATH` is set before the `nvm.sh` source line in your shell profile (see [#658](https://github.com/nvm-sh/nvm/issues/658)) ## Mac OS "troubleshooting" @@ -714,9 +714,9 @@ sudo chmod ugo-x /usr/libexec/path_helper More on this issue in [dotphiles/dotzsh](https://github.com/dotphiles/dotzsh#mac-os-x). -[1]: https://github.com/creationix/nvm.git -[2]: https://github.com/creationix/nvm/blob/v0.34.0/install.sh -[3]: https://travis-ci.org/creationix/nvm -[4]: https://github.com/creationix/nvm/releases/tag/v0.34.0 +[1]: https://github.com/nvm-sh/nvm.git +[2]: https://github.com/nvm-sh/nvm/blob/v0.34.0/install.sh +[3]: https://travis-ci.org/nvm-sh/nvm +[4]: https://github.com/nvm-sh/nvm/releases/tag/v0.34.0 [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/ROADMAP.md b/ROADMAP.md index 80e89b8..28d4b49 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -2,8 +2,8 @@ This is a list of the primary features planned for `nvm`: -- [x] Rewriting installation code paths to support installing `io.js` and `node` `v4+` [from source](https://github.com/creationix/nvm/issues/1188). - - This will include [reusing previously downloaded tarballs](https://github.com/creationix/nvm/issues/1193) that match checksums, which is a nice performance and bandwidth bonus. -- [ ] Adding opt-in environment variable support to list, download, and install `node` [release candidates](https://github.com/creationix/nvm/issues/779), and [nightly builds](https://github.com/creationix/nvm/issues/1053). -- [ ] [`nvm update`](https://github.com/creationix/nvm/issues/400): the ability to autoupdate `nvm` itself -- [ ] [v1.0.0](https://github.com/creationix/nvm/milestone/1), including updating the [nvm on npm](https://github.com/creationix/nvm/issues/304) to auto-install nvm properly +- [x] Rewriting installation code paths to support installing `io.js` and `node` `v4+` [from source](https://github.com/nvm-sh/nvm/issues/1188). + - This will include [reusing previously downloaded tarballs](https://github.com/nvm-sh/nvm/issues/1193) that match checksums, which is a nice performance and bandwidth bonus. +- [ ] Adding opt-in environment variable support to list, download, and install `node` [release candidates](https://github.com/nvm-sh/nvm/issues/779), and [nightly builds](https://github.com/nvm-sh/nvm/issues/1053). +- [ ] [`nvm update`](https://github.com/nvm-sh/nvm/issues/400): the ability to autoupdate `nvm` itself +- [ ] [v1.0.0](https://github.com/nvm-sh/nvm/milestone/1), including updating the [nvm on npm](https://github.com/nvm-sh/nvm/issues/304) to auto-install nvm properly diff --git a/install.sh b/install.sh index 8dd6f07..c794623 100755 --- a/install.sh +++ b/install.sh @@ -51,14 +51,14 @@ nvm_source() { local NVM_SOURCE_URL NVM_SOURCE_URL="$NVM_SOURCE" if [ "_$NVM_METHOD" = "_script-nvm-exec" ]; then - NVM_SOURCE_URL="https://raw.githubusercontent.com/creationix/nvm/$(nvm_latest_version)/nvm-exec" + NVM_SOURCE_URL="https://raw.githubusercontent.com/nvm-sh/nvm/$(nvm_latest_version)/nvm-exec" elif [ "_$NVM_METHOD" = "_script-nvm-bash-completion" ]; then - NVM_SOURCE_URL="https://raw.githubusercontent.com/creationix/nvm/$(nvm_latest_version)/bash_completion" + NVM_SOURCE_URL="https://raw.githubusercontent.com/nvm-sh/nvm/$(nvm_latest_version)/bash_completion" elif [ -z "$NVM_SOURCE_URL" ]; then if [ "_$NVM_METHOD" = "_script" ]; then - NVM_SOURCE_URL="https://raw.githubusercontent.com/creationix/nvm/$(nvm_latest_version)/nvm.sh" + NVM_SOURCE_URL="https://raw.githubusercontent.com/nvm-sh/nvm/$(nvm_latest_version)/nvm.sh" elif [ "_$NVM_METHOD" = "_git" ] || [ -z "$NVM_METHOD" ]; then - NVM_SOURCE_URL="https://github.com/creationix/nvm.git" + NVM_SOURCE_URL="https://github.com/nvm-sh/nvm.git" else echo >&2 "Unexpected value \"$NVM_METHOD\" for \$NVM_METHOD" return 1 diff --git a/nvm.sh b/nvm.sh index 6bc0082..c68db1e 100644 --- a/nvm.sh +++ b/nvm.sh @@ -646,7 +646,7 @@ nvm_change_path() { # if the initial path contains BOTH an nvm path (checked for above) and # that nvm path is preceded by a system binary path, just prepend the # supplementary path instead of replacing it. - # https://github.com/creationix/nvm/issues/1652#issuecomment-342571223 + # https://github.com/nvm-sh/nvm/issues/1652#issuecomment-342571223 elif nvm_echo "${1-}" | nvm_grep -Eq "(^|:)(/usr(/local)?)?${2-}:.*${NVM_DIR}/[^/]*${2-}" \ || nvm_echo "${1-}" | nvm_grep -Eq "(^|:)(/usr(/local)?)?${2-}:.*${NVM_DIR}/versions/[^/]*/[^/]*${2-}"; then nvm_echo "${3-}${2-}:${1-}" diff --git a/package.json b/package.json index 52f49f2..fbb2cdc 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ }, "repository": { "type": "git", - "url": "git://github.com/creationix/nvm.git" + "url": "git://github.com/nvm-sh/nvm.git" }, "keywords": [ "nvm", @@ -32,9 +32,9 @@ "author": "Tim Caswell ", "license": "MIT", "bugs": { - "url": "https://github.com/creationix/nvm/issues" + "url": "https://github.com/nvm-sh/nvm/issues" }, - "homepage": "https://github.com/creationix/nvm", + "homepage": "https://github.com/nvm-sh/nvm", "devDependencies": { "dockerfile_lint": "^0.3.2", "eclint": "^2.6.0", diff --git a/test/fast/Unit tests/nvm_change_path b/test/fast/Unit tests/nvm_change_path index 8c0f937..f434981 100755 --- a/test/fast/Unit tests/nvm_change_path +++ b/test/fast/Unit tests/nvm_change_path @@ -43,7 +43,7 @@ NEW_PATH=`nvm_change_path "$EMPTY_PATH" "/bin" "$NVM_DIR/v0.1.2"` [ "$NEW_PATH" = "$NVM_DIR/v0.1.2/bin" ] || die "Not correctly prepended: $NEW_PATH " -# https://github.com/creationix/nvm/issues/1652#issuecomment-342571223 +# https://github.com/nvm-sh/nvm/issues/1652#issuecomment-342571223 MAC_OS_NESTED_SESSION_PATH=/usr/bin:/usr/local/bin:$NVM_DIR/versions/node/v4.5.0/bin # New version dir diff --git "a/test/slow/nvm uninstall/Running \"nvm uninstall 0.12.6\" uninstalls v0.12.6" "b/test/slow/nvm uninstall/Running \"nvm uninstall 0.12.6\" uninstalls v0.12.6" index 7e62c2f..ec6a658 100755 --- "a/test/slow/nvm uninstall/Running \"nvm uninstall 0.12.6\" uninstalls v0.12.6" +++ "b/test/slow/nvm uninstall/Running \"nvm uninstall 0.12.6\" uninstalls v0.12.6" @@ -20,7 +20,7 @@ nvm ls | grep "$NVM_TEST_VERSION" || die "Failed to install node" # Switch to another version so we can uninstall nvm use 0.12.7 -# if zsh, set "nomatch" opt to reproduce failure from https://github.com/creationix/nvm/issues/1228 +# if zsh, set "nomatch" opt to reproduce failure from https://github.com/nvm-sh/nvm/issues/1228 if nvm_has "setopt"; then setopt nomatch fi diff --git a/test/slow/nvm_get_latest/nvm_get_latest b/test/slow/nvm_get_latest/nvm_get_latest index 77ef8d0..5311360 100755 --- a/test/slow/nvm_get_latest/nvm_get_latest +++ b/test/slow/nvm_get_latest/nvm_get_latest @@ -9,7 +9,7 @@ cleanup() { \. ../../../nvm.sh EXPECTED_VERSION="v12.3.456" -URL="https://github.com/creationix/nvm/releases/tag/$EXPECTED_VERSION" +URL="https://github.com/nvm-sh/nvm/releases/tag/$EXPECTED_VERSION" EXPECTED_CURL_ARGS="--compressed -q -w %{url_effective}\n -L -s -S http://latest.nvm.sh -o /dev/null" EXPECTED_WGET_ARGS="-q http://latest.nvm.sh --server-response -O /dev/null" @@ -34,7 +34,7 @@ wget() { local WGET_CONTENTS WGET_CONTENTS=" HTTP/1.1 301 Moved Permanently - Location: https://github.com/creationix/nvm/releases/latest + Location: https://github.com/nvm-sh/nvm/releases/latest Content-Type: text/html; charset=utf-8 Content-Length: 84 Date: Mon, 22 Dec 2014 02:11:15 GMT From ee9e56582e5fe53e57100e7b97d609d3d4e0fd16 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 4 May 2019 13:34:16 -0700 Subject: [PATCH 1215/1426] [Tests] `jspm` v2 beta started breaking tests; pin to < v2 --- ...vm uninstall\" with incorrect file permissions fails nicely" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/test/slow/nvm uninstall/Running \"nvm uninstall\" with incorrect file permissions fails nicely" "b/test/slow/nvm uninstall/Running \"nvm uninstall\" with incorrect file permissions fails nicely" index 10de1c4..0c19db8 100755 --- "a/test/slow/nvm uninstall/Running \"nvm uninstall\" with incorrect file permissions fails nicely" +++ "b/test/slow/nvm uninstall/Running \"nvm uninstall\" with incorrect file permissions fails nicely" @@ -19,7 +19,7 @@ nvm ls | grep "$NVM_TEST_VERSION" || die "Failed to install node" # Install global module as root npm_path=$(which npm) -sudo -n "$npm_path" install jspm -g || die 'either sudo failed, or `npm install jspm -g` failed`' +sudo -n "$npm_path" install jspm@'<2' -g || die 'either sudo failed, or `npm install jspm -g` failed`' # Switch to another version so we can uninstall nvm use 0.12.7 From 3664744e3bba85cbb69648eecc6ea3086f273602 Mon Sep 17 00:00:00 2001 From: Alfred Myers Date: Thu, 2 May 2019 12:20:17 -0300 Subject: [PATCH 1216/1426] Updated note about Windows There's a lot of old info around the interwebs. Much stating nvm doesn't work in WSL. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 769db8b..dadefd4 100644 --- a/README.md +++ b/README.md @@ -118,7 +118,7 @@ which should output 'nvm' if the installation was successful. Please note that ` If you're running a system without prepackaged binary available, which means you're going to install nodejs or io.js from its source code, you need to make sure your system has a C++ compiler. For OS X, Xcode will work, for Debian/Ubuntu based GNU/Linux, the `build-essential` and `libssl-dev` packages work. -**Note:** `nvm` does not support Windows (see [#284](https://github.com/nvm-sh/nvm/issues/284)). Two alternatives exist, which are neither supported nor developed by us: +**Note:** `nvm` does not support Windows (see [#284](https://github.com/nvm-sh/nvm/issues/284)), but may work in WSL (Windows Subsystem for Linux) depending on the version of WSL. For Windows, two alternatives exist, which are neither supported nor developed by us: - [nvm-windows](https://github.com/coreybutler/nvm-windows) - [nodist](https://github.com/marcelklehr/nodist) From 45c1b84794d446dd8274938c8259cbfd8b846e47 Mon Sep 17 00:00:00 2001 From: Bastian Fuchs Date: Sun, 28 Apr 2019 12:51:15 +0200 Subject: [PATCH 1217/1426] [Fix] Determine correct sub directory if XDG_CONFIG_HOME is set With the environment variable XDG_CONFIG_HOME set, the installation script uses the directory $XDG_CONFIG_HOME/nvm now. Before the change the variable's value with "/nvm" cut off was used, which usually results in an installation without any subdirectory. --- install.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index c794623..67349ad 100755 --- a/install.sh +++ b/install.sh @@ -7,10 +7,10 @@ nvm_has() { } nvm_default_install_dir() { - if [ -n "$XDG_CONFIG_HOME" ]; then - printf %s "${XDG_CONFIG_HOME/nvm}" + if [ -n "${XDG_CONFIG_HOME-}" ]; then + printf %s "${XDG_CONFIG_HOME}/nvm" else - printf %s "$HOME/.nvm" + printf %s "${HOME}/.nvm" fi } From 0b5bb5ccd875d82e470568b6465d546346e37778 Mon Sep 17 00:00:00 2001 From: Sehrope Sarkuni Date: Tue, 14 May 2019 08:31:24 -0400 Subject: [PATCH 1218/1426] [Fix] `set -u`: Add default empty value for `$NVM_NO_ALIAS` Adds a default value for NVM_NO_ALIAS so that nvm ls does not error out when run in a bash nounset/-u (no unset vars) environment. --- nvm.sh | 2 +- ... \"nvm ls\" with nounset should not fail." | 23 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100755 "test/fast/Listing versions/Running \"nvm ls\" with nounset should not fail." diff --git a/nvm.sh b/nvm.sh index c68db1e..744bb78 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3161,7 +3161,7 @@ nvm() { esac shift done - if [ -n "${PATTERN-}" ] && [ -n "${NVM_NO_ALIAS}" ]; then + if [ -n "${PATTERN-}" ] && [ -n "${NVM_NO_ALIAS-}" ]; then nvm_err '`--no-alias` is not supported when a pattern is provided.' return 55 fi diff --git "a/test/fast/Listing versions/Running \"nvm ls\" with nounset should not fail." "b/test/fast/Listing versions/Running \"nvm ls\" with nounset should not fail." new file mode 100755 index 0000000..d2bfe9e --- /dev/null +++ "b/test/fast/Listing versions/Running \"nvm ls\" with nounset should not fail." @@ -0,0 +1,23 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh +\. ../../common.sh + +make_fake_node v0.12.34 || die 'fake v0.12.34 could not be made' + +# Enable no unset variable +set -u + +# Try an alias that does not exist +output=$(nvm ls 99 2>&1 1>/dev/null || true) +test -z "${output}" || die "1: expected empty; got >${output}" + +# Try a version that does not exist +output=$(nvm ls 0.12.00 2>&1 1>/dev/null || true) +test -z "${output}" || die "2: expected empty; got >${output}" + +# Try a version that does exist +output=$(nvm ls 0.12.34 2>&1 1>/dev/null || true) +test -z "${output}" || die "3: expected empty; got >${output}" From 07b20d5008a480f7e579fd34e6d39919909206f4 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 17 Jul 2019 10:48:23 -0700 Subject: [PATCH 1219/1426] [meta] add copyright line to license file --- LICENSE.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/LICENSE.md b/LICENSE.md index 2b115b1..54a112f 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -2,6 +2,8 @@ The MIT License (MIT) Copyright (c) 2010 Tim Caswell +Copyright (c) 2014 Jordan Harband + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to From 6537c91eb58b15234e543a3c5b1c9afc19734c72 Mon Sep 17 00:00:00 2001 From: Greg Smith Date: Fri, 9 Aug 2019 14:38:37 -0600 Subject: [PATCH 1220/1426] Fix bash auto-use nvm command It was trying to read ./.nvmrc if you cd'ed into a subdirectory of the directory that has .nvmrc, which would give print `-bash: ./.nvmrc: No such file or directory` to stderr and potentially not doing the `nvm install`. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index dadefd4..9eb8c50 100644 --- a/README.md +++ b/README.md @@ -462,7 +462,7 @@ cdnvm(){ # If there are multiple matching versions, take the latest one # Remove the `->` and `*` characters and spaces # `locally_resolved_nvm_version` will be `N/A` if no local versions are found - locally_resolved_nvm_version=$(nvm ls --no-colors $(<"./.nvmrc") | tail -1 | tr -d '\->*' | tr -d '[:space:]') + locally_resolved_nvm_version=$(nvm ls --no-colors "$nvm_version" | tail -1 | tr -d '\->*' | tr -d '[:space:]') # If it is not already installed, install it # `nvm install` will implicitly use the newly-installed version From 3cc9525dceacb1d7376df85aa14167bc0cacc5e1 Mon Sep 17 00:00:00 2001 From: Will Papper Date: Wed, 24 Apr 2019 00:03:01 -0700 Subject: [PATCH 1221/1426] [Docs] [Fix] Set $NVM_DIR to ".nvm" instead of "nvm" - Operating system and version: Mac OS X Mojave - What happened? $NVM_DIR was set to nvm - What did you expect to happen? $NVM_DIR should be set to .nvm I added the following line from the README to my .zshrc: ``` export NVM_DIR="${XDG_CONFIG_HOME/:-$HOME/.}nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm ``` I couldn't figure out why nvm wasn't loading, until I realized that `echo NVM_DIR="${XDG_CONFIG_HOME/:-$HOME/.}nvm"` outputs `NVM_DIR=nvm`. Changing the line to `export NVM_DIR="${XDG_CONFIG_HOME/:-$HOME/}.nvm"` fixed the problem. This outputs `NVM_DIR=.nvm` as expected. I tested this and the same behavior holds true in Bash as well. --- README.md | 2 +- install.sh | 6 +----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 9eb8c50..bcb42c3 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash **Note:** If the environment variable `$XDG_CONFIG_HOME` is present, it will place the `nvm` files there. ```sh -export NVM_DIR="${XDG_CONFIG_HOME/:-$HOME/.}nvm" +export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm ``` diff --git a/install.sh b/install.sh index 67349ad..be611b3 100755 --- a/install.sh +++ b/install.sh @@ -7,11 +7,7 @@ nvm_has() { } nvm_default_install_dir() { - if [ -n "${XDG_CONFIG_HOME-}" ]; then - printf %s "${XDG_CONFIG_HOME}/nvm" - else - printf %s "${HOME}/.nvm" - fi + [ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm" } nvm_install_dir() { From 970cadf258fd9f58962279cb96e074aee6b65667 Mon Sep 17 00:00:00 2001 From: metasean Date: Sun, 30 Dec 2018 18:24:29 -0700 Subject: [PATCH 1222/1426] [Docs] Add `--latest-npm` info to Migrating global packages section Adds the following information to the "Migrating global packages while installing" section: - notification that the npm package is explicitly not updated when using the --reinstall-packages-from flag - information about the --latest-npm flag - recovery instructions if a user has already updated node with an incompatible npm version --- README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/README.md b/README.md index bcb42c3..89927e2 100644 --- a/README.md +++ b/README.md @@ -291,6 +291,22 @@ nvm install 6 --reinstall-packages-from=5 nvm install v4.2 --reinstall-packages-from=iojs ``` +Note that reinstalling packages _explicitly does not update the npm version_ — this is to ensure that npm isn't accidentally upgraded to a broken version for the new node version. + +To update npm at the same time add the `--latest-npm` flag, like this: + +```sh +nvm install lts/* --reinstall-packages-from=default --latest-npm +``` + +or, you can at any time run the following command to get the latest supported npm version on the current node version: +```sh +nvm install-latest-npm +``` + +If you've already gotten an error to the effect of "npm does not support Node.js", you'll need to (1) revert to a previous node version (`nvm ls` & `nvm use `, (2) delete the newly created node version (`nvm uninstall `), then (3) rerun your `nvm install` with the `--latest-npm` flag. + + ### Default global packages from file while installing If you have a list of default packages you want installed every time you install a new version, we support that too -- just add the package names, one per line, to the file `$NVM_DIR/default-packages`. You can add anything npm would accept as a package argument on the command line. From dcbecbf2c7c2bcb79fa1417917ce672afa40b0d4 Mon Sep 17 00:00:00 2001 From: Roman Isko Date: Thu, 14 Jun 2018 10:45:01 +0300 Subject: [PATCH 1223/1426] [shellcheck] install shellcheck v0.6.0 in Dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index d4b0f1b..613a37f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,7 +20,7 @@ SHELL ["/bin/bash", "-o", "pipefail", "-c"] ENV DEBIAN_FRONTEND noninteractive # ShellCheck version -ENV SHELLCHECK_VERSION=0.5.0 +ENV SHELLCHECK_VERSION=0.6.0 # Pick a Ubuntu apt mirror site for better speed # ref: https://launchpad.net/ubuntu/+archivemirrors From 7b0a46eafbb171b17956b1772ec8410e042e6f2a Mon Sep 17 00:00:00 2001 From: Roman Isko Date: Mon, 18 Jun 2018 10:33:12 +0300 Subject: [PATCH 1224/1426] [docker] add libssl-dev to Docker image --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 613a37f..3b121e7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -42,6 +42,7 @@ RUN apt update && \ bsdutils \ file \ openssl \ + libssl-dev \ ca-certificates \ ssh \ wget \ From 82037b41b18e4e76971455f2ea6d68ef90a676a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dar=C3=ADo=20Here=C3=B1=C3=BA?= Date: Fri, 6 Oct 2017 01:54:07 -0300 Subject: [PATCH 1225/1426] [Docs] clean up a bit --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 89927e2..0a49bf4 100644 --- a/README.md +++ b/README.md @@ -333,7 +333,7 @@ If you want to install a new version of io.js and migrate npm packages from a pr nvm install iojs --reinstall-packages-from=iojs ``` -The same guidelines mentioned for migrating npm packages in Node.js are applicable to io.js. +The same guidelines mentioned for migrating npm packages in node are applicable to io.js. ### System version of node @@ -704,7 +704,7 @@ For more information and documentation about docker, please refer to its officia ## Problems - - If you try to install a node version and the installation fails, be sure to delete the node downloads from src (`~/.nvm/src/`) or you might get an error when trying to reinstall them again or you might get an error like the following: + - If you try to install a node version and the installation fails, be sure to run `nvm cache clear` to delete cached node downloads, or you might get an error like the following: curl: (33) HTTP server doesn't seem to support byte ranges. Cannot resume. From d48abff659bd81dd401c7760b74f3fa9b42841c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dar=C3=ADo=20Here=C3=B1=C3=BA?= Date: Fri, 3 May 2019 19:44:21 -0300 Subject: [PATCH 1226/1426] [Docs] clean up formatting in readme --- README.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 0a49bf4..aa9825e 100644 --- a/README.md +++ b/README.md @@ -84,7 +84,7 @@ simply close your current terminal, open a new terminal, and try verifying again **Note:** On OS X, if you get `nvm: command not found` after running the install script, one of the following might be the reason:- - - your system may not have a [`.bash_profile file`] where the command is set up. Simply create one with `touch ~/.bash_profile` and run the install script again + - your system may not have a `.bash_profile` file where the command is set up. Create one with `touch ~/.bash_profile` and run the install script again - you might need to restart your terminal instance. Try opening a new tab/window in your terminal and retry. If the above doesn't fix the problem, open your `.bash_profile` and add the following line of code: @@ -112,7 +112,7 @@ To verify that nvm has been installed, do: command -v nvm ``` -which should output 'nvm' if the installation was successful. Please note that `which nvm` will not work, since `nvm` is a sourced shell function, not an executable binary. +which should output `nvm` if the installation was successful. Please note that `which nvm` will not work, since `nvm` is a sourced shell function, not an executable binary. ### Important Notes @@ -142,15 +142,15 @@ If you're running a system without prepackaged binary available, which means you **Note:** On OS X, if you have/had a "system" node installed and want to install modules globally, keep in mind that: - - When using nvm you do not need `sudo` to globally install a module with `npm -g`, so instead of doing `sudo npm install -g grunt`, do instead `npm install -g grunt` - - If you have an `~/.npmrc` file, make sure it does not contain any `prefix` settings (which is not compatible with nvm) - - You can (but should not?) keep your previous "system" node install, but nvm will only be available to your user account (the one used to install nvm). This might cause version mismatches, as other users will be using `/usr/local/lib/node_modules/*` VS your user account using `~/.nvm/versions/node/vX.X.X/lib/node_modules/*` + - When using `nvm` you do not need `sudo` to globally install a module with `npm -g`, so instead of doing `sudo npm install -g grunt`, do instead `npm install -g grunt` + - If you have an `~/.npmrc` file, make sure it does not contain any `prefix` settings (which is not compatible with `nvm`) + - You can (but should not?) keep your previous "system" node install, but `nvm` will only be available to your user account (the one used to install nvm). This might cause version mismatches, as other users will be using `/usr/local/lib/node_modules/*` VS your user account using `~/.nvm/versions/node/vX.X.X/lib/node_modules/*` Homebrew installation is not supported. If you have issues with homebrew-installed `nvm`, please `brew uninstall` it, and install it using the instructions below, before filing an issue. **Note:** If you're using `zsh` you can easily install `nvm` as a zsh plugin. Install [`zsh-nvm`](https://github.com/lukechilds/zsh-nvm) and run `nvm upgrade` to upgrade. -**Note:** Git versions before v1.7 may face a problem of cloning nvm source from GitHub via https protocol, and there is also different behavior of git before v1.6, and git prior to [v1.17.10](https://github.com/git/git/commit/5a7d5b683f869d3e3884a89775241afa515da9e7) can not clone tags, so the minimum required git version is v1.7.10. If you are interested in the problem we mentioned here, please refer to GitHub's [HTTPS cloning errors](https://help.github.com/articles/https-cloning-errors/) article. +**Note:** Git versions before v1.7 may face a problem of cloning `nvm` source from GitHub via https protocol, and there is also different behavior of git before v1.6, and git prior to [v1.17.10](https://github.com/git/git/commit/5a7d5b683f869d3e3884a89775241afa515da9e7) can not clone tags, so the minimum required git version is v1.7.10. If you are interested in the problem we mentioned here, please refer to GitHub's [HTTPS cloning errors](https://help.github.com/articles/https-cloning-errors/) article. ### Git install @@ -159,7 +159,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.34.0` -1. activate nvm by sourcing it from your shell: `. nvm.sh` +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: (you may have to add to more than one of the above files) @@ -172,7 +172,7 @@ export NVM_DIR="$HOME/.nvm" ### Manual Install -For a fully manual install, execute the following lines to first clone the nvm repository into `$HOME/.nvm`, and then load nvm: +For a fully manual install, execute the following lines to first clone the `nvm` repository into `$HOME/.nvm`, and then load `nvm`: ```sh export NVM_DIR="$HOME/.nvm" && ( @@ -223,7 +223,7 @@ nvm install 6.14.4 # or 10.10.0, 8.9.1, etc The first version installed becomes the default. New shells will start with the default version of node (e.g., `nvm alias default`). -You can list available versions using ls-remote: +You can list available versions using `ls-remote`: ```sh nvm ls-remote @@ -656,13 +656,13 @@ As a potential alternative, @mhart (a Node contributor) has some [Docker images ### Manual Uninstall -To remove nvm manually, execute the following: +To remove `nvm` manually, execute the following: ```sh $ rm -rf "$NVM_DIR" ``` -Edit ~/.bashrc (or other shell resource config) and remove the lines below: +Edit `~/.bashrc` (or other shell resource config) and remove the lines below: ```sh export NVM_DIR="$HOME/.nvm" From 011810e721c4c26be997c7c0b62739c7b991526d Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 2 Oct 2019 00:05:28 -0400 Subject: [PATCH 1227/1426] v0.35.0 --- README.md | 16 ++++++++-------- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index aa9825e..9cab0ba 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Node Version Manager [![Build Status](https://travis-ci.org/nvm-sh/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.34.0-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://travis-ci.org/nvm-sh/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.35.0-yellow.svg)][4] [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/684/badge)](https://bestpractices.coreinfrastructure.org/projects/684) @@ -47,13 +47,13 @@ To **install** or **update** nvm, you can use the [install script][2] using cURL: ```sh -curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.0/install.sh | bash ``` or Wget: ```sh -wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash +wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.0/install.sh | bash ``` The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). @@ -99,7 +99,7 @@ If the above doesn't fix the problem, open your `.bash_profile` and add the foll ``` - name: nvm shell: > - curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash + curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.0/install.sh | bash args: creates: "{{ ansible_env.HOME }}/.nvm/nvm.sh" ``` @@ -158,7 +158,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.34.0` +1. `cd ~/.nvm` and check out the latest version with `git checkout v0.35.0` 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: @@ -645,7 +645,7 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh ```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.34.0/install.sh | bash +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.0/install.sh | bash ``` The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. @@ -731,8 +731,8 @@ sudo chmod ugo-x /usr/libexec/path_helper More on this issue in [dotphiles/dotzsh](https://github.com/dotphiles/dotzsh#mac-os-x). [1]: https://github.com/nvm-sh/nvm.git -[2]: https://github.com/nvm-sh/nvm/blob/v0.34.0/install.sh +[2]: https://github.com/nvm-sh/nvm/blob/v0.35.0/install.sh [3]: https://travis-ci.org/nvm-sh/nvm -[4]: https://github.com/nvm-sh/nvm/releases/tag/v0.34.0 +[4]: https://github.com/nvm-sh/nvm/releases/tag/v0.35.0 [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index be611b3..a6d96a6 100755 --- a/install.sh +++ b/install.sh @@ -19,7 +19,7 @@ nvm_install_dir() { } nvm_latest_version() { - echo "v0.34.0" + echo "v0.35.0" } nvm_profile_is_bash_or_zsh() { diff --git a/nvm.sh b/nvm.sh index 744bb78..84a9dfd 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3464,7 +3464,7 @@ nvm() { NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; "--version") - nvm_echo '0.34.0' + nvm_echo '0.35.0' ;; "unload") nvm deactivate >/dev/null 2>&1 diff --git a/package.json b/package.json index fbb2cdc..9ab248f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.34.0", + "version": "0.35.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 94a72ae217694bfbb290b17f47ae0e063bff7aaa Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 8 Oct 2019 14:40:17 -0700 Subject: [PATCH 1228/1426] [Fix] `nvm use`: improve help output with bare `nvm use` and no `.nvmrc` Closes #1914. --- nvm.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nvm.sh b/nvm.sh index 84a9dfd..221efc6 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2909,6 +2909,10 @@ nvm() { VERSION="$(nvm_version "${PROVIDED_VERSION}")" fi unset NVM_RC_VERSION + if [ -z "${VERSION}" ]; then + nvm_err 'Please see `nvm --help` or https://github.com/nvm-sh/nvm#nvmrc for more information.' + return 127 + fi else VERSION="$(nvm_match_version "${PROVIDED_VERSION}")" fi From 0a4e6f2b70e7df10047fbb8a498896ff7e0cdbe1 Mon Sep 17 00:00:00 2001 From: Guido Bouman Date: Tue, 8 Oct 2019 15:27:53 +0200 Subject: [PATCH 1229/1426] [meta] Update ISSUE_TEMPLATE.md Remove the need to indent terminal output by using headings instead of a list. Simplify formulation of steps --- .github/ISSUE_TEMPLATE.md | 52 ++++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 43ee5fb..d8309e2 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,42 +1,44 @@ -- Operating system and version: +#### Operating system and version: -- `nvm debug` output: -
- +#### `nvm debug` output: +
+ - ```sh +```sh - ``` -
+``` +
-- `nvm ls` output: -
- +#### `nvm ls` output: +
+ - ```sh +```sh - ``` -
+``` +
-- How did you install `nvm`? (e.g. install script in readme, Homebrew): +#### How did you install `nvm`? + -- What steps did you perform? +#### What steps did you perform? -- What happened? +#### What happened? -- What did you expect to happen? +#### What did you expect to happen? -- Is there anything in any of your profile files (`.bashrc`, `.bash_profile`, `.zshrc`, etc) that modifies the `PATH`? +#### Is there anything in any of your profile files that modifies the `PATH`? + - -- If you are having installation issues, or getting "N/A", what does `curl -I --compressed -v https://nodejs.org/dist/` print out? -
- + +#### If you are having installation issues, or getting "N/A", what does `curl -I --compressed -v https://nodejs.org/dist/` print out? +
+ - ```sh +```sh - ``` -
+``` +
From 1eca354233108960989d768e579b6a68ddc6d052 Mon Sep 17 00:00:00 2001 From: Marit Iren Date: Sun, 20 Oct 2019 17:08:29 +0200 Subject: [PATCH 1230/1426] [Docs] Add description if instructions don't work; make install instructions more readable --- README.md | 33 ++++++++++++--------------------- 1 file changed, 12 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 9cab0ba..c20be18 100644 --- a/README.md +++ b/README.md @@ -44,27 +44,24 @@ ### Install & Update script -To **install** or **update** nvm, you can use the [install script][2] using cURL: - +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.35.0/install.sh | bash ``` - -or Wget: - ```sh wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.0/install.sh | bash ``` -The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). - -**Note:** If the environment variable `$XDG_CONFIG_HOME` is present, it will place the `nvm` files there. +Running either of the above commands downloads a script and runs it. The script clones the nvm repository to `~/.nvm`, and adds the source lines from the snippet below to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). + ```sh export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm ``` +**Note:** If the environment variable `$XDG_CONFIG_HOME` is present, it will place the `nvm` files there. + **Note:** You can add `--no-use` to the end of the above script (...`nvm.sh --no-use`) to postpone using `nvm` until you manually [`use`](#usage) it. You can customize the install source, directory, profile, and version using the `NVM_SOURCE`, `NVM_DIR`, `PROFILE`, and `NODE_VERSION` variables. @@ -72,24 +69,18 @@ Eg: `curl ... | NVM_DIR="path/to/nvm"`. Ensure that the `NVM_DIR` does not conta *NB. The installer can use `git`, `curl`, or `wget` to download `nvm`, whatever is available.* -**Note:** On Linux, after running the install script, if you get `nvm: command not found` or see no feedback from your terminal after you type: - -```sh -command -v nvm -``` - -simply close your current terminal, open a new terminal, and try verifying again. +**Note:** On Linux, after running the install script, if you get `nvm: command not found` or see no feedback from your terminal after you type `command -v nvm`, simply close your current terminal, open a new terminal, and try verifying again. **Note:** Since OS X 10.9, `/usr/bin/git` has been preset by Xcode command line tools, which means we can't properly detect if Git is installed or not. You need to manually install the Xcode command line tools before running the install script, otherwise, it'll fail. (see [#1782](https://github.com/nvm-sh/nvm/issues/1782)) -**Note:** On OS X, if you get `nvm: command not found` after running the install script, one of the following might be the reason:- +**Note:** On OS X, if you get `nvm: command not found` after running the install script, one of the following might be the reason: - - your system may not have a `.bash_profile` file where the command is set up. Create one with `touch ~/.bash_profile` and run the install script again - - you might need to restart your terminal instance. Try opening a new tab/window in your terminal and retry. + - Your system may not have a `.bash_profile` file where the command is set up. Create one with `touch ~/.bash_profile` and run the install script again + - You might need to restart your terminal instance. Try opening a new tab/window in your terminal and retry. -If the above doesn't fix the problem, open your `.bash_profile` and add the following line of code: - -`source ~/.bashrc` +If the above doesn't fix the problem, you may try the following: + - Open your `.bash_profile` (or `~/.zshrc`, `~/.profile`, or `~/.bashrc`) and add the following line of code: `source ~/`. E.g. `source ~/.bashrc` or `source ~/.zshrc`. + - If the above don't work, try adding the [snippet from the install section](#profile_snippet) that finds the correct nvm directory and loads nvm, to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). - For more information about this issue and possible workarounds, please [refer here](https://github.com/nvm-sh/nvm/issues/576) From 100861d529d26a4022ee4ac6dc5d8df86a3a6f65 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 2 Nov 2019 20:53:18 -0700 Subject: [PATCH 1231/1426] [Fix] `install-latest-npm`: `npm` `v6.10` breaks on `node` `v6.0`, `v6.1`, and `v9.0`-`v9.2` --- nvm.sh | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index 221efc6..b7d05ea 100644 --- a/nvm.sh +++ b/nvm.sh @@ -223,13 +223,29 @@ nvm_install_latest_npm() { local NVM_IS_6_OR_ABOVE NVM_IS_6_OR_ABOVE=0 + local NVM_IS_6_2_OR_ABOVE + NVM_IS_6_2_OR_ABOVE=0 if [ $NVM_IS_5_OR_ABOVE -eq 1 ] && nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 6.0.0; then NVM_IS_6_OR_ABOVE=1 + if nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 6.2.0; then + NVM_IS_6_2_OR_ABOVE=1 + fi 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}" \ - ); then + local NVM_IS_9_OR_ABOVE + NVM_IS_9_OR_ABOVE=0 + local NVM_IS_9_3_OR_ABOVE + NVM_IS_9_3_OR_ABOVE=0 + if [ $NVM_IS_6_2_OR_ABOVE -eq 1 ] && nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 9.0.0; then + NVM_IS_9_OR_ABOVE=1 + if nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 9.3.0; then + NVM_IS_9_3_OR_ABOVE=1 + fi + 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}"; \ + }; then nvm_echo '* `npm` `v5.3.x` is the last version that works on `node` 4.x versions below v4.4, or 5.x versions below v5.10, due to `Buffer.alloc`' $NVM_NPM_CMD install -g npm@5.3 elif [ $NVM_IS_4_4_OR_BELOW -eq 0 ] && nvm_version_greater 4.7.0 "${NODE_VERSION}"; then @@ -238,6 +254,12 @@ nvm_install_latest_npm() { elif [ $NVM_IS_6_OR_ABOVE -eq 0 ]; then nvm_echo '* `npm` `v5.x` is the last version that works on `node` below `v6.0.0`' $NVM_NPM_CMD install -g npm@5 + elif \ + { [ $NVM_IS_6_OR_ABOVE -eq 1 ] && [ $NVM_IS_6_2_OR_ABOVE -eq 0 ]; } \ + || { [ $NVM_IS_9_OR_ABOVE -eq 1 ] && [ $NVM_IS_9_3_OR_ABOVE -eq 0 ]; } \ + ; then + nvm_echo '* `npm` `v6.9` is the last version that works on `node` `v6.0.x`, `v6.1.x`, `v9.0.x`, `v9.1.x`, or `v9.2.x`' + $NVM_NPM_CMD install -g npm@6.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 From 28bc2fd99149bbc8462df8b9962786b7ee91966c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 3 Nov 2019 10:03:31 -0800 Subject: [PATCH 1232/1426] v0.35.1 --- README.md | 16 ++++++++-------- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index c20be18..449e1fb 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Node Version Manager [![Build Status](https://travis-ci.org/nvm-sh/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.35.0-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://travis-ci.org/nvm-sh/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.35.1-yellow.svg)][4] [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/684/badge)](https://bestpractices.coreinfrastructure.org/projects/684) @@ -46,10 +46,10 @@ 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.35.0/install.sh | bash +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.1/install.sh | bash ``` ```sh -wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.0/install.sh | bash +wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.1/install.sh | bash ``` Running either of the above commands downloads a script and runs it. The script clones the nvm repository to `~/.nvm`, and adds the source lines from the snippet below to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). @@ -90,7 +90,7 @@ If the above doesn't fix the problem, you may try the following: ``` - name: nvm shell: > - curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.0/install.sh | bash + curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.1/install.sh | bash args: creates: "{{ ansible_env.HOME }}/.nvm/nvm.sh" ``` @@ -149,7 +149,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.35.0` +1. `cd ~/.nvm` and check out the latest version with `git checkout v0.35.1` 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: @@ -636,7 +636,7 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh ```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.35.0/install.sh | bash +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.1/install.sh | bash ``` The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. @@ -722,8 +722,8 @@ sudo chmod ugo-x /usr/libexec/path_helper More on this issue in [dotphiles/dotzsh](https://github.com/dotphiles/dotzsh#mac-os-x). [1]: https://github.com/nvm-sh/nvm.git -[2]: https://github.com/nvm-sh/nvm/blob/v0.35.0/install.sh +[2]: https://github.com/nvm-sh/nvm/blob/v0.35.1/install.sh [3]: https://travis-ci.org/nvm-sh/nvm -[4]: https://github.com/nvm-sh/nvm/releases/tag/v0.35.0 +[4]: https://github.com/nvm-sh/nvm/releases/tag/v0.35.1 [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index a6d96a6..e95a2fc 100755 --- a/install.sh +++ b/install.sh @@ -19,7 +19,7 @@ nvm_install_dir() { } nvm_latest_version() { - echo "v0.35.0" + echo "v0.35.1" } nvm_profile_is_bash_or_zsh() { diff --git a/nvm.sh b/nvm.sh index b7d05ea..aad2d42 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3490,7 +3490,7 @@ nvm() { NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; "--version") - nvm_echo '0.35.0' + nvm_echo '0.35.1' ;; "unload") nvm deactivate >/dev/null 2>&1 diff --git a/package.json b/package.json index 9ab248f..046153f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.35.0", + "version": "0.35.1", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 1c8e59130f4c958e1eed530431049b1bde362951 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 5 Nov 2019 12:05:09 -0800 Subject: [PATCH 1233/1426] [meta] create FUNDING.yml --- .github/FUNDING.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..cb0ece6 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/nvm +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] From 04ad1b528cfa746866dca415cc9a0463463e79db Mon Sep 17 00:00:00 2001 From: awthwathje Date: Fri, 8 Nov 2019 10:24:16 +0100 Subject: [PATCH 1234/1426] [readme] Fix a typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 449e1fb..1034c8d 100644 --- a/README.md +++ b/README.md @@ -626,7 +626,7 @@ set -e ## Installing nvm on Alpine Linux -In order to provide the best performance (and other optimisations), nvm will download and install pre-compiled binaries for Node (and npm) when you run `nvm install X`. The Node project compiles, tests and hosts/provides pre-these compiled binaries which are built for mainstream/traditional Linux distributions (such as Debian, Ubuntu, CentOS, RedHat et al). +In order to provide the best performance (and other optimisations), nvm will download and install pre-compiled binaries for Node (and npm) when you run `nvm install X`. The Node project compiles, tests and hosts/provides these pre-compiled binaries which are built for mainstream/traditional Linux distributions (such as Debian, Ubuntu, CentOS, RedHat et al). Alpine Linux, unlike mainstream/traditional Linux distributions, is based on [BusyBox](https://www.busybox.net/), a very compact (~5MB) Linux distribution. BusyBox (and thus Alpine Linux) uses a different C/C++ stack to most mainstream/traditional Linux distributions - [musl](https://www.musl-libc.org/). This makes binary programs built for such mainstream/traditional incompatible with Alpine Linux, thus we cannot simply `nvm install X` on Alpine Linux and expect the downloaded binary to run correctly - you'll likely see "...does not exist" errors if you try that. From 73a513c389c73e19707e019f47bb6be8692e35d8 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 12 Nov 2019 11:16:08 -0800 Subject: [PATCH 1235/1426] [Fix] allow `nvm unalias x` when `x` is a default alias, but shadowed Fixes #2122. --- nvm.sh | 24 +++++++++++++------ ...aliases when they shadow a built-in alias" | 17 +++++++++++++ 2 files changed, 34 insertions(+), 7 deletions(-) create mode 100755 "test/fast/Aliases/\"nvm unalias\" should accept aliases when they shadow a built-in alias" diff --git a/nvm.sh b/nvm.sh index aad2d42..639165c 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3372,14 +3372,24 @@ nvm() { local NVM_NODE_PREFIX NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" NVM_NODE_PREFIX="$(nvm_node_prefix)" - case "$1" in - "stable" | "unstable" | "${NVM_IOJS_PREFIX}" | "${NVM_NODE_PREFIX}" | "system") - nvm_err "${1-} is a default (built-in) alias and cannot be deleted." - return 1 - ;; - esac + local NVM_ALIAS_EXISTS + NVM_ALIAS_EXISTS=0 + if [ -f "${NVM_ALIAS_DIR}/${1-}" ]; then + NVM_ALIAS_EXISTS=1 + fi + + if [ $NVM_ALIAS_EXISTS -eq 0 ]; then + case "$1" in + "stable" | "unstable" | "${NVM_IOJS_PREFIX}" | "${NVM_NODE_PREFIX}" | "system") + nvm_err "${1-} is a default (built-in) alias and cannot be deleted." + return 1 + ;; + esac + + nvm_err "Alias ${1-} doesn't exist!" + return + fi - [ ! -f "${NVM_ALIAS_DIR}/${1-}" ] && nvm_err "Alias ${1-} doesn't exist!" && return local NVM_ALIAS_ORIGINAL NVM_ALIAS_ORIGINAL="$(nvm_alias "${1}")" command rm -f "${NVM_ALIAS_DIR}/${1}" diff --git "a/test/fast/Aliases/\"nvm unalias\" should accept aliases when they shadow a built-in alias" "b/test/fast/Aliases/\"nvm unalias\" should accept aliases when they shadow a built-in alias" new file mode 100755 index 0000000..d88a4fa --- /dev/null +++ "b/test/fast/Aliases/\"nvm unalias\" should accept aliases when they shadow a built-in alias" @@ -0,0 +1,17 @@ +#!/bin/sh + +\. ../../../nvm.sh + +die () { echo "$@" ; exit 1; } + +OUTPUT="$(nvm unalias node 2>&1)" +EXPECTED_OUTPUT="node is a default (built-in) alias and cannot be deleted." +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "trying to remove a built-in alias should fail with '$EXPECTED_OUTPUT', got '$OUTPUT'" + +nvm alias node stable || die '`nvm alias node stable` failed' + +nvm unalias node || die '`nvm unalias node` failed' + +OUTPUT="$(nvm unalias node 2>&1)" +EXPECTED_OUTPUT="node is a default (built-in) alias and cannot be deleted." +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "trying to remove a built-in alias should fail with '$EXPECTED_OUTPUT', got '$OUTPUT'" From 0899839b9522da8c6147592752613621e42470e5 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 9 Dec 2019 08:51:46 -0800 Subject: [PATCH 1236/1426] [Tests] pin `david` to v11 v11.1.0 and v12 no longer work on node 0.10; v11.1.1 should. See https://github.com/alanshaw/david/issues/159 --- test/slow/nvm reinstall-packages/should work as expected | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/test/slow/nvm reinstall-packages/should work as expected b/test/slow/nvm reinstall-packages/should work as expected index 68c0fb1..fdc3800 100755 --- a/test/slow/nvm reinstall-packages/should work as expected +++ b/test/slow/nvm reinstall-packages/should work as expected @@ -10,9 +10,10 @@ nvm exec 0.10.29 npm install -g npm@~1.4.11 && nvm install-latest-npm # this is nvm use 0.10.28 (cd test-npmlink && npm link) -EXPECTED_PACKAGES="autoprefixer bower david grunt-cli grunth-cli http-server jshint marked node-gyp npmlist recursive-blame spawn-sync test-npmlink uglify-js" +EXPECTED_PACKAGES="autoprefixer bower david grunt-cli grunth-cli http-server jshint marked node-gyp npmlist recursive-blame spawn-sync test-npmlink uglify-js yo" +EXPECTED_PACKAGES_INSTALL="autoprefixer bower david@11 grunt-cli grunth-cli http-server jshint marked node-gyp npmlist recursive-blame spawn-sync test-npmlink uglify-js yo@1" -echo "$EXPECTED_PACKAGES yo@1" | sed -e 's/test-npmlink //' | xargs npm install -g --quiet +echo "$EXPECTED_PACKAGES_INSTALL" | sed -e 's/test-npmlink //' | xargs npm install -g --quiet get_packages() { npm list -g --depth=0 | \sed -e '1 d' -e 's/^.* \(.*\)@.*/\1/' -e '/^npm$/ d' | xargs @@ -24,7 +25,7 @@ ORIGINAL_PACKAGES=$(get_packages) nvm reinstall-packages 0.10.28 FINAL_PACKAGES=$(get_packages) -[ "$FINAL_PACKAGES" = "$EXPECTED_PACKAGES yo" ] || die "final packages ($FINAL_PACKAGES) did not match expected packages ($EXPECTED_PACKAGES)" +[ "$FINAL_PACKAGES" = "$EXPECTED_PACKAGES" ] || die "final packages ($FINAL_PACKAGES) did not match expected packages ($EXPECTED_PACKAGES)" [ "$ORIGINAL_PACKAGES" != "$FINAL_PACKAGES" ] || die "original packages matched final packages ($ORIGINAL_PACKAGES)" [ $(test-npmlink) = 'ok' ] || die "failed to run test-npmlink" From 6fa92c82caef03081de0adca99f6256e5fd209ca Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 15 Dec 2019 23:39:32 -0800 Subject: [PATCH 1237/1426] [Fix] if a prefix env var is set (as in npm run), but is correct, do not fail Fixes #2106. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 639165c..77fefa4 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2187,7 +2187,7 @@ nvm_die_on_prefix() { if [ -n "${NVM_NPM_CONFIG_PREFIX_ENV-}" ]; then local NVM_CONFIG_VALUE eval "NVM_CONFIG_VALUE=\"\$${NVM_NPM_CONFIG_PREFIX_ENV}\"" - if [ -n "${NVM_CONFIG_VALUE-}" ]; then + if [ -n "${NVM_CONFIG_VALUE-}" ] && ! nvm_tree_contains_path "${NVM_DIR}" "${NVM_CONFIG_VALUE}"; then nvm deactivate >/dev/null 2>&1 nvm_err "nvm is not compatible with the \"${NVM_NPM_CONFIG_PREFIX_ENV}\" environment variable: currently set to \"${NVM_CONFIG_VALUE}\"" nvm_err "Run \`unset ${NVM_NPM_CONFIG_PREFIX_ENV}\` to unset it." From f355b327d6a2a4e8020e943974086d53f00f9a02 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 17 Dec 2019 22:40:20 -0800 Subject: [PATCH 1238/1426] v0.35.2 --- README.md | 16 ++++++++-------- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 1034c8d..9ccccf7 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Node Version Manager [![Build Status](https://travis-ci.org/nvm-sh/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.35.1-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://travis-ci.org/nvm-sh/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.35.2-yellow.svg)][4] [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/684/badge)](https://bestpractices.coreinfrastructure.org/projects/684) @@ -46,10 +46,10 @@ 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.35.1/install.sh | bash +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash ``` ```sh -wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.1/install.sh | bash +wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash ``` Running either of the above commands downloads a script and runs it. The script clones the nvm repository to `~/.nvm`, and adds the source lines from the snippet below to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). @@ -90,7 +90,7 @@ If the above doesn't fix the problem, you may try the following: ``` - name: nvm shell: > - curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.1/install.sh | bash + curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash args: creates: "{{ ansible_env.HOME }}/.nvm/nvm.sh" ``` @@ -149,7 +149,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.35.1` +1. `cd ~/.nvm` and check out the latest version with `git checkout v0.35.2` 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: @@ -636,7 +636,7 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh ```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.35.1/install.sh | bash +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash ``` The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. @@ -722,8 +722,8 @@ sudo chmod ugo-x /usr/libexec/path_helper More on this issue in [dotphiles/dotzsh](https://github.com/dotphiles/dotzsh#mac-os-x). [1]: https://github.com/nvm-sh/nvm.git -[2]: https://github.com/nvm-sh/nvm/blob/v0.35.1/install.sh +[2]: https://github.com/nvm-sh/nvm/blob/v0.35.2/install.sh [3]: https://travis-ci.org/nvm-sh/nvm -[4]: https://github.com/nvm-sh/nvm/releases/tag/v0.35.1 +[4]: https://github.com/nvm-sh/nvm/releases/tag/v0.35.2 [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index e95a2fc..93f0a0b 100755 --- a/install.sh +++ b/install.sh @@ -19,7 +19,7 @@ nvm_install_dir() { } nvm_latest_version() { - echo "v0.35.1" + echo "v0.35.2" } nvm_profile_is_bash_or_zsh() { diff --git a/nvm.sh b/nvm.sh index 77fefa4..83aac75 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3500,7 +3500,7 @@ nvm() { NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; "--version") - nvm_echo '0.35.1' + nvm_echo '0.35.2' ;; "unload") nvm deactivate >/dev/null 2>&1 diff --git a/package.json b/package.json index 046153f..b2c7987 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.35.1", + "version": "0.35.2", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 4ff9084e99b445fc90ba65850e84ecf7467fbd55 Mon Sep 17 00:00:00 2001 From: Lucian Buzzo Date: Thu, 5 Dec 2019 10:07:38 +0000 Subject: [PATCH 1239/1426] [Docs] Fix small typo in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9ccccf7..e41b47f 100644 --- a/README.md +++ b/README.md @@ -80,7 +80,7 @@ Eg: `curl ... | NVM_DIR="path/to/nvm"`. Ensure that the `NVM_DIR` does not conta If the above doesn't fix the problem, you may try the following: - Open your `.bash_profile` (or `~/.zshrc`, `~/.profile`, or `~/.bashrc`) and add the following line of code: `source ~/`. E.g. `source ~/.bashrc` or `source ~/.zshrc`. - - If the above don't work, try adding the [snippet from the install section](#profile_snippet) that finds the correct nvm directory and loads nvm, to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). + - If the above doesn't work, try adding the [snippet from the install section](#profile_snippet) that finds the correct nvm directory and loads nvm, to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). - For more information about this issue and possible workarounds, please [refer here](https://github.com/nvm-sh/nvm/issues/576) From d8785da988f61296e9804b88875a15eecadf78f6 Mon Sep 17 00:00:00 2001 From: nebbles Date: Sun, 17 Nov 2019 14:52:52 +0000 Subject: [PATCH 1240/1426] [Docs] Improve readme clarity and troubleshooting Clean up readme structure a bit to help with readability. fix instructions which could lead to a sourcing loop if misinterpreted. guidance should direct macos users to simply copy the source snippet manually into their desired profile file. Resolve #2123 --- README.md | 100 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 58 insertions(+), 42 deletions(-) diff --git a/README.md b/README.md index e41b47f..8e36fb5 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,28 @@ # Node Version Manager [![Build Status](https://travis-ci.org/nvm-sh/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.35.2-yellow.svg)][4] [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/684/badge)](https://bestpractices.coreinfrastructure.org/projects/684) + ## Table of Contents -- [Installation and Update](#installation-and-update) - - [Install & Update script](#install--update-script) +- [Installing and Updating](#installing-and-updating) + - [Install & Update Script](#install--update-script) + - [Additional Notes](#additional-notes) + - [Troubleshooting on Linux](#troubleshooting-on-linux) + - [Troubleshooting on macOS](#troubleshooting-on-macos) - [Ansible](#ansible) - - [Verify installation](#verify-installation) + - [Verify Installation](#verify-installation) - [Important Notes](#important-notes) - - [Git install](#git-install) + - [Git Install](#git-install) - [Manual Install](#manual-install) - - [Manual upgrade](#manual-upgrade) + - [Manual Upgrade](#manual-upgrade) - [Usage](#usage) - - [Long-term support](#long-term-support) - - [Migrating global packages while installing](#migrating-global-packages-while-installing) - - [Default global packages from file while installing](#default-global-packages-from-file-while-installing) + - [Long-term Support](#long-term-support) + - [Migrating Global Packages While Installing](#migrating-global-packages-while-installing) + - [Default Global Packages From File While Installing](#default-global-packages-from-file-while-installing) - [io.js](#iojs) - - [System version of node](#system-version-of-node) - - [Listing versions](#listing-versions) + - [System Version of Node](#system-version-of-node) + - [Listing Versions](#listing-versions) - [Suppressing colorized output](#suppressing-colorized-output) - [.nvmrc](#nvmrc) - [Deeper Shell Integration](#deeper-shell-integration) @@ -27,22 +31,23 @@ - [zsh](#zsh) - [Calling `nvm use` automatically in a directory with a `.nvmrc` file](#calling-nvm-use-automatically-in-a-directory-with-a-nvmrc-file) - [License](#license) -- [Running tests](#running-tests) -- [Bash completion](#bash-completion) +- [Running Tests](#running-tests) +- [Bash Completion](#bash-completion) - [Usage](#usage-1) - [Compatibility Issues](#compatibility-issues) - [Installing nvm on Alpine Linux](#installing-nvm-on-alpine-linux) -- [Removal](#removal) +- [Uninstalling / Removal](#uninstalling--removal) - [Manual Uninstall](#manual-uninstall) -- [Docker for development environment](#docker-for-development-environment) +- [Docker For Development Environment](#docker-for-development-environment) - [Problems](#problems) -- [Mac OS "troubleshooting"](#mac-os-troubleshooting) +- [macOS Troubleshooting](#macos-troubleshooting) -## Installation and Update + +## Installing and Updating -### Install & Update script +### Install & Update Script 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 @@ -52,7 +57,7 @@ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash ``` -Running either of the above commands downloads a script and runs it. The script clones the nvm repository to `~/.nvm`, and adds the source lines from the snippet below to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). +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`). ```sh @@ -60,32 +65,42 @@ export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || pr [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm ``` -**Note:** If the environment variable `$XDG_CONFIG_HOME` is present, it will place the `nvm` files there. +#### Additional Notes -**Note:** You can add `--no-use` to the end of the above script (...`nvm.sh --no-use`) to postpone using `nvm` until you manually [`use`](#usage) it. +- If the environment variable `$XDG_CONFIG_HOME` is present, it will place the `nvm` files there. -You can customize the install source, directory, profile, and version using the `NVM_SOURCE`, `NVM_DIR`, `PROFILE`, and `NODE_VERSION` variables. +- You can add `--no-use` to the end of the above script (...`nvm.sh --no-use`) to postpone using `nvm` until you manually [`use`](#usage) it. + +- You can customize the install source, directory, profile, and version using the `NVM_SOURCE`, `NVM_DIR`, `PROFILE`, and `NODE_VERSION` variables. Eg: `curl ... | NVM_DIR="path/to/nvm"`. Ensure that the `NVM_DIR` does not contain a trailing slash. -*NB. The installer can use `git`, `curl`, or `wget` to download `nvm`, whatever is available.* +- The installer can use `git`, `curl`, or `wget` to download `nvm`, whichever is available. -**Note:** On Linux, after running the install script, if you get `nvm: command not found` or see no feedback from your terminal after you type `command -v nvm`, simply close your current terminal, open a new terminal, and try verifying again. +#### Troubleshooting on Linux -**Note:** Since OS X 10.9, `/usr/bin/git` has been preset by Xcode command line tools, which means we can't properly detect if Git is installed or not. You need to manually install the Xcode command line tools before running the install script, otherwise, it'll fail. (see [#1782](https://github.com/nvm-sh/nvm/issues/1782)) +On Linux, after running the install script, if you get `nvm: command not found` or see no feedback from your terminal after you type `command -v nvm`, simply close your current terminal, open a new terminal, and try verifying again. -**Note:** On OS X, if you get `nvm: command not found` after running the install script, one of the following might be the reason: +#### Troubleshooting on macOS + +Since OS X 10.9, `/usr/bin/git` has been preset by Xcode command line tools, which means we can't properly detect if Git is installed or not. You need to manually install the Xcode command line tools before running the install script, otherwise, it'll fail. (see [#1782](https://github.com/nvm-sh/nvm/issues/1782)) + +If you get `nvm: command not found` after running the install script, one of the following might be the reason: - Your system may not have a `.bash_profile` file where the command is set up. Create one with `touch ~/.bash_profile` and run the install script again + - You might need to restart your terminal instance. Try opening a new tab/window in your terminal and retry. If the above doesn't fix the problem, you may try the following: - - Open your `.bash_profile` (or `~/.zshrc`, `~/.profile`, or `~/.bashrc`) and add the following line of code: `source ~/`. E.g. `source ~/.bashrc` or `source ~/.zshrc`. - - If the above doesn't work, try adding the [snippet from the install section](#profile_snippet) that finds the correct nvm directory and loads nvm, to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). -- For more information about this issue and possible workarounds, please [refer here](https://github.com/nvm-sh/nvm/issues/576) + - If you use bash, it may be that your `.bash_profile` (or `~/.profile`) does not source your `~/.bashrc` properly. You could fix this by adding `source ~/` to it or follow the next step below. + + - Try adding [the snippet from the install section](#profile_snippet), that finds the correct nvm directory and loads nvm, to your usual profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). + + - For more information about this issue and possible workarounds, please [refer here](https://github.com/nvm-sh/nvm/issues/576) #### Ansible - You can use a task: + +You can use a task: ``` - name: nvm @@ -95,7 +110,7 @@ If the above doesn't fix the problem, you may try the following: creates: "{{ ansible_env.HOME }}/.nvm/nvm.sh" ``` -### Verify installation +### Verify Installation To verify that nvm has been installed, do: @@ -143,7 +158,7 @@ Homebrew installation is not supported. If you have issues with homebrew-install **Note:** Git versions before v1.7 may face a problem of cloning `nvm` source from GitHub via https protocol, and there is also different behavior of git before v1.6, and git prior to [v1.17.10](https://github.com/git/git/commit/5a7d5b683f869d3e3884a89775241afa515da9e7) can not clone tags, so the minimum required git version is v1.7.10. If you are interested in the problem we mentioned here, please refer to GitHub's [HTTPS cloning errors](https://help.github.com/articles/https-cloning-errors/) article. -### Git install +### Git Install If you have `git` installed (requires git v1.7.10+): @@ -181,7 +196,7 @@ export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm ``` -### Manual upgrade +### Manual Upgrade For manual upgrade with `git` (requires git v1.7.10+): @@ -251,7 +266,7 @@ In place of a version pointer like "0.10" or "5.0" or "4.2.1", you can use the f - `stable`: this alias is deprecated, and only truly applies to `node` `v0.12` and earlier. Currently, this is an alias for `node`. - `unstable`: this alias points to `node` `v0.11` - the last "unstable" node release, since post-1.0, all node versions are stable. (in SemVer, versions communicate breakage, not stability). -### Long-term support +### Long-term Support Node has a [schedule](https://github.com/nodejs/Release#release-schedule) for long-term support (LTS) You can reference LTS versions in aliases and `.nvmrc` files with the notation `lts/*` for the latest LTS, and `lts/argon` for LTS releases from the "argon" line, for example. In addition, the following commands support LTS arguments: @@ -265,7 +280,7 @@ Node has a [schedule](https://github.com/nodejs/Release#release-schedule) for lo Any time your local copy of `nvm` connects to https://nodejs.org, it will re-create the appropriate local aliases for all available LTS lines. These aliases (stored under `$NVM_DIR/alias/lts`), are managed by `nvm`, and you should not modify, remove, or create these files - expect your changes to be undone, and expect meddling with these files to cause bugs that will likely not be supported. -### Migrating global packages while installing +### Migrating Global Packages While Installing If you want to install a new version of Node.js and migrate npm packages from a previous version: @@ -298,7 +313,7 @@ nvm install-latest-npm If you've already gotten an error to the effect of "npm does not support Node.js", you'll need to (1) revert to a previous node version (`nvm ls` & `nvm use `, (2) delete the newly created node version (`nvm uninstall `), then (3) rerun your `nvm install` with the `--latest-npm` flag. -### Default global packages from file while installing +### Default Global Packages From File While Installing If you have a list of default packages you want installed every time you install a new version, we support that too -- just add the package names, one per line, to the file `$NVM_DIR/default-packages`. You can add anything npm would accept as a package argument on the command line. @@ -326,7 +341,7 @@ nvm install iojs --reinstall-packages-from=iojs The same guidelines mentioned for migrating npm packages in node are applicable to io.js. -### System version of node +### System Version of Node If you want to use the system-installed version of node, you can use the special default alias "system": @@ -335,7 +350,7 @@ nvm use system nvm run system --version ``` -### Listing versions +### Listing Versions If you want to see what versions are installed: @@ -529,7 +544,7 @@ The above copyright notice and this permission notice shall be included in all c THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -## Running tests +## Running Tests Tests are written in [Urchin]. Install Urchin (and other dependencies) like so: @@ -552,7 +567,7 @@ Run all of the tests like this: Nota bene: Avoid running nvm while the tests are running. -## Bash completion +## Bash Completion To activate, you need to source `bash_completion`: @@ -643,7 +658,8 @@ The Node project has some desire but no concrete plans (due to the overheads of As a potential alternative, @mhart (a Node contributor) has some [Docker images for Alpine Linux with Node and optionally, npm, pre-installed](https://github.com/mhart/alpine-node). -## Removal + +## Uninstalling / Removal ### Manual Uninstall @@ -661,7 +677,7 @@ export NVM_DIR="$HOME/.nvm" [[ -r $NVM_DIR/bash_completion ]] && \. $NVM_DIR/bash_completion ``` -## Docker for development environment +## Docker For Development Environment To make the development and testing work easier, we have a Dockerfile for development usage, which is based on Ubuntu 14.04 base image, prepared with essential and useful tools for `nvm` development, to build the docker image of the environment, run the docker command at the root of `nvm` repository: @@ -709,7 +725,7 @@ nvm install -s 0.8.6 - If setting the `default` alias does not establish the node version in new shells (i.e. `nvm current` yields `system`), ensure that the system's node `PATH` is set before the `nvm.sh` source line in your shell profile (see [#658](https://github.com/nvm-sh/nvm/issues/658)) -## Mac OS "troubleshooting" +## macOS Troubleshooting **nvm node version not found in vim shell** From a1ad32e9cbc9ab2b1f955e0c7ab6e206cdfdd75c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 11 Jan 2020 18:15:20 -0800 Subject: [PATCH 1241/1426] [readme] restore broken anchor --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8e36fb5..a4b59bf 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,7 @@ + ## Installing and Updating ### Install & Update Script From f4eddb2c9ce2f1db74fb1e101c391a46676784d7 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 7 Feb 2020 09:16:55 -1000 Subject: [PATCH 1242/1426] [Tests] ensure `nvm unload` unsets env vars too --- ...ing \"nvm unload\" should unset all function and variables." | 2 ++ 1 file changed, 2 insertions(+) diff --git "a/test/fast/Running \"nvm unload\" should unset all function and variables." "b/test/fast/Running \"nvm unload\" should unset all function and variables." index d2cad17..cd5ec6c 100755 --- "a/test/fast/Running \"nvm unload\" should unset all function and variables." +++ "b/test/fast/Running \"nvm unload\" should unset all function and variables." @@ -9,6 +9,7 @@ cleanup () { rm -f "${BEFORE}" "${AFTER}"; } die () { echo "$@" ; cleanup ; exit 1; } typeset -f | awk '/ \(\) $/ && !/^main / {print $1}' > "${BEFORE}" +env | grep -v PATH= | grep -v NVM_ >> "${BEFORE}" set +e # TODO: fix \. ../../nvm.sh @@ -19,6 +20,7 @@ type nvm > /dev/null 2>&1 || die "nvm not loaded" nvm unload typeset -f | awk '/ \(\) $/ && !/^main / {print $1}' > "${AFTER}" +env | grep -v PATH= >> "${AFTER}" ! type nvm > /dev/null 2>&1 || die "nvm not unloaded" From 6c560b12b6e5fb042173f9268cad3a621b2830de Mon Sep 17 00:00:00 2001 From: "Bruce A. MacNaughton" Date: Fri, 7 Feb 2020 06:23:35 -0800 Subject: [PATCH 1243/1426] [New] `use`: set `NVM_INC` to expose the node include path --- nvm.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 83aac75..7e2fbeb 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2896,6 +2896,7 @@ nvm() { fi fi unset NVM_BIN + unset NVM_INC ;; "use") local PROVIDED_VERSION @@ -2993,6 +2994,7 @@ nvm() { export PATH hash -r export NVM_BIN="${NVM_VERSION_DIR}/bin" + export NVM_INC="${NVM_VERSION_DIR}/include/node" if [ "${NVM_SYMLINK_CURRENT-}" = true ]; then command rm -f "${NVM_DIR}/current" && ln -s "${NVM_VERSION_DIR}" "${NVM_DIR}/current" fi @@ -3542,7 +3544,7 @@ nvm() { nvm_curl_libz_support nvm_command_info nvm_is_zsh nvm_stdout_is_terminal \ >/dev/null 2>&1 unset NVM_RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_IOJS_ORG_MIRROR NVM_DIR \ - NVM_CD_FLAGS NVM_BIN NVM_MAKE_JOBS \ + NVM_CD_FLAGS NVM_BIN NVM_INC NVM_MAKE_JOBS \ >/dev/null 2>&1 ;; *) From 4cd6b4822ca8f35fe5b1ea4691301636e2ea7d0a Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 9 Feb 2020 06:41:52 -1000 Subject: [PATCH 1244/1426] [Tests] try to make `nvm unload` test more robust --- ...\"nvm unload\" should unset all function and variables." | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git "a/test/fast/Running \"nvm unload\" should unset all function and variables." "b/test/fast/Running \"nvm unload\" should unset all function and variables." index cd5ec6c..516c4f0 100755 --- "a/test/fast/Running \"nvm unload\" should unset all function and variables." +++ "b/test/fast/Running \"nvm unload\" should unset all function and variables." @@ -5,11 +5,11 @@ set -ex BEFORE="./before.tmp" AFTER="./after.tmp" -cleanup () { rm -f "${BEFORE}" "${AFTER}"; } +cleanup () { echo rm -f "${BEFORE}" "${AFTER}"; } die () { echo "$@" ; cleanup ; exit 1; } typeset -f | awk '/ \(\) $/ && !/^main / {print $1}' > "${BEFORE}" -env | grep -v PATH= | grep -v NVM_ >> "${BEFORE}" +env | grep -v PATH= | grep -v IFS= | grep -v NVM_ | sort >> "${BEFORE}" set +e # TODO: fix \. ../../nvm.sh @@ -20,7 +20,7 @@ type nvm > /dev/null 2>&1 || die "nvm not loaded" nvm unload typeset -f | awk '/ \(\) $/ && !/^main / {print $1}' > "${AFTER}" -env | grep -v PATH= >> "${AFTER}" +env | grep -v PATH= | grep -v IFS= | sort >> "${AFTER}" ! type nvm > /dev/null 2>&1 || die "nvm not unloaded" From 8093dbeacdfde0f4740ea6d5becb234dea9eb430 Mon Sep 17 00:00:00 2001 From: flip111 Date: Thu, 23 Jan 2020 20:32:07 +0100 Subject: [PATCH 1245/1426] [readme] add nvm intro Closes #2149. --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index a4b59bf..72a6b7a 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,7 @@ ## Table of Contents +- [About](#about) - [Installing and Updating](#installing-and-updating) - [Install & Update Script](#install--update-script) - [Additional Notes](#additional-notes) @@ -44,6 +45,9 @@ +## About +nvm is a version manager for [node.js](https://nodejs.org/en/), designed to be installed per-user, and invoked per-shell. `nvm` works on any POSIX-compliant shell (sh, dash, ksh, zsh, bash), in particular on these platforms: unix, macOS, and windows WSL. + ## Installing and Updating From e609091a55e7cfecef36f395f27d3a95ca8ccedc Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 22 Feb 2020 09:06:59 -0800 Subject: [PATCH 1246/1426] [Tests] update test mocks --- .../mocks/nodejs.org-dist-index.tab | 892 ++--- .../nodejs.org-download-nightly-index.tab | 2992 +++++++++++------ .../Unit tests/mocks/nvm ls-remote lts.txt | 46 +- .../Unit tests/mocks/nvm ls-remote node.txt | 104 +- test/fast/Unit tests/mocks/nvm ls-remote.txt | 104 +- .../mocks/nvm_ls_remote LTS nightly.txt | 13 + .../Unit tests/mocks/nvm_ls_remote LTS.txt | 42 + .../mocks/nvm_ls_remote nightly.txt | 45 +- .../mocks/nvm_ls_remote stable nightly.txt | 2 +- .../Unit tests/mocks/nvm_ls_remote stable.txt | 2 +- test/fast/Unit tests/mocks/nvm_ls_remote.txt | 100 + .../mocks/nvm_make_alias LTS alias calls.txt | 8 +- ...t_implicit_alias remote stable nightly.txt | 2 +- ...nvm_print_implicit_alias remote stable.txt | 2 +- .../fast/Unit tests/nvm_ls_remote LTS aliases | 2 +- 15 files changed, 2861 insertions(+), 1495 deletions(-) diff --git a/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab b/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab index 8767813..e24a12d 100644 --- a/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab +++ b/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab @@ -1,396 +1,496 @@ -version date files npm v8 uv zlib openssl modules lts -v10.2.0 2018-05-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - -v10.1.0 2018-05-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.2 1.2.11 1.1.0h 64 - -v10.0.0 2018-04-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - -v9.11.1 2018-04-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - -v9.11.0 2018-04-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - -v9.10.1 2018-03-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - -v9.10.0 2018-03-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - -v9.9.0 2018-03-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - -v9.8.0 2018-03-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - -v9.7.1 2018-03-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - -v9.7.0 2018-03-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - -v9.6.1 2018-02-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.1 1.2.11 1.0.2n 59 - -v9.6.0 2018-02-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.1 1.2.11 1.0.2n 59 - -v9.5.0 2018-01-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.1 1.2.11 1.0.2n 59 - -v9.4.0 2018-01-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - -v9.3.0 2017-12-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - -v9.2.1 2017-12-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2n 59 - -v9.2.0 2017-11-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - -v9.1.0 2017-11-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - -v9.0.0 2017-10-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - -v8.11.2 2018-05-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.54 1.19.1 1.2.11 1.0.2o 57 Carbon -v8.11.1 2018-03-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.50 1.19.1 1.2.11 1.0.2o 57 Carbon -v8.11.0 2018-03-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.50 1.19.1 1.2.11 1.0.2o 57 Carbon -v8.10.0 2018-03-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.50 1.19.1 1.2.11 1.0.2n 57 Carbon -v8.9.4 2018-01-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.1.534.50 1.15.0 1.2.11 1.0.2n 57 Carbon -v8.9.3 2017-12-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.48 1.15.0 1.2.11 1.0.2n 57 Carbon -v8.9.2 2017-12-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.48 1.15.0 1.2.11 1.0.2m 57 Carbon -v8.9.1 2017-11-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.47 1.15.0 1.2.11 1.0.2m 57 Carbon -v8.9.0 2017-10-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.46 1.15.0 1.2.11 1.0.2l 57 Carbon -v8.8.1 2017-10-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - -v8.8.0 2017-10-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - -v8.7.0 2017-10-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - -v8.6.0 2017-09-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - -v8.5.0 2017-09-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - -v8.4.0 2017-08-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - -v8.3.0 2017-08-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - -v8.2.1 2017-07-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - -v8.2.0 2017-07-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - -v8.1.4 2017-07-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.8.283.41 1.12.0 1.2.11 1.0.2l 57 - -v8.1.3 2017-06-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.8.283.41 1.12.0 1.2.11 1.0.2l 57 - -v8.1.2 2017-06-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.8.283.41 1.12.0 1.2.11 1.0.2l 57 - -v8.1.1 2017-06-13 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.8.283.41 1.12.0 1.2.11 1.0.2l 57 - -v8.1.0 2017-06-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.8.283.41 1.12.0 1.2.11 1.0.2l 57 - -v8.0.0 2017-05-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2k 57 - -v7.10.1 2017-07-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.5.372.43 1.11.0 1.2.11 1.0.2k 51 - -v7.10.0 2017-05-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.5.372.43 1.11.0 1.2.11 1.0.2k 51 - -v7.9.0 2017-04-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.5.372.43 1.11.0 1.2.11 1.0.2k 51 - -v7.8.0 2017-03-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.5.372.43 1.11.0 1.2.11 1.0.2k 51 - -v7.7.4 2017-03-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.42 1.11.0 1.2.11 1.0.2k 51 - -v7.7.3 2017-03-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - -v7.7.2 2017-03-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - -v7.7.1 2017-03-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - -v7.7.0 2017-02-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - -v7.6.0 2017-02-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.11 1.0.2k 51 - -v7.5.0 2017-01-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.4.500.48 1.10.2 1.2.8 1.0.2k 51 - -v7.4.0 2017-01-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - -v7.3.0 2016-12-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - -v7.2.1 2016-12-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - -v7.2.0 2016-11-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - -v7.1.0 2016-11-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - -v7.0.0 2016-10-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.9.1 1.2.8 1.0.2j 51 - -v6.14.2 2018-04-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2o 48 Boron -v6.14.1 2018-03-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2o 48 Boron -v6.14.0 2018-03-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2o 48 Boron -v6.13.1 2018-03-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2n 48 Boron -v6.13.0 2018-02-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2n 48 Boron -v6.12.3 2018-01-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.15.0 1.2.11 1.0.2n 48 Boron -v6.12.2 2017-12-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.109 1.15.0 1.2.11 1.0.2n 48 Boron -v6.12.1 2017-12-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.109 1.15.0 1.2.11 1.0.2m 48 Boron -v6.12.0 2017-11-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.108 1.15.0 1.2.11 1.0.2m 48 Boron -v6.11.5 2017-10-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.108 1.11.0 1.2.11 1.0.2l 48 Boron -v6.11.4 2017-10-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.108 1.11.0 1.2.11 1.0.2l 48 Boron -v6.11.3 2017-09-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.107 1.11.0 1.2.11 1.0.2l 48 Boron -v6.11.2 2017-08-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.103 1.11.0 1.2.11 1.0.2l 48 Boron -v6.11.1 2017-07-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.103 1.11.0 1.2.11 1.0.2k 48 Boron -v6.11.0 2017-06-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.102 1.11.0 1.2.11 1.0.2k 48 Boron -v6.10.3 2017-05-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.101 1.9.1 1.2.11 1.0.2k 48 Boron -v6.10.2 2017-04-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.98 1.9.1 1.2.11 1.0.2k 48 Boron -v6.10.1 2017-03-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.95 1.9.1 1.2.8 1.0.2k 48 Boron -v6.10.0 2017-02-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.93 1.9.1 1.2.8 1.0.2k 48 Boron -v6.9.5 2017-01-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2k 48 Boron -v6.9.4 2017-01-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2j 48 Boron -v6.9.3 2017-01-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2j 48 Boron -v6.9.2 2016-12-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.1.281.88 1.9.1 1.2.8 1.0.2j 48 Boron -v6.9.1 2016-10-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 Boron -v6.9.0 2016-10-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 Boron -v6.8.1 2016-10-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 - -v6.8.0 2016-10-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 - -v6.7.0 2016-09-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - -v6.6.0 2016-09-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - -v6.5.0 2016-08-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v6.4.0 2016-08-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - -v6.3.1 2016-07-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - -v6.3.0 2016-07-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v6.2.2 2016-06-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v6.2.1 2016-06-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v6.2.0 2016-05-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - -v6.1.0 2016-05-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - -v6.0.0 2016-04-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - -v5.12.0 2016-06-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.32 1.8.0 1.2.8 1.0.2h 47 - -v5.11.1 2016-05-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.0 2016-04-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.10.1 2016-04-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.10.0 2016-04-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.9.1 2016-03-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.7.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.9.0 2016-03-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.7.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.8.0 2016-03-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.7.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.7.1 2016-03-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.7.0 2016-02-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - -v5.6.0 2016-02-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - -v5.5.0 2016-01-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - -v5.4.1 2016-01-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - -v5.4.0 2016-01-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - -v5.3.0 2015-12-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - -v5.2.0 2015-12-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 - -v5.1.1 2015-12-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 - -v5.1.0 2015-11-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2d 47 - -v5.0.0 2015-10-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.6 4.6.85.28 1.7.5 1.2.8 1.0.2d 47 - -v4.9.1 2018-03-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.53 1.9.1 1.2.11 1.0.2o 46 Argon -v4.9.0 2018-03-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.53 1.9.1 1.2.11 1.0.2o 46 Argon -v4.8.7 2017-12-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.53 1.9.1 1.2.11 1.0.2n 46 Argon -v4.8.6 2017-11-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.53 1.9.1 1.2.11 1.0.2m 46 Argon -v4.8.5 2017-10-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.47 1.9.1 1.2.11 1.0.2k 46 Argon -v4.8.4 2017-07-11 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.47 1.9.1 1.2.11 1.0.2k 46 Argon -v4.8.3 2017-05-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.47 1.9.1 1.2.11 1.0.2k 46 Argon -v4.8.2 2017-04-04 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.46 1.9.1 1.2.11 1.0.2k 46 Argon -v4.8.1 2017-03-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.46 1.9.1 1.2.8 1.0.2k 46 Argon -v4.8.0 2017-02-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.45 1.9.1 1.2.8 1.0.2k 46 Argon -v4.7.3 2017-01-31 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.43 1.9.1 1.2.8 1.0.2k 46 Argon -v4.7.2 2017-01-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.43 1.9.1 1.2.8 1.0.2j 46 Argon -v4.7.1 2017-01-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.43 1.9.1 1.2.8 1.0.2j 46 Argon -v4.7.0 2016-12-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.43 1.9.1 1.2.8 1.0.2j 46 Argon -v4.6.2 2016-11-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.42 1.9.1 1.2.8 1.0.2j 46 Argon -v4.6.1 2016-10-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.9 4.5.103.37 1.9.1 1.2.8 1.0.2j 46 Argon -v4.6.0 2016-09-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.9 4.5.103.37 1.9.1 1.2.8 1.0.2j 46 Argon -v4.5.0 2016-08-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.9 4.5.103.37 1.9.1 1.2.8 1.0.2h 46 Argon -v4.4.7 2016-06-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.8 4.5.103.36 1.8.0 1.2.8 1.0.2h 46 Argon -v4.4.6 2016-06-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.5 4.5.103.36 1.8.0 1.2.8 1.0.2h 46 Argon -v4.4.5 2016-05-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.5 4.5.103.35 1.8.0 1.2.8 1.0.2h 46 Argon -v4.4.4 2016-05-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.1 4.5.103.35 1.8.0 1.2.8 1.0.2h 46 Argon -v4.4.3 2016-04-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.1 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon -v4.4.2 2016-04-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.0 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon -v4.4.1 2016-03-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.20 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon -v4.4.0 2016-03-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.20 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon -v4.3.2 2016-03-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon -v4.3.1 2016-02-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2f 46 Argon -v4.3.0 2016-02-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2f 46 Argon -v4.2.6 2016-01-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2e 46 Argon -v4.2.5 2016-01-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2e 46 Argon -v4.2.4 2015-12-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.12 4.5.103.35 1.7.5 1.2.8 1.0.2e 46 Argon -v4.2.3 2015-12-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2e 46 Argon -v4.2.2 2015-11-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 Argon -v4.2.1 2015-10-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 Argon -v4.2.0 2015-10-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 Argon -v4.1.2 2015-10-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.4 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 - -v4.1.1 2015-09-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.4 4.5.103.33 1.7.4 1.2.8 1.0.2d 46 - -v4.1.0 2015-09-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.3 4.5.103.33 1.7.4 1.2.8 1.0.2d 46 - -v4.0.0 2015-09-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.2 4.5.103.30 1.7.3 1.2.8 1.0.2d 46 - -v0.12.18 2017-02-22 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.11 3.28.71.20 1.6.1 1.2.8 1.0.1u 14 - -v0.12.17 2016-10-18 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.28.71.19 1.6.1 1.2.8 1.0.1u 14 - -v0.12.16 2016-09-27 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.28.71.19 1.6.1 1.2.8 1.0.1u 14 - -v0.12.15 2016-06-23 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.28.71.19 1.6.1 1.2.8 1.0.1t 14 - -v0.12.14 2016-05-06 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.28.71.19 1.6.1 1.2.8 1.0.1t 14 - -v0.12.13 2016-03-31 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.0 3.28.71.19 1.6.1 1.2.8 1.0.1s 14 - -v0.12.12 2016-03-08 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.14.9 3.28.71.19 1.6.1 1.2.8 1.0.1s 14 - -v0.12.11 2016-03-03 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.14.9 3.28.71.19 1.6.1 1.2.8 1.0.1s 14 - -v0.12.10 2016-02-09 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.14.9 3.28.71.19 1.6.1 1.2.8 1.0.1r 14 - -v0.12.9 2015-12-03 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.14.9 3.28.71.19 1.6.1 1.2.8 1.0.1q 14 - -v0.12.8 2015-11-24 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.14.9 3.28.71.19 1.6.1 1.2.8 1.0.1p 14 - -v0.12.7 2015-07-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.11.3 3.28.71.19 1.6.1 1.2.8 1.0.1p 14 - -v0.12.6 2015-07-04 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.11.2 3.28.71.19 1.6.1 1.2.8 1.0.1o 14 - -v0.12.5 2015-06-22 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.11.2 3.28.71.19 1.6.1 1.2.8 1.0.1o 14 - -v0.12.4 2015-05-23 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.10.1 3.28.71.19 1.5.0 1.2.8 1.0.1m 14 - -v0.12.3 2015-05-14 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.9.1 3.28.71.19 1.5.0 1.2.8 1.0.1m 14 - -v0.12.2 2015-03-31 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.7.4 3.28.73.0 1.4.2 1.2.8 1.0.1m 14 - -v0.12.1 2015-03-24 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.5.1 3.28.73.0 1.0.2 1.2.8 1.0.1m 14 - -v0.12.0 2015-02-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.5.1 3.28.73.0 1.0.2 1.2.8 1.0.1l 14 - -v0.11.16 2015-01-30 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.3.0 3.28.73.0 1.0.2 1.2.8 1.0.1l 14 - -v0.11.15 2015-01-20 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.1.6 3.28.73.0 1.0.2 1.2.8 1.0.1j 14 - -v0.11.14 2014-08-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.0.0 3.26.33.0 1.0.0 1.2.3 1.0.1i 14 - -v0.11.13 2014-05-02 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.9 3.25.30.0 0.11.25 1.2.3 1.0.1g 14 - -v0.11.12 2014-03-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.3 3.22.24.19 0.11.22 1.2.3 1.0.1f 14 - -v0.11.11 2014-01-29 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.25 3.22.24.19 0.11.18 1.2.3 1.0.1f 14 - -v0.11.10 2013-12-31 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.22 3.22.24.10 0.11.17 1.2.3 1.0.1e 13 - -v0.11.9 2013-11-21 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.15 3.22.24.5 0.11.15 1.2.3 1.0.1e 13 - -v0.11.8 2013-10-30 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.13 3.21.18.3 0.11.14 1.2.3 1.0.1e 13 - -v0.11.7 2013-09-04 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.8 3.20.17.0 0.11.13 1.2.3 1.0.1e 0x000C - -v0.11.6 2013-08-21 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x86-msi 1.3.8 3.20.14.1 0.11.8 1.2.3 1.0.1e 0x000C - -v0.11.5 2013-08-07 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.6 3.20.11.0 0.11.7 1.2.3 1.0.1e 0x000C - -v0.11.4 2013-07-12 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x86-msi 1.3.4 3.20.2.0 0.11.5 1.2.3 1.0.1e 0x000C - -v0.11.3 2013-06-26 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.25 3.19.13.0 0.11.5 1.2.3 1.0.1e 0x000C - -v0.11.2 2013-05-13 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.21 3.19.0.0 0.11.2 1.2.3 1.0.1e 0x000C - -v0.11.1 2013-04-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.18 3.18.0.0 0.11.1 1.2.3 1.0.1e 0x000C - -v0.11.0 2013-03-28 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.15 3.17.13.0 0.10.3 1.2.3 1.0.1e 0x000C - -v0.10.48 2016-10-18 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.14.5.11 0.10.37 1.2.8 1.0.1u 11 - -v0.10.47 2016-09-27 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.14.5.11 0.10.37 1.2.8 1.0.1u 11 - -v0.10.46 2016-06-23 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.14.5.9 0.10.37 1.2.8 1.0.1t 11 - -v0.10.45 2016-05-06 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.14.5.9 0.10.36 1.2.8 1.0.1t 11 - -v0.10.44 2016-03-31 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.0 3.14.5.9 0.10.36 1.2.8 1.0.1s 11 - -v0.10.43 2016-03-03 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.29 3.14.5.9 0.10.36 1.2.8 1.0.1s 11 - -v0.10.42 2016-02-09 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.29 3.14.5.9 0.10.36 1.2.8 1.0.1r 11 - -v0.10.41 2015-12-03 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.29 3.14.5.9 0.10.36 1.2.8 1.0.1q 11 - -v0.10.40 2015-07-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.36 1.2.8 1.0.1p 11 - -v0.10.39 2015-06-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.36 1.2.8 1.0.1o 11 - -v0.10.38 2015-03-23 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.36 1.2.8 1.0.1m 11 - -v0.10.37 2015-03-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.36 1.2.8 1.0.1l 11 - -v0.10.36 2015-01-26 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.30 1.2.8 1.0.1l 11 - -v0.10.35 2014-12-22 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.30 1.2.8 1.0.1j 11 - -v0.10.34 2014-12-17 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.30 1.2.8 1.0.1j 11 - -v0.10.33 2014-10-21 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.29 1.2.3 1.0.1j 11 - -v0.10.32 2014-09-16 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.28 1.2.3 1.0.1i 11 - -v0.10.31 2014-08-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.23 3.14.5.9 0.10.28 1.2.3 1.0.1i 11 - -v0.10.30 2014-07-31 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.21 3.14.5.9 0.10.28 1.2.3 1.0.1h 11 - -v0.10.29 2014-06-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.14 3.14.5.9 0.10.27 1.2.3 1.0.1h 11 - -v0.10.28 2014-05-02 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.9 3.14.5.9 0.10.27 1.2.3 1.0.1g 11 - -v0.10.27 2014-05-01 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.8 3.14.5.9 0.10.27 1.2.3 1.0.1g 11 - -v0.10.26 2014-02-18 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.3 3.14.5.9 0.10.25 1.2.3 1.0.1e 11 - -v0.10.25 2014-01-23 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.24 3.14.5.9 0.10.23 1.2.3 1.0.1e 11 - -v0.10.24 2013-12-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.21 3.14.5.9 0.10.21 1.2.3 1.0.1e 11 - -v0.10.23 2013-12-12 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.17 3.14.5.9 0.10.20 1.2.3 1.0.1e 11 - -v0.10.22 2013-11-12 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.14 3.14.5.9 0.10.19 1.2.3 1.0.1e 11 - -v0.10.21 2013-10-18 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.11 3.14.5.9 0.10.18 1.2.3 1.0.1e 11 - -v0.10.20 2013-09-30 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.11 3.14.5.9 0.10.17 1.2.3 1.0.1e 11 - -v0.10.19 2013-09-24 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.11 3.14.5.9 0.10.17 1.2.3 1.0.1e 11 - -v0.10.18 2013-09-04 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.8 3.14.5.9 0.10.15 1.2.3 1.0.1e 11 - -v0.10.17 2013-08-21 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.8 3.14.5.9 0.10.14 1.2.3 1.0.1e 11 - -v0.10.16 2013-08-16 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.8 3.14.5.9 0.10.13 1.2.3 1.0.1e 11 - -v0.10.15 2013-07-25 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.5 3.14.5.9 0.10.13 1.2.3 1.0.1e 11 - -v0.10.14 2013-07-25 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.5 3.14.5.9 0.10.13 1.2.3 1.0.1e 11 - -v0.10.13 2013-07-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.2 3.14.5.9 0.10.12 1.2.3 1.0.1e 11 - -v0.10.12 2013-06-18 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.32 3.14.5.9 0.10.11 1.2.3 1.0.1e 11 - -v0.10.11 2013-06-13 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.30 3.14.5.9 0.10.11 1.2.3 1.0.1e 11 - -v0.10.10 2013-06-04 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.25 3.14.5.9 0.10.10 1.2.3 1.0.1e 11 - -v0.10.9 2013-05-30 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.24 3.14.5.9 0.10.9 1.2.3 1.0.1e 11 - -v0.10.8 2013-05-24 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.23 3.14.5.9 0.10.8 1.2.3 1.0.1e 11 - -v0.10.7 2013-05-17 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.21 3.14.5.8 0.10.7 1.2.3 1.0.1e 11 - -v0.10.6 2013-05-14 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.18 3.14.5.8 0.10.5 1.2.3 1.0.1e 11 - -v0.10.5 2013-04-23 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.18 3.14.5.8 0.10.5 1.2.3 1.0.1e 11 - -v0.10.4 2013-04-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.18 3.14.5.8 0.10.4 1.2.3 1.0.1e 11 - -v0.10.3 2013-04-03 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.17 3.14.5.8 0.10.3 1.2.3 1.0.1e 0x000B - -v0.10.2 2013-03-28 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.15 3.14.5.8 0.10.3 1.2.3 1.0.1e 0x000B - -v0.10.1 2013-03-21 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.15 3.14.5.8 0.10 1.2.3 1.0.1e 0x000B - -v0.10.0 2013-03-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.14 3.14.5.8 0.9 1.2.3 1.0.1e 0x000B - -v0.9.12 2013-03-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.12 3.14.5.8 0.9 1.2.3 1.0.1e 0x000B - -v0.9.11 2013-03-01 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.12 3.14.5.0 0.9 1.2.3 1.0.1e 0x000B - -v0.9.10 2013-02-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.12 3.15.11.15 0.9 1.2.3 1.0.1c 0x000B - -v0.9.9 2013-02-07 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.10 3.15.11.10 0.9 1.2.3 1.0.1c 0x000B - -v0.9.8 2013-01-24 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.3 3.15.11.10 0.9 1.2.3 1.0.1c 0x000A - -v0.9.7 2013-01-18 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.2 3.15.11.7 0.9 1.2.3 1.0.1c 0x000A - -v0.9.6 2013-01-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.0 3.15.11.5 0.9 1.2.3 1.0.1c 0x000A - -v0.9.5 2012-12-30 linux-x64,linux-x86,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.70 3.13.7.4 0.9 1.2.3 1.0.1c 0x000A - -v0.9.4 2012-12-21 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.70 3.13.7.4 0.9 1.2.3 1.0.1c 0x000A - -v0.9.3 2012-10-24 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.64 3.13.7.4 0.9 1.2.3 1.0.1c 0x000A - -v0.9.2 2012-09-17 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.61 3.11.10.22 0.9 1.2.3 1.0.1c 0x000A - -v0.9.1 2012-08-28 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.59 3.11.10.19 0.9 1.2.3 1.0.0f 0x000A - -v0.9.0 2012-07-20 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.44 3.11.10.15 0.9 1.2.3 1.0.0f 1 - -v0.8.28 2014-07-31 linux-x64,linux-x86,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.30 3.11.10.26 0.8 1.2.3 1.0.0f 1 - -v0.8.27 2014-06-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x86-msi 1.2.30 3.11.10.26 0.8 1.2.3 1.0.0f 1 - -v0.8.26 2013-10-18 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.30 3.11.10.26 0.8 1.2.3 1.0.0f 1 - -v0.8.25 2013-06-13 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.30 3.11.10.25 0.8 1.2.3 1.0.0f 1 - -v0.8.24 2013-06-03 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.24 3.11.10.25 0.8 1.2.3 1.0.0f 1 - -v0.8.23 2013-04-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.18 3.11.10.25 0.8 1.2.3 1.0.0f 1 - -v0.8.22 2013-03-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.14 3.11.10.25 0.8 1.2.3 1.0.0f 1 - -v0.8.21 2013-02-25 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.11 3.11.10.25 0.8 1.2.3 1.0.0f 1 - -v0.8.20 2013-02-15 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.11 3.11.10.25 0.8 1.2.3 1.0.0f 1 - -v0.8.19 2013-02-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.10 3.11.10.25 0.8 1.2.3 1.0.0f 1 - -v0.8.18 2013-01-18 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.2 3.11.10.25 0.8 1.2.3 1.0.0f 1 - -v0.8.17 2013-01-10 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.0 3.11.10.25 0.8 1.2.3 1.0.0f 1 - -v0.8.16 2012-12-12 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.69 3.11.10.25 0.8 1.2.3 1.0.0f 1 - -v0.8.15 2012-11-26 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.66 3.11.10.25 0.8 1.2.3 1.0.0f 1 - -v0.8.14 2012-10-25 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.65 3.11.10.25 0.8 1.2.3 1.0.0f 1 - -v0.8.13 2012-10-25 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.65 3.11.10.25 0.8 1.2.3 1.0.0f 1 - -v0.8.12 2012-10-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.63 3.11.10.22 0.8 1.2.3 1.0.0f 1 - -v0.8.11 2012-09-27 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.62 3.11.10.22 0.8 1.2.3 1.0.0f 1 - -v0.8.10 2012-09-25 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.62 3.11.10.22 0.8 1.2.3 1.0.0f 1 - -v0.8.9 2012-09-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.61 3.11.10.22 0.8 1.2.3 1.0.0f 1 - -v0.8.8 2012-08-22 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 1.1.59 3.11.10.19 0.8 1.2.3 1.0.0f 1 - -v0.8.7 2012-08-15 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.49 3.11.10.17 0.8 1.2.3 1.0.0f 1 - -v0.8.6 2012-08-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.48 3.11.10.17 0.8 1.2.3 1.0.0f 1 - -v0.8.5 2012-08-02 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.46 3.11.10.17 0.8 1.2.3 1.0.0f 1 - -v0.8.4 2012-07-24 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.45 3.11.10.17 0.8 1.2.3 1.0.0f 1 - -v0.8.3 2012-07-17 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.43 3.11.10.15 0.8 1.2.3 1.0.0f 1 - -v0.8.2 2012-07-09 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.36 3.11.10.14 0.8 1.2.3 1.0.0f 1 - -v0.8.1 2012-06-29 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.33 3.11.10.12 0.8 1.2.3 1.0.0f 1 - -v0.8.0 2012-06-22 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.32 3.11.10.10 0.8 1.2.3 1.0.0f 1 - -v0.7.12 2012-06-19 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.30 3.11.10.0 0.6 1.2.3 1.0.0f 1 - -v0.7.11 2012-06-15 osx-x64-pkg,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 1.1.26 3.11.10.0 0.6 1.2.3 1.0.0f 1 - -v0.7.10 2012-06-11 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.25 3.9.24.31 0.6 1.2.3 1.0.0f 1 - -v0.7.9 2012-05-29 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.23 3.11.1.0 0.6 1.2.3 1.0.0f 1 - -v0.7.8 2012-04-18 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.18 3.9.24.9 0.6 1.2.3 1.0.0f 1 - -v0.7.7 2012-03-30 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.15 3.9.24.7 0.6 1.2.3 0.9.8r 1 - -v0.7.6 2012-03-13 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.8 3.9.17.0 0.6 1.2.3 0.9.8r 1 - -v0.7.5 2012-02-23 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.1 3.9.5.0 0.6 1.2.3 0.9.8r 1 - -v0.7.4 2012-02-14 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.1 3.9.5.0 0.6 1.2.3 0.9.8r 1 - -v0.7.3 2012-02-07 osx-x64-pkg,src,win-x86-exe 1.1.0-3 3.9.2.0 0.6 1.2.3 0.9.8r 1 - -v0.7.2 2012-02-01 osx-x64-pkg,src,win-x86-exe 1.1.0-3 3.8.9.0 0.6 1.2.3 0.9.8r 1 - -v0.7.1 2012-01-23 osx-x64-pkg,src,win-x86-exe 1.1.0-2 3.8.8.0 0.6 1.2.3 0.9.8r 1 - -v0.7.0 2012-01-17 osx-x64-pkg,src,win-x86-exe 1.1.0-2 3.8.6.0 0.6 1.2.3 0.9.8r 1 - -v0.6.21 2012-08-03 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.37 3.6.6.25 0.6 1.2.3 0.9.8r 1 - -v0.6.20 2012-07-10 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.37 3.6.6.25 0.6 1.2.3 0.9.8r 1 - -v0.6.19 2012-06-06 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.24 3.6.6.25 0.6 1.2.3 0.9.8r 1 - -v0.6.18 2012-05-14 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.21 3.6.6.25 0.6 1.2.3 0.9.8r 1 - -v0.6.17 2012-05-04 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.21 3.6.6.25 0.6 1.2.3 0.9.8r 1 - -v0.6.16 2012-04-27 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.19 3.6.6.25 0.6 1.2.3 0.9.8r 1 - -v0.6.15 2012-04-08 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.16 3.6.6.24 0.6 1.2.3 0.9.8r 1 - -v0.6.14 2012-03-23 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.12 3.6.6.24 0.6 1.2.3 0.9.8r 1 - -v0.6.13 2012-03-15 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.9 3.6.6.24 0.6 1.2.3 0.9.8r 1 - -v0.6.12 2012-03-02 osx-x64-pkg,src,win-x86-exe 1.1.4 3.6.6.24 0.6 1.2.3 0.9.8r 1 - -v0.6.11 2012-02-08 osx-x64-pkg,src,win-x86-exe 1.1.1 3.6.6.20 0.6 1.2.3 0.9.8r 1 - -v0.6.10 2012-02-03 osx-x64-pkg,src,win-x86-exe 1.1.0-3 3.6.6.20 0.6 1.2.3 0.9.8r 1 - -v0.6.9 2012-01-27 osx-x64-pkg,src,win-x86-exe 1.1.0-3 3.6.6.19 0.6 1.2.3 0.9.8r 1 - -v0.6.8 2012-01-20 osx-x64-pkg,src,win-x86-exe 1.1.0-2 3.6.6.19 0.6 1.2.3 0.9.8r 1 - -v0.6.7 2012-01-07 osx-x64-pkg,src,win-x86-exe 1.1.0-beta-10 3.6.6.15 0.6 1.2.3 0.9.8r 1 - -v0.6.6 2011-12-15 osx-x64-pkg,src,win-x86-exe 1.1.0-beta-4 3.6.6.14 0.6 1.2.3 0.9.8r 1 - -v0.6.5 2011-12-04 osx-x64-pkg,src,win-x86-exe 1.1.0-alpha-6 3.6.6.11 0.6 1.2.3 0.9.8r 1 - -v0.6.4 2011-12-02 osx-x64-pkg,src,win-x86-exe 1.1.0-alpha-6 3.6.6.8 0.6 1.2.3 0.9.8r 1 - -v0.6.3 2011-11-25 osx-x64-pkg,src,win-x86-exe 1.1.0-alpha-2 3.6.6.8 0.6 1.2.3 0.9.8r 1 - -v0.6.2 2011-11-18 osx-x64-pkg,src,win-x86-exe - 3.6.6.8 0.6 1.2.3 0.9.8r 1 - -v0.6.1 2011-11-11 osx-x64-pkg,src,win-x86-exe - 3.6.6.7 0.1 1.2.3 0.9.8r 1 - -v0.6.0 2011-11-04 src,win-x86-exe - 3.6.6.6 0.1 1.2.3 0.9.8r 1 - -v0.5.10 2011-10-22 src,win-x86-exe - 3.7.0.0 0.1 1.2.3 0.9.8r 1 - -v0.5.9 2011-10-11 src,win-x86-exe - 3.6.4.0 0.1 1.2.3 0.9.8r 1 - -v0.5.8 2011-09-30 src,win-x86-exe - 3.6.4.0 0.1 1.2.3 0.9.8r 1 - -v0.5.7 2011-09-16 src,win-x86-exe - 3.6.4.0 0.1 - 0.9.8r 1 - -v0.5.6 2011-08-26 src,win-x86-exe - 3.6.2.0 0.1 - 0.9.8r 1 - -v0.5.5 2011-08-26 src,win-x86-exe - 3.5.8.0 0.1 - 0.9.8r 1 - -v0.5.4 2011-08-26 src,win-x86-exe - 3.5.4.3 0.1 - - 1 - -v0.5.3 2011-08-26 src,win-x86-exe - 3.4.14.0 0.1 - - 1 - -v0.5.2 2011-08-26 src,win-x86-exe - 3.4.14.0 0.1 - - 1 - -v0.5.1 2011-08-26 src,win-x86-exe - 3.4.10.0 0.1 - - 1 - -v0.5.0 2011-08-26 src - 3.1.8.25 - - - 1 - -v0.4.12 2011-09-15 src - 3.1.8.26 - - - 1 - -v0.4.11 2011-08-26 src - 3.1.8.26 - - - 1 - -v0.4.10 2011-08-26 src - 3.1.8.26 - - - 1 - -v0.4.9 2011-08-26 src - 3.1.8.25 - - - 1 - -v0.4.8 2011-08-26 src - 3.1.8.16 - - - 1 - -v0.4.7 2011-08-26 src - 3.1.8.10 - - - 1 - -v0.4.6 2011-08-26 src - 3.1.8.10 - - - 1 - -v0.4.5 2011-08-26 src - 3.1.8.8 - - - 1 - -v0.4.4 2011-08-26 src - 3.1.8.5 - - - 1 - -v0.4.3 2011-08-26 src - 3.1.8.3 - - - 1 - -v0.4.2 2011-08-26 src - 3.1.8.0 - - - 1 - -v0.4.1 2011-08-26 src - 3.1.5.0 - - - 1 - -v0.4.0 2011-08-26 src - 3.1.2.0 - - - 1 - -v0.3.8 2011-08-26 src - 3.1.1.0 - - - 1 - -v0.3.7 2011-08-26 src - 3.0.10.0 - - - 1 - -v0.3.6 2011-08-26 src - 3.0.9.0 - - - 1 - -v0.3.5 2011-08-26 src - 3.0.4.1 - - - 1 - -v0.3.4 2011-08-26 src - 3.0.4.1 - - - 1 - -v0.3.3 2011-08-26 src - 3.0.4.1 - - - 1 - -v0.3.2 2011-08-26 src - 3.0.3.0 - - - 1 - -v0.3.1 2011-08-26 src - 2.5.3.0 - - - 1 - -v0.3.0 2011-08-26 src - 2.5.1.0 - - - 1 - -v0.2.6 2011-08-26 src - 2.3.8.0 - - - 1 - -v0.2.5 2011-08-26 src - 2.3.8.0 - - - 1 - -v0.2.4 2011-08-26 src - 2.3.8.0 - - - 1 - -v0.2.3 2011-08-26 src - 2.3.8.0 - - - 1 - -v0.2.2 2011-08-26 src - 2.3.8.0 - - - 1 - -v0.2.1 2011-08-26 src - 2.3.8.0 - - - 1 - -v0.2.0 2011-08-26 src - 2.3.8.0 - - - 1 - -v0.1.104 2011-08-26 src - 2.3.6.1 - - - - - -v0.1.103 2011-08-26 src - 2.3.5.0 - - - - - -v0.1.102 2011-08-26 src - 2.3.2.0 - - - - - -v0.1.101 2011-08-26 src - 2.3.0.0 - - - - - -v0.1.100 2011-08-26 src - 2.2.21.0 - - - - - -v0.1.99 2011-08-26 src - 2.2.18.0 - - - - - -v0.1.98 2011-08-26 src - 2.2.16.0 - - - - - -v0.1.97 2011-08-26 src - 2.2.12.0 - - - - - -v0.1.96 2011-08-26 src - 2.2.0 - - - - - -v0.1.95 2011-08-26 src - 2.2.0 - - - - - -v0.1.94 2011-08-26 src - 2.2.8.0 - - - - - -v0.1.93 2011-08-26 src - 2.2.6.0 - - - - - -v0.1.92 2011-08-26 src - 2.2.4.2 - - - - - -v0.1.91 2011-08-26 src - 2.2.3.1 - - - - - -v0.1.90 2011-08-26 src - 2.2.0.3 - - - - - -v0.1.33 2011-08-26 src - 2.1.6.0 - - - - - -v0.1.32 2011-08-26 src - 2.1.3.0 - - - - - -v0.1.31 2011-08-26 src - 2.1.2.0 - - - - - -v0.1.30 2011-08-26 src - 2.1.1.1 - - - - - -v0.1.29 2011-08-26 src - 2.1.0.0 - - - - - -v0.1.28 2011-08-26 src - 2.1.0.0 - - - - - -v0.1.27 2011-08-26 src - 2.1.0.0 - - - - - -v0.1.26 2011-08-26 src - 2.0.6.1 - - - - - -v0.1.25 2011-08-26 src - 2.0.5.4 - - - - - -v0.1.24 2011-08-26 src - 2.0.5.4 - - - - - -v0.1.23 2011-08-26 src - 2.0.0 - - - - - -v0.1.22 2011-08-26 src - 2.0.0 - - - - - -v0.1.21 2011-08-26 src - 2.0.0 - - - - - -v0.1.20 2011-08-26 src - 2.0.2.0 - - - - - -v0.1.19 2011-08-26 src - 2.0.2.0 - - - - - -v0.1.18 2011-08-26 src - 1.3.18.0 - - - - - -v0.1.17 2011-08-26 src - 1.3.18.0 - - - - - -v0.1.16 2011-08-26 src - 1.3.18.0 - - - - - -v0.1.15 2011-08-26 src - 1.3.16.0 - - - - - -v0.1.14 2011-08-26 src - 1.3.15.0 - - - - - +version date files npm v8 uv zlib openssl modules lts security +v13.9.0 2020-02-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 79 - - +v13.8.0 2020-02-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 79 - true +v13.7.0 2020-01-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 79 - - +v13.6.0 2020-01-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 79 - - +v13.5.0 2019-12-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 79 - - +v13.4.0 2019-12-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 79 - true +v13.3.0 2019-12-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.33.1 1.2.11 1.1.1d 79 - - +v13.2.0 2019-11-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.23 1.33.1 1.2.11 1.1.1d 79 - - +v13.1.0 2019-11-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.1 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v13.0.1 2019-10-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v13.0.0 2019-10-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.32.0 1.2.11 1.1.1d 79 - - +v12.16.1 2020-02-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.8.279.23 1.34.0 1.2.11 1.1.1d 72 Erbium - +v12.16.0 2020-02-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.8.279.23 1.34.0 1.2.11 1.1.1d 72 Erbium - +v12.15.0 2020-02-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.7.299.13 1.33.1 1.2.11 1.1.1d 72 Erbium true +v12.14.1 2020-01-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.7.299.13 1.33.1 1.2.11 1.1.1d 72 Erbium - +v12.14.0 2019-12-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.7.299.13 1.33.1 1.2.11 1.1.1d 72 Erbium true +v12.13.1 2019-11-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.1 7.7.299.13 1.33.1 1.2.11 1.1.1d 72 Erbium - +v12.13.0 2019-10-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.7.299.13 1.32.0 1.2.11 1.1.1d 72 Erbium - +v12.12.0 2019-10-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.13 1.32.0 1.2.11 1.1.1d 72 - - +v12.11.1 2019-10-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1c 72 - - +v12.11.0 2019-09-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1c 72 - - +v12.10.0 2019-09-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.6.303.29 1.31.0 1.2.11 1.1.1c 72 - - +v12.9.1 2019-08-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.6.303.29 1.31.0 1.2.11 1.1.1c 72 - - +v12.9.0 2019-08-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.6.303.29 1.31.0 1.2.11 1.1.1c 72 - - +v12.8.1 2019-08-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.5.288.22 1.30.1 1.2.11 1.1.1c 72 - true +v12.8.0 2019-08-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.5.288.22 1.30.1 1.2.11 1.1.1c 72 - - +v12.7.0 2019-07-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 72 - - +v12.6.0 2019-07-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 72 - - +v12.5.0 2019-06-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1c 72 - - +v12.4.0 2019-06-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.29.1 1.2.11 1.1.1b 72 - - +v12.3.1 2019-05-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.29.1 1.2.11 1.1.1b 72 - - +v12.3.0 2019-05-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.28.0 1.2.11 1.1.1b 72 - - +v12.2.0 2019-05-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v12.1.0 2019-04-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v12.0.0 2019-04-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v11.15.0 2019-04-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.0.276.38 1.27.0 1.2.11 1.1.1b 67 - - +v11.14.0 2019-04-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.0.276.38 1.27.0 1.2.11 1.1.1b 67 - - +v11.13.0 2019-03-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.0.276.38 1.27.0 1.2.11 1.1.1b 67 - - +v11.12.0 2019-03-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.0.276.38 1.26.0 1.2.11 1.1.1b 67 - - +v11.11.0 2019-03-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.0.276.38 1.26.0 1.2.11 1.1.1a 67 - - +v11.10.1 2019-02-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.0.276.38 1.26.0 1.2.11 1.1.1a 67 - true +v11.10.0 2019-02-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.0.276.38 1.26.0 1.2.11 1.1.1a 67 - - +v11.9.0 2019-01-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.0.276.38 1.25.0 1.2.11 1.1.1a 67 - - +v11.8.0 2019-01-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.0.276.38 1.25.0 1.2.11 1.1.0j 67 - - +v11.7.0 2019-01-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.0.276.38 1.24.1 1.2.11 1.1.0j 67 - - +v11.6.0 2018-12-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0-next.0 7.0.276.38 1.24.1 1.2.11 1.1.0j 67 - - +v11.5.0 2018-12-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0j 67 - - +v11.4.0 2018-12-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0j 67 - - +v11.3.0 2018-11-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.23.2 1.2.11 1.1.0j 67 - true +v11.2.0 2018-11-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.23.2 1.2.11 1.1.0i 67 - - +v11.1.0 2018-10-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.32 1.23.2 1.2.11 1.1.0i 67 - - +v11.0.0 2018-10-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.28 1.23.2 1.2.11 1.1.0i 67 - - +v10.19.0 2020-02-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 6.8.275.32 1.28.0 1.2.11 1.1.1d 64 Dubnium true +v10.18.1 2020-01-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 6.8.275.32 1.28.0 1.2.11 1.1.1d 64 Dubnium - +v10.18.0 2019-12-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 6.8.275.32 1.28.0 1.2.11 1.1.1d 64 Dubnium true +v10.17.0 2019-10-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 6.8.275.32 1.28.0 1.2.11 1.1.1d 64 Dubnium - +v10.16.3 2019-08-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1c 64 Dubnium true +v10.16.2 2019-08-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1c 64 Dubnium - +v10.16.1 2019-07-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1c 64 Dubnium - +v10.16.0 2019-05-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1b 64 Dubnium - +v10.15.3 2019-03-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.2 2019-02-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium true +v10.15.1 2019-01-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.0 2018-12-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.14.2 2018-12-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.14.1 2018-11-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.14.0 2018-11-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium true +v10.13.0 2018-10-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 Dubnium - +v10.12.0 2018-10-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 - - +v10.11.0 2018-09-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.0 1.2.11 1.1.0i 64 - - +v10.10.0 2018-09-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.30 1.23.0 1.2.11 1.1.0i 64 - - +v10.9.0 2018-08-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0i 64 - - +v10.8.0 2018-08-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.7.0 2018-07-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.6.0 2018-07-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v10.5.0 2018-06-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v10.4.1 2018-06-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.45 1.20.3 1.2.11 1.1.0h 64 - - +v10.4.0 2018-06-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.43 1.20.3 1.2.11 1.1.0h 64 - - +v10.3.0 2018-05-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v10.2.1 2018-05-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v10.2.0 2018-05-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v10.1.0 2018-05-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.2 1.2.11 1.1.0h 64 - - +v10.0.0 2018-04-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - - +v9.11.2 2018-06-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - - +v9.11.1 2018-04-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - - +v9.11.0 2018-04-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - - +v9.10.1 2018-03-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - - +v9.10.0 2018-03-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - true +v9.9.0 2018-03-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.8.0 2018-03-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.7.1 2018-03-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.7.0 2018-03-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.6.1 2018-02-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.1 1.2.11 1.0.2n 59 - - +v9.6.0 2018-02-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.1 1.2.11 1.0.2n 59 - - +v9.5.0 2018-01-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.1 1.2.11 1.0.2n 59 - - +v9.4.0 2018-01-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - - +v9.3.0 2017-12-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - - +v9.2.1 2017-12-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2n 59 - - +v9.2.0 2017-11-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - - +v9.1.0 2017-11-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - - +v9.0.0 2017-10-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - - +v8.17.0 2019-12-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 6.2.414.78 1.23.2 1.2.11 1.0.2s 57 Carbon true +v8.16.2 2019-10-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.2.414.78 1.23.2 1.2.11 1.0.2s 57 Carbon - +v8.16.1 2019-08-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.2.414.77 1.23.2 1.2.11 1.0.2r 57 Carbon true +v8.16.0 2019-04-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.2.414.77 1.23.2 1.2.11 1.0.2r 57 Carbon - +v8.15.1 2019-02-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.2.414.75 1.23.2 1.2.11 1.0.2r 57 Carbon true +v8.15.0 2018-12-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.2.414.75 1.23.2 1.2.11 1.0.2q 57 Carbon - +v8.14.1 2018-12-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.2.414.75 1.23.2 1.2.11 1.0.2q 57 Carbon - +v8.14.0 2018-11-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.2.414.72 1.23.2 1.2.11 1.0.2q 57 Carbon true +v8.13.0 2018-11-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.2.414.72 1.23.2 1.2.11 1.0.2p 57 Carbon - +v8.12.0 2018-09-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.2.414.66 1.19.2 1.2.11 1.0.2p 57 Carbon - +v8.11.4 2018-08-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.54 1.19.1 1.2.11 1.0.2p 57 Carbon true +v8.11.3 2018-06-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.54 1.19.1 1.2.11 1.0.2o 57 Carbon - +v8.11.2 2018-05-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.54 1.19.1 1.2.11 1.0.2o 57 Carbon - +v8.11.1 2018-03-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.50 1.19.1 1.2.11 1.0.2o 57 Carbon - +v8.11.0 2018-03-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.50 1.19.1 1.2.11 1.0.2o 57 Carbon true +v8.10.0 2018-03-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.50 1.19.1 1.2.11 1.0.2n 57 Carbon - +v8.9.4 2018-01-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.1.534.50 1.15.0 1.2.11 1.0.2n 57 Carbon - +v8.9.3 2017-12-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.48 1.15.0 1.2.11 1.0.2n 57 Carbon true +v8.9.2 2017-12-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.48 1.15.0 1.2.11 1.0.2m 57 Carbon - +v8.9.1 2017-11-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.47 1.15.0 1.2.11 1.0.2m 57 Carbon - +v8.9.0 2017-10-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.46 1.15.0 1.2.11 1.0.2l 57 Carbon - +v8.8.1 2017-10-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - - +v8.8.0 2017-10-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - - +v8.7.0 2017-10-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - - +v8.6.0 2017-09-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - - +v8.5.0 2017-09-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - - +v8.4.0 2017-08-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v8.3.0 2017-08-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v8.2.1 2017-07-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - - +v8.2.0 2017-07-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - - +v8.1.4 2017-07-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.8.283.41 1.12.0 1.2.11 1.0.2l 57 - true +v8.1.3 2017-06-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.8.283.41 1.12.0 1.2.11 1.0.2l 57 - - +v8.1.2 2017-06-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.8.283.41 1.12.0 1.2.11 1.0.2l 57 - - +v8.1.1 2017-06-13 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.8.283.41 1.12.0 1.2.11 1.0.2l 57 - - +v8.1.0 2017-06-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.8.283.41 1.12.0 1.2.11 1.0.2l 57 - - +v8.0.0 2017-05-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2k 57 - - +v7.10.1 2017-07-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.5.372.43 1.11.0 1.2.11 1.0.2k 51 - true +v7.10.0 2017-05-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.5.372.43 1.11.0 1.2.11 1.0.2k 51 - - +v7.9.0 2017-04-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.5.372.43 1.11.0 1.2.11 1.0.2k 51 - - +v7.8.0 2017-03-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.5.372.43 1.11.0 1.2.11 1.0.2k 51 - - +v7.7.4 2017-03-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.42 1.11.0 1.2.11 1.0.2k 51 - - +v7.7.3 2017-03-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - - +v7.7.2 2017-03-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - - +v7.7.1 2017-03-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - - +v7.7.0 2017-02-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - - +v7.6.0 2017-02-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.11 1.0.2k 51 - - +v7.5.0 2017-01-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.4.500.48 1.10.2 1.2.8 1.0.2k 51 - - +v7.4.0 2017-01-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v7.3.0 2016-12-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v7.2.1 2016-12-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v7.2.0 2016-11-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - - +v7.1.0 2016-11-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v7.0.0 2016-10-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.9.1 1.2.8 1.0.2j 51 - - +v6.17.1 2019-04-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2r 48 Boron - +v6.17.0 2019-02-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2r 48 Boron true +v6.16.0 2018-12-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2q 48 Boron - +v6.15.1 2018-12-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2q 48 Boron - +v6.15.0 2018-11-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2q 48 Boron true +v6.14.4 2018-08-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2p 48 Boron true +v6.14.3 2018-06-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2o 48 Boron - +v6.14.2 2018-04-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2o 48 Boron - +v6.14.1 2018-03-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2o 48 Boron - +v6.14.0 2018-03-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2o 48 Boron true +v6.13.1 2018-03-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2n 48 Boron - +v6.13.0 2018-02-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2n 48 Boron - +v6.12.3 2018-01-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.15.0 1.2.11 1.0.2n 48 Boron - +v6.12.2 2017-12-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.109 1.15.0 1.2.11 1.0.2n 48 Boron true +v6.12.1 2017-12-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.109 1.15.0 1.2.11 1.0.2m 48 Boron - +v6.12.0 2017-11-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.108 1.15.0 1.2.11 1.0.2m 48 Boron - +v6.11.5 2017-10-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.108 1.11.0 1.2.11 1.0.2l 48 Boron true +v6.11.4 2017-10-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.108 1.11.0 1.2.11 1.0.2l 48 Boron - +v6.11.3 2017-09-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.107 1.11.0 1.2.11 1.0.2l 48 Boron - +v6.11.2 2017-08-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.103 1.11.0 1.2.11 1.0.2l 48 Boron - +v6.11.1 2017-07-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.103 1.11.0 1.2.11 1.0.2k 48 Boron true +v6.11.0 2017-06-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.102 1.11.0 1.2.11 1.0.2k 48 Boron - +v6.10.3 2017-05-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.101 1.9.1 1.2.11 1.0.2k 48 Boron - +v6.10.2 2017-04-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.98 1.9.1 1.2.11 1.0.2k 48 Boron - +v6.10.1 2017-03-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.95 1.9.1 1.2.8 1.0.2k 48 Boron - +v6.10.0 2017-02-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.93 1.9.1 1.2.8 1.0.2k 48 Boron - +v6.9.5 2017-01-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2k 48 Boron - +v6.9.4 2017-01-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2j 48 Boron - +v6.9.3 2017-01-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2j 48 Boron - +v6.9.2 2016-12-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.1.281.88 1.9.1 1.2.8 1.0.2j 48 Boron - +v6.9.1 2016-10-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 Boron - +v6.9.0 2016-10-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 Boron - +v6.8.1 2016-10-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 - - +v6.8.0 2016-10-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 - - +v6.7.0 2016-09-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - true +v6.6.0 2016-09-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.0 2016-08-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.4.0 2016-08-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.1 2016-07-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.0 2016-07-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v6.2.2 2016-06-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v6.2.1 2016-06-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v6.2.0 2016-05-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - - +v6.1.0 2016-05-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - - +v6.0.0 2016-04-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - - +v5.12.0 2016-06-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.32 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.1 2016-05-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.0 2016-04-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.10.1 2016-04-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.10.0 2016-04-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.9.1 2016-03-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.7.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.9.0 2016-03-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.7.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.8.0 2016-03-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.7.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.7.1 2016-03-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.7.0 2016-02-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - - +v5.6.0 2016-02-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - - +v5.5.0 2016-01-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.4.1 2016-01-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.4.0 2016-01-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.3.0 2015-12-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.2.0 2015-12-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 - - +v5.1.1 2015-12-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 - - +v5.1.0 2015-11-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2d 47 - - +v5.0.0 2015-10-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.6 4.6.85.28 1.7.5 1.2.8 1.0.2d 47 - - +v4.9.1 2018-03-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.53 1.9.1 1.2.11 1.0.2o 46 Argon - +v4.9.0 2018-03-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.53 1.9.1 1.2.11 1.0.2o 46 Argon true +v4.8.7 2017-12-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.53 1.9.1 1.2.11 1.0.2n 46 Argon true +v4.8.6 2017-11-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.53 1.9.1 1.2.11 1.0.2m 46 Argon - +v4.8.5 2017-10-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.47 1.9.1 1.2.11 1.0.2k 46 Argon true +v4.8.4 2017-07-11 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.47 1.9.1 1.2.11 1.0.2k 46 Argon true +v4.8.3 2017-05-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.47 1.9.1 1.2.11 1.0.2k 46 Argon - +v4.8.2 2017-04-04 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.46 1.9.1 1.2.11 1.0.2k 46 Argon - +v4.8.1 2017-03-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.46 1.9.1 1.2.8 1.0.2k 46 Argon - +v4.8.0 2017-02-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.45 1.9.1 1.2.8 1.0.2k 46 Argon - +v4.7.3 2017-01-31 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.43 1.9.1 1.2.8 1.0.2k 46 Argon - +v4.7.2 2017-01-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.43 1.9.1 1.2.8 1.0.2j 46 Argon - +v4.7.1 2017-01-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.43 1.9.1 1.2.8 1.0.2j 46 Argon - +v4.7.0 2016-12-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.43 1.9.1 1.2.8 1.0.2j 46 Argon - +v4.6.2 2016-11-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.42 1.9.1 1.2.8 1.0.2j 46 Argon - +v4.6.1 2016-10-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.9 4.5.103.37 1.9.1 1.2.8 1.0.2j 46 Argon true +v4.6.0 2016-09-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.9 4.5.103.37 1.9.1 1.2.8 1.0.2j 46 Argon true +v4.5.0 2016-08-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.9 4.5.103.37 1.9.1 1.2.8 1.0.2h 46 Argon - +v4.4.7 2016-06-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.8 4.5.103.36 1.8.0 1.2.8 1.0.2h 46 Argon - +v4.4.6 2016-06-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.5 4.5.103.36 1.8.0 1.2.8 1.0.2h 46 Argon - +v4.4.5 2016-05-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.5 4.5.103.35 1.8.0 1.2.8 1.0.2h 46 Argon - +v4.4.4 2016-05-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.1 4.5.103.35 1.8.0 1.2.8 1.0.2h 46 Argon - +v4.4.3 2016-04-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.1 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon - +v4.4.2 2016-04-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.0 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon - +v4.4.1 2016-03-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.20 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon - +v4.4.0 2016-03-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.20 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon - +v4.3.2 2016-03-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon - +v4.3.1 2016-02-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2f 46 Argon - +v4.3.0 2016-02-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2f 46 Argon - +v4.2.6 2016-01-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2e 46 Argon - +v4.2.5 2016-01-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2e 46 Argon - +v4.2.4 2015-12-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.12 4.5.103.35 1.7.5 1.2.8 1.0.2e 46 Argon - +v4.2.3 2015-12-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2e 46 Argon - +v4.2.2 2015-11-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 Argon - +v4.2.1 2015-10-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 Argon - +v4.2.0 2015-10-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 Argon - +v4.1.2 2015-10-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.4 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 - - +v4.1.1 2015-09-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.4 4.5.103.33 1.7.4 1.2.8 1.0.2d 46 - - +v4.1.0 2015-09-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.3 4.5.103.33 1.7.4 1.2.8 1.0.2d 46 - - +v4.0.0 2015-09-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.2 4.5.103.30 1.7.3 1.2.8 1.0.2d 46 - - +v0.12.18 2017-02-22 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.11 3.28.71.20 1.6.1 1.2.8 1.0.1u 14 - - +v0.12.17 2016-10-18 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.28.71.19 1.6.1 1.2.8 1.0.1u 14 - true +v0.12.16 2016-09-27 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.28.71.19 1.6.1 1.2.8 1.0.1u 14 - true +v0.12.15 2016-06-23 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.28.71.19 1.6.1 1.2.8 1.0.1t 14 - true +v0.12.14 2016-05-06 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.28.71.19 1.6.1 1.2.8 1.0.1t 14 - - +v0.12.13 2016-03-31 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.0 3.28.71.19 1.6.1 1.2.8 1.0.1s 14 - - +v0.12.12 2016-03-08 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.14.9 3.28.71.19 1.6.1 1.2.8 1.0.1s 14 - - +v0.12.11 2016-03-03 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.14.9 3.28.71.19 1.6.1 1.2.8 1.0.1s 14 - - +v0.12.10 2016-02-09 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.14.9 3.28.71.19 1.6.1 1.2.8 1.0.1r 14 - - +v0.12.9 2015-12-03 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.14.9 3.28.71.19 1.6.1 1.2.8 1.0.1q 14 - - +v0.12.8 2015-11-24 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.14.9 3.28.71.19 1.6.1 1.2.8 1.0.1p 14 - - +v0.12.7 2015-07-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.11.3 3.28.71.19 1.6.1 1.2.8 1.0.1p 14 - - +v0.12.6 2015-07-04 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.11.2 3.28.71.19 1.6.1 1.2.8 1.0.1o 14 - - +v0.12.5 2015-06-22 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.11.2 3.28.71.19 1.6.1 1.2.8 1.0.1o 14 - - +v0.12.4 2015-05-23 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.10.1 3.28.71.19 1.5.0 1.2.8 1.0.1m 14 - - +v0.12.3 2015-05-14 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.9.1 3.28.71.19 1.5.0 1.2.8 1.0.1m 14 - - +v0.12.2 2015-03-31 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.7.4 3.28.73.0 1.4.2 1.2.8 1.0.1m 14 - - +v0.12.1 2015-03-24 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.5.1 3.28.73.0 1.0.2 1.2.8 1.0.1m 14 - - +v0.12.0 2015-02-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.5.1 3.28.73.0 1.0.2 1.2.8 1.0.1l 14 - - +v0.11.16 2015-01-30 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.3.0 3.28.73.0 1.0.2 1.2.8 1.0.1l 14 - - +v0.11.15 2015-01-20 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.1.6 3.28.73.0 1.0.2 1.2.8 1.0.1j 14 - - +v0.11.14 2014-08-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.0.0 3.26.33.0 1.0.0 1.2.3 1.0.1i 14 - - +v0.11.13 2014-05-02 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.9 3.25.30.0 0.11.25 1.2.3 1.0.1g 14 - - +v0.11.12 2014-03-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.3 3.22.24.19 0.11.22 1.2.3 1.0.1f 14 - - +v0.11.11 2014-01-29 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.25 3.22.24.19 0.11.18 1.2.3 1.0.1f 14 - - +v0.11.10 2013-12-31 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.22 3.22.24.10 0.11.17 1.2.3 1.0.1e 13 - - +v0.11.9 2013-11-21 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.15 3.22.24.5 0.11.15 1.2.3 1.0.1e 13 - - +v0.11.8 2013-10-30 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.13 3.21.18.3 0.11.14 1.2.3 1.0.1e 13 - - +v0.11.7 2013-09-04 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.8 3.20.17.0 0.11.13 1.2.3 1.0.1e 0x000C - - +v0.11.6 2013-08-21 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x86-msi 1.3.8 3.20.14.1 0.11.8 1.2.3 1.0.1e 0x000C - - +v0.11.5 2013-08-07 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.6 3.20.11.0 0.11.7 1.2.3 1.0.1e 0x000C - - +v0.11.4 2013-07-12 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x86-msi 1.3.4 3.20.2.0 0.11.5 1.2.3 1.0.1e 0x000C - - +v0.11.3 2013-06-26 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.25 3.19.13.0 0.11.5 1.2.3 1.0.1e 0x000C - - +v0.11.2 2013-05-13 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.21 3.19.0.0 0.11.2 1.2.3 1.0.1e 0x000C - - +v0.11.1 2013-04-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.18 3.18.0.0 0.11.1 1.2.3 1.0.1e 0x000C - - +v0.11.0 2013-03-28 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.15 3.17.13.0 0.10.3 1.2.3 1.0.1e 0x000C - - +v0.10.48 2016-10-18 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.14.5.11 0.10.37 1.2.8 1.0.1u 11 - true +v0.10.47 2016-09-27 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.14.5.11 0.10.37 1.2.8 1.0.1u 11 - true +v0.10.46 2016-06-23 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.14.5.9 0.10.37 1.2.8 1.0.1t 11 - true +v0.10.45 2016-05-06 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.14.5.9 0.10.36 1.2.8 1.0.1t 11 - - +v0.10.44 2016-03-31 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.0 3.14.5.9 0.10.36 1.2.8 1.0.1s 11 - - +v0.10.43 2016-03-03 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.29 3.14.5.9 0.10.36 1.2.8 1.0.1s 11 - - +v0.10.42 2016-02-09 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.29 3.14.5.9 0.10.36 1.2.8 1.0.1r 11 - - +v0.10.41 2015-12-03 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.29 3.14.5.9 0.10.36 1.2.8 1.0.1q 11 - - +v0.10.40 2015-07-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.36 1.2.8 1.0.1p 11 - - +v0.10.39 2015-06-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.36 1.2.8 1.0.1o 11 - - +v0.10.38 2015-03-23 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.36 1.2.8 1.0.1m 11 - - +v0.10.37 2015-03-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.36 1.2.8 1.0.1l 11 - - +v0.10.36 2015-01-26 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.30 1.2.8 1.0.1l 11 - - +v0.10.35 2014-12-22 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.30 1.2.8 1.0.1j 11 - - +v0.10.34 2014-12-17 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.30 1.2.8 1.0.1j 11 - - +v0.10.33 2014-10-21 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.29 1.2.3 1.0.1j 11 - - +v0.10.32 2014-09-16 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.28 1.2.3 1.0.1i 11 - - +v0.10.31 2014-08-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.23 3.14.5.9 0.10.28 1.2.3 1.0.1i 11 - - +v0.10.30 2014-07-31 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.21 3.14.5.9 0.10.28 1.2.3 1.0.1h 11 - - +v0.10.29 2014-06-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.14 3.14.5.9 0.10.27 1.2.3 1.0.1h 11 - - +v0.10.28 2014-05-02 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.9 3.14.5.9 0.10.27 1.2.3 1.0.1g 11 - - +v0.10.27 2014-05-01 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.8 3.14.5.9 0.10.27 1.2.3 1.0.1g 11 - - +v0.10.26 2014-02-18 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.3 3.14.5.9 0.10.25 1.2.3 1.0.1e 11 - - +v0.10.25 2014-01-23 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.24 3.14.5.9 0.10.23 1.2.3 1.0.1e 11 - - +v0.10.24 2013-12-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.21 3.14.5.9 0.10.21 1.2.3 1.0.1e 11 - - +v0.10.23 2013-12-12 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.17 3.14.5.9 0.10.20 1.2.3 1.0.1e 11 - - +v0.10.22 2013-11-12 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.14 3.14.5.9 0.10.19 1.2.3 1.0.1e 11 - - +v0.10.21 2013-10-18 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.11 3.14.5.9 0.10.18 1.2.3 1.0.1e 11 - - +v0.10.20 2013-09-30 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.11 3.14.5.9 0.10.17 1.2.3 1.0.1e 11 - - +v0.10.19 2013-09-24 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.11 3.14.5.9 0.10.17 1.2.3 1.0.1e 11 - - +v0.10.18 2013-09-04 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.8 3.14.5.9 0.10.15 1.2.3 1.0.1e 11 - - +v0.10.17 2013-08-21 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.8 3.14.5.9 0.10.14 1.2.3 1.0.1e 11 - - +v0.10.16 2013-08-16 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.8 3.14.5.9 0.10.13 1.2.3 1.0.1e 11 - - +v0.10.15 2013-07-25 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.5 3.14.5.9 0.10.13 1.2.3 1.0.1e 11 - - +v0.10.14 2013-07-25 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.5 3.14.5.9 0.10.13 1.2.3 1.0.1e 11 - - +v0.10.13 2013-07-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.2 3.14.5.9 0.10.12 1.2.3 1.0.1e 11 - - +v0.10.12 2013-06-18 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.32 3.14.5.9 0.10.11 1.2.3 1.0.1e 11 - - +v0.10.11 2013-06-13 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.30 3.14.5.9 0.10.11 1.2.3 1.0.1e 11 - - +v0.10.10 2013-06-04 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.25 3.14.5.9 0.10.10 1.2.3 1.0.1e 11 - - +v0.10.9 2013-05-30 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.24 3.14.5.9 0.10.9 1.2.3 1.0.1e 11 - - +v0.10.8 2013-05-24 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.23 3.14.5.9 0.10.8 1.2.3 1.0.1e 11 - - +v0.10.7 2013-05-17 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.21 3.14.5.8 0.10.7 1.2.3 1.0.1e 11 - - +v0.10.6 2013-05-14 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.18 3.14.5.8 0.10.5 1.2.3 1.0.1e 11 - - +v0.10.5 2013-04-23 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.18 3.14.5.8 0.10.5 1.2.3 1.0.1e 11 - - +v0.10.4 2013-04-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.18 3.14.5.8 0.10.4 1.2.3 1.0.1e 11 - - +v0.10.3 2013-04-03 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.17 3.14.5.8 0.10.3 1.2.3 1.0.1e 0x000B - - +v0.10.2 2013-03-28 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.15 3.14.5.8 0.10.3 1.2.3 1.0.1e 0x000B - - +v0.10.1 2013-03-21 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.15 3.14.5.8 0.10 1.2.3 1.0.1e 0x000B - - +v0.10.0 2013-03-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.14 3.14.5.8 0.9 1.2.3 1.0.1e 0x000B - - +v0.9.12 2013-03-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.12 3.14.5.8 0.9 1.2.3 1.0.1e 0x000B - - +v0.9.11 2013-03-01 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.12 3.14.5.0 0.9 1.2.3 1.0.1e 0x000B - - +v0.9.10 2013-02-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.12 3.15.11.15 0.9 1.2.3 1.0.1c 0x000B - - +v0.9.9 2013-02-07 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.10 3.15.11.10 0.9 1.2.3 1.0.1c 0x000B - - +v0.9.8 2013-01-24 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.3 3.15.11.10 0.9 1.2.3 1.0.1c 0x000A - - +v0.9.7 2013-01-18 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.2 3.15.11.7 0.9 1.2.3 1.0.1c 0x000A - - +v0.9.6 2013-01-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.0 3.15.11.5 0.9 1.2.3 1.0.1c 0x000A - - +v0.9.5 2012-12-30 linux-x64,linux-x86,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.70 3.13.7.4 0.9 1.2.3 1.0.1c 0x000A - - +v0.9.4 2012-12-21 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.70 3.13.7.4 0.9 1.2.3 1.0.1c 0x000A - - +v0.9.3 2012-10-24 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.64 3.13.7.4 0.9 1.2.3 1.0.1c 0x000A - - +v0.9.2 2012-09-17 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.61 3.11.10.22 0.9 1.2.3 1.0.1c 0x000A - - +v0.9.1 2012-08-28 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.59 3.11.10.19 0.9 1.2.3 1.0.0f 0x000A - - +v0.9.0 2012-07-20 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.44 3.11.10.15 0.9 1.2.3 1.0.0f 1 - - +v0.8.28 2014-07-31 linux-x64,linux-x86,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.30 3.11.10.26 0.8 1.2.3 1.0.0f 1 - - +v0.8.27 2014-06-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x86-msi 1.2.30 3.11.10.26 0.8 1.2.3 1.0.0f 1 - - +v0.8.26 2013-10-18 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.30 3.11.10.26 0.8 1.2.3 1.0.0f 1 - - +v0.8.25 2013-06-13 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.30 3.11.10.25 0.8 1.2.3 1.0.0f 1 - - +v0.8.24 2013-06-03 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.24 3.11.10.25 0.8 1.2.3 1.0.0f 1 - - +v0.8.23 2013-04-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.18 3.11.10.25 0.8 1.2.3 1.0.0f 1 - - +v0.8.22 2013-03-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.14 3.11.10.25 0.8 1.2.3 1.0.0f 1 - - +v0.8.21 2013-02-25 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.11 3.11.10.25 0.8 1.2.3 1.0.0f 1 - - +v0.8.20 2013-02-15 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.11 3.11.10.25 0.8 1.2.3 1.0.0f 1 - - +v0.8.19 2013-02-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.10 3.11.10.25 0.8 1.2.3 1.0.0f 1 - - +v0.8.18 2013-01-18 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.2 3.11.10.25 0.8 1.2.3 1.0.0f 1 - - +v0.8.17 2013-01-10 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.0 3.11.10.25 0.8 1.2.3 1.0.0f 1 - - +v0.8.16 2012-12-12 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.69 3.11.10.25 0.8 1.2.3 1.0.0f 1 - - +v0.8.15 2012-11-26 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.66 3.11.10.25 0.8 1.2.3 1.0.0f 1 - - +v0.8.14 2012-10-25 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.65 3.11.10.25 0.8 1.2.3 1.0.0f 1 - - +v0.8.13 2012-10-25 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.65 3.11.10.25 0.8 1.2.3 1.0.0f 1 - - +v0.8.12 2012-10-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.63 3.11.10.22 0.8 1.2.3 1.0.0f 1 - - +v0.8.11 2012-09-27 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.62 3.11.10.22 0.8 1.2.3 1.0.0f 1 - - +v0.8.10 2012-09-25 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.62 3.11.10.22 0.8 1.2.3 1.0.0f 1 - - +v0.8.9 2012-09-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.61 3.11.10.22 0.8 1.2.3 1.0.0f 1 - - +v0.8.8 2012-08-22 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 1.1.59 3.11.10.19 0.8 1.2.3 1.0.0f 1 - - +v0.8.7 2012-08-15 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.49 3.11.10.17 0.8 1.2.3 1.0.0f 1 - - +v0.8.6 2012-08-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.48 3.11.10.17 0.8 1.2.3 1.0.0f 1 - - +v0.8.5 2012-08-02 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.46 3.11.10.17 0.8 1.2.3 1.0.0f 1 - - +v0.8.4 2012-07-24 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.45 3.11.10.17 0.8 1.2.3 1.0.0f 1 - - +v0.8.3 2012-07-17 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.43 3.11.10.15 0.8 1.2.3 1.0.0f 1 - - +v0.8.2 2012-07-09 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.36 3.11.10.14 0.8 1.2.3 1.0.0f 1 - - +v0.8.1 2012-06-29 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.33 3.11.10.12 0.8 1.2.3 1.0.0f 1 - - +v0.8.0 2012-06-22 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.32 3.11.10.10 0.8 1.2.3 1.0.0f 1 - - +v0.7.12 2012-06-19 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.30 3.11.10.0 0.6 1.2.3 1.0.0f 1 - - +v0.7.11 2012-06-15 osx-x64-pkg,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 1.1.26 3.11.10.0 0.6 1.2.3 1.0.0f 1 - - +v0.7.10 2012-06-11 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.25 3.9.24.31 0.6 1.2.3 1.0.0f 1 - - +v0.7.9 2012-05-29 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.23 3.11.1.0 0.6 1.2.3 1.0.0f 1 - - +v0.7.8 2012-04-18 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.18 3.9.24.9 0.6 1.2.3 1.0.0f 1 - - +v0.7.7 2012-03-30 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.15 3.9.24.7 0.6 1.2.3 0.9.8r 1 - - +v0.7.6 2012-03-13 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.8 3.9.17.0 0.6 1.2.3 0.9.8r 1 - - +v0.7.5 2012-02-23 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.1 3.9.5.0 0.6 1.2.3 0.9.8r 1 - - +v0.7.4 2012-02-14 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.1 3.9.5.0 0.6 1.2.3 0.9.8r 1 - - +v0.7.3 2012-02-07 osx-x64-pkg,src,win-x86-exe 1.1.0-3 3.9.2.0 0.6 1.2.3 0.9.8r 1 - - +v0.7.2 2012-02-01 osx-x64-pkg,src,win-x86-exe 1.1.0-3 3.8.9.0 0.6 1.2.3 0.9.8r 1 - - +v0.7.1 2012-01-23 osx-x64-pkg,src,win-x86-exe 1.1.0-2 3.8.8.0 0.6 1.2.3 0.9.8r 1 - - +v0.7.0 2012-01-17 osx-x64-pkg,src,win-x86-exe 1.1.0-2 3.8.6.0 0.6 1.2.3 0.9.8r 1 - - +v0.6.21 2012-08-03 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.37 3.6.6.25 0.6 1.2.3 0.9.8r 1 - - +v0.6.20 2012-07-10 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.37 3.6.6.25 0.6 1.2.3 0.9.8r 1 - - +v0.6.19 2012-06-06 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.24 3.6.6.25 0.6 1.2.3 0.9.8r 1 - - +v0.6.18 2012-05-14 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.21 3.6.6.25 0.6 1.2.3 0.9.8r 1 - - +v0.6.17 2012-05-04 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.21 3.6.6.25 0.6 1.2.3 0.9.8r 1 - - +v0.6.16 2012-04-27 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.19 3.6.6.25 0.6 1.2.3 0.9.8r 1 - - +v0.6.15 2012-04-08 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.16 3.6.6.24 0.6 1.2.3 0.9.8r 1 - - +v0.6.14 2012-03-23 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.12 3.6.6.24 0.6 1.2.3 0.9.8r 1 - - +v0.6.13 2012-03-15 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.9 3.6.6.24 0.6 1.2.3 0.9.8r 1 - - +v0.6.12 2012-03-02 osx-x64-pkg,src,win-x86-exe 1.1.4 3.6.6.24 0.6 1.2.3 0.9.8r 1 - - +v0.6.11 2012-02-08 osx-x64-pkg,src,win-x86-exe 1.1.1 3.6.6.20 0.6 1.2.3 0.9.8r 1 - - +v0.6.10 2012-02-03 osx-x64-pkg,src,win-x86-exe 1.1.0-3 3.6.6.20 0.6 1.2.3 0.9.8r 1 - - +v0.6.9 2012-01-27 osx-x64-pkg,src,win-x86-exe 1.1.0-3 3.6.6.19 0.6 1.2.3 0.9.8r 1 - - +v0.6.8 2012-01-20 osx-x64-pkg,src,win-x86-exe 1.1.0-2 3.6.6.19 0.6 1.2.3 0.9.8r 1 - - +v0.6.7 2012-01-07 osx-x64-pkg,src,win-x86-exe 1.1.0-beta-10 3.6.6.15 0.6 1.2.3 0.9.8r 1 - - +v0.6.6 2011-12-15 osx-x64-pkg,src,win-x86-exe 1.1.0-beta-4 3.6.6.14 0.6 1.2.3 0.9.8r 1 - - +v0.6.5 2011-12-04 osx-x64-pkg,src,win-x86-exe 1.1.0-alpha-6 3.6.6.11 0.6 1.2.3 0.9.8r 1 - - +v0.6.4 2011-12-02 osx-x64-pkg,src,win-x86-exe 1.1.0-alpha-6 3.6.6.8 0.6 1.2.3 0.9.8r 1 - - +v0.6.3 2011-11-25 osx-x64-pkg,src,win-x86-exe 1.1.0-alpha-2 3.6.6.8 0.6 1.2.3 0.9.8r 1 - - +v0.6.2 2011-11-18 osx-x64-pkg,src,win-x86-exe - 3.6.6.8 0.6 1.2.3 0.9.8r 1 - - +v0.6.1 2011-11-11 osx-x64-pkg,src,win-x86-exe - 3.6.6.7 0.1 1.2.3 0.9.8r 1 - - +v0.6.0 2011-11-04 src,win-x86-exe - 3.6.6.6 0.1 1.2.3 0.9.8r 1 - - +v0.5.10 2011-10-22 src,win-x86-exe - 3.7.0.0 0.1 1.2.3 0.9.8r 1 - - +v0.5.9 2011-10-11 src,win-x86-exe - 3.6.4.0 0.1 1.2.3 0.9.8r 1 - - +v0.5.8 2011-09-30 src,win-x86-exe - 3.6.4.0 0.1 1.2.3 0.9.8r 1 - - +v0.5.7 2011-09-16 src,win-x86-exe - 3.6.4.0 0.1 - 0.9.8r 1 - - +v0.5.6 2011-08-26 src,win-x86-exe - 3.6.2.0 0.1 - 0.9.8r 1 - - +v0.5.5 2011-08-26 src,win-x86-exe - 3.5.8.0 0.1 - 0.9.8r 1 - - +v0.5.4 2011-08-26 src,win-x86-exe - 3.5.4.3 0.1 - - 1 - - +v0.5.3 2011-08-26 src,win-x86-exe - 3.4.14.0 0.1 - - 1 - - +v0.5.2 2011-08-26 src,win-x86-exe - 3.4.14.0 0.1 - - 1 - - +v0.5.1 2011-08-26 src,win-x86-exe - 3.4.10.0 0.1 - - 1 - - +v0.5.0 2011-08-26 src - 3.1.8.25 - - - 1 - - +v0.4.12 2011-09-15 src - 3.1.8.26 - - - 1 - - +v0.4.11 2011-08-26 src - 3.1.8.26 - - - 1 - - +v0.4.10 2011-08-26 src - 3.1.8.26 - - - 1 - - +v0.4.9 2011-08-26 src - 3.1.8.25 - - - 1 - - +v0.4.8 2011-08-26 src - 3.1.8.16 - - - 1 - - +v0.4.7 2011-08-26 src - 3.1.8.10 - - - 1 - - +v0.4.6 2011-08-26 src - 3.1.8.10 - - - 1 - - +v0.4.5 2011-08-26 src - 3.1.8.8 - - - 1 - - +v0.4.4 2011-08-26 src - 3.1.8.5 - - - 1 - - +v0.4.3 2011-08-26 src - 3.1.8.3 - - - 1 - - +v0.4.2 2011-08-26 src - 3.1.8.0 - - - 1 - - +v0.4.1 2011-08-26 src - 3.1.5.0 - - - 1 - - +v0.4.0 2011-08-26 src - 3.1.2.0 - - - 1 - - +v0.3.8 2011-08-26 src - 3.1.1.0 - - - 1 - - +v0.3.7 2011-08-26 src - 3.0.10.0 - - - 1 - - +v0.3.6 2011-08-26 src - 3.0.9.0 - - - 1 - - +v0.3.5 2011-08-26 src - 3.0.4.1 - - - 1 - - +v0.3.4 2011-08-26 src - 3.0.4.1 - - - 1 - - +v0.3.3 2011-08-26 src - 3.0.4.1 - - - 1 - - +v0.3.2 2011-08-26 src - 3.0.3.0 - - - 1 - - +v0.3.1 2011-08-26 src - 2.5.3.0 - - - 1 - - +v0.3.0 2011-08-26 src - 2.5.1.0 - - - 1 - - +v0.2.6 2011-08-26 src - 2.3.8.0 - - - 1 - - +v0.2.5 2011-08-26 src - 2.3.8.0 - - - 1 - - +v0.2.4 2011-08-26 src - 2.3.8.0 - - - 1 - - +v0.2.3 2011-08-26 src - 2.3.8.0 - - - 1 - - +v0.2.2 2011-08-26 src - 2.3.8.0 - - - 1 - - +v0.2.1 2011-08-26 src - 2.3.8.0 - - - 1 - - +v0.2.0 2011-08-26 src - 2.3.8.0 - - - 1 - - +v0.1.104 2011-08-26 src - 2.3.6.1 - - - - - - +v0.1.103 2011-08-26 src - 2.3.5.0 - - - - - - +v0.1.102 2011-08-26 src - 2.3.2.0 - - - - - - +v0.1.101 2011-08-26 src - 2.3.0.0 - - - - - - +v0.1.100 2011-08-26 src - 2.2.21.0 - - - - - - +v0.1.99 2011-08-26 src - 2.2.18.0 - - - - - - +v0.1.98 2011-08-26 src - 2.2.16.0 - - - - - - +v0.1.97 2011-08-26 src - 2.2.12.0 - - - - - - +v0.1.96 2011-08-26 src - 2.2.0 - - - - - - +v0.1.95 2011-08-26 src - 2.2.0 - - - - - - +v0.1.94 2011-08-26 src - 2.2.8.0 - - - - - - +v0.1.93 2011-08-26 src - 2.2.6.0 - - - - - - +v0.1.92 2011-08-26 src - 2.2.4.2 - - - - - - +v0.1.91 2011-08-26 src - 2.2.3.1 - - - - - - +v0.1.90 2011-08-26 src - 2.2.0.3 - - - - - - +v0.1.33 2011-08-26 src - 2.1.6.0 - - - - - - +v0.1.32 2011-08-26 src - 2.1.3.0 - - - - - - +v0.1.31 2011-08-26 src - 2.1.2.0 - - - - - - +v0.1.30 2011-08-26 src - 2.1.1.1 - - - - - - +v0.1.29 2011-08-26 src - 2.1.0.0 - - - - - - +v0.1.28 2011-08-26 src - 2.1.0.0 - - - - - - +v0.1.27 2011-08-26 src - 2.1.0.0 - - - - - - +v0.1.26 2011-08-26 src - 2.0.6.1 - - - - - - +v0.1.25 2011-08-26 src - 2.0.5.4 - - - - - - +v0.1.24 2011-08-26 src - 2.0.5.4 - - - - - - +v0.1.23 2011-08-26 src - 2.0.0 - - - - - - +v0.1.22 2011-08-26 src - 2.0.0 - - - - - - +v0.1.21 2011-08-26 src - 2.0.0 - - - - - - +v0.1.20 2011-08-26 src - 2.0.2.0 - - - - - - +v0.1.19 2011-08-26 src - 2.0.2.0 - - - - - - +v0.1.18 2011-08-26 src - 1.3.18.0 - - - - - - +v0.1.17 2011-08-26 src - 1.3.18.0 - - - - - - +v0.1.16 2011-08-26 src - 1.3.18.0 - - - - - - +v0.1.15 2011-08-26 src - 1.3.16.0 - - - - - - +v0.1.14 2011-08-26 src - 1.3.15.0 - - - - - - diff --git a/test/fast/Unit tests/mocks/nodejs.org-download-nightly-index.tab b/test/fast/Unit tests/mocks/nodejs.org-download-nightly-index.tab index f0571b4..f30b2bb 100644 --- a/test/fast/Unit tests/mocks/nodejs.org-download-nightly-index.tab +++ b/test/fast/Unit tests/mocks/nodejs.org-download-nightly-index.tab @@ -1,1084 +1,1908 @@ -version date files npm v8 uv zlib openssl modules lts -v11.0.0-nightly201805249a02de7084 2018-05-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - -v11.0.0-nightly201805235823938d15 2018-05-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - -v11.0.0-nightly201805224f0ab76b6c 2018-05-22 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - -v11.0.0-nightly201805217f0f978aff 2018-05-21 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - -v11.0.0-nightly20180520df511c6195 2018-05-20 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - -v11.0.0-nightly20180519064057b7ad 2018-05-19 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - -v11.0.0-nightly201805180419adc771 2018-05-18 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.31 1.20.3 1.2.11 1.1.0h 64 - -v11.0.0-nightly201805170d9500daed 2018-05-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.31 1.20.3 1.2.11 1.1.0h 64 - -v11.0.0-nightly201805162b8cd93246 2018-05-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.31 1.20.3 1.2.11 1.1.0h 64 - -v11.0.0-nightly20180515810af50ba2 2018-05-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.3 1.2.11 1.1.0h 64 - -v11.0.0-nightly20180514ffb503be5f 2018-05-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.3 1.2.11 1.1.0h 64 - -v11.0.0-nightly20180513c0359f0988 2018-05-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.3 1.2.11 1.1.0h 64 - -v11.0.0-nightly2018051220509ebee6 2018-05-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.3 1.2.11 1.1.0h 64 - -v11.0.0-nightly20180511f145a53a78 2018-05-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.3 1.2.11 1.1.0h 64 - -v11.0.0-nightly20180510b267d2aae6 2018-05-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.3 1.2.11 1.1.0h 64 - -v11.0.0-nightly20180509d5b259e22b 2018-05-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.2 1.2.11 1.1.0h 64 - -v11.0.0-nightly20180508dd03709148 2018-05-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.2 1.2.11 1.1.0h 64 - -v11.0.0-nightly201805075efbe4c1e8 2018-05-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.2 1.2.11 1.1.0h 64 - -v11.0.0-nightly2018050634bd9f318a 2018-05-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.2 1.2.11 1.1.0h 64 - -v11.0.0-nightly201805051cf7ef6433 2018-05-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.2 1.2.11 1.1.0h 64 - -v11.0.0-nightly20180504cd8ed1c447 2018-05-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - -v11.0.0-nightly20180503c493b98b0b 2018-05-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - -v11.0.0-nightly20180502392d80a617 2018-05-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - -v11.0.0-nightly20180501d3abb60b05 2018-05-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - -v11.0.0-nightly20180430283a967e35 2018-04-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - -v11.0.0-nightly20180429b55a11d1b1 2018-04-29 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - -v11.0.0-nightly2018042865d97c96aa 2018-04-28 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - -v11.0.0-nightly20180427e10cb7fdda 2018-04-27 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - -v11.0.0-nightly20180426d4726d2f3f 2018-04-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - -v11.0.0-nightly2018042595197ed2b0 2018-04-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - -v10.2.1-nightly20180524be71c5dea9 2018-05-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - -v10.1.1-nightly20180523235a272838 2018-05-23 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - -v10.1.1-nightly20180515981a2f7b16 2018-05-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.3 1.2.11 1.1.0h 64 - -v10.1.1-nightly20180513b6ea5df08a 2018-05-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.3 1.2.11 1.1.0h 64 - -v10.1.1-nightly20180509f55fdd1e5e 2018-05-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.2 1.2.11 1.1.0h 64 - -v10.0.1-nightly20180505ff148b987d 2018-05-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.2 1.2.11 1.1.0h 64 - -v10.0.1-nightly201804254289402aa3 2018-04-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - -v10.0.0-nightly20180424982adb5994 2018-04-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - -v10.0.0-nightly201804231c66a10a0c 2018-04-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - -v10.0.0-nightly20180422e5f53206dd 2018-04-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.0 1.2.11 1.1.0h 64 - -v10.0.0-nightly201804212a88f02f2f 2018-04-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.0 1.2.11 1.1.0h 64 - -v10.0.0-nightly201804201b438a7737 2018-04-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.0 1.2.11 1.1.0h 64 - -v10.0.0-nightly20180419bbdb4af0bd 2018-04-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.0 1.2.11 1.1.0h 64 - -v10.0.0-nightly2018041872549aa9cd 2018-04-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.0 1.2.11 1.1.0h 64 - -v10.0.0-nightly201804175eb9f3c91c 2018-04-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.0 1.2.11 1.1.0h 63 - -v10.0.0-nightly20180416978e1524bb 2018-04-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.23 1.20.0 1.2.11 1.1.0h 63 - -v10.0.0-nightly20180415b003c86bf4 2018-04-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.23 1.20.0 1.2.11 1.1.0h 63 - -v10.0.0-nightly2018041491e0f8db11 2018-04-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.23 1.20.0 1.2.11 1.1.0h 63 - -v10.0.0-nightly201804132a6ab9b37b 2018-04-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.23 1.20.0 1.2.11 1.1.0h 63 - -v10.0.0-nightly201804120aab8ff602 2018-04-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.23 1.20.0 1.2.11 1.1.0h 63 - -v10.0.0-nightly2018041142d8976dff 2018-04-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.20.0 1.2.11 1.1.0h 62 - -v10.0.0-nightly20180410d1156da815 2018-04-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.20.0 1.2.11 1.1.0h 62 - -v10.0.0-nightly20180409244af7a9d5 2018-04-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.20.0 1.2.11 1.0.2o 62 - -v10.0.0-nightly2018040808a36a0666 2018-04-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.20.0 1.2.11 1.0.2o 62 - -v10.0.0-nightly2018040777b52fd58f 2018-04-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.20.0 1.2.11 1.0.2o 62 - -v10.0.0-nightly2018040653aaa55a3a 2018-04-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.20.0 1.2.11 1.0.2o 62 - -v10.0.0-nightly20180405b29c36b807 2018-04-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.20.0 1.2.11 1.0.2o 62 - -v10.0.0-nightly20180404b22a189b43 2018-04-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2o 62 - -v10.0.0-nightly20180403d54f651910 2018-04-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2o 62 - -v10.0.0-nightly20180402a9a1f12b42 2018-04-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2o 62 - -v10.0.0-nightly20180401141be923f3 2018-04-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2o 62 - -v10.0.0-nightly2018033128b622cb08 2018-03-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2o 62 - -v10.0.0-nightly2018033083d44bee01 2018-04-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2o 62 - -v10.0.0-nightly20180329aec019030d 2018-03-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2o 62 - -v10.0.0-nightly20180328bc690e9ef5 2018-03-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2o 62 - -v10.0.0-nightly201803278eca6b8d3d 2018-03-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2n 62 - -v10.0.0-nightly201803269396b77238 2018-03-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.41 1.19.2 1.2.11 1.0.2n 62 - -v10.0.0-nightly201803259125479be9 2018-03-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.41 1.19.2 1.2.11 1.0.2n 62 - -v10.0.0-nightly20180324ca22c96f16 2018-03-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.41 1.19.2 1.2.11 1.0.2n 62 - -v10.0.0-nightly20180323b41ed29b80 2018-03-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.41 1.19.2 1.2.11 1.0.2n 62 - -v10.0.0-nightly20180322e714da6f0a 2018-03-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.41 1.19.2 1.2.11 1.0.2n 62 - -v10.0.0-nightly201803219b7a6914a7 2018-03-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.41 1.19.2 1.2.11 1.0.2n 62 - -v10.0.0-nightly201803206a958d2bf8 2018-03-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.40 1.19.2 1.2.11 1.0.2n 62 - -v10.0.0-nightly201803190fb017d684 2018-03-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.40 1.19.2 1.2.11 1.0.2n 62 - -v10.0.0-nightly20180318d74184c2fa 2018-03-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.38 1.19.2 1.2.11 1.0.2n 62 - -v10.0.0-nightly201803171329844a08 2018-03-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.38 1.19.2 1.2.11 1.0.2n 62 - -v10.0.0-nightly2018031696cb4fb795 2018-03-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.38 1.19.2 1.2.11 1.0.2n 62 - -v10.0.0-nightly201803153c61b87e59 2018-03-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.38 1.19.2 1.2.11 1.0.2n 62 - -v10.0.0-nightly20180314040dd244de 2018-03-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.38 1.19.2 1.2.11 1.0.2n 62 - -v10.0.0-nightly2018031352e869bee8 2018-03-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.31 1.19.2 1.2.11 1.0.2n 62 - -v10.0.0-nightly2018031222b6804259 2018-03-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.31 1.19.2 1.2.11 1.0.2n 62 - -v10.0.0-nightly2018031198a14e026b 2018-03-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.31 1.19.2 1.2.11 1.0.2n 62 - -v10.0.0-nightly2018031097579068b5 2018-03-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.31 1.19.2 1.2.11 1.0.2n 62 - -v10.0.0-nightly20180309099e621648 2018-03-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.31 1.19.2 1.2.11 1.0.2n 62 - -v10.0.0-nightly201803083dfce5cdad 2018-03-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.31 1.19.2 1.2.11 1.0.2n 62 - -v10.0.0-nightly20180307a6c14b2f42 2018-03-07 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.31 1.19.2 1.2.11 1.0.2n 62 - -v10.0.0-nightly2018030678a7536db3 2018-03-06 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - -v10.0.0-nightly20180305b20af8088a 2018-03-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - -v10.0.0-nightly20180304f2d93795bf 2018-03-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - -v10.0.0-nightly201803035a55a71150 2018-03-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - -v10.0.0-nightly201803029e9c516512 2018-03-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - -v10.0.0-nightly20180301740c426b21 2018-03-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - -v10.0.0-nightly201802283f78d3fcf8 2018-02-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - -v10.0.0-nightly20180227a27e6d7321 2018-02-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - -v10.0.0-nightly20180226dbe645f114 2018-02-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - -v10.0.0-nightly20180225da886d9a4c 2018-02-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - -v10.0.0-nightly2018022415e41a9951 2018-02-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - -v10.0.0-nightly20180223a29089d7c8 2018-02-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - -v10.0.0-nightly20180222fecc64d6dc 2018-02-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.1 1.2.11 1.0.2n 61 - -v10.0.0-nightly201802216bdc18c592 2018-02-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.1 1.2.11 1.0.2n 61 - -v10.0.0-nightly201802207514eb3cff 2018-02-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.1 1.2.11 1.0.2n 61 - -v10.0.0-nightly201802175156342105 2018-02-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.1 1.2.11 1.0.2n 61 - -v10.0.0-nightly20180216f25104e136 2018-02-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-exe 5.6.0 6.4.388.44 1.19.1 1.2.11 1.0.2n 61 - -v10.0.0-nightly20180215a16081cbad 2018-02-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.44 1.19.1 1.2.11 1.0.2n 61 - -v10.0.0-nightly2018021492c86fd84d 2018-02-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.44 1.19.1 1.2.11 1.0.2n 61 - -v10.0.0-nightly20180213e782715d0a 2018-02-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.44 1.19.1 1.2.11 1.0.2n 61 - -v10.0.0-nightly201802123d53848d75 2018-02-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.42 1.19.1 1.2.11 1.0.2n 61 - -v10.0.0-nightly201802112aa3e3b00f 2018-02-11 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.42 1.19.1 1.2.11 1.0.2n 61 - -v10.0.0-nightly2018021001d049165c 2018-02-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.42 1.19.1 1.2.11 1.0.2n 61 - -v10.0.0-nightly20180209dbd1d1d43f 2018-02-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.42 1.19.1 1.2.11 1.0.2n 61 - -v10.0.0-nightly20180208d3569b623c 2018-02-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.42 1.19.1 1.2.11 1.0.2n 61 - -v10.0.0-nightly2018020792ba624fa1 2018-02-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.42 1.19.1 1.2.11 1.0.2n 61 - -v10.0.0-nightly20180206ac829f0135 2018-02-06 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.41 1.19.1 1.2.11 1.0.2n 61 - -v10.0.0-nightly20180205d4b605b990 2018-02-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.41 1.19.1 1.2.11 1.0.2n 61 - -v10.0.0-nightly2018020447a984ada0 2018-02-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - -v10.0.0-nightly20180203f8fda0d5ad 2018-02-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - -v10.0.0-nightly2018020289dd21a8ad 2018-02-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - -v10.0.0-nightly20180201ad94be84f9 2018-02-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - -v10.0.0-nightly2018013126ce1ae647 2018-01-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - -v10.0.0-nightly20180130e56189ed58 2018-01-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - -v10.0.0-nightly201801295c8ce90c2f 2018-01-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - -v10.0.0-nightly201801294a498335f5 2018-01-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - -v10.0.0-nightly20180127f29c2cbec5 2018-01-27 osx-x64-pkg 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - -v10.0.0-nightly20180126fa33f026cc 2018-01-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - -v10.0.0-nightly20180125c016cc2b17 2018-01-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - -v10.0.0-nightly201801242313424abc 2018-01-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.3.292.48 1.19.1 1.2.11 1.0.2n 60 - -v10.0.0-nightly201801239870b53810 2018-01-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly20180122e7ff00d0c5 2018-01-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly201801218803b69c72 2018-01-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly20180120e1c29f2c52 2018-01-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly20180119cbd634947d 2018-01-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly201801187809f386b0 2018-01-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly201801171b0d9795b6 2018-01-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly20180116f75bc2c1a5 2018-01-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly2018011585739b6c5b 2018-01-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly20180114858b48b692 2018-01-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly20180113c770f43a91 2018-01-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly201801121385e1bc63 2018-01-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly20180111470bd39390 2018-01-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly201801106e3818f2a2 2018-01-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly20180109f3f3f8890c 2018-01-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly201801086aac05bf47 2018-01-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly201801078a86d9c1cf 2018-01-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly20180106b396c4db66 2018-01-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly20180105feaf6ac3dc 2018-01-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly201801043f2382bd9a 2018-01-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly201801033b1e263b7b 2018-01-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly201712294117e22cf3 2017-12-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly20171228120ea9b5c4 2017-12-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly2017122771396a200d 2017-12-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly2017122603b8ac14e7 2017-12-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly2017122581c2b59609 2017-12-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly20171224359819e760 2017-12-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly201712238599465d33 2017-12-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly20171222b5d415311b 2017-12-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly20171221a4f44acd69 2017-12-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly20171220d6b1b84ca0 2017-12-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly201712193b8da4cbe8 2017-12-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly20171218ce38c49fb8 2017-12-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly20171217b2432a7f00 2017-12-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly201712162ac7aded29 2017-12-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly20171214decab712ba 2017-12-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly2017121304ae4862e6 2017-12-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly201712127a055f1d39 2017-12-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly2017121151a7d97625 2017-12-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly20171210d2626ef6b7 2017-12-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly20171209e9d1e1265a 2017-12-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly201712084e65f9d504 2017-12-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - -v10.0.0-nightly201712070bc10b0472 2017-12-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2m 60 - -v10.0.0-nightly20171206cd174df353 2017-12-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2m 60 - -v10.0.0-nightly201712053549d9c2bc 2017-12-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.18.0 1.2.11 1.0.2m 59 - -v10.0.0-nightly20171204a322b8e316 2017-12-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.18.0 1.2.11 1.0.2m 59 - -v10.0.0-nightly20171203fff4272fa7 2017-12-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.18.0 1.2.11 1.0.2m 59 - -v10.0.0-nightly20171202c589561aaf 2017-12-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.18.0 1.2.11 1.0.2m 59 - -v10.0.0-nightly20171201e9e9863ca7 2017-12-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.18.0 1.2.11 1.0.2m 59 - -v10.0.0-nightly20171130701dc9a86e 2017-11-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.16.1 1.2.11 1.0.2m 59 - -v10.0.0-nightly201711294503da8a3a 2017-11-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.16.1 1.2.11 1.0.2m 59 - -v10.0.0-nightly201711280fb1e07689 2017-11-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.16.1 1.2.11 1.0.2m 59 - -v10.0.0-nightly201711274ca4db0d4c 2017-11-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.16.1 1.2.11 1.0.2m 59 - -v10.0.0-nightly20171126bb4462681c 2017-11-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.16.1 1.2.11 1.0.2m 59 - -v10.0.0-nightly2017112529423b49c7 2017-11-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - -v10.0.0-nightly20171124887e2327ee 2017-11-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - -v10.0.0-nightly20171123088bba31a3 2017-11-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - -v10.0.0-nightly20171121a95d88c881 2017-11-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - -v10.0.0-nightly20171120ad1967d656 2017-11-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - -v10.0.0-nightly2017111997ba69f915 2017-11-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - -v10.0.0-nightly20171118707cd3f615 2017-11-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - -v10.0.0-nightly20171117959c425a19 2017-11-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - -v10.0.0-nightly20171116b3127cd537 2017-11-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - -v10.0.0-nightly20171115157df5a47c 2017-11-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - -v10.0.0-nightly20171114803cacd228 2017-11-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - -v10.0.0-nightly2017111314d24cc4d2 2017-11-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - -v10.0.0-nightly20171112c5a49e148d 2017-11-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.16.1 1.2.11 1.0.2m 59 - -v10.0.0-nightly201711117b3446e7bb 2017-11-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.16.1 1.2.11 1.0.2m 59 - -v10.0.0-nightly201711106f02da255f 2017-11-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - -v10.0.0-nightly20171109f002c3d2ed 2017-11-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - -v10.0.0-nightly20171108d597317a20 2017-11-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - -v10.0.0-nightly20171107a77bfcaac7 2017-11-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - -v10.0.0-nightly201711060300565af9 2017-11-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - -v10.0.0-nightly201711059f3d59eabb 2017-11-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - -v10.0.0-nightly20171104291ff72f85 2017-11-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - -v10.0.0-nightly2017110372f21d248f 2017-11-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - -v10.0.0-nightly20171102d4471e06e8 2017-11-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - -v10.0.0-nightly2017110118df171307 2017-11-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - -v9.11.2-nightly201804135d9a7f81ae 2018-04-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.20.0 1.2.11 1.0.2o 59 - -v9.11.2-nightly201804065ecd82d07d 2018-04-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.20.0 1.2.11 1.0.2o 59 - -v9.11.2-nightly201804056bc6eeeabe 2018-04-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - -v9.10.2-nightly201804042bdf3ca235 2018-04-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - -v9.10.2-nightly20180403c1b83fcbc2 2018-04-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - -v9.10.2-nightly201804020bcad33c7a 2018-04-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - -v9.10.2-nightly20180330dac5f67e64 2018-04-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - -v9.10.1-nightly201803284844a263ce 2018-03-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - -v9.10.0-nightly201803270a18bf1304 2018-03-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - -v9.9.1-nightly201803256591d9f761 2018-03-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - -v9.9.1-nightly20180324d1c45e258c 2018-03-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - -v9.9.1-nightly20180322d3833b0734 2018-03-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - -v9.9.1-nightly201803215960cde4eb 2018-03-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - -v9.8.1-nightly20180320607b33cfcc 2018-03-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - -v9.8.1-nightly20180318d2b99e3774 2018-03-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - -v9.8.1-nightly20180317e7ce4d6c13 2018-03-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - -v9.8.1-nightly201803158daa6fa902 2018-03-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - -v9.8.1-nightly20180308fed51b3a15 2018-03-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - -v9.7.2-nightly20180307cde6671b41 2018-03-07 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - -v9.7.2-nightly20180305479b622e49 2018-03-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - -v9.7.2-nightly20180302e4fe235b5e 2018-03-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - -v9.7.1-nightly201803013f3995b7b7 2018-03-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - -v9.6.2-nightly201802277853a7fd2a 2018-02-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - -v9.6.2-nightly201802262177138db0 2018-02-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - -v9.6.2-nightly20180223aec66c660c 2018-02-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.1 1.2.11 1.0.2n 59 - -v9.6.1-nightly20180222927c1b1a7e 2018-02-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.1 1.2.11 1.0.2n 59 - -v9.5.1-nightly20180221b9b58100e0 2018-02-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.1 1.2.11 1.0.2n 59 - -v9.5.1-nightly2018020181da708f73 2018-02-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.1 1.2.11 1.0.2n 59 - -v9.4.1-nightly20180124dd56bd1591 2018-01-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - -v9.4.1-nightly20180117722fe464bc 2018-01-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - -v9.4.1-nightly20180115167e9c6dcd 2018-01-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - -v9.4.1-nightly20180111506d85bfba 2018-01-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - -v9.4.1-nightly2018011039970e9caf 2018-01-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - -v9.3.1-nightly2018010930273d400c 2018-01-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - -v9.3.1-nightly201712226bd0aff092 2017-12-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - -v9.3.1-nightly20171213b8ecf3c6f6 2017-12-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - -v9.2.2-nightly20171212f8143214be 2017-12-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - -v9.2.1-nightly20171208f0f9e1abf0 2017-12-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2n 59 - -v9.1.1-nightly20171207c81e9682c4 2017-12-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2n 59 - -v9.1.1-nightly201711075f5ef4226e 2017-11-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - -v9.0.1-nightly20171105ed0fbd8d72 2017-11-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - -v9.0.0-nightly2017103182790d84f2 2017-10-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - -v9.0.0-nightly20171030e567402aba 2017-10-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - -v9.0.0-nightly20171029896eaf6820 2017-10-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - -v9.0.0-nightly201710281c0772444c 2017-10-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - -v9.0.0-nightly2017102798eab4a461 2017-10-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - -v9.0.0-nightly20171025d2e44d5e7f 2017-10-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - -v9.0.0-nightly2017102447ed02cec6 2017-10-24 linux-ppc64le,linux-x64,linux-x86,sunos-x64,sunos-x86 5.3.0 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - -v9.0.0-nightly20171021fe4675b301 2017-10-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - -v9.0.0-nightly20171020686e092202 2017-10-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - -v9.0.0-nightly201710193c0ebf5aca 2017-10-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - -v9.0.0-nightly2017101870832bc353 2017-10-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - -v9.0.0-nightly20171017ff747e3fe8 2017-10-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - -v9.0.0-nightly20171016e2015b5347 2017-10-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - -v9.0.0-nightly2017101542479130a9 2017-10-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - -v9.0.0-nightly20171014971aad1b13 2017-10-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - -v9.0.0-nightly20171013981595c316 2017-10-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - -v9.0.0-nightly20171012bf8f1d3208 2017-10-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - -v9.0.0-nightly2017101107f1efc2ae 2017-10-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - -v9.0.0-nightly2017101092146e00fd 2017-10-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - -v9.0.0-nightly20171009fca31be833 2017-10-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - -v9.0.0-nightly2017100841b65b9fa3 2017-10-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - -v9.0.0-nightly20171007fabd618eef 2017-10-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - -v9.0.0-nightly201710064f339b54e9 2017-10-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - -v9.0.0-nightly20171004a3cd8ed168 2017-10-04 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 58 - -v9.0.0-nightly201710037cff6e80bf 2017-10-03 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 58 - -v9.0.0-nightly201710027069e633ca 2017-10-02 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 58 - -v9.0.0-nightly20171001f9be5fe52a 2017-10-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 58 - -v9.0.0-nightly20170930cec6e21668 2017-09-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 58 - -v9.0.0-nightly2017092998077446f9 2017-09-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 58 - -v9.0.0-nightly201709282f2f1cfa87 2017-09-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 58 - -v9.0.0-nightly20170924456d8e21ea 2017-09-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.38 1.14.1 1.2.11 1.0.2l 58 - -v9.0.0-nightly20170923150b8f7fda 2017-09-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.38 1.14.1 1.2.11 1.0.2l 58 - -v9.0.0-nightly2017092220259f9092 2017-09-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.38 1.14.1 1.2.11 1.0.2l 58 - -v9.0.0-nightly20170921cd1b55a942 2017-09-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.38 1.14.1 1.2.11 1.0.2l 58 - -v9.0.0-nightly2017092075606c4f69 2017-09-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.38 1.14.1 1.2.11 1.0.2l 58 - -v9.0.0-nightly2017091919766547fa 2017-09-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.38 1.14.1 1.2.11 1.0.2l 58 - -v9.0.0-nightly20170918c75f87cc4c 2017-09-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.38 1.14.1 1.2.11 1.0.2l 58 - -v9.0.0-nightly2017091775f7b2f577 2017-09-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.36 1.14.1 1.2.11 1.0.2l 58 - -v9.0.0-nightly20170916b0d3bec95c 2017-09-16 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.36 1.14.1 1.2.11 1.0.2l 58 - -v9.0.0-nightly20170915a5916107dd 2017-09-15 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.36 1.14.1 1.2.11 1.0.2l 58 - -v9.0.0-nightly201709141a0727d85e 2017-09-14 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.36 1.14.1 1.2.11 1.0.2l 58 - -v9.0.0-nightly20170913bf1ca8fb2e 2017-09-13 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.36 1.14.1 1.2.11 1.0.2l 58 - -v9.0.0-nightly20170912a10856a7d3 2017-09-12 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly2017091061e9ba1271 2017-09-10 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly201709095f22375922 2017-09-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly20170908aa76ce943b 2017-09-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly20170907641646463d 2017-09-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly201709068485a7c0b7 2017-09-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly20170905ea2e6363f2 2017-09-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly20170904b24e269a48 2017-09-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly20170903c7c9e20ed0 2017-09-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly2017090208984b26d3 2017-09-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly20170901dd52cad044 2017-09-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly20170831365c24591c 2017-08-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly20170830a80b1621b0 2017-08-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly201708291ffd01cf7f 2017-08-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly201708287854562143 2017-08-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly201708274d893e093a 2017-08-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly2017082699c478eb36 2017-08-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly20170825a1d34b3f49 2017-08-25 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly20170824abced13e29 2017-08-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly201708204cff2cc20f 2017-08-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly20170819467385a49b 2017-08-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly201708184d842e3d66 2017-08-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly2017081760f2fa9a8b 2017-08-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly20170816e9c0263696 2017-08-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly201708155f31d54720 2017-08-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly20170814afe68c1868 2017-08-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly2017081395bbb68175 2017-08-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly20170812ab2b331f5e 2017-08-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly201708117307839b55 2017-08-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly2017081097c43940c8 2017-08-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly201708091e569f42b6 2017-08-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly20170808f11379d25b 2017-08-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly201708073f98b0f33c 2017-08-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly20170806e96ca62480 2017-08-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly20170805ff65a2e051 2017-08-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly201708042dc09f656b 2017-08-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly20170803d41423fe72 2017-08-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly20170802e506bcd899 2017-08-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - -v9.0.0-nightly20170801cee8d6d65e 2017-08-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.39 1.13.1 1.2.11 1.0.2l 56 - -v9.0.0-nightly2017072975bf8a9db9 2017-07-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.39 1.13.1 1.2.11 1.0.2l 56 - -v9.0.0-nightly201707288dce05fa71 2017-07-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.39 1.13.1 1.2.11 1.0.2l 56 - -v9.0.0-nightly201707259ab3172e5d 2017-07-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - -v9.0.0-nightly201707245c2d1af310 2017-07-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - -v9.0.0-nightly2017072369f653dff9 2017-07-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - -v9.0.0-nightly201707228979b4fc9f 2017-07-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - -v9.0.0-nightly201707214f87522244 2017-07-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - -v9.0.0-nightly201707207fdcb68dc3 2017-07-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - -v9.0.0-nightly20170719aa496f4bee 2017-07-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - -v9.0.0-nightly20170718f406a7ebae 2017-07-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - -v9.0.0-nightly20170717a6cec04aaa 2017-07-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - -v9.0.0-nightly20170716e8170f2246 2017-07-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - -v9.0.0-nightly20170715785a9e5a57 2017-07-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - -v9.0.0-nightly20170714016d81ceec 2017-07-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.13.1 1.2.11 1.0.2l 56 - -v9.0.0-nightly20170713598a128ff4 2017-07-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.13.1 1.2.11 1.0.2l 56 - -v9.0.0-nightly20170712f52c707853 2017-07-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - -v9.0.0-nightly2017071180c9fd9569 2017-07-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - -v9.0.0-nightly2017071094dd42577c 2017-07-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - -v9.0.0-nightly2017070918069523f8 2017-07-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - -v9.0.0-nightly20170708b647f04df1 2017-07-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - -v9.0.0-nightly2017070749d13a17b1 2017-07-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - -v9.0.0-nightly20170706f651e40350 2017-07-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - -v9.0.0-nightly201707058520e6f280 2017-07-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - -v9.0.0-nightly201707045100cc6851 2017-07-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - -v9.0.0-nightly20170703fe730d34ce 2017-07-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - -v9.0.0-nightly201707023129b2c035 2017-07-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - -v9.0.0-nightly2017070171ca122def 2017-07-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - -v9.0.0-nightly20170630e6b69b9418 2017-06-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - -v9.0.0-nightly2017062947d1e125ac 2017-06-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - -v9.0.0-nightly2017062850ba13ef0e 2017-06-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - -v9.0.0-nightly20170627b714060e08 2017-06-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - -v9.0.0-nightly201706265fbbd25dc4 2017-06-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - -v9.0.0-nightly2017062487d682b69a 2017-06-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - -v9.0.0-nightly201706233b0e800f18 2017-06-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - -v9.0.0-nightly201706223e178848a5 2017-06-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - -v9.0.0-nightly2017062132c7f114c5 2017-06-21 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - -v9.0.0-nightly20170620d2913384aa 2017-06-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - -v9.0.0-nightly2017061924ecc331e2 2017-06-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - -v9.0.0-nightly2017061881c0045378 2017-06-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - -v9.0.0-nightly20170617ecf6a46d98 2017-06-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - -v9.0.0-nightly201706161e2905f46a 2017-06-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - -v9.0.0-nightly20170615de4a749788 2017-06-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - -v9.0.0-nightly201706142f34bf0f77 2017-06-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - -v9.0.0-nightly20170613e5a494857a 2017-06-13 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - -v9.0.0-nightly2017061227cc30aea8 2017-06-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - -v9.0.0-nightly20170608d0571a926a 2017-06-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - -v9.0.0-nightly20170607eef94a8bf8 2017-06-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - -v9.0.0-nightly20170606b830c976b5 2017-06-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2l 55 - -v9.0.0-nightly201706057024c5a302 2017-06-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2l 55 - -v9.0.0-nightly201706044d89e3c261 2017-06-04 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2l 55 - -v9.0.0-nightly20170603917f86ea35 2017-06-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2l 55 - -v9.0.0-nightly201706021609899142 2017-06-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2l 55 - -v9.0.0-nightly201706019b730620a7 2017-06-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2k 55 - -v9.0.0-nightly20170531102e1aa4e3 2017-05-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2k 55 - -v8.9.1-nightly20171104a815e1b6a2 2017-11-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.46 1.15.0 1.2.11 1.0.2m 57 Carbon -v8.9.1-nightly2017110308b75c1591 2017-11-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.46 1.15.0 1.2.11 1.0.2m 57 Carbon -v8.9.1-nightly20171102dfac6cc0bb 2017-11-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.46 1.15.0 1.2.11 1.0.2l 57 Carbon -v8.9.1-nightly2017103140d82118d8 2017-10-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.46 1.15.0 1.2.11 1.0.2l 57 Carbon -v8.8.2-nightly20171030f00ba6b142 2017-10-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - -v8.8.2-nightly201710264359a93cc9 2017-10-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - -v8.8.1-nightly201710256fbef7f350 2017-10-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - -v8.7.1-nightly2017102478a6ef46a9 2017-10-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - -v8.7.1-nightly20171018e34509e8ed 2017-10-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - -v8.7.1-nightly20171012415821c309 2017-10-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - -v8.6.1-nightly201710116f42b680e3 2017-10-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - -v8.6.1-nightly201710109eb991a827 2017-10-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - -v8.6.1-nightly201710088ae4ae605c 2017-10-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - -v8.6.1-nightly2017100497f7590c82 2017-10-04 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.14.1 1.2.11 1.0.2l 57 - -v8.6.1-nightly20171003b22014ef2b 2017-10-03 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.14.1 1.2.11 1.0.2l 57 - -v8.6.1-nightly20170930e4c6698c29 2017-09-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 57 - -v8.6.1-nightly2017092937d1779e05 2017-09-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 57 - -v8.6.1-nightly20170928b6a8e5cb18 2017-09-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.38 1.14.1 1.2.11 1.0.2l 57 - -v8.5.1-nightly20170921535f8d5281 2017-09-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - -v8.5.1-nightly201709204efc6fec6b 2017-09-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - -v8.5.1-nightly20170914a792ea7709 2017-09-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - -v8.5.1-nightly2017091299dc1f93a7 2017-09-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - -v8.4.1-nightly201709104b28e0055e 2017-09-10 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - -v8.3.1-nightly201708182d8d355a5f 2017-08-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - -v8.3.1-nightly20170814dd521d0a28 2017-08-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - -v8.3.1-nightly20170813ee2ae0f30b 2017-08-13 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - -v8.3.1-nightly20170812c5ee34e39b 2017-08-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - -v8.3.1-nightly20170811a781bb4508 2017-08-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - -v8.3.1-nightly201708109888bb1238 2017-08-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - -v8.2.1-nightly2017080791b7843aeb 2017-08-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - -v8.2.1-nightly201708028a3bc874fa 2017-08-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - -v8.2.1-nightly2017080132b30d519e 2017-08-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - -v8.2.1-nightly201707291a5927fc27 2017-07-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - -v8.2.1-nightly20170728e2356e72e7 2017-07-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - -v8.2.1-nightly20170724bdcd496c98 2017-07-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - -v8.2.1-nightly201707236fc0ceab00 2017-07-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - -v8.2.1-nightly2017072224b384d6a0 2017-07-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - -v8.2.1-nightly201707206fce1a314e 2017-07-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - -v8.1.5-nightly20170718e9491f1cd4 2017-07-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.37 1.13.1 1.2.11 1.0.2l 57 - -v8.1.5-nightly201707128d1f3dae37 2017-07-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 57 - -v8.1.5-nightly20170711f457b05499 2017-07-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 57 - -v8.1.4-nightly20170704c2c7eb1a41 2017-07-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 57 - -v8.1.4-nightly20170630ff71987764 2017-06-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 57 - -v8.1.4-nightly2017062982dc65bf6b 2017-06-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 57 - -v8.1.3-nightly201706220b96a2640b 2017-06-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 57 - -v8.1.3-nightly20170620f64ea03a3a 2017-06-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 57 - -v8.1.3-nightly201706175238fa248f 2017-06-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.35 1.12.0 1.2.11 1.0.2l 57 - -v8.1.2-nightly20170614a1b27dbfb4 2017-06-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.8.283.41 1.12.0 1.2.11 1.0.2l 57 - -v8.1.1-nightly2017061323318c7661 2017-06-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.8.283.41 1.12.0 1.2.11 1.0.2l 57 - -v8.1.0-nightly20170612f6fc46e036 2017-06-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.8.283.41 1.12.0 1.2.11 1.0.2l 57 - -v8.0.0-nightly20170530effeff1843 2017-05-30 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2k 55 - -v8.0.0-nightly2017052910913271bf 2017-05-29 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2k 55 - -v8.0.0-nightly2017052890877003c1 2017-05-28 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0-beta.56 5.8.283.41 1.11.0 1.2.11 1.0.2k 55 - -v8.0.0-nightly20170527f84666f923 2017-05-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0-beta.56 5.8.283.41 1.11.0 1.2.11 1.0.2k 55 - -v8.0.0-nightly2017052619685eac65 2017-05-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0-beta.56 5.8.283.41 1.11.0 1.2.11 1.0.2k 55 - -v8.0.0-nightly20170525413691fde0 2017-05-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0-beta.56 5.8.283.40 1.11.0 1.2.11 1.0.2k 55 - -v8.0.0-nightly20170524260cd411d4 2017-05-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0-beta.56 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - -v8.0.0-nightly2017052360390cd7fb 2017-05-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0-beta.56 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - -v8.0.0-nightly2017052206f62eb384 2017-05-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - -v8.0.0-nightly201705212b541471db 2017-05-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - -v8.0.0-nightly201705208250bfd1e5 2017-05-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - -v8.0.0-nightly201705196f216710eb 2017-05-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - -v8.0.0-nightly201705185de722ab6d 2017-05-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - -v8.0.0-nightly201705176342988053 2017-05-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - -v8.0.0-nightly2017051611918c4aed 2017-05-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - -v8.0.0-nightly20170515ef16319eff 2017-05-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - -v8.0.0-nightly20170514b5ae22dd1c 2017-05-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - -v8.0.0-nightly2017051384fc069b95 2017-05-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - -v8.0.0-nightly201705121d5f5aa7e1 2017-05-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - -v8.0.0-nightly20170511631cb42b4e 2017-05-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - -v8.0.0-nightly20170510cfe7b34058 2017-05-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - -v8.0.0-nightly20170509faf6654ff7 2017-05-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - -v8.0.0-nightly20170508ea1b8a5cbc 2017-05-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - -v8.0.0-nightly201705073fd890a06e 2017-05-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - -v8.0.0-nightly2017050673d9c0f903 2017-05-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly201705052614d247fb 2017-05-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly201705043f48ab3042 2017-05-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly20170503d56a7e640f 2017-05-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly201705029802d466cc 2017-05-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly201705010f58d3cbef 2017-05-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly20170430aa3eab00da 2017-04-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly2017042997ec72b76d 2017-04-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly20170428b2c7a51dd7 2017-04-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly20170427892ce06dbd 2017-04-27 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly20170426d7ba2a6035 2017-04-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly20170425ba7bac5c37 2017-04-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly2017042485a4e25775 2017-04-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly20170423cf68280ce1 2017-04-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly20170422bd97e48d9a 2017-04-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly2017042158066d16d5 2017-04-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly20170420468275ac79 2017-04-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly20170419a2843f2cf9 2017-04-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly201704186c912a8216 2017-04-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly20170417ade80eeb1a 2017-04-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly20170416b837bd2792 2017-04-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly20170415e125f174dc 2017-04-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly20170414635af7dc5f 2017-04-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly201704133900cf66a5 2017-04-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly201704122ced07ccaf 2017-04-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly20170411b8f416023d 2017-04-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly20170410b470a85f07 2017-04-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly201704094dde87620a 2017-04-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly20170408afd5966fa9 2017-04-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly20170407c6e0ba31ec 2017-04-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly20170406a94a5da78c 2017-04-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly20170405491d59da84 2017-04-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly20170404394b6ac5cb 2017-04-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly2017040353828e8bff 2017-04-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly201704022d039ffa29 2017-04-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly201704010ea45707a4 2017-04-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly201703314d255b04bf 2017-03-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly201703304ddd23f0ec 2017-03-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly2017032961ebfa8d1f 2017-03-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly20170328fd18243a50 2017-03-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly2017032766e7dc5587 2017-03-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly20170326d13bd4acc0 2017-03-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly20170325ed12ea371c 2017-03-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - -v8.0.0-nightly201703249ff7ed23cd 2017-03-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.6.326.57 1.11.0 1.2.11 1.0.2k 53 - -v8.0.0-nightly20170323ee19e2923a 2017-03-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.6.326.57 1.11.0 1.2.11 1.0.2k 53 - -v8.0.0-nightly2017032281ab78e62e 2017-03-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.57 1.11.0 1.2.11 1.0.2k 53 - -v8.0.0-nightly20170321ab2d49bcac 2017-03-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.57 1.11.0 1.2.11 1.0.2k 53 - -v8.0.0-nightly20170320ef4768754c 2017-03-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.57 1.11.0 1.2.11 1.0.2k 53 - -v8.0.0-nightly201703185bda5faffd 2017-03-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - -v8.0.0-nightly20170317704263139b 2017-03-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - -v8.0.0-nightly201703165bfd13b81e 2017-03-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - -v8.0.0-nightly20170315b5eccc4c7e 2017-03-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - -v8.0.0-nightly20170314879d6663ea 2017-03-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - -v8.0.0-nightly20170313b170fb7c55 2017-03-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - -v8.0.0-nightly20170312efec14a7d1 2017-03-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - -v8.0.0-nightly20170311c67207731f 2017-03-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - -v8.0.0-nightly20170310b806e18dd7 2017-03-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - -v8.0.0-nightly20170309e4fbd8e244 2017-03-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - -v8.0.0-nightly201703087e0410499d 2017-03-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - -v8.0.0-nightly20170307efaab8fccf 2017-03-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - -v8.0.0-nightly20170306fd17e8b8d2 2017-03-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - -v8.0.0-nightly2017030539f7e72440 2017-03-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - -v8.0.0-nightly20170304b535e25b27 2017-03-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - -v8.0.0-nightly201703034cb9f4fde4 2017-03-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - -v8.0.0-nightly20170302172be50fe1 2017-03-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - -v8.0.0-nightly2017030187a039d721 2017-03-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - -v8.0.0-nightly201702280a44b71c50 2017-02-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - -v8.0.0-nightly20170227893632ec07 2017-02-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - -v8.0.0-nightly20170226813b312b0e 2017-02-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - -v8.0.0-nightly20170225ee7b7f6935 2017-02-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - -v8.0.0-nightly201702246eb614adc8 2017-02-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - -v8.0.0-nightly201702238e8fbd80d0 2017-02-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - -v8.0.0-nightly20170222a1802e670d 2017-02-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - -v8.0.0-nightly201702211162e284ca 2017-02-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.11 1.0.2k 52 - -v8.0.0-nightly20170220dfa8abe1b5 2017-02-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.11 1.0.2k 52 - -v8.0.0-nightly20170219751404dc28 2017-02-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - -v8.0.0-nightly20170218ca37ec084a 2017-02-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - -v8.0.0-nightly20170217736814e064 2017-02-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - -v8.0.0-nightly20170216642eec162d 2017-02-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - -v8.0.0-nightly201702152ba4eeadbb 2017-02-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - -v8.0.0-nightly20170214ac602a251a 2017-02-14 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - -v8.0.0-nightly20170213f2023d7b6f 2017-02-13 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - -v8.0.0-nightly201702124cafa60c99 2017-02-12 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - -v8.0.0-nightly201702115cd9d76b02 2017-02-11 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - -v8.0.0-nightly20170210b471392f8c 2017-02-10 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - -v8.0.0-nightly20170209a4bb9fdb89 2017-02-09 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - -v8.0.0-nightly201702082db3b941a9 2017-02-08 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - -v8.0.0-nightly201702077ba847df1c 2017-02-07 aix-ppc64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - -v8.0.0-nightly201702063fffebbde3 2017-02-06 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - -v8.0.0-nightly201702059a0829d728 2017-02-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - -v8.0.0-nightly20170204e116cbe320 2017-02-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - -v8.0.0-nightly20170203907ce8dd6c 2017-02-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - -v8.0.0-nightly2017020258dc229d9a 2017-02-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - -v8.0.0-nightly201702011b30df1003 2017-02-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - -v8.0.0-nightly20170131aa8eb8747c 2017-01-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - -v8.0.0-nightly201701300d290a2ae0 2017-01-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.1 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - -v8.0.0-nightly201701291155ade002 2017-01-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.1 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - -v8.0.0-nightly2017012818d4ee97d8 2017-01-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.1 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - -v8.0.0-nightly20170127b19334e566 2017-01-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.1 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - -v8.0.0-nightly20170126a67a04d765 2017-01-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.1 5.4.500.46 1.10.2 1.2.8 1.0.2k 51 - -v8.0.0-nightly20170125124d155f5e 2017-01-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - -v8.0.0-nightly201701247eef09ddcf 2017-01-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - -v8.0.0-nightly201701234757ddcce1 2017-01-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - -v8.0.0-nightly20170122ff75e21662 2017-01-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - -v8.0.0-nightly2017012193c4820458 2017-01-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - -v8.0.0-nightly20170120ba776b3a56 2017-01-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - -v8.0.0-nightly2017011949902124a9 2017-01-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - -v8.0.0-nightly20170118622b43997f 2017-01-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - -v8.0.0-nightly20170117d86ff5fc29 2017-01-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - -v8.0.0-nightly20170116a0e13dae1f 2017-01-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - -v8.0.0-nightly2017011534bf31ea8a 2017-01-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - -v8.0.0-nightly20170114f18b4632b9 2017-01-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - -v8.0.0-nightly201701134424e847d5 2017-01-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - -v8.0.0-nightly201701127f20c8a3d4 2017-01-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - -v8.0.0-nightly20170111fa3836152d 2017-01-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly20170110762a303e1f 2017-01-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly2017010941567ee9d8 2017-01-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly201701078a12368a20 2017-01-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly20170106fc647fddff 2017-01-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly201701056830849b2e 2017-01-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly2017010426bf9545e0 2017-01-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly201701037c77932fa2 2017-01-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly20170102b978aff719 2017-01-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly20170101b465cd07fe 2017-01-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161231a6ca94a5f5 2016-12-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly201612302213f3640a 2016-12-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly201612298dcebe8c42 2016-12-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly201612281b2d3f7ae7 2016-12-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161226499efbd085 2016-12-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly2016122545c9ca7fd4 2016-12-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161224ff88a5a25b 2016-12-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly201612230bdd39f729 2016-12-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly2016122244b38bb001 2016-12-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly201612219e4a899d31 2016-12-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161220613798335c 2016-12-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly201612195d14602181 2016-12-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly201612180d3ac89ff7 2016-12-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly201612174a257568e2 2016-12-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161216885c80f3de 2016-12-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly201612154a5c719be5 2016-12-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly201612143c29b2f851 2016-12-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161213832960592f 2016-12-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161212a8e87084cf 2016-12-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161211aa77b767b6 2016-12-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly201612107c2dbd13b5 2016-12-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161209d8c7534fcd 2016-12-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161208df3978421b 2016-12-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161207b0c10a24a6 2016-12-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly201612068951d3e0e5 2016-12-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161205196d27dd8c 2016-12-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly201612045be66db688 2016-12-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161203e21e12944c 2016-12-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161202479822c45e 2016-12-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161201cf719152b0 2016-12-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161130330e63c581 2016-11-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly201611295887c2ba38 2016-11-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly201611284fffe32a4b 2016-11-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly201611276b2aa1a2b9 2016-11-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161126951ba0d0a9 2016-11-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161125630c63ee68 2016-11-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly201611245cf0157b82 2016-11-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161123fd644f51f8 2016-11-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly201611223f1e38c847 2016-11-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly201611213cbb553df8 2016-11-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161120440057eae0 2016-11-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly201611198f05611a5c 2016-11-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly2016111806198964e2 2016-11-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly201611171fca11e114 2016-11-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161116367065be4b 2016-11-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.0 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161115a804627837 2016-11-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.0 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161114fc44bd4d0b 2016-11-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.0 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161113195989d3a3 2016-11-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.0 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161112f673c97548 2016-11-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.0 1.2.8 1.0.2j 51 - -v8.0.0-nightly201611114affb8929f 2016-11-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.0 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161110ca57912e05 2016-11-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161109d548d28f51 2016-11-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - -v8.0.0-nightly201611080b5191f15d 2016-11-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - -v8.0.0-nightly201611071aa595e5bd 2016-11-07 aix-ppc64,headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161106f8f67d253e 2016-11-06 aix-ppc64,headers,linux-x64,linux-x86,osx-x64-tar,src,sunos-x86 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161105a99b441c2c 2016-11-05 aix-ppc64,headers,linux-x64,linux-x86,osx-x64-tar,src,sunos-x86 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - -v8.0.0-nightly201611041a55e9a567 2016-11-04 aix-ppc64,headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - -v8.0.0-nightly201611033c1e5b366f 2016-11-03 aix-ppc64,headers,linux-x64,linux-x86,osx-x64-tar,src,sunos-x86 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - -v8.0.0-nightly2016110254d34314e3 2016-11-02 aix-ppc64,headers,linux-x64,linux-x86,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - -v8.0.0-nightly2016110121427fded9 2016-11-01 aix-ppc64,headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - -v8.0.0-nightly201610310e92bb99c6 2016-10-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161030b9f6a2dc05 2016-10-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161029ec7c27f4cb 2016-10-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161028758ca8d179 2016-10-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - -v8.0.0-nightly201610274d896c44f3 2016-10-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - -v8.0.0-nightly201610268f00455c51 2016-10-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161025e8eaaa7724 2016-10-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.9.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly201610245532a7adec 2016-10-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly201610236e5389eb5a 2016-10-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly201610225d818ccc22 2016-10-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly201610206845d6e318 2016-10-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly20161019ef030da818 2016-10-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - -v8.0.0-nightly201610180e6750d1cd 2016-10-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - -v7.10.1-nightly2017050369a8053e8a 2017-05-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.5.372.43 1.11.0 1.2.11 1.0.2k 51 - -v7.9.1-nightly20170411675ece47b3 2017-04-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.5.372.43 1.11.0 1.2.11 1.0.2k 51 - -v7.8.1-nightly20170329517f13b607 2017-03-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.5.372.43 1.11.0 1.2.11 1.0.2k 51 - -v7.7.5-nightly20170322bc664cb034 2017-03-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.42 1.11.0 1.2.11 1.0.2k 51 - -v7.7.4-nightly20170315753adee6aa 2017-03-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - -v7.7.3-nightly20170309c62798034a 2017-03-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - -v7.7.2-nightly20170302b20bc130ef 2017-03-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - -v7.7.1-nightly201703019c75f4c78a 2017-03-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - -v7.6.1-nightly201702227a6367017c 2017-02-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.11 1.0.2k 51 - -v7.5.1-nightly2017020113a024d531 2017-02-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.4.500.48 1.10.2 1.2.8 1.0.2k 51 - -v7.4.1-nightly20170104e07b6516d7 2017-01-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - -v7.3.1-nightly20161221586967a078 2016-12-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - -v7.2.2-nightly20161207c2cc11b3c6 2016-12-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - -v7.2.1-nightly201611248cabe28efb 2016-11-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - -v7.2.0-nightly20161123c1aa949064 2016-11-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - -v7.1.1-nightly201611093daf11635d 2016-11-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - -v7.0.1-nightly2016102527e1749dcb 2016-10-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.9.1 1.2.8 1.0.2j 51 - -v7.0.0-nightly201610246bbdd668bd 2016-10-24 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-tar,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.9.1 1.2.8 1.0.2j 51 - -v7.0.0-nightly2016102260042ca70e 2016-10-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - -v7.0.0-nightly20161020d62e7bd1f9 2016-10-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - -v7.0.0-nightly201610193518372835 2016-10-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - -v7.0.0-nightly20161017e6d1d54230 2016-10-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - -v7.0.0-nightly201610171fcd088fd9 2016-10-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - -v7.0.0-nightly20161016f7842ad169 2016-10-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - -v7.0.0-nightly20161015113c697ded 2016-10-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - -v7.0.0-nightly20161014835fbeee00 2016-10-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - -v7.0.0-nightly201610146eece7773e 2016-10-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - -v7.0.0-nightly20161013e4ee09a5b3 2016-10-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - -v7.0.0-nightly20161013804d57db67 2016-10-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - -v7.0.0-nightly201610113d54ea4304 2016-10-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - -v7.0.0-nightly20161010c9dade48b4 2016-10-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - -v7.0.0-nightly201610097542bdddda 2016-10-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - -v7.0.0-nightly20161008b35f22b135 2016-10-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly201610087084b9c5a1 2016-10-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - -v7.0.0-nightly201610074d6297fef0 2016-10-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - -v7.0.0-nightly20161006bd0bedb86a 2016-10-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - -v7.0.0-nightly201610057b5ffa46fe 2016-10-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - -v7.0.0-nightly20161004e10516d5a4 2016-10-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - -v7.0.0-nightly20161003b3d283acd4 2016-10-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - -v7.0.0-nightly201610023c5cf12709 2016-10-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.27 1.9.1 1.2.8 1.0.2j 51 - -v7.0.0-nightly20161001c8c2544cd9 2016-10-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.27 1.9.1 1.2.8 1.0.2j 51 - -v7.0.0-nightly20160930f5d997c476 2016-09-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.27 1.9.1 1.2.8 1.0.2j 51 - -v7.0.0-nightly2016092933dd4ec645 2016-09-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.27 1.9.1 1.2.8 1.0.2j 51 - -v7.0.0-nightly201609288cd2306cc3 2016-09-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.27 1.9.1 1.2.8 1.0.2j 48 - -v7.0.0-nightly201609276b443d1731 2016-09-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.27 1.9.1 1.2.8 1.0.2j 48 - -v7.0.0-nightly2016092652b6cfb6eb 2016-09-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.4.500.27 1.9.1 1.2.8 1.0.2j 48 - -v7.0.0-nightly2016092550be885285 2016-09-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.4.500.27 1.9.1 1.2.8 1.0.2i 48 - -v7.0.0-nightly201609247f71419ee4 2016-09-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.4.500.27 1.9.1 1.2.8 1.0.2i 48 - -v7.0.0-nightly201609235cb5b1f8c4 2016-09-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.4.500.27 1.9.1 1.2.8 1.0.2i 48 - -v7.0.0-nightly201609224d958725b4 2016-09-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.4.500.27 1.9.1 1.2.8 1.0.2i 48 - -v7.0.0-nightly201609217b7d50a29e 2016-09-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly201609202b5acda7a2 2016-09-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160919366495d4e2 2016-09-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly2016091830701a72c0 2016-09-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160917ffe8dffbc4 2016-09-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160916d3834a1fa3 2016-09-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160915ea2a309e3b 2016-09-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly201609145ce117bab0 2016-09-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly2016091353178f908f 2016-09-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160912f1629e78c7 2016-09-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly2016091183a354c33b 2016-09-11 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160910e57ff455e2 2016-09-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160909cc00be6ace 2016-09-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160908c21458a15d 2016-09-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160907c436437d3e 2016-09-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160906a945244830 2016-09-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160905a290ddfdc9 2016-09-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160904dfe1c7e9b8 2016-09-04 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly201609037e8d994e33 2016-09-03 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly201609025930d59b0f 2016-09-02 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly201609013504a98b72 2016-09-01 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160831266270e618 2016-08-31 win-x64-7z,win-x64-exe,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160830eca74a9d91 2016-08-30 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly201608291657f12f75 2016-08-29 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160827c8619ea3c3 2016-08-27 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160826a6d53c6779 2016-08-26 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly2016082518017d675b 2016-08-25 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly2016082451f96dfcfc 2016-08-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly2016082309f861f231 2016-08-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly201608223242b27b54 2016-08-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly201608219a91ffbbde 2016-08-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160820f6a74345d1 2016-08-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly2016081976007079ec 2016-08-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160818dbbbf217de 2016-08-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly201608173177b99737 2016-08-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160816647826017e 2016-08-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.80 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly2016081524e4488891 2016-08-15 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.80 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly201608143fe55f6f91 2016-08-14 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.80 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160813fce4b981ea 2016-08-13 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.80 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160812ca6363b8ae 2016-08-12 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.80 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160811e40234d6e2 2016-08-11 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.80 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly201608104878e1c0e5 2016-08-10 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.79 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160809ae25ed3ccd 2016-08-09 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.79 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly201608085111e789e6 2016-08-08 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.79 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly201608074c86fa30d8 2016-08-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.79 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160806b779eb423d 2016-08-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.79 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160805769f63ccd8 2016-08-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.79 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly201608041a9e247c79 2016-08-04 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.79 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly2016080329e49fc286 2016-08-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.78 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160802b4258bba11 2016-08-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly2016080175c6d9dd95 2016-08-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160731df4ef63aa5 2016-07-31 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160729f789eb3106 2016-07-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly2016072899e2d43801 2016-07-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160727868638b903 2016-07-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160726e22ffefff2 2016-07-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160725809aabcc13 2016-07-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160722b3127df59a 2016-07-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly201607219359de9dd2 2016-07-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160720814b8c3cf7 2016-07-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160719f56cd32c70 2016-07-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly2016071817883dfaaf 2016-07-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.76 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160717c897d0ba71 2016-07-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.75 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly201607156510eb5ddc 2016-07-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.75 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly201607146e15ae98fe 2016-07-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.75 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly2016071311b23068cd 2016-07-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.75 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160712ef1f7661c7 2016-07-12 headers,linux-arm64,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.75 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160712863952ebad 2016-07-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.75 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160621ecc48a154d 2016-06-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly201606205bddc9a741 2016-06-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160619a92089b6bd 2016-06-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160618a06ccdbdb5 2016-06-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160617de9a84186e 2016-06-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160616336b027411 2016-06-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160615357f904169 2016-06-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160614f914f37742 2016-06-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160613e2e615e87e 2016-06-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160612d06820c624 2016-06-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly2016061147b9b14574 2016-06-11 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160610624734e640 2016-06-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160609a766ebf594 2016-06-09 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160608779091ffdb 2016-06-08 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160607671cffa313 2016-06-07 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160606a32f7eb4be 2016-06-06 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160605f44b18f010 2016-06-05 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160604de0aa23ad7 2016-06-04 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160603d0151695a7 2016-06-03 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160602aac79dfd78 2016-06-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160601f81f0c351a 2016-06-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160531ef9a8fa35b 2016-05-31 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160530894203dae3 2016-05-30 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160529a0c70808b3 2016-05-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160528ead6c2d5bb 2016-05-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly201605278af25a39d3 2016-05-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160526841c7025a9 2016-05-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly2016052518fb4f9a91 2016-05-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160524ed11ac6080 2016-05-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160523c111cf207a 2016-05-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly201605225b72f891a8 2016-05-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly201605207c3e920ba9 2016-05-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160519395cc885f4 2016-05-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly2016051803505052a1 2016-05-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160517b53473f0e7 2016-05-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - -v7.0.0-nightly2016051678520fa472 2016-05-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.0 1.2.8 1.0.2h 48 - -v7.0.0-nightly2016051532b46d91a7 2016-05-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.0 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160514f4f6c6e815 2016-05-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.0 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160513084b2ec198 2016-05-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.0 1.2.8 1.0.2h 48 - -v7.0.0-nightly201605122d524bcd1e 2016-05-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.0 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160510572e28efa2 2016-05-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - -v7.0.0-nightly201605097f1111b1bb 2016-05-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - -v7.0.0-nightly2016050883aa1f7f3f 2016-05-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - -v7.0.0-nightly201605073f69ea53fd 2016-05-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160506b8573d0555 2016-05-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160505a4f94b4271 2016-05-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160504bc8b525440 2016-05-04 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - -v7.0.0-nightly20160503a2e57192eb 2016-05-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - -v7.0.0-nightly201605028ebec086a5 2016-05-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - -v7.0.0-nightly201605019f8d0ea6db 2016-05-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - -v7.0.0-nightly20160430bcce05dba4 2016-04-30 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - -v7.0.0-nightly20160429706778a902 2016-04-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - -v7.0.0-nightly20160428ded3aea449 2016-04-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - -v7.0.0-nightly201604273cdb5063f2 2016-04-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - -v7.0.0-nightly20160426cc5d9767af 2016-04-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - -v6.11.1-nightly20170607f7ca483d68 2017-06-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.102 1.11.0 1.2.11 1.0.2k 48 Boron -v6.10.4-nightly20170502312091a196 2017-05-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.101 1.9.1 1.2.11 1.0.2k 48 Boron -v6.10.3-nightly2017040479546c0b5a 2017-04-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.98 1.9.1 1.2.11 1.0.2k 48 Boron -v6.10.2-nightly20170322426968ddd8 2017-03-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.95 1.9.1 1.2.8 1.0.2k 48 Boron -v6.10.1-nightly20170222ee10f21f3b 2017-02-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.93 1.9.1 1.2.8 1.0.2k 48 Boron -v6.9.6-nightly201702013f61aae59d 2017-02-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2k 48 Boron -v6.9.5-nightly2017013187ac44974a 2017-01-31 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2k 48 Boron -v6.9.5-nightly201701061a47e5f409 2017-01-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2j 48 Boron -v6.9.4-nightly201701049844692719 2017-01-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2j 48 Boron -v6.9.3-nightly20161206c350268432 2016-12-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.1.281.88 1.9.1 1.2.8 1.0.2j 48 Boron -v6.9.2-nightly201610208bb346d61a 2016-10-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 Boron -v6.9.1-nightly201610183843b96e46 2016-10-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 Boron -v6.8.2-nightly201610154613c22b00 2016-10-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 - -v6.8.1-nightly201610132540417ef5 2016-10-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 - -v6.7.1-nightly20161007d7454e7547 2016-10-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - -v6.7.1-nightly20161006d7454e7547 2016-10-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - -v6.7.1-nightly20161005d7454e7547 2016-10-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - -v6.7.1-nightly20161004d7454e7547 2016-10-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - -v6.7.1-nightly20161003d7454e7547 2016-10-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - -v6.7.1-nightly20161002d7454e7547 2016-10-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - -v6.7.1-nightly20161001d7454e7547 2016-10-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - -v6.7.1-nightly20160930d7454e7547 2016-09-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - -v6.7.1-nightly20160929d7454e7547 2016-09-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - -v6.7.1-nightly20160928d7454e7547 2016-09-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - -v6.6.1-nightly20160927f8ad0dc0e2 2016-09-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - -v6.6.1-nightly20160926f8ad0dc0e2 2016-09-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - -v6.6.1-nightly20160925a14d832884 2016-09-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2i 48 - -v6.6.1-nightly20160924a14d832884 2016-09-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2i 48 - -v6.6.1-nightly20160923a14d832884 2016-09-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2i 48 - -v6.6.1-nightly20160922a14d832884 2016-09-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2i 48 - -v6.6.1-nightly201609217d9afc7b52 2016-09-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - -v6.6.1-nightly201609207d9afc7b52 2016-09-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - -v6.6.1-nightly201609197d9afc7b52 2016-09-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - -v6.6.1-nightly201609187d9afc7b52 2016-09-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - -v6.6.1-nightly201609177d9afc7b52 2016-09-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - -v6.6.1-nightly201609167d9afc7b52 2016-09-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - -v6.6.1-nightly201609157d9afc7b52 2016-09-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - -v6.5.1-nightly20160914180867d6a6 2016-09-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v6.5.1-nightly20160913180867d6a6 2016-09-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v6.5.1-nightly20160912180867d6a6 2016-09-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v6.5.1-nightly20160911180867d6a6 2016-09-11 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v6.5.1-nightly20160910180867d6a6 2016-09-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v6.5.1-nightly20160909180867d6a6 2016-09-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v6.5.1-nightly20160908180867d6a6 2016-09-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v6.5.1-nightly20160907180867d6a6 2016-09-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v6.5.1-nightly20160906180867d6a6 2016-09-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v6.5.1-nightly20160905180867d6a6 2016-09-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v6.5.1-nightly20160904180867d6a6 2016-09-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v6.5.1-nightly20160903180867d6a6 2016-09-04 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v6.5.1-nightly20160902180867d6a6 2016-09-02 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v6.5.1-nightly20160901180867d6a6 2016-09-01 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v6.5.1-nightly20160831180867d6a6 2016-08-31 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v6.5.1-nightly20160830862610f9e8 2016-08-30 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v6.5.1-nightly20160829862610f9e8 2016-08-30 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v6.5.1-nightly20160828862610f9e8 2016-08-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v6.5.1-nightly20160827862610f9e8 2016-08-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v6.5.1-nightly20160826862610f9e8 2016-08-26 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v6.4.1-nightly20160825723fa9637c 2016-08-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - -v6.4.1-nightly2016082492ecbc4edc 2016-08-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.61 1.9.1 1.2.8 1.0.2h 48 - -v6.4.1-nightly20160823a146e683dd 2016-08-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.61 1.9.1 1.2.8 1.0.2h 48 - -v6.4.1-nightly20160822a146e683dd 2016-08-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.61 1.9.1 1.2.8 1.0.2h 48 - -v6.4.1-nightly20160821ffb2db8285 2016-08-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.61 1.9.1 1.2.8 1.0.2h 48 - -v6.4.1-nightly20160820ffb2db8285 2016-08-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.61 1.9.1 1.2.8 1.0.2h 48 - -v6.4.1-nightly2016081908e2b0408a 2016-08-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.61 1.9.1 1.2.8 1.0.2h 48 - -v6.4.1-nightly2016081808e2b0408a 2016-08-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.61 1.9.1 1.2.8 1.0.2h 48 - -v6.4.1-nightly2016081708e2b0408a 2016-08-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.61 1.9.1 1.2.8 1.0.2h 48 - -v6.4.1-nightly201608165cff1476b2 2016-08-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - -v6.3.2-nightly20160815da9bd2fc48 2016-08-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - -v6.3.2-nightly20160814da9bd2fc48 2016-08-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - -v6.3.2-nightly20160813da9bd2fc48 2016-08-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - -v6.3.2-nightly20160812da9bd2fc48 2016-08-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - -v6.3.2-nightly20160811da9bd2fc48 2016-08-11 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - -v6.3.2-nightly20160810da9bd2fc48 2016-08-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - -v6.3.2-nightly2016080975b37a6bac 2016-08-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - -v6.3.2-nightly2016080875b37a6bac 2016-08-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - -v6.3.2-nightly2016080775b37a6bac 2016-08-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - -v6.3.2-nightly2016080675b37a6bac 2016-08-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - -v6.3.2-nightly2016080575b37a6bac 2016-08-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - -v6.3.2-nightly20160804af63871593 2016-08-04 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.59 1.9.1 1.2.8 1.0.2h 48 - -v6.3.2-nightly20160803af63871593 2016-08-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.59 1.9.1 1.2.8 1.0.2h 48 - -v6.3.2-nightly20160802980f4da8c4 2016-08-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.58 1.9.1 1.2.8 1.0.2h 48 - -v6.3.2-nightly20160731e82e80417b 2016-07-31 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.58 1.9.1 1.2.8 1.0.2h 48 - -v6.3.2-nightly20160730e82e80417b 2016-07-30 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 3.10.3 5.0.71.58 1.9.1 1.2.8 1.0.2h 48 - -v6.3.2-nightly20160729e82e80417b 2016-07-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.58 1.9.1 1.2.8 1.0.2h 48 - -v6.3.2-nightly20160728342a85b1a7 2016-07-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - -v6.3.2-nightly20160727342a85b1a7 2016-07-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - -v6.3.2-nightly20160726342a85b1a7 2016-07-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - -v6.3.2-nightly20160725342a85b1a7 2016-07-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - -v6.3.2-nightly20160724342a85b1a7 2016-07-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - -v6.3.2-nightly20160723342a85b1a7 2016-07-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - -v6.3.2-nightly20160722342a85b1a7 2016-07-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - -v6.3.2-nightly20160721342a85b1a7 2016-07-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - -v6.3.1-nightly201607209e9d499b8b 2016-07-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.55 1.9.1 1.2.8 1.0.2h 48 - -v6.3.1-nightly20160719f3182f6971 2016-07-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.0.71.55 1.9.1 1.2.8 1.0.2h 48 - -v6.3.1-nightly20160718c10ade917a 2016-07-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.0.71.55 1.9.1 1.2.8 1.0.2h 48 - -v6.3.1-nightly20160717e1e477e2a0 2016-07-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.0.71.54 1.9.1 1.2.8 1.0.2h 48 - -v6.3.1-nightly20160716e1e477e2a0 2016-07-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.0.71.54 1.9.1 1.2.8 1.0.2h 48 - -v6.3.1-nightly20160715e1e477e2a0 2016-07-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.0.71.54 1.9.1 1.2.8 1.0.2h 48 - -v6.3.1-nightly201607144480b14fda 2016-07-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.54 1.9.1 1.2.8 1.0.2h 48 - -v6.3.1-nightly201607134480b14fda 2016-07-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.54 1.9.1 1.2.8 1.0.2h 48 - -v6.3.1-nightly20160712b4547340ee 2016-07-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.54 1.9.1 1.2.8 1.0.2h 48 - -v6.0.0-nightly20160425eb4201f07a 2016-04-25 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 47 - -v6.0.0-nightly20160424f1294f5bfd 2016-04-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.34 1.9.0 1.2.8 1.0.2g 47 - -v6.0.0-nightly20160423983a809456 2016-04-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.34 1.9.0 1.2.8 1.0.2g 47 - -v6.0.0-nightly201604227940ecfa00 2016-04-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.34 1.9.0 1.2.8 1.0.2g 47 - -v6.0.0-nightly201604211fa8fce210 2016-04-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.34 1.9.0 1.2.8 1.0.2g 47 - -v6.0.0-nightly201604207dc1a87a7b 2016-04-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.33 1.9.0 1.2.8 1.0.2g 47 - -v6.0.0-nightly20160419697790c117 2016-04-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.32 1.9.0 1.2.8 1.0.2g 47 - -v6.0.0-nightly2016041858561cf6a8 2016-04-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.32 1.9.0 1.2.8 1.0.2g 47 - -v6.0.0-nightly20160417978166796e 2016-04-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.32 1.9.0 1.2.8 1.0.2g 47 - -v6.0.0-nightly20160416f49a1d0501 2016-04-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.32 1.9.0 1.2.8 1.0.2g 47 - -v6.0.0-nightly2016041581fd4581b9 2016-04-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.32 1.9.0 1.2.8 1.0.2g 47 - -v6.0.0-nightly201604154a74fc9776 2016-04-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.32 1.9.0 1.2.8 1.0.2g 47 - -v6.0.0-nightly20160307449684752c 2016-03-07 linux-arm64,linux-ppc64le,linux-x64,linux-x86,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.9.385.27 1.8.0 1.2.8 1.0.2g 47 - -v6.0.0-nightly20160307061ebb39c9 2016-03-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.9.385.27 1.8.0 1.2.8 1.0.2g 47 - -v6.0.0-nightly201603058af4bb86c0 2016-03-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.9.385.27 1.8.0 1.2.8 1.0.2g 47 - -v6.0.0-nightly2016030417924703d6 2016-03-04 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.9.385.27 1.8.0 1.2.8 1.0.2g 47 - -v6.0.0-nightly20160303831b30eeb7 2016-03-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2g 47 - -v6.0.0-nightly201603024c724dd439 2016-03-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2g 47 - -v6.0.0-nightly20160301d9f7a597e4 2016-03-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2g 47 - -v6.0.0-nightly20160229f296a7f16f 2016-02-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2f 47 - -v6.0.0-nightly20160228f0c06147b3 2016-02-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2f 47 - -v6.0.0-nightly201602277fc6645982 2016-02-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2f 47 - -v6.0.0-nightly201602263e3d941495 2016-02-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2f 47 - -v6.0.0-nightly201602256e6ce09861 2016-02-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2f 47 - -v6.0.0-nightly201602247b0a83d2b0 2016-02-24 headers,linux-arm64,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2f 47 - -v6.0.0-nightly201602102848f84332 2016-02-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2f 47 - -v6.0.0-nightly201602091693349616 2016-02-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2f 47 - -v6.0.0-nightly20160127fcae05e4b5 2016-01-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.8.271.17 1.8.0 1.2.8 1.0.2e 47 - -v6.0.0-nightly201601266a73dbad51 2016-01-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.8.271.17 1.8.0 1.2.8 1.0.2e 47 - -v6.0.0-nightly201601250f8e63caff 2016-01-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.8.271.17 1.8.0 1.2.8 1.0.2e 47 - -v6.0.0-nightly2016012496934cbb30 2016-01-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.8.271.17 1.8.0 1.2.8 1.0.2e 47 - -v6.0.0-nightly2016012355607a0f32 2016-01-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.8.271.17 1.8.0 1.2.8 1.0.2e 47 - -v6.0.0-nightly20160122518548f1d8 2016-01-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.8.271.17 1.8.0 1.2.8 1.0.2e 47 - -v6.0.0-nightly201601215ef9989bd6 2016-01-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.7.80.32 1.8.0 1.2.8 1.0.2e 47 - -v6.0.0-nightly201601201e5a02628c 2016-01-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.7.80.32 1.8.0 1.2.8 1.0.2e 47 - -v6.0.0-nightly20160119df4d209ad5 2016-01-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.7.80.32 1.8.0 1.2.8 1.0.2e 47 - -v6.0.0-nightly20160118eee9dc7e9d 2016-01-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.7.80.32 1.8.0 1.2.8 1.0.2e 47 - -v6.0.0-nightly2016011783d2b7707e 2016-01-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.7.80.32 1.8.0 1.2.8 1.0.2e 47 - -v6.0.0-nightly20160116da550aa063 2016-01-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.7.80.32 1.8.0 1.2.8 1.0.2e 47 - -v6.0.0-nightly2016011666b9c0d8bd 2016-01-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.7.80.32 1.8.0 1.2.8 1.0.2e 47 - -v5.11.2-nightly2016062103d36aea4f 2016-06-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016062003d36aea4f 2016-06-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016061903d36aea4f 2016-06-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016061827785aeb37 2016-06-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016061727785aeb37 2016-06-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016061621552bd0c5 2016-06-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016061521552bd0c5 2016-06-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016061421552bd0c5 2016-06-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016061321552bd0c5 2016-06-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016061221552bd0c5 2016-06-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016061121552bd0c5 2016-06-11 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016061021552bd0c5 2016-06-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016060921552bd0c5 2016-06-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016060821552bd0c5 2016-06-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016060721552bd0c5 2016-06-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016060621552bd0c5 2016-06-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016060521552bd0c5 2016-06-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016060421552bd0c5 2016-06-04 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016060321552bd0c5 2016-06-03 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016060221552bd0c5 2016-06-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016060121552bd0c5 2016-06-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016053121552bd0c5 2016-05-31 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016053021552bd0c5 2016-05-30 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016052921552bd0c5 2016-05-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016052821552bd0c5 2016-05-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016052721552bd0c5 2016-05-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016052621552bd0c5 2016-05-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016052521552bd0c5 2016-05-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016052421552bd0c5 2016-05-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016052321552bd0c5 2016-05-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016052221552bd0c5 2016-05-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016052121552bd0c5 2016-05-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016052021552bd0c5 2016-05-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016051921552bd0c5 2016-05-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016051821552bd0c5 2016-05-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016051721552bd0c5 2016-05-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016051621552bd0c5 2016-05-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016051521552bd0c5 2016-05-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016051421552bd0c5 2016-05-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016051321552bd0c5 2016-05-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016051221552bd0c5 2016-05-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016051021552bd0c5 2016-05-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016050921552bd0c5 2016-05-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016050821552bd0c5 2016-05-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016050721552bd0c5 2016-05-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016050621552bd0c5 2016-05-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.2-nightly2016050521552bd0c5 2016-05-05 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.1-nightly20160504bec5d50f1e 2016-05-04 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - -v5.11.1-nightly2016050399920480ae 2016-05-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.11.1-nightly2016050299920480ae 2016-05-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.11.1-nightly2016050199920480ae 2016-05-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.11.1-nightly2016043099920480ae 2016-04-30 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.11.1-nightly2016042999920480ae 2016-04-29 linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.11.1-nightly2016042899920480ae 2016-04-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.11.1-nightly2016042799920480ae 2016-04-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.11.1-nightly2016042699920480ae 2016-04-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.11.1-nightly20160425ca215b98e4 2016-04-25 headers,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.11.1-nightly20160424ca215b98e4 2016-04-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.11.1-nightly20160423ca215b98e4 2016-04-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.11.1-nightly20160422ca215b98e4 2016-04-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.11.1-nightly20160421ca215b98e4 2016-04-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.10.2-nightly201604206d9c0c9aa7 2016-04-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.10.2-nightly201604196d9c0c9aa7 2016-04-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.10.2-nightly201604186d9c0c9aa7 2016-04-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.10.2-nightly201604176d9c0c9aa7 2016-04-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.10.2-nightly201604166d9c0c9aa7 2016-04-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.10.2-nightly201604156d9c0c9aa7 2016-04-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.7.2-nightly2016030801c331ea37 2016-03-08 linux-armv7l 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.7.2-nightly2016030701c331ea37 2016-03-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.7.2-nightly2016030601c331ea37 2016-03-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.7.2-nightly2016030501c331ea37 2016-03-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.7.2-nightly2016030401c331ea37 2016-03-04 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.7.2-nightly2016030301c331ea37 2016-03-03 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - -v5.7.1-nightly20160302c83725c604 2016-03-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - -v5.7.1-nightly20160301c83725c604 2016-03-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - -v5.7.1-nightly20160229c83725c604 2016-02-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - -v5.7.1-nightly20160228f349a9a2cf 2016-02-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - -v5.7.1-nightly201602271ecbdec2cf 2016-02-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - -v5.7.1-nightly201602261ecbdec2cf 2016-02-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - -v5.7.1-nightly201602251ecbdec2cf 2016-02-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - -v5.6.1-nightly201602106d8eba0e5e 2016-02-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - -v5.5.1-nightly20160127a8c2050c2d 2016-01-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - -v5.5.1-nightly20160126c8b6de244e 2016-01-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - -v5.5.1-nightly201601252d46ea0d93 2016-01-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - -v5.5.1-nightly201601242d46ea0d93 2016-01-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - -v5.5.1-nightly201601232d46ea0d93 2016-01-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - -v5.5.1-nightly201601222d46ea0d93 2016-01-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - -v5.4.2-nightly20160121e855b596f4 2016-01-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - -v5.4.2-nightly20160120e855b596f4 2016-01-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - -v5.4.2-nightly20160119e855b596f4 2016-01-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - -v5.4.2-nightly20160118e855b596f4 2016-01-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - -v5.4.2-nightly20160117e855b596f4 2016-01-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - -v5.4.2-nightly20160114e855b596f4 2016-01-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - -v5.4.2-nightly20160113e7d1c69707 2016-01-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - -v5.4.1-nightly20160107138e1e501e 2016-01-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - -v5.3.1-nightly20151224b4c51c5b76 2015-12-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - -v5.3.1-nightly2015121717fc5b4e03 2015-12-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - -v5.2.1-nightly20151210cb938aaa33 2015-12-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 - -v5.1.2-nightly201512091c1c1a0f2b 2015-12-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 - -v5.1.2-nightly201512079d16729b20 2015-12-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 - -v5.0.1-nightly2015111484bb74547d 2015-11-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2d 47 - -v5.0.1-nightly2015111384bb74547d 2015-11-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2d 47 - -v5.0.1-nightly2015111347f3735e88 2015-11-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2d 47 - -v5.0.1-nightly2015111247f3735e88 2015-11-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2d 47 - -v5.0.1-nightly2015111181997840f2 2015-11-11 win-x86-exe,win-x86-msi 3.3.12 4.6.85.28 1.7.5 1.2.8 1.0.2d 47 - -v5.0.1-nightly201510294e54dbec51 2015-10-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.6 4.6.85.28 1.7.5 1.2.8 1.0.2d 47 - -v5.0.0-nightly201510266a04cc0a43 2015-10-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi 3.3.6 4.6.85.28 1.7.5 1.2.8 1.0.2d 47 - -v5.0.0-nightly201510226e78382605 2015-10-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.7 4.6.85.25 1.7.5 1.2.8 1.0.2d 47 - -v5.0.0-nightly20151021bf7c3dabb4 2015-10-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.7 4.6.85.25 1.7.5 1.2.8 1.0.2d 47 - -v5.0.0-nightly201510192296a4fc0f 2015-10-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi 2.14.7 4.6.85.25 1.7.5 1.2.8 1.0.2d 46 - -v5.0.0-nightly20151017676e61872f 2015-10-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x86-exe,win-x86-msi 2.14.7 4.6.85.25 1.7.5 1.2.8 1.0.2d 46 - -v5.0.0-nightly20151016676e61872f 2015-10-16 headers,linux-arm64,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x86-exe,win-x86-msi 2.14.7 4.6.85.25 1.7.5 1.2.8 1.0.2d 46 - -v4.0.0-nightly201509079cae65c510 2015-09-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.2 4.5.103.30 1.7.3 1.2.8 1.0.2d 45 - -v0.12.10-nightly20160128a305339f66 2016-01-28 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.14.9 3.28.71.19 1.6.1 1.2.8 1.0.1q 14 - -v0.12.10-nightly20160113801f6ad8a3 2016-01-13 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.14.9 3.28.71.19 1.6.1 1.2.8 1.0.1q 14 - -v0.10.42-nightly20160128b125512a5c 2016-01-28 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.29 3.14.5.9 0.10.36 1.2.8 1.0.1q 11 - -v0.10.42-nightly2016011328ab7b0e75 2016-01-13 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.29 3.14.5.9 0.10.36 1.2.8 1.0.1q 11 - -v0.10.41-nightly20151203036580393d 2015-12-03 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.29 3.14.5.9 0.10.36 1.2.8 1.0.1p 11 - +version date files npm v8 uv zlib openssl modules lts security +v14.0.0-nightly202002222f97e973ff 2020-02-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2020022182afd85a31 2020-02-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly202002201c4e984ed9 2020-02-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200219e6c2277241 2020-02-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200218af19f4116c 2020-02-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly202002174c746a6cfd 2020-02-17 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200216a7c523e26d 2020-02-16 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2020021579296dc2d0 2020-02-15 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2020021413c05cd10c 2020-02-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200213e23b12e130 2020-02-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly202002123eba33eb07 2020-02-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200211fb437c49cf 2020-02-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200210d0413ae8f9 2020-02-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2020020974291e4a7b 2020-02-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly202002088a14884bab 2020-02-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200207d213f21c72 2020-02-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - true +v14.0.0-nightly20200206e001710219 2020-02-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - true +v14.0.0-nightly20200204ee9e689df2 2020-02-04 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200203f7a1ef6fb5 2020-02-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly202002029528f95336 2020-02-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2020020122724894c9 2020-02-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200131a171314003 2020-01-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly202001305cf789e554 2020-01-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly202001290f8941962d 2020-01-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly202001287b7e7bd185 2020-01-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly202001278e245cd4e3 2020-01-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2020012642995a3a11 2020-01-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200125725682cc50 2020-01-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2020012432e7e813e9 2020-01-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly202001239f22fda646 2020-01-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly202001222606e1ed25 2020-01-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200121f0d2df41f8 2020-01-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly202001207d5a86cc05 2020-01-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200119b318926634 2020-01-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200118cc0748f509 2020-01-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200117cf5624c4d8 2020-01-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200116fc4e413554 2020-01-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200115e67dc1e09f 2020-01-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200114689ab46c64 2020-01-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200113a67c5dc064 2020-01-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200112f9c16b87ef 2020-01-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200111be055d103c 2020-01-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200110e468759c7d 2020-01-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200109aff6fffec5 2020-01-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200108a4ed3ea214 2020-01-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200107405e7b4557 2020-01-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2020010657a1ca99ab 2020-01-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2020010575b30c606c 2020-01-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200104d845915d46 2020-01-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly202001034bec6d13f9 2020-01-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200102e9695d93e3 2020-01-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200101c052113238 2020-01-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191231e66c4deda8 2019-12-31 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly201912308a96d05ec7 2019-12-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191229c6822be46c 2019-12-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2019122819291351bb 2019-12-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191227b46efa96cd 2019-12-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly201912265289f80ead 2019-12-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191225398790149d 2019-12-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191224db109e85d6 2019-12-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly201912235707ed21a2 2019-12-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191222312f3086c2 2019-12-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191221118b28abed 2019-12-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly201912209e6c2ba68a 2019-12-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly201912193e5967bacb 2019-12-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191218ea86f8c902 2019-12-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - true +v14.0.0-nightly20191217b376965e50 2019-12-17 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly201912163743fe1955 2019-12-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly201912153ead1c2fb7 2019-12-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191214d06efafe6b 2019-12-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191213afa9a7206c 2019-12-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191212086c7b41b2 2019-12-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64 6.13.1 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191211855ca736de 2019-12-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64 6.13.1 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly201912107629fb25f2 2019-12-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191209ba61253672 2019-12-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191208d1f4936fab 2019-12-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191207cf5ce2c9e1 2019-12-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191206eea5bb4160 2019-12-06 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly201912051549c8e077 2019-12-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191204ff2ed3ec85 2019-12-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191203cc3f2b386c 2019-12-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191202c5fc802abc 2019-12-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2019120149fb529139 2019-12-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191130246557eb11 2019-11-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191129fad952adbd 2019-11-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.23 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191128ea7a6f9dbd 2019-11-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.23 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2019112773a244fcaf 2019-11-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.23 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191126a6fd2828c6 2019-11-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.23 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191125364ddd8ee6 2019-11-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.23 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2019112478b7ddff1b 2019-11-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.23 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191123eb30b2c819 2019-11-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.23 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191122a18ec07406 2019-11-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.23 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly201911218138e9ce50 2019-11-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.20 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly201911209d09969f4c 2019-11-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.0 7.9.317.20 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191119c1f0e80989 2019-11-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.0 7.9.317.20 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191118850f38125c 2019-11-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.0 7.9.317.20 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191117f4061e2253 2019-11-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.0 7.9.317.20 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191116f61882bce4 2019-11-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.0 7.9.317.20 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191115c71b89eb06 2019-11-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.0 7.9.317.20 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191114ed401236f6 2019-11-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.0 7.9.317.20 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2019111335ec01097b 2019-11-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.0 7.9.317.20 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191112e66a2acc4c 2019-11-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.0 7.9.317.20 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly201911118ac771b809 2019-11-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.0 7.9.317.20 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly201911104b97c3addb 2019-11-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.0 7.9.317.20 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191109dde8fd3fab 2019-11-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.1 7.9.317.20 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2019110855f4db183f 2019-11-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.1 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v14.0.0-nightly2019110735ae49db51 2019-11-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.1 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v14.0.0-nightly20191106b6201abacf 2019-11-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.1 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v14.0.0-nightly201911051f2fdc9538 2019-11-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.1 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v14.0.0-nightly20191104bdee976d54 2019-11-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.1 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v14.0.0-nightly201911033a076bae9c 2019-11-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.1 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v14.0.0-nightly20191102312c02d25e 2019-11-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.1 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v14.0.0-nightly201911012d8307e199 2019-11-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.1 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v14.0.0-nightly2019103199247e7662 2019-10-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.1 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v14.0.0-nightly20191030050a3b1d75 2019-10-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v14.0.0-nightly201910291d89c5d1e1 2019-10-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v14.0.0-nightly201910285783ed7667 2019-10-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v14.0.0-nightly2019102772346bd8d4 2019-10-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v14.0.0-nightly20191026cb36fa67d7 2019-10-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v14.0.0-nightly2019102571bcd05232 2019-10-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v14.0.0-nightly20191024a228e22533 2019-10-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v14.0.0-nightly201910234187fcb200 2019-10-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v13.9.1-nightly20200219de0c6a0361 2020-02-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 79 - - +v13.8.1-nightly202002187c2d33f38f 2020-02-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 79 - - +v13.8.1-nightly2020020671699e9f53 2020-02-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 79 - true +v13.7.1-nightly20200122340a1bd9a0 2020-01-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 79 - - +v13.6.1-nightly20200121cbd84c5ee1 2020-01-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 79 - - +v13.6.1-nightly202001166e978f7d73 2020-01-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 79 - - +v13.6.1-nightly202001126f95f01f95 2020-01-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 79 - - +v13.6.1-nightly202001084a702c3de2 2020-01-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 79 - - +v13.5.1-nightly2020010742d36dca90 2020-01-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 79 - - +v13.5.1-nightly20200104ca235112ae 2020-01-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 79 - - +v13.5.1-nightly20191219d09bca9772 2019-12-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 79 - - +v13.4.1-nightly2019121896a65e85c5 2019-12-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 79 - true +v13.3.1-nightly20191214b3ae532392 2019-12-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 79 - - +v13.3.1-nightly20191212123327d4c1 2019-12-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.34.0 1.2.11 1.1.1d 79 - - +v13.3.1-nightly201912118e16093b64 2019-12-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64 6.13.1 7.9.317.25 1.34.0 1.2.11 1.1.1d 79 - - +v13.3.1-nightly201912107e1dee3347 2019-12-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.34.0 1.2.11 1.1.1d 79 - - +v13.3.1-nightly20191204355b48bd06 2019-12-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.33.1 1.2.11 1.1.1d 79 - - +v13.2.1-nightly2019120319b31c1bc5 2019-12-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.33.1 1.2.11 1.1.1d 79 - - +v13.2.1-nightly201912029ec53cf5c1 2019-12-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.33.1 1.2.11 1.1.1d 79 - - +v13.2.1-nightly20191201cbd50262c0 2019-12-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.33.1 1.2.11 1.1.1d 79 - - +v13.2.1-nightly20191130f37450f580 2019-11-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.33.1 1.2.11 1.1.1d 79 - - +v13.2.1-nightly2019112294e4cbd808 2019-11-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.23 1.33.1 1.2.11 1.1.1d 79 - - +v13.1.1-nightly201911219b71534d23 2019-11-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.22 1.33.1 1.2.11 1.1.1d 79 - - +v13.1.1-nightly20191120c7c566023f 2019-11-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v13.1.1-nightly20191118a93345b7cd 2019-11-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v13.1.1-nightly20191106c568eb5b79 2019-11-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.1 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v13.0.2-nightly20191028e4ab6fced1 2019-10-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v13.0.2-nightly201910258b75aabee9 2019-10-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v13.0.0-nightly2019102271b342f937 2019-10-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v13.0.0-nightly20191021a5bab21458 2019-10-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v13.0.0-nightly20191019425357a11c 2019-10-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.32.0 1.2.11 1.1.1d 79 - - +v13.0.0-nightly20191018c8df5cf74a 2019-10-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.32.0 1.2.11 1.1.1d 79 - - +v13.0.0-nightly20191017c8df5cf74a 2019-10-17 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.32.0 1.2.11 1.1.1d 79 - - +v13.0.0-nightly20191016405a280cf2 2019-10-16 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.32.0 1.2.11 1.1.1d 79 - - +v13.0.0-nightly201910156afed1dc85 2019-10-15 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.8.279.17 1.32.0 1.2.11 1.1.1d 79 - - +v13.0.0-nightly201910145f80df8820 2019-10-14 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.8.279.17 1.32.0 1.2.11 1.1.1d 79 - - +v13.0.0-nightly20191013fce1a5198a 2019-10-13 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.8.279.15 1.32.0 1.2.11 1.1.1d 79 - - +v13.0.0-nightly20191012c64ed10d80 2019-10-12 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.8.279.15 1.32.0 1.2.11 1.1.1d 79 - - +v13.0.0-nightly2019101181bc7b3ba5 2019-10-11 headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.8.279.14 1.32.0 1.2.11 1.1.1d 79 - - +v13.0.0-nightly20191010768287489a 2019-10-10 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.8.279.14 1.32.0 1.2.11 1.1.1d 79 - - +v13.0.0-nightly201910096db45bf7de 2019-10-09 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.8.279.14 1.32.0 1.2.11 1.1.1d 79 - - +v13.0.0-nightly20191008064e111515 2019-10-08 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.8.279.14 1.32.0 1.2.11 1.1.1d 79 - - +v13.0.0-nightly20191007ffd22e8198 2019-10-07 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1d 78 - - +v13.0.0-nightly201910060521a98fd6 2019-10-06 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1d 78 - - +v13.0.0-nightly2019100424011de907 2019-10-04 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1d 78 - - +v13.0.0-nightly2019100388ef086e39 2019-10-03 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1d 78 - - +v13.0.0-nightly20191002ddcd2359f4 2019-10-02 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1d 78 - - +v13.0.0-nightly2019100116e47b976b 2019-10-02 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190930c42ab995c1 2019-09-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190929dd74b163f9 2019-09-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly2019092835bfe0e414 2019-09-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190927ccb524fa16 2019-09-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly201909264d2856ed5a 2019-09-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly201909257333c7163a 2019-09-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190924e078e482c5 2019-09-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly201909234ef3ccbbe0 2019-09-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.10 1.32.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190912902c9fac19 2019-09-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.8 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190911f2e35ff691 2019-09-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.8 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190910c929b15d1d 2019-09-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.8 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190909821799024e 2019-09-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.8 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190908e585caa2be 2019-09-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.8 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190907bbcbce6071 2019-09-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.8 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly2019090672650bcf72 2019-09-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.8 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly2019090517d87d522c 2019-09-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.8 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190904a3307eac0e 2019-09-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 6.10.3 7.7.299.8 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190903d62d2b4560 2019-09-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.8 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly2019090261d973affb 2019-09-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.8 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly201909019ab1e07774 2019-09-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.8 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly2019083198b718572f 2019-08-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.8 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190830c746ba4982 2019-08-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.4 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly201908291d5186e657 2019-08-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.4 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly201908283ae6f5e116 2019-08-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.4 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190827f96f9fbe31 2019-08-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.4 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190826627bf59e8d 2019-08-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.4 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190825b3172f834f 2019-08-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.4 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190824d5c3837061 2019-08-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.4 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly201908232fc87685d9 2019-08-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.4 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190822775048d54c 2019-08-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.4 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190821f70261fb30 2019-08-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.4 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190820317fa3a757 2019-08-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.7.299.4 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190819ec16fdae54 2019-08-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.6.303.28 1.31.0 1.2.11 1.1.1c 77 - - +v13.0.0-nightly2019081841637a530e 2019-08-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.6.303.28 1.31.0 1.2.11 1.1.1c 77 - - +v13.0.0-nightly201908175e3b4d6ed9 2019-08-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.6.303.28 1.31.0 1.2.11 1.1.1c 77 - true +v13.0.0-nightly2019081671b5ce5885 2019-08-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.6.303.28 1.31.0 1.2.11 1.1.1c 77 - true +v13.0.0-nightly201908158ae79c952b 2019-08-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.6.303.28 1.31.0 1.2.11 1.1.1c 77 - - +v13.0.0-nightly20190814427e5348a2 2019-08-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.6.303.28 1.31.0 1.2.11 1.1.1c 77 - - +v13.0.0-nightly20190813a49b20d324 2019-08-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.6.303.28 1.31.0 1.2.11 1.1.1c 77 - - +v13.0.0-nightly2019081215b2d13310 2019-08-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.6.303.28 1.31.0 1.2.11 1.1.1c 77 - - +v13.0.0-nightly201908118ef68e66d0 2019-08-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.6.303.28 1.30.1 1.2.11 1.1.1c 77 - - +v13.0.0-nightly2019081083495e7783 2019-08-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.6.303.28 1.30.1 1.2.11 1.1.1c 77 - - +v13.0.0-nightly2019080944f228c2cc 2019-08-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.6.303.28 1.30.1 1.2.11 1.1.1c 77 - - +v13.0.0-nightly201908080e03c449e3 2019-08-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.6.303.28 1.30.1 1.2.11 1.1.1c 77 - - +v13.0.0-nightly201908070b5b81c82a 2019-08-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.6.303.28 1.30.1 1.2.11 1.1.1c 77 - - +v13.0.0-nightly2019080637d27486fc 2019-08-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.6.303.28 1.30.1 1.2.11 1.1.1c 77 - - +v13.0.0-nightly20190804e3f4ec94b8 2019-08-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.6.303.28 1.30.1 1.2.11 1.1.1c 77 - - +v13.0.0-nightly201908032b03e1d0a5 2019-08-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.6.303.28 1.30.1 1.2.11 1.1.1c 77 - - +v13.0.0-nightly20190802452b393c1f 2019-08-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.6.303.28 1.30.1 1.2.11 1.1.1c 77 - - +v13.0.0-nightly201908018492acfd57 2019-08-01 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly201907317435dc8b2b 2019-07-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly201907301567461052 2019-07-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly2019072962a809fa54 2019-07-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly2019072835cb955865 2019-07-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190727147b9d9792 2019-07-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly2019072664e4b0c0ac 2019-07-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly2019072543e5478e2f 2019-07-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly201907241dc458cdd0 2019-07-24 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,osx-x64-pkg,osx-x64-tar,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly2019072303317f0e8e 2019-07-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190722b686bd79dc 2019-07-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly201907216948a95562 2019-07-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly2019072068c83f962e 2019-07-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly201907192fd2dd7565 2019-07-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190718ed24b8f10a 2019-07-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly2019071754fcb14467 2019-07-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190716d5737a8537 2019-07-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly201907156c430b48b9 2019-07-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190714e12f48ef07 2019-07-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190713cf929c04b0 2019-07-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly2019071286f8f4f791 2019-07-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190711e800f9d68a 2019-07-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190710fe4d53df51 2019-07-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190709db55c3cfc1 2019-07-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly2019070836fdf1aa6c 2019-07-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190707327c6734cb 2019-07-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190706c25cccf130 2019-07-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190705cdd3833bca 2019-07-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly2019070439a935883d 2019-07-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190703d3b10f66bd 2019-07-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly201907029868126546 2019-07-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.0 1.2.11 1.1.1c 74 - - +v13.0.0-nightly2019070120d099af7a 2019-07-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.0 1.2.11 1.1.1c 74 - - +v13.0.0-nightly201906308772da6ea8 2019-06-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.0 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190629334bac79eb 2019-06-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190628d9da0a9912 2019-06-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly2019062763a0f4cdd3 2019-06-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly201906265b4a0cb149 2019-06-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190625e2d445be8f 2019-06-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190624d4549e75d4 2019-06-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190623554ffa3432 2019-06-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190622e4136c1ece 2019-06-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190621bfe4c9c2c0 2019-06-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190620d698983f45 2019-06-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly2019061982fe33f18a 2019-06-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190618779a243f86 2019-06-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly201906179bead0ce85 2019-06-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1b 74 - - +v13.0.0-nightly201906162b7dfbcdbe 2019-06-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1b 74 - - +v13.0.0-nightly2019061552255868c5 2019-06-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1b 74 - - +v13.0.0-nightly201906148cdc1bdad6 2019-06-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1b 74 - - +v13.0.0-nightly2019061343a5170858 2019-06-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1b 74 - - +v13.0.0-nightly201906121f143b8625 2019-06-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1b 74 - - +v13.0.0-nightly2019061162ac84b5f8 2019-06-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1b 74 - - +v13.0.0-nightly201906105bad51406d 2019-06-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1b 74 - - +v13.0.0-nightly20190609abf765e33c 2019-06-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1b 74 - - +v13.0.0-nightly20190608a18e27df9e 2019-06-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1b 74 - - +v13.0.0-nightly20190607b31bfaddeb 2019-06-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1b 74 - - +v13.0.0-nightly201906065c61c5d152 2019-06-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1b 74 - - +v13.0.0-nightly201906052c76874e4c 2019-06-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1b 74 - - +v13.0.0-nightly20190604714a32c41f 2019-06-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1b 74 - - +v13.0.0-nightly201906037e18c650de 2019-06-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1b 74 - - +v13.0.0-nightly20190602187b056408 2019-06-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1b 74 - - +v13.0.0-nightly20190601aa8b820aaa 2019-06-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.29.1 1.2.11 1.1.1b 72 - - +v13.0.0-nightly201905311279d513b8 2019-05-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.29.1 1.2.11 1.1.1b 72 - - +v13.0.0-nightly201905305026db142a 2019-05-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.29.1 1.2.11 1.1.1b 72 - - +v13.0.0-nightly2019052912f5e0f8f8 2019-05-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.29.1 1.2.11 1.1.1b 72 - - +v13.0.0-nightly20190528fc7c5b9795 2019-05-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.29.1 1.2.11 1.1.1b 72 - - +v13.0.0-nightly20190527ac95c2f0f1 2019-05-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.29.1 1.2.11 1.1.1b 72 - - +v13.0.0-nightly20190526dd6481a183 2019-05-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.29.1 1.2.11 1.1.1b 72 - - +v13.0.0-nightly201905257d5cf572f3 2019-05-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.29.1 1.2.11 1.1.1b 72 - - +v13.0.0-nightly2019052477b9ce57e2 2019-05-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.29.1 1.2.11 1.1.1b 72 - - +v13.0.0-nightly20190523165916b1f3 2019-05-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.29.1 1.2.11 1.1.1b 72 - - +v13.0.0-nightly2019052247c5c3da86 2019-05-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.29.1 1.2.11 1.1.1b 72 - - +v13.0.0-nightly201905210ca9297c39 2019-05-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly201905201a9a577a96 2019-05-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly201905195112b3d9a6 2019-05-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly20190518af83b7963f 2019-05-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly201905179375088bd3 2019-05-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly201905169f99d4e252 2019-05-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly2019051553bef423f3 2019-05-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly20190514523a9fbcb4 2019-05-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly201905133309c856bc 2019-05-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly20190512a244b6f591 2019-05-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly20190511ac56dc96e3 2019-05-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly201905106f2bd9dcc3 2019-05-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly20190509e582d11913 2019-05-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly201905089a174db3d8 2019-05-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly20190507fa3eefcb83 2019-05-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly201905068c94d5eccd 2019-05-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly20190505c21693b39d 2019-05-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly20190504cb848b4546 2019-05-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly201905038dae89b396 2019-05-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly20190502e5c8be2bd0 2019-05-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly201905014206e7c2c4 2019-05-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly20190430d33fddb7f4 2019-04-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly201904294cf8b4212c 2019-04-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly2019042831b3dd2842 2019-04-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly20190427eca71e5a0c 2019-04-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly2019042608a9c4a996 2019-04-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly2019042580c0b89bbb 2019-04-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly201904249b982feedf 2019-04-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v12.13.1-nightly20191022d9174b4cc5 2019-10-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.7.299.13 1.32.0 1.2.11 1.1.1d 72 Erbium - +v12.12.1-nightly201910123f3c41cfb0 2019-10-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.13 1.32.0 1.2.11 1.1.1d 72 - - +v12.11.2-nightly201910115fdf4a474f 2019-10-11 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.13 1.32.0 1.2.11 1.1.1d 72 - - +v12.11.2-nightly20191010adee99883a 2019-10-10 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.13 1.32.0 1.2.11 1.1.1d 72 - - +v12.11.2-nightly20191002bbbe07a447 2019-10-02 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1c 72 - - +v12.11.1-nightly20190926acd08fdce5 2019-09-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1c 72 - - +v12.10.1-nightly20190925edd7c579e8 2019-09-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1c 72 - - +v12.10.1-nightly201909244dab297c5e 2019-09-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1c 72 - - +v12.10.1-nightly20190923910a27122f 2019-09-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.8 1.32.0 1.2.11 1.1.1c 72 - - +v12.0.0-nightly20190423859421188b 2019-04-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly20190422528d100394 2019-04-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly20190421e9fb92dc42 2019-04-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly201904208d901bb44e 2019-04-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly2019041957ab3b56fc 2019-04-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly20190418d17dfc7bb1 2019-04-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.18 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly2019041709cdc37824 2019-04-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.18 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly2019041653e0f632db 2019-04-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.18 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly201904152fed83dee8 2019-04-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.18 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly201904141fc4255221 2019-04-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.18 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly201904139b6b567bc4 2019-04-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.18 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly20190412908292cf1f 2019-04-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.18 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly20190411655c90b287 2019-04-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.18 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly2019041041d5666aaa 2019-04-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.18 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly20190409bf766c1b44 2019-04-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.18 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly201904085a8c55f078 2019-04-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.18 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly2019040777dee25efd 2019-04-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.18 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly20190406de23055536 2019-04-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.4.288.18 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly20190405c86883cfac 2019-04-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.4.288.13 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly20190404e1d55a0cbc 2019-04-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.4.288.13 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly2019040398b5ba840e 2019-04-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.4.288.13 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly201904020a5a762a16 2019-04-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.4.288.13 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly2019040166b95362df 2019-04-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.4.288.13 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly20190331bb98f27181 2019-03-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.4.288.13 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly2019033061ef9df958 2019-03-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.4.288.13 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly201903297d0e50dcfe 2019-03-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.4.288.13 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly2019032885546c2a04 2019-03-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.3.492.25 1.27.0 1.2.11 1.1.1b 71 - - +v12.0.0-nightly20190327ed5e69d7e6 2019-03-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.3.492.25 1.27.0 1.2.11 1.1.1b 71 - - +v12.0.0-nightly2019032651256e5d78 2019-03-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.3.492.25 1.27.0 1.2.11 1.1.1b 71 - - +v12.0.0-nightly20190325cdb87d9548 2019-03-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.3.492.25 1.27.0 1.2.11 1.1.1b 71 - - +v12.0.0-nightly201903248330555295 2019-03-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.3.492.25 1.27.0 1.2.11 1.1.1b 71 - - +v12.0.0-nightly20190323afdadbcff5 2019-03-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.3.492.25 1.27.0 1.2.11 1.1.1b 71 - - +v12.0.0-nightly20190322ee429e4b2c 2019-03-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.3.492.25 1.27.0 1.2.11 1.1.1b 71 - - +v12.0.0-nightly20190321f47adfbda5 2019-03-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.3.492.25 1.27.0 1.2.11 1.1.1b 71 - - +v12.0.0-nightly20190320d933cc4b02 2019-03-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.3.492.25 1.27.0 1.2.11 1.1.1b 71 - - +v12.0.0-nightly20190319cd9898a52a 2019-03-19 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.3.492.25 1.27.0 1.2.11 1.1.1b 71 - - +v12.0.0-nightly201903180a00933921 2019-03-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.3.492.25 1.26.0 1.2.11 1.1.1b 71 - - +v12.0.0-nightly201903172f9c9eebb4 2019-03-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.3.492.25 1.26.0 1.2.11 1.1.1b 71 - - +v12.0.0-nightly2019031622de2cfb71 2019-03-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.3.492.25 1.26.0 1.2.11 1.1.1b 71 - - +v12.0.0-nightly20190315cd8b7391dc 2019-03-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.3.492.25 1.26.0 1.2.11 1.1.1b 71 - - +v12.0.0-nightly20190314107c95da0d 2019-03-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1b 68 - - +v12.0.0-nightly20190313e6fa50e953 2019-03-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1b 68 - - +v12.0.0-nightly201903127ac904e5d2 2019-03-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1b 68 - - +v12.0.0-nightly20190311a445244a0c 2019-03-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1b 68 - - +v12.0.0-nightly201903106e81a959d0 2019-03-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1b 68 - - +v12.0.0-nightly201903091acf3b155f 2019-03-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1b 68 - - +v12.0.0-nightly20190308254635198a 2019-03-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1b 68 - - +v12.0.0-nightly201903070fa11654c7 2019-03-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1b 68 - - +v12.0.0-nightly20190306d38cd82513 2019-03-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1b 68 - - +v12.0.0-nightly2019030584ebaaa339 2019-03-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly2019030417b7fa75c3 2019-03-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly2019030360a148ad2e 2019-03-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190302453ed05343 2019-03-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190301584305841d 2019-03-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - true +v12.0.0-nightly201902284a3928e125 2019-02-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190227a1a01d3f27 2019-02-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190226ccd6b12fec 2019-02-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly2019022579a3348d14 2019-02-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly201902247e0ddf66b9 2019-02-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly201902238ebd339031 2019-02-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly201902223d2e862e52 2019-02-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190221042e2640e6 2019-02-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly201902207b198935d6 2019-02-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly201902190ebff65b65 2019-02-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190218c3d889182b 2019-02-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly201902173fbf55a87c 2019-02-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190216a8c3adfbda 2019-02-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly201902158e68dc53b3 2019-02-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly2019021469a8e34003 2019-02-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190213048b977d8e 2019-02-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly2019021293417ac995 2019-02-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly201902110b585457ee 2019-02-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190210e154176b7c 2019-02-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190209016c7b9c32 2019-02-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly201902082ea2000625 2019-02-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190207d310d8df62 2019-02-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190206686043e76e 2019-02-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190205793c63073a 2019-02-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190204d6a32cfe7c 2019-02-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly201902034deb23a2f6 2019-02-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly201902020f8e8f7c6b 2019-02-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly201902017c9fba30ef 2019-02-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly2019013143bba40717 2019-01-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190130dd682cef29 2019-01-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190129aa8fcee7ce 2019-01-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly201901281d60794321 2019-01-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly201901277493db21b6 2019-01-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190126bbb2134e7b 2019-01-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190125399ef4f536 2019-01-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly2019012447062f12a7 2019-01-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190123914af23b3d 2019-01-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly201901222c9e12e496 2019-01-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201901218b2e861da1 2019-01-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20190120c1ac578881 2019-01-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201901192e613a9c30 2019-01-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly2019011855e0ad9ae6 2019-01-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20190117228a3f840d 2019-01-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20190116b367ab2a66 2019-01-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201901152f1ae9eebb 2019-01-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201901147f913293c1 2019-01-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20190113c24fccf064 2019-01-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly2019011291ef9c4c3f 2019-01-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20190111eb664c3b6d 2019-01-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20190110e18b461965 2019-01-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20190109e54d11e2f6 2019-01-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201901089987f1abb9 2019-01-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201901077ed790e9db 2019-01-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201901066c0162149b 2019-01-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20190105992c8ab476 2019-01-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201901041f1a373df0 2019-01-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20190103b5239d9ad3 2019-01-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0-next.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201901025fab50bdaf 2019-01-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0-next.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20190101da9a4d0fb4 2019-01-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0-next.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20181231da13c44b0d 2018-12-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0-next.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20181230903630e72e 2018-12-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0-next.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly2018122900944c7cc2 2018-12-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0-next.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly2018122859fa7f1257 2018-12-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0-next.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201812273614157b78 2018-12-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0-next.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20181226ae73b73eeb 2018-12-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0-next.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201812259391638f88 2018-12-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20181224e7e26b2119 2018-12-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201812230c1a388218 2018-12-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly2018122255a1889af7 2018-12-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201812210461e4cd9b 2018-12-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.28 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20181220e5966ef60c 2018-12-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.28 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20181219e1ab457490 2018-12-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.28 1.24.0 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201812188828426af4 2018-12-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.28 1.24.0 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20181217b54d4a68e3 2018-12-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.28 1.24.0 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201812168f4b924f4a 2018-12-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.28 1.24.0 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201812150bf7d4149c 2018-12-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.28 1.24.0 1.2.11 1.1.0j 68 - - +v12.0.0-nightly2018121449f1db47e2 2018-12-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.28 1.24.0 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20181213a3801e9683 2018-12-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.28 1.24.0 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20181212f194b7f626 2018-12-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.28 1.24.0 1.2.11 1.1.0j 68 - - +v12.0.0-nightly2018121160ce2fd827 2018-12-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.28 1.24.0 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201812104aabd7ed64 2018-12-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.28 1.24.0 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201812094dc10ac7d7 2018-12-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.28 1.24.0 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20181208b5e9086c5a 2018-12-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.28 1.24.0 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20181207cbf0e5a1f4 2018-12-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.28 1.24.0 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20181206aa943d098e 2018-12-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0j 67 - - +v12.0.0-nightly2018120506e5afa948 2018-12-05 aix-ppc64,headers,linux-arm64,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0j 67 - - +v12.0.0-nightly201812040c65314e0e 2018-12-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0j 67 - - +v12.0.0-nightly2018120332fed93aee 2018-12-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0j 67 - - +v12.0.0-nightly201812023fb627bead 2018-12-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0j 67 - - +v12.0.0-nightly20181201f34ca9f783 2018-12-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0j 67 - - +v12.0.0-nightly20181130171b8108df 2018-11-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0j 67 - - +v12.0.0-nightly20181129c481799d72 2018-11-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0j 67 - - +v12.0.0-nightly201811287d18e922ab 2018-11-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0j 67 - true +v12.0.0-nightly2018112711c17e4bc9 2018-11-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0j 67 - - +v12.0.0-nightly20181126e958ee7a70 2018-11-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0j 67 - - +v12.0.0-nightly20181125824f16c861 2018-11-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0j 67 - - +v12.0.0-nightly20181124e0893f03c3 2018-11-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0j 67 - - +v12.0.0-nightly2018112312b69f9765 2018-11-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0j 67 - - +v12.0.0-nightly201811229d34a1e3c0 2018-11-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0i 67 - - +v12.0.0-nightly20181121d88e26de8e 2018-11-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0i 67 - - +v12.0.0-nightly20181120b32c5f0408 2018-11-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0i 67 - - +v12.0.0-nightly201811199801eb9e3a 2018-11-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0i 67 - - +v12.0.0-nightly20181118d964d276db 2018-11-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0i 67 - - +v12.0.0-nightly20181117344a46ad03 2018-11-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0i 67 - - +v12.0.0-nightly2018111662d053b707 2018-11-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0i 67 - - +v12.0.0-nightly201811153212f77ac6 2018-11-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly2018111412554e01f5 2018-11-14 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly20181113dde9b3a0d3 2018-11-13 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly20181112d6f52f5a38 2018-11-12 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly201811111e0005eac9 2018-11-11 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.36 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly20181110d58a0c6285 2018-11-10 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.36 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly2018110983410d6ac8 2018-11-09 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.35 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly20181108dc3bc8928f 2018-11-08 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.35 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly201811078c3f903e4e 2018-11-07 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.35 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly201811069a20a12830 2018-11-06 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.35 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly201811057e1b178fb6 2018-11-05 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.32 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly20181104d8fb81fab3 2018-11-04 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.32 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly20181103d24756bf79 2018-11-03 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.32 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly20181102a8e98f8ea9 2018-11-02 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.32 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly2018110151294c897f 2018-11-01 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.32 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly20181031d690a87b8c 2018-10-31 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.32 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly20181030b255cd48b1 2018-10-30 aix-ppc64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,sunos-x64,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.32 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly201810299697c0820f 2018-10-29 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.32 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly20181028336651bad0 2018-10-28 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.28 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly20181027482b56ae60 2018-10-27 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.28 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly201810266223236151 2018-10-26 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.28 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly2018102524cb1f33d8 2018-10-25 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.28 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly20181024bb79e768e5 2018-10-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.28 1.23.2 1.2.11 1.1.0i 67 - - +v11.1.0-nightly20181101af6d26281f 2018-11-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.32 1.23.2 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20181023d901d16b39 2018-10-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.28 1.23.2 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20181022d2fcd1dd39 2018-10-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.28 1.23.2 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20181021beb0f03e78 2018-10-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.28 1.23.2 1.2.11 1.1.0i 67 - - +v11.0.0-nightly2018102035ed66c776 2018-10-20 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.28 1.23.2 1.2.11 1.1.0i 67 - - +v11.0.0-nightly201810192cb2597d72 2018-10-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.28 1.23.2 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20181018d22ec11e4d 2018-10-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.28 1.23.2 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20181017cf3f8dd42e 2018-10-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.28 1.23.2 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20181016c34eae5f88 2018-10-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.25 1.23.2 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20181015e096df3743 2018-10-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.25 1.23.2 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20181014f569ecf7b3 2018-10-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.25 1.23.2 1.2.11 1.1.0i 67 - - +v11.0.0-nightly201810139f7e3a4040 2018-10-13 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.25 1.23.2 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20181012714c1b88d2 2018-10-12 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.25 1.23.2 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20181011972d0beb59 2018-10-11 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.25 1.23.2 1.2.11 1.1.0i 67 - - +v11.0.0-nightly201810103e809e7de1 2018-10-10 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.24 1.23.2 1.2.11 1.1.0i 67 - - +v11.0.0-nightly201810092ec57a7134 2018-10-09 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.24 1.23.1 1.2.11 1.1.0i 67 - - +v11.0.0-nightly201810081c75ec2c7e 2018-10-08 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.24 1.23.1 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20181007061e09891c 2018-10-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.24 1.23.1 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20181006e273abc01b 2018-10-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.24 1.23.1 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20181005ff3fd3bf80 2018-10-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.22 1.23.1 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20181004cd40d7afac 2018-10-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.22 1.23.1 1.2.11 1.1.0i 67 - - +v11.0.0-nightly2018100337e8381150 2018-10-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.22 1.23.1 1.2.11 1.1.0i 67 - - +v11.0.0-nightly201810029b34dfed76 2018-10-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.20 1.23.1 1.2.11 1.1.0i 67 - - +v11.0.0-nightly201810011be804d625 2018-10-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.20 1.23.1 1.2.11 1.1.0i 67 - - +v11.0.0-nightly2018093070ab3108e2 2018-09-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.20 1.23.1 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20180929ea232bd320 2018-09-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.20 1.23.1 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20180928406e3ad212 2018-09-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.20 1.23.1 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20180927a58f37720d 2018-09-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.20 1.23.1 1.2.11 1.1.0i 67 - - +v11.0.0-nightly201809260ae146cd8e 2018-09-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.20 1.23.1 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20180925ea3bb9add2 2018-09-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.20 1.23.1 1.2.11 1.1.0i 67 - - +v11.0.0-nightly201809244da11f2dc5 2018-09-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.20 1.23.1 1.2.11 1.1.0i 67 - - +v11.0.0-nightly201809238aca934009 2018-09-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.20 1.23.0 1.2.11 1.1.0i 67 - - +v11.0.0-nightly201809222b29df71eb 2018-09-22 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.9.427.23 1.23.0 1.2.11 1.1.0i 66 - - +v11.0.0-nightly2018092156493bf1eb 2018-09-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.9.427.23 1.23.0 1.2.11 1.1.0i 66 - - +v11.0.0-nightly201809200623aabbe1 2018-09-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.9.427.23 1.23.0 1.2.11 1.1.0i 66 - - +v11.0.0-nightly20180919a1381fab8a 2018-09-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.9.427.22 1.23.0 1.2.11 1.1.0i 66 - - +v11.0.0-nightly20180918988be43e33 2018-09-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.9.427.22 1.23.0 1.2.11 1.1.0i 66 - - +v11.0.0-nightly201809171747d707d7 2018-09-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.9.427.22 1.23.0 1.2.11 1.1.0i 66 - - +v11.0.0-nightly201809169c9c01f183 2018-09-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.9.427.22 1.23.0 1.2.11 1.1.0i 66 - - +v11.0.0-nightly20180915de37ba34c5 2018-09-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.9.427.22 1.23.0 1.2.11 1.1.0i 66 - - +v11.0.0-nightly2018091490c93682d1 2018-09-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.9.427.22 1.23.0 1.2.11 1.1.0i 66 - - +v11.0.0-nightly201809131cee085367 2018-09-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.9.427.22 1.23.0 1.2.11 1.1.0i 66 - - +v11.0.0-nightly20180912b36c581d5b 2018-09-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.9.427.22 1.23.0 1.2.11 1.1.0i 66 - - +v11.0.0-nightly20180911121439a8ff 2018-09-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.9.427.22 1.23.0 1.2.11 1.1.0i 66 - - +v11.0.0-nightly20180910932a74ae74 2018-09-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.9.427.22 1.23.0 1.2.11 1.1.0i 66 - - +v11.0.0-nightly2018090967ba8ff31a 2018-09-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.9.427.22 1.23.0 1.2.11 1.1.0i 66 - - +v11.0.0-nightly20180908922a1b03b6 2018-09-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.9.427.22 1.23.0 1.2.11 1.1.0i 66 - - +v11.0.0-nightly20180907e917a23d2e 2018-09-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly201809062bf4697ff4 2018-09-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly2018090565f0323b07 2018-09-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly2018090471f633a32f 2018-09-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly20180903c100d400bd 2018-09-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly2018090259e5a39d30 2018-09-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly20180901c8880ea276 2018-09-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly201808318e189794df 2018-08-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly2018083060465700ed 2018-08-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly201808296e942e7353 2018-08-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly20180828c241f4ac4a 2018-08-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly20180827da8641f3b4 2018-08-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly20180826e10290cc67 2018-08-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly201808255d210d4ac9 2018-08-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly2018082456e331a2a2 2018-08-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly20180823264c99f6c6 2018-08-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly2018082298cf84f2c9 2018-08-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly201808216e9e150b6a 2018-08-21 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly2018082079642ae071 2018-08-20 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly20180819c535bde5da 2018-08-19 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly201808187cbbb27c07 2018-08-18 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly2018081738145344f1 2018-08-17 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly2018081616accff90f 2018-08-16 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly201808150257fd7ce9 2018-08-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly20180814c75c917823 2018-08-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly201808137cec27c799 2018-08-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly2018081201a160a05d 2018-08-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly20180811e0395247c8 2018-08-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly20180810346f2a7bec 2018-08-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly20180809566d11a1ca 2018-08-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly201808086ad12d47f5 2018-08-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly20180807a4c1cf5f86 2018-08-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly20180806933d8eb689 2018-08-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly20180805a196aa2e24 2018-08-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly20180804a2ec80851c 2018-08-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly20180803d68f946fe4 2018-08-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly20180802a3e511b971 2018-08-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly2018080119aa41c6fc 2018-08-01 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly20180731be322bd9ad 2018-07-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly20180730afc5636fe6 2018-07-30 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly201807298c6d1a0686 2018-07-29 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly20180728045b07d518 2018-07-28 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly20180727c91e0ed3ad 2018-07-27 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly201807264d94bb2b1f 2018-07-26 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180725f5a2167eb5 2018-07-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201807245384570486 2018-07-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201807233095eecc47 2018-07-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201807228ac916309b 2018-07-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180721946686521d 2018-07-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180719373aae1f86 2018-07-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180718b75bde3bc5 2018-07-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180717ab10bfe376 2018-07-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180716df97126173 2018-07-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201807153ffbbd3eef 2018-07-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly2018071461cd101e12 2018-07-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201807138cae9b2ff8 2018-07-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.22.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180712acf0606f72 2018-07-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.22.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201807118174d0c8ca 2018-07-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.22.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180710573744caae 2018-07-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180709a478259af7 2018-07-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly2018070801eee530e3 2018-07-08 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180707ff958ad0c0 2018-07-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201807060ef04b8133 2018-07-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180705e021ca28ea 2018-07-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180704f374d6aaf9 2018-07-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180703f85962fe4d 2018-07-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180702484c6c31b0 2018-07-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201807017bdc694267 2018-07-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201806301bf42f4777 2018-06-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180629d6397afbac 2018-06-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly2018062880496a5570 2018-06-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201806278326bea6c2 2018-06-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201806268836a0d780 2018-06-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180625c403eeb7fd 2018-06-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201806246ced651b6c 2018-06-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180623a40e06233e 2018-06-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201806229ca41e9642 2018-06-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201806217a2e2fb36d 2018-06-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180620ed1035d335 2018-06-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201806194970e2bec8 2018-06-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180618a13eba7e9f 2018-06-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly2018061754ee8cb5dd 2018-06-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180616b505d2a1cf 2018-06-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201806152749460ddc 2018-06-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly2018061460e6991291 2018-06-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201806134c166935ae 2018-06-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.45 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly2018061231d5bdea70 2018-06-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.45 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180611f86a181d47 2018-06-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.45 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180610045472528c 2018-06-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.44 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180609ef1f130041 2018-06-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.44 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180608e41ccd4e2d 2018-06-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.44 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly2018060785fe134026 2018-06-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.43 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180606aa08cf1e7a 2018-06-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.43 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201806050300f7c68cffa5de7f0099e3afa95093b0bbbe3c 2018-06-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.43 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly2018053189d211f54a 2018-05-31 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180530c1a87a30e7 2018-05-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201805299f4bf4ca43 2018-05-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201805285624a6f8a7 2018-05-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180527c241b7d85c 2018-05-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180526c700cc42da 2018-05-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180525ac8226115e 2018-05-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201805249a02de7084 2018-05-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201805235823938d15 2018-05-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201805224f0ab76b6c 2018-05-22 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201805217f0f978aff 2018-05-21 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180520df511c6195 2018-05-20 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180519064057b7ad 2018-05-19 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201805180419adc771 2018-05-18 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.31 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201805170d9500daed 2018-05-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.31 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201805162b8cd93246 2018-05-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.31 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180515810af50ba2 2018-05-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180514ffb503be5f 2018-05-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180513c0359f0988 2018-05-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly2018051220509ebee6 2018-05-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180511f145a53a78 2018-05-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180510b267d2aae6 2018-05-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180509d5b259e22b 2018-05-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.2 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180508dd03709148 2018-05-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.2 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201805075efbe4c1e8 2018-05-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.2 1.2.11 1.1.0h 64 - - +v11.0.0-nightly2018050634bd9f318a 2018-05-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.2 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201805051cf7ef6433 2018-05-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.2 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180504cd8ed1c447 2018-05-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180503c493b98b0b 2018-05-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180502392d80a617 2018-05-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180501d3abb60b05 2018-05-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180430283a967e35 2018-04-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180429b55a11d1b1 2018-04-29 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - - +v11.0.0-nightly2018042865d97c96aa 2018-04-28 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180427e10cb7fdda 2018-04-27 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180426d4726d2f3f 2018-04-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - - +v11.0.0-nightly2018042595197ed2b0 2018-04-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - - +v10.16.4-nightly20190923859d47593e9fd97e6a9eae6eeb8b6e910acfe434 2019-09-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1c 64 Dubnium true +v10.16.4-nightly2019092055692ba1605dd6a39c85171847fdbe391573989e 2019-09-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1c 64 Dubnium true +v10.16.4-nightly201909044f41e4f471 2019-09-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1c 64 Dubnium true +v10.16.4-nightly2019082055692ba160 2019-08-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1c 64 Dubnium true +v10.16.4-nightly2019081655692ba160 2019-08-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1c 64 Dubnium true +v10.16.3-nightly20190807b743000a96 2019-08-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1c 64 Dubnium - +v10.16.2-nightly20190801f025f8524b 2019-08-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1c 64 Dubnium - +v10.16.1-nightly201907310339fba1bb 2019-07-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1c 64 Dubnium - +v10.16.1-nightly20190727f332265cda 2019-07-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1c 64 Dubnium - +v10.16.1-nightly201907264a607fab49 2019-07-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1c 64 Dubnium - +v10.16.1-nightly2019071835be08a16f 2019-07-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1b 64 Dubnium - +v10.16.1-nightly20190717c940dc09c6 2019-07-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1b 64 Dubnium - +v10.16.1-nightly20190710d230e6d24a 2019-07-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1b 64 Dubnium - +v10.16.1-nightly201907045323a7e170 2019-07-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1b 64 Dubnium - +v10.16.1-nightly20190703cabcc14f97 2019-07-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1b 64 Dubnium - +v10.16.1-nightly2019062907d46a8a03 2019-06-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1b 64 Dubnium - +v10.16.1-nightly201906268516da1720 2019-06-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1b 64 Dubnium - +v10.16.1-nightly201906085ffe04753e 2019-06-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1b 64 Dubnium - +v10.16.1-nightly20190607609d2b9ea4 2019-06-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1b 64 Dubnium - +v10.16.1-nightly201905296e849c3326 2019-05-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1b 64 Dubnium - +v10.15.4-nightly20190522cda0d16414 2019-05-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1b 64 Dubnium - +v10.15.4-nightly2019052025d73aa187 2019-05-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.27.0 1.2.11 1.1.1b 64 Dubnium - +v10.15.4-nightly20190517ec02117232 2019-05-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.27.0 1.2.11 1.1.1b 64 Dubnium - +v10.15.4-nightly20190516865bceff1a 2019-05-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.24.1 1.2.11 1.1.1b 64 Dubnium - +v10.15.4-nightly20190514ebe51a4768 2019-05-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.24.1 1.2.11 1.1.1a 64 Dubnium - +v10.15.4-nightly2019051129c6530bbd 2019-05-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.24.1 1.2.11 1.1.1a 64 Dubnium - +v10.15.4-nightly201905019101d9368f 2019-05-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0-next.0 6.8.275.32 1.24.1 1.2.11 1.1.1a 64 Dubnium - +v10.15.4-nightly201904290c3dbc76a2 2019-04-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0-next.0 6.8.275.32 1.24.1 1.2.11 1.1.1a 64 Dubnium - +v10.15.4-nightly20190418ca2fd1b251 2019-04-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0-next.0 6.8.275.32 1.24.1 1.2.11 1.1.1a 64 Dubnium - +v10.15.4-nightly2019041707ded7c975 2019-04-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.1a 64 Dubnium - +v10.15.4-nightly201904094f60364201 2019-04-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.1a 64 Dubnium - +v10.15.4-nightly201904062643801d9d 2019-04-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.1a 64 Dubnium - +v10.15.4-nightly20190329b0b73fa561 2019-03-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.1a 64 Dubnium - +v10.15.4-nightly20190320b9188d473b 2019-03-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.4-nightly2019031626288c8ab7 2019-03-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.4-nightly2019031538c9d2bfea 2019-03-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.4-nightly20190313b5588daef0 2019-03-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.4-nightly20190306f612a714fa 2019-03-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.3-nightly20190301156e4c8e89 2019-03-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.2-nightly201902215711238b4e 2019-02-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.2-nightly2019022013f9356b04 2019-02-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.2-nightly2019021415756e0acc 2019-02-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.2-nightly201902136be2d6187c 2019-02-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.2-nightly20190212be17cc59c7 2019-02-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.2-nightly201902063b9fd0881a 2019-02-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.2-nightly20190205e20e3472a4 2019-02-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.2-nightly201901307840f713ce 2019-01-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.1-nightly201901292d6e145340 2019-01-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.1-nightly20190114755bb9658e 2019-01-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.24.0 1.2.11 1.1.0j 64 Dubnium - +v10.15.1-nightly2019011307d9eb6c2b 2019-01-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.24.0 1.2.11 1.1.0j 64 Dubnium - +v10.15.1-nightly201812311bceb9d397 2018-12-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.1-nightly20181227d04c3c2718 2018-12-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.14.3-nightly2018122617f4208a3b 2018-12-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.14.3-nightly20181225b7bb114e47 2018-12-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.14.3-nightly20181222d21ff98d83 2018-12-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.14.3-nightly2018121577c2cc94b7 2018-12-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.14.3-nightly20181214d35739de8c 2018-12-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.14.3-nightly201812124a858b27c0 2018-12-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.14.2-nightly20181206fb99a4e9fa 2018-12-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.14.2-nightly201812044035ca16c5 2018-12-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.14.2-nightly201811304864cb0038 2018-11-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.14.1-nightly20181129bda1cc703a 2018-11-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.14.1-nightly20181128391f8bf779 2018-11-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.13.1-nightly20181127a66d8774ac 2018-11-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 Dubnium - +v10.13.1-nightly2018112220430ae487 2018-11-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 Dubnium - +v10.13.1-nightly20181118469473d550 2018-11-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 Dubnium - +v10.13.1-nightly201811139a7554a85b 2018-11-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 Dubnium - +v10.13.1-nightly201811082290c315a2 2018-11-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 Dubnium - +v10.13.1-nightly201811058552bb4065 2018-11-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 Dubnium - +v10.13.1-nightly20181102523db5f5a9 2018-11-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 Dubnium - +v10.13.1-nightly201810318e7a12f450 2018-10-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 Dubnium - +v10.12.1-nightly201810283f63297fe8 2018-10-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 - - +v10.12.1-nightly201810208b431ad84c 2018-10-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 - - +v10.12.1-nightly201810165fea320753 2018-10-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 - - +v10.12.1-nightly20181015aecba73e52 2018-10-15 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 - - +v10.12.1-nightly201810148def0379b7 2018-10-14 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 - - +v10.12.1-nightly201810137c9b37e2eb 2018-10-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 - - +v10.12.1-nightly201810123a5887f7a1 2018-10-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 - - +v10.12.1-nightly201810114153114797 2018-10-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 - - +v10.11.1-nightly20181010d16486b215 2018-10-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 - - +v10.11.1-nightly2018100846c7d0d21f 2018-10-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.1 1.2.11 1.1.0i 64 - - +v10.11.1-nightly201810078a0ecd6d35 2018-10-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.1 1.2.11 1.1.0i 64 - - +v10.11.1-nightly20181006cbd851fe6f 2018-10-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.1 1.2.11 1.1.0i 64 - - +v10.11.1-nightly201810042da6f622dc 2018-10-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.1 1.2.11 1.1.0i 64 - - +v10.11.1-nightly201810037d21cc2177 2018-10-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.1 1.2.11 1.1.0i 64 - - +v10.11.1-nightly2018100224c3406d0a 2018-10-02 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.1 1.2.11 1.1.0i 64 - - +v10.11.1-nightly2018092941057feb3d 2018-09-29 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.1 1.2.11 1.1.0i 64 - - +v10.11.1-nightly2018092899fd7a771a 2018-09-28 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.1 1.2.11 1.1.0i 64 - - +v10.11.1-nightly201809267639390032 2018-09-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.1 1.2.11 1.1.0i 64 - - +v10.11.1-nightly20180925f66e9abcb3 2018-09-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.1 1.2.11 1.1.0i 64 - - +v10.11.1-nightly20180924e16dd6d165 2018-09-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.0 1.2.11 1.1.0i 64 - - +v10.11.1-nightly20180921a22485d8f1 2018-09-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.0 1.2.11 1.1.0i 64 - - +v10.10.1-nightly201809205da1f0ca2c 2018-09-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.0 1.2.11 1.1.0i 64 - - +v10.10.1-nightly20180919774afa7d23 2018-09-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.0 1.2.11 1.1.0i 64 - - +v10.10.1-nightly201809183b763cdf77 2018-09-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.0 1.2.11 1.1.0i 64 - - +v10.10.1-nightly20180916f2ae0cb255 2018-09-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.0 1.2.11 1.1.0i 64 - - +v10.10.1-nightly2018091592b695ed26 2018-09-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.0 1.2.11 1.1.0i 64 - - +v10.10.1-nightly20180913108a1695ea 2018-09-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.0 1.2.11 1.1.0i 64 - - +v10.10.1-nightly20180912d03ce9df05 2018-09-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.0 1.2.11 1.1.0i 64 - - +v10.10.1-nightly201809110c3242862a 2018-09-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.0 1.2.11 1.1.0i 64 - - +v10.10.1-nightly2018091036666629f6 2018-09-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.0 1.2.11 1.1.0i 64 - - +v10.10.1-nightly20180909c1c78ca4eb 2018-09-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.0 1.2.11 1.1.0i 64 - - +v10.10.1-nightly20180908e5cdfb0856 2018-09-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.0 1.2.11 1.1.0i 64 - - +v10.10.1-nightly20180907ca06e65b08 2018-09-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.30 1.23.0 1.2.11 1.1.0i 64 - - +v10.9.0-nightly20180906707a37f74f 2018-09-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.30 1.23.0 1.2.11 1.1.0i 64 - - +v10.9.0-nightly201809041ce2ea3cc8 2018-09-04 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.30 1.23.0 1.2.11 1.1.0i 64 - - +v10.9.0-nightly2018090358e90a2191 2018-09-03 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 64 - - +v10.9.0-nightly20180902aecf4e03f7 2018-09-02 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 64 - - +v10.9.0-nightly201809018da21a762f 2018-09-01 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 64 - - +v10.9.0-nightly20180831520167ecc0 2018-08-31 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 64 - - +v10.9.0-nightly2018082909a824fcdd 2018-08-29 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 64 - - +v10.9.0-nightly2018082899f3d1ecb0 2018-08-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 64 - - +v10.9.0-nightly2018082529a5efa3f0 2018-08-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 64 - - +v10.9.0-nightly20180821fc329172ae 2018-08-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.23.0 1.2.11 1.1.0i 64 - - +v10.9.0-nightly20180820f5341f0a83 2018-08-20 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0i 64 - - +v10.9.0-nightly201808194a56313d93 2018-08-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0i 64 - - +v10.9.0-nightly20180816b1adb44b94 2018-08-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0i 64 - - +v10.8.1-nightly2018081382830a809b 2018-08-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 64 - - +v10.8.1-nightly20180812fdeace6a02 2018-08-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 64 - - +v10.8.1-nightly201808104e6be4c659 2018-08-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 64 - - +v10.8.1-nightly20180808a6b9ee9c89 2018-08-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.8.1-nightly2018080744edfa436c 2018-08-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.8.1-nightly20180805d66e52fb8e 2018-08-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.8.1-nightly20180803168abb5801 2018-08-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.8.1-nightly20180802c6a56ae23e 2018-08-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.7.1-nightly2018080162fd84528e 2018-08-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.7.1-nightly20180731f4b6031e39 2018-07-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.7.1-nightly201807272a0fa4792e 2018-07-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.7.1-nightly20180726af6b82469d 2018-07-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.7.1-nightly20180725c44df51249 2018-07-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.7.1-nightly20180722b98bf829d0 2018-07-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.7.1-nightly20180721bd352f0298 2018-07-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.7.1-nightly20180720484140e223 2018-07-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.7.1-nightly20180719ec0ff7008a 2018-07-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.6.1-nightly20180718eef975ebae 2018-07-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.6.1-nightly2018071767908e9933 2018-07-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.6.1-nightly20180716678313d18b 2018-07-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.6.1-nightly201807154ed5d1a623 2018-07-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.6.1-nightly20180712b9bbbbe5d1 2018-07-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.22.0 1.2.11 1.1.0h 64 - - +v10.6.1-nightly2018071092d79212ec 2018-07-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v10.6.1-nightly20180709eaea66e3c0 2018-07-09 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-tar,sunos-x64 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v10.6.1-nightly20180707214c608208 2018-07-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v10.6.1-nightly2018070547b10e30c0 2018-07-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v10.5.1-nightly201807035d6d6fb121 2018-07-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v10.5.1-nightly20180701b28fd37a69 2018-07-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v10.5.1-nightly20180630bb0795a5c5 2018-06-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v10.5.1-nightly20180629e081866f64 2018-06-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v10.5.1-nightly20180626d1b750d360 2018-06-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v10.5.1-nightly2018062523598239d1 2018-06-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v10.5.1-nightly20180623e0bcb6aa17 2018-06-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v10.5.1-nightly20180621fb2592ff12 2018-06-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v10.4.2-nightly20180619bc20ec0c0f 2018-06-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v10.4.2-nightly20180617529d24e3e8 2018-06-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v10.4.2-nightly20180616e4a7e0d28b 2018-06-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v10.4.2-nightly20180615521f8f1d95 2018-06-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v10.4.2-nightly20180614a75e44d135 2018-06-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v10.4.2-nightly201806135d3dfedca2 2018-06-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.45 1.20.3 1.2.11 1.1.0h 64 - - +v10.4.1-nightly201806125752f520b1 2018-06-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.45 1.20.3 1.2.11 1.1.0h 64 - - +v10.4.1-nightly2018061102b404783a 2018-06-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.45 1.20.3 1.2.11 1.1.0h 64 - - +v10.4.1-nightly20180609c725a539f1 2018-06-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.44 1.20.3 1.2.11 1.1.0h 64 - - +v10.4.1-nightly2018060820f8b68a34 2018-06-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.44 1.20.3 1.2.11 1.1.0h 64 - - +v10.4.1-nightly201806070577312852 2018-06-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.43 1.20.3 1.2.11 1.1.0h 64 - - +v10.3.1-nightly201806067c0c61bde1 2018-06-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.43 1.20.3 1.2.11 1.1.0h 64 - - +v10.3.1-nightly20180530471d8156af 2018-05-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v10.2.2-nightly20180526efc7f91354 2018-05-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v10.2.2-nightly201805254963bcc9b4 2018-05-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v10.2.1-nightly20180524be71c5dea9 2018-05-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v10.1.1-nightly20180523235a272838 2018-05-23 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v10.1.1-nightly20180515981a2f7b16 2018-05-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.3 1.2.11 1.1.0h 64 - - +v10.1.1-nightly20180513b6ea5df08a 2018-05-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.3 1.2.11 1.1.0h 64 - - +v10.1.1-nightly20180509f55fdd1e5e 2018-05-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.2 1.2.11 1.1.0h 64 - - +v10.0.1-nightly20180505ff148b987d 2018-05-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.2 1.2.11 1.1.0h 64 - - +v10.0.1-nightly201804254289402aa3 2018-04-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - - +v10.0.0-nightly20180424982adb5994 2018-04-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - - +v10.0.0-nightly201804231c66a10a0c 2018-04-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - - +v10.0.0-nightly20180422e5f53206dd 2018-04-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.0 1.2.11 1.1.0h 64 - - +v10.0.0-nightly201804212a88f02f2f 2018-04-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.0 1.2.11 1.1.0h 64 - - +v10.0.0-nightly201804201b438a7737 2018-04-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.0 1.2.11 1.1.0h 64 - - +v10.0.0-nightly20180419bbdb4af0bd 2018-04-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.0 1.2.11 1.1.0h 64 - - +v10.0.0-nightly2018041872549aa9cd 2018-04-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.0 1.2.11 1.1.0h 64 - - +v10.0.0-nightly201804175eb9f3c91c 2018-04-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.0 1.2.11 1.1.0h 63 - - +v10.0.0-nightly20180416978e1524bb 2018-04-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.23 1.20.0 1.2.11 1.1.0h 63 - - +v10.0.0-nightly20180415b003c86bf4 2018-04-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.23 1.20.0 1.2.11 1.1.0h 63 - - +v10.0.0-nightly2018041491e0f8db11 2018-04-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.23 1.20.0 1.2.11 1.1.0h 63 - - +v10.0.0-nightly201804132a6ab9b37b 2018-04-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.23 1.20.0 1.2.11 1.1.0h 63 - - +v10.0.0-nightly201804120aab8ff602 2018-04-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.23 1.20.0 1.2.11 1.1.0h 63 - - +v10.0.0-nightly2018041142d8976dff 2018-04-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.20.0 1.2.11 1.1.0h 62 - - +v10.0.0-nightly20180410d1156da815 2018-04-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.20.0 1.2.11 1.1.0h 62 - - +v10.0.0-nightly20180409244af7a9d5 2018-04-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.20.0 1.2.11 1.0.2o 62 - - +v10.0.0-nightly2018040808a36a0666 2018-04-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.20.0 1.2.11 1.0.2o 62 - - +v10.0.0-nightly2018040777b52fd58f 2018-04-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.20.0 1.2.11 1.0.2o 62 - - +v10.0.0-nightly2018040653aaa55a3a 2018-04-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.20.0 1.2.11 1.0.2o 62 - - +v10.0.0-nightly20180405b29c36b807 2018-04-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.20.0 1.2.11 1.0.2o 62 - - +v10.0.0-nightly20180404b22a189b43 2018-04-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2o 62 - - +v10.0.0-nightly20180403d54f651910 2018-04-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2o 62 - - +v10.0.0-nightly20180402a9a1f12b42 2018-04-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2o 62 - - +v10.0.0-nightly20180401141be923f3 2018-04-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2o 62 - - +v10.0.0-nightly2018033128b622cb08 2018-03-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2o 62 - - +v10.0.0-nightly2018033083d44bee01 2018-04-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2o 62 - - +v10.0.0-nightly20180329aec019030d 2018-03-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2o 62 - true +v10.0.0-nightly20180328bc690e9ef5 2018-03-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2o 62 - true +v10.0.0-nightly201803278eca6b8d3d 2018-03-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly201803269396b77238 2018-03-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.41 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly201803259125479be9 2018-03-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.41 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly20180324ca22c96f16 2018-03-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.41 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly20180323b41ed29b80 2018-03-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.41 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly20180322e714da6f0a 2018-03-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.41 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly201803219b7a6914a7 2018-03-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.41 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly201803206a958d2bf8 2018-03-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.40 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly201803190fb017d684 2018-03-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.40 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly20180318d74184c2fa 2018-03-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.38 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly201803171329844a08 2018-03-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.38 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly2018031696cb4fb795 2018-03-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.38 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly201803153c61b87e59 2018-03-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.38 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly20180314040dd244de 2018-03-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.38 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly2018031352e869bee8 2018-03-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.31 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly2018031222b6804259 2018-03-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.31 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly2018031198a14e026b 2018-03-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.31 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly2018031097579068b5 2018-03-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.31 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly20180309099e621648 2018-03-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.31 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly201803083dfce5cdad 2018-03-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.31 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly20180307a6c14b2f42 2018-03-07 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.31 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly2018030678a7536db3 2018-03-06 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180305b20af8088a 2018-03-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180304f2d93795bf 2018-03-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - - +v10.0.0-nightly201803035a55a71150 2018-03-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - - +v10.0.0-nightly201803029e9c516512 2018-03-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180301740c426b21 2018-03-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - - +v10.0.0-nightly201802283f78d3fcf8 2018-02-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180227a27e6d7321 2018-02-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180226dbe645f114 2018-02-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180225da886d9a4c 2018-02-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - - +v10.0.0-nightly2018022415e41a9951 2018-02-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180223a29089d7c8 2018-02-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180222fecc64d6dc 2018-02-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly201802216bdc18c592 2018-02-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly201802207514eb3cff 2018-02-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly201802175156342105 2018-02-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180216f25104e136 2018-02-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-exe 5.6.0 6.4.388.44 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180215a16081cbad 2018-02-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.44 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly2018021492c86fd84d 2018-02-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.44 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180213e782715d0a 2018-02-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.44 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly201802123d53848d75 2018-02-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.42 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly201802112aa3e3b00f 2018-02-11 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.42 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly2018021001d049165c 2018-02-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.42 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180209dbd1d1d43f 2018-02-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.42 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180208d3569b623c 2018-02-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.42 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly2018020792ba624fa1 2018-02-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.42 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180206ac829f0135 2018-02-06 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.41 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180205d4b605b990 2018-02-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.41 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly2018020447a984ada0 2018-02-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180203f8fda0d5ad 2018-02-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly2018020289dd21a8ad 2018-02-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180201ad94be84f9 2018-02-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly2018013126ce1ae647 2018-01-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180130e56189ed58 2018-01-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly201801295c8ce90c2f 2018-01-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly201801294a498335f5 2018-01-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180127f29c2cbec5 2018-01-27 osx-x64-pkg 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180126fa33f026cc 2018-01-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180125c016cc2b17 2018-01-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly201801242313424abc 2018-01-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.3.292.48 1.19.1 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201801239870b53810 2018-01-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20180122e7ff00d0c5 2018-01-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201801218803b69c72 2018-01-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20180120e1c29f2c52 2018-01-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20180119cbd634947d 2018-01-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201801187809f386b0 2018-01-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201801171b0d9795b6 2018-01-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20180116f75bc2c1a5 2018-01-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly2018011585739b6c5b 2018-01-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20180114858b48b692 2018-01-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20180113c770f43a91 2018-01-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201801121385e1bc63 2018-01-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20180111470bd39390 2018-01-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201801106e3818f2a2 2018-01-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20180109f3f3f8890c 2018-01-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201801086aac05bf47 2018-01-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201801078a86d9c1cf 2018-01-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20180106b396c4db66 2018-01-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20180105feaf6ac3dc 2018-01-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201801043f2382bd9a 2018-01-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201801033b1e263b7b 2018-01-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201712294117e22cf3 2017-12-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20171228120ea9b5c4 2017-12-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly2017122771396a200d 2017-12-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly2017122603b8ac14e7 2017-12-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly2017122581c2b59609 2017-12-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20171224359819e760 2017-12-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201712238599465d33 2017-12-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20171222b5d415311b 2017-12-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20171221a4f44acd69 2017-12-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20171220d6b1b84ca0 2017-12-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201712193b8da4cbe8 2017-12-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20171218ce38c49fb8 2017-12-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20171217b2432a7f00 2017-12-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201712162ac7aded29 2017-12-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20171214decab712ba 2017-12-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly2017121304ae4862e6 2017-12-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201712127a055f1d39 2017-12-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly2017121151a7d97625 2017-12-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20171210d2626ef6b7 2017-12-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20171209e9d1e1265a 2017-12-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201712084e65f9d504 2017-12-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201712070bc10b0472 2017-12-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2m 60 - - +v10.0.0-nightly20171206cd174df353 2017-12-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2m 60 - - +v10.0.0-nightly201712053549d9c2bc 2017-12-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.18.0 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171204a322b8e316 2017-12-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.18.0 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171203fff4272fa7 2017-12-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.18.0 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171202c589561aaf 2017-12-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.18.0 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171201e9e9863ca7 2017-12-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.18.0 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171130701dc9a86e 2017-11-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly201711294503da8a3a 2017-11-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly201711280fb1e07689 2017-11-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly201711274ca4db0d4c 2017-11-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171126bb4462681c 2017-11-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly2017112529423b49c7 2017-11-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171124887e2327ee 2017-11-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171123088bba31a3 2017-11-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171121a95d88c881 2017-11-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171120ad1967d656 2017-11-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly2017111997ba69f915 2017-11-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171118707cd3f615 2017-11-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171117959c425a19 2017-11-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171116b3127cd537 2017-11-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171115157df5a47c 2017-11-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171114803cacd228 2017-11-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly2017111314d24cc4d2 2017-11-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171112c5a49e148d 2017-11-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly201711117b3446e7bb 2017-11-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly201711106f02da255f 2017-11-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171109f002c3d2ed 2017-11-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171108d597317a20 2017-11-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171107a77bfcaac7 2017-11-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - - +v10.0.0-nightly201711060300565af9 2017-11-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - - +v10.0.0-nightly201711059f3d59eabb 2017-11-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171104291ff72f85 2017-11-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - - +v10.0.0-nightly2017110372f21d248f 2017-11-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171102d4471e06e8 2017-11-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - - +v10.0.0-nightly2017110118df171307 2017-11-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - - +v9.11.2-nightly201804135d9a7f81ae 2018-04-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.20.0 1.2.11 1.0.2o 59 - - +v9.11.2-nightly201804065ecd82d07d 2018-04-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.20.0 1.2.11 1.0.2o 59 - - +v9.11.2-nightly201804056bc6eeeabe 2018-04-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - - +v9.10.2-nightly201804042bdf3ca235 2018-04-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - - +v9.10.2-nightly20180403c1b83fcbc2 2018-04-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - - +v9.10.2-nightly201804020bcad33c7a 2018-04-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - - +v9.10.2-nightly20180330dac5f67e64 2018-04-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - - +v9.10.1-nightly201803284844a263ce 2018-03-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - true +v9.10.0-nightly201803270a18bf1304 2018-03-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.9.1-nightly201803256591d9f761 2018-03-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.9.1-nightly20180324d1c45e258c 2018-03-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.9.1-nightly20180322d3833b0734 2018-03-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.9.1-nightly201803215960cde4eb 2018-03-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.8.1-nightly20180320607b33cfcc 2018-03-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.8.1-nightly20180318d2b99e3774 2018-03-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.8.1-nightly20180317e7ce4d6c13 2018-03-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.8.1-nightly201803158daa6fa902 2018-03-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.8.1-nightly20180308fed51b3a15 2018-03-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.7.2-nightly20180307cde6671b41 2018-03-07 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.7.2-nightly20180305479b622e49 2018-03-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.7.2-nightly20180302e4fe235b5e 2018-03-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.7.1-nightly201803013f3995b7b7 2018-03-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.6.2-nightly201802277853a7fd2a 2018-02-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.6.2-nightly201802262177138db0 2018-02-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.6.2-nightly20180223aec66c660c 2018-02-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.1 1.2.11 1.0.2n 59 - - +v9.6.1-nightly20180222927c1b1a7e 2018-02-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.1 1.2.11 1.0.2n 59 - - +v9.5.1-nightly20180221b9b58100e0 2018-02-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.1 1.2.11 1.0.2n 59 - - +v9.5.1-nightly2018020181da708f73 2018-02-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.1 1.2.11 1.0.2n 59 - - +v9.4.1-nightly20180124dd56bd1591 2018-01-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - - +v9.4.1-nightly20180117722fe464bc 2018-01-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - - +v9.4.1-nightly20180115167e9c6dcd 2018-01-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - - +v9.4.1-nightly20180111506d85bfba 2018-01-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - - +v9.4.1-nightly2018011039970e9caf 2018-01-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - - +v9.3.1-nightly2018010930273d400c 2018-01-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - - +v9.3.1-nightly201712226bd0aff092 2017-12-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - - +v9.3.1-nightly20171213b8ecf3c6f6 2017-12-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - - +v9.2.2-nightly20171212f8143214be 2017-12-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - - +v9.2.1-nightly20171208f0f9e1abf0 2017-12-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2n 59 - - +v9.1.1-nightly20171207c81e9682c4 2017-12-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2n 59 - - +v9.1.1-nightly201711075f5ef4226e 2017-11-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - - +v9.0.1-nightly20171105ed0fbd8d72 2017-11-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - - +v9.0.0-nightly2017103182790d84f2 2017-10-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - - +v9.0.0-nightly20171030e567402aba 2017-10-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - - +v9.0.0-nightly20171029896eaf6820 2017-10-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - - +v9.0.0-nightly201710281c0772444c 2017-10-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - - +v9.0.0-nightly2017102798eab4a461 2017-10-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - - +v9.0.0-nightly20171025d2e44d5e7f 2017-10-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - true +v9.0.0-nightly2017102447ed02cec6 2017-10-24 linux-ppc64le,linux-s390x,linux-x64,linux-x86,sunos-x64,sunos-x86 5.3.0 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - - +v9.0.0-nightly20171021fe4675b301 2017-10-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - - +v9.0.0-nightly20171020686e092202 2017-10-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - - +v9.0.0-nightly201710193c0ebf5aca 2017-10-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - - +v9.0.0-nightly2017101870832bc353 2017-10-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20171017ff747e3fe8 2017-10-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20171016e2015b5347 2017-10-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - - +v9.0.0-nightly2017101542479130a9 2017-10-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20171014971aad1b13 2017-10-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20171013981595c316 2017-10-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20171012bf8f1d3208 2017-10-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - - +v9.0.0-nightly2017101107f1efc2ae 2017-10-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - - +v9.0.0-nightly2017101092146e00fd 2017-10-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20171009fca31be833 2017-10-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - - +v9.0.0-nightly2017100841b65b9fa3 2017-10-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20171007fabd618eef 2017-10-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - - +v9.0.0-nightly201710064f339b54e9 2017-10-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20171004a3cd8ed168 2017-10-04 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly201710037cff6e80bf 2017-10-03 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly201710027069e633ca 2017-10-02 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20171001f9be5fe52a 2017-10-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20170930cec6e21668 2017-09-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly2017092998077446f9 2017-09-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly201709282f2f1cfa87 2017-09-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20170924456d8e21ea 2017-09-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.38 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20170923150b8f7fda 2017-09-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.38 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly2017092220259f9092 2017-09-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.38 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20170921cd1b55a942 2017-09-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.38 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly2017092075606c4f69 2017-09-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.38 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly2017091919766547fa 2017-09-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.38 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20170918c75f87cc4c 2017-09-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.38 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly2017091775f7b2f577 2017-09-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.36 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20170916b0d3bec95c 2017-09-16 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.36 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20170915a5916107dd 2017-09-15 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.36 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly201709141a0727d85e 2017-09-14 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.36 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20170913bf1ca8fb2e 2017-09-13 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.36 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20170912a10856a7d3 2017-09-12 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly2017091061e9ba1271 2017-09-10 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly201709095f22375922 2017-09-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170908aa76ce943b 2017-09-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170907641646463d 2017-09-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly201709068485a7c0b7 2017-09-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170905ea2e6363f2 2017-09-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170904b24e269a48 2017-09-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170903c7c9e20ed0 2017-09-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly2017090208984b26d3 2017-09-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170901dd52cad044 2017-09-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170831365c24591c 2017-08-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170830a80b1621b0 2017-08-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly201708291ffd01cf7f 2017-08-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly201708287854562143 2017-08-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly201708274d893e093a 2017-08-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly2017082699c478eb36 2017-08-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170825a1d34b3f49 2017-08-25 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170824abced13e29 2017-08-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly201708204cff2cc20f 2017-08-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170819467385a49b 2017-08-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly201708184d842e3d66 2017-08-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly2017081760f2fa9a8b 2017-08-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170816e9c0263696 2017-08-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly201708155f31d54720 2017-08-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170814afe68c1868 2017-08-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly2017081395bbb68175 2017-08-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170812ab2b331f5e 2017-08-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly201708117307839b55 2017-08-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly2017081097c43940c8 2017-08-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly201708091e569f42b6 2017-08-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170808f11379d25b 2017-08-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly201708073f98b0f33c 2017-08-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170806e96ca62480 2017-08-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170805ff65a2e051 2017-08-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly201708042dc09f656b 2017-08-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170803d41423fe72 2017-08-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170802e506bcd899 2017-08-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170801cee8d6d65e 2017-08-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.39 1.13.1 1.2.11 1.0.2l 56 - - +v9.0.0-nightly2017072975bf8a9db9 2017-07-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.39 1.13.1 1.2.11 1.0.2l 56 - - +v9.0.0-nightly201707288dce05fa71 2017-07-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.39 1.13.1 1.2.11 1.0.2l 56 - - +v9.0.0-nightly201707259ab3172e5d 2017-07-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - - +v9.0.0-nightly201707245c2d1af310 2017-07-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - - +v9.0.0-nightly2017072369f653dff9 2017-07-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - - +v9.0.0-nightly201707228979b4fc9f 2017-07-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - - +v9.0.0-nightly201707214f87522244 2017-07-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - - +v9.0.0-nightly201707207fdcb68dc3 2017-07-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170719aa496f4bee 2017-07-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170718f406a7ebae 2017-07-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170717a6cec04aaa 2017-07-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170716e8170f2246 2017-07-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170715785a9e5a57 2017-07-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170714016d81ceec 2017-07-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.13.1 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170713598a128ff4 2017-07-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.13.1 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170712f52c707853 2017-07-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - true +v9.0.0-nightly2017071180c9fd9569 2017-07-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - true +v9.0.0-nightly2017071094dd42577c 2017-07-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly2017070918069523f8 2017-07-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170708b647f04df1 2017-07-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly2017070749d13a17b1 2017-07-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170706f651e40350 2017-07-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly201707058520e6f280 2017-07-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly201707045100cc6851 2017-07-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170703fe730d34ce 2017-07-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly201707023129b2c035 2017-07-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly2017070171ca122def 2017-07-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170630e6b69b9418 2017-06-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly2017062947d1e125ac 2017-06-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly2017062850ba13ef0e 2017-06-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170627b714060e08 2017-06-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly201706265fbbd25dc4 2017-06-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly2017062487d682b69a 2017-06-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly201706233b0e800f18 2017-06-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly201706223e178848a5 2017-06-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly2017062132c7f114c5 2017-06-21 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170620d2913384aa 2017-06-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly2017061924ecc331e2 2017-06-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly2017061881c0045378 2017-06-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170617ecf6a46d98 2017-06-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly201706161e2905f46a 2017-06-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170615de4a749788 2017-06-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly201706142f34bf0f77 2017-06-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170613e5a494857a 2017-06-13 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly2017061227cc30aea8 2017-06-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170608d0571a926a 2017-06-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170607eef94a8bf8 2017-06-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170606b830c976b5 2017-06-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2l 55 - - +v9.0.0-nightly201706057024c5a302 2017-06-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2l 55 - - +v9.0.0-nightly201706044d89e3c261 2017-06-04 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2l 55 - - +v9.0.0-nightly20170603917f86ea35 2017-06-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2l 55 - - +v9.0.0-nightly201706021609899142 2017-06-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2l 55 - - +v9.0.0-nightly201706019b730620a7 2017-06-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2k 55 - - +v9.0.0-nightly20170531102e1aa4e3 2017-05-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2k 55 - - +v8.9.1-nightly20171104a815e1b6a2 2017-11-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.46 1.15.0 1.2.11 1.0.2m 57 Carbon - +v8.9.1-nightly2017110308b75c1591 2017-11-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.46 1.15.0 1.2.11 1.0.2m 57 Carbon - +v8.9.1-nightly20171102dfac6cc0bb 2017-11-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.46 1.15.0 1.2.11 1.0.2l 57 Carbon - +v8.9.1-nightly2017103140d82118d8 2017-10-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.46 1.15.0 1.2.11 1.0.2l 57 Carbon - +v8.8.2-nightly20171030f00ba6b142 2017-10-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - - +v8.8.2-nightly201710264359a93cc9 2017-10-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - - +v8.8.1-nightly201710256fbef7f350 2017-10-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - - +v8.7.1-nightly2017102478a6ef46a9 2017-10-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - - +v8.7.1-nightly20171018e34509e8ed 2017-10-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - - +v8.7.1-nightly20171012415821c309 2017-10-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - - +v8.6.1-nightly201710116f42b680e3 2017-10-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - - +v8.6.1-nightly201710109eb991a827 2017-10-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - - +v8.6.1-nightly201710088ae4ae605c 2017-10-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - - +v8.6.1-nightly2017100497f7590c82 2017-10-04 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.14.1 1.2.11 1.0.2l 57 - - +v8.6.1-nightly20171003b22014ef2b 2017-10-03 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.14.1 1.2.11 1.0.2l 57 - - +v8.6.1-nightly20170930e4c6698c29 2017-09-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 57 - - +v8.6.1-nightly2017092937d1779e05 2017-09-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 57 - - +v8.6.1-nightly20170928b6a8e5cb18 2017-09-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.38 1.14.1 1.2.11 1.0.2l 57 - - +v8.5.1-nightly20170921535f8d5281 2017-09-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - - +v8.5.1-nightly201709204efc6fec6b 2017-09-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - - +v8.5.1-nightly20170914a792ea7709 2017-09-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - - +v8.5.1-nightly2017091299dc1f93a7 2017-09-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - - +v8.4.1-nightly201709104b28e0055e 2017-09-10 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - - +v8.3.1-nightly201708182d8d355a5f 2017-08-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v8.3.1-nightly20170814dd521d0a28 2017-08-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v8.3.1-nightly20170813ee2ae0f30b 2017-08-13 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v8.3.1-nightly20170812c5ee34e39b 2017-08-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v8.3.1-nightly20170811a781bb4508 2017-08-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v8.3.1-nightly201708109888bb1238 2017-08-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v8.2.1-nightly2017080791b7843aeb 2017-08-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v8.2.1-nightly201708028a3bc874fa 2017-08-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v8.2.1-nightly2017080132b30d519e 2017-08-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - - +v8.2.1-nightly201707291a5927fc27 2017-07-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - - +v8.2.1-nightly20170728e2356e72e7 2017-07-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - - +v8.2.1-nightly20170724bdcd496c98 2017-07-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - - +v8.2.1-nightly201707236fc0ceab00 2017-07-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - - +v8.2.1-nightly2017072224b384d6a0 2017-07-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - - +v8.2.1-nightly201707206fce1a314e 2017-07-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - - +v8.1.5-nightly20170718e9491f1cd4 2017-07-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.37 1.13.1 1.2.11 1.0.2l 57 - - +v8.1.5-nightly201707128d1f3dae37 2017-07-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 57 - - +v8.1.5-nightly20170711f457b05499 2017-07-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 57 - - +v8.1.4-nightly20170704c2c7eb1a41 2017-07-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 57 - - +v8.1.4-nightly20170630ff71987764 2017-06-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 57 - - +v8.1.4-nightly2017062982dc65bf6b 2017-06-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 57 - - +v8.1.3-nightly201706220b96a2640b 2017-06-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 57 - - +v8.1.3-nightly20170620f64ea03a3a 2017-06-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 57 - - +v8.1.3-nightly201706175238fa248f 2017-06-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.35 1.12.0 1.2.11 1.0.2l 57 - - +v8.1.2-nightly20170614a1b27dbfb4 2017-06-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.8.283.41 1.12.0 1.2.11 1.0.2l 57 - - +v8.1.1-nightly2017061323318c7661 2017-06-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.8.283.41 1.12.0 1.2.11 1.0.2l 57 - - +v8.1.0-nightly20170612f6fc46e036 2017-06-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.8.283.41 1.12.0 1.2.11 1.0.2l 57 - - +v8.0.0-nightly20170530effeff1843 2017-05-30 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly2017052910913271bf 2017-05-29 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly2017052890877003c1 2017-05-28 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0-beta.56 5.8.283.41 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly20170527f84666f923 2017-05-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0-beta.56 5.8.283.41 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly2017052619685eac65 2017-05-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0-beta.56 5.8.283.41 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly20170525413691fde0 2017-05-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0-beta.56 5.8.283.40 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly20170524260cd411d4 2017-05-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0-beta.56 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly2017052360390cd7fb 2017-05-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0-beta.56 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly2017052206f62eb384 2017-05-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly201705212b541471db 2017-05-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly201705208250bfd1e5 2017-05-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly201705196f216710eb 2017-05-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly201705185de722ab6d 2017-05-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly201705176342988053 2017-05-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly2017051611918c4aed 2017-05-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly20170515ef16319eff 2017-05-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly20170514b5ae22dd1c 2017-05-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly2017051384fc069b95 2017-05-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly201705121d5f5aa7e1 2017-05-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly20170511631cb42b4e 2017-05-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly20170510cfe7b34058 2017-05-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly20170509faf6654ff7 2017-05-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly20170508ea1b8a5cbc 2017-05-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly201705073fd890a06e 2017-05-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly2017050673d9c0f903 2017-05-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly201705052614d247fb 2017-05-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly201705043f48ab3042 2017-05-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170503d56a7e640f 2017-05-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly201705029802d466cc 2017-05-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly201705010f58d3cbef 2017-05-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170430aa3eab00da 2017-04-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly2017042997ec72b76d 2017-04-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170428b2c7a51dd7 2017-04-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170427892ce06dbd 2017-04-27 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170426d7ba2a6035 2017-04-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170425ba7bac5c37 2017-04-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly2017042485a4e25775 2017-04-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170423cf68280ce1 2017-04-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170422bd97e48d9a 2017-04-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly2017042158066d16d5 2017-04-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170420468275ac79 2017-04-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170419a2843f2cf9 2017-04-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly201704186c912a8216 2017-04-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170417ade80eeb1a 2017-04-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170416b837bd2792 2017-04-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170415e125f174dc 2017-04-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170414635af7dc5f 2017-04-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly201704133900cf66a5 2017-04-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly201704122ced07ccaf 2017-04-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170411b8f416023d 2017-04-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170410b470a85f07 2017-04-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly201704094dde87620a 2017-04-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170408afd5966fa9 2017-04-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170407c6e0ba31ec 2017-04-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170406a94a5da78c 2017-04-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170405491d59da84 2017-04-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170404394b6ac5cb 2017-04-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly2017040353828e8bff 2017-04-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly201704022d039ffa29 2017-04-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly201704010ea45707a4 2017-04-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly201703314d255b04bf 2017-03-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly201703304ddd23f0ec 2017-03-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly2017032961ebfa8d1f 2017-03-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170328fd18243a50 2017-03-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly2017032766e7dc5587 2017-03-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170326d13bd4acc0 2017-03-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170325ed12ea371c 2017-03-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly201703249ff7ed23cd 2017-03-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.6.326.57 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170323ee19e2923a 2017-03-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.6.326.57 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly2017032281ab78e62e 2017-03-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.57 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170321ab2d49bcac 2017-03-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.57 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170320ef4768754c 2017-03-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.57 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly201703185bda5faffd 2017-03-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170317704263139b 2017-03-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly201703165bfd13b81e 2017-03-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170315b5eccc4c7e 2017-03-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170314879d6663ea 2017-03-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170313b170fb7c55 2017-03-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170312efec14a7d1 2017-03-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170311c67207731f 2017-03-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170310b806e18dd7 2017-03-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170309e4fbd8e244 2017-03-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly201703087e0410499d 2017-03-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170307efaab8fccf 2017-03-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170306fd17e8b8d2 2017-03-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly2017030539f7e72440 2017-03-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170304b535e25b27 2017-03-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly201703034cb9f4fde4 2017-03-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170302172be50fe1 2017-03-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly2017030187a039d721 2017-03-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly201702280a44b71c50 2017-02-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170227893632ec07 2017-02-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170226813b312b0e 2017-02-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170225ee7b7f6935 2017-02-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly201702246eb614adc8 2017-02-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly201702238e8fbd80d0 2017-02-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170222a1802e670d 2017-02-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly201702211162e284ca 2017-02-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.11 1.0.2k 52 - - +v8.0.0-nightly20170220dfa8abe1b5 2017-02-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.11 1.0.2k 52 - - +v8.0.0-nightly20170219751404dc28 2017-02-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - - +v8.0.0-nightly20170218ca37ec084a 2017-02-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - - +v8.0.0-nightly20170217736814e064 2017-02-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - - +v8.0.0-nightly20170216642eec162d 2017-02-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - - +v8.0.0-nightly201702152ba4eeadbb 2017-02-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - - +v8.0.0-nightly20170214ac602a251a 2017-02-14 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - - +v8.0.0-nightly20170213f2023d7b6f 2017-02-13 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - - +v8.0.0-nightly201702124cafa60c99 2017-02-12 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - - +v8.0.0-nightly201702115cd9d76b02 2017-02-11 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - - +v8.0.0-nightly20170210b471392f8c 2017-02-10 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - - +v8.0.0-nightly20170209a4bb9fdb89 2017-02-09 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - - +v8.0.0-nightly201702082db3b941a9 2017-02-08 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - - +v8.0.0-nightly201702077ba847df1c 2017-02-07 aix-ppc64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - - +v8.0.0-nightly201702063fffebbde3 2017-02-06 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - - +v8.0.0-nightly201702059a0829d728 2017-02-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - - +v8.0.0-nightly20170204e116cbe320 2017-02-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - - +v8.0.0-nightly20170203907ce8dd6c 2017-02-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - - +v8.0.0-nightly2017020258dc229d9a 2017-02-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - - +v8.0.0-nightly201702011b30df1003 2017-02-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - - +v8.0.0-nightly20170131aa8eb8747c 2017-01-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - - +v8.0.0-nightly201701300d290a2ae0 2017-01-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.1 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - - +v8.0.0-nightly201701291155ade002 2017-01-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.1 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - - +v8.0.0-nightly2017012818d4ee97d8 2017-01-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.1 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - - +v8.0.0-nightly20170127b19334e566 2017-01-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.1 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - - +v8.0.0-nightly20170126a67a04d765 2017-01-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.1 5.4.500.46 1.10.2 1.2.8 1.0.2k 51 - - +v8.0.0-nightly20170125124d155f5e 2017-01-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201701247eef09ddcf 2017-01-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201701234757ddcce1 2017-01-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20170122ff75e21662 2017-01-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - - +v8.0.0-nightly2017012193c4820458 2017-01-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20170120ba776b3a56 2017-01-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - - +v8.0.0-nightly2017011949902124a9 2017-01-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20170118622b43997f 2017-01-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20170117d86ff5fc29 2017-01-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20170116a0e13dae1f 2017-01-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - - +v8.0.0-nightly2017011534bf31ea8a 2017-01-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20170114f18b4632b9 2017-01-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201701134424e847d5 2017-01-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201701127f20c8a3d4 2017-01-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20170111fa3836152d 2017-01-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20170110762a303e1f 2017-01-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly2017010941567ee9d8 2017-01-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201701078a12368a20 2017-01-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20170106fc647fddff 2017-01-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201701056830849b2e 2017-01-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly2017010426bf9545e0 2017-01-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201701037c77932fa2 2017-01-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20170102b978aff719 2017-01-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20170101b465cd07fe 2017-01-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161231a6ca94a5f5 2016-12-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201612302213f3640a 2016-12-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201612298dcebe8c42 2016-12-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201612281b2d3f7ae7 2016-12-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161226499efbd085 2016-12-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly2016122545c9ca7fd4 2016-12-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161224ff88a5a25b 2016-12-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201612230bdd39f729 2016-12-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly2016122244b38bb001 2016-12-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201612219e4a899d31 2016-12-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161220613798335c 2016-12-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201612195d14602181 2016-12-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201612180d3ac89ff7 2016-12-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201612174a257568e2 2016-12-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161216885c80f3de 2016-12-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201612154a5c719be5 2016-12-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201612143c29b2f851 2016-12-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161213832960592f 2016-12-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161212a8e87084cf 2016-12-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161211aa77b767b6 2016-12-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201612107c2dbd13b5 2016-12-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161209d8c7534fcd 2016-12-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161208df3978421b 2016-12-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161207b0c10a24a6 2016-12-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201612068951d3e0e5 2016-12-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161205196d27dd8c 2016-12-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201612045be66db688 2016-12-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161203e21e12944c 2016-12-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161202479822c45e 2016-12-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161201cf719152b0 2016-12-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161130330e63c581 2016-11-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201611295887c2ba38 2016-11-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201611284fffe32a4b 2016-11-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201611276b2aa1a2b9 2016-11-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161126951ba0d0a9 2016-11-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161125630c63ee68 2016-11-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201611245cf0157b82 2016-11-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161123fd644f51f8 2016-11-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201611223f1e38c847 2016-11-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201611213cbb553df8 2016-11-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161120440057eae0 2016-11-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201611198f05611a5c 2016-11-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly2016111806198964e2 2016-11-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201611171fca11e114 2016-11-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161116367065be4b 2016-11-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161115a804627837 2016-11-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161114fc44bd4d0b 2016-11-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161113195989d3a3 2016-11-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161112f673c97548 2016-11-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201611114affb8929f 2016-11-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161110ca57912e05 2016-11-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161109d548d28f51 2016-11-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201611080b5191f15d 2016-11-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201611071aa595e5bd 2016-11-07 aix-ppc64,headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161106f8f67d253e 2016-11-06 aix-ppc64,headers,linux-x64,linux-x86,osx-x64-tar,src,sunos-x86 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161105a99b441c2c 2016-11-05 aix-ppc64,headers,linux-x64,linux-x86,osx-x64-tar,src,sunos-x86 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201611041a55e9a567 2016-11-04 aix-ppc64,headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201611033c1e5b366f 2016-11-03 aix-ppc64,headers,linux-x64,linux-x86,osx-x64-tar,src,sunos-x86 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly2016110254d34314e3 2016-11-02 aix-ppc64,headers,linux-x64,linux-x86,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly2016110121427fded9 2016-11-01 aix-ppc64,headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201610310e92bb99c6 2016-10-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161030b9f6a2dc05 2016-10-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161029ec7c27f4cb 2016-10-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161028758ca8d179 2016-10-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201610274d896c44f3 2016-10-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201610268f00455c51 2016-10-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161025e8eaaa7724 2016-10-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.9.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201610245532a7adec 2016-10-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201610236e5389eb5a 2016-10-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201610225d818ccc22 2016-10-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201610206845d6e318 2016-10-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161019ef030da818 2016-10-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201610180e6750d1cd 2016-10-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - true +v7.10.1-nightly2017050369a8053e8a 2017-05-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.5.372.43 1.11.0 1.2.11 1.0.2k 51 - - +v7.9.1-nightly20170411675ece47b3 2017-04-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.5.372.43 1.11.0 1.2.11 1.0.2k 51 - - +v7.8.1-nightly20170329517f13b607 2017-03-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.5.372.43 1.11.0 1.2.11 1.0.2k 51 - - +v7.7.5-nightly20170322bc664cb034 2017-03-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.42 1.11.0 1.2.11 1.0.2k 51 - - +v7.7.4-nightly20170315753adee6aa 2017-03-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - - +v7.7.3-nightly20170309c62798034a 2017-03-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - - +v7.7.2-nightly20170302b20bc130ef 2017-03-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - - +v7.7.1-nightly201703019c75f4c78a 2017-03-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - - +v7.6.1-nightly201702227a6367017c 2017-02-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.11 1.0.2k 51 - - +v7.5.1-nightly2017020113a024d531 2017-02-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.4.500.48 1.10.2 1.2.8 1.0.2k 51 - - +v7.4.1-nightly20170104e07b6516d7 2017-01-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v7.3.1-nightly20161221586967a078 2016-12-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v7.2.2-nightly20161207c2cc11b3c6 2016-12-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v7.2.1-nightly201611248cabe28efb 2016-11-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - - +v7.2.0-nightly20161123c1aa949064 2016-11-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - - +v7.1.1-nightly201611093daf11635d 2016-11-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v7.0.1-nightly2016102527e1749dcb 2016-10-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly201610246bbdd668bd 2016-10-24 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-tar,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly2016102260042ca70e 2016-10-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly20161020d62e7bd1f9 2016-10-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly201610193518372835 2016-10-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly20161017e6d1d54230 2016-10-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly201610171fcd088fd9 2016-10-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly20161016f7842ad169 2016-10-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly20161015113c697ded 2016-10-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly20161014835fbeee00 2016-10-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly201610146eece7773e 2016-10-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly20161013e4ee09a5b3 2016-10-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly20161013804d57db67 2016-10-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly201610113d54ea4304 2016-10-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly20161010c9dade48b4 2016-10-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly201610097542bdddda 2016-10-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly20161008b35f22b135 2016-10-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201610087084b9c5a1 2016-10-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly201610074d6297fef0 2016-10-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly20161006bd0bedb86a 2016-10-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly201610057b5ffa46fe 2016-10-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly20161004e10516d5a4 2016-10-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly20161003b3d283acd4 2016-10-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly201610023c5cf12709 2016-10-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.27 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly20161001c8c2544cd9 2016-10-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.27 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly20160930f5d997c476 2016-09-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.27 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly2016092933dd4ec645 2016-09-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.27 1.9.1 1.2.8 1.0.2j 51 - true +v7.0.0-nightly201609288cd2306cc3 2016-09-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.27 1.9.1 1.2.8 1.0.2j 48 - true +v7.0.0-nightly201609276b443d1731 2016-09-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.27 1.9.1 1.2.8 1.0.2j 48 - - +v7.0.0-nightly2016092652b6cfb6eb 2016-09-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.4.500.27 1.9.1 1.2.8 1.0.2j 48 - - +v7.0.0-nightly2016092550be885285 2016-09-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.4.500.27 1.9.1 1.2.8 1.0.2i 48 - - +v7.0.0-nightly201609247f71419ee4 2016-09-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.4.500.27 1.9.1 1.2.8 1.0.2i 48 - - +v7.0.0-nightly201609235cb5b1f8c4 2016-09-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.4.500.27 1.9.1 1.2.8 1.0.2i 48 - - +v7.0.0-nightly201609224d958725b4 2016-09-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.4.500.27 1.9.1 1.2.8 1.0.2i 48 - - +v7.0.0-nightly201609217b7d50a29e 2016-09-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201609202b5acda7a2 2016-09-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160919366495d4e2 2016-09-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016091830701a72c0 2016-09-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160917ffe8dffbc4 2016-09-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160916d3834a1fa3 2016-09-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160915ea2a309e3b 2016-09-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201609145ce117bab0 2016-09-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016091353178f908f 2016-09-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160912f1629e78c7 2016-09-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016091183a354c33b 2016-09-11 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160910e57ff455e2 2016-09-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160909cc00be6ace 2016-09-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160908c21458a15d 2016-09-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160907c436437d3e 2016-09-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160906a945244830 2016-09-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160905a290ddfdc9 2016-09-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160904dfe1c7e9b8 2016-09-04 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201609037e8d994e33 2016-09-03 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201609025930d59b0f 2016-09-02 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201609013504a98b72 2016-09-01 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160831266270e618 2016-08-31 win-x64-7z,win-x64-exe,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160830eca74a9d91 2016-08-30 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201608291657f12f75 2016-08-29 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160827c8619ea3c3 2016-08-27 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160826a6d53c6779 2016-08-26 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016082518017d675b 2016-08-25 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016082451f96dfcfc 2016-08-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016082309f861f231 2016-08-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201608223242b27b54 2016-08-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201608219a91ffbbde 2016-08-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160820f6a74345d1 2016-08-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016081976007079ec 2016-08-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160818dbbbf217de 2016-08-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201608173177b99737 2016-08-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160816647826017e 2016-08-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.80 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016081524e4488891 2016-08-15 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.80 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201608143fe55f6f91 2016-08-14 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.80 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160813fce4b981ea 2016-08-13 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.80 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160812ca6363b8ae 2016-08-12 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.80 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160811e40234d6e2 2016-08-11 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.80 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201608104878e1c0e5 2016-08-10 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.79 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160809ae25ed3ccd 2016-08-09 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.79 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201608085111e789e6 2016-08-08 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.79 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201608074c86fa30d8 2016-08-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.79 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160806b779eb423d 2016-08-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.79 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160805769f63ccd8 2016-08-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.79 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201608041a9e247c79 2016-08-04 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.79 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016080329e49fc286 2016-08-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.78 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160802b4258bba11 2016-08-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016080175c6d9dd95 2016-08-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160731df4ef63aa5 2016-07-31 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160729f789eb3106 2016-07-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016072899e2d43801 2016-07-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160727868638b903 2016-07-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160726e22ffefff2 2016-07-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160725809aabcc13 2016-07-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160722b3127df59a 2016-07-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201607219359de9dd2 2016-07-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160720814b8c3cf7 2016-07-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160719f56cd32c70 2016-07-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016071817883dfaaf 2016-07-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.76 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160717c897d0ba71 2016-07-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.75 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201607156510eb5ddc 2016-07-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.75 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201607146e15ae98fe 2016-07-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.75 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016071311b23068cd 2016-07-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.75 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160712ef1f7661c7 2016-07-12 headers,linux-arm64,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.75 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160712863952ebad 2016-07-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.75 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160621ecc48a154d 2016-06-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201606205bddc9a741 2016-06-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160619a92089b6bd 2016-06-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160618a06ccdbdb5 2016-06-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160617de9a84186e 2016-06-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160616336b027411 2016-06-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160615357f904169 2016-06-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160614f914f37742 2016-06-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160613e2e615e87e 2016-06-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160612d06820c624 2016-06-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016061147b9b14574 2016-06-11 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160610624734e640 2016-06-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160609a766ebf594 2016-06-09 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160608779091ffdb 2016-06-08 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160607671cffa313 2016-06-07 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160606a32f7eb4be 2016-06-06 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160605f44b18f010 2016-06-05 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160604de0aa23ad7 2016-06-04 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160603d0151695a7 2016-06-03 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160602aac79dfd78 2016-06-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160601f81f0c351a 2016-06-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160531ef9a8fa35b 2016-05-31 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160530894203dae3 2016-05-30 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160529a0c70808b3 2016-05-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160528ead6c2d5bb 2016-05-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201605278af25a39d3 2016-05-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160526841c7025a9 2016-05-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016052518fb4f9a91 2016-05-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160524ed11ac6080 2016-05-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160523c111cf207a 2016-05-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201605225b72f891a8 2016-05-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201605207c3e920ba9 2016-05-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160519395cc885f4 2016-05-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016051803505052a1 2016-05-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160517b53473f0e7 2016-05-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016051678520fa472 2016-05-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.0 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016051532b46d91a7 2016-05-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.0 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160514f4f6c6e815 2016-05-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.0 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160513084b2ec198 2016-05-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.0 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201605122d524bcd1e 2016-05-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.0 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160510572e28efa2 2016-05-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201605097f1111b1bb 2016-05-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016050883aa1f7f3f 2016-05-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201605073f69ea53fd 2016-05-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160506b8573d0555 2016-05-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160505a4f94b4271 2016-05-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160504bc8b525440 2016-05-04 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160503a2e57192eb 2016-05-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - - +v7.0.0-nightly201605028ebec086a5 2016-05-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - - +v7.0.0-nightly201605019f8d0ea6db 2016-05-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - - +v7.0.0-nightly20160430bcce05dba4 2016-04-30 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - - +v7.0.0-nightly20160429706778a902 2016-04-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - - +v7.0.0-nightly20160428ded3aea449 2016-04-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - - +v7.0.0-nightly201604273cdb5063f2 2016-04-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - - +v7.0.0-nightly20160426cc5d9767af 2016-04-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - - +v6.11.1-nightly20170607f7ca483d68 2017-06-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.102 1.11.0 1.2.11 1.0.2k 48 Boron - +v6.10.4-nightly20170502312091a196 2017-05-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.101 1.9.1 1.2.11 1.0.2k 48 Boron - +v6.10.3-nightly2017040479546c0b5a 2017-04-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.98 1.9.1 1.2.11 1.0.2k 48 Boron - +v6.10.2-nightly20170322426968ddd8 2017-03-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.95 1.9.1 1.2.8 1.0.2k 48 Boron - +v6.10.1-nightly20170222ee10f21f3b 2017-02-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.93 1.9.1 1.2.8 1.0.2k 48 Boron - +v6.9.6-nightly201702013f61aae59d 2017-02-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2k 48 Boron - +v6.9.5-nightly2017013187ac44974a 2017-01-31 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2k 48 Boron - +v6.9.5-nightly201701061a47e5f409 2017-01-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2j 48 Boron - +v6.9.4-nightly201701049844692719 2017-01-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2j 48 Boron - +v6.9.3-nightly20161206c350268432 2016-12-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.1.281.88 1.9.1 1.2.8 1.0.2j 48 Boron - +v6.9.2-nightly201610208bb346d61a 2016-10-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 Boron - +v6.9.1-nightly201610183843b96e46 2016-10-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 Boron - +v6.8.2-nightly201610154613c22b00 2016-10-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 - - +v6.8.1-nightly201610132540417ef5 2016-10-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 - - +v6.7.1-nightly20161007d7454e7547 2016-10-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - true +v6.7.1-nightly20161006d7454e7547 2016-10-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - true +v6.7.1-nightly20161005d7454e7547 2016-10-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - true +v6.7.1-nightly20161004d7454e7547 2016-10-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - true +v6.7.1-nightly20161003d7454e7547 2016-10-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - true +v6.7.1-nightly20161002d7454e7547 2016-10-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - true +v6.7.1-nightly20161001d7454e7547 2016-10-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - true +v6.7.1-nightly20160930d7454e7547 2016-09-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - true +v6.7.1-nightly20160929d7454e7547 2016-09-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - true +v6.7.1-nightly20160928d7454e7547 2016-09-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - true +v6.6.1-nightly20160927f8ad0dc0e2 2016-09-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - - +v6.6.1-nightly20160926f8ad0dc0e2 2016-09-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - - +v6.6.1-nightly20160925a14d832884 2016-09-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2i 48 - - +v6.6.1-nightly20160924a14d832884 2016-09-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2i 48 - - +v6.6.1-nightly20160923a14d832884 2016-09-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2i 48 - - +v6.6.1-nightly20160922a14d832884 2016-09-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2i 48 - - +v6.6.1-nightly201609217d9afc7b52 2016-09-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - - +v6.6.1-nightly201609207d9afc7b52 2016-09-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - - +v6.6.1-nightly201609197d9afc7b52 2016-09-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - - +v6.6.1-nightly201609187d9afc7b52 2016-09-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - - +v6.6.1-nightly201609177d9afc7b52 2016-09-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - - +v6.6.1-nightly201609167d9afc7b52 2016-09-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - - +v6.6.1-nightly201609157d9afc7b52 2016-09-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160914180867d6a6 2016-09-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160913180867d6a6 2016-09-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160912180867d6a6 2016-09-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160911180867d6a6 2016-09-11 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160910180867d6a6 2016-09-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160909180867d6a6 2016-09-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160908180867d6a6 2016-09-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160907180867d6a6 2016-09-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160906180867d6a6 2016-09-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160905180867d6a6 2016-09-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160904180867d6a6 2016-09-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160903180867d6a6 2016-09-04 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160902180867d6a6 2016-09-02 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160901180867d6a6 2016-09-01 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160831180867d6a6 2016-08-31 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160830862610f9e8 2016-08-30 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160829862610f9e8 2016-08-30 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160828862610f9e8 2016-08-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160827862610f9e8 2016-08-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160826862610f9e8 2016-08-26 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.4.1-nightly20160825723fa9637c 2016-08-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.4.1-nightly2016082492ecbc4edc 2016-08-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.61 1.9.1 1.2.8 1.0.2h 48 - - +v6.4.1-nightly20160823a146e683dd 2016-08-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.61 1.9.1 1.2.8 1.0.2h 48 - - +v6.4.1-nightly20160822a146e683dd 2016-08-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.61 1.9.1 1.2.8 1.0.2h 48 - - +v6.4.1-nightly20160821ffb2db8285 2016-08-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.61 1.9.1 1.2.8 1.0.2h 48 - - +v6.4.1-nightly20160820ffb2db8285 2016-08-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.61 1.9.1 1.2.8 1.0.2h 48 - - +v6.4.1-nightly2016081908e2b0408a 2016-08-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.61 1.9.1 1.2.8 1.0.2h 48 - - +v6.4.1-nightly2016081808e2b0408a 2016-08-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.61 1.9.1 1.2.8 1.0.2h 48 - - +v6.4.1-nightly2016081708e2b0408a 2016-08-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.61 1.9.1 1.2.8 1.0.2h 48 - - +v6.4.1-nightly201608165cff1476b2 2016-08-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160815da9bd2fc48 2016-08-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160814da9bd2fc48 2016-08-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160813da9bd2fc48 2016-08-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160812da9bd2fc48 2016-08-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160811da9bd2fc48 2016-08-11 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160810da9bd2fc48 2016-08-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly2016080975b37a6bac 2016-08-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly2016080875b37a6bac 2016-08-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly2016080775b37a6bac 2016-08-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly2016080675b37a6bac 2016-08-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly2016080575b37a6bac 2016-08-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160804af63871593 2016-08-04 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.59 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160803af63871593 2016-08-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.59 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160802980f4da8c4 2016-08-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.58 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160731e82e80417b 2016-07-31 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.58 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160730e82e80417b 2016-07-30 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 3.10.3 5.0.71.58 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160729e82e80417b 2016-07-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.58 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160728342a85b1a7 2016-07-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160727342a85b1a7 2016-07-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160726342a85b1a7 2016-07-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160725342a85b1a7 2016-07-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160724342a85b1a7 2016-07-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160723342a85b1a7 2016-07-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160722342a85b1a7 2016-07-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160721342a85b1a7 2016-07-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.1-nightly201607209e9d499b8b 2016-07-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.55 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.1-nightly20160719f3182f6971 2016-07-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.0.71.55 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.1-nightly20160718c10ade917a 2016-07-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.0.71.55 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.1-nightly20160717e1e477e2a0 2016-07-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.0.71.54 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.1-nightly20160716e1e477e2a0 2016-07-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.0.71.54 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.1-nightly20160715e1e477e2a0 2016-07-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.0.71.54 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.1-nightly201607144480b14fda 2016-07-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.54 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.1-nightly201607134480b14fda 2016-07-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.54 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.1-nightly20160712b4547340ee 2016-07-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.54 1.9.1 1.2.8 1.0.2h 48 - - +v6.0.0-nightly20160425eb4201f07a 2016-04-25 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly20160424f1294f5bfd 2016-04-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.34 1.9.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly20160423983a809456 2016-04-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.34 1.9.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly201604227940ecfa00 2016-04-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.34 1.9.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly201604211fa8fce210 2016-04-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.34 1.9.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly201604207dc1a87a7b 2016-04-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.33 1.9.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly20160419697790c117 2016-04-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.32 1.9.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly2016041858561cf6a8 2016-04-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.32 1.9.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly20160417978166796e 2016-04-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.32 1.9.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly20160416f49a1d0501 2016-04-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.32 1.9.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly2016041581fd4581b9 2016-04-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.32 1.9.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly201604154a74fc9776 2016-04-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.32 1.9.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly20160307449684752c 2016-03-07 linux-arm64,linux-ppc64le,linux-x64,linux-x86,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.9.385.27 1.8.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly20160307061ebb39c9 2016-03-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.9.385.27 1.8.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly201603058af4bb86c0 2016-03-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.9.385.27 1.8.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly2016030417924703d6 2016-03-04 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.9.385.27 1.8.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly20160303831b30eeb7 2016-03-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly201603024c724dd439 2016-03-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly20160301d9f7a597e4 2016-03-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly20160229f296a7f16f 2016-02-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2f 47 - - +v6.0.0-nightly20160228f0c06147b3 2016-02-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2f 47 - - +v6.0.0-nightly201602277fc6645982 2016-02-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2f 47 - - +v6.0.0-nightly201602263e3d941495 2016-02-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2f 47 - - +v6.0.0-nightly201602256e6ce09861 2016-02-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2f 47 - - +v6.0.0-nightly201602247b0a83d2b0 2016-02-24 headers,linux-arm64,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2f 47 - - +v6.0.0-nightly201602102848f84332 2016-02-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2f 47 - - +v6.0.0-nightly201602091693349616 2016-02-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2f 47 - - +v6.0.0-nightly20160127fcae05e4b5 2016-01-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.8.271.17 1.8.0 1.2.8 1.0.2e 47 - - +v6.0.0-nightly201601266a73dbad51 2016-01-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.8.271.17 1.8.0 1.2.8 1.0.2e 47 - - +v6.0.0-nightly201601250f8e63caff 2016-01-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.8.271.17 1.8.0 1.2.8 1.0.2e 47 - - +v6.0.0-nightly2016012496934cbb30 2016-01-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.8.271.17 1.8.0 1.2.8 1.0.2e 47 - - +v6.0.0-nightly2016012355607a0f32 2016-01-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.8.271.17 1.8.0 1.2.8 1.0.2e 47 - - +v6.0.0-nightly20160122518548f1d8 2016-01-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.8.271.17 1.8.0 1.2.8 1.0.2e 47 - - +v6.0.0-nightly201601215ef9989bd6 2016-01-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.7.80.32 1.8.0 1.2.8 1.0.2e 47 - - +v6.0.0-nightly201601201e5a02628c 2016-01-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.7.80.32 1.8.0 1.2.8 1.0.2e 47 - - +v6.0.0-nightly20160119df4d209ad5 2016-01-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.7.80.32 1.8.0 1.2.8 1.0.2e 47 - - +v6.0.0-nightly20160118eee9dc7e9d 2016-01-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.7.80.32 1.8.0 1.2.8 1.0.2e 47 - - +v6.0.0-nightly2016011783d2b7707e 2016-01-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.7.80.32 1.8.0 1.2.8 1.0.2e 47 - - +v6.0.0-nightly20160116da550aa063 2016-01-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.7.80.32 1.8.0 1.2.8 1.0.2e 47 - - +v6.0.0-nightly2016011666b9c0d8bd 2016-01-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.7.80.32 1.8.0 1.2.8 1.0.2e 47 - - +v5.11.2-nightly2016062103d36aea4f 2016-06-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016062003d36aea4f 2016-06-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016061903d36aea4f 2016-06-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016061827785aeb37 2016-06-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016061727785aeb37 2016-06-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016061621552bd0c5 2016-06-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016061521552bd0c5 2016-06-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016061421552bd0c5 2016-06-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016061321552bd0c5 2016-06-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016061221552bd0c5 2016-06-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016061121552bd0c5 2016-06-11 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016061021552bd0c5 2016-06-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016060921552bd0c5 2016-06-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016060821552bd0c5 2016-06-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016060721552bd0c5 2016-06-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016060621552bd0c5 2016-06-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016060521552bd0c5 2016-06-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016060421552bd0c5 2016-06-04 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016060321552bd0c5 2016-06-03 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016060221552bd0c5 2016-06-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016060121552bd0c5 2016-06-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016053121552bd0c5 2016-05-31 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016053021552bd0c5 2016-05-30 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016052921552bd0c5 2016-05-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016052821552bd0c5 2016-05-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016052721552bd0c5 2016-05-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016052621552bd0c5 2016-05-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016052521552bd0c5 2016-05-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016052421552bd0c5 2016-05-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016052321552bd0c5 2016-05-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016052221552bd0c5 2016-05-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016052121552bd0c5 2016-05-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016052021552bd0c5 2016-05-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016051921552bd0c5 2016-05-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016051821552bd0c5 2016-05-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016051721552bd0c5 2016-05-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016051621552bd0c5 2016-05-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016051521552bd0c5 2016-05-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016051421552bd0c5 2016-05-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016051321552bd0c5 2016-05-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016051221552bd0c5 2016-05-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016051021552bd0c5 2016-05-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016050921552bd0c5 2016-05-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016050821552bd0c5 2016-05-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016050721552bd0c5 2016-05-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016050621552bd0c5 2016-05-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016050521552bd0c5 2016-05-05 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.1-nightly20160504bec5d50f1e 2016-05-04 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.1-nightly2016050399920480ae 2016-05-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.11.1-nightly2016050299920480ae 2016-05-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.11.1-nightly2016050199920480ae 2016-05-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.11.1-nightly2016043099920480ae 2016-04-30 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.11.1-nightly2016042999920480ae 2016-04-29 linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.11.1-nightly2016042899920480ae 2016-04-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.11.1-nightly2016042799920480ae 2016-04-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.11.1-nightly2016042699920480ae 2016-04-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.11.1-nightly20160425ca215b98e4 2016-04-25 headers,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.11.1-nightly20160424ca215b98e4 2016-04-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.11.1-nightly20160423ca215b98e4 2016-04-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.11.1-nightly20160422ca215b98e4 2016-04-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.11.1-nightly20160421ca215b98e4 2016-04-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.10.2-nightly201604206d9c0c9aa7 2016-04-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.10.2-nightly201604196d9c0c9aa7 2016-04-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.10.2-nightly201604186d9c0c9aa7 2016-04-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.10.2-nightly201604176d9c0c9aa7 2016-04-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.10.2-nightly201604166d9c0c9aa7 2016-04-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.10.2-nightly201604156d9c0c9aa7 2016-04-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.7.2-nightly2016030801c331ea37 2016-03-08 linux-armv7l 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.7.2-nightly2016030701c331ea37 2016-03-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.7.2-nightly2016030601c331ea37 2016-03-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.7.2-nightly2016030501c331ea37 2016-03-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.7.2-nightly2016030401c331ea37 2016-03-04 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.7.2-nightly2016030301c331ea37 2016-03-03 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.7.1-nightly20160302c83725c604 2016-03-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - - +v5.7.1-nightly20160301c83725c604 2016-03-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - - +v5.7.1-nightly20160229c83725c604 2016-02-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - - +v5.7.1-nightly20160228f349a9a2cf 2016-02-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - - +v5.7.1-nightly201602271ecbdec2cf 2016-02-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - - +v5.7.1-nightly201602261ecbdec2cf 2016-02-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - - +v5.7.1-nightly201602251ecbdec2cf 2016-02-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - - +v5.6.1-nightly201602106d8eba0e5e 2016-02-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - - +v5.5.1-nightly20160127a8c2050c2d 2016-01-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.5.1-nightly20160126c8b6de244e 2016-01-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.5.1-nightly201601252d46ea0d93 2016-01-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.5.1-nightly201601242d46ea0d93 2016-01-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.5.1-nightly201601232d46ea0d93 2016-01-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.5.1-nightly201601222d46ea0d93 2016-01-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.4.2-nightly20160121e855b596f4 2016-01-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.4.2-nightly20160120e855b596f4 2016-01-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.4.2-nightly20160119e855b596f4 2016-01-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.4.2-nightly20160118e855b596f4 2016-01-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.4.2-nightly20160117e855b596f4 2016-01-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.4.2-nightly20160114e855b596f4 2016-01-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.4.2-nightly20160113e7d1c69707 2016-01-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.4.1-nightly20160107138e1e501e 2016-01-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.3.1-nightly20151224b4c51c5b76 2015-12-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.3.1-nightly2015121717fc5b4e03 2015-12-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.2.1-nightly20151210cb938aaa33 2015-12-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 - - +v5.1.2-nightly201512091c1c1a0f2b 2015-12-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 - - +v5.1.2-nightly201512079d16729b20 2015-12-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 - - +v5.0.1-nightly2015111484bb74547d 2015-11-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2d 47 - - +v5.0.1-nightly2015111384bb74547d 2015-11-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2d 47 - - +v5.0.1-nightly2015111347f3735e88 2015-11-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2d 47 - - +v5.0.1-nightly2015111247f3735e88 2015-11-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2d 47 - - +v5.0.1-nightly2015111181997840f2 2015-11-11 win-x86-exe,win-x86-msi 3.3.12 4.6.85.28 1.7.5 1.2.8 1.0.2d 47 - - +v5.0.1-nightly201510294e54dbec51 2015-10-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.6 4.6.85.28 1.7.5 1.2.8 1.0.2d 47 - - +v5.0.0-nightly201510266a04cc0a43 2015-10-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi 3.3.6 4.6.85.28 1.7.5 1.2.8 1.0.2d 47 - - +v5.0.0-nightly201510226e78382605 2015-10-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.7 4.6.85.25 1.7.5 1.2.8 1.0.2d 47 - - +v5.0.0-nightly20151021bf7c3dabb4 2015-10-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.7 4.6.85.25 1.7.5 1.2.8 1.0.2d 47 - - +v5.0.0-nightly201510192296a4fc0f 2015-10-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi 2.14.7 4.6.85.25 1.7.5 1.2.8 1.0.2d 46 - - +v5.0.0-nightly20151017676e61872f 2015-10-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x86-exe,win-x86-msi 2.14.7 4.6.85.25 1.7.5 1.2.8 1.0.2d 46 - - +v5.0.0-nightly20151016676e61872f 2015-10-16 headers,linux-arm64,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x86-exe,win-x86-msi 2.14.7 4.6.85.25 1.7.5 1.2.8 1.0.2d 46 - - +v4.0.0-nightly201509079cae65c510 2015-09-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.2 4.5.103.30 1.7.3 1.2.8 1.0.2d 45 - - +v0.12.10-nightly20160128a305339f66 2016-01-28 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.14.9 3.28.71.19 1.6.1 1.2.8 1.0.1q 14 - - +v0.12.10-nightly20160113801f6ad8a3 2016-01-13 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.14.9 3.28.71.19 1.6.1 1.2.8 1.0.1q 14 - - +v0.10.42-nightly20160128b125512a5c 2016-01-28 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.29 3.14.5.9 0.10.36 1.2.8 1.0.1q 11 - - +v0.10.42-nightly2016011328ab7b0e75 2016-01-13 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.29 3.14.5.9 0.10.36 1.2.8 1.0.1q 11 - - +v0.10.41-nightly20151203036580393d 2015-12-03 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.29 3.14.5.9 0.10.36 1.2.8 1.0.1p 11 - - diff --git a/test/fast/Unit tests/mocks/nvm ls-remote lts.txt b/test/fast/Unit tests/mocks/nvm ls-remote lts.txt index ed278be..7d3cc9d 100644 --- a/test/fast/Unit tests/mocks/nvm ls-remote lts.txt +++ b/test/fast/Unit tests/mocks/nvm ls-remote lts.txt @@ -58,7 +58,14 @@ v6.13.1  (LTS: Boron) v6.14.0  (LTS: Boron) v6.14.1  (LTS: Boron) - v6.14.2  (Latest LTS: Boron) + v6.14.2  (LTS: Boron) + v6.14.3  (LTS: Boron) + v6.14.4  (LTS: Boron) + v6.15.0  (LTS: Boron) + v6.15.1  (LTS: Boron) + v6.16.0  (LTS: Boron) + v6.17.0  (LTS: Boron) + v6.17.1  (Latest LTS: Boron) v8.9.0  (LTS: Carbon) v8.9.1  (LTS: Carbon) v8.9.2  (LTS: Carbon) @@ -67,4 +74,39 @@ v8.10.0  (LTS: Carbon) v8.11.0  (LTS: Carbon) v8.11.1  (LTS: Carbon) - v8.11.2  (Latest LTS: Carbon) + v8.11.2  (LTS: Carbon) + v8.11.3  (LTS: Carbon) + v8.11.4  (LTS: Carbon) + v8.12.0  (LTS: Carbon) + v8.13.0  (LTS: Carbon) + v8.14.0  (LTS: Carbon) + v8.14.1  (LTS: Carbon) + v8.15.0  (LTS: Carbon) + v8.15.1  (LTS: Carbon) + v8.16.0  (LTS: Carbon) + v8.16.1  (LTS: Carbon) + v8.16.2  (LTS: Carbon) + v8.17.0  (Latest LTS: Carbon) + v10.13.0  (LTS: Dubnium) + v10.14.0  (LTS: Dubnium) + v10.14.1  (LTS: Dubnium) + v10.14.2  (LTS: Dubnium) + v10.15.0  (LTS: Dubnium) + v10.15.1  (LTS: Dubnium) + v10.15.2  (LTS: Dubnium) + v10.15.3  (LTS: Dubnium) + v10.16.0  (LTS: Dubnium) + v10.16.1  (LTS: Dubnium) + v10.16.2  (LTS: Dubnium) + v10.16.3  (LTS: Dubnium) + v10.17.0  (LTS: Dubnium) + v10.18.0  (LTS: Dubnium) + v10.18.1  (LTS: Dubnium) + v10.19.0  (Latest LTS: Dubnium) + v12.13.0  (LTS: Erbium) + v12.13.1  (LTS: Erbium) + v12.14.0  (LTS: Erbium) + v12.14.1  (LTS: Erbium) + v12.15.0  (LTS: Erbium) + v12.16.0  (LTS: Erbium) + v12.16.1  (Latest LTS: Erbium) diff --git a/test/fast/Unit tests/mocks/nvm ls-remote node.txt b/test/fast/Unit tests/mocks/nvm ls-remote node.txt index 819b636..89f621c 100644 --- a/test/fast/Unit tests/mocks/nvm ls-remote node.txt +++ b/test/fast/Unit tests/mocks/nvm ls-remote node.txt @@ -331,7 +331,14 @@ v6.13.1  (LTS: Boron) v6.14.0  (LTS: Boron) v6.14.1  (LTS: Boron) - v6.14.2  (Latest LTS: Boron) + v6.14.2  (LTS: Boron) + v6.14.3  (LTS: Boron) + v6.14.4  (LTS: Boron) + v6.15.0  (LTS: Boron) + v6.15.1  (LTS: Boron) + v6.16.0  (LTS: Boron) + v6.17.0  (LTS: Boron) + v6.17.1  (Latest LTS: Boron) v7.0.0 v7.1.0 v7.2.0 @@ -372,7 +379,19 @@ v8.10.0  (LTS: Carbon) v8.11.0  (LTS: Carbon) v8.11.1  (LTS: Carbon) - v8.11.2  (Latest LTS: Carbon) + v8.11.2  (LTS: Carbon) + v8.11.3  (LTS: Carbon) + v8.11.4  (LTS: Carbon) + v8.12.0  (LTS: Carbon) + v8.13.0  (LTS: Carbon) + v8.14.0  (LTS: Carbon) + v8.14.1  (LTS: Carbon) + v8.15.0  (LTS: Carbon) + v8.15.1  (LTS: Carbon) + v8.16.0  (LTS: Carbon) + v8.16.1  (LTS: Carbon) + v8.16.2  (LTS: Carbon) + v8.17.0  (Latest LTS: Carbon) v9.0.0 v9.1.0 v9.2.0 @@ -390,6 +409,87 @@ v9.10.1 v9.11.0 v9.11.1 + v9.11.2 v10.0.0 v10.1.0 v10.2.0 + v10.2.1 + v10.3.0 + v10.4.0 + v10.4.1 + v10.5.0 + v10.6.0 + v10.7.0 + v10.8.0 + v10.9.0 + v10.10.0 + v10.11.0 + v10.12.0 + v10.13.0  (LTS: Dubnium) + v10.14.0  (LTS: Dubnium) + v10.14.1  (LTS: Dubnium) + v10.14.2  (LTS: Dubnium) + v10.15.0  (LTS: Dubnium) + v10.15.1  (LTS: Dubnium) + v10.15.2  (LTS: Dubnium) + v10.15.3  (LTS: Dubnium) + v10.16.0  (LTS: Dubnium) + v10.16.1  (LTS: Dubnium) + v10.16.2  (LTS: Dubnium) + v10.16.3  (LTS: Dubnium) + v10.17.0  (LTS: Dubnium) + v10.18.0  (LTS: Dubnium) + v10.18.1  (LTS: Dubnium) + v10.19.0  (Latest LTS: Dubnium) + v11.0.0 + v11.1.0 + v11.2.0 + v11.3.0 + v11.4.0 + v11.5.0 + v11.6.0 + v11.7.0 + v11.8.0 + v11.9.0 + v11.10.0 + v11.10.1 + v11.11.0 + v11.12.0 + v11.13.0 + v11.14.0 + v11.15.0 + v12.0.0 + v12.1.0 + v12.2.0 + v12.3.0 + v12.3.1 + v12.4.0 + v12.5.0 + v12.6.0 + v12.7.0 + v12.8.0 + v12.8.1 + v12.9.0 + v12.9.1 + v12.10.0 + v12.11.0 + v12.11.1 + v12.12.0 + v12.13.0  (LTS: Erbium) + v12.13.1  (LTS: Erbium) + v12.14.0  (LTS: Erbium) + v12.14.1  (LTS: Erbium) + v12.15.0  (LTS: Erbium) + v12.16.0  (LTS: Erbium) + v12.16.1  (Latest LTS: Erbium) + v13.0.0 + v13.0.1 + v13.1.0 + v13.2.0 + v13.3.0 + v13.4.0 + v13.5.0 + v13.6.0 + v13.7.0 + v13.8.0 + v13.9.0 diff --git a/test/fast/Unit tests/mocks/nvm ls-remote.txt b/test/fast/Unit tests/mocks/nvm ls-remote.txt index b58bd3b..ae6b599 100644 --- a/test/fast/Unit tests/mocks/nvm ls-remote.txt +++ b/test/fast/Unit tests/mocks/nvm ls-remote.txt @@ -372,7 +372,14 @@ v6.13.1  (LTS: Boron) v6.14.0  (LTS: Boron) v6.14.1  (LTS: Boron) - v6.14.2  (Latest LTS: Boron) + v6.14.2  (LTS: Boron) + v6.14.3  (LTS: Boron) + v6.14.4  (LTS: Boron) + v6.15.0  (LTS: Boron) + v6.15.1  (LTS: Boron) + v6.16.0  (LTS: Boron) + v6.17.0  (LTS: Boron) + v6.17.1  (Latest LTS: Boron) v7.0.0 v7.1.0 v7.2.0 @@ -413,7 +420,19 @@ v8.10.0  (LTS: Carbon) v8.11.0  (LTS: Carbon) v8.11.1  (LTS: Carbon) - v8.11.2  (Latest LTS: Carbon) + v8.11.2  (LTS: Carbon) + v8.11.3  (LTS: Carbon) + v8.11.4  (LTS: Carbon) + v8.12.0  (LTS: Carbon) + v8.13.0  (LTS: Carbon) + v8.14.0  (LTS: Carbon) + v8.14.1  (LTS: Carbon) + v8.15.0  (LTS: Carbon) + v8.15.1  (LTS: Carbon) + v8.16.0  (LTS: Carbon) + v8.16.1  (LTS: Carbon) + v8.16.2  (LTS: Carbon) + v8.17.0  (Latest LTS: Carbon) v9.0.0 v9.1.0 v9.2.0 @@ -431,6 +450,87 @@ v9.10.1 v9.11.0 v9.11.1 + v9.11.2 v10.0.0 v10.1.0 v10.2.0 + v10.2.1 + v10.3.0 + v10.4.0 + v10.4.1 + v10.5.0 + v10.6.0 + v10.7.0 + v10.8.0 + v10.9.0 + v10.10.0 + v10.11.0 + v10.12.0 + v10.13.0  (LTS: Dubnium) + v10.14.0  (LTS: Dubnium) + v10.14.1  (LTS: Dubnium) + v10.14.2  (LTS: Dubnium) + v10.15.0  (LTS: Dubnium) + v10.15.1  (LTS: Dubnium) + v10.15.2  (LTS: Dubnium) + v10.15.3  (LTS: Dubnium) + v10.16.0  (LTS: Dubnium) + v10.16.1  (LTS: Dubnium) + v10.16.2  (LTS: Dubnium) + v10.16.3  (LTS: Dubnium) + v10.17.0  (LTS: Dubnium) + v10.18.0  (LTS: Dubnium) + v10.18.1  (LTS: Dubnium) + v10.19.0  (Latest LTS: Dubnium) + v11.0.0 + v11.1.0 + v11.2.0 + v11.3.0 + v11.4.0 + v11.5.0 + v11.6.0 + v11.7.0 + v11.8.0 + v11.9.0 + v11.10.0 + v11.10.1 + v11.11.0 + v11.12.0 + v11.13.0 + v11.14.0 + v11.15.0 + v12.0.0 + v12.1.0 + v12.2.0 + v12.3.0 + v12.3.1 + v12.4.0 + v12.5.0 + v12.6.0 + v12.7.0 + v12.8.0 + v12.8.1 + v12.9.0 + v12.9.1 + v12.10.0 + v12.11.0 + v12.11.1 + v12.12.0 + v12.13.0  (LTS: Erbium) + v12.13.1  (LTS: Erbium) + v12.14.0  (LTS: Erbium) + v12.14.1  (LTS: Erbium) + v12.15.0  (LTS: Erbium) + v12.16.0  (LTS: Erbium) + v12.16.1  (Latest LTS: Erbium) + v13.0.0 + v13.0.1 + v13.1.0 + v13.2.0 + v13.3.0 + v13.4.0 + v13.5.0 + v13.6.0 + v13.7.0 + v13.8.0 + v13.9.0 diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote LTS nightly.txt b/test/fast/Unit tests/mocks/nvm_ls_remote LTS nightly.txt index d445d1a..ba783b6 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote LTS nightly.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote LTS nightly.txt @@ -10,3 +10,16 @@ v6.10.3-nightly2017040479546c0b5a Boron v6.10.4-nightly20170502312091a196 Boron v6.11.1-nightly20170607f7ca483d68 Boron v8.9.1-nightly20171104a815e1b6a2 Carbon +v10.13.1-nightly20181127a66d8774ac Dubnium +v10.14.1-nightly20181129bda1cc703a Dubnium +v10.14.2-nightly20181206fb99a4e9fa Dubnium +v10.14.3-nightly2018122617f4208a3b Dubnium +v10.15.1-nightly201901292d6e145340 Dubnium +v10.15.2-nightly201902215711238b4e Dubnium +v10.15.3-nightly20190301156e4c8e89 Dubnium +v10.15.4-nightly20190522cda0d16414 Dubnium +v10.16.1-nightly201907310339fba1bb Dubnium +v10.16.2-nightly20190801f025f8524b Dubnium +v10.16.3-nightly20190807b743000a96 Dubnium +v10.16.4-nightly20190923859d47593e9fd97e6a9eae6eeb8b6e910acfe434 Dubnium +v12.13.1-nightly20191022d9174b4cc5 Erbium diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt b/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt index 63b9864..ae410d1 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt @@ -59,6 +59,13 @@ v6.13.1 Boron v6.14.0 Boron v6.14.1 Boron v6.14.2 Boron +v6.14.3 Boron +v6.14.4 Boron +v6.15.0 Boron +v6.15.1 Boron +v6.16.0 Boron +v6.17.0 Boron +v6.17.1 Boron v8.9.0 Carbon v8.9.1 Carbon v8.9.2 Carbon @@ -68,3 +75,38 @@ v8.10.0 Carbon v8.11.0 Carbon v8.11.1 Carbon v8.11.2 Carbon +v8.11.3 Carbon +v8.11.4 Carbon +v8.12.0 Carbon +v8.13.0 Carbon +v8.14.0 Carbon +v8.14.1 Carbon +v8.15.0 Carbon +v8.15.1 Carbon +v8.16.0 Carbon +v8.16.1 Carbon +v8.16.2 Carbon +v8.17.0 Carbon +v10.13.0 Dubnium +v10.14.0 Dubnium +v10.14.1 Dubnium +v10.14.2 Dubnium +v10.15.0 Dubnium +v10.15.1 Dubnium +v10.15.2 Dubnium +v10.15.3 Dubnium +v10.16.0 Dubnium +v10.16.1 Dubnium +v10.16.2 Dubnium +v10.16.3 Dubnium +v10.17.0 Dubnium +v10.18.0 Dubnium +v10.18.1 Dubnium +v10.19.0 Dubnium +v12.13.0 Erbium +v12.13.1 Erbium +v12.14.0 Erbium +v12.14.1 Erbium +v12.15.0 Erbium +v12.16.0 Erbium +v12.16.1 Erbium diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote nightly.txt b/test/fast/Unit tests/mocks/nvm_ls_remote nightly.txt index 313e976..d6fc63c 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote nightly.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote nightly.txt @@ -92,4 +92,47 @@ v10.0.0-nightly20180424982adb5994 v10.0.1-nightly20180505ff148b987d v10.1.1-nightly20180523235a272838 v10.2.1-nightly20180524be71c5dea9 -v11.0.0-nightly201805249a02de7084 +v10.2.2-nightly20180526efc7f91354 +v10.3.1-nightly201806067c0c61bde1 +v10.4.1-nightly201806125752f520b1 +v10.4.2-nightly20180619bc20ec0c0f +v10.5.1-nightly201807035d6d6fb121 +v10.6.1-nightly20180718eef975ebae +v10.7.1-nightly2018080162fd84528e +v10.8.1-nightly2018081382830a809b +v10.9.0-nightly20180906707a37f74f +v10.10.1-nightly201809205da1f0ca2c +v10.11.1-nightly20181010d16486b215 +v10.12.1-nightly201810283f63297fe8 +v10.13.1-nightly20181127a66d8774ac Dubnium +v10.14.1-nightly20181129bda1cc703a Dubnium +v10.14.2-nightly20181206fb99a4e9fa Dubnium +v10.14.3-nightly2018122617f4208a3b Dubnium +v10.15.1-nightly201901292d6e145340 Dubnium +v10.15.2-nightly201902215711238b4e Dubnium +v10.15.3-nightly20190301156e4c8e89 Dubnium +v10.15.4-nightly20190522cda0d16414 Dubnium +v10.16.1-nightly201907310339fba1bb Dubnium +v10.16.2-nightly20190801f025f8524b Dubnium +v10.16.3-nightly20190807b743000a96 Dubnium +v10.16.4-nightly20190923859d47593e9fd97e6a9eae6eeb8b6e910acfe434 Dubnium +v11.0.0-nightly20181023d901d16b39 +v11.1.0-nightly20181101af6d26281f +v12.0.0-nightly20190423859421188b +v12.10.1-nightly20190925edd7c579e8 +v12.11.1-nightly20190926acd08fdce5 +v12.11.2-nightly201910115fdf4a474f +v12.12.1-nightly201910123f3c41cfb0 +v12.13.1-nightly20191022d9174b4cc5 Erbium +v13.0.0-nightly2019102271b342f937 +v13.0.2-nightly20191028e4ab6fced1 +v13.1.1-nightly201911219b71534d23 +v13.2.1-nightly2019120319b31c1bc5 +v13.3.1-nightly20191214b3ae532392 +v13.4.1-nightly2019121896a65e85c5 +v13.5.1-nightly2020010742d36dca90 +v13.6.1-nightly20200121cbd84c5ee1 +v13.7.1-nightly20200122340a1bd9a0 +v13.8.1-nightly202002187c2d33f38f +v13.9.1-nightly20200219de0c6a0361 +v14.0.0-nightly202002222f97e973ff diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote stable nightly.txt b/test/fast/Unit tests/mocks/nvm_ls_remote stable nightly.txt index 6ca0bcb..7a38dbb 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote stable nightly.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote stable nightly.txt @@ -1 +1 @@ -v11.0.0-nightly201805249a02de7084 +v14.0.0-nightly202002222f97e973ff diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt b/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt index ccc8860..4cb2325 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt @@ -1 +1 @@ -v10.2.0 +v13.9.0 diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote.txt b/test/fast/Unit tests/mocks/nvm_ls_remote.txt index c08b036..e6bde79 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote.txt @@ -332,6 +332,13 @@ v6.13.1 Boron v6.14.0 Boron v6.14.1 Boron v6.14.2 Boron +v6.14.3 Boron +v6.14.4 Boron +v6.15.0 Boron +v6.15.1 Boron +v6.16.0 Boron +v6.17.0 Boron +v6.17.1 Boron v7.0.0 v7.1.0 v7.2.0 @@ -373,6 +380,18 @@ v8.10.0 Carbon v8.11.0 Carbon v8.11.1 Carbon v8.11.2 Carbon +v8.11.3 Carbon +v8.11.4 Carbon +v8.12.0 Carbon +v8.13.0 Carbon +v8.14.0 Carbon +v8.14.1 Carbon +v8.15.0 Carbon +v8.15.1 Carbon +v8.16.0 Carbon +v8.16.1 Carbon +v8.16.2 Carbon +v8.17.0 Carbon v9.0.0 v9.1.0 v9.2.0 @@ -390,6 +409,87 @@ v9.10.0 v9.10.1 v9.11.0 v9.11.1 +v9.11.2 v10.0.0 v10.1.0 v10.2.0 +v10.2.1 +v10.3.0 +v10.4.0 +v10.4.1 +v10.5.0 +v10.6.0 +v10.7.0 +v10.8.0 +v10.9.0 +v10.10.0 +v10.11.0 +v10.12.0 +v10.13.0 Dubnium +v10.14.0 Dubnium +v10.14.1 Dubnium +v10.14.2 Dubnium +v10.15.0 Dubnium +v10.15.1 Dubnium +v10.15.2 Dubnium +v10.15.3 Dubnium +v10.16.0 Dubnium +v10.16.1 Dubnium +v10.16.2 Dubnium +v10.16.3 Dubnium +v10.17.0 Dubnium +v10.18.0 Dubnium +v10.18.1 Dubnium +v10.19.0 Dubnium +v11.0.0 +v11.1.0 +v11.2.0 +v11.3.0 +v11.4.0 +v11.5.0 +v11.6.0 +v11.7.0 +v11.8.0 +v11.9.0 +v11.10.0 +v11.10.1 +v11.11.0 +v11.12.0 +v11.13.0 +v11.14.0 +v11.15.0 +v12.0.0 +v12.1.0 +v12.2.0 +v12.3.0 +v12.3.1 +v12.4.0 +v12.5.0 +v12.6.0 +v12.7.0 +v12.8.0 +v12.8.1 +v12.9.0 +v12.9.1 +v12.10.0 +v12.11.0 +v12.11.1 +v12.12.0 +v12.13.0 Erbium +v12.13.1 Erbium +v12.14.0 Erbium +v12.14.1 Erbium +v12.15.0 Erbium +v12.16.0 Erbium +v12.16.1 Erbium +v13.0.0 +v13.0.1 +v13.1.0 +v13.2.0 +v13.3.0 +v13.4.0 +v13.5.0 +v13.6.0 +v13.7.0 +v13.8.0 +v13.9.0 diff --git a/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt b/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt index b70f44b..f6e8b66 100644 --- a/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt +++ b/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt @@ -1,4 +1,6 @@ -lts/*|lts/carbon -lts/carbon|v8.11.2 -lts/boron|v6.14.2 +lts/*|lts/erbium +lts/erbium|v12.16.1 +lts/dubnium|v10.19.0 +lts/carbon|v8.17.0 +lts/boron|v6.17.1 lts/argon|v4.9.1 diff --git a/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable nightly.txt b/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable nightly.txt index 2dbc24b..ed9d00f 100644 --- a/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable nightly.txt +++ b/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable nightly.txt @@ -1 +1 @@ -11.0 +14.0 diff --git a/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt b/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt index e2498ea..39287bd 100644 --- a/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt +++ b/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt @@ -1 +1 @@ -10.2 +13.9 diff --git a/test/fast/Unit tests/nvm_ls_remote LTS aliases b/test/fast/Unit tests/nvm_ls_remote LTS aliases index 02e3f10..a9485bd 100755 --- a/test/fast/Unit tests/nvm_ls_remote LTS aliases +++ b/test/fast/Unit tests/nvm_ls_remote LTS aliases @@ -37,7 +37,7 @@ nvm_ls_remote >/dev/null || die "nvm_ls_remote_failed?!" CALL_COUNT="$(cat "$CALL_COUNT_PATH")" -EXPECTED_COUNT=4 +EXPECTED_COUNT=6 [ "$CALL_COUNT" = "$EXPECTED_COUNT" ] || die "nvm_make_alias called $CALL_COUNT times; expected $EXPECTED_COUNT" ARGS="$(cat "$ALIAS_ARGS_PATH")" From b9536327ae35ab60d082b1d5a5462b1173c9aa71 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 21 Feb 2020 21:27:13 -0800 Subject: [PATCH 1247/1426] [Fix] `nvm ls-remote`: properly label latest LTS versions instead of just the latest one in the filter Fixes #2166 --- nvm.sh | 29 +++++++++++++------ .../mocks/nvm_ls_remote LTS argon.txt | 2 +- .../mocks/nvm_ls_remote LTS nightly.txt | 8 ++--- .../Unit tests/mocks/nvm_ls_remote LTS.txt | 10 +++---- .../mocks/nvm_ls_remote nightly.txt | 8 ++--- test/fast/Unit tests/mocks/nvm_ls_remote.txt | 10 +++---- 6 files changed, 39 insertions(+), 28 deletions(-) diff --git a/nvm.sh b/nvm.sh index 7e2fbeb..8bb36f7 100644 --- a/nvm.sh +++ b/nvm.sh @@ -549,7 +549,8 @@ nvm_remote_versions() { NVM_LS_REMOTE_POST_MERGED_OUTPUT='' if [ -z "${NVM_FLAVOR-}" ] || [ "${NVM_FLAVOR-}" = "${NVM_NODE_PREFIX}" ]; then local NVM_LS_REMOTE_OUTPUT - NVM_LS_REMOTE_OUTPUT=$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote "${PATTERN-}") &&: + # extra space is needed here to avoid weird behavior when `nvm_ls_remote` ends in a `*` + NVM_LS_REMOTE_OUTPUT="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote "${PATTERN-}") " &&: NVM_LS_REMOTE_EXIT_CODE=$? # split output into two NVM_LS_REMOTE_PRE_MERGED_OUTPUT="${NVM_LS_REMOTE_OUTPUT%%v4\.0\.0*}" @@ -567,15 +568,17 @@ nvm_remote_versions() { NVM_LS_REMOTE_IOJS_EXIT_CODE=$? fi + # the `sed` removes both blank lines, and only-whitespace lines (see "weird behavior" ~19 lines up) VERSIONS="$(nvm_echo "${NVM_LS_REMOTE_PRE_MERGED_OUTPUT} ${NVM_LS_REMOTE_IOJS_OUTPUT} -${NVM_LS_REMOTE_POST_MERGED_OUTPUT}" | nvm_grep -v "N/A" | command sed '/^$/d')" +${NVM_LS_REMOTE_POST_MERGED_OUTPUT}" | nvm_grep -v "N/A" | command sed '/^ *$/d')" if [ -z "${VERSIONS}" ]; then nvm_echo 'N/A' return 3 fi - nvm_echo "${VERSIONS}" + # the `sed` is to remove trailing whitespaces (see "weird behavior" ~25 lines up) + nvm_echo "${VERSIONS}" | command sed 's/ *$//g' return $NVM_LS_REMOTE_EXIT_CODE || $NVM_LS_REMOTE_IOJS_EXIT_CODE } @@ -1196,7 +1199,7 @@ nvm_ls_remote_index_tab() { PATTERN="${3-}" local VERSIONS - if [ -n "${PATTERN}" ]; then + if [ -n "${PATTERN}" ] && [ "${PATTERN}" != '*' ]; then if [ "${FLAVOR}" = 'iojs' ]; then PATTERN="$(nvm_ensure_version_prefix "$(nvm_strip_iojs_prefix "${PATTERN}")")" else @@ -1239,12 +1242,20 @@ nvm_ls_remote_index_tab() { nvm_make_alias "${LTS_ALIAS}" "${LTS_VERSION}" >/dev/null 2>&1 done - VERSIONS="$({ command awk -v pattern="${PATTERN-}" -v lts="${LTS-}" '{ + VERSIONS="$({ command awk -v lts="${LTS-}" '{ if (!$1) { next } - if (pattern && tolower($1) !~ tolower(pattern)) { next } - if (lts == "*" && $10 ~ /^\-?$/) { next } + if (lts && $10 ~ /^\-?$/) { next } if (lts && lts != "*" && tolower($10) !~ tolower(lts)) { next } - if ($10 !~ /^\-?$/) print $1, $10; else print $1 + if ($10 !~ /^\-?$/) { + if ($10 && $10 != prev) { + print $1, $10, "*" + } else { + print $1, $10 + } + } else { + print $1 + } + prev=$10; }' \ | nvm_grep -w "${PATTERN:-.*}" \ | $SORT_COMMAND; } << EOF @@ -1441,7 +1452,7 @@ nvm_print_versions() { local LTS_FORMAT nvm_echo "${1-}" \ | command sed '1!G;h;$!d' \ - | command awk '{ if ($2 && a[$2]++) { print $1, "(LTS: " $2 ")" } else if ($2) { print $1, "(Latest LTS: " $2 ")" } else { print $0 } }' \ + | command awk '{ if ($2 && $3 && $3 == "*") { print $1, "(Latest LTS: " $2 ")" } else if ($2) { print $1, "(LTS: " $2 ")" } else { print $1 } }' \ | command sed '1!G;h;$!d' \ | while read -r VERSION_LINE; do VERSION="${VERSION_LINE%% *}" diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt b/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt index e20669e..78d685d 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt @@ -33,4 +33,4 @@ v4.8.5 Argon v4.8.6 Argon v4.8.7 Argon v4.9.0 Argon -v4.9.1 Argon +v4.9.1 Argon * diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote LTS nightly.txt b/test/fast/Unit tests/mocks/nvm_ls_remote LTS nightly.txt index ba783b6..bf60759 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote LTS nightly.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote LTS nightly.txt @@ -8,8 +8,8 @@ v6.10.1-nightly20170222ee10f21f3b Boron v6.10.2-nightly20170322426968ddd8 Boron v6.10.3-nightly2017040479546c0b5a Boron v6.10.4-nightly20170502312091a196 Boron -v6.11.1-nightly20170607f7ca483d68 Boron -v8.9.1-nightly20171104a815e1b6a2 Carbon +v6.11.1-nightly20170607f7ca483d68 Boron * +v8.9.1-nightly20171104a815e1b6a2 Carbon * v10.13.1-nightly20181127a66d8774ac Dubnium v10.14.1-nightly20181129bda1cc703a Dubnium v10.14.2-nightly20181206fb99a4e9fa Dubnium @@ -21,5 +21,5 @@ v10.15.4-nightly20190522cda0d16414 Dubnium v10.16.1-nightly201907310339fba1bb Dubnium v10.16.2-nightly20190801f025f8524b Dubnium v10.16.3-nightly20190807b743000a96 Dubnium -v10.16.4-nightly20190923859d47593e9fd97e6a9eae6eeb8b6e910acfe434 Dubnium -v12.13.1-nightly20191022d9174b4cc5 Erbium +v10.16.4-nightly20190923859d47593e9fd97e6a9eae6eeb8b6e910acfe434 Dubnium * +v12.13.1-nightly20191022d9174b4cc5 Erbium * diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt b/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt index ae410d1..8250fac 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt @@ -33,7 +33,7 @@ v4.8.5 Argon v4.8.6 Argon v4.8.7 Argon v4.9.0 Argon -v4.9.1 Argon +v4.9.1 Argon * v6.9.0 Boron v6.9.1 Boron v6.9.2 Boron @@ -65,7 +65,7 @@ v6.15.0 Boron v6.15.1 Boron v6.16.0 Boron v6.17.0 Boron -v6.17.1 Boron +v6.17.1 Boron * v8.9.0 Carbon v8.9.1 Carbon v8.9.2 Carbon @@ -86,7 +86,7 @@ v8.15.1 Carbon v8.16.0 Carbon v8.16.1 Carbon v8.16.2 Carbon -v8.17.0 Carbon +v8.17.0 Carbon * v10.13.0 Dubnium v10.14.0 Dubnium v10.14.1 Dubnium @@ -102,11 +102,11 @@ v10.16.3 Dubnium v10.17.0 Dubnium v10.18.0 Dubnium v10.18.1 Dubnium -v10.19.0 Dubnium +v10.19.0 Dubnium * v12.13.0 Erbium v12.13.1 Erbium v12.14.0 Erbium v12.14.1 Erbium v12.15.0 Erbium v12.16.0 Erbium -v12.16.1 Erbium +v12.16.1 Erbium * diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote nightly.txt b/test/fast/Unit tests/mocks/nvm_ls_remote nightly.txt index d6fc63c..9a823a1 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote nightly.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote nightly.txt @@ -35,7 +35,7 @@ v6.10.1-nightly20170222ee10f21f3b Boron v6.10.2-nightly20170322426968ddd8 Boron v6.10.3-nightly2017040479546c0b5a Boron v6.10.4-nightly20170502312091a196 Boron -v6.11.1-nightly20170607f7ca483d68 Boron +v6.11.1-nightly20170607f7ca483d68 Boron * v7.0.0-nightly201610246bbdd668bd v7.0.1-nightly2016102527e1749dcb v7.1.1-nightly201611093daf11635d @@ -69,7 +69,7 @@ v8.6.1-nightly201710116f42b680e3 v8.7.1-nightly2017102478a6ef46a9 v8.8.1-nightly201710256fbef7f350 v8.8.2-nightly20171030f00ba6b142 -v8.9.1-nightly20171104a815e1b6a2 Carbon +v8.9.1-nightly20171104a815e1b6a2 Carbon * v9.0.0-nightly2017103182790d84f2 v9.0.1-nightly20171105ed0fbd8d72 v9.1.1-nightly20171207c81e9682c4 @@ -115,7 +115,7 @@ v10.15.4-nightly20190522cda0d16414 Dubnium v10.16.1-nightly201907310339fba1bb Dubnium v10.16.2-nightly20190801f025f8524b Dubnium v10.16.3-nightly20190807b743000a96 Dubnium -v10.16.4-nightly20190923859d47593e9fd97e6a9eae6eeb8b6e910acfe434 Dubnium +v10.16.4-nightly20190923859d47593e9fd97e6a9eae6eeb8b6e910acfe434 Dubnium * v11.0.0-nightly20181023d901d16b39 v11.1.0-nightly20181101af6d26281f v12.0.0-nightly20190423859421188b @@ -123,7 +123,7 @@ v12.10.1-nightly20190925edd7c579e8 v12.11.1-nightly20190926acd08fdce5 v12.11.2-nightly201910115fdf4a474f v12.12.1-nightly201910123f3c41cfb0 -v12.13.1-nightly20191022d9174b4cc5 Erbium +v12.13.1-nightly20191022d9174b4cc5 Erbium * v13.0.0-nightly2019102271b342f937 v13.0.2-nightly20191028e4ab6fced1 v13.1.1-nightly201911219b71534d23 diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote.txt b/test/fast/Unit tests/mocks/nvm_ls_remote.txt index e6bde79..81a90ff 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote.txt @@ -274,7 +274,7 @@ v4.8.5 Argon v4.8.6 Argon v4.8.7 Argon v4.9.0 Argon -v4.9.1 Argon +v4.9.1 Argon * v5.0.0 v5.1.0 v5.1.1 @@ -338,7 +338,7 @@ v6.15.0 Boron v6.15.1 Boron v6.16.0 Boron v6.17.0 Boron -v6.17.1 Boron +v6.17.1 Boron * v7.0.0 v7.1.0 v7.2.0 @@ -391,7 +391,7 @@ v8.15.1 Carbon v8.16.0 Carbon v8.16.1 Carbon v8.16.2 Carbon -v8.17.0 Carbon +v8.17.0 Carbon * v9.0.0 v9.1.0 v9.2.0 @@ -440,7 +440,7 @@ v10.16.3 Dubnium v10.17.0 Dubnium v10.18.0 Dubnium v10.18.1 Dubnium -v10.19.0 Dubnium +v10.19.0 Dubnium * v11.0.0 v11.1.0 v11.2.0 @@ -481,7 +481,7 @@ v12.14.0 Erbium v12.14.1 Erbium v12.15.0 Erbium v12.16.0 Erbium -v12.16.1 Erbium +v12.16.1 Erbium * v13.0.0 v13.0.1 v13.1.0 From 30cd9c5dc8ac3986e9bb8e69741c32feac631de1 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 4 Mar 2020 00:57:58 -0800 Subject: [PATCH 1248/1426] [Tests] fix update mocks script --- update_test_mocks.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/update_test_mocks.sh b/update_test_mocks.sh index 91de3c0..28458ea 100755 --- a/update_test_mocks.sh +++ b/update_test_mocks.sh @@ -33,12 +33,14 @@ nvm ls-remote iojs > "$MOCKS_DIR/nvm ls-remote iojs.txt" nvm_print_implicit_alias remote stable > "$MOCKS_DIR/nvm_print_implicit_alias remote stable.txt" nvm_ls_remote stable > "$MOCKS_DIR/nvm_ls_remote stable.txt" +set +e NVM_NODEJS_ORG_MIRROR=https://nodejs.org/download/nightly/ nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote nightly.txt" nvm_download -L -s "$(nvm_get_mirror node std)/index.tab" -o - > "$MOCKS_DIR/nodejs.org-dist-index.tab" NVM_NODEJS_ORG_MIRROR=https://nodejs.org/download/nightly/ nvm_print_implicit_alias remote stable > "$MOCKS_DIR/nvm_print_implicit_alias remote stable nightly.txt" NVM_NODEJS_ORG_MIRROR=https://nodejs.org/download/nightly/ nvm_ls_remote stable > "$MOCKS_DIR/nvm_ls_remote stable nightly.txt" NVM_NODEJS_ORG_MIRROR=https://nodejs.org/download/nightly/ NVM_LTS=* nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote LTS nightly.txt" NVM_NODEJS_ORG_MIRROR=https://nodejs.org/download/nightly/ NVM_LTS=argon nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote LTS nightly argon.txt" +set -e ALIAS_PATH="$MOCKS_DIR/nvm_make_alias LTS alias calls.txt" : > "$ALIAS_PATH" From c372ff03e08aa0726b2beb836f911648a2b1ff63 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 4 Mar 2020 00:44:35 -0800 Subject: [PATCH 1249/1426] [Tests] update mocks --- .../Unit tests/mocks/nodejs.org-dist-index.tab | 1 + .../mocks/nodejs.org-download-nightly-index.tab | 14 ++++++++++++++ test/fast/Unit tests/mocks/nvm ls-remote node.txt | 1 + test/fast/Unit tests/mocks/nvm ls-remote.txt | 1 + .../Unit tests/mocks/nvm_ls_remote nightly.txt | 4 ++-- .../mocks/nvm_ls_remote stable nightly.txt | 2 +- .../fast/Unit tests/mocks/nvm_ls_remote stable.txt | 2 +- test/fast/Unit tests/mocks/nvm_ls_remote.txt | 1 + .../nvm_print_implicit_alias remote stable.txt | 2 +- 9 files changed, 23 insertions(+), 5 deletions(-) diff --git a/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab b/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab index e24a12d..e86370e 100644 --- a/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab +++ b/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab @@ -1,4 +1,5 @@ version date files npm v8 uv zlib openssl modules lts security +v13.10.0 2020-03-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 79 - - v13.9.0 2020-02-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 79 - - v13.8.0 2020-02-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 79 - true v13.7.0 2020-01-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 79 - - diff --git a/test/fast/Unit tests/mocks/nodejs.org-download-nightly-index.tab b/test/fast/Unit tests/mocks/nodejs.org-download-nightly-index.tab index f30b2bb..456145b 100644 --- a/test/fast/Unit tests/mocks/nodejs.org-download-nightly-index.tab +++ b/test/fast/Unit tests/mocks/nodejs.org-download-nightly-index.tab @@ -1,4 +1,14 @@ version date files npm v8 uv zlib openssl modules lts security +v14.0.0-nightly20200304de6cbd0e37 2020-03-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200303987a673395 2020-03-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly202003026bcea0a383 2020-03-02 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2020030111b7684522 2020-03-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly202002293d894d0511 2020-02-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200228331d636240 2020-02-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2020022720a51b9dff 2020-02-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2020022624aa9bda46 2020-02-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200225940325042b 2020-02-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200223793cfe54cd 2020-02-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - v14.0.0-nightly202002222f97e973ff 2020-02-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - v14.0.0-nightly2020022182afd85a31 2020-02-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - v14.0.0-nightly202002201c4e984ed9 2020-02-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - @@ -121,6 +131,10 @@ v14.0.0-nightly20191026cb36fa67d7 2019-10-26 aix-ppc64,headers,linux-arm64,linux v14.0.0-nightly2019102571bcd05232 2019-10-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - v14.0.0-nightly20191024a228e22533 2019-10-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - v14.0.0-nightly201910234187fcb200 2019-10-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v13.9.1-nightly202003041bca7b6c70 2020-03-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 79 - - +v13.9.1-nightly20200302e6125cd53b 2020-03-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 79 - - +v13.9.1-nightly202003014d05508aa8 2020-03-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 79 - - +v13.9.1-nightly20200228f71fc9044a 2020-02-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 79 - - v13.9.1-nightly20200219de0c6a0361 2020-02-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 79 - - v13.8.1-nightly202002187c2d33f38f 2020-02-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 79 - - v13.8.1-nightly2020020671699e9f53 2020-02-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 79 - true diff --git a/test/fast/Unit tests/mocks/nvm ls-remote node.txt b/test/fast/Unit tests/mocks/nvm ls-remote node.txt index 89f621c..8723e06 100644 --- a/test/fast/Unit tests/mocks/nvm ls-remote node.txt +++ b/test/fast/Unit tests/mocks/nvm ls-remote node.txt @@ -493,3 +493,4 @@ v13.7.0 v13.8.0 v13.9.0 + v13.10.0 diff --git a/test/fast/Unit tests/mocks/nvm ls-remote.txt b/test/fast/Unit tests/mocks/nvm ls-remote.txt index ae6b599..e7199cd 100644 --- a/test/fast/Unit tests/mocks/nvm ls-remote.txt +++ b/test/fast/Unit tests/mocks/nvm ls-remote.txt @@ -534,3 +534,4 @@ v13.7.0 v13.8.0 v13.9.0 + v13.10.0 diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote nightly.txt b/test/fast/Unit tests/mocks/nvm_ls_remote nightly.txt index 9a823a1..5e48d39 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote nightly.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote nightly.txt @@ -134,5 +134,5 @@ v13.5.1-nightly2020010742d36dca90 v13.6.1-nightly20200121cbd84c5ee1 v13.7.1-nightly20200122340a1bd9a0 v13.8.1-nightly202002187c2d33f38f -v13.9.1-nightly20200219de0c6a0361 -v14.0.0-nightly202002222f97e973ff +v13.9.1-nightly202003041bca7b6c70 +v14.0.0-nightly20200304de6cbd0e37 diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote stable nightly.txt b/test/fast/Unit tests/mocks/nvm_ls_remote stable nightly.txt index 7a38dbb..d26500d 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote stable nightly.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote stable nightly.txt @@ -1 +1 @@ -v14.0.0-nightly202002222f97e973ff +v14.0.0-nightly20200304de6cbd0e37 diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt b/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt index 4cb2325..6208a05 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt @@ -1 +1 @@ -v13.9.0 +v13.10.0 diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote.txt b/test/fast/Unit tests/mocks/nvm_ls_remote.txt index 81a90ff..1ff9505 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote.txt @@ -493,3 +493,4 @@ v13.6.0 v13.7.0 v13.8.0 v13.9.0 +v13.10.0 diff --git a/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt b/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt index 39287bd..857317a 100644 --- a/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt +++ b/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt @@ -1 +1 @@ -13.9 +13.10 From 4626d1aae6be7213fa7bb78d2fb304279b1d89e7 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 4 Mar 2020 01:03:36 -0800 Subject: [PATCH 1250/1426] [New] add `lts/-1` etc, to point to an LTS line relative to "latest" --- nvm.sh | 19 ++++++++++++- test/fast/Unit tests/mocks/LTS_names.txt | 5 ++++ test/fast/Unit tests/nvm_alias LTS-N | 34 ++++++++++++++++++++++++ update_test_mocks.sh | 5 ++++ 4 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 test/fast/Unit tests/mocks/LTS_names.txt create mode 100755 test/fast/Unit tests/nvm_alias LTS-N diff --git a/nvm.sh b/nvm.sh index 8bb36f7..96c662f 100644 --- a/nvm.sh +++ b/nvm.sh @@ -855,8 +855,25 @@ nvm_alias() { return 1 fi + local NVM_ALIAS_DIR + NVM_ALIAS_DIR="$(nvm_alias_path)" + + if [ "$(expr "${ALIAS}" : '^lts/-[1-9][0-9]*$')" -gt 0 ]; then + local N + N="$(echo "${ALIAS}" | cut -d '-' -f 2)" + local RESULT + RESULT="$(command ls "${NVM_ALIAS_DIR}/lts" | command tail -n "${N}" | command head -n 1)" + if [ "${RESULT}" != '*' ]; then + nvm_alias "lts/${RESULT}" + return $? + else + nvm_err 'That many LTS releases do not exist yet.' + return 2 + fi + fi + local NVM_ALIAS_PATH - NVM_ALIAS_PATH="$(nvm_alias_path)/${ALIAS}" + NVM_ALIAS_PATH="${NVM_ALIAS_DIR}/${ALIAS}" if [ ! -f "${NVM_ALIAS_PATH}" ]; then nvm_err 'Alias does not exist.' return 2 diff --git a/test/fast/Unit tests/mocks/LTS_names.txt b/test/fast/Unit tests/mocks/LTS_names.txt new file mode 100644 index 0000000..b814a02 --- /dev/null +++ b/test/fast/Unit tests/mocks/LTS_names.txt @@ -0,0 +1,5 @@ +erbium +dubnium +carbon +boron +argon diff --git a/test/fast/Unit tests/nvm_alias LTS-N b/test/fast/Unit tests/nvm_alias LTS-N new file mode 100755 index 0000000..352644a --- /dev/null +++ b/test/fast/Unit tests/nvm_alias LTS-N @@ -0,0 +1,34 @@ +#!/bin/sh + +die () { echo "$@" ; cleanup ; exit 1; } + + +cleanup() { + unset -f nvm_download +} + +\. ../../../nvm.sh + +set -ex + +MOCKS_DIR="${PWD}/mocks" + +# sample output at the time the test was written +TAB_PATH="${MOCKS_DIR}/nodejs.org-dist-index.tab" +nvm_download() { + cat "${TAB_PATH}" +} + +nvm_ls_remote >/dev/null || die "nvm_ls_remote_failed?!" + +LTS_NAMES_PATH="${MOCKS_DIR}/LTS_names.txt" + +N=0 +while IFS= read -r LTS; do + N=$(($N+1)) + EXPECTED="$(nvm_alias "lts/${LTS}")" + ACTUAL="$(nvm_alias "lts/-${N}")" + [ "${EXPECTED}" = "${ACTUAL}" ] || die "\`nvm_alias lts/-${N}\` was \`${ACTUAL}\`; expected \`${EXPECTED}\`" +done < "${LTS_NAMES_PATH}" + +cleanup diff --git a/update_test_mocks.sh b/update_test_mocks.sh index 28458ea..30a3782 100755 --- a/update_test_mocks.sh +++ b/update_test_mocks.sh @@ -44,9 +44,14 @@ set -e ALIAS_PATH="$MOCKS_DIR/nvm_make_alias LTS alias calls.txt" : > "$ALIAS_PATH" +LTS_NAMES_PATH="$MOCKS_DIR/LTS_names.txt" +: > "$LTS_NAMES_PATH" nvm_make_alias() { # prevent local alias creation, and store arguments echo "${1}|${2}" >> "$ALIAS_PATH" + if [ "${1}" != 'lts/*' ]; then + echo "${1#lts/}" >> "$LTS_NAMES_PATH" + fi } nvm ls-remote --lts > /dev/null From 096ba0d8c3036095b9a9cdba3dd87b61cb03132e Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 5 Mar 2020 17:40:17 -0800 Subject: [PATCH 1251/1426] `uninstall`: add `NVM_DEBUG` to print out a filename as its permissions are checked --- nvm.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 96c662f..202d779 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2327,7 +2327,10 @@ nvm_check_file_permissions() { nvm_is_zsh && setopt local_options nonomatch for FILE in "$1"/* "$1"/.[!.]* "$1"/..?* ; do if [ -d "$FILE" ]; then - if ! nvm_check_file_permissions "$FILE"; then + if [ -n "${NVM_DEBUG-}" ]; then + nvm_err "${FILE}" + fi + if ! nvm_check_file_permissions "${FILE}"; then return 2 fi elif [ -e "$FILE" ] && [ ! -w "$FILE" ] && [ ! -O "$FILE" ]; then From 258938ef66a2a49a4a400554a6dce890226ae34c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 5 Mar 2020 23:13:56 -0800 Subject: [PATCH 1252/1426] v0.35.3 --- README.md | 16 ++++++++-------- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 72a6b7a..365b8e4 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Node Version Manager [![Build Status](https://travis-ci.org/nvm-sh/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.35.2-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://travis-ci.org/nvm-sh/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.35.3-yellow.svg)][4] [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/684/badge)](https://bestpractices.coreinfrastructure.org/projects/684) @@ -56,10 +56,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.35.2/install.sh | bash +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash ``` ```sh -wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash +wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/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`). @@ -110,7 +110,7 @@ You can use a task: ``` - name: nvm shell: > - curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash + curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash args: creates: "{{ ansible_env.HOME }}/.nvm/nvm.sh" ``` @@ -169,7 +169,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.35.2` +1. `cd ~/.nvm` and check out the latest version with `git checkout v0.35.3` 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: @@ -656,7 +656,7 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh ```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.35.2/install.sh | bash +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash ``` The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. @@ -743,8 +743,8 @@ sudo chmod ugo-x /usr/libexec/path_helper More on this issue in [dotphiles/dotzsh](https://github.com/dotphiles/dotzsh#mac-os-x). [1]: https://github.com/nvm-sh/nvm.git -[2]: https://github.com/nvm-sh/nvm/blob/v0.35.2/install.sh +[2]: https://github.com/nvm-sh/nvm/blob/v0.35.3/install.sh [3]: https://travis-ci.org/nvm-sh/nvm -[4]: https://github.com/nvm-sh/nvm/releases/tag/v0.35.2 +[4]: https://github.com/nvm-sh/nvm/releases/tag/v0.35.3 [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index 93f0a0b..0ea9a0a 100755 --- a/install.sh +++ b/install.sh @@ -19,7 +19,7 @@ nvm_install_dir() { } nvm_latest_version() { - echo "v0.35.2" + echo "v0.35.3" } nvm_profile_is_bash_or_zsh() { diff --git a/nvm.sh b/nvm.sh index 202d779..7ba32d8 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3533,7 +3533,7 @@ nvm() { NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; "--version") - nvm_echo '0.35.2' + nvm_echo '0.35.3' ;; "unload") nvm deactivate >/dev/null 2>&1 diff --git a/package.json b/package.json index b2c7987..1d8cf5f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.35.2", + "version": "0.35.3", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From f607f2f783dac3a1d7cfc754c0886bf05c05e277 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 10 Mar 2020 23:51:17 -0700 Subject: [PATCH 1253/1426] [Fix] `reinstall-packages`: do not include unmet peer deps Closes #1948. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 7ba32d8..78eff32 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2167,7 +2167,7 @@ nvm_npm_global_modules() { local NPMLIST local VERSION VERSION="$1" - NPMLIST=$(nvm use "${VERSION}" >/dev/null && npm list -g --depth=0 2>/dev/null | command sed 1,1d) + NPMLIST=$(nvm use "${VERSION}" >/dev/null && npm list -g --depth=0 2>/dev/null | command sed 1,1d | nvm_grep -v 'UNMET PEER DEPENDENCY') local INSTALLS INSTALLS=$(nvm_echo "${NPMLIST}" | command sed -e '/ -> / d' -e '/\(empty\)/ d' -e 's/^.* \(.*@[^ ]*\).*/\1/' -e '/^npm@[^ ]*.*$/ d' | command xargs) From b02617028fa0c48efd897df9d378648837b7cd83 Mon Sep 17 00:00:00 2001 From: Magnus Markling Date: Thu, 19 Mar 2020 12:13:29 +0100 Subject: [PATCH 1254/1426] [Tests] Source nvm.sh before defining FILE --- test/fast/Unit tests/nvm_get_default_packages | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/fast/Unit tests/nvm_get_default_packages b/test/fast/Unit tests/nvm_get_default_packages index 75730b0..0529137 100755 --- a/test/fast/Unit tests/nvm_get_default_packages +++ b/test/fast/Unit tests/nvm_get_default_packages @@ -1,8 +1,9 @@ #!/bin/sh -FILE="$NVM_DIR/default-packages" \. ../../../nvm.sh +FILE="$NVM_DIR/default-packages" + die () { echo "$@" ; cleanup ; exit 1; } setup () { if [ -f $FILE ]; then From 73438e339e242fce0cba443e5c4322ac996e9197 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 30 Mar 2020 02:17:28 +0800 Subject: [PATCH 1255/1426] Update Dockerfile base image to Ubuntu 16.04, cc #2008 --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 3b121e7..07d3514 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,7 +8,7 @@ # Use Ubuntu Trusty Tahr as base image as we're using on Travis CI # I also tested with Ubuntu 16.04, should be good with it! -FROM ubuntu:14.04 +FROM ubuntu:16.04 LABEL maintainer="Peter Dave Hello " LABEL name="nvm-dev-env" LABEL version="latest" @@ -20,7 +20,7 @@ SHELL ["/bin/bash", "-o", "pipefail", "-c"] ENV DEBIAN_FRONTEND noninteractive # ShellCheck version -ENV SHELLCHECK_VERSION=0.6.0 +ENV SHELLCHECK_VERSION=0.7.0 # Pick a Ubuntu apt mirror site for better speed # ref: https://launchpad.net/ubuntu/+archivemirrors From e0ed1eacfdd17cdd05fda7afb4c31f2bf460ab78 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 29 Apr 2020 12:06:01 -0700 Subject: [PATCH 1256/1426] [meta] add actions: Automatic Rebase for PRs, auto-update-TOC for push --- .github/workflows/rebase.yml | 15 +++++++++++++++ .github/workflows/toc.yml | 25 +++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 .github/workflows/rebase.yml create mode 100644 .github/workflows/toc.yml diff --git a/.github/workflows/rebase.yml b/.github/workflows/rebase.yml new file mode 100644 index 0000000..844cbba --- /dev/null +++ b/.github/workflows/rebase.yml @@ -0,0 +1,15 @@ +name: Automatic Rebase + +on: [pull_request] + +jobs: + _: + name: "Automatic Rebase" + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - uses: ljharb/rebase@master + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/toc.yml b/.github/workflows/toc.yml new file mode 100644 index 0000000..7f238ff --- /dev/null +++ b/.github/workflows/toc.yml @@ -0,0 +1,25 @@ +name: update readme TOC + +on: [push] + +jobs: + _: + name: "update readme TOC" + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + with: + node-version: '12.x' + - run: npm install + - run: npm run doctoc + - name: commit changes + uses: ljharb/actions-js-build/commit@v3+amendpush + with: + amend: true + force: true + - uses: ljharb/rebase@master + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 8e1e5df059d4bb7b186dd8f10f7ac8537acf1d88 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 29 Apr 2020 15:13:30 -0700 Subject: [PATCH 1257/1426] [meta] fix TOC action --- .github/workflows/toc.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/toc.yml b/.github/workflows/toc.yml index 7f238ff..f1cb29b 100644 --- a/.github/workflows/toc.yml +++ b/.github/workflows/toc.yml @@ -10,6 +10,13 @@ jobs: steps: - uses: actions/checkout@v2 + with: + # https://github.com/actions/checkout/issues/217#issue-599945005 + # pulls all commits (needed for lerna / semantic release to correctly version) + fetch-depth: "0" + + # pulls all tags (needed for lerna / semantic release to correctly version) + - run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* - uses: actions/setup-node@v1 with: node-version: '12.x' From dcc8059ef880c8c98f6115ba04a955f3aa870c84 Mon Sep 17 00:00:00 2001 From: Jared Ramirez Date: Wed, 29 Apr 2020 15:25:23 -0700 Subject: [PATCH 1258/1426] [readme] include deeper integration instructions for fish --- README.md | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/README.md b/README.md index 365b8e4..6676ffa 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,8 @@ - [Automatically call `nvm use`](#automatically-call-nvm-use) - [zsh](#zsh) - [Calling `nvm use` automatically in a directory with a `.nvmrc` file](#calling-nvm-use-automatically-in-a-directory-with-a-nvmrc-file) + - [fish](#fish) + - [Calling `nvm use` automatically in a directory with a `.nvmrc` file](#calling-nvm-use-automatically-in-a-directory-with-a-nvmrc-file-1) - [License](#license) - [Running Tests](#running-tests) - [Bash Completion](#bash-completion) @@ -536,6 +538,45 @@ add-zsh-hook chpwd load-nvmrc load-nvmrc ``` +#### fish + +##### Calling `nvm use` automatically in a directory with a `.nvmrc` file +This requires that you have [bass](https://github.com/edc/bass) installed. +```fish +# ~/.config/fish/functions/nvm.fish +function nvm + bass source ~/.nvm/nvm.sh --no-use ';' nvm $argv +end + +# ~/.config/fish/functions/nvm_find_nvmrc.fish +function nvm_find_nvmrc + bass source ~/.nvm/nvm.sh --no-use ';' nvm_find_nvmrc +end + +# ~/.config/fish/functions/load_nvm.fish +function load_nvm --on-variable="PWD" + set -l default_node_version (nvm version default) + set -l node_version (nvm version) + set -l nvmrc_path (nvm_find_nvmrc) + if test -n "$nvmrc_path" + set -l nvmrc_node_version (nvm version (cat $nvmrc_path)) + if test "$nvmrc_node_version" = "N/A" + nvm install $nvmrc_node_version + else if test nvmrc_node_version != node_version + nvm use $nvmrc_node_version + end + else if test "$node_version" != "$default_node_version" + echo "Reverting to default Node version" + nvm use default + end +end + +# ~/.config/fish/config.fish +# You must call it on initialization or listening to directory switching won't work +load_nvm +``` + + ## License nvm is released under the MIT license. From 7aba64a2d556be64c71faf828b3457ba7289c08a Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 29 Apr 2020 20:18:40 -0700 Subject: [PATCH 1259/1426] [meta] further TOC action tweaks --- .github/workflows/toc.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/toc.yml b/.github/workflows/toc.yml index f1cb29b..879e409 100644 --- a/.github/workflows/toc.yml +++ b/.github/workflows/toc.yml @@ -27,6 +27,3 @@ jobs: with: amend: true force: true - - uses: ljharb/rebase@master - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 91a55dd91ae3f24c0814d8bd96d3cc7accf222e5 Mon Sep 17 00:00:00 2001 From: Sehrope Sarkuni Date: Fri, 8 May 2020 16:08:27 -0400 Subject: [PATCH 1260/1426] [Refactor] Rename solaris and iojs helper functions to be nvm_ prefixed Renames node_version_has_solaris_binary and nvm_iojs_version_has_solaris_binary to be prefixed with nvm_ so they do not show up in tab completion following the word "node". --- nvm.sh | 10 +++--- .../iojs_version_has_solaris_binary | 17 ---------- .../node_version_has_solaris_binary | 33 ------------------- .../nvm_iojs_version_has_solaris_binary | 17 ++++++++++ .../nvm_node_version_has_solaris_binary | 33 +++++++++++++++++++ 5 files changed, 55 insertions(+), 55 deletions(-) delete mode 100755 test/fast/Unit tests/iojs_version_has_solaris_binary delete mode 100755 test/fast/Unit tests/node_version_has_solaris_binary create mode 100755 test/fast/Unit tests/nvm_iojs_version_has_solaris_binary create mode 100755 test/fast/Unit tests/nvm_node_version_has_solaris_binary diff --git a/nvm.sh b/nvm.sh index 78eff32..fdeec08 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2250,7 +2250,7 @@ nvm_die_on_prefix() { # Currently, only io.js 3.3.1 has a Solaris binary available, and it's the # latest io.js version available. The expectation is that any potential io.js # version later than v3.3.1 will also have Solaris binaries. -iojs_version_has_solaris_binary() { +nvm_iojs_version_has_solaris_binary() { local IOJS_VERSION IOJS_VERSION="$1" local STRIPPED_IOJS_VERSION @@ -2267,7 +2267,7 @@ iojs_version_has_solaris_binary() { # Solaris binary, fails otherwise. # Currently, node versions starting from v0.8.6 have a Solaris binary # available. -node_version_has_solaris_binary() { +nvm_node_version_has_solaris_binary() { local NODE_VERSION NODE_VERSION="$1" # Error out if $NODE_VERSION is actually an io.js version @@ -2291,9 +2291,9 @@ nvm_has_solaris_binary() { if nvm_is_merged_node_version "${VERSION}"; then return 0 # All merged node versions have a Solaris binary elif nvm_is_iojs_version "${VERSION}"; then - iojs_version_has_solaris_binary "${VERSION}" + nvm_iojs_version_has_solaris_binary "${VERSION}" else - node_version_has_solaris_binary "${VERSION}" + nvm_node_version_has_solaris_binary "${VERSION}" fi } @@ -3571,7 +3571,7 @@ nvm() { nvm_list_aliases nvm_make_alias nvm_print_alias_path \ nvm_print_default_alias nvm_print_formatted_alias nvm_resolve_local_alias \ nvm_sanitize_path nvm_has_colors nvm_process_parameters \ - node_version_has_solaris_binary iojs_version_has_solaris_binary \ + nvm_node_version_has_solaris_binary nvm_iojs_version_has_solaris_binary \ nvm_curl_libz_support nvm_command_info nvm_is_zsh nvm_stdout_is_terminal \ >/dev/null 2>&1 unset NVM_RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_IOJS_ORG_MIRROR NVM_DIR \ diff --git a/test/fast/Unit tests/iojs_version_has_solaris_binary b/test/fast/Unit tests/iojs_version_has_solaris_binary deleted file mode 100755 index fc0e119..0000000 --- a/test/fast/Unit tests/iojs_version_has_solaris_binary +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh - -die () { echo "$@" ; exit 1; } - -\. ../../../nvm.sh -\. ../../common.sh - -assert_not_ok iojs_version_has_solaris_binary "" -assert_not_ok iojs_version_has_solaris_binary "foo" -assert_not_ok iojs_version_has_solaris_binary "v1.1.0" - -assert_ok iojs_version_has_solaris_binary "v3.3.1" -assert_ok iojs_version_has_solaris_binary "iojs-v3.3.1" -assert_ok iojs_version_has_solaris_binary "v3.3.2" -assert_ok iojs_version_has_solaris_binary "iojs-v3.3.2" -assert_ok iojs_version_has_solaris_binary "v3.4.1" -assert_ok iojs_version_has_solaris_binary "iojs-v3.4.1" diff --git a/test/fast/Unit tests/node_version_has_solaris_binary b/test/fast/Unit tests/node_version_has_solaris_binary deleted file mode 100755 index bb70a99..0000000 --- a/test/fast/Unit tests/node_version_has_solaris_binary +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh - -die () { echo "$@" ; exit 1; } - -\. ../../../nvm.sh -\. ../../common.sh - -# Invalid version numbers fail -assert_not_ok node_version_has_solaris_binary "" -assert_not_ok node_version_has_solaris_binary "foo" - -# "Invalid" node version numbers fail -assert_not_ok node_version_has_solaris_binary "v1.0.0" -assert_not_ok node_version_has_solaris_binary "v3.3.1" - -# Valid io.js version numbers that have a Solaris binary fail -assert_not_ok node_version_has_solaris_binary "iojs-v3.3.1" - -# Invalid io.js version numbers fail -assert_not_ok node_version_has_solaris_binary "iojs-v0.12.7" - -# Valid node version numbers that don't have a Solaris binary fail -assert_not_ok node_version_has_solaris_binary "v0.8.5" - -# Valid node version numbers that have a Solaris binary succeed -assert_ok node_version_has_solaris_binary "v0.8.6" -assert_ok node_version_has_solaris_binary "v0.10.0" -assert_ok node_version_has_solaris_binary "v0.12.7" - -# Valid "merged" version numbers fail, because they're not -# considered node version numbers -assert_not_ok node_version_has_solaris_binary "v4.0.0" -assert_not_ok node_version_has_solaris_binary "v4.1.1" diff --git a/test/fast/Unit tests/nvm_iojs_version_has_solaris_binary b/test/fast/Unit tests/nvm_iojs_version_has_solaris_binary new file mode 100755 index 0000000..8048fa3 --- /dev/null +++ b/test/fast/Unit tests/nvm_iojs_version_has_solaris_binary @@ -0,0 +1,17 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh +\. ../../common.sh + +assert_not_ok nvm_iojs_version_has_solaris_binary "" +assert_not_ok nvm_iojs_version_has_solaris_binary "foo" +assert_not_ok nvm_iojs_version_has_solaris_binary "v1.1.0" + +assert_ok nvm_iojs_version_has_solaris_binary "v3.3.1" +assert_ok nvm_iojs_version_has_solaris_binary "iojs-v3.3.1" +assert_ok nvm_iojs_version_has_solaris_binary "v3.3.2" +assert_ok nvm_iojs_version_has_solaris_binary "iojs-v3.3.2" +assert_ok nvm_iojs_version_has_solaris_binary "v3.4.1" +assert_ok nvm_iojs_version_has_solaris_binary "iojs-v3.4.1" diff --git a/test/fast/Unit tests/nvm_node_version_has_solaris_binary b/test/fast/Unit tests/nvm_node_version_has_solaris_binary new file mode 100755 index 0000000..95ed5af --- /dev/null +++ b/test/fast/Unit tests/nvm_node_version_has_solaris_binary @@ -0,0 +1,33 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh +\. ../../common.sh + +# Invalid version numbers fail +assert_not_ok nvm_node_version_has_solaris_binary "" +assert_not_ok nvm_node_version_has_solaris_binary "foo" + +# "Invalid" node version numbers fail +assert_not_ok nvm_node_version_has_solaris_binary "v1.0.0" +assert_not_ok nvm_node_version_has_solaris_binary "v3.3.1" + +# Valid io.js version numbers that have a Solaris binary fail +assert_not_ok nvm_node_version_has_solaris_binary "iojs-v3.3.1" + +# Invalid io.js version numbers fail +assert_not_ok nvm_node_version_has_solaris_binary "iojs-v0.12.7" + +# Valid node version numbers that don't have a Solaris binary fail +assert_not_ok nvm_node_version_has_solaris_binary "v0.8.5" + +# Valid node version numbers that have a Solaris binary succeed +assert_ok nvm_node_version_has_solaris_binary "v0.8.6" +assert_ok nvm_node_version_has_solaris_binary "v0.10.0" +assert_ok nvm_node_version_has_solaris_binary "v0.12.7" + +# Valid "merged" version numbers fail, because they're not +# considered node version numbers +assert_not_ok nvm_node_version_has_solaris_binary "v4.0.0" +assert_not_ok nvm_node_version_has_solaris_binary "v4.1.1" From 33fa27dabea686e81ff2bc92a24545aed89a5890 Mon Sep 17 00:00:00 2001 From: "Bruce A. MacNaughton" Date: Fri, 7 Feb 2020 12:01:57 -0800 Subject: [PATCH 1261/1426] [Docs] Update README for environment variables --- README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/README.md b/README.md index 6676ffa..ca88148 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,7 @@ - [Calling `nvm use` automatically in a directory with a `.nvmrc` file](#calling-nvm-use-automatically-in-a-directory-with-a-nvmrc-file-1) - [License](#license) - [Running Tests](#running-tests) +- [Environment variables](#environment-variables) - [Bash Completion](#bash-completion) - [Usage](#usage-1) - [Compatibility Issues](#compatibility-issues) @@ -613,6 +614,19 @@ Run all of the tests like this: Nota bene: Avoid running nvm while the tests are running. +## Environment variables + +nvm exposes the following environment variables: + +- `NVM_DIR` - nvm's installation directory. +- `NVM_BIN` - where node, npm, and global packages for the active version of node are installed. +- `NVM_INC` - node's include file directory (useful for building C/C++ addons for node). +- `NVM_CD_FLAGS` - used to maintain compatibility with zsh. +- `NVM_RC_VERSION` - version from .nvmrc file if being used. + +Additionally, nvm modifies `PATH`, and, if present, `MANPATH` and `NODE_PATH` when changing versions. + + ## Bash Completion To activate, you need to source `bash_completion`: From 6575b6b0522e503248d319da9075b58d43b7813b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 4 Jun 2020 16:15:39 -0700 Subject: [PATCH 1262/1426] [Fix] `install`: improved arg parsing around `--reinstall-packages-from` Fixes #1762 --- nvm.sh | 64 ++++++++++++++++--- .../install while reinstalling packages | 13 ++++ 2 files changed, 69 insertions(+), 8 deletions(-) diff --git a/nvm.sh b/nvm.sh index fdeec08..32aacff 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2572,6 +2572,12 @@ nvm() { local LTS local NVM_UPGRADE_NPM NVM_UPGRADE_NPM=0 + + local PROVIDED_REINSTALL_PACKAGES_FROM + local REINSTALL_PACKAGES_FROM + local SKIP_DEFAULT_PACKAGES + local DEFAULT_PACKAGES + while [ $# -ne 0 ]; do case "$1" in ---*) @@ -2603,6 +2609,40 @@ nvm() { NVM_UPGRADE_NPM=1 shift ;; + --reinstall-packages-from=*) + if [ -n "${PROVIDED_REINSTALL_PACKAGES_FROM-}" ]; then + nvm_err '--reinstall-packages-from may not be provided more than once' + return 6 + fi + PROVIDED_REINSTALL_PACKAGES_FROM="$(nvm_echo "$1" | command cut -c 27-)" + if [ -z "${PROVIDED_REINSTALL_PACKAGES_FROM}" ]; then + nvm_err 'If --reinstall-packages-from is provided, it must point to an installed version of node.' + return 6 + fi + REINSTALL_PACKAGES_FROM="$(nvm_version "${PROVIDED_REINSTALL_PACKAGES_FROM}")" ||: + shift + ;; + --copy-packages-from=*) + if [ -n "${PROVIDED_REINSTALL_PACKAGES_FROM-}" ]; then + nvm_err '--reinstall-packages-from may not be provided more than once, or combined with `--copy-packages-from`' + return 6 + fi + PROVIDED_REINSTALL_PACKAGES_FROM="$(nvm_echo "$1" | command cut -c 22-)" + if [ -z "${PROVIDED_REINSTALL_PACKAGES_FROM}" ]; then + nvm_err 'If --copy-packages-from is provided, it must point to an installed version of node.' + return 6 + fi + REINSTALL_PACKAGES_FROM="$(nvm_version "${PROVIDED_REINSTALL_PACKAGES_FROM}")" ||: + shift + ;; + --reinstall-packages-from | --copy-packages-from) + nvm_err "If ${1} is provided, it must point to an installed version of node using \`=\`." + return 6 + ;; + --skip-default-packages) + SKIP_DEFAULT_PACKAGES=true + shift + ;; *) break # stop parsing args ;; @@ -2667,14 +2707,14 @@ nvm() { fi ADDITIONAL_PARAMETERS='' - local PROVIDED_REINSTALL_PACKAGES_FROM - local REINSTALL_PACKAGES_FROM - local SKIP_DEFAULT_PACKAGES - local DEFAULT_PACKAGES while [ $# -ne 0 ]; do case "$1" in --reinstall-packages-from=*) + if [ -n "${PROVIDED_REINSTALL_PACKAGES_FROM-}" ]; then + nvm_err '--reinstall-packages-from may not be provided more than once' + return 6 + fi PROVIDED_REINSTALL_PACKAGES_FROM="$(nvm_echo "$1" | command cut -c 27-)" if [ -z "${PROVIDED_REINSTALL_PACKAGES_FROM}" ]; then nvm_err 'If --reinstall-packages-from is provided, it must point to an installed version of node.' @@ -2682,14 +2722,22 @@ nvm() { fi REINSTALL_PACKAGES_FROM="$(nvm_version "${PROVIDED_REINSTALL_PACKAGES_FROM}")" ||: ;; - --reinstall-packages-from) - nvm_err 'If --reinstall-packages-from is provided, it must point to an installed version of node using `=`.' - return 6 - ;; --copy-packages-from=*) + if [ -n "${PROVIDED_REINSTALL_PACKAGES_FROM-}" ]; then + nvm_err '--reinstall-packages-from may not be provided more than once, or combined with `--copy-packages-from`' + return 6 + fi PROVIDED_REINSTALL_PACKAGES_FROM="$(nvm_echo "$1" | command cut -c 22-)" + if [ -z "${PROVIDED_REINSTALL_PACKAGES_FROM}" ]; then + nvm_err 'If --copy-packages-from is provided, it must point to an installed version of node.' + return 6 + fi REINSTALL_PACKAGES_FROM="$(nvm_version "${PROVIDED_REINSTALL_PACKAGES_FROM}")" ||: ;; + --reinstall-packages-from | --copy-packages-from) + nvm_err "If ${1} is provided, it must point to an installed version of node using \`=\`." + return 6 + ;; --skip-default-packages) SKIP_DEFAULT_PACKAGES=true ;; diff --git a/test/installation_node/install while reinstalling packages b/test/installation_node/install while reinstalling packages index 5588842..b180bcc 100755 --- a/test/installation_node/install while reinstalling packages +++ b/test/installation_node/install while reinstalling packages @@ -7,6 +7,7 @@ die () { echo "$@" ; exit 1; } # Remove the stuff we're clobbering. [ -e "${NVM_DIR}/versions/node/v9.7.0" ] && rm -R "${NVM_DIR}/versions/node/v9.7.0" [ -e "${NVM_DIR}/versions/node/v9.10.0" ] && rm -R "${NVM_DIR}/versions/node/v9.10.0" +[ -e "${NVM_DIR}/versions/node/v4.9.1" ] && rm -R "${NVM_DIR}/versions/node/v4.9.1" # Install from binary nvm install 9.7.0 @@ -31,3 +32,15 @@ nvm use 9 node --version | grep v9.10.0 > /dev/null || die "nvm ls 9 didn't use v9.10.0" npm list --global | grep object-is > /dev/null || die "object-is isn't installed" + + +# LTS + +nvm install --lts=argon --reinstall-packages-from=9 || die "nvm install 9.10.0 --reinstall-packages-from=9 failed" + +[ -d "${NVM_DIR}/versions/node/v4.9.1" ] || die "nvm install 4.9.1 didn't install" + +nvm use --lts=argon +node --version | grep v4.9.1 > /dev/null || die "nvm ls --lts=argon didn't use v4.9.1" + +npm list --global | grep object-is > /dev/null || die "object-is isn't installed" From 2d4e877b61f61f91cb7a9d2acbb1ffd1582bf736 Mon Sep 17 00:00:00 2001 From: Szymon Dzialowski Date: Wed, 10 Jun 2020 18:28:14 +0100 Subject: [PATCH 1263/1426] [readme] Stop removing spaces from nvm_path It breaks switching version of node through nvm in directories with space somewhere in it's path. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ca88148..dcb1b2d 100644 --- a/README.md +++ b/README.md @@ -463,7 +463,7 @@ find-up () { cdnvm(){ cd "$@"; - nvm_path=$(find-up .nvmrc | tr -d '[:space:]') + nvm_path=$(find-up .nvmrc | tr -d '\n') # If there are no .nvmrc file, use the default nvm version if [[ ! $nvm_path = *[^[:space:]]* ]]; then From bac5393e12caa4a3b14ad3ecaf83c926d997e61f Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Fri, 29 May 2020 21:01:47 +0800 Subject: [PATCH 1264/1426] [Docs] Syntax highlight for Ansible task example in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index dcb1b2d..08e7d02 100644 --- a/README.md +++ b/README.md @@ -110,7 +110,7 @@ If the above doesn't fix the problem, you may try the following: You can use a task: -``` +```yaml - name: nvm shell: > curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash From 7b3af45cf73196c0a9e7ea418aee0fc8272811d0 Mon Sep 17 00:00:00 2001 From: Connor Leech Date: Mon, 25 May 2020 07:36:40 -0700 Subject: [PATCH 1265/1426] [readme] Update install instructions troubleshooting This is in response to a popular stack overflow answer that has helped people resolve the "command not found" hiccup: https://stackoverflow.com/a/17707224/2031033 Also mentioned here: https://github.com/nvm-sh/nvm/issues/748 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 08e7d02..5011726 100644 --- a/README.md +++ b/README.md @@ -96,7 +96,7 @@ If you get `nvm: command not found` after running the install script, one of the - Your system may not have a `.bash_profile` file where the command is set up. Create one with `touch ~/.bash_profile` and run the install script again - - You might need to restart your terminal instance. Try opening a new tab/window in your terminal and retry. + - You might need to restart your terminal instance or run `. ~/.nvm/nvm.sh`. Restarting your terminal/opening a new tab/window, or running the source command will load the command and the new configuration. If the above doesn't fix the problem, you may try the following: From d2d232ea2bb463ad13513e901b258c2335969751 Mon Sep 17 00:00:00 2001 From: Marcus Kazmierczak Date: Wed, 24 Jun 2020 11:02:01 -0700 Subject: [PATCH 1266/1426] [readme] Update macOS troubleshooting w/ 10.15 zsh default The default shell for macOS 10.15 is now zsh, by default a .zshrc file is not created, so switch instruction for touch ~/.zshrc --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5011726..cc49c97 100644 --- a/README.md +++ b/README.md @@ -94,7 +94,9 @@ Since OS X 10.9, `/usr/bin/git` has been preset by Xcode command line tools, whi If you get `nvm: command not found` after running the install script, one of the following might be the reason: - - Your system may not have a `.bash_profile` file where the command is set up. Create one with `touch ~/.bash_profile` and run the install script again + - Since macOS 10.15, the default shell is `zsh` and nvm will look for `.zshrc` to update, none is installed by default. Create one with `touch ~/.zshrc` and run the install script again. + + - If you use bash, the previous default shell, run `touch ~/.bash_profile` to create the necessary profile file if it does not exist. - You might need to restart your terminal instance or run `. ~/.nvm/nvm.sh`. Restarting your terminal/opening a new tab/window, or running the source command will load the command and the new configuration. From f6d11bae4195179cedd347e339b65283258e94ce Mon Sep 17 00:00:00 2001 From: Bram Wubs Date: Tue, 7 Jul 2020 08:29:00 +0200 Subject: [PATCH 1267/1426] [readme] Fix fish load_nvm function --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cc49c97..387640d 100644 --- a/README.md +++ b/README.md @@ -564,7 +564,7 @@ function load_nvm --on-variable="PWD" if test -n "$nvmrc_path" set -l nvmrc_node_version (nvm version (cat $nvmrc_path)) if test "$nvmrc_node_version" = "N/A" - nvm install $nvmrc_node_version + nvm install (cat $nvmrc_path) else if test nvmrc_node_version != node_version nvm use $nvmrc_node_version end From 4b1100e515d7fa1a949b232672e4ca30937bc0ea Mon Sep 17 00:00:00 2001 From: DeeDeeG Date: Wed, 29 Jan 2020 16:20:15 -0500 Subject: [PATCH 1268/1426] [New] `nvm_supports_xz`: Add Mac/FreeBSD xz platform support checks macOS only supports extracting xz tarballs with `tar` in 10.9 and up. GNU tar needs an `xz` executable on the `PATH` to extract xz tarballs. (These are the most common variants of tar, so until further testing is done, conservatively assume all variants of tar (other than the one shipped with macOS) need an xz executable on the PATH in order to decompress xz tarballs.) Fixes #2155. --- nvm.sh | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index 32aacff..c40c607 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3687,10 +3687,32 @@ EOF } nvm_supports_xz() { - if [ -z "${1-}" ] || ! command which xz >/dev/null 2>&1; then + if [ -z "${1-}" ]; then return 1 fi + local NVM_OS + NVM_OS="$(nvm_get_os)" + if [ "_${NVM_OS}" = '_darwin' ]; then + local MACOS_VERSION + MACOS_VERSION="$(sw_vers -productVersion)" + if nvm_version_greater "10.9.0" "${MACOS_VERSION}"; then + # macOS 10.8 and earlier doesn't support extracting xz-compressed tarballs with tar + return 1 + fi + elif [ "_${NVM_OS}" = '_freebsd' ]; then + if ! [ -e '/usr/lib/liblzma.so' ]; then + # FreeBSD without /usr/lib/liblzma.so doesn't support extracting xz-compressed tarballs with tar + return 1 + fi + else + if ! command which xz >/dev/null 2>&1; then + # Most OSes without xz on the PATH don't support extracting xz-compressed tarballs with tar + # (Should correctly handle Linux, SmartOS, maybe more) + return 1 + fi + fi + # all node versions v4.0.0 and later have xz if nvm_is_merged_node_version "${1}"; then return 0 @@ -3706,8 +3728,6 @@ nvm_supports_xz() { return 0 fi - local NVM_OS - NVM_OS="$(nvm_get_os)" case "${NVM_OS}" in darwin) # darwin only has xz for io.js v2.3.2 and later From 06c3bf6a8fa156e13e28e336022dd3b438320d1e Mon Sep 17 00:00:00 2001 From: ritmos Date: Sat, 20 Jun 2020 15:15:01 +0200 Subject: [PATCH 1269/1426] [Docs] `--help`: explain more clearly that parameter is optional and can be provided by .nvmrc on `nvm install`, `nvm use`, `nvm exec`, and `nvm run`. --- nvm.sh | 88 +++++++++++++++++++++++++++++----------------------------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/nvm.sh b/nvm.sh index c40c607..ce142f9 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2392,50 +2392,50 @@ nvm() { nvm_echo ' Any options that produce colorized output should respect the `--no-colors` option.' nvm_echo nvm_echo 'Usage:' - nvm_echo ' nvm --help Show this message' - nvm_echo ' nvm --version Print out the installed version of nvm' - nvm_echo ' nvm install [-s] Download and install a , [-s] from source. Uses .nvmrc if available' - nvm_echo ' --reinstall-packages-from= When installing, reinstall packages installed in ' - nvm_echo ' --lts When installing, only select from LTS (long-term support) versions' - nvm_echo ' --lts= When installing, only select from versions for a specific LTS line' - nvm_echo ' --skip-default-packages When installing, skip the default-packages file if it exists' - nvm_echo ' --latest-npm After installing, attempt to upgrade to the latest working npm on the given node version' - nvm_echo ' --no-progress Disable the progress bar on any downloads' - nvm_echo ' nvm uninstall Uninstall a version' - nvm_echo ' nvm uninstall --lts Uninstall using automatic LTS (long-term support) alias `lts/*`, if available.' - nvm_echo ' nvm uninstall --lts= Uninstall using automatic alias for provided LTS line, if available.' - nvm_echo ' nvm use [--silent] Modify PATH to use . Uses .nvmrc if available' - nvm_echo ' --lts Uses automatic LTS (long-term support) alias `lts/*`, if available.' - nvm_echo ' --lts= Uses automatic alias for provided LTS line, if available.' - nvm_echo ' nvm exec [--silent] [] Run on . Uses .nvmrc if available' - nvm_echo ' --lts Uses automatic LTS (long-term support) alias `lts/*`, if available.' - nvm_echo ' --lts= Uses automatic alias for provided LTS line, if available.' - nvm_echo ' nvm run [--silent] [] Run `node` on with as arguments. Uses .nvmrc if available' - nvm_echo ' --lts Uses automatic LTS (long-term support) alias `lts/*`, if available.' - nvm_echo ' --lts= Uses automatic alias for provided LTS line, if available.' - nvm_echo ' nvm current Display currently activated version of Node' - nvm_echo ' nvm ls [] List installed versions, matching a given if provided' - nvm_echo ' --no-colors Suppress colored output' - nvm_echo ' --no-alias Suppress `nvm alias` output' - nvm_echo ' nvm ls-remote [] List remote versions available for install, matching a given if provided' - nvm_echo ' --lts When listing, only show LTS (long-term support) versions' - nvm_echo ' --lts= When listing, only show versions for a specific LTS line' - nvm_echo ' --no-colors Suppress colored output' - nvm_echo ' nvm version Resolve the given description to a single local version' - nvm_echo ' nvm version-remote Resolve the given description to a single remote version' - nvm_echo ' --lts When listing, only select from LTS (long-term support) versions' - nvm_echo ' --lts= When listing, only select from versions for a specific LTS line' - nvm_echo ' nvm deactivate Undo effects of `nvm` on current shell' - nvm_echo ' nvm alias [] Show all aliases beginning with ' - nvm_echo ' --no-colors Suppress colored output' - nvm_echo ' nvm alias Set an alias named pointing to ' - nvm_echo ' nvm unalias Deletes the alias named ' - nvm_echo ' nvm install-latest-npm Attempt to upgrade to the latest working `npm` on the current node version' - nvm_echo ' nvm reinstall-packages Reinstall global `npm` packages contained in to current version' - nvm_echo ' nvm unload Unload `nvm` from shell' - nvm_echo ' nvm which [current | ] Display path to installed node version. Uses .nvmrc if available' - nvm_echo ' nvm cache dir Display path to the cache directory for nvm' - nvm_echo ' nvm cache clear Empty cache directory for nvm' + nvm_echo ' nvm --help Show this message' + nvm_echo ' nvm --version Print out the installed version of nvm' + nvm_echo ' nvm install [-s] [] Download and install a , [-s] from source. Uses .nvmrc if available' + nvm_echo ' --reinstall-packages-from= When installing, reinstall packages installed in ' + nvm_echo ' --lts When installing, only select from LTS (long-term support) versions' + nvm_echo ' --lts= When installing, only select from versions for a specific LTS line' + nvm_echo ' --skip-default-packages When installing, skip the default-packages file if it exists' + nvm_echo ' --latest-npm After installing, attempt to upgrade to the latest working npm on the given node version' + nvm_echo ' --no-progress Disable the progress bar on any downloads' + nvm_echo ' nvm uninstall Uninstall a version' + nvm_echo ' nvm uninstall --lts Uninstall using automatic LTS (long-term support) alias `lts/*`, if available.' + nvm_echo ' nvm uninstall --lts= Uninstall using automatic alias for provided LTS line, if available.' + nvm_echo ' nvm use [--silent] [] Modify PATH to use . Uses .nvmrc if available' + nvm_echo ' --lts Uses automatic LTS (long-term support) alias `lts/*`, if available.' + nvm_echo ' --lts= Uses automatic alias for provided LTS line, if available.' + nvm_echo ' nvm exec [--silent] [] [] Run on . Uses .nvmrc if available' + nvm_echo ' --lts Uses automatic LTS (long-term support) alias `lts/*`, if available.' + nvm_echo ' --lts= Uses automatic alias for provided LTS line, if available.' + nvm_echo ' nvm run [--silent] [] [] Run `node` on with as arguments. Uses .nvmrc if available' + nvm_echo ' --lts Uses automatic LTS (long-term support) alias `lts/*`, if available.' + nvm_echo ' --lts= Uses automatic alias for provided LTS line, if available.' + nvm_echo ' nvm current Display currently activated version of Node' + nvm_echo ' nvm ls [] List installed versions, matching a given if provided' + nvm_echo ' --no-colors Suppress colored output' + nvm_echo ' --no-alias Suppress `nvm alias` output' + nvm_echo ' nvm ls-remote [] List remote versions available for install, matching a given if provided' + nvm_echo ' --lts When listing, only show LTS (long-term support) versions' + nvm_echo ' --lts= When listing, only show versions for a specific LTS line' + nvm_echo ' --no-colors Suppress colored output' + nvm_echo ' nvm version Resolve the given description to a single local version' + nvm_echo ' nvm version-remote Resolve the given description to a single remote version' + nvm_echo ' --lts When listing, only select from LTS (long-term support) versions' + nvm_echo ' --lts= When listing, only select from versions for a specific LTS line' + nvm_echo ' nvm deactivate Undo effects of `nvm` on current shell' + nvm_echo ' nvm alias [] Show all aliases beginning with ' + nvm_echo ' --no-colors Suppress colored output' + nvm_echo ' nvm alias Set an alias named pointing to ' + nvm_echo ' nvm unalias Deletes the alias named ' + nvm_echo ' nvm install-latest-npm Attempt to upgrade to the latest working `npm` on the current node version' + nvm_echo ' nvm reinstall-packages Reinstall global `npm` packages contained in to current version' + nvm_echo ' nvm unload Unload `nvm` from shell' + nvm_echo ' nvm which [current | ] Display path to installed node version. Uses .nvmrc if available' + nvm_echo ' nvm cache dir Display path to the cache directory for nvm' + nvm_echo ' nvm cache clear Empty cache directory for nvm' nvm_echo nvm_echo 'Example:' nvm_echo ' nvm install 8.0.0 Install a specific version number' From 55eafcd8146ff5d1068e9758db05639b2b4a0f44 Mon Sep 17 00:00:00 2001 From: Dena Burd Date: Mon, 27 Jul 2020 10:26:35 -0700 Subject: [PATCH 1270/1426] [New] add `nvm -v` as an alias for `nvm --version` Fixes #2200. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index ce142f9..7f77000 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3580,7 +3580,7 @@ nvm() { esac NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; - "--version") + "--version" | "-v") nvm_echo '0.35.3' ;; "unload") From 83043c4d3a6d82f56a38e0511024ad50264b85a1 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 25 Jul 2020 13:38:52 -0700 Subject: [PATCH 1271/1426] [debug] add `whoami` output --- nvm.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/nvm.sh b/nvm.sh index 7f77000..77190cd 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2480,6 +2480,7 @@ nvm() { nvm_err "\$SHELL: ${SHELL}" # shellcheck disable=SC2169 nvm_err "\$SHLVL: ${SHLVL-}" + nvm_err "whoami: '$(whoami)'" nvm_err "\${HOME}: ${HOME}" nvm_err "\${NVM_DIR}: '$(nvm_sanitize_path "${NVM_DIR}")'" nvm_err "\${PATH}: $(nvm_sanitize_path "${PATH}")" From 3561bbc54a1fb9c175ed03981550f739a3deef21 Mon Sep 17 00:00:00 2001 From: Naomi Quinones <52065567+naomiquinones@users.noreply.github.com> Date: Tue, 28 Jul 2020 17:56:48 -0700 Subject: [PATCH 1272/1426] [Fix] `--help`: Add more examples Fixes #2120. --- nvm.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/nvm.sh b/nvm.sh index 77190cd..310645f 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2445,6 +2445,11 @@ nvm() { nvm_echo ' nvm alias default 8.1.0 Set default node version on a shell' nvm_echo ' nvm alias default node Always default to the latest available node version on a shell' nvm_echo + nvm_echo ' nvm install node Install the latest available version' + nvm_echo ' nvm use node Use the latest version' + nvm_echo ' nvm install --lts Install the latest LTS version' + nvm_echo ' nvm use --lts Use the latest LTS version' + nvm_echo nvm_echo 'Note:' nvm_echo ' to remove, delete, or uninstall nvm - just remove the `$NVM_DIR` folder (usually `~/.nvm`)' nvm_echo From abfe0a589183931337a6448c53248dea3b56b6f5 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 31 Jul 2020 22:10:28 -0700 Subject: [PATCH 1273/1426] [Refactor] remove unused `nvm_checksum` function --- nvm.sh | 45 +------------------------------ test/fast/Unit tests/nvm_checksum | 18 ------------- 2 files changed, 1 insertion(+), 62 deletions(-) delete mode 100755 test/fast/Unit tests/nvm_checksum diff --git a/nvm.sh b/nvm.sh index 310645f..ca41eed 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1412,49 +1412,6 @@ nvm_get_checksum() { nvm_download -L -s "${SHASUMS_URL}" -o - | command awk "{ if (\"${4}.tar.${5}\" == \$2) print \$1}" } -nvm_checksum() { - local NVM_CHECKSUM - if [ -z "${3-}" ] || [ "${3-}" = 'sha1' ]; then - if nvm_has_non_aliased "sha1sum"; then - NVM_CHECKSUM="$(command sha1sum "${1-}" | command awk '{print $1}')" - elif nvm_has_non_aliased "sha1"; then - NVM_CHECKSUM="$(command sha1 -q "${1-}")" - elif nvm_has_non_aliased "shasum"; then - NVM_CHECKSUM="$(command shasum "${1-}" | command awk '{print $1}')" - else - nvm_err 'Unaliased sha1sum, sha1, or shasum not found.' - return 2 - fi - else - if nvm_has_non_aliased "sha256sum"; then - NVM_CHECKSUM="$(command sha256sum "${1-}" | command awk '{print $1}')" - elif nvm_has_non_aliased "shasum"; then - NVM_CHECKSUM="$(command shasum -a 256 "${1-}" | command awk '{print $1}')" - elif nvm_has_non_aliased "sha256"; then - NVM_CHECKSUM="$(command sha256 -q "${1-}" | command awk '{print $1}')" - elif nvm_has_non_aliased "gsha256sum"; then - NVM_CHECKSUM="$(command gsha256sum "${1-}" | command awk '{print $1}')" - elif nvm_has_non_aliased "openssl"; then - NVM_CHECKSUM="$(command openssl dgst -sha256 "${1-}" | command awk '{print $NF}')" - elif nvm_has_non_aliased "bssl"; then - NVM_CHECKSUM="$(command bssl sha256sum "${1-}" | command awk '{print $1}')" - else - nvm_err 'Unaliased sha256sum, shasum, sha256, gsha256sum, openssl, or bssl not found.' - nvm_err 'WARNING: Continuing *without checksum verification*' - return - fi - fi - - if [ "_${NVM_CHECKSUM}" = "_${2-}" ]; then - return - elif [ -z "${2-}" ]; then - nvm_echo 'Checksums empty' #missing in raspberry pi binary - return - fi - nvm_err 'Checksums do not match.' - return 1 -} - nvm_print_versions() { local VERSION local LTS @@ -3600,7 +3557,7 @@ nvm() { nvm_install_binary nvm_install_source nvm_clang_version \ nvm_get_mirror nvm_get_download_slug nvm_download_artifact \ nvm_install_npm_if_needed nvm_use_if_needed nvm_check_file_permissions \ - nvm_print_versions nvm_compute_checksum nvm_checksum \ + nvm_print_versions nvm_compute_checksum \ nvm_get_checksum_alg nvm_get_checksum nvm_compare_checksum \ nvm_version nvm_rc_version nvm_match_version \ nvm_ensure_default_set nvm_get_arch nvm_get_os \ diff --git a/test/fast/Unit tests/nvm_checksum b/test/fast/Unit tests/nvm_checksum deleted file mode 100755 index 4103af1..0000000 --- a/test/fast/Unit tests/nvm_checksum +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh - -cleanup () { - rm tmp/emptyfile tmp/testfile - rmdir tmp -} -die () { echo "$@" ; cleanup; exit 1; } - -\. ../../../nvm.sh - -mkdir -p tmp -touch tmp/emptyfile -echo -n "test" > tmp/testfile - -nvm_checksum tmp/emptyfile "da39a3ee5e6b4b0d3255bfef95601890afd80709" || die "nvm_checksum on an empty file did not match the SHA1 digest of the empty string" -nvm_checksum tmp/testfile "da39a3ee5e6b4b0d3255bfef95601890afd80709" && die "nvm_checksum allowed a bad checksum" - -cleanup From 424aeb38b42be35aa0047bf24afbebc80a4a8721 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 31 Jul 2020 22:13:21 -0700 Subject: [PATCH 1274/1426] [Refactor] add `nvm_get_checksum_binary`; use it in `nvm debug` --- nvm.sh | 60 ++++++++++++-------- test/fast/Unit tests/nvm_get_checksum_binary | 20 +++++++ 2 files changed, 57 insertions(+), 23 deletions(-) create mode 100755 test/fast/Unit tests/nvm_get_checksum_binary diff --git a/nvm.sh b/nvm.sh index ca41eed..c4a80af 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1286,32 +1286,47 @@ EOF nvm_echo "${VERSIONS}" } -nvm_get_checksum_alg() { - if nvm_has_non_aliased "sha256sum"; then - nvm_echo 'sha-256' - elif nvm_has_non_aliased "shasum"; then - nvm_echo 'sha-256' - elif nvm_has_non_aliased "sha256"; then - nvm_echo 'sha-256' - elif nvm_has_non_aliased "gsha256sum"; then - nvm_echo 'sha-256' - elif nvm_has_non_aliased "openssl"; then - nvm_echo 'sha-256' - elif nvm_has_non_aliased "bssl"; then - nvm_echo 'sha-256' - elif nvm_has_non_aliased "sha1sum"; then - nvm_echo 'sha-1' - elif nvm_has_non_aliased "sha1"; then - nvm_echo 'sha-1' - elif nvm_has_non_aliased "shasum"; then - nvm_echo 'sha-1' +nvm_get_checksum_binary() { + if nvm_has_non_aliased 'sha256sum'; then + nvm_echo 'sha256sum' + elif nvm_has_non_aliased 'shasum'; then + nvm_echo 'shasum' + elif nvm_has_non_aliased 'sha256'; then + nvm_echo 'sha256' + elif nvm_has_non_aliased 'gsha256sum'; then + nvm_echo 'gsha256sum' + elif nvm_has_non_aliased 'openssl'; then + nvm_echo 'openssl' + elif nvm_has_non_aliased 'bssl'; then + nvm_echo 'bssl' + elif nvm_has_non_aliased 'sha1sum'; then + nvm_echo 'sha1sum' + elif nvm_has_non_aliased 'sha1'; then + nvm_echo 'sha1' else nvm_err 'Unaliased sha256sum, shasum, sha256, gsha256sum, openssl, or bssl not found.' - nvm_err 'Unaliased sha1sum, sha1, or shasum not found.' + nvm_err 'Unaliased sha1sum or sha1 not found.' return 1 fi } +nvm_get_checksum_alg() { + local NVM_CHECKSUM_BIN + NVM_CHECKSUM_BIN="$(nvm_get_checksum_binary 2>/dev/null)" + case "${NVM_CHECKSUM_BIN-}" in + sha256sum | shasum | sha256 | gsha256sum | openssl | bssl) + nvm_echo 'sha-256' + ;; + sha1sum | sha1) + nvm_echo 'sha-1' + ;; + *) + nvm_get_checksum_binary + return $? + ;; + esac +} + nvm_compute_checksum() { local FILE FILE="${1-}" @@ -1347,9 +1362,6 @@ nvm_compute_checksum() { elif nvm_has_non_aliased "sha1"; then nvm_err 'Computing checksum with sha1 -q' command sha1 -q "${FILE}" - elif nvm_has_non_aliased "shasum"; then - nvm_err 'Computing checksum with shasum' - command shasum "${FILE}" | command awk '{print $1}' fi } @@ -2452,6 +2464,7 @@ nvm() { nvm_err "\$NVM_IOJS_ORG_MIRROR: '${NVM_IOJS_ORG_MIRROR}'" nvm_err "shell version: '$(${SHELL} --version | command head -n 1)'" nvm_err "uname -a: '$(command uname -a | command awk '{$2=""; print}' | command xargs)'" + nvm_err "checksum binary: '$(nvm_get_checksum_binary 2>/dev/null)'" if [ "$(nvm_get_os)" = "darwin" ] && nvm_has sw_vers; then OS_VERSION="$(sw_vers | command awk '{print $2}' | command xargs)" elif [ -r "/etc/issue" ]; then @@ -3558,6 +3571,7 @@ nvm() { nvm_get_mirror nvm_get_download_slug nvm_download_artifact \ nvm_install_npm_if_needed nvm_use_if_needed nvm_check_file_permissions \ nvm_print_versions nvm_compute_checksum \ + nvm_get_checksum_binary \ nvm_get_checksum_alg nvm_get_checksum nvm_compare_checksum \ nvm_version nvm_rc_version nvm_match_version \ nvm_ensure_default_set nvm_get_arch nvm_get_os \ diff --git a/test/fast/Unit tests/nvm_get_checksum_binary b/test/fast/Unit tests/nvm_get_checksum_binary new file mode 100755 index 0000000..0de0cd4 --- /dev/null +++ b/test/fast/Unit tests/nvm_get_checksum_binary @@ -0,0 +1,20 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; exit 1; } + +set +e # TODO: fix +\. ../../../nvm.sh +set -e + +BIN="$(nvm_get_checksum_binary)" + +case "${BIN-}" in + sha256sum | shasum | sha256 | gsha256sum | openssl | bssl | sha1sum | sha1 | shasum) + echo "${BIN} found" + ;; + *) + die "sha256sum | shasum | sha256 | gsha256sum | openssl | bssl | sha1sum | sha1 | shasum not found: found ${BIN}" + ;; +esac From 18c6f98acc336f3dc9f6aff591d02af021923b26 Mon Sep 17 00:00:00 2001 From: Saikat Das Date: Tue, 28 Jul 2020 19:31:30 +0530 Subject: [PATCH 1275/1426] [readme] Add documentation for LTS updates which reinstall existing packages Added an example for LTS updates that also reinstall the existing packages. This is useful for individuals who run the latest LTS version along with global packages and need to update when the LTS version gets bumped --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 387640d..810fb55 100644 --- a/README.md +++ b/README.md @@ -290,6 +290,12 @@ Node has a [schedule](https://github.com/nodejs/Release#release-schedule) for lo Any time your local copy of `nvm` connects to https://nodejs.org, it will re-create the appropriate local aliases for all available LTS lines. These aliases (stored under `$NVM_DIR/alias/lts`), are managed by `nvm`, and you should not modify, remove, or create these files - expect your changes to be undone, and expect meddling with these files to cause bugs that will likely not be supported. +To get the latest LTS version of node and migrate your existing installed packages, use + +```sh +nvm install --lts --reinstall-packages-from=current +``` + ### Migrating Global Packages While Installing If you want to install a new version of Node.js and migrate npm packages from a previous version: From a5aec107df6e394977f76032efb2c96616049fba Mon Sep 17 00:00:00 2001 From: Kayla Altepeter Date: Mon, 22 Oct 2018 08:32:29 -0500 Subject: [PATCH 1276/1426] [New] adding default and alias option to `nvm install` For: `nvm install 8.12.0` after install: --alias=8 is equivalent to `nvm alias 8 8.12.0` --default is equivalent to `nvm alias default 8.12.0` Co-authored-by: Kayla Altepeter Co-authored-by: Dena Burd Co-authored-by: Jordan Harband --- nvm.sh | 28 +++++++++++++++++++ test/installation_node/install with --alias | 11 ++++++++ test/installation_node/install with --default | 11 ++++++++ 3 files changed, 50 insertions(+) create mode 100755 test/installation_node/install with --alias create mode 100755 test/installation_node/install with --default diff --git a/nvm.sh b/nvm.sh index c4a80af..98aaf97 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1771,6 +1771,10 @@ nvm_install_binary() { command mv "${TMPDIR}/"* "${VERSION_PATH}" && \ command rm -rf "${TMPDIR}" ); then + + if [ -n "${ALIAS-}" ]; then + nvm alias "${ALIAS}" "${provided_version}" + fi return 0 fi @@ -2370,6 +2374,8 @@ nvm() { nvm_echo ' --skip-default-packages When installing, skip the default-packages file if it exists' nvm_echo ' --latest-npm After installing, attempt to upgrade to the latest working npm on the given node version' nvm_echo ' --no-progress Disable the progress bar on any downloads' + nvm_echo ' --alias= After installing, set the alias specified to the version specified. (same as: nvm alias )' + nvm_echo ' --default After installing, set default alias to the version specified. (same as: nvm alias default )' nvm_echo ' nvm uninstall Uninstall a version' nvm_echo ' nvm uninstall --lts Uninstall using automatic LTS (long-term support) alias `lts/*`, if available.' nvm_echo ' nvm uninstall --lts= Uninstall using automatic alias for provided LTS line, if available.' @@ -2546,6 +2552,7 @@ nvm() { nobinary=0 noprogress=0 local LTS + local ALIAS local NVM_UPGRADE_NPM NVM_UPGRADE_NPM=0 @@ -2585,6 +2592,22 @@ nvm() { NVM_UPGRADE_NPM=1 shift ;; + --default) + if [ -n "${ALIAS-}" ]; then + nvm_err '--default and --alias are mutually exclusive, and may not be provided more than once' + return 6 + fi + ALIAS='default' + shift + ;; + --alias=*) + if [ -n "${ALIAS-}" ]; then + nvm_err '--default and --alias are mutually exclusive, and may not be provided more than once' + return 6 + fi + ALIAS="${1##--alias=}" + shift + ;; --reinstall-packages-from=*) if [ -n "${PROVIDED_REINSTALL_PACKAGES_FROM-}" ]; then nvm_err '--reinstall-packages-from may not be provided more than once' @@ -2766,6 +2789,11 @@ nvm() { else nvm_ensure_default_set "${provided_version}" fi + + if [ -n "${ALIAS}" ]; then + nvm alias "${ALIAS}" "${provided_version}" + fi + return $? fi diff --git a/test/installation_node/install with --alias b/test/installation_node/install with --alias new file mode 100755 index 0000000..8be8cbd --- /dev/null +++ b/test/installation_node/install with --alias @@ -0,0 +1,11 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; exit 1; } + +\. ../../nvm.sh + +nvm install --alias=9 9.11.2 || die '`nvm install --alias=9 9.11.2` failed' + +TERM=dumb nvm alias | grep '9 -> 9.11.2 (-> v9.11.2 \*)' || die 'did not make the expected alias' diff --git a/test/installation_node/install with --default b/test/installation_node/install with --default new file mode 100755 index 0000000..5a06d34 --- /dev/null +++ b/test/installation_node/install with --default @@ -0,0 +1,11 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; exit 1; } + +\. ../../nvm.sh + +nvm install --default node || die '`nvm install --default` failed' + +TERM=dumb nvm alias | grep "default -> node (-> $(nvm version node) \*)" || die 'did not make the expected alias' From a01deb11dc95d908cf5223bb497fcb31a3bbd4de Mon Sep 17 00:00:00 2001 From: Dimitris Karagiannis Date: Mon, 20 Jul 2020 13:27:46 +0300 Subject: [PATCH 1277/1426] [patch] Update docs and add warning for 'nvm is not compatible with the npm config "prefix" option' edgecase error on Mac OS --- README.md | 10 ++++++++++ nvm.sh | 6 ++++++ 2 files changed, 16 insertions(+) diff --git a/README.md b/README.md index 810fb55..a264f01 100644 --- a/README.md +++ b/README.md @@ -805,6 +805,16 @@ sudo chmod ugo-x /usr/libexec/path_helper More on this issue in [dotphiles/dotzsh](https://github.com/dotphiles/dotzsh#mac-os-x). +**nvm is not compatible with the npm config "prefix" option** + +Some solutions for this issue can be found [here](https://github.com/nvm-sh/nvm/issues/1245) + +There is one more edge case causing this issue, and that's a **mismatch between the `$HOME` path and the user's home directory's actual name**. + +You have to make sure that the user directory name in `$HOME` and the user directory name you'd see from running `ls /Users/` **are capitalized the same way** ([See this issue](https://github.com/nvm-sh/nvm/issues/2261)). + +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.35.3/install.sh [3]: https://travis-ci.org/nvm-sh/nvm diff --git a/nvm.sh b/nvm.sh index 98aaf97..4cdfab5 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2201,6 +2201,8 @@ nvm_die_on_prefix() { fi local NVM_NPM_PREFIX + local NVM_OS + NVM_OS="$(nvm_get_os)" NVM_NPM_PREFIX="$(npm config --loglevel=warn get prefix)" if ! (nvm_tree_contains_path "${NVM_DIR}" "${NVM_NPM_PREFIX}" >/dev/null 2>&1); then if [ "_${NVM_DELETE_PREFIX}" = "_1" ]; then @@ -2213,6 +2215,10 @@ nvm_die_on_prefix() { else nvm_err "Run \`${NVM_COMMAND}\` to unset it." fi + if [ "${NVM_OS}" = 'darwin' ]; then + nvm_err "Make sure your username ($(whoami)) matches the one in your \$HOME path." + nvm_err "See the \"macOS Troubleshooting\" section in the docs for more information." + fi return 10 fi fi From 1bf567bd0b12be189f595f5cd781258260cf37b5 Mon Sep 17 00:00:00 2001 From: Naomi Quinones <52065567+naomiquinones@users.noreply.github.com> Date: Tue, 4 Aug 2020 16:32:19 -0700 Subject: [PATCH 1278/1426] [Fix] ensure `--help` is intercepted on any command Co-authored-by: Naomi Quinones <52065567+naomiquinones@users.noreply.github.com> Co-authored-by: Dena Burd --- nvm.sh | 170 ++++++++++++------------ test/fast/Unit tests/nvm_check_for_help | 9 ++ 2 files changed, 97 insertions(+), 82 deletions(-) create mode 100755 test/fast/Unit tests/nvm_check_for_help diff --git a/nvm.sh b/nvm.sh index 4cdfab5..8db529d 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2345,6 +2345,94 @@ nvm() { return $? fi + for i in "$@" + do + case $i in + '-h'|'help'|'--help') + local NVM_IOJS_PREFIX + NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" + local NVM_NODE_PREFIX + NVM_NODE_PREFIX="$(nvm_node_prefix)" + NVM_VERSION="$(nvm --version)" + nvm_echo + nvm_echo "Node Version Manager (v${NVM_VERSION})" + nvm_echo + nvm_echo 'Note: refers to any version-like string nvm understands. This includes:' + nvm_echo ' - full or partial version numbers, starting with an optional "v" (0.10, v0.1.2, v1)' + nvm_echo " - default (built-in) aliases: ${NVM_NODE_PREFIX}, stable, unstable, ${NVM_IOJS_PREFIX}, system" + nvm_echo ' - custom aliases you define with `nvm alias foo`' + nvm_echo + nvm_echo ' Any options that produce colorized output should respect the `--no-colors` option.' + nvm_echo + nvm_echo 'Usage:' + nvm_echo ' nvm --help Show this message' + nvm_echo ' nvm --version Print out the installed version of nvm' + nvm_echo ' nvm install [-s] [] Download and install a , [-s] from source. Uses .nvmrc if available' + nvm_echo ' --reinstall-packages-from= When installing, reinstall packages installed in ' + nvm_echo ' --lts When installing, only select from LTS (long-term support) versions' + nvm_echo ' --lts= When installing, only select from versions for a specific LTS line' + nvm_echo ' --skip-default-packages When installing, skip the default-packages file if it exists' + nvm_echo ' --latest-npm After installing, attempt to upgrade to the latest working npm on the given node version' + nvm_echo ' --no-progress Disable the progress bar on any downloads' + nvm_echo ' --alias= After installing, set the alias specified to the version specified. (same as: nvm alias )' + nvm_echo ' --default After installing, set default alias to the version specified. (same as: nvm alias default )' + nvm_echo ' nvm uninstall Uninstall a version' + nvm_echo ' nvm uninstall --lts Uninstall using automatic LTS (long-term support) alias `lts/*`, if available.' + nvm_echo ' nvm uninstall --lts= Uninstall using automatic alias for provided LTS line, if available.' + nvm_echo ' nvm use [--silent] [] Modify PATH to use . Uses .nvmrc if available' + nvm_echo ' --lts Uses automatic LTS (long-term support) alias `lts/*`, if available.' + nvm_echo ' --lts= Uses automatic alias for provided LTS line, if available.' + nvm_echo ' nvm exec [--silent] [] [] Run on . Uses .nvmrc if available' + nvm_echo ' --lts Uses automatic LTS (long-term support) alias `lts/*`, if available.' + nvm_echo ' --lts= Uses automatic alias for provided LTS line, if available.' + nvm_echo ' nvm run [--silent] [] [] Run `node` on with as arguments. Uses .nvmrc if available' + nvm_echo ' --lts Uses automatic LTS (long-term support) alias `lts/*`, if available.' + nvm_echo ' --lts= Uses automatic alias for provided LTS line, if available.' + nvm_echo ' nvm current Display currently activated version of Node' + nvm_echo ' nvm ls [] List installed versions, matching a given if provided' + nvm_echo ' --no-colors Suppress colored output' + nvm_echo ' --no-alias Suppress `nvm alias` output' + nvm_echo ' nvm ls-remote [] List remote versions available for install, matching a given if provided' + nvm_echo ' --lts When listing, only show LTS (long-term support) versions' + nvm_echo ' --lts= When listing, only show versions for a specific LTS line' + nvm_echo ' --no-colors Suppress colored output' + nvm_echo ' nvm version Resolve the given description to a single local version' + nvm_echo ' nvm version-remote Resolve the given description to a single remote version' + nvm_echo ' --lts When listing, only select from LTS (long-term support) versions' + nvm_echo ' --lts= When listing, only select from versions for a specific LTS line' + nvm_echo ' nvm deactivate Undo effects of `nvm` on current shell' + nvm_echo ' nvm alias [] Show all aliases beginning with ' + nvm_echo ' --no-colors Suppress colored output' + nvm_echo ' nvm alias Set an alias named pointing to ' + nvm_echo ' nvm unalias Deletes the alias named ' + nvm_echo ' nvm install-latest-npm Attempt to upgrade to the latest working `npm` on the current node version' + nvm_echo ' nvm reinstall-packages Reinstall global `npm` packages contained in to current version' + nvm_echo ' nvm unload Unload `nvm` from shell' + nvm_echo ' nvm which [current | ] Display path to installed node version. Uses .nvmrc if available' + nvm_echo ' nvm cache dir Display path to the cache directory for nvm' + nvm_echo ' nvm cache clear Empty cache directory for nvm' + nvm_echo + nvm_echo 'Example:' + nvm_echo ' nvm install 8.0.0 Install a specific version number' + nvm_echo ' nvm use 8.0 Use the latest available 8.0.x release' + nvm_echo ' nvm run 6.10.3 app.js Run app.js using node 6.10.3' + nvm_echo ' nvm exec 4.8.3 node app.js Run `node app.js` with the PATH pointing to node 4.8.3' + nvm_echo ' nvm alias default 8.1.0 Set default node version on a shell' + nvm_echo ' nvm alias default node Always default to the latest available node version on a shell' + nvm_echo + nvm_echo ' nvm install node Install the latest available version' + nvm_echo ' nvm use node Use the latest version' + nvm_echo ' nvm install --lts Install the latest LTS version' + nvm_echo ' nvm use --lts Use the latest LTS version' + nvm_echo + nvm_echo 'Note:' + nvm_echo ' to remove, delete, or uninstall nvm - just remove the `$NVM_DIR` folder (usually `~/.nvm`)' + nvm_echo + return 0; + ;; + esac + done + local COMMAND COMMAND="${1-}" shift @@ -2354,88 +2442,6 @@ nvm() { local ADDITIONAL_PARAMETERS case $COMMAND in - 'help' | '--help') - local NVM_IOJS_PREFIX - NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" - local NVM_NODE_PREFIX - NVM_NODE_PREFIX="$(nvm_node_prefix)" - NVM_VERSION="$(nvm --version)" - nvm_echo - nvm_echo "Node Version Manager (v${NVM_VERSION})" - nvm_echo - nvm_echo 'Note: refers to any version-like string nvm understands. This includes:' - nvm_echo ' - full or partial version numbers, starting with an optional "v" (0.10, v0.1.2, v1)' - nvm_echo " - default (built-in) aliases: ${NVM_NODE_PREFIX}, stable, unstable, ${NVM_IOJS_PREFIX}, system" - nvm_echo ' - custom aliases you define with `nvm alias foo`' - nvm_echo - nvm_echo ' Any options that produce colorized output should respect the `--no-colors` option.' - nvm_echo - nvm_echo 'Usage:' - nvm_echo ' nvm --help Show this message' - nvm_echo ' nvm --version Print out the installed version of nvm' - nvm_echo ' nvm install [-s] [] Download and install a , [-s] from source. Uses .nvmrc if available' - nvm_echo ' --reinstall-packages-from= When installing, reinstall packages installed in ' - nvm_echo ' --lts When installing, only select from LTS (long-term support) versions' - nvm_echo ' --lts= When installing, only select from versions for a specific LTS line' - nvm_echo ' --skip-default-packages When installing, skip the default-packages file if it exists' - nvm_echo ' --latest-npm After installing, attempt to upgrade to the latest working npm on the given node version' - nvm_echo ' --no-progress Disable the progress bar on any downloads' - nvm_echo ' --alias= After installing, set the alias specified to the version specified. (same as: nvm alias )' - nvm_echo ' --default After installing, set default alias to the version specified. (same as: nvm alias default )' - nvm_echo ' nvm uninstall Uninstall a version' - nvm_echo ' nvm uninstall --lts Uninstall using automatic LTS (long-term support) alias `lts/*`, if available.' - nvm_echo ' nvm uninstall --lts= Uninstall using automatic alias for provided LTS line, if available.' - nvm_echo ' nvm use [--silent] [] Modify PATH to use . Uses .nvmrc if available' - nvm_echo ' --lts Uses automatic LTS (long-term support) alias `lts/*`, if available.' - nvm_echo ' --lts= Uses automatic alias for provided LTS line, if available.' - nvm_echo ' nvm exec [--silent] [] [] Run on . Uses .nvmrc if available' - nvm_echo ' --lts Uses automatic LTS (long-term support) alias `lts/*`, if available.' - nvm_echo ' --lts= Uses automatic alias for provided LTS line, if available.' - nvm_echo ' nvm run [--silent] [] [] Run `node` on with as arguments. Uses .nvmrc if available' - nvm_echo ' --lts Uses automatic LTS (long-term support) alias `lts/*`, if available.' - nvm_echo ' --lts= Uses automatic alias for provided LTS line, if available.' - nvm_echo ' nvm current Display currently activated version of Node' - nvm_echo ' nvm ls [] List installed versions, matching a given if provided' - nvm_echo ' --no-colors Suppress colored output' - nvm_echo ' --no-alias Suppress `nvm alias` output' - nvm_echo ' nvm ls-remote [] List remote versions available for install, matching a given if provided' - nvm_echo ' --lts When listing, only show LTS (long-term support) versions' - nvm_echo ' --lts= When listing, only show versions for a specific LTS line' - nvm_echo ' --no-colors Suppress colored output' - nvm_echo ' nvm version Resolve the given description to a single local version' - nvm_echo ' nvm version-remote Resolve the given description to a single remote version' - nvm_echo ' --lts When listing, only select from LTS (long-term support) versions' - nvm_echo ' --lts= When listing, only select from versions for a specific LTS line' - nvm_echo ' nvm deactivate Undo effects of `nvm` on current shell' - nvm_echo ' nvm alias [] Show all aliases beginning with ' - nvm_echo ' --no-colors Suppress colored output' - nvm_echo ' nvm alias Set an alias named pointing to ' - nvm_echo ' nvm unalias Deletes the alias named ' - nvm_echo ' nvm install-latest-npm Attempt to upgrade to the latest working `npm` on the current node version' - nvm_echo ' nvm reinstall-packages Reinstall global `npm` packages contained in to current version' - nvm_echo ' nvm unload Unload `nvm` from shell' - nvm_echo ' nvm which [current | ] Display path to installed node version. Uses .nvmrc if available' - nvm_echo ' nvm cache dir Display path to the cache directory for nvm' - nvm_echo ' nvm cache clear Empty cache directory for nvm' - nvm_echo - nvm_echo 'Example:' - nvm_echo ' nvm install 8.0.0 Install a specific version number' - nvm_echo ' nvm use 8.0 Use the latest available 8.0.x release' - nvm_echo ' nvm run 6.10.3 app.js Run app.js using node 6.10.3' - nvm_echo ' nvm exec 4.8.3 node app.js Run `node app.js` with the PATH pointing to node 4.8.3' - nvm_echo ' nvm alias default 8.1.0 Set default node version on a shell' - nvm_echo ' nvm alias default node Always default to the latest available node version on a shell' - nvm_echo - nvm_echo ' nvm install node Install the latest available version' - nvm_echo ' nvm use node Use the latest version' - nvm_echo ' nvm install --lts Install the latest LTS version' - nvm_echo ' nvm use --lts Use the latest LTS version' - nvm_echo - nvm_echo 'Note:' - nvm_echo ' to remove, delete, or uninstall nvm - just remove the `$NVM_DIR` folder (usually `~/.nvm`)' - nvm_echo - ;; - "cache") case "${1-}" in dir) nvm_cache_dir ;; diff --git a/test/fast/Unit tests/nvm_check_for_help b/test/fast/Unit tests/nvm_check_for_help new file mode 100755 index 0000000..b3218f2 --- /dev/null +++ b/test/fast/Unit tests/nvm_check_for_help @@ -0,0 +1,9 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +TERM=dumb nvm clear-cache --help | grep 'Usage:' || die 'did not print help menu' +TERM=dumb nvm cache help version | grep 'Usage:' || die 'did not print help menu' +TERM=dumb nvm cache -h version| grep 'Usage:' || die 'did not print help menu' From 16b75b7333f988279195f75dcf1ec8217ceb43df Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 11 Aug 2020 10:16:42 -0700 Subject: [PATCH 1279/1426] [Robustness] add `command` to `xargs`/`rm` in `nvm_get_default_packages` Fixes #2281. --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 8db529d..843cebf 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3661,7 +3661,7 @@ nvm_get_default_packages() { # ensure a trailing newline WORK=$(mktemp -d) || exit $? # shellcheck disable=SC2064 - trap "rm -rf '$WORK'" EXIT + trap "command rm -rf '$WORK'" EXIT # shellcheck disable=SC1003 sed -e '$a\' "${NVM_DEFAULT_PACKAGE_FILE}" > "${WORK}/default-packages" while IFS=' ' read -r line; do @@ -3681,7 +3681,7 @@ nvm_get_default_packages() { DEFAULT_PACKAGES="${DEFAULT_PACKAGES}${line} " done < "${WORK}/default-packages" - echo "${DEFAULT_PACKAGES}" | xargs + echo "${DEFAULT_PACKAGES}" | command xargs fi } From b1200c659b212cc68f94a04b6ee8861cec1986d3 Mon Sep 17 00:00:00 2001 From: Yash-Singh1 <53054099+Yash-Singh1@users.noreply.github.com> Date: Sat, 8 Aug 2020 17:27:46 -0700 Subject: [PATCH 1280/1426] [Fix] `nvm use`: fix `--silent` when version is omitted Fixed a bug where --silent mode was failing for nvm use I ran a test that just ran ```nvm use node --silent``` that I wrote by myself. Unfortunately I noticed a bug where it still prints out some messages in different cases. This pull request is to fix that bug. * Added in an argument called ***quiet*** to the nvm_rc_version() function at *line 339* * Printed anything inside the nvm_rc_version() only in the scenario where quiet mode is off * Ran the nvm_rc_version() function in quiet mode only if silent mode is on in the "use" command of nvm at *line 2990* * Ran *nvm_echo* and *nvm_err* inside the "use" command of nvm only in the scenario where silent mode is off (There were 4 scenarios where this was forgotten) * Edited the ```nvm deactivate``` command to include a silent mode * Changed the help page to include the --silent option for ```nvm deactivate``` * Added in aliases for the --silent flag in ```nvm deactivate``` and ```nvm use``` * Used silent mode inside the ```nvm use``` when running ```nvm deactivate``` inside it and silent mode is on A test was attached in the 'test/slow/nvm use' directory. It is named *Running "nvm use node --silent" doesn't print anything*. It runs ```nvm use node --silent and checks``` and succeeds if the OUTPUT matches the EXPECTED_OUTPUT which is *null* or *''*. When the test was run locally, it still ouputed results if someone deleted some contents of the *.nvm/* folder. This output was given from the ```nvm deactivate command```. This was the reason that the ```nvm deactivate``` was edited to include silent mode. --- nvm.sh | 49 ++++++++++++------- ...se node --silent\" doesn't print anything" | 13 +++++ 2 files changed, 43 insertions(+), 19 deletions(-) create mode 100755 "test/slow/nvm use/Running \"nvm use node --silent\" doesn't print anything" diff --git a/nvm.sh b/nvm.sh index 843cebf..2e6c852 100644 --- a/nvm.sh +++ b/nvm.sh @@ -341,15 +341,21 @@ nvm_rc_version() { local NVMRC_PATH NVMRC_PATH="$(nvm_find_nvmrc)" if [ ! -e "${NVMRC_PATH}" ]; then - nvm_err "No .nvmrc file found" + if [ "${NVM_SILENT:-0}" -ne 1 ]; then + nvm_err "No .nvmrc file found" + fi return 1 fi NVM_RC_VERSION="$(command head -n 1 "${NVMRC_PATH}" | command tr -d '\r')" || command printf '' if [ -z "${NVM_RC_VERSION}" ]; then - nvm_err "Warning: empty .nvmrc file found at \"${NVMRC_PATH}\"" + if [ "${NVM_SILENT:-0}" -ne 1 ]; then + nvm_err "Warning: empty .nvmrc file found at \"${NVMRC_PATH}\"" + fi return 2 fi - nvm_echo "Found '${NVMRC_PATH}' with version <${NVM_RC_VERSION}>" + if [ "${NVM_SILENT:-0}" -ne 1 ]; then + nvm_echo "Found '${NVMRC_PATH}' with version <${NVM_RC_VERSION}>" + fi } nvm_clang_version() { @@ -2995,15 +3001,18 @@ nvm() { ;; "use") local PROVIDED_VERSION - local NVM_USE_SILENT - NVM_USE_SILENT=0 + local NVM_SILENT + local NVM_SILENT_ARG local NVM_DELETE_PREFIX NVM_DELETE_PREFIX=0 local NVM_LTS while [ $# -ne 0 ]; do case "$1" in - --silent) NVM_USE_SILENT=1 ;; + --silent) + NVM_SILENT=1 + NVM_SILENT_ARG='--silent' + ;; --delete-prefix) NVM_DELETE_PREFIX=1 ;; --) ;; --lts) NVM_LTS='*' ;; @@ -3021,7 +3030,7 @@ nvm() { if [ -n "${NVM_LTS-}" ]; then VERSION="$(nvm_match_version "lts/${NVM_LTS:-*}")" elif [ -z "${PROVIDED_VERSION-}" ]; then - nvm_rc_version + NVM_SILENT="${NVM_SILENT:-0}" nvm_rc_version if [ -n "${NVM_RC_VERSION-}" ]; then PROVIDED_VERSION="${NVM_RC_VERSION}" VERSION="$(nvm_version "${PROVIDED_VERSION}")" @@ -3041,30 +3050,32 @@ nvm() { fi if [ "_${VERSION}" = '_system' ]; then - if nvm_has_system_node && nvm deactivate >/dev/null 2>&1; then - if [ $NVM_USE_SILENT -ne 1 ]; then + if nvm_has_system_node && nvm deactivate "${NVM_SILENT_ARG-}" >/dev/null 2>&1; then + if [ "${NVM_SILENT:-0}" -ne 1 ]; then nvm_echo "Now using system version of node: $(node -v 2>/dev/null)$(nvm_print_npm_version)" fi return - elif nvm_has_system_iojs && nvm deactivate >/dev/null 2>&1; then - if [ $NVM_USE_SILENT -ne 1 ]; then + elif nvm_has_system_iojs && nvm deactivate "${NVM_SILENT_ARG-}" >/dev/null 2>&1; then + if [ "${NVM_SILENT:-0}" -ne 1 ]; then nvm_echo "Now using system version of io.js: $(iojs --version 2>/dev/null)$(nvm_print_npm_version)" fi return - elif [ $NVM_USE_SILENT -ne 1 ]; then + elif [ "${NVM_SILENT:-0}" -ne 1 ]; then nvm_err 'System version of node not found.' fi return 127 elif [ "_${VERSION}" = "_∞" ]; then - if [ $NVM_USE_SILENT -ne 1 ]; then + if [ "${NVM_SILENT:-0}" -ne 1 ]; then nvm_err "The alias \"${PROVIDED_VERSION}\" leads to an infinite loop. Aborting." fi return 8 fi if [ "${VERSION}" = 'N/A' ]; then - nvm_err "N/A: version \"${PROVIDED_VERSION} -> ${VERSION}\" is not yet installed." - nvm_err "" - nvm_err "You need to run \"nvm install ${PROVIDED_VERSION}\" to install it before using it." + if [ "${NVM_SILENT:-0}" -ne 1 ]; then + nvm_err "N/A: version \"${PROVIDED_VERSION} -> ${VERSION}\" is not yet installed." + nvm_err "" + nvm_err "You need to run \"nvm install ${PROVIDED_VERSION}\" to install it before using it." + fi return 3 # This nvm_ensure_version_installed call can be a performance bottleneck # on shell startup. Perhaps we can optimize it away or make it faster. @@ -3095,7 +3106,7 @@ nvm() { fi local NVM_USE_OUTPUT NVM_USE_OUTPUT='' - if [ $NVM_USE_SILENT -ne 1 ]; then + if [ "${NVM_SILENT:-0}" -ne 1 ]; then if nvm_is_iojs_version "${VERSION}"; then NVM_USE_OUTPUT="Now using io.js $(nvm_strip_iojs_prefix "${VERSION}")$(nvm_print_npm_version)" else @@ -3108,14 +3119,14 @@ nvm() { if [ -n "${PROVIDED_VERSION}" ]; then NVM_USE_CMD="${NVM_USE_CMD} ${VERSION}" fi - if [ $NVM_USE_SILENT -eq 1 ]; then + if [ "${NVM_SILENT:-0}" -eq 1 ]; then NVM_USE_CMD="${NVM_USE_CMD} --silent" fi if ! nvm_die_on_prefix "${NVM_DELETE_PREFIX}" "${NVM_USE_CMD}"; then return 11 fi fi - if [ -n "${NVM_USE_OUTPUT-}" ]; then + if [ -n "${NVM_USE_OUTPUT-}" ] && [ "${NVM_SILENT:-0}" -ne 1 ]; then nvm_echo "${NVM_USE_OUTPUT}" fi ;; diff --git "a/test/slow/nvm use/Running \"nvm use node --silent\" doesn't print anything" "b/test/slow/nvm use/Running \"nvm use node --silent\" doesn't print anything" new file mode 100755 index 0000000..1da47e8 --- /dev/null +++ "b/test/slow/nvm use/Running \"nvm use node --silent\" doesn't print anything" @@ -0,0 +1,13 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +nvm deactivate 2>&1 >/dev/null || die 'deactivate failed' + +OUTPUT=$(nvm use node --silent || die 'nvm use node failed') +EXPECTED_OUTPUT="" + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ + || die "'nvm use node --silent' output was not silenced to '$EXPECTED_OUTPUT'; got '$OUTPUT'" From 1c00753fd9c3ae5e0bb3f4992c5e283ef5bf5085 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 13 Aug 2020 13:40:32 -0700 Subject: [PATCH 1281/1426] [New] `nvm deactivate`/`nvm which`: add `--silent` --- nvm.sh | 54 ++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 40 insertions(+), 14 deletions(-) diff --git a/nvm.sh b/nvm.sh index 2e6c852..3d39e60 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2406,7 +2406,7 @@ nvm() { nvm_echo ' nvm version-remote Resolve the given description to a single remote version' nvm_echo ' --lts When listing, only select from LTS (long-term support) versions' nvm_echo ' --lts= When listing, only select from versions for a specific LTS line' - nvm_echo ' nvm deactivate Undo effects of `nvm` on current shell' + nvm_echo ' nvm deactivate [--silent] Undo effects of `nvm` on current shell' nvm_echo ' nvm alias [] Show all aliases beginning with ' nvm_echo ' --no-colors Suppress colored output' nvm_echo ' nvm alias Set an alias named pointing to ' @@ -2414,7 +2414,7 @@ nvm() { nvm_echo ' nvm install-latest-npm Attempt to upgrade to the latest working `npm` on the current node version' nvm_echo ' nvm reinstall-packages Reinstall global `npm` packages contained in to current version' nvm_echo ' nvm unload Unload `nvm` from shell' - nvm_echo ' nvm which [current | ] Display path to installed node version. Uses .nvmrc if available' + nvm_echo ' nvm which [--silent] [current | ] Display path to installed node version. Uses .nvmrc if available' nvm_echo ' nvm cache dir Display path to the cache directory for nvm' nvm_echo ' nvm cache clear Empty cache directory for nvm' nvm_echo @@ -2969,23 +2969,39 @@ nvm() { done ;; "deactivate") + local NVM_SILENT + while [ $# -ne 0 ]; do + case "${1}" in + --silent) NVM_SILENT=1 ;; + --) ;; + esac + shift + done local NEWPATH NEWPATH="$(nvm_strip_path "${PATH}" "/bin")" if [ "_${PATH}" = "_${NEWPATH}" ]; then - nvm_err "Could not find ${NVM_DIR}/*/bin in \${PATH}" + if [ "${NVM_SILENT:-0}" -ne 1 ]; then + nvm_err "Could not find ${NVM_DIR}/*/bin in \${PATH}" + fi else export PATH="${NEWPATH}" hash -r - nvm_echo "${NVM_DIR}/*/bin removed from \${PATH}" + if [ "${NVM_SILENT:-0}" -ne 1 ]; then + nvm_echo "${NVM_DIR}/*/bin removed from \${PATH}" + fi fi if [ -n "${MANPATH-}" ]; then NEWPATH="$(nvm_strip_path "${MANPATH}" "/share/man")" if [ "_${MANPATH}" = "_${NEWPATH}" ]; then - nvm_err "Could not find ${NVM_DIR}/*/share/man in \${MANPATH}" + if [ "${NVM_SILENT:-0}" -ne 1 ]; then + nvm_err "Could not find ${NVM_DIR}/*/share/man in \${MANPATH}" + fi else export MANPATH="${NEWPATH}" - nvm_echo "${NVM_DIR}/*/share/man removed from \${MANPATH}" + if [ "${NVM_SILENT:-0}" -ne 1 ]; then + nvm_echo "${NVM_DIR}/*/share/man removed from \${MANPATH}" + fi fi fi @@ -2993,7 +3009,9 @@ nvm() { NEWPATH="$(nvm_strip_path "${NODE_PATH}" "/lib/node_modules")" if [ "_${NODE_PATH}" != "_${NEWPATH}" ]; then export NODE_PATH="${NEWPATH}" - nvm_echo "${NVM_DIR}/*/lib/node_modules removed from \${NODE_PATH}" + if [ "${NVM_SILENT:-0}" -ne 1 ]; then + nvm_echo "${NVM_DIR}/*/lib/node_modules removed from \${NODE_PATH}" + fi fi fi unset NVM_BIN @@ -3361,19 +3379,27 @@ nvm() { nvm_version current ;; "which") + local NVM_SILENT local provided_version - provided_version="${1-}" - if [ $# -eq 0 ]; then - nvm_rc_version + while [ $# -ne 0 ]; do + case "${1}" in + --silent) NVM_SILENT=1 ;; + --) ;; + *) provided_version="${1-}" ;; + esac + shift + done + if [ -z "${provided_version-}" ]; then + NVM_SILENT="${NVM_SILENT:-0}" nvm_rc_version if [ -n "${NVM_RC_VERSION}" ]; then provided_version="${NVM_RC_VERSION}" VERSION=$(nvm_version "${NVM_RC_VERSION}") ||: fi unset NVM_RC_VERSION - elif [ "_${1}" != '_system' ]; then + elif [ "${provided_version}" != 'system' ]; then VERSION="$(nvm_version "${provided_version}")" ||: else - VERSION="${1-}" + VERSION="${provided_version-}" fi if [ -z "${VERSION}" ]; then >&2 nvm --help @@ -3392,8 +3418,8 @@ nvm() { fi nvm_err 'System version of node not found.' return 127 - elif [ "_${VERSION}" = "_∞" ]; then - nvm_err "The alias \"$2\" leads to an infinite loop. Aborting." + elif [ "${VERSION}" = '∞' ]; then + nvm_err "The alias \"${2}\" leads to an infinite loop. Aborting." return 8 fi From 9dc6f3e4a548658218d5c93bb55d0913cc65f5bf Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 13 Aug 2020 14:37:41 -0700 Subject: [PATCH 1282/1426] [Refactor] `nvm run`/`nvm exec`: use `NVM_SILENT` consistently internally --- nvm.sh | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/nvm.sh b/nvm.sh index 3d39e60..11a24fa 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3155,10 +3155,15 @@ nvm() { # run given version of node local NVM_SILENT + local NVM_SILENT_ARG local NVM_LTS while [ $# -gt 0 ]; do case "$1" in - --silent) NVM_SILENT='--silent' ; shift ;; + --silent) + NVM_SILENT=1 + NVM_SILENT_ARG='--silent' + shift + ;; --lts) NVM_LTS='*' ; shift ;; --lts=*) NVM_LTS="${1##--lts=}" ; shift ;; *) @@ -3172,11 +3177,7 @@ nvm() { done if [ $# -lt 1 ] && [ -z "${NVM_LTS-}" ]; then - if [ -n "${NVM_SILENT-}" ]; then - nvm_rc_version >/dev/null 2>&1 && has_checked_nvmrc=1 - else - nvm_rc_version && has_checked_nvmrc=1 - fi + NVM_SILENT="${NVM_SILENT:-0}" nvm_rc_version && has_checked_nvmrc=1 if [ -n "${NVM_RC_VERSION-}" ]; then VERSION="$(nvm_version "${NVM_RC_VERSION-}")" ||: fi @@ -3194,11 +3195,7 @@ nvm() { if [ "_${VERSION:-N/A}" = '_N/A' ] && ! nvm_is_valid_version "${provided_version}"; then provided_version='' if [ $has_checked_nvmrc -ne 1 ]; then - if [ -n "${NVM_SILENT-}" ]; then - nvm_rc_version >/dev/null 2>&1 && has_checked_nvmrc=1 - else - nvm_rc_version && has_checked_nvmrc=1 - fi + NVM_SILENT="${NVM_SILENT:-0}" nvm_rc_version && has_checked_nvmrc=1 fi VERSION="$(nvm_version "${NVM_RC_VERSION}")" ||: unset NVM_RC_VERSION @@ -3224,9 +3221,9 @@ nvm() { if [ "_${VERSION}" = "_N/A" ]; then nvm_ensure_version_installed "${provided_version}" elif [ "${NVM_IOJS}" = true ]; then - nvm exec "${NVM_SILENT-}" "${LTS_ARG-}" "${VERSION}" iojs "$@" + nvm exec "${NVM_SILENT_ARG-}" "${LTS_ARG-}" "${VERSION}" iojs "$@" else - nvm exec "${NVM_SILENT-}" "${LTS_ARG-}" "${VERSION}" node "$@" + nvm exec "${NVM_SILENT_ARG-}" "${LTS_ARG-}" "${VERSION}" node "$@" fi EXIT_CODE="$?" return $EXIT_CODE @@ -3236,7 +3233,7 @@ nvm() { local NVM_LTS while [ $# -gt 0 ]; do case "$1" in - --silent) NVM_SILENT='--silent' ; shift ;; + --silent) NVM_SILENT=1 ; shift ;; --lts) NVM_LTS='*' ; shift ;; --lts=*) NVM_LTS="${1##--lts=}" ; shift ;; --) break ;; @@ -3262,11 +3259,7 @@ nvm() { elif [ -n "${provided_version}" ]; then VERSION="$(nvm_version "${provided_version}")" ||: if [ "_${VERSION}" = '_N/A' ] && ! nvm_is_valid_version "${provided_version}"; then - if [ -n "${NVM_SILENT-}" ]; then - nvm_rc_version >/dev/null 2>&1 - else - nvm_rc_version - fi + NVM_SILENT="${NVM_SILENT:-0}" nvm_rc_version && has_checked_nvmrc=1 provided_version="${NVM_RC_VERSION}" unset NVM_RC_VERSION VERSION="$(nvm_version "${provided_version}")" ||: @@ -3281,7 +3274,7 @@ nvm() { return $EXIT_CODE fi - if [ -z "${NVM_SILENT-}" ]; then + if [ "${NVM_SILENT:-0}" -ne 1 ]; then if [ "${NVM_LTS-}" = '*' ]; then nvm_echo "Running node latest LTS -> $(nvm_version "${VERSION}")$(nvm use --silent "${VERSION}" && nvm_print_npm_version)" elif [ -n "${NVM_LTS-}" ]; then From 19c55b9936106d246b37184f301fe23ea07f757b Mon Sep 17 00:00:00 2001 From: Steve Lee Date: Tue, 11 Aug 2020 18:39:32 +0100 Subject: [PATCH 1283/1426] [readme] Mention problem with windows cmd echo --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index a264f01..489da4a 100644 --- a/README.md +++ b/README.md @@ -436,6 +436,8 @@ $ echo "lts/*" > .nvmrc # to default to the latest LTS version $ echo "node" > .nvmrc # to default to the latest version ``` +[NB these examples assume a POSIX-compliant shell version of `echo`. If you use a Windows `cmd` development environment, eg the `.nvmrc` file is used to configure a remote Linux deployment, then keep in mind the `"`s will be copied leading to an invalid file. Remove them.] + Then when you run nvm: ```sh From f7fbad2bd6d2d117f265c2329abd6b4129dc606d Mon Sep 17 00:00:00 2001 From: Michael Potter Date: Wed, 19 Aug 2020 11:40:45 -0700 Subject: [PATCH 1284/1426] [performance] `nvm_auto`: only call `nvm_ls_current` in `use` mode --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 11a24fa..4a95dc5 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3788,11 +3788,10 @@ nvm_supports_xz() { } nvm_auto() { - local NVM_CURRENT - NVM_CURRENT="$(nvm_ls_current)" local NVM_MODE NVM_MODE="${1-}" local VERSION + local NVM_CURRENT if [ "_${NVM_MODE}" = '_install' ]; then VERSION="$(nvm_alias default 2>/dev/null || nvm_echo)" if [ -n "${VERSION}" ]; then @@ -3801,6 +3800,7 @@ nvm_auto() { nvm install >/dev/null fi elif [ "_$NVM_MODE" = '_use' ]; then + NVM_CURRENT="$(nvm_ls_current)" if [ "_${NVM_CURRENT}" = '_none' ] || [ "_${NVM_CURRENT}" = '_system' ]; then VERSION="$(nvm_resolve_local_alias default 2>/dev/null || nvm_echo)" if [ -n "${VERSION}" ]; then From 035bf9e28e66715b2aaeadf954f257b50fd71eff Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 23 Aug 2020 23:29:48 -0700 Subject: [PATCH 1285/1426] [readme] update autocompletion output examples --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 489da4a..688b30b 100644 --- a/README.md +++ b/README.md @@ -653,36 +653,36 @@ nvm: > $ nvm Tab ``` -alias deactivate install ls run unload -clear-cache exec list ls-remote unalias use -current help list-remote reinstall-packages uninstall version +alias deactivate install list-remote reinstall-packages uninstall version +cache exec install-latest-npm ls run unload version-remote +current help list ls-remote unalias use which ``` nvm alias: > $ nvm alias Tab ``` -default +default iojs lts/* lts/argon lts/boron lts/carbon lts/dubnium lts/erbium node stable unstable ``` > $ nvm alias my_alias Tab ``` -v0.6.21 v0.8.26 v0.10.28 +v10.22.0 v12.18.3 v14.8.0 ``` nvm use: > $ nvm use Tab ``` -my_alias default v0.6.21 v0.8.26 v0.10.28 +my_alias default v10.22.0 v12.18.3 v14.8.0 ``` nvm uninstall: > $ nvm uninstall Tab ``` -my_alias default v0.6.21 v0.8.26 v0.10.28 +my_alias default v10.22.0 v12.18.3 v14.8.0 ``` ## Compatibility Issues From 1d88ecfce5e729846fb15f9c1bc0c3526c9643f9 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 23 Aug 2020 22:50:41 -0700 Subject: [PATCH 1286/1426] [Fix] `nvm_die_on_prefix`: check that the prefix is inside the version dir, not just the nvm dir - also pass the version dir as the third argument --- nvm.sh | 14 ++++++++------ test/fast/Unit tests/nvm_die_on_prefix | 22 +++++++++++----------- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/nvm.sh b/nvm.sh index 4a95dc5..8683949 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2159,7 +2159,7 @@ nvm_npm_global_modules() { nvm_die_on_prefix() { local NVM_DELETE_PREFIX - NVM_DELETE_PREFIX="$1" + NVM_DELETE_PREFIX="${1-}" case "${NVM_DELETE_PREFIX}" in 0 | 1) ;; *) @@ -2168,9 +2168,11 @@ nvm_die_on_prefix() { ;; esac local NVM_COMMAND - NVM_COMMAND="$2" - if [ -z "${NVM_COMMAND}" ]; then - nvm_err 'Second argument "nvm command" must be nonempty' + NVM_COMMAND="${2-}" + local NVM_VERSION_DIR + NVM_VERSION_DIR="${3-}" + if [ -z "${NVM_COMMAND}" ] || [ -z "${NVM_VERSION_DIR}" ]; then + nvm_err 'Second argument "nvm command", and third argument "nvm version dir", must both be nonempty' return 2 fi @@ -2210,7 +2212,7 @@ nvm_die_on_prefix() { local NVM_OS NVM_OS="$(nvm_get_os)" NVM_NPM_PREFIX="$(npm config --loglevel=warn get prefix)" - if ! (nvm_tree_contains_path "${NVM_DIR}" "${NVM_NPM_PREFIX}" >/dev/null 2>&1); then + if [ "${NVM_VERSION_DIR}" != "${NVM_NPM_PREFIX}" ] && ! (nvm_tree_contains_path "${NVM_VERSION_DIR}" "${NVM_NPM_PREFIX}" >/dev/null 2>&1); then if [ "_${NVM_DELETE_PREFIX}" = "_1" ]; then npm config --loglevel=warn delete prefix else @@ -3140,7 +3142,7 @@ nvm() { if [ "${NVM_SILENT:-0}" -eq 1 ]; then NVM_USE_CMD="${NVM_USE_CMD} --silent" fi - if ! nvm_die_on_prefix "${NVM_DELETE_PREFIX}" "${NVM_USE_CMD}"; then + if ! nvm_die_on_prefix "${NVM_DELETE_PREFIX}" "${NVM_USE_CMD}" "${NVM_VERSION_DIR}"; then return 11 fi fi diff --git a/test/fast/Unit tests/nvm_die_on_prefix b/test/fast/Unit tests/nvm_die_on_prefix index 7429cb8..c9b99e1 100755 --- a/test/fast/Unit tests/nvm_die_on_prefix +++ b/test/fast/Unit tests/nvm_die_on_prefix @@ -22,13 +22,13 @@ EXIT_CODE="$(nvm_die_on_prefix 2 >/dev/null 2>&1; echo $?)" [ "_$EXIT_CODE" = "_1" ] || die "'nvm_die_on_prefix' did not exit with 1; got "$EXIT_CODE"" OUTPUT="$(nvm_die_on_prefix 0 2>&1)" -EXPECTED_OUTPUT="Second argument \"nvm command\" must be nonempty" +EXPECTED_OUTPUT='Second argument "nvm command", and third argument "nvm version dir", must both be nonempty' EXIT_CODE="$(nvm_die_on_prefix 0 >/dev/null 2>&1; echo $?)" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_die_on_prefix 0' did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" [ "_$EXIT_CODE" = "_2" ] || die "'nvm_die_on_prefix 0' did not exit with 2; got '$EXIT_CODE'" nvm_has() { return 1; } # ie, npm is not installed -OUTPUT="$(nvm_die_on_prefix 0 foo 2>&1)" +OUTPUT="$(nvm_die_on_prefix 0 version_dir foo 2>&1)" [ -z "$OUTPUT" ] || die "nvm_die_on_prefix was not a noop when nvm_has returns 1, got '$OUTPUT'" nvm_has() { return 0; } @@ -40,27 +40,27 @@ npm() { echo "$(nvm_version_dir new)/good prefix" fi } -OUTPUT="$(nvm_die_on_prefix 0 foo 2>&1)" +OUTPUT="$(nvm_die_on_prefix 0 foo "$(nvm_version_dir new)" 2>&1)" [ -z "$OUTPUT" ] || die "'nvm_die_on_prefix' was not a noop when prefix is good; got '$OUTPUT'" -OUTPUT="$(PREFIX=bar nvm_die_on_prefix 0 foo 2>&1)" +OUTPUT="$(PREFIX=bar nvm_die_on_prefix 0 foo "$(nvm_version_dir new)" 2>&1)" EXPECTED_OUTPUT='nvm is not compatible with the "PREFIX" environment variable: currently set to "bar" Run `unset PREFIX` to unset it.' -EXIT_CODE="$(export PREFIX=bar ; nvm_die_on_prefix 0 foo >/dev/null 2>&1; echo $?)" +EXIT_CODE="$(export PREFIX=bar ; nvm_die_on_prefix 0 foo "$(nvm_version_dir new)" >/dev/null 2>&1; echo $?)" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'PREFIX=bar nvm_die_on_prefix 0 foo' did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" [ "_$EXIT_CODE" = "_3" ] || die "'PREFIX=bar nvm_die_on_prefix 0 foo' did not exit with 3; got '$EXIT_CODE'" -OUTPUT="$(export NPM_CONFIG_PREFIX=bar ; nvm_die_on_prefix 0 foo 2>&1)" +OUTPUT="$(export NPM_CONFIG_PREFIX=bar ; nvm_die_on_prefix 0 foo "$(nvm_version_dir new)" 2>&1)" EXPECTED_OUTPUT='nvm is not compatible with the "NPM_CONFIG_PREFIX" environment variable: currently set to "bar" Run `unset NPM_CONFIG_PREFIX` to unset it.' -EXIT_CODE="$(export NPM_CONFIG_PREFIX=bar ; nvm_die_on_prefix 0 foo >/dev/null 2>&1; echo $?)" +EXIT_CODE="$(export NPM_CONFIG_PREFIX=bar ; nvm_die_on_prefix 0 foo "$(nvm_version_dir new)" >/dev/null 2>&1; echo $?)" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'NPM_CONFIG_PREFIX=bar nvm_die_on_prefix 0 foo' did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" [ "_$EXIT_CODE" = "_4" ] || die "'NPM_CONFIG_PREFIX=bar nvm_die_on_prefix 0 foo' did not exit with 4; got '$EXIT_CODE'" -OUTPUT="$(export npm_CONFIG_PREFIX=bar ; nvm_die_on_prefix 0 foo 2>&1)" +OUTPUT="$(export npm_CONFIG_PREFIX=bar ; nvm_die_on_prefix 0 foo "$(nvm_version_dir new)" 2>&1)" EXPECTED_OUTPUT='nvm is not compatible with the "npm_CONFIG_PREFIX" environment variable: currently set to "bar" Run `unset npm_CONFIG_PREFIX` to unset it.' -EXIT_CODE="$(export npm_CONFIG_PREFIX=bar ; nvm_die_on_prefix 0 foo >/dev/null 2>&1; echo $?)" +EXIT_CODE="$(export npm_CONFIG_PREFIX=bar ; nvm_die_on_prefix 0 foo "$(nvm_version_dir new)" >/dev/null 2>&1; echo $?)" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'npm_CONFIG_PREFIX=bar nvm_die_on_prefix 0 foo' did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" [ "_$EXIT_CODE" = "_4" ] || die "'npm_CONFIG_PREFIX=bar nvm_die_on_prefix 0 foo' did not exit with 4; got '$EXIT_CODE'" @@ -71,10 +71,10 @@ npm() { echo "./bad prefix" fi } -OUTPUT="$(nvm_die_on_prefix 0 foo 2>&1)" +OUTPUT="$(nvm_die_on_prefix 0 foo "$(nvm_version_dir new)" 2>&1)" EXPECTED_OUTPUT="nvm is not compatible with the npm config \"prefix\" option: currently set to \"./bad prefix\" Run \`npm config delete prefix\` or \`foo\` to unset it." -EXIT_CODE="$(nvm_die_on_prefix 0 foo >/dev/null 2>&1; echo $?)" +EXIT_CODE="$(nvm_die_on_prefix 0 foo "$(nvm_version_dir new)" >/dev/null 2>&1; echo $?)" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_die_on_prefix 0 foo' did not error with '$EXPECTED_OUTPUT' with bad prefix set; got '$OUTPUT'" [ "_$EXIT_CODE" = "_10" ] || die "'nvm_die_on_prefix 0 foo' did not exit with 10 with bad prefix set; got '$EXIT_CODE'" From cf92956e5d0bbd718b044fda1af6fa607ea4697b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sun, 23 Aug 2020 14:40:42 -0700 Subject: [PATCH 1287/1426] [New] add `nvm_find_project_dir` helper --- .editorconfig | 6 ++++ nvm.sh | 11 ++++++- .../node_modules/foo/bar/.gitkeep | 0 .../node_modules/foo/package.json | 0 .../node_modules/foo/bar/.gitkeep | 0 .../project_dirs/nested-both/a/b/c/d/.gitkeep | 0 .../nested-both/node_modules/.gitkeep | 0 .../project_dirs/nested-both/package.json | 0 .../project_dirs/nested-n_m/a/b/c/d/.gitkeep | 0 .../nested-n_m/node_modules/.gitkeep | 0 .../project_dirs/nested-pkg/a/b/c/d/.gitkeep | 0 .../project_dirs/nested-pkg/package.json | 0 .../no-nesting-both/node_modules/.gitkeep | 0 .../project_dirs/no-nesting-both/package.json | 0 .../no-nesting-n_m/node_modules/.gitkeep | 0 .../project_dirs/no-nesting-pkg/package.json | 0 test/fast/Unit tests/nvm_find_project_dir | 33 +++++++++++++++++++ 17 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 test/fast/Unit tests/mocks/project_dirs/inside-n_m-nested-pkg/node_modules/foo/bar/.gitkeep create mode 100644 test/fast/Unit tests/mocks/project_dirs/inside-n_m-nested-pkg/node_modules/foo/package.json create mode 100644 test/fast/Unit tests/mocks/project_dirs/inside-n_m-nested/node_modules/foo/bar/.gitkeep create mode 100644 test/fast/Unit tests/mocks/project_dirs/nested-both/a/b/c/d/.gitkeep create mode 100644 test/fast/Unit tests/mocks/project_dirs/nested-both/node_modules/.gitkeep create mode 100644 test/fast/Unit tests/mocks/project_dirs/nested-both/package.json create mode 100644 test/fast/Unit tests/mocks/project_dirs/nested-n_m/a/b/c/d/.gitkeep create mode 100644 test/fast/Unit tests/mocks/project_dirs/nested-n_m/node_modules/.gitkeep create mode 100644 test/fast/Unit tests/mocks/project_dirs/nested-pkg/a/b/c/d/.gitkeep create mode 100644 test/fast/Unit tests/mocks/project_dirs/nested-pkg/package.json create mode 100644 test/fast/Unit tests/mocks/project_dirs/no-nesting-both/node_modules/.gitkeep create mode 100644 test/fast/Unit tests/mocks/project_dirs/no-nesting-both/package.json create mode 100644 test/fast/Unit tests/mocks/project_dirs/no-nesting-n_m/node_modules/.gitkeep create mode 100644 test/fast/Unit tests/mocks/project_dirs/no-nesting-pkg/package.json create mode 100755 test/fast/Unit tests/nvm_find_project_dir diff --git a/.editorconfig b/.editorconfig index c1b7c13..0176d42 100644 --- a/.editorconfig +++ b/.editorconfig @@ -18,5 +18,11 @@ indent_size = false [test/fast/Listing versions/Running "nvm ls --no-alias" does not call into nvm_alias] indent_size = false +[test/fast/Unit tests/mocks/**] +insert_final_newline = off + +[test/**/.urchin*] +insert_final_newline = off + [Makefile] indent_style = tab diff --git a/nvm.sh b/nvm.sh index 8683949..0e0dbdc 100644 --- a/nvm.sh +++ b/nvm.sh @@ -317,6 +317,15 @@ nvm_tree_contains_path() { [ "${pathdir}" = "${tree}" ] } +nvm_find_project_dir() { + local path_ + path_="${PWD}" + while [ "${path_}" != "" ] && [ ! -f "${path_}/package.json" ] && [ ! -d "${path_}/node_modules" ]; do + path_=${path_%/*} + done + nvm_echo "${path_}" +} + # Traverse up in directory tree to find containing folder nvm_find_up() { local path_ @@ -3654,7 +3663,7 @@ nvm() { nvm_normalize_version nvm_is_valid_version \ nvm_ensure_version_installed nvm_cache_dir \ nvm_version_path nvm_alias_path nvm_version_dir \ - nvm_find_nvmrc nvm_find_up nvm_tree_contains_path \ + nvm_find_nvmrc nvm_find_up nvm_find_project_dir nvm_tree_contains_path \ nvm_version_greater nvm_version_greater_than_or_equal_to \ nvm_print_npm_version nvm_install_latest_npm nvm_npm_global_modules \ nvm_has_system_node nvm_has_system_iojs \ diff --git a/test/fast/Unit tests/mocks/project_dirs/inside-n_m-nested-pkg/node_modules/foo/bar/.gitkeep b/test/fast/Unit tests/mocks/project_dirs/inside-n_m-nested-pkg/node_modules/foo/bar/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/test/fast/Unit tests/mocks/project_dirs/inside-n_m-nested-pkg/node_modules/foo/package.json b/test/fast/Unit tests/mocks/project_dirs/inside-n_m-nested-pkg/node_modules/foo/package.json new file mode 100644 index 0000000..e69de29 diff --git a/test/fast/Unit tests/mocks/project_dirs/inside-n_m-nested/node_modules/foo/bar/.gitkeep b/test/fast/Unit tests/mocks/project_dirs/inside-n_m-nested/node_modules/foo/bar/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/test/fast/Unit tests/mocks/project_dirs/nested-both/a/b/c/d/.gitkeep b/test/fast/Unit tests/mocks/project_dirs/nested-both/a/b/c/d/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/test/fast/Unit tests/mocks/project_dirs/nested-both/node_modules/.gitkeep b/test/fast/Unit tests/mocks/project_dirs/nested-both/node_modules/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/test/fast/Unit tests/mocks/project_dirs/nested-both/package.json b/test/fast/Unit tests/mocks/project_dirs/nested-both/package.json new file mode 100644 index 0000000..e69de29 diff --git a/test/fast/Unit tests/mocks/project_dirs/nested-n_m/a/b/c/d/.gitkeep b/test/fast/Unit tests/mocks/project_dirs/nested-n_m/a/b/c/d/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/test/fast/Unit tests/mocks/project_dirs/nested-n_m/node_modules/.gitkeep b/test/fast/Unit tests/mocks/project_dirs/nested-n_m/node_modules/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/test/fast/Unit tests/mocks/project_dirs/nested-pkg/a/b/c/d/.gitkeep b/test/fast/Unit tests/mocks/project_dirs/nested-pkg/a/b/c/d/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/test/fast/Unit tests/mocks/project_dirs/nested-pkg/package.json b/test/fast/Unit tests/mocks/project_dirs/nested-pkg/package.json new file mode 100644 index 0000000..e69de29 diff --git a/test/fast/Unit tests/mocks/project_dirs/no-nesting-both/node_modules/.gitkeep b/test/fast/Unit tests/mocks/project_dirs/no-nesting-both/node_modules/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/test/fast/Unit tests/mocks/project_dirs/no-nesting-both/package.json b/test/fast/Unit tests/mocks/project_dirs/no-nesting-both/package.json new file mode 100644 index 0000000..e69de29 diff --git a/test/fast/Unit tests/mocks/project_dirs/no-nesting-n_m/node_modules/.gitkeep b/test/fast/Unit tests/mocks/project_dirs/no-nesting-n_m/node_modules/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/test/fast/Unit tests/mocks/project_dirs/no-nesting-pkg/package.json b/test/fast/Unit tests/mocks/project_dirs/no-nesting-pkg/package.json new file mode 100644 index 0000000..e69de29 diff --git a/test/fast/Unit tests/nvm_find_project_dir b/test/fast/Unit tests/nvm_find_project_dir new file mode 100755 index 0000000..7dc46df --- /dev/null +++ b/test/fast/Unit tests/nvm_find_project_dir @@ -0,0 +1,33 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +set -ex + +TEST_DIR="$PWD/mocks/project_dirs" + +ACTUAL="$(PWD=$TEST_DIR/inside-n_m-nested/node_modules/foo/bar nvm_find_project_dir)" +[ "${ACTUAL}" = "$TEST_DIR/inside-n_m-nested" ] || die "inside-n_m-nested: got ${ACTUAL}" + +ACTUAL="$(PWD=$TEST_DIR/inside-n_m-nested-pkg/node_modules/foo/bar nvm_find_project_dir)" +[ "${ACTUAL}" = "$TEST_DIR/inside-n_m-nested-pkg/node_modules/foo" ] || die "inside-n_m-nested-pkg: got ${ACTUAL}" + +ACTUAL="$(PWD=$TEST_DIR/nested-both/a/b/c/d nvm_find_project_dir)" +[ "${ACTUAL}" = "$TEST_DIR/nested-both" ] || die "nested-both: got ${ACTUAL}" + +ACTUAL="$(PWD=$TEST_DIR/nested-pkg/a/b/c/d nvm_find_project_dir)" +[ "${ACTUAL}" = "$TEST_DIR/nested-pkg" ] || die "nested-pkg: got ${ACTUAL}" + +ACTUAL="$(PWD=$TEST_DIR/nested-n_m/a/b/c/d nvm_find_project_dir)" +[ "${ACTUAL}" = "$TEST_DIR/nested-n_m" ] || die "nested-n_m: got ${ACTUAL}" + +ACTUAL="$(PWD=$TEST_DIR/no-nesting-both nvm_find_project_dir)" +[ "${ACTUAL}" = "$TEST_DIR/no-nesting-both" ] || die "no-nesting-both: got ${ACTUAL}" + +ACTUAL="$(PWD=$TEST_DIR/no-nesting-n_m nvm_find_project_dir)" +[ "${ACTUAL}" = "$TEST_DIR/no-nesting-n_m" ] || die "no-nesting-n_m: got ${ACTUAL}" + +ACTUAL="$(PWD=$TEST_DIR/no-nesting-pkg nvm_find_project_dir)" +[ "${ACTUAL}" = "$TEST_DIR/no-nesting-pkg" ] || die "no-nesting-pkg: got ${ACTUAL}" From 22e07cc0c12d331a0fc609a40dbb373ecab72319 Mon Sep 17 00:00:00 2001 From: Saikat Das Date: Thu, 27 Aug 2020 19:27:29 +0530 Subject: [PATCH 1288/1426] [readme] fix LTS upgrade command Edited the LTS upgrade scenario command to fix the issue discussed in #2271 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 688b30b..57029ab 100644 --- a/README.md +++ b/README.md @@ -293,7 +293,7 @@ Any time your local copy of `nvm` connects to https://nodejs.org, it will re-cre To get the latest LTS version of node and migrate your existing installed packages, use ```sh -nvm install --lts --reinstall-packages-from=current +nvm install 'lts/*' --reinstall-packages-from=current ``` ### Migrating Global Packages While Installing From 68d331a8168d9c093a3cd217e17d0508a498e626 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 21 Sep 2020 02:47:57 +0800 Subject: [PATCH 1289/1426] [dockerfile] Remove ShellCheck Segmentation fault workaround The workaround came from this GitHub issue comment: https://github.com/koalaman/shellcheck/issues/1053#issuecomment-357816927 Looks like the problem doesn't exist any more: ``` . . . Step 14/33 : RUN shellcheck -V ---> Running in 4b7a718c1cbf ShellCheck - shell script analysis tool version: 0.7.0 license: GNU General Public License, version 3 website: https://www.shellcheck.net . . . ``` The workaround should be removed so that the Dockerfile will be easier to be understand and read. --- Dockerfile | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 07d3514..fd16c46 100644 --- a/Dockerfile +++ b/Dockerfile @@ -69,10 +69,8 @@ RUN apt update && \ RUN wget https://storage.googleapis.com/shellcheck/shellcheck-v$SHELLCHECK_VERSION.linux.x86_64.tar.xz -O- | \ tar xJvf - shellcheck-v$SHELLCHECK_VERSION/shellcheck && \ mv shellcheck-v$SHELLCHECK_VERSION/shellcheck /bin && \ - rmdir shellcheck-v$SHELLCHECK_VERSION && \ - touch /tmp/libc.so.6 && \ - echo "alias shellcheck='LD_LIBRARY_PATH=/tmp /bin/shellcheck'" >> /etc/bash.bashrc -RUN LD_LIBRARY_PATH=/tmp shellcheck -V + rmdir shellcheck-v$SHELLCHECK_VERSION +RUN shellcheck -V # Set locale RUN locale-gen en_US.UTF-8 From 6e0562ac6da71f48fecd218705745f854fde0c77 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 21 Sep 2020 15:40:41 -0700 Subject: [PATCH 1290/1426] [Tests] pin postcss to v7 --- test/slow/nvm reinstall-packages/should work as expected | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/slow/nvm reinstall-packages/should work as expected b/test/slow/nvm reinstall-packages/should work as expected index fdc3800..d6aa9f1 100755 --- a/test/slow/nvm reinstall-packages/should work as expected +++ b/test/slow/nvm reinstall-packages/should work as expected @@ -10,8 +10,8 @@ nvm exec 0.10.29 npm install -g npm@~1.4.11 && nvm install-latest-npm # this is nvm use 0.10.28 (cd test-npmlink && npm link) -EXPECTED_PACKAGES="autoprefixer bower david grunt-cli grunth-cli http-server jshint marked node-gyp npmlist recursive-blame spawn-sync test-npmlink uglify-js yo" -EXPECTED_PACKAGES_INSTALL="autoprefixer bower david@11 grunt-cli grunth-cli http-server jshint marked node-gyp npmlist recursive-blame spawn-sync test-npmlink uglify-js yo@1" +EXPECTED_PACKAGES="autoprefixer bower david grunt-cli grunth-cli http-server jshint marked node-gyp npmlist postcss recursive-blame spawn-sync test-npmlink uglify-js yo" +EXPECTED_PACKAGES_INSTALL="autoprefixer bower david@11 grunt-cli grunth-cli http-server jshint marked node-gyp npmlist postcss@7 recursive-blame spawn-sync test-npmlink uglify-js yo@1" echo "$EXPECTED_PACKAGES_INSTALL" | sed -e 's/test-npmlink //' | xargs npm install -g --quiet From 68d2f47c0ab6573026296cfd74db9a2c464e2852 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 21 Sep 2020 09:36:30 +0800 Subject: [PATCH 1291/1426] [dockerfile] Update ShellCheck download URL in Dockerfile see koalaman/shellcheck#1871 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index fd16c46..8d613fd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -66,7 +66,7 @@ RUN apt update && \ apt-get clean # ShellCheck with Ubuntu 14.04 container workaround -RUN wget https://storage.googleapis.com/shellcheck/shellcheck-v$SHELLCHECK_VERSION.linux.x86_64.tar.xz -O- | \ +RUN wget https://github.com/koalaman/shellcheck/releases/download/v$SHELLCHECK_VERSION/shellcheck-v$SHELLCHECK_VERSION.linux.x86_64.tar.xz -O- | \ tar xJvf - shellcheck-v$SHELLCHECK_VERSION/shellcheck && \ mv shellcheck-v$SHELLCHECK_VERSION/shellcheck /bin && \ rmdir shellcheck-v$SHELLCHECK_VERSION From 6110d31969cb8b400635aa1a08c3678ba3b6690f Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 21 Sep 2020 18:20:50 +0800 Subject: [PATCH 1292/1426] [dockerfile] Add missing apt pacakge `locales` locale-gen command seems missing since uncertain point for a while: ``` Step 15/33 : RUN locale-gen en_US.UTF-8 ---> Running in fae073c89c01 /bin/bash: locale-gen: command not found The command '/bin/bash -o pipefail -c locale-gen en_US.UTF-8' returned a non-zero code: 127 ``` This patch should fix the Docker image build --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 8d613fd..533b395 100644 --- a/Dockerfile +++ b/Dockerfile @@ -43,6 +43,7 @@ RUN apt update && \ file \ openssl \ libssl-dev \ + locales \ ca-certificates \ ssh \ wget \ From c7ca08d5750d7de73edc016562eac262f1b6b8e5 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 23 Sep 2020 14:50:33 -0700 Subject: [PATCH 1293/1426] [Fix] `latest-npm`: ensure npm 7 is not installed on node < 10 --- nvm.sh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/nvm.sh b/nvm.sh index 0e0dbdc..cdc572b 100644 --- a/nvm.sh +++ b/nvm.sh @@ -243,6 +243,12 @@ nvm_install_latest_npm() { fi fi + local NVM_IS_10_OR_ABOVE + NVM_IS_10_OR_ABOVE=0 + if [ $NVM_IS_9_3_OR_ABOVE -eq 1 ] && nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 10.0.0; then + NVM_IS_10_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}"; \ }; then @@ -260,6 +266,9 @@ nvm_install_latest_npm() { ; then nvm_echo '* `npm` `v6.9` is the last version that works on `node` `v6.0.x`, `v6.1.x`, `v9.0.x`, `v9.1.x`, or `v9.2.x`' $NVM_NPM_CMD install -g npm@6.9 + elif [ $NVM_IS_10_OR_ABOVE -eq 0 ]; then + nvm_echo '* `npm` `v6.x` is the last version that works on `node` below `v10.0.0`' + $NVM_NPM_CMD install -g npm@6 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 From 8debf39f24954d1006df6bac2dbef09d1ea68bc5 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 23 Sep 2020 16:18:37 -0700 Subject: [PATCH 1294/1426] v0.36.0 --- README.md | 16 ++++++++-------- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 57029ab..6780b4c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Node Version Manager [![Build Status](https://travis-ci.org/nvm-sh/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.35.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://travis-ci.org/nvm-sh/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.36.0-yellow.svg)][4] [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/684/badge)](https://bestpractices.coreinfrastructure.org/projects/684) @@ -59,10 +59,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.35.3/install.sh | bash +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.36.0/install.sh | bash ``` ```sh -wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash +wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.36.0/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`). @@ -115,7 +115,7 @@ You can use a task: ```yaml - name: nvm shell: > - curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash + curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.36.0/install.sh | bash args: creates: "{{ ansible_env.HOME }}/.nvm/nvm.sh" ``` @@ -174,7 +174,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.35.3` +1. `cd ~/.nvm` and check out the latest version with `git checkout v0.36.0` 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: @@ -721,7 +721,7 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh ```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.35.3/install.sh | bash +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.36.0/install.sh | bash ``` The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. @@ -818,8 +818,8 @@ 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.35.3/install.sh +[2]: https://github.com/nvm-sh/nvm/blob/v0.36.0/install.sh [3]: https://travis-ci.org/nvm-sh/nvm -[4]: https://github.com/nvm-sh/nvm/releases/tag/v0.35.3 +[4]: https://github.com/nvm-sh/nvm/releases/tag/v0.36.0 [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index 0ea9a0a..32ce0c0 100755 --- a/install.sh +++ b/install.sh @@ -19,7 +19,7 @@ nvm_install_dir() { } nvm_latest_version() { - echo "v0.35.3" + echo "v0.36.0" } nvm_profile_is_bash_or_zsh() { diff --git a/nvm.sh b/nvm.sh index cdc572b..f6922d1 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3647,7 +3647,7 @@ nvm() { NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; "--version" | "-v") - nvm_echo '0.35.3' + nvm_echo '0.36.0' ;; "unload") nvm deactivate >/dev/null 2>&1 diff --git a/package.json b/package.json index 1d8cf5f..5be2fc1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.35.3", + "version": "0.36.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 7929190e6e9bd879cddb0af7fe1588dab5a70152 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 2 Oct 2020 22:22:12 -0700 Subject: [PATCH 1295/1426] [Docs] improve `nvm --help` output Fixes #2301 --- nvm.sh | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/nvm.sh b/nvm.sh index f6922d1..995cb74 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2393,7 +2393,9 @@ nvm() { nvm_echo 'Usage:' nvm_echo ' nvm --help Show this message' nvm_echo ' nvm --version Print out the installed version of nvm' - nvm_echo ' nvm install [-s] [] Download and install a , [-s] from source. Uses .nvmrc if available' + nvm_echo ' nvm install [] Download and install a . Uses .nvmrc if available and version is omitted.' + nvm_echo ' The following optional arguments, if provided, must appear directly after `nvm install`:' + nvm_echo ' -s Skip binary download, install from source only.' nvm_echo ' --reinstall-packages-from= When installing, reinstall packages installed in ' nvm_echo ' --lts When installing, only select from LTS (long-term support) versions' nvm_echo ' --lts= When installing, only select from versions for a specific LTS line' @@ -2405,13 +2407,19 @@ nvm() { nvm_echo ' nvm uninstall Uninstall a version' nvm_echo ' nvm uninstall --lts Uninstall using automatic LTS (long-term support) alias `lts/*`, if available.' nvm_echo ' nvm uninstall --lts= Uninstall using automatic alias for provided LTS line, if available.' - nvm_echo ' nvm use [--silent] [] Modify PATH to use . Uses .nvmrc if available' + nvm_echo ' nvm use [] Modify PATH to use . Uses .nvmrc if available and version is omitted.' + nvm_echo ' The following optional arguments, if provided, must appear directly after `nvm use`:' + nvm_echo ' --silent Silences stdout/stderr output' nvm_echo ' --lts Uses automatic LTS (long-term support) alias `lts/*`, if available.' nvm_echo ' --lts= Uses automatic alias for provided LTS line, if available.' - nvm_echo ' nvm exec [--silent] [] [] Run on . Uses .nvmrc if available' + nvm_echo ' nvm exec [] [] Run on . Uses .nvmrc if available and version is omitted.' + nvm_echo ' The following optional arguments, if provided, must appear directly after `nvm exec`:' + nvm_echo ' --silent Silences stdout/stderr output' nvm_echo ' --lts Uses automatic LTS (long-term support) alias `lts/*`, if available.' nvm_echo ' --lts= Uses automatic alias for provided LTS line, if available.' - nvm_echo ' nvm run [--silent] [] [] Run `node` on with as arguments. Uses .nvmrc if available' + nvm_echo ' nvm run [] [] Run `node` on with as arguments. Uses .nvmrc if available and version is omitted.' + nvm_echo ' The following optional arguments, if provided, must appear directly after `nvm run`:' + nvm_echo ' --silent Silences stdout/stderr output' nvm_echo ' --lts Uses automatic LTS (long-term support) alias `lts/*`, if available.' nvm_echo ' --lts= Uses automatic alias for provided LTS line, if available.' nvm_echo ' nvm current Display currently activated version of Node' @@ -2426,7 +2434,8 @@ nvm() { nvm_echo ' nvm version-remote Resolve the given description to a single remote version' nvm_echo ' --lts When listing, only select from LTS (long-term support) versions' nvm_echo ' --lts= When listing, only select from versions for a specific LTS line' - nvm_echo ' nvm deactivate [--silent] Undo effects of `nvm` on current shell' + nvm_echo ' nvm deactivate Undo effects of `nvm` on current shell' + nvm_echo ' --silent Silences stdout/stderr output' nvm_echo ' nvm alias [] Show all aliases beginning with ' nvm_echo ' --no-colors Suppress colored output' nvm_echo ' nvm alias Set an alias named pointing to ' @@ -2434,7 +2443,8 @@ nvm() { nvm_echo ' nvm install-latest-npm Attempt to upgrade to the latest working `npm` on the current node version' nvm_echo ' nvm reinstall-packages Reinstall global `npm` packages contained in to current version' nvm_echo ' nvm unload Unload `nvm` from shell' - nvm_echo ' nvm which [--silent] [current | ] Display path to installed node version. Uses .nvmrc if available' + nvm_echo ' nvm which [current | ] Display path to installed node version. Uses .nvmrc if available and version is omitted.' + nvm_echo ' --silent Silences stdout/stderr output when a version is omitted' nvm_echo ' nvm cache dir Display path to the cache directory for nvm' nvm_echo ' nvm cache clear Empty cache directory for nvm' nvm_echo From 344cc32ac3aee40eef5745c7cd5035682a199bc2 Mon Sep 17 00:00:00 2001 From: Matthieu Bosquet Date: Mon, 5 Oct 2020 17:30:03 +0100 Subject: [PATCH 1296/1426] [readme] bash shell integration: Amended example to call cd when booting a terminal (previously only called on cd). It means that works with for example VS Code's integrated terminal. --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6780b4c..1de78ba 100644 --- a/README.md +++ b/README.md @@ -463,7 +463,7 @@ If you prefer a lighter-weight solution, the recipes below have been contributed Put the following at the end of your `$HOME/.bashrc`: ```bash -find-up () { +find-up() { path=$(pwd) while [[ "$path" != "" && ! -e "$path/$1" ]]; do path=${path%/*} @@ -471,7 +471,7 @@ find-up () { echo "$path" } -cdnvm(){ +cdnvm() { cd "$@"; nvm_path=$(find-up .nvmrc | tr -d '\n') @@ -514,6 +514,7 @@ cdnvm(){ fi } alias cd='cdnvm' +cd $PWD ``` This alias would search 'up' from your current directory in order to detect a `.nvmrc` file. If it finds it, it will switch to that version; if not, it will use the default version. From 4436638816cfb004cfc9918db9a44c964c6fafb9 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 21 Sep 2020 20:28:09 +0800 Subject: [PATCH 1297/1426] [Tests] Drop deprecated `sudo:` option in TravisCI config That config was deprecated for a while, reference: - https://blog.travis-ci.com/2018-10-04-combining-linux-infrastructures --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 3deb676..5b83e1b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,5 @@ language: generic dist: xenial -sudo: required addons: apt: packages: From 96069da0d5401e8e5008e404f6873b21f32f7937 Mon Sep 17 00:00:00 2001 From: Dylan Armstrong Date: Fri, 9 Oct 2020 09:43:21 -0500 Subject: [PATCH 1298/1426] [Fix] `nvm_ls`: zsh: unset `markdirs` and `local_options` Fixes #2315. --- nvm.sh | 1 + ...nvm ls\" should not show a trailing slash" | 40 +++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100755 "test/fast/Listing versions/Running \"nvm ls\" should not show a trailing slash" diff --git a/nvm.sh b/nvm.sh index 995cb74..505c7ff 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1089,6 +1089,7 @@ nvm_ls() { esac nvm_is_zsh && setopt local_options shwordsplit + nvm_is_zsh && unsetopt local_options markdirs local NVM_DIRS_TO_SEARCH1 NVM_DIRS_TO_SEARCH1='' diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should not show a trailing slash" "b/test/fast/Listing versions/Running \"nvm ls\" should not show a trailing slash" new file mode 100755 index 0000000..5173870 --- /dev/null +++ "b/test/fast/Listing versions/Running \"nvm ls\" should not show a trailing slash" @@ -0,0 +1,40 @@ +#!/bin/zsh + +\. ../../../nvm.sh +\. ../../common.sh + +if type setopt >/dev/null 2>&1; then setopt local_options markdirs; fi + +die () { + if type unsetopt >/dev/null 2>&1; then unsetopt local_options markdirs; fi + echo "$@"; + exit 1; +} + +make_fake_node v0.0.1 +make_fake_node v0.0.3 +make_fake_node v0.0.9 +make_fake_node v0.3.1 +make_fake_node v0.3.3 +make_fake_node v0.3.9 +make_fake_node v0.12.87 +make_fake_node v0.12.9 +make_fake_iojs v0.1.2 +make_fake_iojs v0.10.2 + +OUTPUT="$(nvm_ls)" +EXPECTED_OUTPUT="v0.0.1 +v0.0.3 +v0.0.9 +iojs-v0.1.2 +v0.3.1 +v0.3.3 +v0.3.9 +iojs-v0.10.2 +v0.12.9 +v0.12.87" +if nvm_has_system_node || nvm_has_system_iojs; then + EXPECTED_OUTPUT="${EXPECTED_OUTPUT} +system" +fi +[ "${OUTPUT-}" = "${EXPECTED_OUTPUT-}" ] || die "expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" From e01060fa2c331d77e306a90288b759010e14758e Mon Sep 17 00:00:00 2001 From: Dylan Armstrong Date: Fri, 9 Oct 2020 09:43:21 -0500 Subject: [PATCH 1299/1426] [Fix] `nvm_die_on_prefix`: use directory comparison rather than string --- nvm.sh | 2 +- test/fast/Unit tests/nvm_die_on_prefix | 28 +++++++++++++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 505c7ff..6a9b7f4 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2231,7 +2231,7 @@ nvm_die_on_prefix() { local NVM_OS NVM_OS="$(nvm_get_os)" NVM_NPM_PREFIX="$(npm config --loglevel=warn get prefix)" - if [ "${NVM_VERSION_DIR}" != "${NVM_NPM_PREFIX}" ] && ! (nvm_tree_contains_path "${NVM_VERSION_DIR}" "${NVM_NPM_PREFIX}" >/dev/null 2>&1); then + if [ ! "${NVM_VERSION_DIR}" -ef "${NVM_NPM_PREFIX}" ] && ! (nvm_tree_contains_path "${NVM_VERSION_DIR}" "${NVM_NPM_PREFIX}" >/dev/null 2>&1); then if [ "_${NVM_DELETE_PREFIX}" = "_1" ]; then npm config --loglevel=warn delete prefix else diff --git a/test/fast/Unit tests/nvm_die_on_prefix b/test/fast/Unit tests/nvm_die_on_prefix index c9b99e1..7254e47 100755 --- a/test/fast/Unit tests/nvm_die_on_prefix +++ b/test/fast/Unit tests/nvm_die_on_prefix @@ -1,11 +1,22 @@ #!/bin/sh +TEST_PWD=$(pwd) +TEST_DIR="$TEST_PWD/nvm_die_on_prefix_tmp" + cleanup () { + rm -rf "$TEST_DIR" alias nvm_has='\nvm_has' alias npm='\npm' unset -f nvm_has npm } -die () { echo "$@" ; exit 1; } + +die () { + echo "$@"; + cleanup; + exit 1; +} + +[ ! -e "$TEST_DIR" ] && mkdir "$TEST_DIR" \. ../../../nvm.sh @@ -40,9 +51,24 @@ npm() { echo "$(nvm_version_dir new)/good prefix" fi } + OUTPUT="$(nvm_die_on_prefix 0 foo "$(nvm_version_dir new)" 2>&1)" [ -z "$OUTPUT" ] || die "'nvm_die_on_prefix' was not a noop when prefix is good; got '$OUTPUT'" +mkdir -p "$(nvm_version_dir new)" +ln -s "$(nvm_version_dir new)" "$TEST_DIR/node" + +npm() { + local args + args="$@" + if [ "_$args" = "_config --loglevel=warn get prefix" ]; then + echo "$TEST_DIR/node" + fi +} + +OUTPUT="$(nvm_die_on_prefix 0 foo "$(nvm_version_dir new)" 2>&1)" +[ -z "$OUTPUT" ] || die "'nvm_die_on_prefix' was not a noop when directory is equivalent; got '$OUTPUT'" + OUTPUT="$(PREFIX=bar nvm_die_on_prefix 0 foo "$(nvm_version_dir new)" 2>&1)" EXPECTED_OUTPUT='nvm is not compatible with the "PREFIX" environment variable: currently set to "bar" Run `unset PREFIX` to unset it.' From e77ed07ccc053d030d553bb71b86dfc11dabbce3 Mon Sep 17 00:00:00 2001 From: Alex Aubuchon Date: Tue, 13 Oct 2020 12:32:41 -0400 Subject: [PATCH 1300/1426] [Tests] Fix `nvm_ls_current` fast test --- test/fast/Unit tests/nvm_ls_current | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/test/fast/Unit tests/nvm_ls_current b/test/fast/Unit tests/nvm_ls_current index 0e44b20..f2c5e65 100755 --- a/test/fast/Unit tests/nvm_ls_current +++ b/test/fast/Unit tests/nvm_ls_current @@ -19,7 +19,8 @@ fi rm -rf "$TEST_DIR" mkdir "$TEST_DIR" -ln -s "$(command which which)" "$TEST_DIR/which" +# Ensure that the system version of which is used, not node_modules/.bin/which +ln -s "$(PATH=$(echo $PATH | tr ":" "\n" | grep -v "node_modules/.bin" | tr "\n" ":") command which which)" "$TEST_DIR/which" ln -s "$(command which dirname)" "$TEST_DIR/dirname" ln -s "$(command which printf)" "$TEST_DIR/printf" @@ -27,12 +28,12 @@ ln -s "$(command which printf)" "$TEST_DIR/printf" [ "@$(PATH="$TEST_DIR" nvm_ls_current 2> /dev/stdout 1> /dev/null)@" = "@@" ] || die 'when node not installed, nvm_ls_current returned error output' echo "#!/bin/bash" > "$TEST_DIR/node" -echo "echo 'VERSION FOO!'" > "$TEST_DIR/node" +echo "echo 'VERSION FOO!'" >> "$TEST_DIR/node" chmod a+x "$TEST_DIR/node" -[ "$(alias nvm_tree_contains_path='return_zero' && PATH="$TEST_DIR" nvm_ls_current)" = "VERSION FOO!" ] || die 'when activated, did not return nvm node version' +[ "$(PATH="$TEST_DIR" nvm_ls_current)" = "VERSION FOO!" ] || die 'when activated, did not return nvm node version' alias node='node --harmony' -[ "$(alias nvm_tree_contains_path='return_zero' && PATH="$TEST_DIR" nvm_ls_current)" = "VERSION FOO!" ] || die 'when activated and node aliased, did not return nvm node version' +[ "$(PATH="$TEST_DIR" nvm_ls_current)" = "VERSION FOO!" ] || die 'when activated and node aliased, did not return nvm node version' cleanup From 0f0d5e8270c0bb9e8e3e37c26dd19b5353cedc4e Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 22 Oct 2020 20:40:04 -0700 Subject: [PATCH 1301/1426] [dev deps] alphabetize dependencies --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 5be2fc1..1655ba3 100644 --- a/package.json +++ b/package.json @@ -37,10 +37,10 @@ "homepage": "https://github.com/nvm-sh/nvm", "devDependencies": { "dockerfile_lint": "^0.3.2", + "doctoc": "^1.2.0", "eclint": "^2.6.0", "replace": "^0.3.0", "semver": "^5.0.1", - "urchin": "^0.0.5", - "doctoc": "^1.2.0" + "urchin": "^0.0.5" } } From f2c5ce459a4e9afb54a17c3e8d50558a62c8b456 Mon Sep 17 00:00:00 2001 From: Alex Aubuchon Date: Thu, 22 Oct 2020 16:13:33 -0400 Subject: [PATCH 1302/1426] [Tests] Fix nvm unload fast test cleanup --- ...ing \"nvm unload\" should unset all function and variables." | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/test/fast/Running \"nvm unload\" should unset all function and variables." "b/test/fast/Running \"nvm unload\" should unset all function and variables." index 516c4f0..e7fb706 100755 --- "a/test/fast/Running \"nvm unload\" should unset all function and variables." +++ "b/test/fast/Running \"nvm unload\" should unset all function and variables." @@ -5,7 +5,7 @@ set -ex BEFORE="./before.tmp" AFTER="./after.tmp" -cleanup () { echo rm -f "${BEFORE}" "${AFTER}"; } +cleanup () { rm -f "${BEFORE}" "${AFTER}"; } die () { echo "$@" ; cleanup ; exit 1; } typeset -f | awk '/ \(\) $/ && !/^main / {print $1}' > "${BEFORE}" From c72f2c6f21fbee8e0d3c8088f9ce1a0620fd5e07 Mon Sep 17 00:00:00 2001 From: Dena Burd Date: Thu, 24 Sep 2020 13:46:29 -0700 Subject: [PATCH 1303/1426] [Fix] `nvm ls-remote`: accept versions that end with a dot Fixes #983. --- nvm.sh | 4 ++++ test/fast/Unit tests/nvm_ls_remote | 13 +++++++++++++ 2 files changed, 17 insertions(+) diff --git a/nvm.sh b/nvm.sh index 6a9b7f4..cfb29cc 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1240,6 +1240,10 @@ nvm_ls_remote_index_tab() { local PATTERN PATTERN="${3-}" + if [ "${PATTERN#"${PATTERN%?}"}" = '.' ]; then + PATTERN="${PATTERN%.}" + fi + local VERSIONS if [ -n "${PATTERN}" ] && [ "${PATTERN}" != '*' ]; then if [ "${FLAVOR}" = 'iojs' ]; then diff --git a/test/fast/Unit tests/nvm_ls_remote b/test/fast/Unit tests/nvm_ls_remote index 2171650..be61cc4 100755 --- a/test/fast/Unit tests/nvm_ls_remote +++ b/test/fast/Unit tests/nvm_ls_remote @@ -40,6 +40,19 @@ v0.3.8" [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote 0.3 did not output 0.3.x versions; got $OUTPUT" +OUTPUT="$(nvm_ls_remote 0.3.)" +EXPECTED_OUTPUT="v0.3.0 +v0.3.1 +v0.3.2 +v0.3.3 +v0.3.4 +v0.3.5 +v0.3.6 +v0.3.7 +v0.3.8" + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote 0.3. did not output 0.3.x versions; got $OUTPUT" + # Sanity checks OUTPUT="$(nvm_print_implicit_alias remote stable)" EXPECTED_OUTPUT_PATH="${MOCKS_DIR}/nvm_print_implicit_alias remote stable.txt" From 31bc0a13c2969a51b4adadfb5ba7bf0b5c5d2cb4 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Tue, 3 Nov 2020 17:19:03 +0800 Subject: [PATCH 1304/1426] [Dockerfile] Clean up dated comment --- Dockerfile | 3 --- 1 file changed, 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 533b395..0d71868 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,8 +6,6 @@ # Please note that it'll use about 1.2 GB disk space and about 15 minutes to # build this image, it depends on your hardware. -# Use Ubuntu Trusty Tahr as base image as we're using on Travis CI -# I also tested with Ubuntu 16.04, should be good with it! FROM ubuntu:16.04 LABEL maintainer="Peter Dave Hello " LABEL name="nvm-dev-env" @@ -66,7 +64,6 @@ RUN apt update && \ bash-completion && \ apt-get clean -# ShellCheck with Ubuntu 14.04 container workaround RUN wget https://github.com/koalaman/shellcheck/releases/download/v$SHELLCHECK_VERSION/shellcheck-v$SHELLCHECK_VERSION.linux.x86_64.tar.xz -O- | \ tar xJvf - shellcheck-v$SHELLCHECK_VERSION/shellcheck && \ mv shellcheck-v$SHELLCHECK_VERSION/shellcheck /bin && \ From 499d303746de7dc4bad057581715fe64965eb728 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 24 Aug 2020 22:44:25 -0700 Subject: [PATCH 1305/1426] [Perf] `use`/`nvm_die_on_prefix`: replicate npm config algorithm and remove `npm config` call --- nvm.sh | 87 +++++++++++++---- test/fast/Unit tests/nvm_die_on_prefix | 128 ++++++++++++++++++++----- 2 files changed, 174 insertions(+), 41 deletions(-) diff --git a/nvm.sh b/nvm.sh index cfb29cc..69f5d97 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2180,6 +2180,15 @@ nvm_npm_global_modules() { nvm_echo "${INSTALLS} //// ${LINKS}" } +nvm_npmrc_bad_news_bears() { + local NVM_NPMRC + NVM_NPMRC="${1-}" + if [ -n "${NVM_NPMRC}" ] && [ -f "${NVM_NPMRC}" ] && nvm_grep -Ee '^(prefix|globalconfig) *=' <"${NVM_NPMRC}" >/dev/null; then + return 0 + fi + return 1 +} + nvm_die_on_prefix() { local NVM_DELETE_PREFIX NVM_DELETE_PREFIX="${1-}" @@ -2227,29 +2236,70 @@ nvm_die_on_prefix() { fi fi - if ! nvm_has 'npm'; then - return + # here, npm config checks npmrc files. + # the stack is: cli, env, project, user, global, builtin, defaults + # cli does not apply; env is covered above, defaults don't exist for prefix + # there are 4 npmrc locations to check: project, global, user, and builtin + # project: find the closest node_modules or package.json-containing dir, `.npmrc` + # global: default prefix + `/etc/npmrc` + # user: $HOME/.npmrc + # builtin: npm install location, `npmrc` + # + # if any of them have a `prefix`, fail. + # if any have `globalconfig`, fail also, just in case, to avoid spidering configs. + + local NVM_NPM_BUILTIN_NPMRC + NVM_NPM_BUILTIN_NPMRC="${NVM_VERSION_DIR}/lib/node_modules/npm/npmrc" + if nvm_npmrc_bad_news_bears "${NVM_NPM_BUILTIN_NPMRC}"; then + if [ "_${NVM_DELETE_PREFIX}" = "_1" ]; then + npm config --loglevel=warn delete prefix --userconfig="${NVM_NPM_BUILTIN_NPMRC}" + npm config --loglevel=warn delete globalconfig --userconfig="${NVM_NPM_BUILTIN_NPMRC}" + else + nvm_err "Your builtin npmrc file ($(nvm_sanitize_path "${NVM_NPM_BUILTIN_NPMRC}"))" + nvm_err 'has a `globalconfig` and/or a `prefix` setting, which are incompatible with nvm.' + nvm_err "Run \`${NVM_COMMAND}\` to unset it." + return 10 + fi fi - local NVM_NPM_PREFIX - local NVM_OS - NVM_OS="$(nvm_get_os)" - NVM_NPM_PREFIX="$(npm config --loglevel=warn get prefix)" - if [ ! "${NVM_VERSION_DIR}" -ef "${NVM_NPM_PREFIX}" ] && ! (nvm_tree_contains_path "${NVM_VERSION_DIR}" "${NVM_NPM_PREFIX}" >/dev/null 2>&1); then + local NVM_NPM_GLOBAL_NPMRC + NVM_NPM_GLOBAL_NPMRC="${NVM_VERSION_DIR}/etc/npmrc" + if nvm_npmrc_bad_news_bears "${NVM_NPM_GLOBAL_NPMRC}"; then + if [ "_${NVM_DELETE_PREFIX}" = "_1" ]; then + npm config --global --loglevel=warn delete prefix + npm config --global --loglevel=warn delete globalconfig + else + nvm_err "Your global npmrc file ($(nvm_sanitize_path "${NVM_NPM_GLOBAL_NPMRC}"))" + nvm_err 'has a `globalconfig` and/or a `prefix` setting, which are incompatible with nvm.' + nvm_err "Run \`${NVM_COMMAND}\` to unset it." + return 10 + fi + fi + + local NVM_NPM_USER_NPMRC + NVM_NPM_USER_NPMRC="${HOME}/.npmrc" + if nvm_npmrc_bad_news_bears "${NVM_NPM_USER_NPMRC}"; then + if [ "_${NVM_DELETE_PREFIX}" = "_1" ]; then + npm config --loglevel=warn delete prefix --userconfig="${NVM_NPM_USER_NPMRC}" + npm config --loglevel=warn delete globalconfig --userconfig="${NVM_NPM_USER_NPMRC}" + else + nvm_err "Your user’s .npmrc file ($(nvm_sanitize_path "${NVM_NPM_USER_NPMRC}"))" + nvm_err 'has a `globalconfig` and/or a `prefix` setting, which are incompatible with nvm.' + nvm_err "Run \`${NVM_COMMAND}\` to unset it." + return 10 + fi + fi + + local NVM_NPM_PROJECT_NPMRC + NVM_NPM_PROJECT_NPMRC="$(nvm_find_project_dir)/.npmrc" + if nvm_npmrc_bad_news_bears "${NVM_NPM_PROJECT_NPMRC}"; then if [ "_${NVM_DELETE_PREFIX}" = "_1" ]; then npm config --loglevel=warn delete prefix + npm config --loglevel=warn delete globalconfig else - nvm deactivate >/dev/null 2>&1 - nvm_err "nvm is not compatible with the npm config \"prefix\" option: currently set to \"${NVM_NPM_PREFIX}\"" - if nvm_has 'npm'; then - nvm_err "Run \`npm config delete prefix\` or \`${NVM_COMMAND}\` to unset it." - else - nvm_err "Run \`${NVM_COMMAND}\` to unset it." - fi - if [ "${NVM_OS}" = 'darwin' ]; then - nvm_err "Make sure your username ($(whoami)) matches the one in your \$HOME path." - nvm_err "See the \"macOS Troubleshooting\" section in the docs for more information." - fi + nvm_err "Your project npmrc file ($(nvm_sanitize_path "${NVM_NPM_PROJECT_NPMRC}"))" + nvm_err 'has a `globalconfig` and/or a `prefix` setting, which are incompatible with nvm.' + nvm_err "Run \`${NVM_COMMAND}\` to unset it." return 10 fi fi @@ -3703,6 +3753,7 @@ nvm() { nvm_sanitize_path nvm_has_colors nvm_process_parameters \ nvm_node_version_has_solaris_binary nvm_iojs_version_has_solaris_binary \ nvm_curl_libz_support nvm_command_info nvm_is_zsh nvm_stdout_is_terminal \ + nvm_npmrc_bad_news_bears \ >/dev/null 2>&1 unset NVM_RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_IOJS_ORG_MIRROR NVM_DIR \ NVM_CD_FLAGS NVM_BIN NVM_INC NVM_MAKE_JOBS \ diff --git a/test/fast/Unit tests/nvm_die_on_prefix b/test/fast/Unit tests/nvm_die_on_prefix index 7254e47..f06a9bf 100755 --- a/test/fast/Unit tests/nvm_die_on_prefix +++ b/test/fast/Unit tests/nvm_die_on_prefix @@ -3,6 +3,10 @@ TEST_PWD=$(pwd) TEST_DIR="$TEST_PWD/nvm_die_on_prefix_tmp" +\. ../../../nvm.sh + +TEST_VERSION_DIR="${TEST_DIR}/version" + cleanup () { rm -rf "$TEST_DIR" alias nvm_has='\nvm_has' @@ -18,8 +22,6 @@ die () { [ ! -e "$TEST_DIR" ] && mkdir "$TEST_DIR" -\. ../../../nvm.sh - OUTPUT="$(nvm_die_on_prefix 2>&1)" EXPECTED_OUTPUT="First argument \"delete the prefix\" must be zero or one" EXIT_CODE="$(nvm_die_on_prefix >/dev/null 2>&1; echo $?)" @@ -44,14 +46,6 @@ OUTPUT="$(nvm_die_on_prefix 0 version_dir foo 2>&1)" nvm_has() { return 0; } -npm() { - local args - args="$@" - if [ "_$args" = "_config --loglevel=warn get prefix" ]; then - echo "$(nvm_version_dir new)/good prefix" - fi -} - OUTPUT="$(nvm_die_on_prefix 0 foo "$(nvm_version_dir new)" 2>&1)" [ -z "$OUTPUT" ] || die "'nvm_die_on_prefix' was not a noop when prefix is good; got '$OUTPUT'" @@ -90,18 +84,106 @@ EXIT_CODE="$(export npm_CONFIG_PREFIX=bar ; nvm_die_on_prefix 0 foo "$(nvm_versi [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'npm_CONFIG_PREFIX=bar nvm_die_on_prefix 0 foo' did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" [ "_$EXIT_CODE" = "_4" ] || die "'npm_CONFIG_PREFIX=bar nvm_die_on_prefix 0 foo' did not exit with 4; got '$EXIT_CODE'" -npm() { - local args - args="$@" - if [ "_$args" = "_config --loglevel=warn get prefix" ]; then - echo "./bad prefix" - fi -} -OUTPUT="$(nvm_die_on_prefix 0 foo "$(nvm_version_dir new)" 2>&1)" -EXPECTED_OUTPUT="nvm is not compatible with the npm config \"prefix\" option: currently set to \"./bad prefix\" -Run \`npm config delete prefix\` or \`foo\` to unset it." -EXIT_CODE="$(nvm_die_on_prefix 0 foo "$(nvm_version_dir new)" >/dev/null 2>&1; echo $?)" -[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_die_on_prefix 0 foo' did not error with '$EXPECTED_OUTPUT' with bad prefix set; got '$OUTPUT'" -[ "_$EXIT_CODE" = "_10" ] || die "'nvm_die_on_prefix 0 foo' did not exit with 10 with bad prefix set; got '$EXIT_CODE'" +# npmrc tests +( + cd "${TEST_DIR}" + touch package.json + + # project: prefix + echo 'prefix=garbage' > .npmrc + OUTPUT="$(nvm_die_on_prefix 0 foo "${TEST_VERSION_DIR}" 2>&1)" + EXPECTED_OUTPUT="Your project npmrc file ($(nvm_sanitize_path "${TEST_DIR}")/.npmrc) +has a \`globalconfig\` and/or a \`prefix\` setting, which are incompatible with nvm. +Run \`foo\` to unset it." + EXIT_CODE="$(nvm_die_on_prefix 0 foo "${TEST_VERSION_DIR}" >/dev/null 2>&1; echo $?)" + [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_die_on_prefix 0 foo' with project .npmrc that has prefix did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" + [ "_$EXIT_CODE" = "_10" ] || die "'nvm_die_on_prefix 0 foo' with project .npmrc that has prefix did not exit with 10; got '$EXIT_CODE'" + + # project: globalconfig + echo 'globalconfig=garbage' > .npmrc + OUTPUT="$(nvm_die_on_prefix 0 foo "${TEST_VERSION_DIR}" 2>&1)" + EXPECTED_OUTPUT="Your project npmrc file ($(nvm_sanitize_path "${TEST_DIR}")/.npmrc) +has a \`globalconfig\` and/or a \`prefix\` setting, which are incompatible with nvm. +Run \`foo\` to unset it." + EXIT_CODE="$(nvm_die_on_prefix 0 foo "${TEST_VERSION_DIR}" >/dev/null 2>&1; echo $?)" + [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_die_on_prefix 0 foo' with project .npmrc that has globalconfig did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" + [ "_$EXIT_CODE" = "_10" ] || die "'nvm_die_on_prefix 0 foo' with project .npmrc that has globalconfig did not exit with 10; got '$EXIT_CODE'" + + rm "${TEST_DIR}/.npmrc" || die '.npmrc could not be removed' + + mkdir -p "${TEST_VERSION_DIR}" + GLOBAL_NPMRC="${TEST_VERSION_DIR}/etc/npmrc" + mkdir -p "${TEST_VERSION_DIR}/etc" + + BUILTIN_NPMRC="${TEST_VERSION_DIR}/lib/node_modules/npm/npmrc" + mkdir -p "${TEST_VERSION_DIR}/lib/node_modules/npm/" + + export HOME="${TEST_VERSION_DIR}" + USER_NPMRC="${TEST_VERSION_DIR}/.npmrc" + + # global: prefix + echo 'prefix=garbage' > "${GLOBAL_NPMRC}" + OUTPUT="$(nvm_die_on_prefix 0 foo "${TEST_VERSION_DIR}" 2>&1)" + EXPECTED_OUTPUT="Your global npmrc file ($(nvm_sanitize_path "${GLOBAL_NPMRC}")) +has a \`globalconfig\` and/or a \`prefix\` setting, which are incompatible with nvm. +Run \`foo\` to unset it." + EXIT_CODE="$(nvm_die_on_prefix 0 foo "${TEST_VERSION_DIR}" >/dev/null 2>&1; echo $?)" + [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_die_on_prefix 0 foo' with global npmrc that has prefix did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" + [ "_$EXIT_CODE" = "_10" ] || die "'nvm_die_on_prefix 0 foo' with global npmrc that has prefix did not exit with 10; got '$EXIT_CODE'" + + # global: globalconfig + echo 'globalconfig=garbage' > "${GLOBAL_NPMRC}" + OUTPUT="$(nvm_die_on_prefix 0 foo "${TEST_VERSION_DIR}" 2>&1)" + EXPECTED_OUTPUT="Your global npmrc file ($(nvm_sanitize_path "${GLOBAL_NPMRC}")) +has a \`globalconfig\` and/or a \`prefix\` setting, which are incompatible with nvm. +Run \`foo\` to unset it." + EXIT_CODE="$(nvm_die_on_prefix 0 foo "${TEST_VERSION_DIR}" >/dev/null 2>&1; echo $?)" + [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_die_on_prefix 0 foo' with global npmrc that has globalconfig did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" + [ "_$EXIT_CODE" = "_10" ] || die "'nvm_die_on_prefix 0 foo' with global npmrc that has globalconfig did not exit with 10; got '$EXIT_CODE'" + + rm "${GLOBAL_NPMRC}" || die "${GLOBAL_NPMRC} could not be removed" + + # builtin: prefix + echo 'prefix=garbage' > "${BUILTIN_NPMRC}" + OUTPUT="$(nvm_die_on_prefix 0 foo "${TEST_VERSION_DIR}" 2>&1)" + EXPECTED_OUTPUT="Your builtin npmrc file ($(nvm_sanitize_path "${BUILTIN_NPMRC}")) +has a \`globalconfig\` and/or a \`prefix\` setting, which are incompatible with nvm. +Run \`foo\` to unset it." + EXIT_CODE="$(nvm_die_on_prefix 0 foo "${TEST_VERSION_DIR}" >/dev/null 2>&1; echo $?)" + [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_die_on_prefix 0 foo' with builtin npmrc that has prefix did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" + [ "_$EXIT_CODE" = "_10" ] || die "'nvm_die_on_prefix 0 foo' with builtin npmrc that has prefix did not exit with 10; got '$EXIT_CODE'" + + # builtin: globalconfig + echo 'globalconfig=garbage' > "${BUILTIN_NPMRC}" + OUTPUT="$(nvm_die_on_prefix 0 foo "${TEST_VERSION_DIR}" 2>&1)" + EXPECTED_OUTPUT="Your builtin npmrc file ($(nvm_sanitize_path "${BUILTIN_NPMRC}")) +has a \`globalconfig\` and/or a \`prefix\` setting, which are incompatible with nvm. +Run \`foo\` to unset it." + EXIT_CODE="$(nvm_die_on_prefix 0 foo "${TEST_VERSION_DIR}" >/dev/null 2>&1; echo $?)" + [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_die_on_prefix 0 foo' with builtin npmrc that has globalconfig did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" + [ "_$EXIT_CODE" = "_10" ] || die "'nvm_die_on_prefix 0 foo' with builtin npmrc that has globalconfig did not exit with 10; got '$EXIT_CODE'" + + rm "${BUILTIN_NPMRC}" || die "${BUILTIN_NPMRC} could not be removed" + + # user: prefix + echo 'prefix=garbage' > "${USER_NPMRC}" + OUTPUT="$(nvm_die_on_prefix 0 foo "${TEST_VERSION_DIR}" 2>&1)" + EXPECTED_OUTPUT="Your user’s .npmrc file ($(nvm_sanitize_path "${USER_NPMRC}")) +has a \`globalconfig\` and/or a \`prefix\` setting, which are incompatible with nvm. +Run \`foo\` to unset it." + EXIT_CODE="$(nvm_die_on_prefix 0 foo "${TEST_VERSION_DIR}" >/dev/null 2>&1; echo $?)" + [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_die_on_prefix 0 foo' with user .npmrc that has prefix did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" + [ "_$EXIT_CODE" = "_10" ] || die "'nvm_die_on_prefix 0 foo' with user .npmrc that has prefix did not exit with 10; got '$EXIT_CODE'" + + # user: globalconfig + echo 'globalconfig=garbage' > "${USER_NPMRC}" + OUTPUT="$(nvm_die_on_prefix 0 foo "${TEST_VERSION_DIR}" 2>&1)" + EXPECTED_OUTPUT="Your user’s .npmrc file ($(nvm_sanitize_path "${USER_NPMRC}")) +has a \`globalconfig\` and/or a \`prefix\` setting, which are incompatible with nvm. +Run \`foo\` to unset it." + EXIT_CODE="$(nvm_die_on_prefix 0 foo "${TEST_VERSION_DIR}" >/dev/null 2>&1; echo $?)" + [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_die_on_prefix 0 foo' with user .npmrc that has globalconfig did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" + [ "_$EXIT_CODE" = "_10" ] || die "'nvm_die_on_prefix 0 foo' with user .npmrc that has globalconfig did not exit with 10; got '$EXIT_CODE'" +) cleanup From 4054bd70cedb9998015c2d8cc468c818c7d2f57d Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 6 Nov 2020 10:11:29 -0800 Subject: [PATCH 1306/1426] v0.37.0 --- README.md | 16 ++++++++-------- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 1de78ba..8364e88 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Node Version Manager [![Build Status](https://travis-ci.org/nvm-sh/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.36.0-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://travis-ci.org/nvm-sh/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.37.0-yellow.svg)][4] [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/684/badge)](https://bestpractices.coreinfrastructure.org/projects/684) @@ -59,10 +59,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.36.0/install.sh | bash +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.0/install.sh | bash ``` ```sh -wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.36.0/install.sh | bash +wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.0/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`). @@ -115,7 +115,7 @@ You can use a task: ```yaml - name: nvm shell: > - curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.36.0/install.sh | bash + curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.0/install.sh | bash args: creates: "{{ ansible_env.HOME }}/.nvm/nvm.sh" ``` @@ -174,7 +174,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.36.0` +1. `cd ~/.nvm` and check out the latest version with `git checkout v0.37.0` 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: @@ -722,7 +722,7 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh ```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.36.0/install.sh | bash +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.0/install.sh | bash ``` The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. @@ -819,8 +819,8 @@ 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.36.0/install.sh +[2]: https://github.com/nvm-sh/nvm/blob/v0.37.0/install.sh [3]: https://travis-ci.org/nvm-sh/nvm -[4]: https://github.com/nvm-sh/nvm/releases/tag/v0.36.0 +[4]: https://github.com/nvm-sh/nvm/releases/tag/v0.37.0 [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index 32ce0c0..dd0b11c 100755 --- a/install.sh +++ b/install.sh @@ -19,7 +19,7 @@ nvm_install_dir() { } nvm_latest_version() { - echo "v0.36.0" + echo "v0.37.0" } nvm_profile_is_bash_or_zsh() { diff --git a/nvm.sh b/nvm.sh index 69f5d97..13dcb01 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3712,7 +3712,7 @@ nvm() { NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; "--version" | "-v") - nvm_echo '0.36.0' + nvm_echo '0.37.0' ;; "unload") nvm deactivate >/dev/null 2>&1 diff --git a/package.json b/package.json index 1655ba3..67efcde 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.36.0", + "version": "0.37.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From bbe032fa7e219369e2135a3059af6640ab0c4809 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 6 Nov 2020 23:55:52 -0800 Subject: [PATCH 1307/1426] [actions] switch Automatic Rebase workflow to `pull_request_target` event --- .github/workflows/rebase.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/rebase.yml b/.github/workflows/rebase.yml index 844cbba..027aed0 100644 --- a/.github/workflows/rebase.yml +++ b/.github/workflows/rebase.yml @@ -1,6 +1,6 @@ name: Automatic Rebase -on: [pull_request] +on: [pull_request_target] jobs: _: From 11a9d22607adeb5ea855d2e5bc623cd9a9560112 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 6 Nov 2020 23:56:55 -0800 Subject: [PATCH 1308/1426] [actions] add "Allow Edits" workflow --- .github/workflows/require-allow-edits.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 .github/workflows/require-allow-edits.yml diff --git a/.github/workflows/require-allow-edits.yml b/.github/workflows/require-allow-edits.yml new file mode 100644 index 0000000..aac42d3 --- /dev/null +++ b/.github/workflows/require-allow-edits.yml @@ -0,0 +1,14 @@ +name: Require “Allow Edits” + +on: [pull_request_target] + +jobs: + _: + name: "Require “Allow Edits”" + + runs-on: ubuntu-latest + + steps: + - uses: ljharb/require-allow-edits@main + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 00af6341f760fdfcee86b4c9e7c41f16b79d0ba9 Mon Sep 17 00:00:00 2001 From: Alex Aubuchon Date: Tue, 3 Nov 2020 19:05:34 -0500 Subject: [PATCH 1309/1426] [Tests] Run fast test suite in clean environment --- package.json | 2 +- .../fast/Running \"nvm use iojs\" uses latest io.js version" | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 67efcde..14ec86f 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ }, "scripts": { "test": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make test-$shell", - "test/fast": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=fast test-$shell", + "test/fast": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); env -i TERM=\"$TERM\" bash -lc \"make TEST_SUITE=fast test-$shell\"", "test/slow": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=slow test-$shell", "test/install_script": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=install_script test-$shell", "test/installation": "npm run --silent test/installation/node && npm run --silent test/installation/iojs", diff --git "a/test/fast/Running \"nvm use iojs\" uses latest io.js version" "b/test/fast/Running \"nvm use iojs\" uses latest io.js version" index fafc9c7..be383ce 100755 --- "a/test/fast/Running \"nvm use iojs\" uses latest io.js version" +++ "b/test/fast/Running \"nvm use iojs\" uses latest io.js version" @@ -27,7 +27,9 @@ EXPECTED_OUTPUT="$(nvm_add_iojs_prefix ${VERSION})" nvm use --delete-prefix iojs || die '`nvm use iojs` failed' -CURRENT="$(nvm current)" +# Remove node_modules/.bin from the path so that the system version `which` is +# used in nvm_ls_current +PATH=$(echo "$PATH" | tr ":" "\n" | grep -v "node_modules/.bin" | tr "\n" ":") CURRENT="$(nvm current)" echo "current: ${CURRENT}" [ "${CURRENT}" = "${IOJS_VERSION}" ] || die "expected >${IOJS_VERSION}<; got >${CURRENT}<" From 21c0c05130d9bdd275f29ccb158fa7103493903a Mon Sep 17 00:00:00 2001 From: Matteo De Wint Date: Mon, 16 Nov 2020 10:47:30 +0100 Subject: [PATCH 1310/1426] [Fix] `nvm_die_on_prefix`: only grep lines starting with env var name --- nvm.sh | 2 +- test/fast/Unit tests/nvm_die_on_prefix | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 13dcb01..9bc89ad 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2224,7 +2224,7 @@ nvm_die_on_prefix() { # here, we avoid trying to replicate "which one wins" or testing the value; if any are defined, it errors # until none are left. local NVM_NPM_CONFIG_PREFIX_ENV - NVM_NPM_CONFIG_PREFIX_ENV="$(command env | nvm_grep -i NPM_CONFIG_PREFIX | command tail -1 | command awk -F '=' '{print $1}')" + NVM_NPM_CONFIG_PREFIX_ENV="$(command env | nvm_grep -i ^NPM_CONFIG_PREFIX | command tail -1 | command awk -F '=' '{print $1}')" if [ -n "${NVM_NPM_CONFIG_PREFIX_ENV-}" ]; then local NVM_CONFIG_VALUE eval "NVM_CONFIG_VALUE=\"\$${NVM_NPM_CONFIG_PREFIX_ENV}\"" diff --git a/test/fast/Unit tests/nvm_die_on_prefix b/test/fast/Unit tests/nvm_die_on_prefix index f06a9bf..54c15f7 100755 --- a/test/fast/Unit tests/nvm_die_on_prefix +++ b/test/fast/Unit tests/nvm_die_on_prefix @@ -84,6 +84,9 @@ EXIT_CODE="$(export npm_CONFIG_PREFIX=bar ; nvm_die_on_prefix 0 foo "$(nvm_versi [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'npm_CONFIG_PREFIX=bar nvm_die_on_prefix 0 foo' did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" [ "_$EXIT_CODE" = "_4" ] || die "'npm_CONFIG_PREFIX=bar nvm_die_on_prefix 0 foo' did not exit with 4; got '$EXIT_CODE'" +OUTPUT="$(export FOO='NPM_CONFIG_PREFIX' ; nvm_die_on_prefix 0 foo "$(nvm_version_dir new)" 2>&1)" +[ -z "$OUTPUT" ] || die "'nvm_die_on_prefix' was not a noop; got '$OUTPUT'" + # npmrc tests ( cd "${TEST_DIR}" From 3abb98124e8d30c9652976c9d34a7380036083b5 Mon Sep 17 00:00:00 2001 From: Alex Aubuchon Date: Wed, 18 Nov 2020 12:49:28 -0500 Subject: [PATCH 1311/1426] [actions] Add shellcheck workflow Co-authored-by: Alex Aubuchon Co-authored-by: Jordan Harband --- .github/workflows/shellcheck.yml | 31 +++++++++++++++++++++++++++++++ .travis.yml | 4 ---- 2 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/shellcheck.yml diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml new file mode 100644 index 0000000..1039d38 --- /dev/null +++ b/.github/workflows/shellcheck.yml @@ -0,0 +1,31 @@ +name: "Tests: shellcheck" + +on: [pull_request, push] + +jobs: + shellcheck: + runs-on: ubuntu-latest + strategy: + matrix: + shell: + - bash + - sh + - dash + - ksh + file: + - nvm.sh + include: + - shell: bash + file: install.sh # only supported on bash + - shell: bash + file: bash_completion # only needed in bash/zsh + - shell: bash + file: nvm-exec # only runs in bash + + steps: + - uses: actions/checkout@v2 + - name: Install shellcheck + run: brew install shellcheck + - run: "shellcheck --version" + - name: Run shellcheck on ${{ matrix.file }} + run: shellcheck -s ${{ matrix.shell }} ${{ matrix.file }} diff --git a/.travis.yml b/.travis.yml index 5b83e1b..ef7f72d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,7 +18,6 @@ before_install: - $SHELL --version 2> /dev/null || dpkg -s $SHELL 2> /dev/null || which $SHELL - curl --version - wget --version - - shellcheck --version install: - if [ -z "${SHELLCHECK-}" ]; then nvm install node && npm install && npm prune && npm ls urchin doctoc eclint dockerfile_lint; fi - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' @@ -27,8 +26,6 @@ script: - if [ -n "${DOCTOCCHECK-}" ]; then cp README.md README.md.orig && npm run doctoc && diff -q README.md README.md.orig ; fi - if [ -n "${ECLINT-}" ]; then npm run eclint ; fi - if [ -n "${DOCKERFILE_LINT-}" ]; then npm run dockerfile_lint ; fi - - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash nvm.sh && shellcheck -s sh nvm.sh && shellcheck -s dash nvm.sh && shellcheck -s ksh nvm.sh ; fi - - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash install.sh bash_completion nvm-exec ; fi - if [ -n "${SHELL-}" ] && [ -n "${TEST_SUITE}" ]; then if [ "${TEST_SUITE}" = 'installation_iojs' ]; then travis_retry make TEST_SUITE=$TEST_SUITE URCHIN="$(npm bin)/urchin" test-$SHELL ; else make TEST_SUITE=$TEST_SUITE URCHIN="$(npm bin)/urchin" test-$SHELL; fi; fi before_cache: - if [ -n "$WITHOUT_CURL" ]; then sudo apt-get install curl -y ; fi @@ -43,7 +40,6 @@ env: matrix: - MAKE_RELEASE=true - DOCTOCCHECK=true - - SHELLCHECK=true - ECLINT=true - DOCKERFILE_LINT=true - SHELL=bash TEST_SUITE=install_script From 6848c16d53c7f6730b81c7d46dcd831add6a392a Mon Sep 17 00:00:00 2001 From: Dena Burd <29719099+gitburd@users.noreply.github.com> Date: Mon, 17 Aug 2020 14:56:13 -0700 Subject: [PATCH 1312/1426] [New] Added `set-colors` command. See details below: This command allows users to replace default colors with their own custom colors. - top-level commands modified: alias, ls, ls-remote - helper functions added: nvm_echo_with_colors, nvm_err_with_colors, nvm_set_colors, nvm_get_colors, nvm_print_color_code - functions modified: nvm_print_formatted_alias, nvm_print_versions, nvm_print_alias_path (implicitly), nvm_print_default_alias (implicitly), nvm_list_aliases (implicitly) We added tests and info on using this command to the README! Co-authored-by: Dena Burd <29719099+gitburd@users.noreply.github.com> Co-authored-by: Naomi Quinones <52065567+naomiquinones@users.noreply.github.com> --- README.md | 40 ++- nvm.sh | 240 ++++++++++++++++-- .../nvm_list_aliases calls nvm_get_colors | 25 ++ .../nvm_print_alias_path calls nvm_get_colors | 28 ++ ...print_formatted_alias calls nvm_get_colors | 21 ++ test/fast/Set Colors/nvm_echo_with_colors | 21 ++ test/fast/Set Colors/nvm_err_with_colors | 19 ++ ...m_print_default_alias calls nvm_get_colors | 24 ++ .../nvm_print_versions calls nvm_get_colors | 52 ++++ test/fast/Unit tests/nvm ls-remote | 8 + test/fast/Unit tests/nvm set_colors | 52 ++++ test/fast/Unit tests/nvm_get_colors | 79 ++++++ test/fast/Unit tests/nvm_print_color_code | 20 ++ 13 files changed, 608 insertions(+), 21 deletions(-) create mode 100755 test/fast/Aliases/nvm_list_aliases calls nvm_get_colors create mode 100755 test/fast/Aliases/nvm_print_alias_path calls nvm_get_colors create mode 100755 test/fast/Aliases/nvm_print_formatted_alias calls nvm_get_colors create mode 100755 test/fast/Set Colors/nvm_echo_with_colors create mode 100755 test/fast/Set Colors/nvm_err_with_colors create mode 100755 test/fast/Set Colors/nvm_print_default_alias calls nvm_get_colors create mode 100755 test/fast/Set Colors/nvm_print_versions calls nvm_get_colors create mode 100755 test/fast/Unit tests/nvm set_colors create mode 100755 test/fast/Unit tests/nvm_get_colors create mode 100755 test/fast/Unit tests/nvm_print_color_code diff --git a/README.md b/README.md index 8364e88..ef8a3ff 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,8 @@ - [io.js](#iojs) - [System Version of Node](#system-version-of-node) - [Listing Versions](#listing-versions) + - [Setting Custom Colors](#setting-custom-colors) + - [Persisting custom colors](#persisting-custom-colors) - [Suppressing colorized output](#suppressing-colorized-output) - [.nvmrc](#nvmrc) - [Deeper Shell Integration](#deeper-shell-integration) @@ -380,12 +382,48 @@ If you want to see what versions are available to install: nvm ls-remote ``` +### Setting Custom Colors + +You can set five colors that will be used to display version and alias information. These colors replace the default colors. + Initial colors are: g b y r e + + Color codes: + + r/R = red / bold red + + g/G = green / bold green + + b/B = blue / bold blue + + c/C = cyan / bold cyan + + m/M = magenta / bold magenta + + y/Y = yellow / bold yellow + + k/K = black / bold black + + e/W = light grey / white + +```sh +nvm set-colors rgBcm +``` + +#### Persisting custom colors + +If you want the custom colors to persist after terminating the shell, export the NVM_COLORS variable in your shell profile. For example, if you want to use cyan, magenta, green, bold red and bold yellow, add the following line: + +```sh +export NVM_COLORS='cmgRY' +``` + #### Suppressing colorized output -`nvm ls`, `nvm ls-remote` and `nvm alias` usually produce colorized output. You can disable colors with the `--no-colors` option (or by setting the environment variable `TERM=dumb`): +`nvm help (or -h or --help)`, `nvm ls`, `nvm ls-remote` and `nvm alias` usually produce colorized output. You can disable colors with the `--no-colors` option (or by setting the environment variable `TERM=dumb`): ```sh nvm ls --no-colors +nvm help --no-colors TERM=dumb nvm ls ``` diff --git a/nvm.sh b/nvm.sh index 9bc89ad..e15c9fd 100644 --- a/nvm.sh +++ b/nvm.sh @@ -24,6 +24,10 @@ nvm_echo() { command printf %s\\n "$*" 2>/dev/null } +nvm_echo_with_colors() { + command printf %b\\n "$*" 2>/dev/null +} + nvm_cd() { \cd "$@" } @@ -32,6 +36,10 @@ nvm_err() { >&2 nvm_echo "$@" } +nvm_err_with_colors() { + >&2 nvm_echo_with_colors "$@" +} + nvm_grep() { GREP_OPTIONS='' command grep "$@" } @@ -70,11 +78,11 @@ nvm_command_info() { } nvm_has_colors() { - local NVM_COLORS + local NVM_NUM_COLORS if nvm_has tput; then - NVM_COLORS="$(tput -T "${TERM:-vt100}" colors)" + NVM_NUM_COLORS="$(tput -T "${TERM:-vt100}" colors)" fi - [ "${NVM_COLORS:--1}" -ge 8 ] + [ "${NVM_NUM_COLORS:--1}" -ge 8 ] } nvm_curl_libz_support() { @@ -713,6 +721,92 @@ nvm_binary_available() { nvm_version_greater_than_or_equal_to "$(nvm_strip_iojs_prefix "${1-}")" v0.8.6 } +nvm_set_colors() { + if [ "${#1}" -eq 5 ] && nvm_echo "$1" | nvm_grep -E "^[rRgGbBcCyYmMkKeW]{1,}$" 1>/dev/null; then + local INSTALLED_COLOR + local LTS_AND_SYSTEM_COLOR + local CURRENT_COLOR + local NOT_INSTALLED_COLOR + local DEFAULT_COLOR + + INSTALLED_COLOR="$(echo "$1" | awk '{ print substr($0, 1, 1); }')" + LTS_AND_SYSTEM_COLOR="$(echo "$1" | awk '{ print substr($0, 2, 1); }')" + CURRENT_COLOR="$(echo "$1" | awk '{ print substr($0, 3, 1); }')" + NOT_INSTALLED_COLOR="$(echo "$1" | awk '{ print substr($0, 4, 1); }')" + DEFAULT_COLOR="$(echo "$1" | awk '{ print substr($0, 5, 1); }')" + if ! nvm_has_colors; then + nvm_echo "Setting colors to: ${INSTALLED_COLOR} ${LTS_AND_SYSTEM_COLOR} ${CURRENT_COLOR} ${NOT_INSTALLED_COLOR} ${DEFAULT_COLOR}" + nvm_echo "WARNING: Colors may not display because they are not supported in this shell." + else + nvm_echo_with_colors "Setting colors to: \033[$(nvm_print_color_code "${INSTALLED_COLOR}") ${INSTALLED_COLOR}\033[$(nvm_print_color_code "${LTS_AND_SYSTEM_COLOR}") ${LTS_AND_SYSTEM_COLOR}\033[$(nvm_print_color_code "${CURRENT_COLOR}") ${CURRENT_COLOR}\033[$(nvm_print_color_code "${NOT_INSTALLED_COLOR}") ${NOT_INSTALLED_COLOR}\033[$(nvm_print_color_code "${DEFAULT_COLOR}") ${DEFAULT_COLOR}\033[0m" + fi + export NVM_COLORS="$1" + else + return 17 + fi +} + +nvm_get_colors() { + local COLOR + local SYS_COLOR + if [ -n "${NVM_COLORS-}" ]; then + case $1 in + 1) COLOR=$(nvm_print_color_code "$(echo "$NVM_COLORS" | awk '{ print substr($0, 1, 1); }')");; + 2) COLOR=$(nvm_print_color_code "$(echo "$NVM_COLORS" | awk '{ print substr($0, 2, 1); }')");; + 3) COLOR=$(nvm_print_color_code "$(echo "$NVM_COLORS" | awk '{ print substr($0, 3, 1); }')");; + 4) COLOR=$(nvm_print_color_code "$(echo "$NVM_COLORS" | awk '{ print substr($0, 4, 1); }')");; + 5) COLOR=$(nvm_print_color_code "$(echo "$NVM_COLORS" | awk '{ print substr($0, 5, 1); }')");; + 6) + SYS_COLOR=$(nvm_print_color_code "$(echo "$NVM_COLORS" | awk '{ print substr($0, 2, 1); }')") + COLOR=$(nvm_echo "$SYS_COLOR" | command tr '0;' '1;') + ;; + *) + nvm_err "Invalid color index, ${1-}" + return 1 + ;; + esac + else + case $1 in + 1) COLOR='0;34m';; + 2) COLOR='0;33m';; + 3) COLOR='0;32m';; + 4) COLOR='0;31m';; + 5) COLOR='0;37m';; + 6) COLOR='1;33m';; + *) + nvm_err "Invalid color index, ${1-}" + return 1 + ;; + esac + fi + + echo "$COLOR" +} + +nvm_print_color_code() { + case "${1-}" in + r) nvm_echo '0;31m';; + R) nvm_echo '1;31m';; + g) nvm_echo '0;32m';; + G) nvm_echo '1;32m';; + b) nvm_echo '0;34m';; + B) nvm_echo '1;34m';; + c) nvm_echo '0;36m';; + C) nvm_echo '1;36m';; + m) nvm_echo '0;35m';; + M) nvm_echo '1;35m';; + y) nvm_echo '0;33m';; + Y) nvm_echo '1;33m';; + k) nvm_echo '0;30m';; + K) nvm_echo '1;30m';; + e) nvm_echo '0;37m';; + W) nvm_echo '1;37m';; + *) nvm_err 'Invalid color code'; + return 1 + ;; + esac +} + nvm_print_formatted_alias() { local ALIAS ALIAS="${1-}" @@ -726,6 +820,21 @@ nvm_print_formatted_alias() { local VERSION_FORMAT local ALIAS_FORMAT local DEST_FORMAT + + local INSTALLED_COLOR + local SYSTEM_COLOR + local CURRENT_COLOR + local NOT_INSTALLED_COLOR + local DEFAULT_COLOR + local LTS_COLOR + + INSTALLED_COLOR=$(nvm_get_colors 1) + SYSTEM_COLOR=$(nvm_get_colors 2) + CURRENT_COLOR=$(nvm_get_colors 3) + NOT_INSTALLED_COLOR=$(nvm_get_colors 4) + DEFAULT_COLOR=$(nvm_get_colors 5) + LTS_COLOR=$(nvm_get_colors 6) + ALIAS_FORMAT='%s' DEST_FORMAT='%s' VERSION_FORMAT='%s' @@ -739,26 +848,26 @@ nvm_print_formatted_alias() { if [ -z "${NVM_NO_COLORS}" ] && nvm_has_colors; then ARROW='\033[0;90m->\033[0m' if [ "_${DEFAULT}" = '_true' ]; then - NEWLINE=' \033[0;37m(default)\033[0m\n' + NEWLINE=" \033[${DEFAULT_COLOR}(default)\033[0m\n" fi if [ "_${VERSION}" = "_${NVM_CURRENT-}" ]; then - ALIAS_FORMAT='\033[0;32m%s\033[0m' - DEST_FORMAT='\033[0;32m%s\033[0m' - VERSION_FORMAT='\033[0;32m%s\033[0m' + ALIAS_FORMAT="\033[${CURRENT_COLOR}%s\033[0m" + DEST_FORMAT="\033[${CURRENT_COLOR}%s\033[0m" + VERSION_FORMAT="\033[${CURRENT_COLOR}%s\033[0m" elif nvm_is_version_installed "${VERSION}"; then - ALIAS_FORMAT='\033[0;34m%s\033[0m' - DEST_FORMAT='\033[0;34m%s\033[0m' - VERSION_FORMAT='\033[0;34m%s\033[0m' + ALIAS_FORMAT="\033[${INSTALLED_COLOR}%s\033[0m" + DEST_FORMAT="\033[${INSTALLED_COLOR}%s\033[0m" + VERSION_FORMAT="\033[${INSTALLED_COLOR}%s\033[0m" elif [ "${VERSION}" = '∞' ] || [ "${VERSION}" = 'N/A' ]; then - ALIAS_FORMAT='\033[1;31m%s\033[0m' - DEST_FORMAT='\033[1;31m%s\033[0m' - VERSION_FORMAT='\033[1;31m%s\033[0m' + ALIAS_FORMAT="\033[${NOT_INSTALLED_COLOR}%s\033[0m" + DEST_FORMAT="\033[${NOT_INSTALLED_COLOR}%s\033[0m" + VERSION_FORMAT="\033[${NOT_INSTALLED_COLOR}%s\033[0m" fi if [ "_${NVM_LTS-}" = '_true' ]; then - ALIAS_FORMAT='\033[1;33m%s\033[0m' + ALIAS_FORMAT="\033[${LTS_COLOR}%s\033[0m" fi if [ "_${DEST%/*}" = "_lts" ]; then - DEST_FORMAT='\033[1;33m%s\033[0m' + DEST_FORMAT="\033[${LTS_COLOR}%s\033[0m" fi elif [ "_${VERSION}" != '_∞' ] && [ "_${VERSION}" != '_N/A' ]; then VERSION_FORMAT='%s *' @@ -1458,7 +1567,26 @@ nvm_print_versions() { local LTS local FORMAT local NVM_CURRENT + local NVM_LATEST_LTS_COLOR + local NVM_OLD_LTS_COLOR + + local INSTALLED_COLOR + local SYSTEM_COLOR + local CURRENT_COLOR + local NOT_INSTALLED_COLOR + local DEFAULT_COLOR + local LTS_COLOR + + INSTALLED_COLOR=$(nvm_get_colors 1) + SYSTEM_COLOR=$(nvm_get_colors 2) + CURRENT_COLOR=$(nvm_get_colors 3) + NOT_INSTALLED_COLOR=$(nvm_get_colors 4) + DEFAULT_COLOR=$(nvm_get_colors 5) + LTS_COLOR=$(nvm_get_colors 6) + NVM_CURRENT=$(nvm_ls_current) + NVM_LATEST_LTS_COLOR=$(nvm_echo "${CURRENT_COLOR}" | command tr '0;' '1;') + NVM_OLD_LTS_COLOR="${DEFAULT_COLOR}" local NVM_HAS_COLORS if [ -z "${NVM_NO_COLORS-}" ] && nvm_has_colors; then NVM_HAS_COLORS=1 @@ -1475,19 +1603,19 @@ nvm_print_versions() { FORMAT='%15s' if [ "_${VERSION}" = "_${NVM_CURRENT}" ]; then if [ "${NVM_HAS_COLORS-}" = '1' ]; then - FORMAT='\033[0;32m-> %12s\033[0m' + FORMAT="\033[${CURRENT_COLOR}-> %12s\033[0m" else FORMAT='-> %12s *' fi elif [ "${VERSION}" = "system" ]; then if [ "${NVM_HAS_COLORS-}" = '1' ]; then - FORMAT='\033[0;33m%15s\033[0m' + FORMAT="\033[${SYSTEM_COLOR}%15s\033[0m" else FORMAT='%15s *' fi elif nvm_is_version_installed "${VERSION}"; then if [ "${NVM_HAS_COLORS-}" = '1' ]; then - FORMAT='\033[0;34m%15s\033[0m' + FORMAT="\033[${INSTALLED_COLOR}%15s\033[0m" else FORMAT='%15s *' fi @@ -1498,7 +1626,7 @@ nvm_print_versions() { LTS="${LTS##Latest }" LTS_LENGTH="${#LTS}" if [ "${NVM_HAS_COLORS-}" = '1' ]; then - LTS_FORMAT=" \\033[1;32m%${LTS_LENGTH}s\\033[0m" + LTS_FORMAT=" \\033[${NVM_LATEST_LTS_COLOR}%${LTS_LENGTH}s\\033[0m" else LTS_FORMAT=" %${LTS_LENGTH}s" fi @@ -1506,7 +1634,7 @@ nvm_print_versions() { *) LTS_LENGTH="${#LTS}" if [ "${NVM_HAS_COLORS-}" = '1' ]; then - LTS_FORMAT=" \\033[0;37m%${LTS_LENGTH}s\\033[0m" + LTS_FORMAT=" \\033[${NVM_OLD_LTS_COLOR}%${LTS_LENGTH}s\\033[0m" else LTS_FORMAT=" %${LTS_LENGTH}s" fi @@ -2430,6 +2558,46 @@ nvm() { do case $i in '-h'|'help'|'--help') + NVM_NO_COLORS="" + for j in "$@"; do + if [ "${j}" = '--no-colors' ]; then + NVM_NO_COLORS="${j}" + break + fi + done + + local INITIAL_COLOR_INFO + local RED_INFO + local GREEN_INFO + local BLUE_INFO + local CYAN_INFO + local MAGENTA_INFO + local YELLOW_INFO + local BLACK_INFO + local GREY_WHITE_INFO + + if [ -z "${NVM_NO_COLORS-}" ] && nvm_has_colors; then + INITIAL_COLOR_INFO='\033[0;32m g\033[0m \033[0;34m b\033[0m \033[0;33m y\033[0m \033[0;31m r\033[0m \033[0;37m e\033[0m' + RED_INFO='\033[0;31m r\033[0m/\033[1;31mR\033[0m = \033[0;31mred\033[0m / \033[1;31mbold red\033[0m' + GREEN_INFO='\033[0;32m g\033[0m/\033[1;32mG\033[0m = \033[0;32mgreen\033[0m / \033[1;32mbold green\033[0m' + BLUE_INFO='\033[0;34m b\033[0m/\033[1;34mB\033[0m = \033[0;34mblue\033[0m / \033[1;34mbold blue\033[0m' + CYAN_INFO='\033[0;36m c\033[0m/\033[1;36mC\033[0m = \033[0;36mcyan\033[0m / \033[1;36mbold cyan\033[0m' + MAGENTA_INFO='\033[0;35m m\033[0m/\033[1;35mM\033[0m = \033[0;35mmagenta\033[0m / \033[1;35mbold magenta\033[0m' + YELLOW_INFO='\033[0;33m y\033[0m/\033[1;33mY\033[0m = \033[0;33myellow\033[0m / \033[1;33mbold yellow\033[0m' + BLACK_INFO='\033[0;30m k\033[0m/\033[1;30mK\033[0m = \033[0;30mblack\033[0m / \033[1;30mbold black\033[0m' + GREY_WHITE_INFO='\033[0;37m e\033[0m/\033[1;37mW\033[0m = \033[0;37mlight grey\033[0m / \033[1;37mwhite\033[0m' + else + INITIAL_COLOR_INFO='gbYre' + RED_INFO='r/R = red / bold red' + GREEN_INFO='g/G = green / bold green' + BLUE_INFO='b/B = blue / bold blue' + CYAN_INFO='c/C = cyan / bold cyan' + MAGENTA_INFO='m/M = magenta / bold magenta' + YELLOW_INFO='y/Y = yellow / bold yellow' + BLACK_INFO='k/K = black / bold black' + GREY_WHITE_INFO='e/W = light grey / white' + fi + local NVM_IOJS_PREFIX NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" local NVM_NODE_PREFIX @@ -2447,6 +2615,7 @@ nvm() { nvm_echo nvm_echo 'Usage:' nvm_echo ' nvm --help Show this message' + nvm_echo ' --no-colors Suppress colored output' nvm_echo ' nvm --version Print out the installed version of nvm' nvm_echo ' nvm install [] Download and install a . Uses .nvmrc if available and version is omitted.' nvm_echo ' The following optional arguments, if provided, must appear directly after `nvm install`:' @@ -2502,6 +2671,18 @@ nvm() { nvm_echo ' --silent Silences stdout/stderr output when a version is omitted' nvm_echo ' nvm cache dir Display path to the cache directory for nvm' nvm_echo ' nvm cache clear Empty cache directory for nvm' + nvm_echo ' nvm set-colors [] Set five text colors using format "yMeBg". Available when supported.' + nvm_echo ' Initial colors are:' + nvm_echo_with_colors " ${INITIAL_COLOR_INFO}" + nvm_echo ' Color codes:' + nvm_echo_with_colors " ${RED_INFO}" + nvm_echo_with_colors " ${GREEN_INFO}" + nvm_echo_with_colors " ${BLUE_INFO}" + nvm_echo_with_colors " ${CYAN_INFO}" + nvm_echo_with_colors " ${MAGENTA_INFO}" + nvm_echo_with_colors " ${YELLOW_INFO}" + nvm_echo_with_colors " ${BLACK_INFO}" + nvm_echo_with_colors " ${GREY_WHITE_INFO}" nvm_echo nvm_echo 'Example:' nvm_echo ' nvm install 8.0.0 Install a specific version number' @@ -2516,6 +2697,8 @@ nvm() { nvm_echo ' nvm install --lts Install the latest LTS version' nvm_echo ' nvm use --lts Use the latest LTS version' nvm_echo + nvm_echo ' nvm set-colors cgYmW Set text colors to cyan, green, bold yellow, magenta, and white' + nvm_echo nvm_echo 'Note:' nvm_echo ' to remove, delete, or uninstall nvm - just remove the `$NVM_DIR` folder (usually `~/.nvm`)' nvm_echo @@ -3376,6 +3559,7 @@ nvm() { local PATTERN local NVM_NO_COLORS local NVM_NO_ALIAS + while [ $# -gt 0 ]; do case "${1}" in --) ;; @@ -3413,6 +3597,7 @@ nvm() { local NVM_LTS local PATTERN local NVM_NO_COLORS + while [ $# -gt 0 ]; do case "${1-}" in --) ;; @@ -3523,6 +3708,7 @@ nvm() { local NVM_NO_COLORS ALIAS='--' TARGET='--' + while [ $# -gt 0 ]; do case "${1-}" in --) ;; @@ -3754,11 +3940,25 @@ nvm() { nvm_node_version_has_solaris_binary nvm_iojs_version_has_solaris_binary \ nvm_curl_libz_support nvm_command_info nvm_is_zsh nvm_stdout_is_terminal \ nvm_npmrc_bad_news_bears \ + nvm_get_colors nvm_set_colors nvm_print_color_code nvm_format_help_message_colors \ + nvm_echo_with_colors nvm_err_with_colors \ >/dev/null 2>&1 unset NVM_RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_IOJS_ORG_MIRROR NVM_DIR \ NVM_CD_FLAGS NVM_BIN NVM_INC NVM_MAKE_JOBS \ + NVM_COLORS INSTALLED_COLOR SYSTEM_COLOR \ + CURRENT_COLOR NOT_INSTALLED_COLOR DEFAULT_COLOR LTS_COLOR \ >/dev/null 2>&1 ;; + "set-colors") + local EXIT_CODE + nvm_set_colors "${1-}" + EXIT_CODE=$? + if [ "$EXIT_CODE" -eq 17 ]; then + >&2 nvm --help + nvm_echo + nvm_err_with_colors "\033[1;37mPlease pass in five \033[1;31mvalid color codes\033[1;37m. Choose from: rRgGbBcCyYmMkKeW\033[0m" + fi + ;; *) >&2 nvm --help return 127 diff --git a/test/fast/Aliases/nvm_list_aliases calls nvm_get_colors b/test/fast/Aliases/nvm_list_aliases calls nvm_get_colors new file mode 100755 index 0000000..d037cac --- /dev/null +++ b/test/fast/Aliases/nvm_list_aliases calls nvm_get_colors @@ -0,0 +1,25 @@ +#!/bin/sh + +\. ../../../nvm.sh + +die () { + echo "nvm_list_aliases did not call nvm_get_colors. Expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" + exit 1 +} + +set -e + +nvm_get_colors(){ + echo "0;95m" +} + +nvm_alias_path() { + nvm_echo "../../../alias" +} + +OUTPUT=$(command printf %b $(nvm_list_aliases test-stable-1) | awk '{ print substr($0, 1, 19); }') + +EXPECTED_OUTPUT=$(command printf %b "\033[0;95mtest-stable-1" | awk '{ print substr($0, 1, 19); }') +echo "\033[0m" + +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die diff --git a/test/fast/Aliases/nvm_print_alias_path calls nvm_get_colors b/test/fast/Aliases/nvm_print_alias_path calls nvm_get_colors new file mode 100755 index 0000000..2c49b2a --- /dev/null +++ b/test/fast/Aliases/nvm_print_alias_path calls nvm_get_colors @@ -0,0 +1,28 @@ +#!/bin/sh + +\. ../../../nvm.sh + +die () { + # echo "$@" ; + echo "Expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" + exit 1 +} + +set -e + +nvm_get_colors(){ + echo "0;95m" +} + +# nvm_print_alias_path call nvm_print_formatted_alias which calls nvm_get-colors +# the output of nvm_print_alias_path uses the color code returned by nvm_get_colors (redefined above) +NVM_ALIAS_DIR='../../../alias' + +OUTPUT=$(command printf %b $(nvm_print_alias_path "$NVM_ALIAS_DIR" "$NVM_ALIAS_DIR"/test-stable-1) | awk '{ print substr($0, 1, 24); }') + +EXPECTED_OUTPUT=$(command printf %b "\033[0;95mtest-stable-1\033[0m") + +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die + + +set +e diff --git a/test/fast/Aliases/nvm_print_formatted_alias calls nvm_get_colors b/test/fast/Aliases/nvm_print_formatted_alias calls nvm_get_colors new file mode 100755 index 0000000..7f82769 --- /dev/null +++ b/test/fast/Aliases/nvm_print_formatted_alias calls nvm_get_colors @@ -0,0 +1,21 @@ +#!/bin/sh + +\. ../../../nvm.sh + +die () { + echo "Expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" + exit 1 +} + +set -e +# # # expecting in red and two grays: +OUTPUT=$(echo $(nvm_print_formatted_alias fakealias fakedest) | awk '{ print substr($0, 1, 21); }') +EXPECTED_OUTPUT="$(command printf %b "\033[0;31mfakealias\033[0m ")" +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die + +# expecting in bold yellow and two grays: +nvm set-colors bbbYb +OUTPUT=$(echo $(nvm_print_formatted_alias fakealias fakedest) | awk '{ print substr($0, 1, 21); }') +EXPECTED_OUTPUT="$(command printf %b "\033[1;33mfakealias\033[0m ")" + +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die diff --git a/test/fast/Set Colors/nvm_echo_with_colors b/test/fast/Set Colors/nvm_echo_with_colors new file mode 100755 index 0000000..daace15 --- /dev/null +++ b/test/fast/Set Colors/nvm_echo_with_colors @@ -0,0 +1,21 @@ +#!/bin/sh + +set -ex + +die () { + echo "Expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" + exit 1 +} + +cleanup() { + echo "Tested nvm_echo_with_colors" +} + +\. ../../../nvm.sh + +OUTPUT="$(nvm_echo_with_colors "\033[0;36mCyan-colored text")" +EXPECTED_OUTPUT=$(printf "\033[0;36mCyan-colored text") + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die + +cleanup diff --git a/test/fast/Set Colors/nvm_err_with_colors b/test/fast/Set Colors/nvm_err_with_colors new file mode 100755 index 0000000..c0b4812 --- /dev/null +++ b/test/fast/Set Colors/nvm_err_with_colors @@ -0,0 +1,19 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; cleanup ; exit 1; } + +cleanup() { + echo "Tested nvm_err_with_colors" +} + +\. ../../../nvm.sh + +set +ex +OUTPUT="$(nvm_err_with_colors "\033[0;35mMagenta-colored text" 2>&1)" +set -ex +EXPECTED_OUTPUT=$(printf "\033[0;35mMagenta-colored text") +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die + +cleanup diff --git a/test/fast/Set Colors/nvm_print_default_alias calls nvm_get_colors b/test/fast/Set Colors/nvm_print_default_alias calls nvm_get_colors new file mode 100755 index 0000000..64a2a08 --- /dev/null +++ b/test/fast/Set Colors/nvm_print_default_alias calls nvm_get_colors @@ -0,0 +1,24 @@ +#!/bin/sh + +\. ../../../nvm.sh + +die () { + # echo "$@" ; + echo "Expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" + exit 1 +} + +set -e + +nvm_get_colors(){ + echo "0;95m" +} + +# nvm_print_default_alias call nvm_print_formatted_alias which calls nvm_get-colors +# the output of nvm_print_default_alias uses the color code returned by nvm_get_colors (redefined above) +OUTPUT=$(command printf %b $(nvm_print_default_alias node ./alias v14.7.0) | awk '{ print substr($0, 1, 11); }') +EXPECTED_OUTPUT=$(command printf %b "\033[0;95mnode") + +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die + +set +e diff --git a/test/fast/Set Colors/nvm_print_versions calls nvm_get_colors b/test/fast/Set Colors/nvm_print_versions calls nvm_get_colors new file mode 100755 index 0000000..55e2334 --- /dev/null +++ b/test/fast/Set Colors/nvm_print_versions calls nvm_get_colors @@ -0,0 +1,52 @@ +#!/bin/sh + +\. ../../../nvm.sh + +set -e + +die () { + # echo "$@" ; + echo "Expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" + exit 1 +} +cleanup() { + if [ -n TEMP_NVM_COLORS ]; then + export NVM_COLORS=TEMP_NVM_COLORS + fi + unset TEMP_NVM_COLORS +} + +if [ -n ${NVM_COLORS} ]; then + export TEMP_NVM_COLORS=NVM_COLORS + unset NVM_COLORS +fi + +# default system color +nvm use system +OUTPUT=$(nvm_print_versions system) +FORMAT="\033[0;32m-> %12s\033[0m" +VERSION='system' +EXPECTED_OUTPUT=$(command printf -- "${FORMAT}\\n" "${VERSION}") + +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die + +nvm_ls_current() { echo "current";} + +# default current color +OUTPUT=$(nvm_print_versions current) +FORMAT="\033[0;32m-> %12s\033[0m" +VERSION="current" +EXPECTED_OUTPUT=$(command printf -- "${FORMAT}\\n" "${VERSION}") + +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die + +# custom current color +nvm set-colors YCMGR +OUTPUT=$(nvm_print_versions current) +FORMAT="\033[1;35m-> %12s\033[0m" +VERSION="current" +EXPECTED_OUTPUT=$(command printf -- "${FORMAT}\\n" "${VERSION}") + +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die + +cleanup diff --git a/test/fast/Unit tests/nvm ls-remote b/test/fast/Unit tests/nvm ls-remote index 074cfe2..7f54b4e 100755 --- a/test/fast/Unit tests/nvm ls-remote +++ b/test/fast/Unit tests/nvm ls-remote @@ -6,9 +6,17 @@ die () { echo "$@" ; cleanup ; exit 1; } cleanup() { unset -f nvm_download nvm_ls_remote nvm_ls_remote_iojs + if [ -n TEMP_NVM_COLORS ]; then + export NVM_COLORS=TEMP_NVM_COLORS + fi + unset TEMP_NVM_COLORS } \. ../../../nvm.sh +if [ -n ${NVM_COLORS} ]; then + export TEMP_NVM_COLORS=NVM_COLORS + unset NVM_COLORS +fi nvm deactivate 2>/dev/null || die 'unable to deactivate' diff --git a/test/fast/Unit tests/nvm set_colors b/test/fast/Unit tests/nvm set_colors new file mode 100755 index 0000000..85496eb --- /dev/null +++ b/test/fast/Unit tests/nvm set_colors @@ -0,0 +1,52 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; cleanup ; exit 1; } + +cleanup() { + unset NVM_COLORS + unset -f nvm_has_colors + if [ -n TEMP_NVM_COLORS ]; then + export NVM_COLORS=TEMP_NVM_COLORS + fi + unset TEMP_NVM_COLORS +} + +\. ../../../nvm.sh +# NVM_COLORS is not set +if [ -n ${NVM_COLORS} ]; then + export TEMP_NVM_COLORS=NVM_COLORS + unset NVM_COLORS +fi + +# test valid setting colors/ +nvm set-colors rgbyc +OUTPUT="${NVM_COLORS}" +EXPECTED_OUTPUT="rgbyc" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "NVM_SET_COLORS failed with valid input; got >${OUTPUT}< expected >${EXPECTED_OUTPUT}<" + +# test invalid 4 colors +set +ex +OUTPUT="$(echo $(nvm set-colors rgby 2>&1) | awk '{ print substr($0, length($0)-92, 93); }')" +EXPECTED_OUTPUT="$(command printf %b "\033[1;37mPlease pass in five \033[1;31mvalid color codes\033[1;37m. Choose from: rRgGbBcCyYmMkKeW\033[0m")" +set -ex + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "NVM_SET_COLORS did not fail with invalid input; got >${OUTPUT}, < expected >${EXPECTED_OUTPUT}<" + +# test invalid color codes +set +ex +OUTPUT="$(echo $(nvm set-colors p3gq7 2>&1) | awk '{ print substr($0, length($0)-92, 93); }')" +EXPECTED_OUTPUT="$(command printf %b "\033[1;37mPlease pass in five \033[1;31mvalid color codes\033[1;37m. Choose from: rRgGbBcCyYmMkKeW\033[0m")" +set -ex +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "NVM_SET_COLORS did not fail with invalid input; got >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<" + +#test system does not support at least 8 colors +nvm_has_colors() { return 1; } +set +ex +OUTPUT="$(echo $(nvm set-colors mcyGb 2>&1) | awk '{ print substr($0, length($0)-76, 77); }')" +set -ex +EXPECTED_OUTPUT="WARNING: Colors may not display because they are not supported in this shell." +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "NVM_SET_COLORS did not recognize lack of color support; got >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<" + +cleanup diff --git a/test/fast/Unit tests/nvm_get_colors b/test/fast/Unit tests/nvm_get_colors new file mode 100755 index 0000000..df35da5 --- /dev/null +++ b/test/fast/Unit tests/nvm_get_colors @@ -0,0 +1,79 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; cleanup ; exit 1; } + +cleanup() { + unset NVM_COLORS + if [ -n TEMP_NVM_COLORS ]; then + export NVM_COLORS=TEMP_NVM_COLORS + fi + unset TEMP_NVM_COLORS +} + +\. ../../../nvm.sh + +# NVM_COLORS is not set +if [ -n ${NVM_COLORS} ]; then + export TEMP_NVM_COLORS=NVM_COLORS + unset NVM_COLORS +fi +OUTPUT=$(nvm_get_colors 1) +EXPECTED_OUTPUT='0;34m' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_get_colors failed to return default color (INSTALLED_COLOR); got >${OUTPUT}< expected >${EXPECTED_OUTPUT}<" + +OUTPUT=$(nvm_get_colors 2) +EXPECTED_OUTPUT='0;33m' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_get_colors failed to return default color (SYSTEM_COLOR); got >${OUTPUT}< expected >${EXPECTED_OUTPUT}<" + +OUTPUT=$(nvm_get_colors 3) +EXPECTED_OUTPUT='0;32m' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_get_colors failed to return default color (CURRENT_COLOR); got >${OUTPUT}< expected >${EXPECTED_OUTPUT}<" + +OUTPUT=$(nvm_get_colors 4) +EXPECTED_OUTPUT='0;31m' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_get_colors failed to return default color (NOT_INSTALLED_COLOR); got >${OUTPUT}< expected >${EXPECTED_OUTPUT}<" + +OUTPUT=$(nvm_get_colors 5) +EXPECTED_OUTPUT='0;37m' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_get_colors failed to return default color (DEFAULT_COLOR); got >${OUTPUT}< expected >${EXPECTED_OUTPUT}<" + +OUTPUT=$(nvm_get_colors 6) +EXPECTED_OUTPUT='1;33m' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_get_colors failed to return default color (LTS_COLOR); got >${OUTPUT}< expected >${EXPECTED_OUTPUT}<" + +# bad parameter +set +ex # needed for stderr +OUTPUT=$(nvm_get_colors bad 2>&1) +set -ex +EXPECTED_OUTPUT="Invalid color index, bad" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_get_colors did not have an error with bad output; got >${OUTPUT}< expected >${EXPECTED_OUTPUT}<" + +# NVM_COLORS is set +nvm set-colors rgbyc +OUTPUT=$(nvm_get_colors 1) +EXPECTED_OUTPUT='0;31m' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_get_colors failed to return default color (INSTALLED_COLOR); got >${OUTPUT}< expected >${EXPECTED_OUTPUT}<" + +OUTPUT=$(nvm_get_colors 2) +EXPECTED_OUTPUT='0;32m' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_get_colors failed to return default color (SYSTEM_COLOR); got >${OUTPUT}< expected >${EXPECTED_OUTPUT}<" + +OUTPUT=$(nvm_get_colors 3) +EXPECTED_OUTPUT='0;34m' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_get_colors failed to return default color (CURRENT_COLOR); got >${OUTPUT}< expected >${EXPECTED_OUTPUT}<" + +OUTPUT=$(nvm_get_colors 4) +EXPECTED_OUTPUT='0;33m' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_get_colors failed to return default color (NOT_INSTALLED_COLOR); got >${OUTPUT}< expected >${EXPECTED_OUTPUT}<" + +OUTPUT=$(nvm_get_colors 5) +EXPECTED_OUTPUT='0;36m' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_get_colors failed to return default color (DEFAULT_COLOR); got >${OUTPUT}< expected >${EXPECTED_OUTPUT}<" + +OUTPUT=$(nvm_get_colors 6) +EXPECTED_OUTPUT='1;32m' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_get_colors failed to return default color (LTS_COLOR); got >${OUTPUT}< expected >${EXPECTED_OUTPUT}<" + +cleanup diff --git a/test/fast/Unit tests/nvm_print_color_code b/test/fast/Unit tests/nvm_print_color_code new file mode 100755 index 0000000..906714d --- /dev/null +++ b/test/fast/Unit tests/nvm_print_color_code @@ -0,0 +1,20 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +# Testing valid input +OUTPUT=$(nvm_print_color_code m) +EXPECTED_OUTPUT='0;35m' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_print_color_code returned wrong code; got $(echo ">$OUTPUT<") expected $(echo ">$EXPECTED_OUTPUT<")" + +# Testing invalid input +set +x # needed for stderr +OUTPUT="$(nvm_print_color_code q 2>&1)" ||: +set -x +echo "OUTPUT WAS SET TO: $OUTPUT" +EXPECTED_OUTPUT="Invalid color code" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_print_color_code did not recognize the invalid input; got $(echo ">$OUTPUT<") expected $(echo ">$EXPECTED_OUTPUT<")" From 22902f04a316e8adebd2ce93b6e45839907f63d4 Mon Sep 17 00:00:00 2001 From: Alex Aubuchon Date: Fri, 20 Nov 2020 14:28:15 -0500 Subject: [PATCH 1313/1426] [actions] Add release test workflow --- .github/workflows/release.yml | 24 ++++++++++++++++++++++++ .travis.yml | 16 +++++++--------- 2 files changed, 31 insertions(+), 9 deletions(-) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..e973399 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,24 @@ +name: "Tests: release process" + +on: [pull_request, push] + +jobs: + release: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2-beta + with: + node-version: "14" + - run: npm install + - name: Configure git + run: | + git config user.name github-actions + git config user.email github-actions@github.com + git fetch --unshallow --tags || git fetch --tags + - name: Attempt `make release` process + run: echo proceed | make TAG=99.99.99 release + env: + GIT_EDITOR: "sed -i '1 s/^/99.99.99 make release test/'" + - name: Ensure tag is created + run: git tag | grep v99.99.99 diff --git a/.travis.yml b/.travis.yml index ef7f72d..247770c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,7 +22,6 @@ install: - if [ -z "${SHELLCHECK-}" ]; then nvm install node && npm install && npm prune && npm ls urchin doctoc eclint dockerfile_lint; fi - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' script: - - if [ -n "${MAKE_RELEASE-}" ]; then export GIT_EDITOR="sed -i '1 s/^/99.99.99 make release test/'" && git fetch --unshallow --tags && echo proceed | make TAG=99.99.99 release ; fi - if [ -n "${DOCTOCCHECK-}" ]; then cp README.md README.md.orig && npm run doctoc && diff -q README.md README.md.orig ; fi - if [ -n "${ECLINT-}" ]; then npm run eclint ; fi - if [ -n "${DOCKERFILE_LINT-}" ]; then npm run dockerfile_lint ; fi @@ -38,7 +37,6 @@ env: - PATH="/usr/lib/ccache/:$PATH" - NVM_DIR="${TRAVIS_BUILD_DIR}" matrix: - - MAKE_RELEASE=true - DOCTOCCHECK=true - ECLINT=true - DOCKERFILE_LINT=true @@ -47,17 +45,17 @@ env: - SHELL=dash TEST_SUITE=fast - SHELL=bash TEST_SUITE=fast - SHELL=zsh TEST_SUITE=fast - # - SHELL=ksh TEST_SUITE=fast + # - SHELL=ksh TEST_SUITE=fast - SHELL=sh TEST_SUITE=sourcing - SHELL=dash TEST_SUITE=sourcing - SHELL=bash TEST_SUITE=sourcing - SHELL=zsh TEST_SUITE=sourcing - # - SHELL=ksh TEST_SUITE=sourcing + # - SHELL=ksh TEST_SUITE=sourcing - SHELL=sh TEST_SUITE=slow - SHELL=dash TEST_SUITE=slow - SHELL=bash TEST_SUITE=slow - SHELL=zsh TEST_SUITE=slow - # - SHELL=ksh TEST_SUITE=slow + # - SHELL=ksh TEST_SUITE=slow - SHELL=sh TEST_SUITE=installation_node - SHELL=sh TEST_SUITE=installation_node WITHOUT_CURL=1 - SHELL=dash TEST_SUITE=installation_node @@ -66,8 +64,8 @@ env: - SHELL=bash TEST_SUITE=installation_node WITHOUT_CURL=1 - SHELL=zsh TEST_SUITE=installation_node - SHELL=zsh TEST_SUITE=installation_node WITHOUT_CURL=1 - # - SHELL=ksh TEST_SUITE=installation_node - # - SHELL=ksh TEST_SUITE=installation_node WITHOUT_CURL=1 + # - SHELL=ksh TEST_SUITE=installation_node + # - SHELL=ksh TEST_SUITE=installation_node WITHOUT_CURL=1 - SHELL=sh TEST_SUITE=installation_iojs - SHELL=sh TEST_SUITE=installation_iojs WITHOUT_CURL=1 - SHELL=dash TEST_SUITE=installation_iojs @@ -76,8 +74,8 @@ env: - SHELL=bash TEST_SUITE=installation_iojs WITHOUT_CURL=1 - SHELL=zsh TEST_SUITE=installation_iojs - SHELL=zsh TEST_SUITE=installation_iojs WITHOUT_CURL=1 - # - SHELL=ksh TEST_SUITE=installation_iojs - # - SHELL=ksh TEST_SUITE=installation_iojs WITHOUT_CURL=1 + # - SHELL=ksh TEST_SUITE=installation_iojs + # - SHELL=ksh TEST_SUITE=installation_iojs WITHOUT_CURL=1 - NODE=10 TEST="nvm install-latest-npm" - NODE=9 TEST="nvm install-latest-npm" - NODE=8 TEST="nvm install-latest-npm" From 80a4e06af9ac7e72efdfdce0f8e49fc47c6bd805 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 7 Nov 2020 00:09:08 -0800 Subject: [PATCH 1314/1426] [Tests] partially migrate to Github Actions --- .github/workflows/latest-npm.yml | 50 ++++++++++++++++++++++++++++++++ .github/workflows/lint.yml | 38 ++++++++++++++++++++++++ .github/workflows/release.yml | 2 +- .github/workflows/shellcheck.yml | 2 +- .travis.yml | 23 ++------------- 5 files changed, 92 insertions(+), 23 deletions(-) create mode 100644 .github/workflows/latest-npm.yml create mode 100644 .github/workflows/lint.yml diff --git a/.github/workflows/latest-npm.yml b/.github/workflows/latest-npm.yml new file mode 100644 index 0000000..54b260a --- /dev/null +++ b/.github/workflows/latest-npm.yml @@ -0,0 +1,50 @@ +name: 'Tests: `nvm install-latest-npm`' + +on: [pull_request, push] + +jobs: + nodes: + name: 'nvm install-latest-npm' + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: + - "11" + - "10" + - "9" + - "9.2" + - "9.1" + - "9.0" + - "8" + - "7" + - "6" + - "6.1" + - "5" + - "5.9" + - "4" + - "4.6" + - "4.5" + - "4.4" + - "3" + - "2" + - "1" + - "0.12" + - "0.10" + + steps: + - uses: actions/checkout@v2 + - uses: ljharb/actions/node/run@main + name: 'nvm install-latest-npm' + with: + node-version: ${{ matrix.node-version }} + skip-ls-check: true + skip-install: true + shell-command: 'npm --version' + + node: + name: 'nvm install-latest-npm' + needs: [nodes] + runs-on: ubuntu-latest + steps: + - run: 'echo tests completed' diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..97ed062 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,38 @@ +name: 'Tests: linting' + +on: [pull_request, push] + +jobs: + eclint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: ljharb/actions/node/run@main + name: 'npm install && npm run eclint' + with: + node-version: 'lts/*' + command: 'eclint' + + dockerfile_lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: ljharb/actions/node/run@main + name: 'npm install && npm run dockerfile_lint' + with: + node-version: 'lts/*' + command: 'dockerfile_lint' + + doctoc: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: ljharb/actions/node/run@main + name: 'npm install && npm run dockerfile_lint' + with: + node-version: 'lts/*' + shell-command: | + set -e + cp README.md README.md.orig + npm run doctoc + diff -q README.md README.md.orig diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e973399..5219d49 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,4 +1,4 @@ -name: "Tests: release process" +name: 'Tests: release process' on: [pull_request, push] diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml index 1039d38..f56843d 100644 --- a/.github/workflows/shellcheck.yml +++ b/.github/workflows/shellcheck.yml @@ -1,4 +1,4 @@ -name: "Tests: shellcheck" +name: 'Tests: shellcheck' on: [pull_request, push] diff --git a/.travis.yml b/.travis.yml index 247770c..5b20b0b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,13 +22,9 @@ install: - if [ -z "${SHELLCHECK-}" ]; then nvm install node && npm install && npm prune && npm ls urchin doctoc eclint dockerfile_lint; fi - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' script: - - if [ -n "${DOCTOCCHECK-}" ]; then cp README.md README.md.orig && npm run doctoc && diff -q README.md README.md.orig ; fi - - if [ -n "${ECLINT-}" ]; then npm run eclint ; fi - - if [ -n "${DOCKERFILE_LINT-}" ]; then npm run dockerfile_lint ; fi - if [ -n "${SHELL-}" ] && [ -n "${TEST_SUITE}" ]; then if [ "${TEST_SUITE}" = 'installation_iojs' ]; then travis_retry make TEST_SUITE=$TEST_SUITE URCHIN="$(npm bin)/urchin" test-$SHELL ; else make TEST_SUITE=$TEST_SUITE URCHIN="$(npm bin)/urchin" test-$SHELL; fi; fi before_cache: - if [ -n "$WITHOUT_CURL" ]; then sudo apt-get install curl -y ; fi - - if [ -n "${NODE-}" ]; then . nvm.sh && set -ex && nvm install --latest-npm "${NODE}" && npm --version; fi env: global: - CXX=g++ @@ -37,9 +33,6 @@ env: - PATH="/usr/lib/ccache/:$PATH" - NVM_DIR="${TRAVIS_BUILD_DIR}" matrix: - - DOCTOCCHECK=true - - ECLINT=true - - DOCKERFILE_LINT=true - SHELL=bash TEST_SUITE=install_script - SHELL=sh TEST_SUITE=fast - SHELL=dash TEST_SUITE=fast @@ -74,17 +67,5 @@ env: - SHELL=bash TEST_SUITE=installation_iojs WITHOUT_CURL=1 - SHELL=zsh TEST_SUITE=installation_iojs - SHELL=zsh TEST_SUITE=installation_iojs WITHOUT_CURL=1 - # - SHELL=ksh TEST_SUITE=installation_iojs - # - SHELL=ksh TEST_SUITE=installation_iojs WITHOUT_CURL=1 - - NODE=10 TEST="nvm install-latest-npm" - - NODE=9 TEST="nvm install-latest-npm" - - NODE=8 TEST="nvm install-latest-npm" - - NODE=7 TEST="nvm install-latest-npm" - - NODE=6 TEST="nvm install-latest-npm" - - NODE=5 TEST="nvm install-latest-npm" - - NODE=5.9 TEST="nvm install-latest-npm" - - NODE=4 TEST="nvm install-latest-npm" - - NODE=4.6 TEST="nvm install-latest-npm" - - NODE=4.5 TEST="nvm install-latest-npm" - - NODE=4.4 TEST="nvm install-latest-npm" - - NODE=2 TEST="nvm install-latest-npm" + # - SHELL=ksh TEST_SUITE=installation_iojs + # - SHELL=ksh TEST_SUITE=installation_iojs WITHOUT_CURL=1 From 510b2fd44c79049e16c5ff06988de62526504d0b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 21 Nov 2020 18:08:22 -0800 Subject: [PATCH 1315/1426] [Tests] fix eclint errors --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5b20b0b..a04fac1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -67,5 +67,5 @@ env: - SHELL=bash TEST_SUITE=installation_iojs WITHOUT_CURL=1 - SHELL=zsh TEST_SUITE=installation_iojs - SHELL=zsh TEST_SUITE=installation_iojs WITHOUT_CURL=1 - # - SHELL=ksh TEST_SUITE=installation_iojs - # - SHELL=ksh TEST_SUITE=installation_iojs WITHOUT_CURL=1 + # - SHELL=ksh TEST_SUITE=installation_iojs + # - SHELL=ksh TEST_SUITE=installation_iojs WITHOUT_CURL=1 From 661a702cdd623913e5c77ea7d4e270809b82e2ee Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 24 Nov 2020 21:16:43 -0800 Subject: [PATCH 1316/1426] v0.37.1 --- README.md | 16 ++++++++-------- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index ef8a3ff..e1788eb 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Node Version Manager [![Build Status](https://travis-ci.org/nvm-sh/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.37.0-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://travis-ci.org/nvm-sh/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.37.1-yellow.svg)][4] [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/684/badge)](https://bestpractices.coreinfrastructure.org/projects/684) @@ -61,10 +61,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.37.0/install.sh | bash +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.1/install.sh | bash ``` ```sh -wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.0/install.sh | bash +wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.1/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`). @@ -117,7 +117,7 @@ You can use a task: ```yaml - name: nvm shell: > - curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.0/install.sh | bash + curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.1/install.sh | bash args: creates: "{{ ansible_env.HOME }}/.nvm/nvm.sh" ``` @@ -176,7 +176,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.37.0` +1. `cd ~/.nvm` and check out the latest version with `git checkout v0.37.1` 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: @@ -760,7 +760,7 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh ```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.37.0/install.sh | bash +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.1/install.sh | bash ``` The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. @@ -857,8 +857,8 @@ 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.37.0/install.sh +[2]: https://github.com/nvm-sh/nvm/blob/v0.37.1/install.sh [3]: https://travis-ci.org/nvm-sh/nvm -[4]: https://github.com/nvm-sh/nvm/releases/tag/v0.37.0 +[4]: https://github.com/nvm-sh/nvm/releases/tag/v0.37.1 [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index dd0b11c..3ca5331 100755 --- a/install.sh +++ b/install.sh @@ -19,7 +19,7 @@ nvm_install_dir() { } nvm_latest_version() { - echo "v0.37.0" + echo "v0.37.1" } nvm_profile_is_bash_or_zsh() { diff --git a/nvm.sh b/nvm.sh index e15c9fd..ddb3a4b 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3898,7 +3898,7 @@ nvm() { NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; "--version" | "-v") - nvm_echo '0.37.0' + nvm_echo '0.37.1' ;; "unload") nvm deactivate >/dev/null 2>&1 diff --git a/package.json b/package.json index 14ec86f..1e81ed8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.37.0", + "version": "0.37.1", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From 3b57dfec8d0aa6bd702b04c5d39df7612fcf45ec Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 27 Nov 2020 21:28:12 -0800 Subject: [PATCH 1317/1426] Revert "[Fix] `nvm_die_on_prefix`: only grep lines starting with env var name" (#2347) This reverts commit 21c0c05130d9bdd275f29ccb158fa7103493903a. Fixes #2360. Fixes #2364. Fixes #2366. --- nvm.sh | 2 +- test/fast/Unit tests/nvm_die_on_prefix | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/nvm.sh b/nvm.sh index ddb3a4b..0721219 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2352,7 +2352,7 @@ nvm_die_on_prefix() { # here, we avoid trying to replicate "which one wins" or testing the value; if any are defined, it errors # until none are left. local NVM_NPM_CONFIG_PREFIX_ENV - NVM_NPM_CONFIG_PREFIX_ENV="$(command env | nvm_grep -i ^NPM_CONFIG_PREFIX | command tail -1 | command awk -F '=' '{print $1}')" + NVM_NPM_CONFIG_PREFIX_ENV="$(command env | nvm_grep -i NPM_CONFIG_PREFIX | command tail -1 | command awk -F '=' '{print $1}')" if [ -n "${NVM_NPM_CONFIG_PREFIX_ENV-}" ]; then local NVM_CONFIG_VALUE eval "NVM_CONFIG_VALUE=\"\$${NVM_NPM_CONFIG_PREFIX_ENV}\"" diff --git a/test/fast/Unit tests/nvm_die_on_prefix b/test/fast/Unit tests/nvm_die_on_prefix index 54c15f7..f06a9bf 100755 --- a/test/fast/Unit tests/nvm_die_on_prefix +++ b/test/fast/Unit tests/nvm_die_on_prefix @@ -84,9 +84,6 @@ EXIT_CODE="$(export npm_CONFIG_PREFIX=bar ; nvm_die_on_prefix 0 foo "$(nvm_versi [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'npm_CONFIG_PREFIX=bar nvm_die_on_prefix 0 foo' did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" [ "_$EXIT_CODE" = "_4" ] || die "'npm_CONFIG_PREFIX=bar nvm_die_on_prefix 0 foo' did not exit with 4; got '$EXIT_CODE'" -OUTPUT="$(export FOO='NPM_CONFIG_PREFIX' ; nvm_die_on_prefix 0 foo "$(nvm_version_dir new)" 2>&1)" -[ -z "$OUTPUT" ] || die "'nvm_die_on_prefix' was not a noop; got '$OUTPUT'" - # npmrc tests ( cd "${TEST_DIR}" From 4b947ec92d0195756709e5b563569cf48aef1e09 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 27 Nov 2020 21:34:28 -0800 Subject: [PATCH 1318/1426] v0.37.2 --- README.md | 16 ++++++++-------- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index e1788eb..03b747c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Node Version Manager [![Build Status](https://travis-ci.org/nvm-sh/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.37.1-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://travis-ci.org/nvm-sh/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.37.2-yellow.svg)][4] [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/684/badge)](https://bestpractices.coreinfrastructure.org/projects/684) @@ -61,10 +61,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.37.1/install.sh | bash +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash ``` ```sh -wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.1/install.sh | bash +wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/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`). @@ -117,7 +117,7 @@ You can use a task: ```yaml - name: nvm shell: > - curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.1/install.sh | bash + curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash args: creates: "{{ ansible_env.HOME }}/.nvm/nvm.sh" ``` @@ -176,7 +176,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.37.1` +1. `cd ~/.nvm` and check out the latest version with `git checkout v0.37.2` 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: @@ -760,7 +760,7 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh ```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.37.1/install.sh | bash +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash ``` The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. @@ -857,8 +857,8 @@ 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.37.1/install.sh +[2]: https://github.com/nvm-sh/nvm/blob/v0.37.2/install.sh [3]: https://travis-ci.org/nvm-sh/nvm -[4]: https://github.com/nvm-sh/nvm/releases/tag/v0.37.1 +[4]: https://github.com/nvm-sh/nvm/releases/tag/v0.37.2 [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index 3ca5331..1d2b0a6 100755 --- a/install.sh +++ b/install.sh @@ -19,7 +19,7 @@ nvm_install_dir() { } nvm_latest_version() { - echo "v0.37.1" + echo "v0.37.2" } nvm_profile_is_bash_or_zsh() { diff --git a/nvm.sh b/nvm.sh index 0721219..5a27ae6 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3898,7 +3898,7 @@ nvm() { NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; "--version" | "-v") - nvm_echo '0.37.1' + nvm_echo '0.37.2' ;; "unload") nvm deactivate >/dev/null 2>&1 diff --git a/package.json b/package.json index 1e81ed8..1c683bb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.37.1", + "version": "0.37.2", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From ed321f1df0c3d0b4436c95f4083202fb8f0d4175 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 27 Nov 2020 21:44:33 -0800 Subject: [PATCH 1319/1426] [Tests] `release`: clobber local tags --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5219d49..c0db844 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -15,7 +15,7 @@ jobs: run: | git config user.name github-actions git config user.email github-actions@github.com - git fetch --unshallow --tags || git fetch --tags + git fetch --unshallow --tags -f || git fetch --tags -f - name: Attempt `make release` process run: echo proceed | make TAG=99.99.99 release env: From d4eba354b5da6195e4017c0baa3c5664d9db1d1d Mon Sep 17 00:00:00 2001 From: David Moles Date: Mon, 16 Nov 2020 16:49:02 -0800 Subject: [PATCH 1320/1426] [Fix] `install`: Ignore npm command under $NVM_DIR when checking for global modules --- install.sh | 4 +++- test/install_script/nvm_check_global_modules | 11 ++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 1d2b0a6..3c33289 100755 --- a/install.sh +++ b/install.sh @@ -262,7 +262,9 @@ nvm_detect_profile() { # Node, and warn them if so. # nvm_check_global_modules() { - command -v npm >/dev/null 2>&1 || return 0 + local NPM_COMMAND + NPM_COMMAND="$(command -v npm 2>/dev/null)" || return 0 + [ -n "${NVM_DIR}" ] && [ -z "${NPM_COMMAND%%$NVM_DIR/*}" ] && return 0 local NPM_VERSION NPM_VERSION="$(npm --version)" diff --git a/test/install_script/nvm_check_global_modules b/test/install_script/nvm_check_global_modules index 4183b97..01d6b01 100755 --- a/test/install_script/nvm_check_global_modules +++ b/test/install_script/nvm_check_global_modules @@ -6,9 +6,10 @@ cleanup () { rm -f npm PATH="$ORIGINAL_PATH" + NVM_DIR="$ORIGINAL_NVM_DIR" unset -f setup cleanup die - unset message ORIGINAL_PATH + unset message ORIGINAL_PATH ORIGINAL_NVM_DIR } die () { echo "$@" ; cleanup ; exit 1; } @@ -16,6 +17,10 @@ NVM_ENV=testing \. ../../install.sh setup () { ORIGINAL_PATH="$PATH" + ORIGINAL_NVM_DIR="$NVM_DIR" + + # Pretend we're not using NVM + unset NVM_DIR npm_config_prefix="$(pwd)" export npm_config_prefix @@ -29,6 +34,10 @@ npm install -g nop >/dev/null || die 'nvm_check_global_modules cannot be tested message=$(nvm_check_global_modules) [ ! -z "$message" ] || die "nvm_check_global_modules should have printed a notice when npm had global modules installed" +# Admit we're using NVM, just for this one test +message=$(NVM_DIR=$ORIGINAL_NVM_DIR nvm_check_global_modules) +[ -z "$message" ] || die "nvm_check_global_modules should not have printed a notice when npm is managed by nvm" + npm uninstall -g nop >/dev/null message=$(nvm_check_global_modules) [ -z "$message" ] || die "nvm_check_global_modules should not have printed a notice when npm had no global modules installed" From 86708833c911dd01597d43f2dc4570b35f1d9aaa Mon Sep 17 00:00:00 2001 From: Keith Lazuka Date: Tue, 8 Dec 2020 12:28:24 -0500 Subject: [PATCH 1321/1426] [Fix] Use local variable when looping over args When the `nvm` function is called by a script which itself uses a variable named `i`, `nvm` clobbers the caller's variable. This happens even if the caller has declared its variable as local. See note 1 on https://tldp.org/LDP/abs/html/localvar.html#FTN.AEN18568 --- nvm.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/nvm.sh b/nvm.sh index 5a27ae6..2e85e6a 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2554,6 +2554,7 @@ nvm() { return $? fi + local i for i in "$@" do case $i in From e48cb858a69e7a62f6b9230d0c9ce916339e12cd Mon Sep 17 00:00:00 2001 From: Rui Chen Date: Wed, 2 Oct 2019 15:05:36 -0400 Subject: [PATCH 1322/1426] [Tests] `.npm` is now cached by default --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index a04fac1..7e991ed 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,7 +11,6 @@ addons: cache: ccache: true directories: - - $HOME/.npm - $TRAVIS_BUILD_DIR/.cache - $TRAVIS_BUILD_DIR/node_modules before_install: From e76b2945c59727ed69edcdb5d2830af96c630b07 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 21 Dec 2020 23:03:30 -0800 Subject: [PATCH 1323/1426] [Fix] relax `$PREFIX` checking, to accomodate `npm exec` Fixes #2379. --- nvm.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 2e85e6a..4646dd9 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2338,7 +2338,8 @@ nvm_die_on_prefix() { # npm first looks at $PREFIX (case-sensitive) # we do not bother to test the value here; if this env var is set, unset it to continue. - if [ -n "${PREFIX-}" ]; then + # however, `npm exec` in npm v7.2+ sets $PREFIX; if set, inherit it + if [ -n "${PREFIX-}" ] && [ "$(nvm_version_path $(node -v))" != "${PREFIX}" ]; then nvm deactivate >/dev/null 2>&1 nvm_err "nvm is not compatible with the \"PREFIX\" environment variable: currently set to \"${PREFIX}\"" nvm_err 'Run `unset PREFIX` to unset it.' From 3c079f16c7f4721c13e97a35c4a7faf3cfcf2d8d Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 21 Dec 2020 23:47:25 -0800 Subject: [PATCH 1324/1426] [shellcheck] fix silly shellcheck complaint --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 4646dd9..2f59708 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2339,7 +2339,7 @@ nvm_die_on_prefix() { # npm first looks at $PREFIX (case-sensitive) # we do not bother to test the value here; if this env var is set, unset it to continue. # however, `npm exec` in npm v7.2+ sets $PREFIX; if set, inherit it - if [ -n "${PREFIX-}" ] && [ "$(nvm_version_path $(node -v))" != "${PREFIX}" ]; then + if [ -n "${PREFIX-}" ] && [ "$(nvm_version_path "$(node -v)")" != "${PREFIX}" ]; then nvm deactivate >/dev/null 2>&1 nvm_err "nvm is not compatible with the \"PREFIX\" environment variable: currently set to \"${PREFIX}\"" nvm_err 'Run `unset PREFIX` to unset it.' From 10399ed1bd02d26e8fa9a3ac65f3235a218c7fe1 Mon Sep 17 00:00:00 2001 From: Shiming Date: Mon, 27 Apr 2020 16:11:09 +0800 Subject: [PATCH 1325/1426] [Docs] source `./nvm.sh` instead of `nvm.sh`, for `zsh` Fixes #2204. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 03b747c..c05612a 100644 --- a/README.md +++ b/README.md @@ -177,7 +177,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.37.2` -1. activate `nvm` by sourcing it from your shell: `. nvm.sh` +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: (you may have to add to more than one of the above files) From 2fea55fdb547ae80fa20b1154497decff6ca322d Mon Sep 17 00:00:00 2001 From: Dena Burd Date: Fri, 15 Jan 2021 14:07:47 -0800 Subject: [PATCH 1326/1426] [Tests] add test that fails without fix for #2362 --- .../sourcing/Sourcing nvm.sh global alias bug | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100755 test/sourcing/Sourcing nvm.sh global alias bug diff --git a/test/sourcing/Sourcing nvm.sh global alias bug b/test/sourcing/Sourcing nvm.sh global alias bug new file mode 100755 index 0000000..181a2a6 --- /dev/null +++ b/test/sourcing/Sourcing nvm.sh global alias bug @@ -0,0 +1,30 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +if [ -n "${ZSH_VERSION-}" ]; then + # these are set by omz: https://github.com/ohmyzsh/ohmyzsh/tree/1ac40cd4456230f09bf0258b173304929d118992/plugins/common-aliases + alias -g R='| less -S' + alias -g G='| less -S' + # these are set by yadr: https://github.com/skwp/dotfiles/blob/5c487de9b81cd4265ecc9df74477e410ffbda6a1/zsh/zsh-aliases.zsh + alias -g C='| wc -l' + alias -g H='| head' + alias -g L="| less" + alias -g N="| /dev/null" + alias -g S='| sort' + alias -g G='| grep' +fi + +OUTPUT=$(\. ../../nvm.sh || echo 'sourcing returned nonzero exit code') +UNEXPECTED_OUTPUT="sourcing returned nonzero exit code" +[ "_$OUTPUT" != "_$UNEXPECTED_OUTPUT" ] || die "Sourcing nvm.sh should not fail" + +if [ -n "${ZSH_VERSION-}" ]; then + unalias \R + unalias \G + unalias \C + unalias \H + unalias \L + unalias \N + unalias \S +fi From 31c5c5c45a2e646bb09883af7b2c11b1abc9c561 Mon Sep 17 00:00:00 2001 From: Hosam Aly Date: Fri, 27 Nov 2020 23:17:07 +0000 Subject: [PATCH 1327/1426] [Fix] avoid parse error with common omz global aliases, in `nvm_print_color_code` Fixes #2362. Fixes #2372. --- nvm.sh | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/nvm.sh b/nvm.sh index 9635062..8d57cae 100644 --- a/nvm.sh +++ b/nvm.sh @@ -785,22 +785,22 @@ nvm_get_colors() { nvm_print_color_code() { case "${1-}" in - r) nvm_echo '0;31m';; - R) nvm_echo '1;31m';; - g) nvm_echo '0;32m';; - G) nvm_echo '1;32m';; - b) nvm_echo '0;34m';; - B) nvm_echo '1;34m';; - c) nvm_echo '0;36m';; - C) nvm_echo '1;36m';; - m) nvm_echo '0;35m';; - M) nvm_echo '1;35m';; - y) nvm_echo '0;33m';; - Y) nvm_echo '1;33m';; - k) nvm_echo '0;30m';; - K) nvm_echo '1;30m';; - e) nvm_echo '0;37m';; - W) nvm_echo '1;37m';; + 'r') nvm_echo '0;31m';; + 'R') nvm_echo '1;31m';; + 'g') nvm_echo '0;32m';; + 'G') nvm_echo '1;32m';; + 'b') nvm_echo '0;34m';; + 'B') nvm_echo '1;34m';; + 'c') nvm_echo '0;36m';; + 'C') nvm_echo '1;36m';; + 'm') nvm_echo '0;35m';; + 'M') nvm_echo '1;35m';; + 'y') nvm_echo '0;33m';; + 'Y') nvm_echo '1;33m';; + 'k') nvm_echo '0;30m';; + 'K') nvm_echo '1;30m';; + 'e') nvm_echo '0;37m';; + 'W') nvm_echo '1;37m';; *) nvm_err 'Invalid color code'; return 1 ;; From 6982dee071e73163645317693f3fa23f23e3d1bd Mon Sep 17 00:00:00 2001 From: hjoshi123 Date: Tue, 22 Dec 2020 17:29:32 +0530 Subject: [PATCH 1328/1426] [Docs]: Updated README.md to include homebrew unsecure dirs warning Closes #2361. --- README.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c05612a..53b3710 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,7 @@ ## About -nvm is a version manager for [node.js](https://nodejs.org/en/), designed to be installed per-user, and invoked per-shell. `nvm` works on any POSIX-compliant shell (sh, dash, ksh, zsh, bash), in particular on these platforms: unix, macOS, and windows WSL. +nvm is a version manager for [node.js](https://nodejs.org/en/), designed to be installed per-user, and invoked per-shell. `nvm` works on any POSIX-compliant shell (sh, dash, ksh, zsh, bash), in particular on these platforms: unix, macOS, and windows WSL. @@ -862,3 +862,12 @@ To change the user directory and/or account name follow the instructions [here]( [4]: https://github.com/nvm-sh/nvm/releases/tag/v0.37.2 [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com + +**Homebrew makes zsh directories unsecure** + +```shell +zsh compinit: insecure directories, run compaudit for list. +Ignore insecure directories and continue [y] or abort compinit [n]? y +``` + +Homebrew causes insecure directories like `/usr/local/share/zsh/site-functions` and `/usr/local/share/zsh`. This is **not** an `nvm` problem - it is a homebrew problem. Refer [here](https://github.com/zsh-users/zsh-completions/issues/680) for some solutions related to the issue. From f3fa15745695e734e6e7f7288771a14afc1f40d4 Mon Sep 17 00:00:00 2001 From: hjoshi123 Date: Tue, 29 Dec 2020 08:35:08 +0530 Subject: [PATCH 1329/1426] [Fix] `bash_completion`: move compinit before bashcompinit --- bash_completion | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bash_completion b/bash_completion index 0c872ee..e10138a 100644 --- a/bash_completion +++ b/bash_completion @@ -84,12 +84,13 @@ __nvm() { # called bashcompinit that will create a complete in ZSH. If the user is in # ZSH, load and run bashcompinit before calling the complete function. if [[ -n ${ZSH_VERSION-} ]]; then - autoload -U +X bashcompinit && bashcompinit + # Calling compinit first and then bashcompinit as mentioned by zsh man page. autoload -U +X compinit && if [[ ${ZSH_DISABLE_COMPFIX-} = true ]]; then compinit -u else compinit fi + autoload -U +X bashcompinit && bashcompinit fi complete -o default -F __nvm nvm From 4e9df33cb7d7d1c791e26b9840f60970027c010f Mon Sep 17 00:00:00 2001 From: nmarghetti Date: Sun, 27 Dec 2020 10:09:29 +0100 Subject: [PATCH 1330/1426] [New] install script: Allow installation from other repository --- install.sh | 12 ++++++++---- test/install_script/nvm_install_with_aliased_dot | 6 ++++-- test/install_script/nvm_install_with_node_version | 2 ++ test/install_script/nvm_source | 12 ++++++++---- 4 files changed, 22 insertions(+), 10 deletions(-) diff --git a/install.sh b/install.sh index 3c33289..73d3ed2 100755 --- a/install.sh +++ b/install.sh @@ -42,19 +42,23 @@ nvm_profile_is_bash_or_zsh() { # NVM_SOURCE always takes precedence unless the method is "script-nvm-exec" # nvm_source() { + local NVM_GITHUB_REPO + NVM_GITHUB_REPO="${NVM_INSTALL_GITHUB_REPO:-nvm-sh/nvm}" + local NVM_VERSION + NVM_VERSION="${NVM_INSTALL_VERSION:-$(nvm_latest_version)}" local NVM_METHOD NVM_METHOD="$1" local NVM_SOURCE_URL NVM_SOURCE_URL="$NVM_SOURCE" if [ "_$NVM_METHOD" = "_script-nvm-exec" ]; then - NVM_SOURCE_URL="https://raw.githubusercontent.com/nvm-sh/nvm/$(nvm_latest_version)/nvm-exec" + NVM_SOURCE_URL="https://raw.githubusercontent.com/${NVM_GITHUB_REPO}/${NVM_VERSION}/nvm-exec" elif [ "_$NVM_METHOD" = "_script-nvm-bash-completion" ]; then - NVM_SOURCE_URL="https://raw.githubusercontent.com/nvm-sh/nvm/$(nvm_latest_version)/bash_completion" + NVM_SOURCE_URL="https://raw.githubusercontent.com/${NVM_GITHUB_REPO}/${NVM_VERSION}/bash_completion" elif [ -z "$NVM_SOURCE_URL" ]; then if [ "_$NVM_METHOD" = "_script" ]; then - NVM_SOURCE_URL="https://raw.githubusercontent.com/nvm-sh/nvm/$(nvm_latest_version)/nvm.sh" + NVM_SOURCE_URL="https://raw.githubusercontent.com/${NVM_GITHUB_REPO}/${NVM_VERSION}/nvm.sh" elif [ "_$NVM_METHOD" = "_git" ] || [ -z "$NVM_METHOD" ]; then - NVM_SOURCE_URL="https://github.com/nvm-sh/nvm.git" + NVM_SOURCE_URL="https://github.com/${NVM_GITHUB_REPO}.git" else echo >&2 "Unexpected value \"$NVM_METHOD\" for \$NVM_METHOD" return 1 diff --git a/test/install_script/nvm_install_with_aliased_dot b/test/install_script/nvm_install_with_aliased_dot index b8f05a5..e1b19a1 100755 --- a/test/install_script/nvm_install_with_aliased_dot +++ b/test/install_script/nvm_install_with_aliased_dot @@ -1,6 +1,8 @@ #!/bin/sh -setup () { +setup() { + # Needed to avoid to checkout the repo to the latest nvm version, losing the commits of the current PR + unset NVM_DIR shopt -s expand_aliases alias .=':' NVM_ENV=testing \. ../../install.sh > /dev/null @@ -12,7 +14,7 @@ cleanup () { shopt -u expand_aliases } -die () { echo "$@"; exit 1; } +die () { echo "$@"; cleanup; exit 1; } setup diff --git a/test/install_script/nvm_install_with_node_version b/test/install_script/nvm_install_with_node_version index 5f5208f..aef4f0e 100755 --- a/test/install_script/nvm_install_with_node_version +++ b/test/install_script/nvm_install_with_node_version @@ -2,6 +2,8 @@ die () { echo "$@" ; exit 1; } +# Needed to avoid to checkout the repo to the latest nvm version, losing the commits of the current PR +unset NVM_DIR NODE_VERSION=8 \. ../../install.sh # nvm installed node 8 diff --git a/test/install_script/nvm_source b/test/install_script/nvm_source index 9c1ec08..140afd5 100755 --- a/test/install_script/nvm_source +++ b/test/install_script/nvm_source @@ -9,16 +9,20 @@ die () { echo "$@" ; cleanup ; exit 1; } NVM_ENV=testing \. ../../install.sh # nvm_source with no parameter returns the git endpoint -echo $(nvm_source) | grep "nvm.git$" > /dev/null || die "nvm_source without arguments should return the location of the git repo" +[ "$(nvm_source)" = "https://github.com/nvm-sh/nvm.git" ] || die "nvm_source without arguments should return the location of the git repo" +NVM_INSTALL_GITHUB_REPO="other-user/other-nvm" nvm_source | grep "https://github.com/other-user/other-nvm.git$" > /dev/null || die "NVM_INSTALL_GITHUB_REPO=... nvm_source without arguments should return the location of the given git repo" # nvm_source with git parameter returns the location of the nvm repo -echo $(nvm_source "git") | grep "nvm.git$" > /dev/null || die "nvm_source without arguments should return the location of the git repo" +[ "$(nvm_source "git")" = "https://github.com/nvm-sh/nvm.git" ] || die "nvm_source \"git\" should return the location of the git repo" +NVM_INSTALL_GITHUB_REPO="other-user/other-nvm" nvm_source "git" | grep "https://github.com/other-user/other-nvm.git$" > /dev/null || die "NVM_INSTALL_GITHUB_REPO=... nvm_source \"git\" should return the location of the given git repo" # nvm_source with script parameter returns the location of nvm.sh -echo $(nvm_source "script") | grep "nvm.sh$" > /dev/null || die "nvm_source \"script\" should return the location of nvm.sh" +[ "$(nvm_source "script")" = "https://raw.githubusercontent.com/nvm-sh/nvm/$(nvm_latest_version)/nvm.sh" ] || die "nvm_source \"script\" should return the location of nvm.sh" +NVM_INSTALL_GITHUB_REPO="other-user/other-nvm" NVM_INSTALL_VERSION="v0.37.0" nvm_source "script" | grep "https://raw.githubusercontent.com/other-user/other-nvm/v0.37.0/nvm.sh$" > /dev/null || die "NVM_INSTALL_GITHUB_REPO=... NVM_INSTALL_VERSION=... nvm_source \"script\" should return the location of nvm.sh" # nvm_source with script-nvm-exec parameter returns the location of nvm-exec -echo $(nvm_source "script-nvm-exec") | grep "nvm-exec$" > /dev/null || die "nvm_source \"script-nvm-exec\" should return the location of nvm.sh" +[ "$(nvm_source "script-nvm-exec")" = "https://raw.githubusercontent.com/nvm-sh/nvm/$(nvm_latest_version)/nvm-exec" ] || die "nvm_source \"script-nvm-exec\" should return the location of nvm.sh" +NVM_INSTALL_GITHUB_REPO="other-user/other-nvm" NVM_INSTALL_VERSION="v0.37.0" nvm_source "script-nvm-exec" | grep "https://raw.githubusercontent.com/other-user/other-nvm/v0.37.0/nvm-exec$" > /dev/null || die "NVM_INSTALL_GITHUB_REPO=... NVM_INSTALL_VERSION=... nvm_source \"script-nvm-exec\" should return the location of nvm.sh" # nvm_source with any other parameter errors out and exits nvm_source "anything" 2> /dev/null && die "nvm_source with invalid parameter should exit" From 9849bf494d50e74aa810451fb1f83208b0092dd6 Mon Sep 17 00:00:00 2001 From: nmarghetti Date: Mon, 4 Jan 2021 00:49:05 +0100 Subject: [PATCH 1331/1426] [meta] Rename some files to be more cross platform --- .editorconfig | 4 +- .github/workflows/lint.yml | 7 +++ rename_test.sh | 52 +++++++++++++++++++ ...as' should not accept aliases with slashes | 0 ... aliases when they shadow a built-in alias | 0 ...aliases with names equal to built-in alias | 0 ...as' should not accept aliases with slashes | 0 ...e˃ ˂target˃' again should change the target | 0 ...ias ˂aliasname˃' should list but one alias | 0 ...ts implicit aliases when they do not exist | 0 ...s instead of implicit aliases when present | 0 ...unning 'nvm alias' should list all aliases | 0 ... alias' should ensure LTS alias dir exists | 0 ...h 0.0.2' should display only version 0.0.2 | 0 ... return a nonzero exit code when not found | 0 ...s --no-alias' does not call into nvm_alias | 0 ... 'nvm ls --no-alias' with a pattern errors | 0 ...s 0.0.2' should display only version 0.0.2 | 0 ...ls 0.2' should display only 0.2.x versions | 0 ... return a nonzero exit code when not found | 0 .../Running 'nvm ls io' should return NA | 0 ... return a nonzero exit code when not found | 0 ...ould return the appropriate implicit alias | 0 ...' should include 'system' when appropriate | 0 .../Running 'nvm ls' calls into nvm_alias | 0 ... ls' should display all installed versions | 0 .../Running 'nvm ls' should filter out '.nvm' | 0 ...ning 'nvm ls' should filter out 'versions' | 0 ...' should include 'system' when appropriate | 0 ... list versions in the 'versions' directory | 0 ... 'nvm ls' should not show a trailing slash | 0 ... vx.x.x should only list a matched version | 0 ...ning 'nvm ls' with nounset should not fail | 0 ...hould create a file in the alias directory | 0 ...nt' should display current nvm environment | 0 ...should unset the nvm environment variables | 0 ...ll-packages-from' requires a valid version | 0 ...tall' with an invalid version fails nicely | 0 ...'nvm unalias' should remove the alias file | 0 ...l' should remove the appropriate directory | 0 ...th incorrect file permissions fails nicely | 0 ...d' should unset all function and variables | 0 ...vm use foo' where 'foo' is circular aborts | 0 ...g 'nvm use iojs' uses latest io.js version | 0 ...g 'nvm use system' should work as expected | 0 ...ld create and change the 'current' symlink | 0 ...' symlink if $NVM_SYMLINK_CURRENT is false | 0 ...nvm use' should drop CR char automatically | 0 ....sh should make the nvm command available} | 0 ...nt' should display current nvm environment | 0 .../Preamble works and respects 'silent' flag | 0 .../Running 'nvm exec --lts' should work | 0 .../Running 'nvm exec 0.x' should work | 0 ...g 'nvm exec' should pick up .nvmrc version | 0 ...ckages $(nvm ls current)' should error out | 0 ... 'nvm run --harmony --version' should work | 0 .../Running 'nvm run --lts' should work | 0 ...ror out sensibly when 0.x is not installed | 0 .../nvm run/Running 'nvm run 0.x' should work | 0 ...ng 'nvm run' should pick up .nvmrc version | 0 ... 'nvm uninstall 0.12.6' uninstalls v0.12.6 | 0 ...th incorrect file permissions fails nicely | 0 ...ng 'nvm use --lts' uses latest LTS version | 0 ...e --lts=foo' uses latest 'foo' LTS version | 0 ...g 'nvm use iojs' uses latest io.js version | 0 ... use node --silent' doesn't print anything | 0 ... use node' uses latest stable node version | 0 ... use v1.0.0' uses iojs-v1.0.0 iojs version | 0 ...unning 'nvm use' calls 'nvm_die_on_prefix' | 0 69 files changed, 61 insertions(+), 2 deletions(-) create mode 100755 rename_test.sh rename "test/fast/Aliases/\"nvm alias\" should not accept aliases with slashes" => test/fast/Aliases/'nvm alias' should not accept aliases with slashes (100%) rename "test/fast/Aliases/\"nvm unalias\" should accept aliases when they shadow a built-in alias" => test/fast/Aliases/'nvm unalias' should accept aliases when they shadow a built-in alias (100%) rename "test/fast/Aliases/\"nvm unalias\" should not accept aliases with names equal to built-in alias" => test/fast/Aliases/'nvm unalias' should not accept aliases with names equal to built-in alias (100%) rename "test/fast/Aliases/\"nvm unalias\" should not accept aliases with slashes" => test/fast/Aliases/'nvm unalias' should not accept aliases with slashes (100%) rename "test/fast/Aliases/Running \"nvm alias \" again should change the target" => test/fast/Aliases/Running 'nvm alias ˂aliasname˃ ˂target˃' again should change the target (100%) rename "test/fast/Aliases/Running \"nvm alias \" should list but one alias." => test/fast/Aliases/Running 'nvm alias ˂aliasname˃' should list but one alias (100%) rename "test/fast/Aliases/Running \"nvm alias\" lists implicit aliases when they do not exist" => test/fast/Aliases/Running 'nvm alias' lists implicit aliases when they do not exist (100%) rename "test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" => test/fast/Aliases/Running 'nvm alias' lists manual aliases instead of implicit aliases when present (100%) rename "test/fast/Aliases/Running \"nvm alias\" should list all aliases." => test/fast/Aliases/Running 'nvm alias' should list all aliases (100%) rename "test/fast/Aliases/lts/\"nvm alias\" should ensure LTS alias dir exists" => test/fast/Aliases/lts/'nvm alias' should ensure LTS alias dir exists (100%) rename "test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." => test/fast/Listing paths/Running 'nvm which 0.0.2' should display only version 0.0.2 (100%) rename "test/fast/Listing paths/Running \"nvm which foo\" should return a nonzero exit code when not found" => test/fast/Listing paths/Running 'nvm which foo' should return a nonzero exit code when not found (100%) rename "test/fast/Listing versions/Running \"nvm ls --no-alias\" does not call into nvm_alias" => test/fast/Listing versions/Running 'nvm ls --no-alias' does not call into nvm_alias (100%) rename "test/fast/Listing versions/Running \"nvm ls --no-alias\" with a pattern errors" => test/fast/Listing versions/Running 'nvm ls --no-alias' with a pattern errors (100%) rename "test/fast/Listing versions/Running \"nvm ls 0.0.2\" should display only version 0.0.2." => test/fast/Listing versions/Running 'nvm ls 0.0.2' should display only version 0.0.2 (100%) rename "test/fast/Listing versions/Running \"nvm ls 0.2\" should display only 0.2.x versions." => test/fast/Listing versions/Running 'nvm ls 0.2' should display only 0.2.x versions (100%) rename "test/fast/Listing versions/Running \"nvm ls foo\" should return a nonzero exit code when not found" => test/fast/Listing versions/Running 'nvm ls foo' should return a nonzero exit code when not found (100%) rename "test/fast/Listing versions/Running \"nvm ls io\" should return NA" => test/fast/Listing versions/Running 'nvm ls io' should return NA (100%) rename "test/fast/Listing versions/Running \"nvm ls node_\" should return a nonzero exit code when not found" => test/fast/Listing versions/Running 'nvm ls node_' should return a nonzero exit code when not found (100%) rename "test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" => test/fast/Listing versions/Running 'nvm ls stable' and 'nvm ls unstable' should return the appropriate implicit alias (100%) rename "test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" => test/fast/Listing versions/Running 'nvm ls system' should include 'system' when appropriate (100%) rename "test/fast/Listing versions/Running \"nvm ls\" calls into nvm_alias" => test/fast/Listing versions/Running 'nvm ls' calls into nvm_alias (100%) rename "test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." => test/fast/Listing versions/Running 'nvm ls' should display all installed versions (100%) rename "test/fast/Listing versions/Running \"nvm ls\" should filter out \".nvm\"" => test/fast/Listing versions/Running 'nvm ls' should filter out '.nvm' (100%) rename "test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" => test/fast/Listing versions/Running 'nvm ls' should filter out 'versions' (100%) rename "test/fast/Listing versions/Running \"nvm ls\" should include \"system\" when appropriate" => test/fast/Listing versions/Running 'nvm ls' should include 'system' when appropriate (100%) rename "test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" => test/fast/Listing versions/Running 'nvm ls' should list versions in the 'versions' directory (100%) rename "test/fast/Listing versions/Running \"nvm ls\" should not show a trailing slash" => test/fast/Listing versions/Running 'nvm ls' should not show a trailing slash (100%) rename "test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" => test/fast/Listing versions/Running 'nvm ls' with node-like versioning vx.x.x should only list a matched version (100%) rename "test/fast/Listing versions/Running \"nvm ls\" with nounset should not fail." => test/fast/Listing versions/Running 'nvm ls' with nounset should not fail (100%) rename "test/fast/Running \"nvm alias\" should create a file in the alias directory." => test/fast/Running 'nvm alias' should create a file in the alias directory (100%) rename "test/fast/Running \"nvm current\" should display current nvm environment." => test/fast/Running 'nvm current' should display current nvm environment (100%) rename "test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." => test/fast/Running 'nvm deactivate' should unset the nvm environment variables (100%) rename "test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" => test/fast/Running 'nvm install' with '--reinstall-packages-from' requires a valid version (100%) rename "test/fast/Running \"nvm install\" with an invalid version fails nicely" => test/fast/Running 'nvm install' with an invalid version fails nicely (100%) rename "test/fast/Running \"nvm unalias\" should remove the alias file." => test/fast/Running 'nvm unalias' should remove the alias file (100%) rename "test/fast/Running \"nvm uninstall\" should remove the appropriate directory." => test/fast/Running 'nvm uninstall' should remove the appropriate directory (100%) rename "test/fast/Running \"nvm uninstall\" with incorrect file permissions fails nicely" => test/fast/Running 'nvm uninstall' with incorrect file permissions fails nicely (100%) rename "test/fast/Running \"nvm unload\" should unset all function and variables." => test/fast/Running 'nvm unload' should unset all function and variables (100%) rename "test/fast/Running \"nvm use foo\" where \"foo\" is circular aborts" => test/fast/Running 'nvm use foo' where 'foo' is circular aborts (100%) rename "test/fast/Running \"nvm use iojs\" uses latest io.js version" => test/fast/Running 'nvm use iojs' uses latest io.js version (100%) rename "test/fast/Running \"nvm use system\" should work as expected" => test/fast/Running 'nvm use system' should work as expected (100%) rename "test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" => test/fast/Running 'nvm use x' should create and change the 'current' symlink (100%) rename "test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" => test/fast/Running 'nvm use x' should not create the 'current' symlink if $NVM_SYMLINK_CURRENT is false (100%) rename "test/fast/Running \"nvm use\" should drop CR char automatically." => test/fast/Running 'nvm use' should drop CR char automatically (100%) rename test/fast/{Sourcing nvm.sh should make the nvm command available. => Sourcing nvm.sh should make the nvm command available} (100%) rename "test/slow/Running \"nvm current\" should display current nvm environment." => test/slow/Running 'nvm current' should display current nvm environment (100%) rename "test/slow/nvm exec/Preamble works and respects \"silent\" flag" => test/slow/nvm exec/Preamble works and respects 'silent' flag (100%) rename "test/slow/nvm exec/Running \"nvm exec --lts\" should work" => test/slow/nvm exec/Running 'nvm exec --lts' should work (100%) rename "test/slow/nvm exec/Running \"nvm exec 0.x\" should work" => test/slow/nvm exec/Running 'nvm exec 0.x' should work (100%) rename "test/slow/nvm exec/Running \"nvm exec\" should pick up .nvmrc version" => test/slow/nvm exec/Running 'nvm exec' should pick up .nvmrc version (100%) rename "test/slow/nvm reinstall-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" => test/slow/nvm reinstall-packages/Running 'nvm copy-packages $(nvm ls current)' should error out (100%) rename "test/slow/nvm run/Running \"nvm run --harmony --version\" should work" => test/slow/nvm run/Running 'nvm run --harmony --version' should work (100%) rename "test/slow/nvm run/Running \"nvm run --lts\" should work" => test/slow/nvm run/Running 'nvm run --lts' should work (100%) rename "test/slow/nvm run/Running \"nvm run 0.x\" should error out sensibly when 0.x is not installed" => test/slow/nvm run/Running 'nvm run 0.x' should error out sensibly when 0.x is not installed (100%) rename "test/slow/nvm run/Running \"nvm run 0.x\" should work" => test/slow/nvm run/Running 'nvm run 0.x' should work (100%) rename "test/slow/nvm run/Running \"nvm run\" should pick up .nvmrc version" => test/slow/nvm run/Running 'nvm run' should pick up .nvmrc version (100%) rename "test/slow/nvm uninstall/Running \"nvm uninstall 0.12.6\" uninstalls v0.12.6" => test/slow/nvm uninstall/Running 'nvm uninstall 0.12.6' uninstalls v0.12.6 (100%) rename "test/slow/nvm uninstall/Running \"nvm uninstall\" with incorrect file permissions fails nicely" => test/slow/nvm uninstall/Running 'nvm uninstall' with incorrect file permissions fails nicely (100%) rename "test/slow/nvm use/Running \"nvm use --lts\" uses latest LTS version" => test/slow/nvm use/Running 'nvm use --lts' uses latest LTS version (100%) rename "test/slow/nvm use/Running \"nvm use --lts=foo\" uses latest \"foo\" LTS version" => test/slow/nvm use/Running 'nvm use --lts=foo' uses latest 'foo' LTS version (100%) rename "test/slow/nvm use/Running \"nvm use iojs\" uses latest io.js version" => test/slow/nvm use/Running 'nvm use iojs' uses latest io.js version (100%) rename "test/slow/nvm use/Running \"nvm use node --silent\" doesn't print anything" => test/slow/nvm use/Running 'nvm use node --silent' doesn't print anything (100%) rename "test/slow/nvm use/Running \"nvm use node\" uses latest stable node version" => test/slow/nvm use/Running 'nvm use node' uses latest stable node version (100%) rename "test/slow/nvm use/Running \"nvm use v1.0.0\" uses iojs-v1.0.0 iojs version" => test/slow/nvm use/Running 'nvm use v1.0.0' uses iojs-v1.0.0 iojs version (100%) rename "test/slow/nvm use/Running \"nvm use\" calls \"nvm_die_on_prefix\"" => test/slow/nvm use/Running 'nvm use' calls 'nvm_die_on_prefix' (100%) diff --git a/.editorconfig b/.editorconfig index 0176d42..70c43d3 100644 --- a/.editorconfig +++ b/.editorconfig @@ -12,10 +12,10 @@ trim_trailing_whitespace = true [*.txt] indent_size = false -[test/fast/Listing versions/Running "nvm ls" calls into nvm_alias] +[test/fast/Listing versions/Running 'nvm ls' calls into nvm_alias] indent_size = false -[test/fast/Listing versions/Running "nvm ls --no-alias" does not call into nvm_alias] +[test/fast/Listing versions/Running 'nvm ls --no-alias' does not call into nvm_alias] indent_size = false [test/fast/Unit tests/mocks/**] diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 97ed062..26c7e88 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -36,3 +36,10 @@ jobs: cp README.md README.md.orig npm run doctoc diff -q README.md README.md.orig + + test_naming: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: check tests filenames + run: ./rename_test.sh --check diff --git a/rename_test.sh b/rename_test.sh new file mode 100755 index 0000000..5530862 --- /dev/null +++ b/rename_test.sh @@ -0,0 +1,52 @@ +#! /usr/bin/env bash + +find_name(){ + find test -name "*[\\/:\*\?\"<>\|]*" -o -name "*." +} + +check_name() { + if [ "$(find_name | wc -l)" != "0" ]; then + printf '%s\n\n' "The following filenames contain unwanted characters:" + find_name + printf '\n%s\n%s\n' "Please run ./rename_test.sh" "If the problem persist, please open an issue." + exit 1 + else + echo "Ok" + fi +} + +rename_test() { + local filename + local new_filename + while read -r filename; do + # Even though it looks < and > are replaced by the same < and >, the latters are not ASCII code + # If you check with 'cat -v rename_test.sh' you would see 's//M-KM-^C/g' + # M-KM-^B -> U+02C2 + # M-KM-^C -> U+02C3 + new_filename=$(echo "$filename" | sed -r \ + -e "s/\"/'/g" \ + -e 's//˃/g' \ + -e 's/^(.*)\.$/\1/' + ) + printf '%s\n%s\n\n' "$filename" "$new_filename" + [ "$filename" != "$new_filename" ] && git mv "$filename" "$new_filename" + done < <(find_name) + + if [ "$(find_name | wc -l)" != "0" ]; then + echo "Still some files to treat:" + find_name + else + echo "Done" + fi +} + +main() { + if [ "$1" = "--check" ]; then + check_name + else + rename_test + fi +} + +main "$@" diff --git "a/test/fast/Aliases/\"nvm alias\" should not accept aliases with slashes" b/test/fast/Aliases/'nvm alias' should not accept aliases with slashes similarity index 100% rename from "test/fast/Aliases/\"nvm alias\" should not accept aliases with slashes" rename to test/fast/Aliases/'nvm alias' should not accept aliases with slashes diff --git "a/test/fast/Aliases/\"nvm unalias\" should accept aliases when they shadow a built-in alias" b/test/fast/Aliases/'nvm unalias' should accept aliases when they shadow a built-in alias similarity index 100% rename from "test/fast/Aliases/\"nvm unalias\" should accept aliases when they shadow a built-in alias" rename to test/fast/Aliases/'nvm unalias' should accept aliases when they shadow a built-in alias diff --git "a/test/fast/Aliases/\"nvm unalias\" should not accept aliases with names equal to built-in alias" b/test/fast/Aliases/'nvm unalias' should not accept aliases with names equal to built-in alias similarity index 100% rename from "test/fast/Aliases/\"nvm unalias\" should not accept aliases with names equal to built-in alias" rename to test/fast/Aliases/'nvm unalias' should not accept aliases with names equal to built-in alias diff --git "a/test/fast/Aliases/\"nvm unalias\" should not accept aliases with slashes" b/test/fast/Aliases/'nvm unalias' should not accept aliases with slashes similarity index 100% rename from "test/fast/Aliases/\"nvm unalias\" should not accept aliases with slashes" rename to test/fast/Aliases/'nvm unalias' should not accept aliases with slashes diff --git "a/test/fast/Aliases/Running \"nvm alias \" again should change the target" b/test/fast/Aliases/Running 'nvm alias ˂aliasname˃ ˂target˃' again should change the target similarity index 100% rename from "test/fast/Aliases/Running \"nvm alias \" again should change the target" rename to test/fast/Aliases/Running 'nvm alias ˂aliasname˃ ˂target˃' again should change the target diff --git "a/test/fast/Aliases/Running \"nvm alias \" should list but one alias." b/test/fast/Aliases/Running 'nvm alias ˂aliasname˃' should list but one alias similarity index 100% rename from "test/fast/Aliases/Running \"nvm alias \" should list but one alias." rename to test/fast/Aliases/Running 'nvm alias ˂aliasname˃' should list but one alias diff --git "a/test/fast/Aliases/Running \"nvm alias\" lists implicit aliases when they do not exist" b/test/fast/Aliases/Running 'nvm alias' lists implicit aliases when they do not exist similarity index 100% rename from "test/fast/Aliases/Running \"nvm alias\" lists implicit aliases when they do not exist" rename to test/fast/Aliases/Running 'nvm alias' lists implicit aliases when they do not exist diff --git "a/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" b/test/fast/Aliases/Running 'nvm alias' lists manual aliases instead of implicit aliases when present similarity index 100% rename from "test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" rename to test/fast/Aliases/Running 'nvm alias' lists manual aliases instead of implicit aliases when present diff --git "a/test/fast/Aliases/Running \"nvm alias\" should list all aliases." b/test/fast/Aliases/Running 'nvm alias' should list all aliases similarity index 100% rename from "test/fast/Aliases/Running \"nvm alias\" should list all aliases." rename to test/fast/Aliases/Running 'nvm alias' should list all aliases diff --git "a/test/fast/Aliases/lts/\"nvm alias\" should ensure LTS alias dir exists" b/test/fast/Aliases/lts/'nvm alias' should ensure LTS alias dir exists similarity index 100% rename from "test/fast/Aliases/lts/\"nvm alias\" should ensure LTS alias dir exists" rename to test/fast/Aliases/lts/'nvm alias' should ensure LTS alias dir exists diff --git "a/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." b/test/fast/Listing paths/Running 'nvm which 0.0.2' should display only version 0.0.2 similarity index 100% rename from "test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." rename to test/fast/Listing paths/Running 'nvm which 0.0.2' should display only version 0.0.2 diff --git "a/test/fast/Listing paths/Running \"nvm which foo\" should return a nonzero exit code when not found" b/test/fast/Listing paths/Running 'nvm which foo' should return a nonzero exit code when not found similarity index 100% rename from "test/fast/Listing paths/Running \"nvm which foo\" should return a nonzero exit code when not found" rename to test/fast/Listing paths/Running 'nvm which foo' should return a nonzero exit code when not found diff --git "a/test/fast/Listing versions/Running \"nvm ls --no-alias\" does not call into nvm_alias" b/test/fast/Listing versions/Running 'nvm ls --no-alias' does not call into nvm_alias similarity index 100% rename from "test/fast/Listing versions/Running \"nvm ls --no-alias\" does not call into nvm_alias" rename to test/fast/Listing versions/Running 'nvm ls --no-alias' does not call into nvm_alias diff --git "a/test/fast/Listing versions/Running \"nvm ls --no-alias\" with a pattern errors" b/test/fast/Listing versions/Running 'nvm ls --no-alias' with a pattern errors similarity index 100% rename from "test/fast/Listing versions/Running \"nvm ls --no-alias\" with a pattern errors" rename to test/fast/Listing versions/Running 'nvm ls --no-alias' with a pattern errors diff --git "a/test/fast/Listing versions/Running \"nvm ls 0.0.2\" should display only version 0.0.2." b/test/fast/Listing versions/Running 'nvm ls 0.0.2' should display only version 0.0.2 similarity index 100% rename from "test/fast/Listing versions/Running \"nvm ls 0.0.2\" should display only version 0.0.2." rename to test/fast/Listing versions/Running 'nvm ls 0.0.2' should display only version 0.0.2 diff --git "a/test/fast/Listing versions/Running \"nvm ls 0.2\" should display only 0.2.x versions." b/test/fast/Listing versions/Running 'nvm ls 0.2' should display only 0.2.x versions similarity index 100% rename from "test/fast/Listing versions/Running \"nvm ls 0.2\" should display only 0.2.x versions." rename to test/fast/Listing versions/Running 'nvm ls 0.2' should display only 0.2.x versions diff --git "a/test/fast/Listing versions/Running \"nvm ls foo\" should return a nonzero exit code when not found" b/test/fast/Listing versions/Running 'nvm ls foo' should return a nonzero exit code when not found similarity index 100% rename from "test/fast/Listing versions/Running \"nvm ls foo\" should return a nonzero exit code when not found" rename to test/fast/Listing versions/Running 'nvm ls foo' should return a nonzero exit code when not found diff --git "a/test/fast/Listing versions/Running \"nvm ls io\" should return NA" b/test/fast/Listing versions/Running 'nvm ls io' should return NA similarity index 100% rename from "test/fast/Listing versions/Running \"nvm ls io\" should return NA" rename to test/fast/Listing versions/Running 'nvm ls io' should return NA diff --git "a/test/fast/Listing versions/Running \"nvm ls node_\" should return a nonzero exit code when not found" b/test/fast/Listing versions/Running 'nvm ls node_' should return a nonzero exit code when not found similarity index 100% rename from "test/fast/Listing versions/Running \"nvm ls node_\" should return a nonzero exit code when not found" rename to test/fast/Listing versions/Running 'nvm ls node_' should return a nonzero exit code when not found diff --git "a/test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" b/test/fast/Listing versions/Running 'nvm ls stable' and 'nvm ls unstable' should return the appropriate implicit alias similarity index 100% rename from "test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" rename to test/fast/Listing versions/Running 'nvm ls stable' and 'nvm ls unstable' should return the appropriate implicit alias diff --git "a/test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" b/test/fast/Listing versions/Running 'nvm ls system' should include 'system' when appropriate similarity index 100% rename from "test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" rename to test/fast/Listing versions/Running 'nvm ls system' should include 'system' when appropriate diff --git "a/test/fast/Listing versions/Running \"nvm ls\" calls into nvm_alias" b/test/fast/Listing versions/Running 'nvm ls' calls into nvm_alias similarity index 100% rename from "test/fast/Listing versions/Running \"nvm ls\" calls into nvm_alias" rename to test/fast/Listing versions/Running 'nvm ls' calls into nvm_alias diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." b/test/fast/Listing versions/Running 'nvm ls' should display all installed versions similarity index 100% rename from "test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." rename to test/fast/Listing versions/Running 'nvm ls' should display all installed versions diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should filter out \".nvm\"" b/test/fast/Listing versions/Running 'nvm ls' should filter out '.nvm' similarity index 100% rename from "test/fast/Listing versions/Running \"nvm ls\" should filter out \".nvm\"" rename to test/fast/Listing versions/Running 'nvm ls' should filter out '.nvm' diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" b/test/fast/Listing versions/Running 'nvm ls' should filter out 'versions' similarity index 100% rename from "test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" rename to test/fast/Listing versions/Running 'nvm ls' should filter out 'versions' diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should include \"system\" when appropriate" b/test/fast/Listing versions/Running 'nvm ls' should include 'system' when appropriate similarity index 100% rename from "test/fast/Listing versions/Running \"nvm ls\" should include \"system\" when appropriate" rename to test/fast/Listing versions/Running 'nvm ls' should include 'system' when appropriate diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" b/test/fast/Listing versions/Running 'nvm ls' should list versions in the 'versions' directory similarity index 100% rename from "test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" rename to test/fast/Listing versions/Running 'nvm ls' should list versions in the 'versions' directory diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should not show a trailing slash" b/test/fast/Listing versions/Running 'nvm ls' should not show a trailing slash similarity index 100% rename from "test/fast/Listing versions/Running \"nvm ls\" should not show a trailing slash" rename to test/fast/Listing versions/Running 'nvm ls' should not show a trailing slash diff --git "a/test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" b/test/fast/Listing versions/Running 'nvm ls' with node-like versioning vx.x.x should only list a matched version similarity index 100% rename from "test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" rename to test/fast/Listing versions/Running 'nvm ls' with node-like versioning vx.x.x should only list a matched version diff --git "a/test/fast/Listing versions/Running \"nvm ls\" with nounset should not fail." b/test/fast/Listing versions/Running 'nvm ls' with nounset should not fail similarity index 100% rename from "test/fast/Listing versions/Running \"nvm ls\" with nounset should not fail." rename to test/fast/Listing versions/Running 'nvm ls' with nounset should not fail diff --git "a/test/fast/Running \"nvm alias\" should create a file in the alias directory." b/test/fast/Running 'nvm alias' should create a file in the alias directory similarity index 100% rename from "test/fast/Running \"nvm alias\" should create a file in the alias directory." rename to test/fast/Running 'nvm alias' should create a file in the alias directory diff --git "a/test/fast/Running \"nvm current\" should display current nvm environment." b/test/fast/Running 'nvm current' should display current nvm environment similarity index 100% rename from "test/fast/Running \"nvm current\" should display current nvm environment." rename to test/fast/Running 'nvm current' should display current nvm environment diff --git "a/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." b/test/fast/Running 'nvm deactivate' should unset the nvm environment variables similarity index 100% rename from "test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." rename to test/fast/Running 'nvm deactivate' should unset the nvm environment variables diff --git "a/test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" b/test/fast/Running 'nvm install' with '--reinstall-packages-from' requires a valid version similarity index 100% rename from "test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" rename to test/fast/Running 'nvm install' with '--reinstall-packages-from' requires a valid version diff --git "a/test/fast/Running \"nvm install\" with an invalid version fails nicely" b/test/fast/Running 'nvm install' with an invalid version fails nicely similarity index 100% rename from "test/fast/Running \"nvm install\" with an invalid version fails nicely" rename to test/fast/Running 'nvm install' with an invalid version fails nicely diff --git "a/test/fast/Running \"nvm unalias\" should remove the alias file." b/test/fast/Running 'nvm unalias' should remove the alias file similarity index 100% rename from "test/fast/Running \"nvm unalias\" should remove the alias file." rename to test/fast/Running 'nvm unalias' should remove the alias file diff --git "a/test/fast/Running \"nvm uninstall\" should remove the appropriate directory." b/test/fast/Running 'nvm uninstall' should remove the appropriate directory similarity index 100% rename from "test/fast/Running \"nvm uninstall\" should remove the appropriate directory." rename to test/fast/Running 'nvm uninstall' should remove the appropriate directory diff --git "a/test/fast/Running \"nvm uninstall\" with incorrect file permissions fails nicely" b/test/fast/Running 'nvm uninstall' with incorrect file permissions fails nicely similarity index 100% rename from "test/fast/Running \"nvm uninstall\" with incorrect file permissions fails nicely" rename to test/fast/Running 'nvm uninstall' with incorrect file permissions fails nicely diff --git "a/test/fast/Running \"nvm unload\" should unset all function and variables." b/test/fast/Running 'nvm unload' should unset all function and variables similarity index 100% rename from "test/fast/Running \"nvm unload\" should unset all function and variables." rename to test/fast/Running 'nvm unload' should unset all function and variables diff --git "a/test/fast/Running \"nvm use foo\" where \"foo\" is circular aborts" b/test/fast/Running 'nvm use foo' where 'foo' is circular aborts similarity index 100% rename from "test/fast/Running \"nvm use foo\" where \"foo\" is circular aborts" rename to test/fast/Running 'nvm use foo' where 'foo' is circular aborts diff --git "a/test/fast/Running \"nvm use iojs\" uses latest io.js version" b/test/fast/Running 'nvm use iojs' uses latest io.js version similarity index 100% rename from "test/fast/Running \"nvm use iojs\" uses latest io.js version" rename to test/fast/Running 'nvm use iojs' uses latest io.js version diff --git "a/test/fast/Running \"nvm use system\" should work as expected" b/test/fast/Running 'nvm use system' should work as expected similarity index 100% rename from "test/fast/Running \"nvm use system\" should work as expected" rename to test/fast/Running 'nvm use system' should work as expected diff --git "a/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" b/test/fast/Running 'nvm use x' should create and change the 'current' symlink similarity index 100% rename from "test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" rename to test/fast/Running 'nvm use x' should create and change the 'current' symlink diff --git "a/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" b/test/fast/Running 'nvm use x' should not create the 'current' symlink if $NVM_SYMLINK_CURRENT is false similarity index 100% rename from "test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" rename to test/fast/Running 'nvm use x' should not create the 'current' symlink if $NVM_SYMLINK_CURRENT is false diff --git "a/test/fast/Running \"nvm use\" should drop CR char automatically." b/test/fast/Running 'nvm use' should drop CR char automatically similarity index 100% rename from "test/fast/Running \"nvm use\" should drop CR char automatically." rename to test/fast/Running 'nvm use' should drop CR char automatically diff --git a/test/fast/Sourcing nvm.sh should make the nvm command available. b/test/fast/Sourcing nvm.sh should make the nvm command available similarity index 100% rename from test/fast/Sourcing nvm.sh should make the nvm command available. rename to test/fast/Sourcing nvm.sh should make the nvm command available diff --git "a/test/slow/Running \"nvm current\" should display current nvm environment." b/test/slow/Running 'nvm current' should display current nvm environment similarity index 100% rename from "test/slow/Running \"nvm current\" should display current nvm environment." rename to test/slow/Running 'nvm current' should display current nvm environment diff --git "a/test/slow/nvm exec/Preamble works and respects \"silent\" flag" b/test/slow/nvm exec/Preamble works and respects 'silent' flag similarity index 100% rename from "test/slow/nvm exec/Preamble works and respects \"silent\" flag" rename to test/slow/nvm exec/Preamble works and respects 'silent' flag diff --git "a/test/slow/nvm exec/Running \"nvm exec --lts\" should work" b/test/slow/nvm exec/Running 'nvm exec --lts' should work similarity index 100% rename from "test/slow/nvm exec/Running \"nvm exec --lts\" should work" rename to test/slow/nvm exec/Running 'nvm exec --lts' should work diff --git "a/test/slow/nvm exec/Running \"nvm exec 0.x\" should work" b/test/slow/nvm exec/Running 'nvm exec 0.x' should work similarity index 100% rename from "test/slow/nvm exec/Running \"nvm exec 0.x\" should work" rename to test/slow/nvm exec/Running 'nvm exec 0.x' should work diff --git "a/test/slow/nvm exec/Running \"nvm exec\" should pick up .nvmrc version" b/test/slow/nvm exec/Running 'nvm exec' should pick up .nvmrc version similarity index 100% rename from "test/slow/nvm exec/Running \"nvm exec\" should pick up .nvmrc version" rename to test/slow/nvm exec/Running 'nvm exec' should pick up .nvmrc version diff --git "a/test/slow/nvm reinstall-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" b/test/slow/nvm reinstall-packages/Running 'nvm copy-packages $(nvm ls current)' should error out similarity index 100% rename from "test/slow/nvm reinstall-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" rename to test/slow/nvm reinstall-packages/Running 'nvm copy-packages $(nvm ls current)' should error out diff --git "a/test/slow/nvm run/Running \"nvm run --harmony --version\" should work" b/test/slow/nvm run/Running 'nvm run --harmony --version' should work similarity index 100% rename from "test/slow/nvm run/Running \"nvm run --harmony --version\" should work" rename to test/slow/nvm run/Running 'nvm run --harmony --version' should work diff --git "a/test/slow/nvm run/Running \"nvm run --lts\" should work" b/test/slow/nvm run/Running 'nvm run --lts' should work similarity index 100% rename from "test/slow/nvm run/Running \"nvm run --lts\" should work" rename to test/slow/nvm run/Running 'nvm run --lts' should work diff --git "a/test/slow/nvm run/Running \"nvm run 0.x\" should error out sensibly when 0.x is not installed" b/test/slow/nvm run/Running 'nvm run 0.x' should error out sensibly when 0.x is not installed similarity index 100% rename from "test/slow/nvm run/Running \"nvm run 0.x\" should error out sensibly when 0.x is not installed" rename to test/slow/nvm run/Running 'nvm run 0.x' should error out sensibly when 0.x is not installed diff --git "a/test/slow/nvm run/Running \"nvm run 0.x\" should work" b/test/slow/nvm run/Running 'nvm run 0.x' should work similarity index 100% rename from "test/slow/nvm run/Running \"nvm run 0.x\" should work" rename to test/slow/nvm run/Running 'nvm run 0.x' should work diff --git "a/test/slow/nvm run/Running \"nvm run\" should pick up .nvmrc version" b/test/slow/nvm run/Running 'nvm run' should pick up .nvmrc version similarity index 100% rename from "test/slow/nvm run/Running \"nvm run\" should pick up .nvmrc version" rename to test/slow/nvm run/Running 'nvm run' should pick up .nvmrc version diff --git "a/test/slow/nvm uninstall/Running \"nvm uninstall 0.12.6\" uninstalls v0.12.6" b/test/slow/nvm uninstall/Running 'nvm uninstall 0.12.6' uninstalls v0.12.6 similarity index 100% rename from "test/slow/nvm uninstall/Running \"nvm uninstall 0.12.6\" uninstalls v0.12.6" rename to test/slow/nvm uninstall/Running 'nvm uninstall 0.12.6' uninstalls v0.12.6 diff --git "a/test/slow/nvm uninstall/Running \"nvm uninstall\" with incorrect file permissions fails nicely" b/test/slow/nvm uninstall/Running 'nvm uninstall' with incorrect file permissions fails nicely similarity index 100% rename from "test/slow/nvm uninstall/Running \"nvm uninstall\" with incorrect file permissions fails nicely" rename to test/slow/nvm uninstall/Running 'nvm uninstall' with incorrect file permissions fails nicely diff --git "a/test/slow/nvm use/Running \"nvm use --lts\" uses latest LTS version" b/test/slow/nvm use/Running 'nvm use --lts' uses latest LTS version similarity index 100% rename from "test/slow/nvm use/Running \"nvm use --lts\" uses latest LTS version" rename to test/slow/nvm use/Running 'nvm use --lts' uses latest LTS version diff --git "a/test/slow/nvm use/Running \"nvm use --lts=foo\" uses latest \"foo\" LTS version" b/test/slow/nvm use/Running 'nvm use --lts=foo' uses latest 'foo' LTS version similarity index 100% rename from "test/slow/nvm use/Running \"nvm use --lts=foo\" uses latest \"foo\" LTS version" rename to test/slow/nvm use/Running 'nvm use --lts=foo' uses latest 'foo' LTS version diff --git "a/test/slow/nvm use/Running \"nvm use iojs\" uses latest io.js version" b/test/slow/nvm use/Running 'nvm use iojs' uses latest io.js version similarity index 100% rename from "test/slow/nvm use/Running \"nvm use iojs\" uses latest io.js version" rename to test/slow/nvm use/Running 'nvm use iojs' uses latest io.js version diff --git "a/test/slow/nvm use/Running \"nvm use node --silent\" doesn't print anything" b/test/slow/nvm use/Running 'nvm use node --silent' doesn't print anything similarity index 100% rename from "test/slow/nvm use/Running \"nvm use node --silent\" doesn't print anything" rename to test/slow/nvm use/Running 'nvm use node --silent' doesn't print anything diff --git "a/test/slow/nvm use/Running \"nvm use node\" uses latest stable node version" b/test/slow/nvm use/Running 'nvm use node' uses latest stable node version similarity index 100% rename from "test/slow/nvm use/Running \"nvm use node\" uses latest stable node version" rename to test/slow/nvm use/Running 'nvm use node' uses latest stable node version diff --git "a/test/slow/nvm use/Running \"nvm use v1.0.0\" uses iojs-v1.0.0 iojs version" b/test/slow/nvm use/Running 'nvm use v1.0.0' uses iojs-v1.0.0 iojs version similarity index 100% rename from "test/slow/nvm use/Running \"nvm use v1.0.0\" uses iojs-v1.0.0 iojs version" rename to test/slow/nvm use/Running 'nvm use v1.0.0' uses iojs-v1.0.0 iojs version diff --git "a/test/slow/nvm use/Running \"nvm use\" calls \"nvm_die_on_prefix\"" b/test/slow/nvm use/Running 'nvm use' calls 'nvm_die_on_prefix' similarity index 100% rename from "test/slow/nvm use/Running \"nvm use\" calls \"nvm_die_on_prefix\"" rename to test/slow/nvm use/Running 'nvm use' calls 'nvm_die_on_prefix' From 436cda247e1f5f96bf20df8d49f968dd4d3a9523 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 7 Jan 2021 13:00:26 -0800 Subject: [PATCH 1332/1426] [Fix] remove `nvm_supports_source_options` Fixes #2387 --- nvm.sh | 26 ++++++------------ .../Unit tests/nvm_supports_source_options | 27 ------------------- 2 files changed, 8 insertions(+), 45 deletions(-) delete mode 100755 test/fast/Unit tests/nvm_supports_source_options diff --git a/nvm.sh b/nvm.sh index 2f59708..9635062 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3931,7 +3931,7 @@ nvm() { nvm_has_system_node nvm_has_system_iojs \ nvm_download nvm_get_latest nvm_has nvm_install_default_packages nvm_get_default_packages \ nvm_curl_use_compression nvm_curl_version \ - nvm_supports_source_options nvm_auto nvm_supports_xz \ + nvm_auto nvm_supports_xz \ nvm_echo nvm_err nvm_grep nvm_cd \ nvm_die_on_prefix nvm_get_make_jobs nvm_get_minor_version \ nvm_has_solaris_binary nvm_is_merged_node_version \ @@ -4013,14 +4013,6 @@ nvm_install_default_packages() { fi } -nvm_supports_source_options() { - # shellcheck disable=SC1091,SC2240 - [ "_$( . /dev/stdin yes 2> /dev/null <<'EOF' -[ $# -gt 0 ] && nvm_echo $1 -EOF - )" = "_yes" ] -} - nvm_supports_xz() { if [ -z "${1-}" ]; then return 1 @@ -4108,15 +4100,13 @@ nvm_auto() { nvm_process_parameters() { local NVM_AUTO_MODE NVM_AUTO_MODE='use' - if nvm_supports_source_options; then - while [ $# -ne 0 ]; do - case "$1" in - --install) NVM_AUTO_MODE='install' ;; - --no-use) NVM_AUTO_MODE='none' ;; - esac - shift - done - fi + while [ $# -ne 0 ]; do + case "$1" in + --install) NVM_AUTO_MODE='install' ;; + --no-use) NVM_AUTO_MODE='none' ;; + esac + shift + done nvm_auto "${NVM_AUTO_MODE}" } diff --git a/test/fast/Unit tests/nvm_supports_source_options b/test/fast/Unit tests/nvm_supports_source_options deleted file mode 100755 index ceeff91..0000000 --- a/test/fast/Unit tests/nvm_supports_source_options +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -die () { echo "$@" ; exit 1; } - -\. ../../../nvm.sh - -x=0 -i=0 -runs=5 -calls=500 -first_result=false -if (nvm_supports_source_options && printf .); then - first_result=true -fi -while [ $x -le $runs ]; do - y=$x - x=$(( x + 1 )) - while [ $i -le $calls ]; do - this_result=false - if (nvm_supports_source_options && printf .); then - this_result=true - fi - [ $this_result = $first_result ] || die "call ${i}, run ${y} got ${this_result}; expected ${first_result}" - i=$(( i + 1 )) - done -done -echo "${runs} runs of ${calls} calls succeeded" From 9f3397afa48821cd6f1c429e9524886ffd122ab3 Mon Sep 17 00:00:00 2001 From: nmarghetti Date: Fri, 8 Jan 2021 18:54:40 +0100 Subject: [PATCH 1333/1426] [Tests] add `nvm_grep` to install script, fix tests --- install.sh | 6 +++++- test/install_script/nvm_install_with_node_version | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 73d3ed2..a7c0f3f 100755 --- a/install.sh +++ b/install.sh @@ -6,6 +6,10 @@ nvm_has() { type "$1" > /dev/null 2>&1 } +nvm_grep() { + GREP_OPTIONS='' command grep "$@" +} + nvm_default_install_dir() { [ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm" } @@ -423,7 +427,7 @@ nvm_reset() { unset -f nvm_has nvm_install_dir nvm_latest_version nvm_profile_is_bash_or_zsh \ nvm_source nvm_node_version nvm_download install_nvm_from_git nvm_install_node \ install_nvm_as_script nvm_try_profile nvm_detect_profile nvm_check_global_modules \ - nvm_do_install nvm_reset nvm_default_install_dir + nvm_do_install nvm_reset nvm_default_install_dir nvm_grep } [ "_$NVM_ENV" = "_testing" ] || nvm_do_install diff --git a/test/install_script/nvm_install_with_node_version b/test/install_script/nvm_install_with_node_version index aef4f0e..5dd1a9b 100755 --- a/test/install_script/nvm_install_with_node_version +++ b/test/install_script/nvm_install_with_node_version @@ -6,5 +6,7 @@ die () { echo "$@" ; exit 1; } unset NVM_DIR NODE_VERSION=8 \. ../../install.sh +. "${NVM_DIR}/nvm.sh" + # nvm installed node 8 nvm ls 8 > /dev/null 2>&1 || die "nvm didn't install node 8" From 60e78d3ec15083a867558a247c02a896adce0cc2 Mon Sep 17 00:00:00 2001 From: nmarghetti Date: Wed, 13 Jan 2021 02:26:38 +0100 Subject: [PATCH 1334/1426] [Tests] Add unit test for nvm_download --- test/fast/Unit tests/nvm_download | 18 ++++++++++++++++++ test/install_script/nvm_download | 18 ++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 test/fast/Unit tests/nvm_download create mode 100644 test/install_script/nvm_download diff --git a/test/fast/Unit tests/nvm_download b/test/fast/Unit tests/nvm_download new file mode 100644 index 0000000..3262d60 --- /dev/null +++ b/test/fast/Unit tests/nvm_download @@ -0,0 +1,18 @@ +#!/bin/sh + +cleanup () { + unset -f die cleanup +} +die () { echo "$@" ; cleanup ; exit 1; } + +\. ../../../nvm.sh + +set -ex + +# nvm_download install.sh +nvm_download "https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh" >/dev/null || die "nvm_download unable to download install.sh" + +# nvm_download should fail to download wrong_install.sh +! nvm_download "https://raw.githubusercontent.com/nvm-sh/nvm/master/wrong_install.sh" >/dev/null || die "nvm_download should fail to download no existing file" + +cleanup diff --git a/test/install_script/nvm_download b/test/install_script/nvm_download new file mode 100644 index 0000000..8f26623 --- /dev/null +++ b/test/install_script/nvm_download @@ -0,0 +1,18 @@ +#!/bin/sh + +cleanup () { + unset -f die cleanup +} +die () { echo "$@" ; cleanup ; exit 1; } + +NVM_ENV=testing \. ../../install.sh + +# nvm_download install.sh +nvm_download "https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh" >/dev/null || die "nvm_download unable to download install.sh" + +# nvm_download should fail to download wrong_install.sh +if nvm_download "https://raw.githubusercontent.com/nvm-sh/nvm/master/wrong_install.sh" &>/dev/null; then + die "nvm_download should fail to download no existing file" +fi + +cleanup From 589c2377fbe37c23996a82d6d88b37c62f1a022a Mon Sep 17 00:00:00 2001 From: nmarghetti Date: Wed, 13 Jan 2021 02:26:38 +0100 Subject: [PATCH 1335/1426] [Fix] install script: sync `nvm_download` implementation from nvm.sh --- install.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index a7c0f3f..16382b3 100755 --- a/install.sh +++ b/install.sh @@ -80,14 +80,16 @@ nvm_node_version() { nvm_download() { if nvm_has "curl"; then - curl --compressed -q "$@" + curl --fail --compressed -q "$@" elif nvm_has "wget"; then # Emulate curl with wget - ARGS=$(echo "$*" | command sed -e 's/--progress-bar /--progress=bar /' \ - -e 's/-L //' \ + ARGS=$(nvm_echo "$@" | command sed -e 's/--progress-bar /--progress=bar /' \ -e 's/--compressed //' \ + -e 's/--fail //' \ + -e 's/-L //' \ -e 's/-I /--server-response /' \ -e 's/-s /-q /' \ + -e 's/-sS /-nv /' \ -e 's/-o /-O /' \ -e 's/-C - /-c /') # shellcheck disable=SC2086 From 502089ae308c3a771e09d233f8221ea17a0647dd Mon Sep 17 00:00:00 2001 From: nmarghetti Date: Thu, 7 Jan 2021 02:50:05 +0100 Subject: [PATCH 1336/1426] [New] install script: Allow installation from other repository also for git method --- install.sh | 42 +++++--- test/install_script/install_nvm_from_git | 121 +++++++++++++++++++++++ 2 files changed, 152 insertions(+), 11 deletions(-) create mode 100755 test/install_script/install_nvm_from_git diff --git a/install.sh b/install.sh index 16382b3..3bcb6f0 100755 --- a/install.sh +++ b/install.sh @@ -100,20 +100,32 @@ nvm_download() { install_nvm_from_git() { local INSTALL_DIR INSTALL_DIR="$(nvm_install_dir)" + local NVM_VERSION + NVM_VERSION="${NVM_INSTALL_VERSION:-$(nvm_latest_version)}" + if [ -n "${NVM_INSTALL_VERSION:-}" ]; then + # Check if version is an existing ref + if command git ls-remote "$(nvm_source "git")" "$NVM_VERSION" | nvm_grep -q "$NVM_VERSION" ; then + : + # Check if version is an existing changeset + elif ! nvm_download -o /dev/null "$(nvm_source "script-nvm-exec")"; then + echo >&2 "Failed to find '$NVM_VERSION' version." + exit 1 + fi + fi + local fetch_error if [ -d "$INSTALL_DIR/.git" ]; then + # Updating repo echo "=> nvm is already installed in $INSTALL_DIR, trying to update using git" command printf '\r=> ' - command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" fetch origin tag "$(nvm_latest_version)" --depth=1 2> /dev/null || { - echo >&2 "Failed to update nvm, run 'git fetch' in $INSTALL_DIR yourself." - exit 1 - } + fetch_error="Failed to update nvm with $NVM_VERSION, run 'git fetch' in $INSTALL_DIR yourself." else - # Cloning to $INSTALL_DIR + fetch_error="Failed to fetch origin with $NVM_VERSION. Please report this!" echo "=> Downloading nvm from git to '$INSTALL_DIR'" command printf '\r=> ' mkdir -p "${INSTALL_DIR}" if [ "$(ls -A "${INSTALL_DIR}")" ]; then + # Initializing repo command git init "${INSTALL_DIR}" || { echo >&2 'Failed to initialize nvm repo. Please report this!' exit 2 @@ -123,18 +135,26 @@ install_nvm_from_git() { echo >&2 'Failed to add remote "origin" (or set the URL). Please report this!' exit 2 } - command git --git-dir="${INSTALL_DIR}/.git" fetch origin tag "$(nvm_latest_version)" --depth=1 || { - echo >&2 'Failed to fetch origin with tags. Please report this!' - exit 2 - } else - command git -c advice.detachedHead=false clone "$(nvm_source)" -b "$(nvm_latest_version)" --depth=1 "${INSTALL_DIR}" || { + # Cloning repo + command git clone "$(nvm_source)" --depth=1 "${INSTALL_DIR}" || { echo >&2 'Failed to clone nvm repo. Please report this!' exit 2 } fi fi - command git -c advice.detachedHead=false --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" checkout -f --quiet "$(nvm_latest_version)" + # Try to fetch tag + if command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" fetch origin tag "$NVM_VERSION" --depth=1 2>/dev/null; then + : + # Fetch given version + elif ! command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" fetch origin "$NVM_VERSION" --depth=1; then + echo >&2 "$fetch_error" + exit 1 + fi + command git -c advice.detachedHead=false --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" checkout -f --quiet FETCH_HEAD || { + echo >&2 "Failed to checkout the given version $NVM_VERSION. Please report this!" + exit 2 + } if [ -n "$(command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" show-ref refs/heads/master)" ]; then if command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" branch --quiet 2>/dev/null; then command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" branch --quiet -D master >/dev/null 2>&1 diff --git a/test/install_script/install_nvm_from_git b/test/install_script/install_nvm_from_git new file mode 100755 index 0000000..161bbcb --- /dev/null +++ b/test/install_script/install_nvm_from_git @@ -0,0 +1,121 @@ +#!/bin/sh + +SAVE_NVM_DIR="$NVM_DIR" +SAVE_NVM_INSTALL_VERSION="$NVM_INSTALL_VERSION" + +cleanup () { + NVM_DIR="$SAVE_NVM_DIR" + NVM_INSTALL_VERSION="$SAVE_NVM_INSTALL_VERSION" + unset SAVE_NVM_DIR SAVE_NVM_INSTALL_VERSION + unset -f die cleanup test_step get_head_ref get_head_changeset get_fetch_head_changeset \ + step_to_previous_changeset test_install_data test_install +} + +die () { echo -e "$@" ; cleanup ; exit 1; } + +NVM_ENV=testing \. ../../install.sh + +set -ex + +# nvm_do_install is available +type install_nvm_from_git > /dev/null 2>&1 || die 'install_nvm_from_git is not available' + +test_step() { + echo -e "\e[33m$*\e[0m" +} + +get_head_ref(){ + git --git-dir "$NVM_DIR"/.git --no-pager log --pretty=format:'%d' -1 +} + +get_head_changeset() { + git --git-dir "$NVM_DIR"/.git rev-parse --verify HEAD +} + +get_fetch_head_changeset() { + git --git-dir "$NVM_DIR"/.git rev-parse --verify FETCH_HEAD +} + +step_to_previous_changeset() { + git --git-dir "$NVM_DIR"/.git fetch origin +"$(get_head_changeset)" --depth=2 + git --git-dir "$NVM_DIR"/.git reset --hard HEAD~1 +} + +# args: +# - 1: current ref +# - 2: current changeset +# - 3: error message +# - 4: ref to check ("" if none) +# - 5: changeset to check ("" if none) +# - 6: ref to avoid ("" if none) +test_install_data() { + local current_ref="$1" + local current_changeset="$2" + local message="$3" + local ref="$4" + local changeset="$5" + local avoid_ref="$6" + if [ -n "$ref" ]; then + echo "$current_ref" | grep -q "$ref" || die "install_nvm_from_git $message did not clone with ref $ref" + fi + if [ -n "$avoid_ref" ]; then + echo "$current_ref" | grep -q "$avoid_ref" && die "install_nvm_from_git $message did clone with unwanted ref $avoid_ref" + fi + if [ -n "$changeset" ]; then + echo "$current_changeset" | grep -q "$changeset" || die "install_nvm_from_git $message did not clone with changeset $changeset" + fi +} + +# args: +# - 1: version to install ("" for latest, tag, ref or changeset) +# - 2: error message +# - 3: ref to check ("" if none) +# - 4: changeset to check ("" if none) +# - 5: ref to avoid ("" if none) +test_install() { + NVM_INSTALL_VERSION="$1" + local message="$2" + local ref="$3" + local changeset="$4" + local avoid_ref="$5" + + NVM_DIR=$(mktemp -d) || die 'Unable to create temporary directory' + NVM_DIR="$NVM_DIR/clone" + + # Ensure it clones the repository for non existing directory + test_step "Clones repo $message" + install_nvm_from_git + test_install_data "$(get_head_ref)" "$(get_head_changeset)" "$message" "$ref" "$changeset" "$avoid_ref" + rm -rf "$NVM_DIR" + + # Ensure it initializes the repository for an empty existing repository + mkdir -p "$NVM_DIR" || die 'Unable to create directory' + test_step "Initialize repo $message" + install_nvm_from_git + test_install_data "$(get_head_ref)" "$(get_head_changeset)" "$message" "$ref" "$changeset" "$avoid_ref" + rm -rf "$NVM_DIR" + + # Ensure it updates the repository for an existing git repository + git clone "$(nvm_source "git")" -b "v0.36.0" --depth=2 "$NVM_DIR" || die 'Unable to clone repository' + step_to_previous_changeset + test_step "Updates repo $message" + install_nvm_from_git + test_install_data "$(get_head_ref)" "$(get_head_changeset)" "$message" "$ref" "$changeset" "$avoid_ref" + rm -rf "$NVM_DIR" +} + +# Handle latest version +test_install "" "latest version" "$(nvm_latest_version)" + +# Handle given changeset +changeset="3abb98124e8d30c9652976c9d34a7380036083b5" +test_install "$changeset" "with changeset $changeset" "" "$changeset" "$(nvm_latest_version)" + +# Handle given tag +test_install "v0.37.0" "version v0.37.0" "v0.37.0" "4054bd70cedb9998015c2d8cc468c818c7d2f57d" "$(nvm_latest_version)" + +# Handle given ref +test_install "refs/pull/2397/head" "with refs/pull/2397/head" "" "9849bf494d50e74aa810451fb1f83208b0092dd6" "$(nvm_latest_version)" +test_install "master" "master" "" "" "$(nvm_latest_version)" + +cleanup From 3243f7a08272a5f973a92fec781589e98f9f47b7 Mon Sep 17 00:00:00 2001 From: "Brandon L. Reiss" Date: Wed, 27 Jan 2021 13:12:17 -0500 Subject: [PATCH 1337/1426] [Fix] Fix potential unbound var error on nvm install Fixes #2420. When using `nvm install` with an already installed version, Bash (and potentially other shells) may emit an unbound variable error when `set -u` is set. The presence of the error depends on specific shell versions, but appears to happen in MacOS 11.1 (Big Sur) using a recent Bash version installed via Homebrew (as of this writing). The fix accesses `ALIAS` correctly for the case where it is not set by an `alias` option to `nvm install`. --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 8d57cae..e0eccfe 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3078,7 +3078,7 @@ nvm() { nvm_ensure_default_set "${provided_version}" fi - if [ -n "${ALIAS}" ]; then + if [ -n "${ALIAS-}" ]; then nvm alias "${ALIAS}" "${provided_version}" fi From 49e806c77a7b4d42ed2fc411444c97b801bc529b Mon Sep 17 00:00:00 2001 From: Matt Calthrop Date: Thu, 21 Jan 2021 20:45:12 +0000 Subject: [PATCH 1338/1426] [readme] Add macOS troubleshooting instructions for M1 chip --- README.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/README.md b/README.md index 53b3710..4ffc28f 100644 --- a/README.md +++ b/README.md @@ -871,3 +871,55 @@ Ignore insecure directories and continue [y] or abort compinit [n]? y ``` Homebrew causes insecure directories like `/usr/local/share/zsh/site-functions` and `/usr/local/share/zsh`. This is **not** an `nvm` problem - it is a homebrew problem. Refer [here](https://github.com/zsh-users/zsh-completions/issues/680) for some solutions related to the issue. + +**Macs with M1 chip** + +_January 2021:_ there are no pre-compiled NodeJS binaries for versions prior to 15.x for Apple's new M1 chip (arm64 architecture). + +Some issues you may encounter: + +- using `nvm` to install, say, `v14.15.4`: + - the C code compiles successfully + - but crashes with an out of memory error when used + - increasing the memory available to node still produces the out of memory errors: + ```sh + $ NODE_OPTIONS="--max-old-space-size=4096" ./node_modules/.bin/your_node_package + ``` +- when using `nvm` to install some versions, the compilation fails + +One solution to this issue is to change the architecture of your shell from arm64 to x86. + +Let's assume that: +- you already have versions `12.20.1` and `14.15.4` installed using `nvm` +- the current version in use is `14.15.4` +- you are using the `zsh` shell + +```sh +# Check what version you're running: +$ node --version +v14.15.4 +# Check architecture of the `node` binary: +$ node -p process.arch +arm64 +# This confirms that the arch is for the M1 chip, which is causing the problems. +# So we need to uninstall it. +# We can't uninstall the version we are currently using, so switch to another version: +$ nvm install v12.20.1 +# Now uninstall the version we want to replace: +$ nvm uninstall v14.15.4 +# Set the architecture for our shell to 64-bit X86: +$ arch -x86_64 zsh +``` + +At this point in time, we are still in the shell that is running using the M1 architecture. + +So we now need to open a new terminal window in order to run our shell in the 64-bit X86 architecture. + +```sh +# `node` will not be on the path in this new terminal window. +# So install it: +$ nvm install v14.15.4 +# Now check that the architecture is correct: +$ node -p process.arch +x64 +``` From 4c11ab1ac63cdd1d0dfc8e87b7c655d17d28401a Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 1 Feb 2021 14:32:35 -0800 Subject: [PATCH 1339/1426] [actions] update workflows --- .github/workflows/release.yml | 2 +- .github/workflows/toc.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c0db844..596a040 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -7,7 +7,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - uses: actions/setup-node@v2-beta + - uses: actions/setup-node@v2 with: node-version: "14" - run: npm install diff --git a/.github/workflows/toc.yml b/.github/workflows/toc.yml index 879e409..55ea20f 100644 --- a/.github/workflows/toc.yml +++ b/.github/workflows/toc.yml @@ -17,7 +17,7 @@ jobs: # pulls all tags (needed for lerna / semantic release to correctly version) - run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* - - uses: actions/setup-node@v1 + - uses: actions/setup-node@v2 with: node-version: '12.x' - run: npm install From 0d14d7f6b7ae615f06aae27de574cf6115170ef3 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 1 Feb 2021 14:31:06 -0800 Subject: [PATCH 1340/1426] [Dev Deps] update `doctoc`, `replace`, `semver` --- Makefile | 2 +- package.json | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index db0c21f..cc2944b 100644 --- a/Makefile +++ b/Makefile @@ -80,6 +80,6 @@ release: _ensure-tag _ensure-clean _ensure-current-version new_ver=`semver -i "$$new_ver" "$$old_ver"` || { echo 'Invalid version-increment specifier: $(TAG)' >&2; exit 2; } \ fi; \ printf "=== Bumping version **$$old_ver** to **$$new_ver** before committing and tagging:\n=== TYPE 'proceed' TO PROCEED, anything else to abort: " && read response && [ "$$response" = 'proceed' ] || { echo 'Aborted.' >&2; exit 2; }; \ - replace "$$old_ver" "$$new_ver" -- $(VERSIONED_FILES) && \ + replace "$$old_ver" "$$new_ver" $(VERSIONED_FILES) && \ git commit -m "v$$new_ver" $(VERSIONED_FILES) && \ git tag -a "v$$new_ver" diff --git a/package.json b/package.json index 1c683bb..f520f7e 100644 --- a/package.json +++ b/package.json @@ -37,10 +37,10 @@ "homepage": "https://github.com/nvm-sh/nvm", "devDependencies": { "dockerfile_lint": "^0.3.2", - "doctoc": "^1.2.0", + "doctoc": "^2.0.0", "eclint": "^2.6.0", - "replace": "^0.3.0", - "semver": "^5.0.1", + "replace": "^1.2.0", + "semver": "^7.3.4", "urchin": "^0.0.5" } } From 0fad5ec5755c0519ff30182b69761c84abca9f2b Mon Sep 17 00:00:00 2001 From: Arshath Date: Fri, 5 Feb 2021 19:45:26 +0530 Subject: [PATCH 1341/1426] [readme] quote asterisk in shell command on `--latest-npm` example --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4ffc28f..cc6054d 100644 --- a/README.md +++ b/README.md @@ -320,7 +320,7 @@ Note that reinstalling packages _explicitly does not update the npm version_ — To update npm at the same time add the `--latest-npm` flag, like this: ```sh -nvm install lts/* --reinstall-packages-from=default --latest-npm +nvm install 'lts/*' --reinstall-packages-from=default --latest-npm ``` or, you can at any time run the following command to get the latest supported npm version on the current node version: From d5c1441a83e456da1b01638742841034705ccbf4 Mon Sep 17 00:00:00 2001 From: David Zulaica Date: Sat, 13 Feb 2021 03:41:41 -0800 Subject: [PATCH 1342/1426] [readme] Update M1 macOS troubleshooting instructions --- README.md | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index cc6054d..d391342 100644 --- a/README.md +++ b/README.md @@ -909,17 +909,11 @@ $ nvm install v12.20.1 $ nvm uninstall v14.15.4 # Set the architecture for our shell to 64-bit X86: $ arch -x86_64 zsh -``` - -At this point in time, we are still in the shell that is running using the M1 architecture. - -So we now need to open a new terminal window in order to run our shell in the 64-bit X86 architecture. - -```sh -# `node` will not be on the path in this new terminal window. -# So install it: +# Install node using nvm. This should download the precompiled x64 binary: $ nvm install v14.15.4 # Now check that the architecture is correct: $ node -p process.arch x64 +# It is now safe to revert zsh back to the native architecture: +$ arch -arm64 zsh ``` From a5742d4e9e316878a56187ce89a30f465f8e52e9 Mon Sep 17 00:00:00 2001 From: shiyutim Date: Thu, 7 Jan 2021 10:51:33 +0800 Subject: [PATCH 1343/1426] [readme] add install error tips --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index d391342..e6a99c2 100644 --- a/README.md +++ b/README.md @@ -102,6 +102,8 @@ If you get `nvm: command not found` after running the install script, one of the - You might need to restart your terminal instance or run `. ~/.nvm/nvm.sh`. Restarting your terminal/opening a new tab/window, or running the source command will load the command and the new configuration. + - You have previously used `bash`, but you have `zsh` installed. You need to manually add [these lines](#manual-install) to `~/.zshrc` and run `. ~/.zshrc`. + If the above doesn't fix the problem, you may try the following: - If you use bash, it may be that your `.bash_profile` (or `~/.profile`) does not source your `~/.bashrc` properly. You could fix this by adding `source ~/` to it or follow the next step below. From d396181ffba9a4f5addb24900f88c4b9308c8b54 Mon Sep 17 00:00:00 2001 From: nmarghetti Date: Sat, 2 Jan 2021 00:03:24 +0100 Subject: [PATCH 1344/1426] [Refactor] add `nvm_get_artifact_compression` --- nvm.sh | 30 ++++++++++++++----- .../Unit tests/nvm_get_artifact_compression | 16 ++++++++++ test/fast/Unit tests/nvm_get_checksum | 4 +-- 3 files changed, 40 insertions(+), 10 deletions(-) create mode 100755 test/fast/Unit tests/nvm_get_artifact_compression diff --git a/nvm.sh b/nvm.sh index e0eccfe..a50879f 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1559,7 +1559,7 @@ nvm_get_checksum() { SHASUMS_URL="${MIRROR}/${3}/SHASUMS.txt" fi - nvm_download -L -s "${SHASUMS_URL}" -o - | command awk "{ if (\"${4}.tar.${5}\" == \$2) print \$1}" + nvm_download -L -s "${SHASUMS_URL}" -o - | command awk "{ if (\"${4}.${5}\" == \$2) print \$1}" } nvm_print_versions() { @@ -1983,6 +1983,22 @@ nvm_get_download_slug() { fi } +nvm_get_artifact_compression() { + local VERSION + VERSION="${1-}" + + local NVM_OS + NVM_OS="$(nvm_get_os)" + + local COMPRESSION + COMPRESSION='tar.gz' + if nvm_supports_xz "${VERSION}"; then + COMPRESSION='tar.xz' + fi + + nvm_echo "${COMPRESSION}" +} + # args: flavor, kind, type, version nvm_download_artifact() { local FLAVOR @@ -2029,10 +2045,7 @@ nvm_download_artifact() { SLUG="$(nvm_get_download_slug "${FLAVOR}" "${KIND}" "${VERSION}")" local COMPRESSION - COMPRESSION='gz' - if nvm_supports_xz "${VERSION}"; then - COMPRESSION='xz' - fi + COMPRESSION="$(nvm_get_artifact_compression "${VERSION}")" local CHECKSUM CHECKSUM="$(nvm_get_checksum "${FLAVOR}" "${TYPE}" "${VERSION}" "${SLUG}" "${COMPRESSION}")" @@ -2049,13 +2062,13 @@ nvm_download_artifact() { ) local TARBALL - TARBALL="${tmpdir}/${SLUG}.tar.${COMPRESSION}" + TARBALL="${tmpdir}/${SLUG}.${COMPRESSION}" local TARBALL_URL if nvm_version_greater_than_or_equal_to "${VERSION}" 0.1.14; then - TARBALL_URL="${MIRROR}/${VERSION}/${SLUG}.tar.${COMPRESSION}" + TARBALL_URL="${MIRROR}/${VERSION}/${SLUG}.${COMPRESSION}" else # node <= 0.1.13 does not have a directory - TARBALL_URL="${MIRROR}/${SLUG}.tar.${COMPRESSION}" + TARBALL_URL="${MIRROR}/${SLUG}.${COMPRESSION}" fi if [ -r "${TARBALL}" ]; then @@ -3944,6 +3957,7 @@ nvm() { nvm_npmrc_bad_news_bears \ nvm_get_colors nvm_set_colors nvm_print_color_code nvm_format_help_message_colors \ nvm_echo_with_colors nvm_err_with_colors \ + nvm_get_artifact_compression \ >/dev/null 2>&1 unset NVM_RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_IOJS_ORG_MIRROR NVM_DIR \ NVM_CD_FLAGS NVM_BIN NVM_INC NVM_MAKE_JOBS \ diff --git a/test/fast/Unit tests/nvm_get_artifact_compression b/test/fast/Unit tests/nvm_get_artifact_compression new file mode 100755 index 0000000..ed7a180 --- /dev/null +++ b/test/fast/Unit tests/nvm_get_artifact_compression @@ -0,0 +1,16 @@ +#!/bin/sh + +cleanup () { + unset -f die cleanup +} +die () { echo "$@" ; cleanup ; exit 1; } + +\. ../../../nvm.sh + +# nvm_get_artifact_compression by default +[ "$(nvm_get_artifact_compression)" = 'tar.gz' ] || die 'nvm_get_artifact_compression should return "tar.gz" by default' + +# nvm_get_artifact_compression with xz +[ "$(nvm_get_artifact_compression "14.0.0")" = 'tar.xz' ] || die 'nvm_get_artifact_compression should return "tar.xz" for this version' + +cleanup diff --git a/test/fast/Unit tests/nvm_get_checksum b/test/fast/Unit tests/nvm_get_checksum index 53e6839..975a3e6 100755 --- a/test/fast/Unit tests/nvm_get_checksum +++ b/test/fast/Unit tests/nvm_get_checksum @@ -31,14 +31,14 @@ nvm_download() { nvm_get_checksum_alg() { echo 'sha-256' } -OUTPUT="$(nvm_get_checksum node std foo bar baz)" +OUTPUT="$(nvm_get_checksum node std foo bar tar.baz)" EXPECTED_OUTPUT="mirror-node-std/foo/SHASUMS256.txt" [ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" nvm_get_checksum_alg() { echo 'sha-1' } -OUTPUT="$(nvm_get_checksum iojs std foo bar baz)" +OUTPUT="$(nvm_get_checksum iojs std foo bar tar.baz)" EXPECTED_OUTPUT="mirror-iojs-std/foo/SHASUMS.txt" [ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" From 7f6c0c053a9a6cf061778c6cc9be2dd21c37011a Mon Sep 17 00:00:00 2001 From: nmarghetti Date: Sat, 2 Jan 2021 00:03:24 +0100 Subject: [PATCH 1345/1426] [Refactor] add `nvm_install_binary_extract` --- nvm.sh | 76 +++++++++++++------ .../Unit tests/nvm_install_binary_extract | 56 ++++++++++++++ 2 files changed, 109 insertions(+), 23 deletions(-) create mode 100644 test/fast/Unit tests/nvm_install_binary_extract diff --git a/nvm.sh b/nvm.sh index a50879f..f6c4ec4 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1858,6 +1858,53 @@ nvm_get_mirror() { esac } +# args: os, prefixed version, version, tarball, extract directory +nvm_install_binary_extract() { + if [ "$#" -ne 5 ]; then + nvm_err 'nvm_install_binary_extract needs 5 parameters' + return 1 + fi + + local NVM_OS + local PREFIXED_VERSION + local VERSION + local TARBALL + local TMPDIR + NVM_OS="${1}" + PREFIXED_VERSION="${2}" + VERSION="${3}" + TARBALL="${4}" + TMPDIR="${5}" + + local VERSION_PATH + + [ -n "${TMPDIR-}" ] && \ + command mkdir -p "${TMPDIR}" && \ + VERSION_PATH="$(nvm_version_path "${PREFIXED_VERSION}")" || return 1 + + local tar_compression_flag + tar_compression_flag='z' + if nvm_supports_xz "${VERSION}"; then + tar_compression_flag='J' + fi + + local tar + if [ "${NVM_OS}" = 'aix' ]; then + tar='gtar' + else + tar='tar' + fi + command "${tar}" -x${tar_compression_flag}f "${TARBALL}" -C "${TMPDIR}" --strip-components 1 || return 1 + + command mkdir -p "${VERSION_PATH}" || return 1 + + command mv "${TMPDIR}/"* "${VERSION_PATH}" || return 1 + + command rm -rf "${TMPDIR}" + + return 0 +} + # args: flavor, type, version, reinstall nvm_install_binary() { local FLAVOR @@ -1882,19 +1929,15 @@ nvm_install_binary() { local VERSION VERSION="$(nvm_strip_iojs_prefix "${PREFIXED_VERSION}")" - if [ -z "$(nvm_get_os)" ]; then - return 2 - fi + local NVM_OS + NVM_OS="$(nvm_get_os)" - local tar_compression_flag - tar_compression_flag='z' - if nvm_supports_xz "${VERSION}"; then - tar_compression_flag='J' + if [ -z "${NVM_OS}" ]; then + return 2 fi local TARBALL local TMPDIR - local VERSION_PATH local PROGRESS_BAR local NODE_OR_IOJS @@ -1914,21 +1957,8 @@ nvm_install_binary() { if [ -f "${TARBALL}" ]; then TMPDIR="$(dirname "${TARBALL}")/files" fi - local tar - tar='tar' - if [ "${NVM_OS}" = 'aix' ]; then - tar='gtar' - fi - if ( - [ -n "${TMPDIR-}" ] && \ - command mkdir -p "${TMPDIR}" && \ - command "${tar}" -x${tar_compression_flag}f "${TARBALL}" -C "${TMPDIR}" --strip-components 1 && \ - VERSION_PATH="$(nvm_version_path "${PREFIXED_VERSION}")" && \ - command mkdir -p "${VERSION_PATH}" && \ - command mv "${TMPDIR}/"* "${VERSION_PATH}" && \ - command rm -rf "${TMPDIR}" - ); then + if nvm_install_binary_extract "${NVM_OS}" "${PREFIXED_VERSION}" "${VERSION}" "${TARBALL}" "${TMPDIR}"; then if [ -n "${ALIAS-}" ]; then nvm alias "${ALIAS}" "${provided_version}" fi @@ -3957,7 +3987,7 @@ nvm() { nvm_npmrc_bad_news_bears \ nvm_get_colors nvm_set_colors nvm_print_color_code nvm_format_help_message_colors \ nvm_echo_with_colors nvm_err_with_colors \ - nvm_get_artifact_compression \ + nvm_get_artifact_compression nvm_install_binary_extract \ >/dev/null 2>&1 unset NVM_RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_IOJS_ORG_MIRROR NVM_DIR \ NVM_CD_FLAGS NVM_BIN NVM_INC NVM_MAKE_JOBS \ diff --git a/test/fast/Unit tests/nvm_install_binary_extract b/test/fast/Unit tests/nvm_install_binary_extract new file mode 100644 index 0000000..a0fc58a --- /dev/null +++ b/test/fast/Unit tests/nvm_install_binary_extract @@ -0,0 +1,56 @@ +#!/bin/sh + +cleanup () { + [ -d "$tmp_dir" ] && rm -rf "$tmp_dir" + [ -d "$NVM_DIR" ] && rm -rf "$NVM_DIR" + unset -f die cleanup test_archi nvm_supports_xz + unset NVM_DIR tmp_dir version archi +} + +die () { echo "$@" ; cleanup ; exit 1; } + +test_archi(){ + local os="$1" + local version="$2" + local archi="$os-$3" + local node="$4" + local ext="$5" + local command="$6" + local command_option="$7" + local node_path="$tmp_dir/node-$version-$archi/$node" + + # Create tarball + mkdir -p "$(dirname "$node_path")" + echo "node $version" > "$node_path" + (cd "$tmp_dir" && "$command" "$command_option" "$tmp_dir/node-$version-$archi.$ext" "node-$version-$archi" && rm -rf "$tmp_dir/node-$version-$archi") + [ -f "$tmp_dir/node-$version-$archi.$ext" ] || die "Unable to create fake $ext file" + + # Extract it + nvm_install_binary_extract "$os" "$version" "${version:1}" "$tmp_dir/node-$version-$archi.$ext" "$tmp_dir/files" + [ "$(cat "$NVM_DIR/versions/node/$version/bin/node")" = "node $version" ] || die "Unable to extract $ext file" +} + +\. ../../../nvm.sh + +set -ex + +# nvm_install_binary_extract is available +type nvm_install_binary_extract > /dev/null 2>&1 || die 'nvm_install_binary_extract is not available' + +NVM_DIR=$(mktemp -d) +tmp_dir=$(mktemp -d) +if [ -z "$NVM_DIR" ] || [ -z "$tmp_dir" ]; then + die 'Unable to create temporary folder' +fi + +# Test linux tar.xz +test_archi 'linux' 'v14.15.4' 'x64' 'bin/node' 'tar.xz' 'tar' '-cJf' + +nvm_supports_xz(){ + return 1 +} + +# Test linux tar.gz +test_archi 'linux' 'v12.9.0' 'x64' 'bin/node' 'tar.gz' 'tar' '-czf' + +cleanup From 87f37909f226b68e059b258d057a8cc5da107b8e Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 15 Feb 2021 14:33:44 -0800 Subject: [PATCH 1346/1426] [meta] add CODE_OF_CONDUCT.md --- CODE_OF_CONDUCT.md | 106 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 CODE_OF_CONDUCT.md diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..cad8e65 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,106 @@ +# Code of Conduct + +`nvm`, as a member project of the OpenJS Foundation, uses [Contributor Covenant v1.4](https://www.contributor-covenant.org/version/1/4/code-of-conduct) as their code of conduct. The full text is included [below](#contributor-covenant-code-of-conduct) in English, and translations are available from the Contributor Covenant organisation: + +- [contributor-covenant.org/translations](https://www.contributor-covenant.org/translations) +- [github.com/ContributorCovenant](https://github.com/ContributorCovenant/contributor_covenant/tree/release/content/version/1/4) + +Refer to the sections on reporting and escalation in this document for the specific emails that can be used to report and escalate issues. + +## Reporting + +### Project Spaces + +For reporting issues in spaces related to `nvm` please use the email `ljharb@gmail.com`. `nvm` handles CoC issues related to the spaces that it maintains. Projects maintainers commit to: + +- maintain the confidentiality with regard to the reporter of an incident +- to participate in the path for escalation as outlined in + the section on Escalation when required. + +### Foundation Spaces + +For reporting issues in spaces managed by the OpenJS Foundation, for example, repositories within the OpenJS organization, use the email `report@lists.openjsf.org`. The Cross Project Council (CPC) is responsible for managing these reports and commits to: + +- maintain the confidentiality with regard to the reporter of an incident +- to participate in the path for escalation as outlined in + the section on Escalation when required. + +## Escalation + +The OpenJS Foundation maintains a Code of Conduct Panel (CoCP). This is a foundation-wide team established to manage escalation when a reporter believes that a report to a member project or the CPC has not been properly handled. In order to escalate to the CoCP send an email to `coc-escalation@lists.openjsf.org`. + +For more information, refer to the full [Code of Conduct governance document](https://github.com/openjs-foundation/cross-project-council/blob/master/CODE_OF_CONDUCT.md). + +--- + +## Contributor Covenant Code of Conduct + +### Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, gender identity and expression, level of experience, +nationality, personal appearance, race, religion, or sexual identity and +orientation. + +### Our Standards + +Examples of behavior that contributes to creating a positive environment include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a professional setting + +### Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +### Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +### Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at the email addresses listed above in +the [Reporting](#reporting) and [Escalation](#escalation) sections. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an +incident. Further details of specific enforcement policies may be posted +separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at [https://www.contributor-covenant.org/version/1/4/code-of-conduct/](https://www.contributor-covenant.org/version/1/4/code-of-conduct/) + +[homepage]: https://www.contributor-covenant.org From d9b11ba20843c8bc10772157571a67b9076b7ba5 Mon Sep 17 00:00:00 2001 From: farmer <1153595464@qq.com> Date: Fri, 19 Feb 2021 21:12:03 +0800 Subject: [PATCH 1347/1426] [readme] update `cdnvm` implementation --- README.md | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/README.md b/README.md index e6a99c2..c41d0f8 100644 --- a/README.md +++ b/README.md @@ -503,17 +503,9 @@ If you prefer a lighter-weight solution, the recipes below have been contributed Put the following at the end of your `$HOME/.bashrc`: ```bash -find-up() { - path=$(pwd) - while [[ "$path" != "" && ! -e "$path/$1" ]]; do - path=${path%/*} - done - echo "$path" -} - cdnvm() { cd "$@"; - nvm_path=$(find-up .nvmrc | tr -d '\n') + nvm_path=$(nvm_find_up .nvmrc | tr -d '\n') # If there are no .nvmrc file, use the default nvm version if [[ ! $nvm_path = *[^[:space:]]* ]]; then From 4fdef427e4b1d563570ba5992bdbe7d7e23f025b Mon Sep 17 00:00:00 2001 From: Sladyn Nunes Date: Tue, 16 Feb 2021 19:34:23 +0530 Subject: [PATCH 1348/1426] [New] `install`: add `-b` flag to skip building from source Fixes #2114. --- nvm.sh | 27 +++++++++++++- .../Unit tests/nvm_install_binary_nosource | 30 +++++++++++++++ .../install from binary with binary flag set | 37 +++++++++++++++++++ 3 files changed, 93 insertions(+), 1 deletion(-) create mode 100755 test/fast/Unit tests/nvm_install_binary_nosource create mode 100644 test/installation_node/install from binary with binary flag set diff --git a/nvm.sh b/nvm.sh index f6c4ec4..d1947f3 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1926,6 +1926,9 @@ nvm_install_binary() { return 3 fi + local nosource + nosource="${4-}" + local VERSION VERSION="$(nvm_strip_iojs_prefix "${PREFIXED_VERSION}")" @@ -1965,6 +1968,13 @@ nvm_install_binary() { return 0 fi + + # Read nosource from arguments + if [ "${nosource-}" = '1' ]; then + nvm_err 'Binary download failed. Download from source aborted.' + return 0 + fi + nvm_err 'Binary download failed, trying source.' if [ -n "${TMPDIR-}" ]; then command rm -rf "${TMPDIR}" @@ -2665,6 +2675,7 @@ nvm() { nvm_echo ' nvm install [] Download and install a . Uses .nvmrc if available and version is omitted.' nvm_echo ' The following optional arguments, if provided, must appear directly after `nvm install`:' nvm_echo ' -s Skip binary download, install from source only.' + nvm_echo ' -b Skip source download, install from binary only.' nvm_echo ' --reinstall-packages-from= When installing, reinstall packages installed in ' nvm_echo ' --lts When installing, only select from LTS (long-term support) versions' nvm_echo ' --lts= When installing, only select from versions for a specific LTS line' @@ -2879,9 +2890,11 @@ nvm() { fi local nobinary + local nosource local noprogress nobinary=0 noprogress=0 + nosource=0 local LTS local ALIAS local NVM_UPGRADE_NPM @@ -2901,6 +2914,18 @@ nvm() { -s) shift # consume "-s" nobinary=1 + if [ $nosource -eq 1 ]; then + nvm err '-s and -b cannot be set together since they would skip install from both binary and source' + return 6 + fi + ;; + -b) + shift # consume "-b" + nosource=1 + if [ $nobinary -eq 1 ]; then + nvm err '-s and -b cannot be set together since they would skip install from both binary and source' + return 6 + fi ;; -j) shift # consume "-j" @@ -3165,7 +3190,7 @@ nvm() { # skip binary install if "nobinary" option specified. if [ $nobinary -ne 1 ] && nvm_binary_available "${VERSION}"; then - NVM_NO_PROGRESS="${NVM_NO_PROGRESS:-${noprogress}}" nvm_install_binary "${FLAVOR}" std "${VERSION}" + NVM_NO_PROGRESS="${NVM_NO_PROGRESS:-${noprogress}}" nvm_install_binary "${FLAVOR}" std "${VERSION}" "${nosource}" EXIT_CODE=$? fi if [ $EXIT_CODE -ne 0 ]; then diff --git a/test/fast/Unit tests/nvm_install_binary_nosource b/test/fast/Unit tests/nvm_install_binary_nosource new file mode 100755 index 0000000..e425b15 --- /dev/null +++ b/test/fast/Unit tests/nvm_install_binary_nosource @@ -0,0 +1,30 @@ +#!/bin/sh + +cleanup () { + nvm cache clear + nvm deactivate + rm -rf ${NVM_DIR}/v* + nvm unalias default +} + +die () { echo "$@" ; cleanup; exit 1;} + +\. ../../../nvm.sh + +nvm_binary_available() { + return 1 +} + +# Unit test to check if the function errors out when the flag is set +OUTPUT="$(nvm_install_binary node std 8.0.0 1 2>&1)" +EXPECTED_OUTPUT='Binary download failed. Download from source aborted.' +if [ "${OUTPUT#*$EXPECTED_OUTPUT}" = "${OUTPUT}" ]; then + die "No source binary flag is active and should have returned >${EXPECTED_OUTPUT}<. Instead it returned >${OUTPUT}<" +fi + +# Unit test to check if the function errors out when the flag is set +OUTPUT="$(nvm_install_binary node std 8.0.0 0 2>&1)" +EXPECTED_OUTPUT='Binary download failed. Download from source aborted.' +if [ "${OUTPUT#*$EXPECTED_OUTPUT}" != "${OUTPUT}" ]; then + die "No source binary flag is not active and should have downloaded from source. Instead it returned >${OUTPUT}<" +fi diff --git a/test/installation_node/install from binary with binary flag set b/test/installation_node/install from binary with binary flag set new file mode 100644 index 0000000..35e53ab --- /dev/null +++ b/test/installation_node/install from binary with binary flag set @@ -0,0 +1,37 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../nvm.sh + +nvm unalias default || die 'unable to unalias default' + +NVM_TEST_VERSION=v0.10.7 + +# Remove the stuff we're clobbering. +[ -e ../../$NVM_TEST_VERSION ] && rm -R ../../$NVM_TEST_VERSION + +# Install from binary +nvm install -b $NVM_TEST_VERSION || die "install $NVM_TEST_VERSION failed" + +# Check +[ -d ../../$NVM_TEST_VERSION ] +nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION || die "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" + +# ensure default is set +NVM_CURRENT_DEFAULT="$(nvm_alias default)" +[ "$NVM_CURRENT_DEFAULT" = "$NVM_TEST_VERSION" ] || die "wrong default alias: $(nvm alias)" + +# Falls back to source but if -b is set fails binary download. +OUTPUT="$(nvm install -b 9.0.0 2>&1)" +EXPECTED_OUTPUT='Binary download failed. Download from source aborted.' +if [ "${OUTPUT#*$EXPECTED_OUTPUT}" = "${OUTPUT}" ]; then + die "No source binary flag is active and should have returned >${EXPECTED_OUTPUT}<. Instead it returned >${OUTPUT}<" +fi + +# Falls back to source but if -b is not set. +OUTPUT="$(nvm install 9.0.0 2>&1)" +EXPECTED_OUTPUT='Binary download failed. Download from source aborted.' +if [ "${OUTPUT#*$EXPECTED_OUTPUT}" != "${OUTPUT}" ]; then + die "No source binary flag is active and should have returned >${EXPECTED_OUTPUT}<. Instead it returned >${OUTPUT}<" +fi From 52f67b36777ea738e6e16cf4d9be033868f0201e Mon Sep 17 00:00:00 2001 From: Vesa Vilhonen Date: Fri, 20 Nov 2020 13:06:28 +0200 Subject: [PATCH 1349/1426] [Fix] `exec`: `--` should stop argument parsing Co-authored-by: Vesa Vilhonen Co-authored-by: Sladyn Nunes --- nvm.sh | 1 + .../Running 'nvm exec' with help should not parse | 9 +++++++++ 2 files changed, 10 insertions(+) create mode 100644 test/slow/nvm exec/Running 'nvm exec' with help should not parse diff --git a/nvm.sh b/nvm.sh index d1947f3..b5232c6 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2612,6 +2612,7 @@ nvm() { for i in "$@" do case $i in + --) break ;; '-h'|'help'|'--help') NVM_NO_COLORS="" for j in "$@"; do diff --git a/test/slow/nvm exec/Running 'nvm exec' with help should not parse b/test/slow/nvm exec/Running 'nvm exec' with help should not parse new file mode 100644 index 0000000..4e8b632 --- /dev/null +++ b/test/slow/nvm exec/Running 'nvm exec' with help should not parse @@ -0,0 +1,9 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +nvm use 0.10 + +nvm exec stable -- node --help | grep 'Usage: node [options]' || die "Help menu should have been displayed for node and not nvm" From 1081ed161b9d62b975c6253ebc146e3de0dc8c66 Mon Sep 17 00:00:00 2001 From: Lukman Date: Sat, 26 Dec 2020 22:23:35 +0530 Subject: [PATCH 1350/1426] [New] `install`: add parallel build support for openbsd Co-authored-by: Lukman Co-authored-by: Sladyn Nunes --- nvm.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index b5232c6..c2eb1d0 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1760,6 +1760,7 @@ nvm_get_os() { Darwin\ *) NVM_OS=darwin ;; SunOS\ *) NVM_OS=sunos ;; FreeBSD\ *) NVM_OS=freebsd ;; + OpenBSD\ *) NVM_OS=openbsd ;; AIX\ *) NVM_OS=aix ;; esac nvm_echo "${NVM_OS-}" @@ -2160,7 +2161,7 @@ nvm_get_make_jobs() { "_linux") NVM_CPU_CORES="$(nvm_grep -c -E '^processor.+: [0-9]+' /proc/cpuinfo)" ;; - "_freebsd" | "_darwin") + "_freebsd" | "_darwin" | "_openbsd") NVM_CPU_CORES="$(sysctl -n hw.ncpu)" ;; "_sunos") From 641f86879f9c39c3ad1148c491711ca574122b00 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 11 Mar 2021 13:06:41 -0800 Subject: [PATCH 1351/1426] [Tests] update mocks - make call count test depend on mocks --- test/fast/Unit tests/mocks/LTS_names.txt | 1 + .../mocks/nodejs.org-dist-index.tab | 84 +++- .../nodejs.org-download-nightly-index.tab | 380 ++++++++++++++++++ .../Unit tests/mocks/nvm ls-remote lts.txt | 35 +- .../Unit tests/mocks/nvm ls-remote node.txt | 72 +++- test/fast/Unit tests/mocks/nvm ls-remote.txt | 72 +++- .../Unit tests/mocks/nvm_ls_remote LTS.txt | 35 +- .../mocks/nvm_ls_remote nightly.txt | 8 +- .../mocks/nvm_ls_remote stable nightly.txt | 2 +- .../Unit tests/mocks/nvm_ls_remote stable.txt | 2 +- test/fast/Unit tests/mocks/nvm_ls_remote.txt | 72 +++- .../mocks/nvm_make_alias LTS alias calls.txt | 7 +- ...t_implicit_alias remote stable nightly.txt | 2 +- ...nvm_print_implicit_alias remote stable.txt | 2 +- .../fast/Unit tests/nvm_ls_remote LTS aliases | 3 +- 15 files changed, 750 insertions(+), 27 deletions(-) diff --git a/test/fast/Unit tests/mocks/LTS_names.txt b/test/fast/Unit tests/mocks/LTS_names.txt index b814a02..e0ce3c1 100644 --- a/test/fast/Unit tests/mocks/LTS_names.txt +++ b/test/fast/Unit tests/mocks/LTS_names.txt @@ -1,3 +1,4 @@ +fermium erbium dubnium carbon diff --git a/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab b/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab index e86370e..d2edcaf 100644 --- a/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab +++ b/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab @@ -1,5 +1,49 @@ version date files npm v8 uv zlib openssl modules lts security -v13.10.0 2020-03-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 79 - - +v15.11.0 2021-03-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.6.0 8.6.395.17 1.41.0 1.2.11 1.1.1j 88 - - +v15.10.0 2021-02-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.3 8.6.395.17 1.41.0 1.2.11 1.1.1j 88 - true +v15.9.0 2021-02-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.3 8.6.395.17 1.41.0 1.2.11 1.1.1i 88 - - +v15.8.0 2021-02-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.1 8.6.395.17 1.40.0 1.2.11 1.1.1i 88 - - +v15.7.0 2021-01-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.4.3 8.6.395.17 1.40.0 1.2.11 1.1.1i 88 - - +v15.6.0 2021-01-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.4.0 8.6.395.17 1.40.0 1.2.11 1.1.1i 88 - - +v15.5.1 2021-01-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.3.0 8.6.395.17 1.40.0 1.2.11 1.1.1i 88 - true +v15.5.0 2020-12-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.3.0 8.6.395.17 1.40.0 1.2.11 1.1.1i 88 - - +v15.4.0 2020-12-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.15 8.6.395.17 1.40.0 1.2.11 1.1.1g 88 - - +v15.3.0 2020-11-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.14 8.6.395.17 1.40.0 1.2.11 1.1.1g 88 - - +v15.2.1 2020-11-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.8 8.6.395.17 1.40.0 1.2.11 1.1.1g 88 - true +v15.2.0 2020-11-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.8 8.6.395.17 1.40.0 1.2.11 1.1.1g 88 - - +v15.1.0 2020-11-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.8 8.6.395.17 1.40.0 1.2.11 1.1.1g 88 - - +v15.0.1 2020-10-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.3 8.6.395.17 1.40.0 1.2.11 1.1.1g 88 - - +v15.0.0 2020-10-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.2 8.6.395.16 1.40.0 1.2.11 1.1.1g 88 - - +v14.16.0 2021-02-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.11 8.4.371.19 1.40.0 1.2.11 1.1.1j 83 Fermium true +v14.15.5 2021-02-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.11 8.4.371.19 1.40.0 1.2.11 1.1.1i 83 Fermium - +v14.15.4 2021-01-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.10 8.4.371.19 1.40.0 1.2.11 1.1.1i 83 Fermium true +v14.15.3 2020-12-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.9 8.4.371.19 1.40.0 1.2.11 1.1.1g 83 Fermium - +v14.15.2 2020-12-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.9 8.4.371.19 1.40.0 1.2.11 1.1.1g 83 Fermium - +v14.15.1 2020-11-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.40.0 1.2.11 1.1.1g 83 Fermium true +v14.15.0 2020-10-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.40.0 1.2.11 1.1.1g 83 Fermium - +v14.14.0 2020-10-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.40.0 1.2.11 1.1.1g 83 - - +v14.13.1 2020-10-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.40.0 1.2.11 1.1.1g 83 - - +v14.13.0 2020-09-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.40.0 1.2.11 1.1.1g 83 - - +v14.12.0 2020-09-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 83 - - +v14.11.0 2020-09-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 83 - true +v14.10.1 2020-09-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 83 - - +v14.10.0 2020-09-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 83 - - +v14.9.0 2020-08-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 83 - - +v14.8.0 2020-08-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.7 8.4.371.19 1.38.1 1.2.11 1.1.1g 83 - - +v14.7.0 2020-07-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.7 8.4.371.19 1.38.1 1.2.11 1.1.1g 83 - - +v14.6.0 2020-07-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.6 8.4.371.19 1.38.1 1.2.11 1.1.1g 83 - - +v14.5.0 2020-06-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 83 - - +v14.4.0 2020-06-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.1.307.31 1.37.0 1.2.11 1.1.1g 83 - true +v14.3.0 2020-05-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.1.307.31 1.37.0 1.2.11 1.1.1g 83 - - +v14.2.0 2020-05-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.31 1.37.0 1.2.11 1.1.1g 83 - - +v14.1.0 2020-04-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.31 1.37.0 1.2.11 1.1.1g 83 - - +v14.0.0 2020-04-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.30 1.37.0 1.2.11 1.1.1f 83 - - +v13.14.0 2020-04-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 7.9.317.25 1.37.0 1.2.11 1.1.1g 79 - - +v13.13.0 2020-04-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 7.9.317.25 1.35.0 1.2.11 1.1.1f 79 - - +v13.12.0 2020-03-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 7.9.317.25 1.35.0 1.2.11 1.1.1e 79 - - +v13.11.0 2020-03-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 79 - - +v13.10.1 2020-03-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 79 - - +v13.10.0 2020-03-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 79 - - v13.9.0 2020-02-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 79 - - v13.8.0 2020-02-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 79 - true v13.7.0 2020-01-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 79 - - @@ -10,12 +54,26 @@ v13.3.0 2019-12-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linu v13.2.0 2019-11-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.23 1.33.1 1.2.11 1.1.1d 79 - - v13.1.0 2019-11-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.1 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - v13.0.1 2019-10-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - -v13.0.0 2019-10-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.32.0 1.2.11 1.1.1d 79 - - -v12.16.1 2020-02-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.8.279.23 1.34.0 1.2.11 1.1.1d 72 Erbium - +v13.0.0 2019-10-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.32.0 1.2.11 1.1.1d 79 - - +v12.21.0 2021-02-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.11 7.8.279.23 1.40.0 1.2.11 1.1.1j 72 Erbium true +v12.20.2 2021-02-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.11 7.8.279.23 1.40.0 1.2.11 1.1.1i 72 Erbium - +v12.20.1 2021-01-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.10 7.8.279.23 1.40.0 1.2.11 1.1.1i 72 Erbium - +v12.20.0 2020-11-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 7.8.279.23 1.40.0 1.2.11 1.1.1g 72 Erbium - +v12.19.1 2020-11-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 7.8.279.23 1.39.0 1.2.11 1.1.1g 72 Erbium true +v12.19.0 2020-10-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 7.8.279.23 1.39.0 1.2.11 1.1.1g 72 Erbium - +v12.18.4 2020-09-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.6 7.8.279.23 1.38.0 1.2.11 1.1.1g 72 Erbium true +v12.18.3 2020-07-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.6 7.8.279.23 1.38.0 1.2.11 1.1.1g 72 Erbium - +v12.18.2 2020-06-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 7.8.279.23 1.38.0 1.2.11 1.1.1g 72 Erbium - +v12.18.1 2020-06-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 7.8.279.23 1.38.0 1.2.11 1.1.1g 72 Erbium - +v12.18.0 2020-06-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 7.8.279.23 1.37.0 1.2.11 1.1.1g 72 Erbium true +v12.17.0 2020-05-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 7.8.279.23 1.37.0 1.2.11 1.1.1g 72 Erbium - +v12.16.3 2020-04-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 7.8.279.23 1.34.2 1.2.11 1.1.1g 72 Erbium - +v12.16.2 2020-04-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 7.8.279.23 1.34.2 1.2.11 1.1.1e 72 Erbium - +v12.16.1 2020-02-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.8.279.23 1.34.0 1.2.11 1.1.1d 72 Erbium - v12.16.0 2020-02-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.8.279.23 1.34.0 1.2.11 1.1.1d 72 Erbium - v12.15.0 2020-02-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.7.299.13 1.33.1 1.2.11 1.1.1d 72 Erbium true v12.14.1 2020-01-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.7.299.13 1.33.1 1.2.11 1.1.1d 72 Erbium - -v12.14.0 2019-12-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.7.299.13 1.33.1 1.2.11 1.1.1d 72 Erbium true +v12.14.0 2019-12-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.7.299.13 1.33.1 1.2.11 1.1.1d 72 Erbium true v12.13.1 2019-11-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.1 7.7.299.13 1.33.1 1.2.11 1.1.1d 72 Erbium - v12.13.0 2019-10-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.7.299.13 1.32.0 1.2.11 1.1.1d 72 Erbium - v12.12.0 2019-10-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.13 1.32.0 1.2.11 1.1.1d 72 - - @@ -52,10 +110,20 @@ v11.3.0 2018-11-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux v11.2.0 2018-11-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.23.2 1.2.11 1.1.0i 67 - - v11.1.0 2018-10-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.32 1.23.2 1.2.11 1.1.0i 67 - - v11.0.0 2018-10-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.28 1.23.2 1.2.11 1.1.0i 67 - - +v10.24.0 2021-02-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.11 6.8.275.32 1.34.2 1.2.11 1.1.1j 64 Dubnium true +v10.23.3 2021-02-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.11 6.8.275.32 1.34.2 1.2.11 1.1.1i 64 Dubnium - +v10.23.2 2021-01-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.10 6.8.275.32 1.34.2 1.2.11 1.1.1i 64 Dubnium - +v10.23.1 2021-01-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.10 6.8.275.32 1.34.2 1.2.11 1.1.1i 64 Dubnium - +v10.23.0 2020-10-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 6.8.275.32 1.34.2 1.2.11 1.1.1g 64 Dubnium - +v10.22.1 2020-09-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.6 6.8.275.32 1.34.2 1.2.11 1.1.1g 64 Dubnium true +v10.22.0 2020-07-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.6 6.8.275.32 1.34.2 1.2.11 1.1.1g 64 Dubnium - +v10.21.0 2020-06-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 6.8.275.32 1.34.2 1.2.11 1.1.1e 64 Dubnium true +v10.20.1 2020-04-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 6.8.275.32 1.34.2 1.2.11 1.1.1e 64 Dubnium - +v10.20.0 2020-03-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 6.8.275.32 1.34.2 1.2.11 1.1.1e 64 Dubnium - v10.19.0 2020-02-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 6.8.275.32 1.28.0 1.2.11 1.1.1d 64 Dubnium true -v10.18.1 2020-01-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 6.8.275.32 1.28.0 1.2.11 1.1.1d 64 Dubnium - -v10.18.0 2019-12-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 6.8.275.32 1.28.0 1.2.11 1.1.1d 64 Dubnium true -v10.17.0 2019-10-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 6.8.275.32 1.28.0 1.2.11 1.1.1d 64 Dubnium - +v10.18.1 2020-01-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 6.8.275.32 1.28.0 1.2.11 1.1.1d 64 Dubnium - +v10.18.0 2019-12-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 6.8.275.32 1.28.0 1.2.11 1.1.1d 64 Dubnium true +v10.17.0 2019-10-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 6.8.275.32 1.28.0 1.2.11 1.1.1d 64 Dubnium - v10.16.3 2019-08-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1c 64 Dubnium true v10.16.2 2019-08-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1c 64 Dubnium - v10.16.1 2019-07-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1c 64 Dubnium - @@ -102,7 +170,7 @@ v9.2.0 2017-11-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux- v9.1.0 2017-11-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - - v9.0.0 2017-10-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - - v8.17.0 2019-12-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 6.2.414.78 1.23.2 1.2.11 1.0.2s 57 Carbon true -v8.16.2 2019-10-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.2.414.78 1.23.2 1.2.11 1.0.2s 57 Carbon - +v8.16.2 2019-10-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.2.414.78 1.23.2 1.2.11 1.0.2s 57 Carbon - v8.16.1 2019-08-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.2.414.77 1.23.2 1.2.11 1.0.2r 57 Carbon true v8.16.0 2019-04-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.2.414.77 1.23.2 1.2.11 1.0.2r 57 Carbon - v8.15.1 2019-02-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.2.414.75 1.23.2 1.2.11 1.0.2r 57 Carbon true diff --git a/test/fast/Unit tests/mocks/nodejs.org-download-nightly-index.tab b/test/fast/Unit tests/mocks/nodejs.org-download-nightly-index.tab index 456145b..dd1f3d8 100644 --- a/test/fast/Unit tests/mocks/nodejs.org-download-nightly-index.tab +++ b/test/fast/Unit tests/mocks/nodejs.org-download-nightly-index.tab @@ -1,4 +1,369 @@ version date files npm v8 uv zlib openssl modules lts security +v16.0.0-nightly202103118a6d7a09f2 2021-03-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.6.1 8.9.255.19 1.41.0 1.2.11 1.1.1j 92 - - +v16.0.0-nightly20210310853086fbaa 2021-03-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.6.1 8.9.255.19 1.41.0 1.2.11 1.1.1j 92 - - +v16.0.0-nightly202103097f54dd4f07 2021-03-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.6.1 8.9.255.19 1.41.0 1.2.11 1.1.1j 92 - - +v16.0.0-nightly20210307d63b717044 2021-03-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.6.1 8.9.255.19 1.41.0 1.2.11 1.1.1j 92 - - +v16.0.0-nightly20210306f3d3769f9f 2021-03-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.6.1 8.9.255.19 1.41.0 1.2.11 1.1.1j 92 - - +v16.0.0-nightly2021030549342fe6f2 2021-03-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.6.0 8.9.255.19 1.41.0 1.2.11 1.1.1j 92 - - +v16.0.0-nightly202103043b2863db12 2021-03-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.6.0 8.9.255.19 1.41.0 1.2.11 1.1.1j 92 - - +v16.0.0-nightly2021030320def25f25 2021-03-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.6.0 8.9.255.19 1.41.0 1.2.11 1.1.1j 92 - - +v16.0.0-nightly20210302b3f35e2c70 2021-03-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.6 8.9.255.19 1.41.0 1.2.11 1.1.1j 92 - - +v16.0.0-nightly202103011e34df139c 2021-03-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.6 8.9.255.19 1.41.0 1.2.11 1.1.1j 92 - - +v16.0.0-nightly202102287a4c2c8d86 2021-02-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.6 8.9.255.19 1.41.0 1.2.11 1.1.1j 92 - - +v16.0.0-nightly20210227fc6d8f4b84 2021-02-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.6 8.9.255.19 1.41.0 1.2.11 1.1.1j 92 - - +v16.0.0-nightly20210226f392ac0bbe 2021-02-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.6 8.9.255.19 1.41.0 1.2.11 1.1.1j 92 - - +v16.0.0-nightly20210225001dc16cf1 2021-02-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.3 8.9.255.19 1.41.0 1.2.11 1.1.1j 92 - - +v16.0.0-nightly2021022480098e605c 2021-02-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.3 8.8.278.17 1.41.0 1.2.11 1.1.1j 91 - true +v16.0.0-nightly202102231d2ba1eb74 2021-02-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.3 8.8.278.17 1.41.0 1.2.11 1.1.1j 91 - - +v16.0.0-nightly20210222574590d553 2021-02-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.3 8.8.278.17 1.41.0 1.2.11 1.1.1j 91 - - +v16.0.0-nightly2021022104fb597996 2021-02-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.3 8.8.278.17 1.41.0 1.2.11 1.1.1j 91 - - +v16.0.0-nightly202102205421e15bdc 2021-02-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.3 8.8.278.17 1.41.0 1.2.11 1.1.1j 91 - - +v16.0.0-nightly2021021903806a0bb2 2021-02-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.3 8.8.278.17 1.41.0 1.2.11 1.1.1i 91 - - +v16.0.0-nightly202102189a2ac2c615 2021-02-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.3 8.8.278.17 1.41.0 1.2.11 1.1.1i 91 - - +v16.0.0-nightly202102178353854ed7 2021-02-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 7.5.3 8.8.278.17 1.41.0 1.2.11 1.1.1i 91 - - +v16.0.0-nightly20210216eec20ed5c1 2021-02-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.3 8.8.278.17 1.41.0 1.2.11 1.1.1i 91 - - +v16.0.0-nightly20210215bcb1964560 2021-02-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.3 8.8.278.17 1.40.0 1.2.11 1.1.1i 91 - - +v16.0.0-nightly20210214ce4798b555 2021-02-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.3 8.8.278.17 1.40.0 1.2.11 1.1.1i 91 - - +v16.0.0-nightly2021021388d9268d08 2021-02-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.3 8.8.278.17 1.40.0 1.2.11 1.1.1i 91 - - +v16.0.0-nightly202102126ea9af9906 2021-02-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.3 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20210211ad38be4f6a 2021-02-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.3 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20210210857fbdb13f 2021-02-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.3 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20210209beee53884d 2021-02-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.2 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20210208b346cd1760 2021-02-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.2 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20210207d6e94463b3 2021-02-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.2 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly202102062ff1c83518 2021-02-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.2 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly2021020562cd0ebef7 2021-02-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.2 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20210204fe43bd8ddd 2021-02-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.2 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20210203861a396a4a 2021-02-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.2 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20210202b5f5c46129 2021-02-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20210201683754c6f3 2021-02-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20210131d0a92e2c32 2021-01-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20210130d3906ae294 2021-01-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20210129b9dfda9b46 2021-01-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.4.3 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly202101288c9dc4e9e6 2021-01-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.4.3 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20210127da3a9486a8 2021-01-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.4.3 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly2021012613ac5fbc57 2021-01-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.4.3 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly2021012590cae3acee 2021-01-25 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.4.3 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20210124835b85d5e9 2021-01-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.4.3 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly202101232242cbb253 2021-01-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.4.3 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20210122a35b32ec1e 2021-01-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.4.3 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20210121e279304954 2021-01-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.4.2 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20210120e3e054d020 2021-01-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.4.2 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20210119fef21282ef 2021-01-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.4.2 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly202101187efada695f 2021-01-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.4.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20210117f658bd1e8f 2021-01-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.4.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20210116f64ad30c35 2021-01-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.4.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly202101150f789488d4 2021-01-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.4.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly202101148f327338d3 2021-01-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.4.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly202101136e3a8327fc 2021-01-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.4.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly202101122af43f6505 2021-01-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.4.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly202101111c4fa9a48a 2021-01-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.3.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20210110a3606f25dc 2021-01-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.3.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20210109a45a404197 2021-01-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.3.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly2021010815e47ed10d 2021-01-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.3.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly202101071e35d5802a 2021-01-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.3.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20210106dd14dbaa6c 2021-01-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.3.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20210105ca86e34f55 2021-01-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.3.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly202101048b8620d580 2021-01-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.3.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20210103d548f4d116 2021-01-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.3.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20210102873d21cdc1 2021-01-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.3.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly2021010151b4367506 2021-01-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.3.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20201231c380ee6785 2020-12-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.3.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly2020123034afcc6fd9 2020-12-30 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.3.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20201229e57d8af7e2 2020-12-29 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.3.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20201228c27efd4e6b 2020-12-28 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.3.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly2020122775afb6c7a6 2020-12-27 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.3.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly202012267303afb4e1 2020-12-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.3.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly2020122573a21e4c06 2020-12-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.3.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly202012242c8751cb85 2020-12-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.3.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20201223e22b751cce 2020-12-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.3.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly2020122221f2e8859d 2020-12-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.3.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20201221ab895bd587 2020-12-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.2.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20201219daa132260d 2020-12-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.2.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20201218b49145f795 2020-12-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.2.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20201217eb14b10370 2020-12-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.2.0 8.7.220.24 1.40.0 1.2.11 1.1.1i 89 - - +v16.0.0-nightly20201216a150926177 2020-12-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.1.2 8.7.220.24 1.40.0 1.2.11 1.1.1g 89 - - +v16.0.0-nightly20201215752991d27d 2020-12-15 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.1.2 8.7.220.24 1.40.0 1.2.11 1.1.1g 89 - - +v16.0.0-nightly202012142cd8350185 2020-12-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.1.2 8.7.220.24 1.40.0 1.2.11 1.1.1g 89 - - +v16.0.0-nightly2020121378d1f8db5d 2020-12-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.1.2 8.7.220.24 1.40.0 1.2.11 1.1.1g 89 - - +v16.0.0-nightly20201212743ee9d2c0 2020-12-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.1.1 8.7.220.24 1.40.0 1.2.11 1.1.1g 89 - - +v16.0.0-nightly202012117e5bf48998 2020-12-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 7.1.0 8.7.220.24 1.40.0 1.2.11 1.1.1g 89 - - +v16.0.0-nightly202012108b697246df 2020-12-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 7.1.0 8.7.220.24 1.40.0 1.2.11 1.1.1g 89 - - +v16.0.0-nightly202012098dbeac6c04 2020-12-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.15 8.7.220.24 1.40.0 1.2.11 1.1.1g 89 - - +v16.0.0-nightly20201208ca8eb795be 2020-12-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.15 8.7.220.24 1.40.0 1.2.11 1.1.1g 89 - - +v16.0.0-nightly20201207ff048bd797 2020-12-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.15 8.7.220.24 1.40.0 1.2.11 1.1.1g 89 - - +v16.0.0-nightly202012065477969555 2020-12-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.15 8.7.220.24 1.40.0 1.2.11 1.1.1g 89 - - +v16.0.0-nightly202012050fd121e00c 2020-12-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.15 8.7.220.24 1.40.0 1.2.11 1.1.1g 89 - - +v16.0.0-nightly20201204f7dd330ba0 2020-12-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.15 8.7.220.24 1.40.0 1.2.11 1.1.1g 89 - - +v16.0.0-nightly20201203393a1feeee 2020-12-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.15 8.7.220.24 1.40.0 1.2.11 1.1.1g 89 - - +v16.0.0-nightly202012021ed72f67f5 2020-12-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.15 8.7.220.24 1.40.0 1.2.11 1.1.1g 89 - - +v16.0.0-nightly202012012dc6bf0d12 2020-12-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.15 8.7.220.24 1.40.0 1.2.11 1.1.1g 89 - - +v16.0.0-nightly20201130f34866a61c 2020-11-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.14 8.7.220.24 1.40.0 1.2.11 1.1.1g 89 - - +v16.0.0-nightly20201129299984561e 2020-11-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.14 8.7.220.24 1.40.0 1.2.11 1.1.1g 89 - - +v16.0.0-nightly20201128b938f88204 2020-11-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.14 8.7.220.24 1.40.0 1.2.11 1.1.1g 89 - - +v16.0.0-nightly202011270a23d65a62 2020-11-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.14 8.7.220.24 1.40.0 1.2.11 1.1.1g 89 - - +v16.0.0-nightly202011264c97325c4e 2020-11-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.14 8.7.220.24 1.40.0 1.2.11 1.1.1g 89 - - +v16.0.0-nightly202011254f0f2e7138 2020-11-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.14 8.7.220.24 1.40.0 1.2.11 1.1.1g 89 - - +v16.0.0-nightly202011244388c1478a 2020-11-24 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.13 8.7.220.24 1.40.0 1.2.11 1.1.1g 89 - - +v16.0.0-nightly20201123f3821cd8d7 2020-11-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.12 8.7.220.24 1.40.0 1.2.11 1.1.1g 89 - - +v16.0.0-nightly202011220d468ab200 2020-11-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.12 8.7.220.24 1.40.0 1.2.11 1.1.1g 89 - - +v16.0.0-nightly2020112103fd363472 2020-11-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.12 8.7.220.24 1.40.0 1.2.11 1.1.1g 89 - - +v16.0.0-nightly20201120bb3cbba953 2020-11-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.11 8.7.220.24 1.40.0 1.2.11 1.1.1g 89 - - +v16.0.0-nightly20201119d6d4721f3b 2020-11-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.11 8.7.220.24 1.40.0 1.2.11 1.1.1g 89 - true +v16.0.0-nightly20201118cbfa2d11d4 2020-11-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.11 8.7.220.24 1.40.0 1.2.11 1.1.1g 89 - true +v16.0.0-nightly2020111708be03b7cb 2020-11-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.11 8.7.220.24 1.40.0 1.2.11 1.1.1g 89 - true +v16.0.0-nightly202011162fd22353ea 2020-11-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.8 8.7.220.24 1.40.0 1.2.11 1.1.1g 89 - - +v16.0.0-nightly20201115feff38501a 2020-11-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.8 8.6.395.17 1.40.0 1.2.11 1.1.1g 88 - - +v16.0.0-nightly20201114c7d2a4544b 2020-11-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.8 8.6.395.17 1.40.0 1.2.11 1.1.1g 88 - - +v16.0.0-nightly20201113f03f7cbd35 2020-11-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.8 8.6.395.17 1.40.0 1.2.11 1.1.1g 88 - - +v16.0.0-nightly20201112f6ada622b7 2020-11-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.8 8.6.395.17 1.40.0 1.2.11 1.1.1g 88 - - +v16.0.0-nightly2020111139a7f7663e 2020-11-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.8 8.6.395.17 1.40.0 1.2.11 1.1.1g 88 - - +v16.0.0-nightly20201110da53a3caa3 2020-11-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.8 8.6.395.17 1.40.0 1.2.11 1.1.1g 88 - - +v16.0.0-nightly20201109adae822035 2020-11-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.8 8.6.395.17 1.40.0 1.2.11 1.1.1g 88 - - +v16.0.0-nightly20201108f06f3c0ea0 2020-11-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.8 8.6.395.17 1.40.0 1.2.11 1.1.1g 88 - - +v16.0.0-nightly2020110785b42af439 2020-11-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.8 8.6.395.17 1.40.0 1.2.11 1.1.1g 88 - - +v16.0.0-nightly20201106e6e6070364 2020-11-06 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.8 8.6.395.17 1.40.0 1.2.11 1.1.1g 88 - - +v16.0.0-nightly202011051387f4b938 2020-11-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.8 8.6.395.17 1.40.0 1.2.11 1.1.1g 88 - - +v16.0.0-nightly2020110458280ff24f 2020-11-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.8 8.6.395.17 1.40.0 1.2.11 1.1.1g 88 - - +v16.0.0-nightly202011031a29c0920c 2020-11-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.7 8.6.395.17 1.40.0 1.2.11 1.1.1g 88 - - +v16.0.0-nightly2020110209af8c822c 2020-11-02 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.3 8.6.395.17 1.40.0 1.2.11 1.1.1g 88 - - +v16.0.0-nightly202011015735525404 2020-11-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.3 8.6.395.17 1.40.0 1.2.11 1.1.1g 88 - - +v16.0.0-nightly20201031c0af8bdc1c 2020-10-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.3 8.6.395.17 1.40.0 1.2.11 1.1.1g 88 - - +v16.0.0-nightly20201030e8fe38f7cf 2020-10-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.3 8.6.395.17 1.40.0 1.2.11 1.1.1g 88 - - +v16.0.0-nightly20201029bec918fb9b 2020-10-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.3 8.6.395.17 1.40.0 1.2.11 1.1.1g 88 - - +v16.0.0-nightly20201028923f76d523 2020-10-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.3 8.6.395.17 1.40.0 1.2.11 1.1.1g 88 - - +v16.0.0-nightly202010278f1e4d37bf 2020-10-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.3 8.6.395.17 1.40.0 1.2.11 1.1.1g 88 - - +v16.0.0-nightly20201026e2d22060ab 2020-10-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.3 8.6.395.17 1.40.0 1.2.11 1.1.1g 88 - - +v16.0.0-nightly2020102570834250e8 2020-10-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.3 8.6.395.17 1.40.0 1.2.11 1.1.1g 88 - - +v16.0.0-nightly20201024fdaf9cbfe3 2020-10-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.3 8.6.395.17 1.40.0 1.2.11 1.1.1g 88 - - +v16.0.0-nightly202010233f4ec9c30b 2020-10-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.3 8.6.395.17 1.40.0 1.2.11 1.1.1g 88 - - +v16.0.0-nightly202010227657f62b18 2020-10-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.3 8.6.395.17 1.40.0 1.2.11 1.1.1g 88 - - +v16.0.0-nightly20201021c2ceb15fd5 2020-10-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.2 8.6.395.16 1.40.0 1.2.11 1.1.1g 88 - - +v15.0.0-nightly2020102011f1ad939f 2020-10-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.2 8.6.395.16 1.40.0 1.2.11 1.1.1g 88 - - +v15.0.0-nightly20201019c55f661551 2020-10-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.2 8.6.395.16 1.40.0 1.2.11 1.1.1g 88 - - +v15.0.0-nightly20201018ee85eb9f8a 2020-10-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.0 8.4.371.19 1.40.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20201017a3731309cc 2020-10-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.0 8.4.371.19 1.40.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20201016c143266b55 2020-10-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.0 8.4.371.19 1.40.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly202010154079bfd462 2020-10-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.0 8.4.371.19 1.40.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20201014d5e64952fe 2020-10-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.0-rc.4 8.4.371.19 1.40.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly2020101344a66adbaa 2020-10-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.0-rc.4 8.4.371.19 1.40.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly202010122d83e743d9 2020-10-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.0-rc.4 8.4.371.19 1.40.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly2020101191e0d9bc30 2020-10-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.0-rc.4 8.4.371.19 1.40.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly202010108d8e06a345 2020-10-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.0-rc.3 8.4.371.19 1.40.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20201009c8b950a7af 2020-10-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.0-rc.3 8.4.371.19 1.40.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20201008ccc822c7c8 2020-10-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.0-rc.3 8.4.371.19 1.40.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20201007bc0c094b74 2020-10-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.40.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20201006642f2064c0 2020-10-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.40.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly202010055e605c0dd9 2020-10-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.40.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20201004e6d5af3c95 2020-10-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.40.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20201003e7bb8b6dc0 2020-10-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.40.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly202010024a6005c56a 2020-10-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 6.14.8 8.4.371.19 1.40.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20201001726143e683 2020-10-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.40.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200930ee9e3e75aa 2020-09-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.40.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly202009291e8cb08edc 2020-09-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.40.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly202009286fc3b0ddb9 2020-09-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.40.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200927af92317909 2020-09-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.40.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200926aa99bb47bf 2020-09-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200925785a5f9ae1 2020-09-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200924d6fe46f749 2020-09-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly202009233b10f7f933 2020-09-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200922d71b467bbe 2020-09-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200921039c274dde 2020-09-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200920770ad3a52d 2020-09-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly2020091931b3202d59 2020-09-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly202009182d868fe822 2020-09-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 86 - true +v15.0.0-nightly2020091718462e0c1d 2020-09-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 86 - true +v15.0.0-nightly202009169cf9e4aebc 2020-09-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 86 - true +v15.0.0-nightly202009152b3eb101b5 2020-09-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly202009149d12c14b19 2020-09-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200913b123e0806f 2020-09-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200912541d296d56 2020-09-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly202009114f176c9110 2020-09-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly202009104c9b79ed5a 2020-09-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly202009091204400d64 2020-09-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly202009086f2af08245 2020-09-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200907bb9117ee9f 2020-09-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200906e326c41fbc 2020-09-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200905186230527b 2020-09-05 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly202009043b925219c3 2020-09-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200903b23a932bfd 2020-09-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200902e2ffa454d3 2020-09-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly2020090159cad32b51 2020-09-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200831e1edd6bbfa 2020-08-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly202008305c020762bb 2020-08-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly2020082994fcac7876 2020-08-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly202008280848f56cb3 2020-08-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly202008278ec3b55e5b 2020-08-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200826c6b96895cc 2020-08-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.39.0 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200825010383a174 2020-08-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200824c3d337db5d 2020-08-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly202008238e8d429277 2020-08-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly2020082244e6a6af67 2020-08-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.8 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly202008217aeff6b8c8 2020-08-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.7 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly2020082003293aa3a1 2020-08-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.7 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly202008196e97a735c8 2020-08-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.7 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200818ca5ff723d1 2020-08-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.7 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly2020081742a3a7f97d 2020-08-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.7 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200816375b859428 2020-08-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.7 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly202008158da8ec9c7e 2020-08-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.7 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly202008145864fca7bc 2020-08-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.7 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly202008137a1220a1d7 2020-08-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.7 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly202008122f27f1144e 2020-08-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.7 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200811f8a0e62bbf 2020-08-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.7 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200810dd0c5228ac 2020-08-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.7 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly202008098825eb4d73 2020-08-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.7 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200808ac5773b1c3 2020-08-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.7 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly2020080746bef7b771 2020-08-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.7 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200806df17fcdc71 2020-08-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.7 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly2020080584b35b2867 2020-08-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.7 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly2020080474df7496ff 2020-08-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.7 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200803a9c5b873ca 2020-08-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.7 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly2020080273d713b16e 2020-08-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.7 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200801cc7ec889e8 2020-08-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.7 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200731dc00a07426 2020-07-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.7 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly202007301fe39f0b4b 2020-07-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.7 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200729360bf9b289 2020-07-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.7 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly202007286fd09e4f36 2020-07-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.7 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200727db54b57042 2020-07-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.7 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly2020072631ba9a20bd 2020-07-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.6 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200725de192246bc 2020-07-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.6 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200724d1e4e8eaba 2020-07-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.6 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly2020072341c1e72b76 2020-07-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.6 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200722b0b52b2023 2020-07-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.6 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly202007212c05beeb54 2020-07-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.6 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200720a51436cbea 2020-07-20 aix-ppc64,linux-arm64,linux-armv7l,linux-s390x,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.6 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly202007190c81cadec6 2020-07-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.6 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly202007187a447bcd54 2020-07-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.6 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200717bf0d82c102 2020-07-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.6 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200716d46fc91be4 2020-07-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.6 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly202007153b130327fa 2020-07-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.6 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200714c7627da837 2020-07-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.6 8.4.371.19 1.38.1 1.2.11 1.1.1g 86 - - +v15.0.0-nightly20200712ac6ecd6b7f 2020-07-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.1 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200711c176d5fac2 2020-07-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly202007101237955d41 2020-07-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly202007096ae1b9c457 2020-07-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200708e0ecde9737 2020-07-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly2020070730612316e4 2020-07-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly2020070667ba825037 2020-07-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly2020070556dbe466fd 2020-07-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200704bff7de3b43 2020-07-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly202007031dc837ed9a 2020-07-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200702c118304ad0 2020-07-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200701e2b468eb5c 2020-07-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200630c23d2fd3f8 2020-06-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly2020062990d5f35f7a 2020-06-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200628f89530fccc 2020-06-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200627f63436d190 2020-06-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200626e18afe45d2 2020-06-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200625e405e82f74 2020-06-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200624d8f8723577 2020-06-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly2020062386cbad837b 2020-06-23 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200622122038c6a2 2020-06-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200620fdf10adef8 2020-06-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly2020061956967afdca 2020-06-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200618a4f3206b76 2020-06-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200617ee7f0e3f75 2020-06-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200616b371213d3d 2020-06-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200615f645cc7318 2020-06-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200614c17d2f9901 2020-06-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly202006137b46793eee 2020-06-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200612bba9b008ef 2020-06-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200611f4e805c860 2020-06-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200610362e4a1aec 2020-06-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200609921f75534c 2020-06-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly202006088a4b5c63e0 2020-06-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200607d8eef83757 2020-06-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly202006063ac50e1209 2020-06-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - true +v15.0.0-nightly202006053e2a300710 2020-06-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - true +v15.0.0-nightly202006043a7a5d7e62 2020-06-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - true +v15.0.0-nightly20200603680fb8fc62 2020-06-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - true +v15.0.0-nightly20200602b1704e4347 2020-06-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly202005312935f72ae1 2020-05-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200530d79c330186 2020-05-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly202005296a1df3b5af 2020-05-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly2020052847044a91c6 2020-05-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly202005279949a2e1e3 2020-05-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly202005265007611294 2020-05-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200525458677f5ef 2020-05-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200524dd5f209213 2020-05-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200523a416692e93 2020-05-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly2020052251af89fe45 2020-05-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200521cd4985c488 2020-05-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200520a82001a387 2020-05-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.38.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200519fe1b9e09a8 2020-05-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.37.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200518ef1eb8d439 2020-05-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.37.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200517b3ca8869a6 2020-05-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.37.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200516b533fb3508 2020-05-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.37.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly2020051524bf1adacc 2020-05-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.37.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly20200514eaa16cd477 2020-05-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.37.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly202005135bb4d01fbe 2020-05-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.3.110.9 1.37.0 1.2.11 1.1.1g 84 - - +v15.0.0-nightly202005128c5d58b5a7 2020-05-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.1.307.31 1.37.0 1.2.11 1.1.1g 83 - - +v15.0.0-nightly202005118a6fab02ad 2020-05-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.1.307.31 1.37.0 1.2.11 1.1.1g 83 - - +v15.0.0-nightly2020051094e5b5c77d 2020-05-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.5 8.1.307.31 1.37.0 1.2.11 1.1.1g 83 - - +v15.0.0-nightly20200509be7fd2d517 2020-05-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.31 1.37.0 1.2.11 1.1.1g 83 - - +v15.0.0-nightly20200508bcdbd57134 2020-05-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.31 1.37.0 1.2.11 1.1.1g 83 - - +v15.0.0-nightly202005078607f9ec5c 2020-05-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.31 1.37.0 1.2.11 1.1.1g 83 - - +v15.0.0-nightly2020050686fdaa7455 2020-05-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.31 1.37.0 1.2.11 1.1.1g 83 - - +v15.0.0-nightly20200505c17dcb3253 2020-05-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.31 1.37.0 1.2.11 1.1.1g 83 - - +v15.0.0-nightly20200504bde5f9baf7 2020-05-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.31 1.37.0 1.2.11 1.1.1g 83 - - +v15.0.0-nightly20200503b0aba53195 2020-05-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.31 1.37.0 1.2.11 1.1.1g 83 - - +v15.0.0-nightly202005027c36ec38f1 2020-05-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.31 1.37.0 1.2.11 1.1.1g 83 - - +v15.0.0-nightly20200501e9518254d7 2020-05-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.31 1.37.0 1.2.11 1.1.1g 83 - - +v15.0.0-nightly202004302496db8e09 2020-04-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.31 1.37.0 1.2.11 1.1.1g 83 - - +v15.0.0-nightly20200429e7b99e027b 2020-04-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.31 1.37.0 1.2.11 1.1.1g 83 - - +v15.0.0-nightly20200428307c67be17 2020-04-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.30 1.37.0 1.2.11 1.1.1g 83 - - +v15.0.0-nightly202004275ee1e31e38 2020-04-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.30 1.37.0 1.2.11 1.1.1f 83 - - +v15.0.0-nightly20200426f8d5474839 2020-04-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.30 1.37.0 1.2.11 1.1.1f 83 - - +v15.0.0-nightly2020042524a4e6153d 2020-04-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.30 1.37.0 1.2.11 1.1.1f 83 - - +v15.0.0-nightly202004240619b600b2 2020-04-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.30 1.37.0 1.2.11 1.1.1f 83 - - +v15.0.0-nightly202004236a07eca49c 2020-04-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.30 1.37.0 1.2.11 1.1.1f 83 - - +v15.0.0-nightly20200422d08bd41248 2020-04-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.30 1.37.0 1.2.11 1.1.1f 83 - - +v14.0.0-nightly20200421c3554307c6 2020-04-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.30 1.37.0 1.2.11 1.1.1f 83 - - +v14.0.0-nightly202004204af0598134 2020-04-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.26 1.37.0 1.2.11 1.1.1f 83 - - +v14.0.0-nightly20200419a6a15fefb6 2020-04-19 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.26 1.35.0 1.2.11 1.1.1f 83 - - +v14.0.0-nightly202004184986286446 2020-04-18 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.26 1.35.0 1.2.11 1.1.1f 83 - - +v14.0.0-nightly202004175a4f24e7e1 2020-04-17 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.26 1.35.0 1.2.11 1.1.1f 83 - - +v14.0.0-nightly20200416b61488fe24 2020-04-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.26 1.35.0 1.2.11 1.1.1f 83 - - +v14.0.0-nightly202004153f5142daa8 2020-04-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.26 1.35.0 1.2.11 1.1.1f 83 - - +v14.0.0-nightly2020041455b4d030ef 2020-04-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.26 1.35.0 1.2.11 1.1.1f 83 - - +v14.0.0-nightly202004138d93df41b0 2020-04-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.26 1.35.0 1.2.11 1.1.1f 83 - - +v14.0.0-nightly202004125c535386ac 2020-04-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.26 1.35.0 1.2.11 1.1.1f 83 - - +v14.0.0-nightly202004114439009d65 2020-04-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.26 1.35.0 1.2.11 1.1.1f 83 - - +v14.0.0-nightly20200410203776fb71 2020-04-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.26 1.35.0 1.2.11 1.1.1f 83 - - +v14.0.0-nightly20200409934ef43a62 2020-04-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.26 1.35.0 1.2.11 1.1.1f 83 - - +v14.0.0-nightly20200408c849f2d4f8 2020-04-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.26 1.35.0 1.2.11 1.1.1f 83 - - +v14.0.0-nightly202004076ed912dd03 2020-04-07 aix-ppc64,linux-arm64,linux-armv7l,linux-s390x,osx-x64-tar,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.26 1.35.0 1.2.11 1.1.1f 83 - - +v14.0.0-nightly2020040504b71848af 2020-04-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.26 1.35.0 1.2.11 1.1.1f 83 - - +v14.0.0-nightly2020040417f323ebfa 2020-04-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.26 1.35.0 1.2.11 1.1.1f 83 - - +v14.0.0-nightly20200403e629366fc6 2020-04-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.20 1.35.0 1.2.11 1.1.1f 83 - - +v14.0.0-nightly202004028b9e877435 2020-04-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.20 1.35.0 1.2.11 1.1.1f 83 - - +v14.0.0-nightly202004019c00af0716 2020-04-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.20 1.35.0 1.2.11 1.1.1e 83 - - +v14.0.0-nightly20200331accc984ca9 2020-03-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.20 1.35.0 1.2.11 1.1.1e 83 - - +v14.0.0-nightly2020033067d5c907d2 2020-03-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.20 1.35.0 1.2.11 1.1.1e 83 - - +v14.0.0-nightly20200329cd1db2db48 2020-03-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.20 1.35.0 1.2.11 1.1.1e 83 - - +v14.0.0-nightly20200328fa3fd78c88 2020-03-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.20 1.35.0 1.2.11 1.1.1e 83 - - +v14.0.0-nightly20200327113c04c524 2020-03-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 8.1.307.20 1.35.0 1.2.11 1.1.1e 83 - - +v14.0.0-nightly20200326dade90db9c 2020-03-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.3 8.1.307.20 1.35.0 1.2.11 1.1.1e 83 - - +v14.0.0-nightly20200325f4153c2fe7 2020-03-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.3 8.1.307.20 1.35.0 1.2.11 1.1.1e 83 - - +v14.0.0-nightly2020032496f06e6482 2020-03-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.3 8.1.307.20 1.35.0 1.2.11 1.1.1e 83 - - +v14.0.0-nightly20200322ecfb7b0988 2020-03-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.3 8.1.307.20 1.35.0 1.2.11 1.1.1d 83 - - +v14.0.0-nightly20200321d129e0c782 2020-03-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.3 8.1.307.20 1.35.0 1.2.11 1.1.1d 83 - - +v14.0.0-nightly20200320f7771fffd0 2020-03-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.3 8.1.307.20 1.35.0 1.2.11 1.1.1d 83 - - +v14.0.0-nightly20200319543c046feb 2020-03-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.1 8.1.307.20 1.35.0 1.2.11 1.1.1d 83 - - +v14.0.0-nightly202003181a3c7473ec 2020-03-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.1 7.9.317.25 1.35.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2020031740b559a376 2020-03-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.1 7.9.317.25 1.35.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2020031625cb855b09 2020-03-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.1 7.9.317.25 1.35.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2020031586f146a2c0 2020-03-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.1 7.9.317.25 1.35.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200314ec204d86b0 2020-03-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.1 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200313edb3ffb003 2020-03-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.1 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200312e45874723f 2020-03-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200311d5674fd482 2020-03-11 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,src,sunos-x64 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2020031073f2dbc911 2020-03-10 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly202003097bb4f95c1c 2020-03-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200308c49286ba8b 2020-03-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2020030786ab4ee6e4 2020-03-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly202003065cc0754090 2020-03-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200305cb8898c48f 2020-03-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - v14.0.0-nightly20200304de6cbd0e37 2020-03-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - v14.0.0-nightly20200303987a673395 2020-03-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - v14.0.0-nightly202003026bcea0a383 2020-03-02 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - @@ -131,6 +496,21 @@ v14.0.0-nightly20191026cb36fa67d7 2019-10-26 aix-ppc64,headers,linux-arm64,linux v14.0.0-nightly2019102571bcd05232 2019-10-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - v14.0.0-nightly20191024a228e22533 2019-10-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - v14.0.0-nightly201910234187fcb200 2019-10-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v13.13.1-nightly20200415947ddec091 2020-04-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 7.9.317.25 1.35.0 1.2.11 1.1.1f 79 - - +v13.12.1-nightly202004140a8e07599b 2020-04-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 7.9.317.25 1.35.0 1.2.11 1.1.1f 79 - - +v13.12.1-nightly20200413ea1785597c 2020-04-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 7.9.317.25 1.35.0 1.2.11 1.1.1f 79 - - +v13.12.1-nightly20200401ffdd82ba3f 2020-04-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 7.9.317.25 1.35.0 1.2.11 1.1.1e 79 - - +v13.12.1-nightly202003314f98b7178d 2020-03-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 7.9.317.25 1.35.0 1.2.11 1.1.1e 79 - - +v13.12.1-nightly2020032721ae792504 2020-03-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.4 7.9.317.25 1.35.0 1.2.11 1.1.1e 79 - - +v13.11.1-nightly2020032628e298f219 2020-03-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.3 7.9.317.25 1.35.0 1.2.11 1.1.1e 79 - - +v13.11.1-nightly2020032523ba0889ce 2020-03-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.3 7.9.317.25 1.35.0 1.2.11 1.1.1e 79 - - +v13.11.1-nightly20200324531d495aa7 2020-03-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.3 7.9.317.25 1.35.0 1.2.11 1.1.1e 79 - - +v13.11.1-nightly202003205366682875 2020-03-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.3 7.9.317.25 1.35.0 1.2.11 1.1.1d 79 - - +v13.11.1-nightly2020031763bf0f134c 2020-03-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.1 7.9.317.25 1.35.0 1.2.11 1.1.1d 79 - - +v13.11.1-nightly20200312c72a678d0c 2020-03-12 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 79 - - +v13.10.2-nightly202003117eed9d6bcc 2020-03-11 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 79 - - +v13.10.2-nightly202003104640ea24bd 2020-03-10 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 79 - - +v13.10.2-nightly202003056122620832 2020-03-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 79 - - v13.9.1-nightly202003041bca7b6c70 2020-03-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 79 - - v13.9.1-nightly20200302e6125cd53b 2020-03-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 79 - - v13.9.1-nightly202003014d05508aa8 2020-03-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 79 - - diff --git a/test/fast/Unit tests/mocks/nvm ls-remote lts.txt b/test/fast/Unit tests/mocks/nvm ls-remote lts.txt index 7d3cc9d..08c5e9c 100644 --- a/test/fast/Unit tests/mocks/nvm ls-remote lts.txt +++ b/test/fast/Unit tests/mocks/nvm ls-remote lts.txt @@ -102,11 +102,42 @@ v10.17.0  (LTS: Dubnium) v10.18.0  (LTS: Dubnium) v10.18.1  (LTS: Dubnium) - v10.19.0  (Latest LTS: Dubnium) + v10.19.0  (LTS: Dubnium) + v10.20.0  (LTS: Dubnium) + v10.20.1  (LTS: Dubnium) + v10.21.0  (LTS: Dubnium) + v10.22.0  (LTS: Dubnium) + v10.22.1  (LTS: Dubnium) + v10.23.0  (LTS: Dubnium) + v10.23.1  (LTS: Dubnium) + v10.23.2  (LTS: Dubnium) + v10.23.3  (LTS: Dubnium) + v10.24.0  (Latest LTS: Dubnium) v12.13.0  (LTS: Erbium) v12.13.1  (LTS: Erbium) v12.14.0  (LTS: Erbium) v12.14.1  (LTS: Erbium) v12.15.0  (LTS: Erbium) v12.16.0  (LTS: Erbium) - v12.16.1  (Latest LTS: Erbium) + v12.16.1  (LTS: Erbium) + v12.16.2  (LTS: Erbium) + v12.16.3  (LTS: Erbium) + v12.17.0  (LTS: Erbium) + v12.18.0  (LTS: Erbium) + v12.18.1  (LTS: Erbium) + v12.18.2  (LTS: Erbium) + v12.18.3  (LTS: Erbium) + v12.18.4  (LTS: Erbium) + v12.19.0  (LTS: Erbium) + v12.19.1  (LTS: Erbium) + v12.20.0  (LTS: Erbium) + v12.20.1  (LTS: Erbium) + v12.20.2  (LTS: Erbium) + v12.21.0  (Latest LTS: Erbium) + v14.15.0  (LTS: Fermium) + v14.15.1  (LTS: Fermium) + v14.15.2  (LTS: Fermium) + v14.15.3  (LTS: Fermium) + v14.15.4  (LTS: Fermium) + v14.15.5  (LTS: Fermium) + v14.16.0  (Latest LTS: Fermium) diff --git a/test/fast/Unit tests/mocks/nvm ls-remote node.txt b/test/fast/Unit tests/mocks/nvm ls-remote node.txt index 8723e06..26d4a62 100644 --- a/test/fast/Unit tests/mocks/nvm ls-remote node.txt +++ b/test/fast/Unit tests/mocks/nvm ls-remote node.txt @@ -440,7 +440,17 @@ v10.17.0  (LTS: Dubnium) v10.18.0  (LTS: Dubnium) v10.18.1  (LTS: Dubnium) - v10.19.0  (Latest LTS: Dubnium) + v10.19.0  (LTS: Dubnium) + v10.20.0  (LTS: Dubnium) + v10.20.1  (LTS: Dubnium) + v10.21.0  (LTS: Dubnium) + v10.22.0  (LTS: Dubnium) + v10.22.1  (LTS: Dubnium) + v10.23.0  (LTS: Dubnium) + v10.23.1  (LTS: Dubnium) + v10.23.2  (LTS: Dubnium) + v10.23.3  (LTS: Dubnium) + v10.24.0  (Latest LTS: Dubnium) v11.0.0 v11.1.0 v11.2.0 @@ -481,7 +491,21 @@ v12.14.1  (LTS: Erbium) v12.15.0  (LTS: Erbium) v12.16.0  (LTS: Erbium) - v12.16.1  (Latest LTS: Erbium) + v12.16.1  (LTS: Erbium) + v12.16.2  (LTS: Erbium) + v12.16.3  (LTS: Erbium) + v12.17.0  (LTS: Erbium) + v12.18.0  (LTS: Erbium) + v12.18.1  (LTS: Erbium) + v12.18.2  (LTS: Erbium) + v12.18.3  (LTS: Erbium) + v12.18.4  (LTS: Erbium) + v12.19.0  (LTS: Erbium) + v12.19.1  (LTS: Erbium) + v12.20.0  (LTS: Erbium) + v12.20.1  (LTS: Erbium) + v12.20.2  (LTS: Erbium) + v12.21.0  (Latest LTS: Erbium) v13.0.0 v13.0.1 v13.1.0 @@ -494,3 +518,47 @@ v13.8.0 v13.9.0 v13.10.0 + v13.10.1 + v13.11.0 + v13.12.0 + v13.13.0 + v13.14.0 + v14.0.0 + v14.1.0 + v14.2.0 + v14.3.0 + v14.4.0 + v14.5.0 + v14.6.0 + v14.7.0 + v14.8.0 + v14.9.0 + v14.10.0 + v14.10.1 + v14.11.0 + v14.12.0 + v14.13.0 + v14.13.1 + v14.14.0 + v14.15.0  (LTS: Fermium) + v14.15.1  (LTS: Fermium) + v14.15.2  (LTS: Fermium) + v14.15.3  (LTS: Fermium) + v14.15.4  (LTS: Fermium) + v14.15.5  (LTS: Fermium) + v14.16.0  (Latest LTS: Fermium) + v15.0.0 + v15.0.1 + v15.1.0 + v15.2.0 + v15.2.1 + v15.3.0 + v15.4.0 + v15.5.0 + v15.5.1 + v15.6.0 + v15.7.0 + v15.8.0 + v15.9.0 + v15.10.0 + v15.11.0 diff --git a/test/fast/Unit tests/mocks/nvm ls-remote.txt b/test/fast/Unit tests/mocks/nvm ls-remote.txt index e7199cd..acfe35b 100644 --- a/test/fast/Unit tests/mocks/nvm ls-remote.txt +++ b/test/fast/Unit tests/mocks/nvm ls-remote.txt @@ -481,7 +481,17 @@ v10.17.0  (LTS: Dubnium) v10.18.0  (LTS: Dubnium) v10.18.1  (LTS: Dubnium) - v10.19.0  (Latest LTS: Dubnium) + v10.19.0  (LTS: Dubnium) + v10.20.0  (LTS: Dubnium) + v10.20.1  (LTS: Dubnium) + v10.21.0  (LTS: Dubnium) + v10.22.0  (LTS: Dubnium) + v10.22.1  (LTS: Dubnium) + v10.23.0  (LTS: Dubnium) + v10.23.1  (LTS: Dubnium) + v10.23.2  (LTS: Dubnium) + v10.23.3  (LTS: Dubnium) + v10.24.0  (Latest LTS: Dubnium) v11.0.0 v11.1.0 v11.2.0 @@ -522,7 +532,21 @@ v12.14.1  (LTS: Erbium) v12.15.0  (LTS: Erbium) v12.16.0  (LTS: Erbium) - v12.16.1  (Latest LTS: Erbium) + v12.16.1  (LTS: Erbium) + v12.16.2  (LTS: Erbium) + v12.16.3  (LTS: Erbium) + v12.17.0  (LTS: Erbium) + v12.18.0  (LTS: Erbium) + v12.18.1  (LTS: Erbium) + v12.18.2  (LTS: Erbium) + v12.18.3  (LTS: Erbium) + v12.18.4  (LTS: Erbium) + v12.19.0  (LTS: Erbium) + v12.19.1  (LTS: Erbium) + v12.20.0  (LTS: Erbium) + v12.20.1  (LTS: Erbium) + v12.20.2  (LTS: Erbium) + v12.21.0  (Latest LTS: Erbium) v13.0.0 v13.0.1 v13.1.0 @@ -535,3 +559,47 @@ v13.8.0 v13.9.0 v13.10.0 + v13.10.1 + v13.11.0 + v13.12.0 + v13.13.0 + v13.14.0 + v14.0.0 + v14.1.0 + v14.2.0 + v14.3.0 + v14.4.0 + v14.5.0 + v14.6.0 + v14.7.0 + v14.8.0 + v14.9.0 + v14.10.0 + v14.10.1 + v14.11.0 + v14.12.0 + v14.13.0 + v14.13.1 + v14.14.0 + v14.15.0  (LTS: Fermium) + v14.15.1  (LTS: Fermium) + v14.15.2  (LTS: Fermium) + v14.15.3  (LTS: Fermium) + v14.15.4  (LTS: Fermium) + v14.15.5  (LTS: Fermium) + v14.16.0  (Latest LTS: Fermium) + v15.0.0 + v15.0.1 + v15.1.0 + v15.2.0 + v15.2.1 + v15.3.0 + v15.4.0 + v15.5.0 + v15.5.1 + v15.6.0 + v15.7.0 + v15.8.0 + v15.9.0 + v15.10.0 + v15.11.0 diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt b/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt index 8250fac..444467a 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt @@ -102,11 +102,42 @@ v10.16.3 Dubnium v10.17.0 Dubnium v10.18.0 Dubnium v10.18.1 Dubnium -v10.19.0 Dubnium * +v10.19.0 Dubnium +v10.20.0 Dubnium +v10.20.1 Dubnium +v10.21.0 Dubnium +v10.22.0 Dubnium +v10.22.1 Dubnium +v10.23.0 Dubnium +v10.23.1 Dubnium +v10.23.2 Dubnium +v10.23.3 Dubnium +v10.24.0 Dubnium * v12.13.0 Erbium v12.13.1 Erbium v12.14.0 Erbium v12.14.1 Erbium v12.15.0 Erbium v12.16.0 Erbium -v12.16.1 Erbium * +v12.16.1 Erbium +v12.16.2 Erbium +v12.16.3 Erbium +v12.17.0 Erbium +v12.18.0 Erbium +v12.18.1 Erbium +v12.18.2 Erbium +v12.18.3 Erbium +v12.18.4 Erbium +v12.19.0 Erbium +v12.19.1 Erbium +v12.20.0 Erbium +v12.20.1 Erbium +v12.20.2 Erbium +v12.21.0 Erbium * +v14.15.0 Fermium +v14.15.1 Fermium +v14.15.2 Fermium +v14.15.3 Fermium +v14.15.4 Fermium +v14.15.5 Fermium +v14.16.0 Fermium * diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote nightly.txt b/test/fast/Unit tests/mocks/nvm_ls_remote nightly.txt index 5e48d39..a0264ad 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote nightly.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote nightly.txt @@ -135,4 +135,10 @@ v13.6.1-nightly20200121cbd84c5ee1 v13.7.1-nightly20200122340a1bd9a0 v13.8.1-nightly202002187c2d33f38f v13.9.1-nightly202003041bca7b6c70 -v14.0.0-nightly20200304de6cbd0e37 +v13.10.2-nightly202003117eed9d6bcc +v13.11.1-nightly2020032628e298f219 +v13.12.1-nightly202004140a8e07599b +v13.13.1-nightly20200415947ddec091 +v14.0.0-nightly20200421c3554307c6 +v15.0.0-nightly2020102011f1ad939f +v16.0.0-nightly202103118a6d7a09f2 diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote stable nightly.txt b/test/fast/Unit tests/mocks/nvm_ls_remote stable nightly.txt index d26500d..901ecdd 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote stable nightly.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote stable nightly.txt @@ -1 +1 @@ -v14.0.0-nightly20200304de6cbd0e37 +v16.0.0-nightly202103118a6d7a09f2 diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt b/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt index 6208a05..9f28d5d 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt @@ -1 +1 @@ -v13.10.0 +v15.11.0 diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote.txt b/test/fast/Unit tests/mocks/nvm_ls_remote.txt index 1ff9505..dcbfbcb 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote.txt @@ -440,7 +440,17 @@ v10.16.3 Dubnium v10.17.0 Dubnium v10.18.0 Dubnium v10.18.1 Dubnium -v10.19.0 Dubnium * +v10.19.0 Dubnium +v10.20.0 Dubnium +v10.20.1 Dubnium +v10.21.0 Dubnium +v10.22.0 Dubnium +v10.22.1 Dubnium +v10.23.0 Dubnium +v10.23.1 Dubnium +v10.23.2 Dubnium +v10.23.3 Dubnium +v10.24.0 Dubnium * v11.0.0 v11.1.0 v11.2.0 @@ -481,7 +491,21 @@ v12.14.0 Erbium v12.14.1 Erbium v12.15.0 Erbium v12.16.0 Erbium -v12.16.1 Erbium * +v12.16.1 Erbium +v12.16.2 Erbium +v12.16.3 Erbium +v12.17.0 Erbium +v12.18.0 Erbium +v12.18.1 Erbium +v12.18.2 Erbium +v12.18.3 Erbium +v12.18.4 Erbium +v12.19.0 Erbium +v12.19.1 Erbium +v12.20.0 Erbium +v12.20.1 Erbium +v12.20.2 Erbium +v12.21.0 Erbium * v13.0.0 v13.0.1 v13.1.0 @@ -494,3 +518,47 @@ v13.7.0 v13.8.0 v13.9.0 v13.10.0 +v13.10.1 +v13.11.0 +v13.12.0 +v13.13.0 +v13.14.0 +v14.0.0 +v14.1.0 +v14.2.0 +v14.3.0 +v14.4.0 +v14.5.0 +v14.6.0 +v14.7.0 +v14.8.0 +v14.9.0 +v14.10.0 +v14.10.1 +v14.11.0 +v14.12.0 +v14.13.0 +v14.13.1 +v14.14.0 +v14.15.0 Fermium +v14.15.1 Fermium +v14.15.2 Fermium +v14.15.3 Fermium +v14.15.4 Fermium +v14.15.5 Fermium +v14.16.0 Fermium * +v15.0.0 +v15.0.1 +v15.1.0 +v15.2.0 +v15.2.1 +v15.3.0 +v15.4.0 +v15.5.0 +v15.5.1 +v15.6.0 +v15.7.0 +v15.8.0 +v15.9.0 +v15.10.0 +v15.11.0 diff --git a/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt b/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt index f6e8b66..c72adac 100644 --- a/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt +++ b/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt @@ -1,6 +1,7 @@ -lts/*|lts/erbium -lts/erbium|v12.16.1 -lts/dubnium|v10.19.0 +lts/*|lts/fermium +lts/fermium|v14.16.0 +lts/erbium|v12.21.0 +lts/dubnium|v10.24.0 lts/carbon|v8.17.0 lts/boron|v6.17.1 lts/argon|v4.9.1 diff --git a/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable nightly.txt b/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable nightly.txt index ed9d00f..0d68f8a 100644 --- a/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable nightly.txt +++ b/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable nightly.txt @@ -1 +1 @@ -14.0 +16.0 diff --git a/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt b/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt index 857317a..f7b6d64 100644 --- a/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt +++ b/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt @@ -1 +1 @@ -13.10 +15.11 diff --git a/test/fast/Unit tests/nvm_ls_remote LTS aliases b/test/fast/Unit tests/nvm_ls_remote LTS aliases index a9485bd..e03cb99 100755 --- a/test/fast/Unit tests/nvm_ls_remote LTS aliases +++ b/test/fast/Unit tests/nvm_ls_remote LTS aliases @@ -37,7 +37,8 @@ nvm_ls_remote >/dev/null || die "nvm_ls_remote_failed?!" CALL_COUNT="$(cat "$CALL_COUNT_PATH")" -EXPECTED_COUNT=6 +LTS_LINES="$(cat "${MOCKS_DIR}/LTS_names.txt" | wc -l)" +EXPECTED_COUNT="$((LTS_LINES + 1))" [ "$CALL_COUNT" = "$EXPECTED_COUNT" ] || die "nvm_make_alias called $CALL_COUNT times; expected $EXPECTED_COUNT" ARGS="$(cat "$ALIAS_ARGS_PATH")" From 4da7f101a2d00521eba5fa69a4bd9394bf5c817b Mon Sep 17 00:00:00 2001 From: Rodrigo Espinosa de los Monteros <1084688+RodEsp@users.noreply.github.com> Date: Thu, 11 Mar 2021 16:22:31 -0500 Subject: [PATCH 1352/1426] [Fix] `nvm_alias`: ensure `lts/-1` returns the one before `lts/*` Fixes #2461 --- nvm.sh | 1 + test/fast/Unit tests/nvm_alias LTS-N | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index c2eb1d0..574b8f3 100644 --- a/nvm.sh +++ b/nvm.sh @@ -994,6 +994,7 @@ nvm_alias() { if [ "$(expr "${ALIAS}" : '^lts/-[1-9][0-9]*$')" -gt 0 ]; then local N N="$(echo "${ALIAS}" | cut -d '-' -f 2)" + N=$((N+1)) local RESULT RESULT="$(command ls "${NVM_ALIAS_DIR}/lts" | command tail -n "${N}" | command head -n 1)" if [ "${RESULT}" != '*' ]; then diff --git a/test/fast/Unit tests/nvm_alias LTS-N b/test/fast/Unit tests/nvm_alias LTS-N index 352644a..b110117 100755 --- a/test/fast/Unit tests/nvm_alias LTS-N +++ b/test/fast/Unit tests/nvm_alias LTS-N @@ -25,10 +25,12 @@ LTS_NAMES_PATH="${MOCKS_DIR}/LTS_names.txt" N=0 while IFS= read -r LTS; do + if [ $N -gt 0 ]; then + EXPECTED="$(nvm_alias "lts/${LTS}")" + ACTUAL="$(nvm_alias "lts/-${N}")" + [ "${EXPECTED}" = "${ACTUAL}" ] || die "\`nvm_alias lts/-${N}\` was \`${ACTUAL}\`; expected \`${EXPECTED}\`" + fi N=$(($N+1)) - EXPECTED="$(nvm_alias "lts/${LTS}")" - ACTUAL="$(nvm_alias "lts/-${N}")" - [ "${EXPECTED}" = "${ACTUAL}" ] || die "\`nvm_alias lts/-${N}\` was \`${ACTUAL}\`; expected \`${EXPECTED}\`" done < "${LTS_NAMES_PATH}" cleanup From 216ccd62f707eeee5ba188bd668f2414a58e6593 Mon Sep 17 00:00:00 2001 From: artforlife Date: Sun, 26 Apr 2020 12:57:50 -0500 Subject: [PATCH 1353/1426] [readme] add commands to help troubleshoot without closing the current shell Co-authored-by: artforlife Co-authored-by: Sladyn Nunes --- README.md | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c41d0f8..5d45ea8 100644 --- a/README.md +++ b/README.md @@ -89,6 +89,15 @@ Eg: `curl ... | NVM_DIR="path/to/nvm"`. Ensure that the `NVM_DIR` does not conta #### Troubleshooting on Linux On Linux, after running the install script, if you get `nvm: command not found` or see no feedback from your terminal after you type `command -v nvm`, simply close your current terminal, open a new terminal, and try verifying again. +Alternatively, you can run run the following commands for the different shells on the command line: + +*bash*: `source ~/.bashrc` + +*zsh*: `source ~/.zhrc` + +*ksh*: `. ~/.profile` + +These should pick up the `nvm` command. #### Troubleshooting on macOS @@ -98,11 +107,13 @@ If you get `nvm: command not found` after running the install script, one of the - Since macOS 10.15, the default shell is `zsh` and nvm will look for `.zshrc` to update, none is installed by default. Create one with `touch ~/.zshrc` and run the install script again. - - If you use bash, the previous default shell, run `touch ~/.bash_profile` to create the necessary profile file if it does not exist. + - If you use bash, the previous default shell, your system may not have a `.bash_profile` file where the command is set up. Create one with `touch ~/.bash_profile` and run the install script again. Then, run `source ~/.bash_profile` to pick up the `nvm` command. + + - You have previously used `bash`, but you have `zsh` installed. You need to manually add [these lines](#manual-install) to `~/.zshrc` and run `. ~/.zshrc`. - You might need to restart your terminal instance or run `. ~/.nvm/nvm.sh`. Restarting your terminal/opening a new tab/window, or running the source command will load the command and the new configuration. - - You have previously used `bash`, but you have `zsh` installed. You need to manually add [these lines](#manual-install) to `~/.zshrc` and run `. ~/.zshrc`. + - If the above didn't help, you might need to restart your terminal instance. Try opening a new tab/window in your terminal and retry. If the above doesn't fix the problem, you may try the following: From 9cb6a2b614c01e83611d704501d9a3ba5af7b8a3 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 17 Mar 2021 08:11:37 -0700 Subject: [PATCH 1354/1426] [Tests] ensure `doctoc` action fails when it should --- .github/workflows/lint.yml | 8 ++------ package.json | 3 +++ 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 26c7e88..67d32ee 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -28,14 +28,10 @@ jobs: steps: - uses: actions/checkout@v2 - uses: ljharb/actions/node/run@main - name: 'npm install && npm run dockerfile_lint' + name: 'npm install && npm run doctoc' with: node-version: 'lts/*' - shell-command: | - set -e - cp README.md README.md.orig - npm run doctoc - diff -q README.md README.md.orig + command: "doctoc:check" test_naming: runs-on: ubuntu-latest diff --git a/package.json b/package.json index f520f7e..09834e4 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,9 @@ "test/installation/iojs": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=installation_iojs test-$shell", "test/sourcing": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=sourcing test-$shell", "doctoc": "doctoc --title='## Table of Contents' --github README.md", + "predoctoc:check": "cp README.md v-README.md.orig && npm run doctoc", + "doctoc:check": "diff -q README.md v-README.md.orig", + "postdoctoc:check": "mv v-README.md.orig README.md", "eclint": "eclint check $(git ls-tree --name-only HEAD | xargs)", "dockerfile_lint": "dockerfile_lint" }, From 25d2ebf2f8acbdcd6ff7d2b1eddd699a21ae6708 Mon Sep 17 00:00:00 2001 From: Sladyn Nunes Date: Wed, 3 Mar 2021 20:47:44 +0530 Subject: [PATCH 1355/1426] [readme] add headings to certain sections Fixes #2413. --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 5d45ea8..a50bf32 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,9 @@ - [Setting Custom Colors](#setting-custom-colors) - [Persisting custom colors](#persisting-custom-colors) - [Suppressing colorized output](#suppressing-colorized-output) + - [Restoring PATH](#restoring-path) + - [Set default node version](#set-default-node-version) + - [Use a mirror of node binaries](#use-a-mirror-of-node-binaries) - [.nvmrc](#nvmrc) - [Deeper Shell Integration](#deeper-shell-integration) - [bash](#bash) @@ -440,18 +443,21 @@ nvm help --no-colors TERM=dumb nvm ls ``` +#### Restoring PATH To restore your PATH, you can deactivate it: ```sh nvm deactivate ``` +#### Set default node version To set a default Node version to be used in any new shell, use the alias 'default': ```sh nvm alias default node ``` +#### Use a mirror of node binaries To use a mirror of the node binaries, set `$NVM_NODEJS_ORG_MIRROR`: ```sh From 8884fd32f65054778bcad35fbcdf3c8a0ea30347 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20K=C5=82opotek?= Date: Mon, 1 Mar 2021 13:28:09 +0100 Subject: [PATCH 1356/1426] [readme] Add `nvs` as one of the Windows alternatives Co-authored-by: Jordan Harband --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a50bf32..d71fa94 100644 --- a/README.md +++ b/README.md @@ -152,10 +152,11 @@ which should output `nvm` if the installation was successful. Please note that ` If you're running a system without prepackaged binary available, which means you're going to install nodejs or io.js from its source code, you need to make sure your system has a C++ compiler. For OS X, Xcode will work, for Debian/Ubuntu based GNU/Linux, the `build-essential` and `libssl-dev` packages work. -**Note:** `nvm` does not support Windows (see [#284](https://github.com/nvm-sh/nvm/issues/284)), but may work in WSL (Windows Subsystem for Linux) depending on the version of WSL. For Windows, two alternatives exist, which are neither supported nor developed by us: +**Note:** `nvm` does not support Windows (see [#284](https://github.com/nvm-sh/nvm/issues/284)), but may work in WSL (Windows Subsystem for Linux) depending on the version of WSL. For Windows, a few alternatives exist, which are neither supported nor developed by us: - [nvm-windows](https://github.com/coreybutler/nvm-windows) - [nodist](https://github.com/marcelklehr/nodist) + - [nvs](https://github.com/jasongin/nvs) **Note:** `nvm` does not support [Fish] either (see [#303](https://github.com/nvm-sh/nvm/issues/303)). Alternatives exist, which are neither supported nor developed by us: From 05797183085d9ec77793321fcce8562974ba290c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 17 Mar 2021 09:07:15 -0700 Subject: [PATCH 1357/1426] [Fix] install script: define `nvm_echo` - refactor `echo` to use `nvm_echo` Per https://github.com/nvm-sh/nvm/commit/589c2377fbe37c23996a82d6d88b37c62f1a022a#r48360520 --- install.sh | 118 +++++++++++++++++++++++++++-------------------------- 1 file changed, 61 insertions(+), 57 deletions(-) diff --git a/install.sh b/install.sh index 3bcb6f0..8ab535f 100755 --- a/install.sh +++ b/install.sh @@ -6,6 +6,10 @@ nvm_has() { type "$1" > /dev/null 2>&1 } +nvm_echo() { + command printf %s\\n "$*" 2>/dev/null +} + nvm_grep() { GREP_OPTIONS='' command grep "$@" } @@ -23,7 +27,7 @@ nvm_install_dir() { } nvm_latest_version() { - echo "v0.37.2" + nvm_echo "v0.37.2" } nvm_profile_is_bash_or_zsh() { @@ -64,18 +68,18 @@ nvm_source() { elif [ "_$NVM_METHOD" = "_git" ] || [ -z "$NVM_METHOD" ]; then NVM_SOURCE_URL="https://github.com/${NVM_GITHUB_REPO}.git" else - echo >&2 "Unexpected value \"$NVM_METHOD\" for \$NVM_METHOD" + nvm_echo >&2 "Unexpected value \"$NVM_METHOD\" for \$NVM_METHOD" return 1 fi fi - echo "$NVM_SOURCE_URL" + nvm_echo "$NVM_SOURCE_URL" } # # Node.js version to install # nvm_node_version() { - echo "$NODE_VERSION" + nvm_echo "$NODE_VERSION" } nvm_download() { @@ -108,7 +112,7 @@ install_nvm_from_git() { : # Check if version is an existing changeset elif ! nvm_download -o /dev/null "$(nvm_source "script-nvm-exec")"; then - echo >&2 "Failed to find '$NVM_VERSION' version." + nvm_echo >&2 "Failed to find '$NVM_VERSION' version." exit 1 fi fi @@ -116,29 +120,29 @@ install_nvm_from_git() { local fetch_error if [ -d "$INSTALL_DIR/.git" ]; then # Updating repo - echo "=> nvm is already installed in $INSTALL_DIR, trying to update using git" + nvm_echo "=> nvm is already installed in $INSTALL_DIR, trying to update using git" command printf '\r=> ' fetch_error="Failed to update nvm with $NVM_VERSION, run 'git fetch' in $INSTALL_DIR yourself." else fetch_error="Failed to fetch origin with $NVM_VERSION. Please report this!" - echo "=> Downloading nvm from git to '$INSTALL_DIR'" + nvm_echo "=> Downloading nvm from git to '$INSTALL_DIR'" command printf '\r=> ' mkdir -p "${INSTALL_DIR}" if [ "$(ls -A "${INSTALL_DIR}")" ]; then # Initializing repo command git init "${INSTALL_DIR}" || { - echo >&2 'Failed to initialize nvm repo. Please report this!' + nvm_echo >&2 'Failed to initialize nvm repo. Please report this!' exit 2 } command git --git-dir="${INSTALL_DIR}/.git" remote add origin "$(nvm_source)" 2> /dev/null \ || command git --git-dir="${INSTALL_DIR}/.git" remote set-url origin "$(nvm_source)" || { - echo >&2 'Failed to add remote "origin" (or set the URL). Please report this!' + nvm_echo >&2 'Failed to add remote "origin" (or set the URL). Please report this!' exit 2 } else # Cloning repo command git clone "$(nvm_source)" --depth=1 "${INSTALL_DIR}" || { - echo >&2 'Failed to clone nvm repo. Please report this!' + nvm_echo >&2 'Failed to clone nvm repo. Please report this!' exit 2 } fi @@ -148,28 +152,28 @@ install_nvm_from_git() { : # Fetch given version elif ! command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" fetch origin "$NVM_VERSION" --depth=1; then - echo >&2 "$fetch_error" + nvm_echo >&2 "$fetch_error" exit 1 fi command git -c advice.detachedHead=false --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" checkout -f --quiet FETCH_HEAD || { - echo >&2 "Failed to checkout the given version $NVM_VERSION. Please report this!" + nvm_echo >&2 "Failed to checkout the given version $NVM_VERSION. Please report this!" exit 2 } if [ -n "$(command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" show-ref refs/heads/master)" ]; then if command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" branch --quiet 2>/dev/null; then command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" branch --quiet -D master >/dev/null 2>&1 else - echo >&2 "Your version of git is out of date. Please update it!" + nvm_echo >&2 "Your version of git is out of date. Please update it!" command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" branch -D master >/dev/null 2>&1 fi fi - echo "=> Compressing and cleaning up git repository" + nvm_echo "=> Compressing and cleaning up git repository" if ! command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" reflog expire --expire=now --all; then - echo >&2 "Your version of git is out of date. Please update it!" + nvm_echo >&2 "Your version of git is out of date. Please update it!" fi if ! command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" gc --auto --aggressive --prune=now ; then - echo >&2 "Your version of git is out of date. Please update it!" + nvm_echo >&2 "Your version of git is out of date. Please update it!" fi return } @@ -185,15 +189,15 @@ nvm_install_node() { return 0 fi - echo "=> Installing Node.js version $NODE_VERSION_LOCAL" + nvm_echo "=> Installing Node.js version $NODE_VERSION_LOCAL" nvm install "$NODE_VERSION_LOCAL" local CURRENT_NVM_NODE CURRENT_NVM_NODE="$(nvm_version current)" if [ "$(nvm_version "$NODE_VERSION_LOCAL")" == "$CURRENT_NVM_NODE" ]; then - echo "=> Node.js version $NODE_VERSION_LOCAL has been successfully installed" + nvm_echo "=> Node.js version $NODE_VERSION_LOCAL has been successfully installed" else - echo >&2 "Failed to install Node.js $NODE_VERSION_LOCAL" + nvm_echo >&2 "Failed to install Node.js $NODE_VERSION_LOCAL" fi } @@ -210,20 +214,20 @@ install_nvm_as_script() { # Downloading to $INSTALL_DIR mkdir -p "$INSTALL_DIR" if [ -f "$INSTALL_DIR/nvm.sh" ]; then - echo "=> nvm is already installed in $INSTALL_DIR, trying to update the script" + nvm_echo "=> nvm is already installed in $INSTALL_DIR, trying to update the script" else - echo "=> Downloading nvm as script to '$INSTALL_DIR'" + nvm_echo "=> Downloading nvm as script to '$INSTALL_DIR'" fi nvm_download -s "$NVM_SOURCE_LOCAL" -o "$INSTALL_DIR/nvm.sh" || { - echo >&2 "Failed to download '$NVM_SOURCE_LOCAL'" + nvm_echo >&2 "Failed to download '$NVM_SOURCE_LOCAL'" return 1 } & nvm_download -s "$NVM_EXEC_SOURCE" -o "$INSTALL_DIR/nvm-exec" || { - echo >&2 "Failed to download '$NVM_EXEC_SOURCE'" + nvm_echo >&2 "Failed to download '$NVM_EXEC_SOURCE'" return 2 } & nvm_download -s "$NVM_BASH_COMPLETION_SOURCE" -o "$INSTALL_DIR/bash_completion" || { - echo >&2 "Failed to download '$NVM_BASH_COMPLETION_SOURCE'" + nvm_echo >&2 "Failed to download '$NVM_BASH_COMPLETION_SOURCE'" return 2 } & for job in $(jobs -p | command sort) @@ -231,7 +235,7 @@ install_nvm_as_script() { wait "$job" || return $? done chmod a+x "$INSTALL_DIR/nvm-exec" || { - echo >&2 "Failed to mark '$INSTALL_DIR/nvm-exec' as executable" + nvm_echo >&2 "Failed to mark '$INSTALL_DIR/nvm-exec' as executable" return 3 } } @@ -240,7 +244,7 @@ nvm_try_profile() { if [ -z "${1-}" ] || [ ! -f "${1}" ]; then return 1 fi - echo "${1}" + nvm_echo "${1}" } # @@ -256,7 +260,7 @@ nvm_detect_profile() { fi if [ -n "${PROFILE}" ] && [ -f "${PROFILE}" ]; then - echo "${PROFILE}" + nvm_echo "${PROFILE}" return fi @@ -283,7 +287,7 @@ nvm_detect_profile() { fi if [ -n "$DETECTED_PROFILE" ]; then - echo "$DETECTED_PROFILE" + nvm_echo "$DETECTED_PROFILE" fi } @@ -316,37 +320,37 @@ nvm_check_global_modules() { if [ "${MODULE_COUNT}" != '0' ]; then # shellcheck disable=SC2016 - echo '=> You currently have modules installed globally with `npm`. These will no' + nvm_echo '=> You currently have modules installed globally with `npm`. These will no' # shellcheck disable=SC2016 - echo '=> longer be linked to the active version of Node when you install a new node' + nvm_echo '=> longer be linked to the active version of Node when you install a new node' # shellcheck disable=SC2016 - echo '=> with `nvm`; and they may (depending on how you construct your `$PATH`)' + nvm_echo '=> with `nvm`; and they may (depending on how you construct your `$PATH`)' # shellcheck disable=SC2016 - echo '=> override the binaries of modules installed with `nvm`:' - echo + nvm_echo '=> override the binaries of modules installed with `nvm`:' + nvm_echo command printf %s\\n "$NPM_GLOBAL_MODULES" - echo '=> If you wish to uninstall them at a later point (or re-install them under your' + nvm_echo '=> If you wish to uninstall them at a later point (or re-install them under your' # shellcheck disable=SC2016 - echo '=> `nvm` Nodes), you can remove them from the system Node as follows:' - echo - echo ' $ nvm use system' - echo ' $ npm uninstall -g a_module' - echo + nvm_echo '=> `nvm` Nodes), you can remove them from the system Node as follows:' + nvm_echo + nvm_echo ' $ nvm use system' + nvm_echo ' $ npm uninstall -g a_module' + nvm_echo fi } nvm_do_install() { if [ -n "${NVM_DIR-}" ] && ! [ -d "${NVM_DIR}" ]; then if [ -e "${NVM_DIR}" ]; then - echo >&2 "File \"${NVM_DIR}\" has the same name as installation directory." + nvm_echo >&2 "File \"${NVM_DIR}\" has the same name as installation directory." exit 1 fi if [ "${NVM_DIR}" = "$(nvm_default_install_dir)" ]; then mkdir "${NVM_DIR}" else - echo >&2 "You have \$NVM_DIR set to \"${NVM_DIR}\", but that directory does not exist. Check your profile files and environment." + nvm_echo >&2 "You have \$NVM_DIR set to \"${NVM_DIR}\", but that directory does not exist. Check your profile files and environment." exit 1 fi fi @@ -357,27 +361,27 @@ nvm_do_install() { elif nvm_has nvm_download; then install_nvm_as_script else - echo >&2 'You need git, curl, or wget to install nvm' + nvm_echo >&2 'You need git, curl, or wget to install nvm' exit 1 fi elif [ "${METHOD}" = 'git' ]; then if ! nvm_has git; then - echo >&2 "You need git to install nvm" + nvm_echo >&2 "You need git to install nvm" exit 1 fi install_nvm_from_git elif [ "${METHOD}" = 'script' ]; then if ! nvm_has nvm_download; then - echo >&2 "You need curl or wget to install nvm" + nvm_echo >&2 "You need curl or wget to install nvm" exit 1 fi install_nvm_as_script else - echo >&2 "The environment variable \$METHOD is set to \"${METHOD}\", which is not recognized as a valid installation method." + nvm_echo >&2 "The environment variable \$METHOD is set to \"${METHOD}\", which is not recognized as a valid installation method." exit 1 fi - echo + nvm_echo local NVM_PROFILE NVM_PROFILE="$(nvm_detect_profile)" @@ -395,32 +399,32 @@ nvm_do_install() { if [ -n "${PROFILE}" ]; then TRIED_PROFILE="${NVM_PROFILE} (as defined in \$PROFILE), " fi - echo "=> Profile not found. Tried ${TRIED_PROFILE-}~/.bashrc, ~/.bash_profile, ~/.zshrc, and ~/.profile." - echo "=> Create one of them and run this script again" - echo " OR" - echo "=> Append the following lines to the correct file yourself:" + nvm_echo "=> Profile not found. Tried ${TRIED_PROFILE-}~/.bashrc, ~/.bash_profile, ~/.zshrc, and ~/.profile." + nvm_echo "=> Create one of them and run this script again" + nvm_echo " OR" + nvm_echo "=> Append the following lines to the correct file yourself:" command printf "${SOURCE_STR}" - echo + nvm_echo else if nvm_profile_is_bash_or_zsh "${NVM_PROFILE-}"; then BASH_OR_ZSH=true fi if ! command grep -qc '/nvm.sh' "$NVM_PROFILE"; then - echo "=> Appending nvm source string to $NVM_PROFILE" + nvm_echo "=> Appending nvm source string to $NVM_PROFILE" command printf "${SOURCE_STR}" >> "$NVM_PROFILE" else - echo "=> nvm source string already in ${NVM_PROFILE}" + nvm_echo "=> nvm source string already in ${NVM_PROFILE}" fi # shellcheck disable=SC2016 if ${BASH_OR_ZSH} && ! command grep -qc '$NVM_DIR/bash_completion' "$NVM_PROFILE"; then - echo "=> Appending bash_completion source string to $NVM_PROFILE" + nvm_echo "=> Appending bash_completion source string to $NVM_PROFILE" command printf "$COMPLETION_STR" >> "$NVM_PROFILE" else - echo "=> bash_completion source string already in ${NVM_PROFILE}" + nvm_echo "=> bash_completion source string already in ${NVM_PROFILE}" fi fi if ${BASH_OR_ZSH} && [ -z "${NVM_PROFILE-}" ] ; then - echo "=> Please also append the following lines to the if you are using bash/zsh shell:" + nvm_echo "=> Please also append the following lines to the if you are using bash/zsh shell:" command printf "${COMPLETION_STR}" fi @@ -434,7 +438,7 @@ nvm_do_install() { nvm_reset - echo "=> Close and reopen your terminal to start using nvm or run the following to use it now:" + nvm_echo "=> Close and reopen your terminal to start using nvm or run the following to use it now:" command printf "${SOURCE_STR}" if ${BASH_OR_ZSH} ; then command printf "${COMPLETION_STR}" From b19d8dbbba078680cafa0feb85194dd3a7420929 Mon Sep 17 00:00:00 2001 From: Andrew Shield Date: Thu, 18 Mar 2021 16:07:24 +1300 Subject: [PATCH 1358/1426] [readme] Update source command to include s in zsh --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d71fa94..b60a8c2 100644 --- a/README.md +++ b/README.md @@ -96,7 +96,7 @@ Alternatively, you can run run the following commands for the different shells o *bash*: `source ~/.bashrc` -*zsh*: `source ~/.zhrc` +*zsh*: `source ~/.zshrc` *ksh*: `. ~/.profile` From 621ccc5d13c5c8ca6cb49d3a6fd1b77b575d3c9f Mon Sep 17 00:00:00 2001 From: Jonathan Perret Date: Tue, 23 Mar 2021 14:37:04 +0100 Subject: [PATCH 1359/1426] Clarify the M1 shell instructions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The instructions seemed to encourage the misconception that `arch -x86_64 zsh` somehow modifies the default architecture for `zsh`, an operation which would need to be "reverted". In fact, `arch -x86_64 …` merely spawns a new process under the selected architecture. --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b60a8c2..8f6caec 100644 --- a/README.md +++ b/README.md @@ -919,13 +919,13 @@ arm64 $ nvm install v12.20.1 # Now uninstall the version we want to replace: $ nvm uninstall v14.15.4 -# Set the architecture for our shell to 64-bit X86: +# Launch a new zsh process under the 64-bit X86 architecture: $ arch -x86_64 zsh # Install node using nvm. This should download the precompiled x64 binary: $ nvm install v14.15.4 # Now check that the architecture is correct: $ node -p process.arch x64 -# It is now safe to revert zsh back to the native architecture: -$ arch -arm64 zsh +# It is now safe to return to the arm64 zsh process: +$ exit ``` From c26bd935c0cd9574035d5bde8ed930e6a4d8b16b Mon Sep 17 00:00:00 2001 From: Jonathan Perret Date: Wed, 24 Mar 2021 10:50:38 +0100 Subject: [PATCH 1360/1426] [readme] M1 macs: Add `nvm use` command to clarify that it is required --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 8f6caec..564fbc4 100644 --- a/README.md +++ b/README.md @@ -928,4 +928,10 @@ $ node -p process.arch x64 # It is now safe to return to the arm64 zsh process: $ exit +# We're back to a native shell: +$ arch +arm64 +# And the new version is now available to use: +$ nvm use v14.15.4 +Now using node v14.15.4 (npm v6.14.10) ``` From cfc7edac65d1c3fbc94567dbf347b1166628a0d6 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 29 Mar 2021 12:49:02 -0700 Subject: [PATCH 1361/1426] [Dev Deps] update `dockerfile_lint`, `eclint`, `replace`, `semver` --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 09834e4..eec13f5 100644 --- a/package.json +++ b/package.json @@ -39,11 +39,11 @@ }, "homepage": "https://github.com/nvm-sh/nvm", "devDependencies": { - "dockerfile_lint": "^0.3.2", + "dockerfile_lint": "^0.3.4", "doctoc": "^2.0.0", - "eclint": "^2.6.0", - "replace": "^1.2.0", - "semver": "^7.3.4", + "eclint": "^2.8.1", + "replace": "^1.2.1", + "semver": "^7.3.5", "urchin": "^0.0.5" } } From 3fea5493a431ac64470d4230d4b51438cf213bd1 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 29 Mar 2021 12:49:10 -0700 Subject: [PATCH 1362/1426] v0.38.0 --- README.md | 16 ++++++++-------- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 564fbc4..b43a699 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Node Version Manager [![Build Status](https://travis-ci.org/nvm-sh/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.37.2-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://travis-ci.org/nvm-sh/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.38.0-yellow.svg)][4] [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/684/badge)](https://bestpractices.coreinfrastructure.org/projects/684) @@ -64,10 +64,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.37.2/install.sh | bash +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash ``` ```sh -wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash +wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/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`). @@ -133,7 +133,7 @@ You can use a task: ```yaml - name: nvm shell: > - curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash + curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash args: creates: "{{ ansible_env.HOME }}/.nvm/nvm.sh" ``` @@ -193,7 +193,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.37.2` +1. `cd ~/.nvm` and check out the latest version with `git checkout v0.38.0` 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: @@ -772,7 +772,7 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh ```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.37.2/install.sh | bash +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash ``` The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. @@ -869,9 +869,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.37.2/install.sh +[2]: https://github.com/nvm-sh/nvm/blob/v0.38.0/install.sh [3]: https://travis-ci.org/nvm-sh/nvm -[4]: https://github.com/nvm-sh/nvm/releases/tag/v0.37.2 +[4]: https://github.com/nvm-sh/nvm/releases/tag/v0.38.0 [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index 8ab535f..50fbd3a 100755 --- a/install.sh +++ b/install.sh @@ -27,7 +27,7 @@ nvm_install_dir() { } nvm_latest_version() { - nvm_echo "v0.37.2" + nvm_echo "v0.38.0" } nvm_profile_is_bash_or_zsh() { diff --git a/nvm.sh b/nvm.sh index 574b8f3..edf964a 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3971,7 +3971,7 @@ nvm() { NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; "--version" | "-v") - nvm_echo '0.37.2' + nvm_echo '0.38.0' ;; "unload") nvm deactivate >/dev/null 2>&1 diff --git a/package.json b/package.json index eec13f5..2387b2f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.37.2", + "version": "0.38.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From f534fde760f4cf1aa47eb2f04350c14bb1f67c6b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 6 Apr 2021 12:36:07 -0700 Subject: [PATCH 1363/1426] [Tests] `node-gyp` v8 breaks this test --- test/slow/nvm reinstall-packages/should work as expected | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/slow/nvm reinstall-packages/should work as expected b/test/slow/nvm reinstall-packages/should work as expected index d6aa9f1..de6962f 100755 --- a/test/slow/nvm reinstall-packages/should work as expected +++ b/test/slow/nvm reinstall-packages/should work as expected @@ -11,7 +11,7 @@ nvm use 0.10.28 (cd test-npmlink && npm link) EXPECTED_PACKAGES="autoprefixer bower david grunt-cli grunth-cli http-server jshint marked node-gyp npmlist postcss recursive-blame spawn-sync test-npmlink uglify-js yo" -EXPECTED_PACKAGES_INSTALL="autoprefixer bower david@11 grunt-cli grunth-cli http-server jshint marked node-gyp npmlist postcss@7 recursive-blame spawn-sync test-npmlink uglify-js yo@1" +EXPECTED_PACKAGES_INSTALL="autoprefixer bower david@11 grunt-cli grunth-cli http-server jshint marked node-gyp@7 npmlist postcss@7 recursive-blame spawn-sync test-npmlink uglify-js yo@1" echo "$EXPECTED_PACKAGES_INSTALL" | sed -e 's/test-npmlink //' | xargs npm install -g --quiet From 2b5e53fcd57409e018b468fd05eebad06fbff3fa Mon Sep 17 00:00:00 2001 From: Sladyn Nunes Date: Thu, 1 Apr 2021 19:06:40 +0530 Subject: [PATCH 1364/1426] [Fix] install script: check the proper version; fetch tags also Co-authored-by: Sladyn Nunes Co-authored-by: Jordan Harband --- test/install_script/install_nvm_from_git | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/test/install_script/install_nvm_from_git b/test/install_script/install_nvm_from_git index 161bbcb..e5e391e 100755 --- a/test/install_script/install_nvm_from_git +++ b/test/install_script/install_nvm_from_git @@ -55,14 +55,18 @@ test_install_data() { local ref="$4" local changeset="$5" local avoid_ref="$6" + if [ -n "$ref" ]; then - echo "$current_ref" | grep -q "$ref" || die "install_nvm_from_git $message did not clone with ref $ref" + echo "$current_ref" | grep -q "$ref" || die "install_nvm_from_git ${message} did not clone with ref ${ref}" fi - if [ -n "$avoid_ref" ]; then - echo "$current_ref" | grep -q "$avoid_ref" && die "install_nvm_from_git $message did clone with unwanted ref $avoid_ref" + + local head_ref="$(git for-each-ref --points-at HEAD --format='%(refname:short)' 'refs/tags/')" + if [ -n "${avoid_ref}" ] && [ "${head_ref}" != "${avoid_ref}"]; then + echo "${current_ref}" | grep -q "$avoid_ref" && die "install_nvm_from_git ${message} did clone with unwanted ref ${avoid_ref}" fi + if [ -n "$changeset" ]; then - echo "$current_changeset" | grep -q "$changeset" || die "install_nvm_from_git $message did not clone with changeset $changeset" + echo "${current_changeset}" | grep -q "${changeset}" || die "install_nvm_from_git ${message} did not clone with changeset ${changeset}" fi } @@ -73,7 +77,11 @@ test_install_data() { # - 4: changeset to check ("" if none) # - 5: ref to avoid ("" if none) test_install() { - NVM_INSTALL_VERSION="$1" + if [ -n "${1-}" ]; then + export NVM_INSTALL_VERSION="$1" + else + unset NVM_INSTALL_VERSION + fi local message="$2" local ref="$3" local changeset="$4" From 779a34e6a9adcb6528e63d595a7a8838747e7915 Mon Sep 17 00:00:00 2001 From: Botspot <54716352+Botspot@users.noreply.github.com> Date: Mon, 22 Mar 2021 14:56:25 -0500 Subject: [PATCH 1365/1426] [Fix] `nvm_get_arch`: Rasbperry Pi: armv7l with arm64 kernel, get correct arch Co-authored-by: Botspot <54716352+Botspot@users.noreply.github.com> Co-authored-by: Jordan Harband Co-authored-by: Sladyn Nunes --- nvm.sh | 8 ++++++++ test/fast/Unit tests/nvm_get_arch | 2 ++ 2 files changed, 10 insertions(+) diff --git a/nvm.sh b/nvm.sh index edf964a..aab6c5d 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1796,6 +1796,14 @@ nvm_get_arch() { aarch64) NVM_ARCH="arm64" ;; *) NVM_ARCH="${HOST_ARCH}" ;; esac + + # If running a 64bit ARM kernel but a 32bit ARM userland, change ARCH to 32bit ARM (armv7l) + L=$(ls -dl /sbin/init) # if /sbin/init is 32bit executable + if [ "$(uname)" = "Linux" ] && [ "${NVM_ARCH}" = arm64 ] && [ "$(od -An -t x1 -j 4 -N 1 "${L#*-> }")" = ' 01' ]; then + NVM_ARCH=armv7l + HOST_ARCH=armv7l + fi + nvm_echo "${NVM_ARCH}" } diff --git a/test/fast/Unit tests/nvm_get_arch b/test/fast/Unit tests/nvm_get_arch index f064203..aaf3e83 100755 --- a/test/fast/Unit tests/nvm_get_arch +++ b/test/fast/Unit tests/nvm_get_arch @@ -79,4 +79,6 @@ run_test amd64 smartos x64 no_pkg_info run_test x86 osx x86 run_test amd64 osx x64 +run_test arm64 smartos x64 + cleanup From 5fcec573eba739c4474cdb460e8ed32adba07f5f Mon Sep 17 00:00:00 2001 From: Leandro Facchinetti Date: Mon, 5 Apr 2021 16:25:41 +0100 Subject: [PATCH 1366/1426] [readme] Improve README about Macs with M1 chips Mention that you must have Rosetta 2 installed and provide instructions on how to do it. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b43a699..160d2ed 100644 --- a/README.md +++ b/README.md @@ -905,6 +905,7 @@ Let's assume that: - you already have versions `12.20.1` and `14.15.4` installed using `nvm` - the current version in use is `14.15.4` - you are using the `zsh` shell +- you have Rosetta 2 installed (macOS prompts you to install Rosetta 2 the first time you open a Intel-only non-command-line application, or you may install Rosetta 2 from the command line with `softwareupdate --install-rosetta`) ```sh # Check what version you're running: From d118be8fd41b90857058f0f10607d7d8c39c209c Mon Sep 17 00:00:00 2001 From: nmarghetti Date: Sun, 21 Feb 2021 18:48:43 +0100 Subject: [PATCH 1367/1426] [Tests] Add unit tests for `nvm_is_version_installed` --- test/fast/Unit tests/nvm_is_version_installed | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 test/fast/Unit tests/nvm_is_version_installed diff --git a/test/fast/Unit tests/nvm_is_version_installed b/test/fast/Unit tests/nvm_is_version_installed new file mode 100644 index 0000000..d530658 --- /dev/null +++ b/test/fast/Unit tests/nvm_is_version_installed @@ -0,0 +1,47 @@ +#!/bin/sh + +cleanup () { + rm -rf "$NVM_DIR" + unset -f die cleanup check_version + unset NVM_DIR NODE_PATH +} +die () { echo "$@" ; cleanup ; exit 1; } + +\. ../../../nvm.sh + +set -ex + +NVM_DIR=$(mktemp -d) +NODE_PATH="$NVM_DIR/versions/node" +mkdir -p "$NODE_PATH" +if [ -z "$NODE_PATH" ]; then + die 'Unable to create temporary folder' +fi + +check_version() { + local VERSION + local BINARY + VERSION=$1 + BINARY=$2 + + # nvm_is_version_installed fails with non existing version + ! nvm_is_version_installed "$VERSION" || die "nvm_is_version_installed $VERSION should fail with non existing version" + + # nvm_is_version_installed fails with non executable existing version + mkdir -p "$NODE_PATH/$VERSION/bin" && cd "$NODE_PATH/$VERSION/bin" && touch "$NODE_PATH/$VERSION/bin/$BINARY" + ! nvm_is_version_installed "$VERSION" || die "nvm_is_version_installed $VERSION should fail with non executable existing version" + + # nvm_is_version_installed whould work + chmod +x "$NODE_PATH/$VERSION/bin/$BINARY" + nvm_is_version_installed "$VERSION" || die "nvm_is_version_installed $VERSION should work" +} + +# nvm_is_version_installed is available +type nvm_is_version_installed > /dev/null 2>&1 || die 'nvm_is_version_installed is not available' + +# nvm_is_version_installed with no parameter fails +! nvm_is_version_installed || die 'nvm_is_version_installed without parameter should fail' + +check_version '12.0.0' 'node' + +cleanup From f2582275f607af143fdda46bc88f090660a16a97 Mon Sep 17 00:00:00 2001 From: nmarghetti Date: Sat, 2 Jan 2021 00:03:24 +0100 Subject: [PATCH 1368/1426] [New] maybe support Windows with WSL, MSYS, Cygwin --- .github/workflows/windows-npm.yml | 106 ++++++++++++++++++ README.md | 2 +- nvm.sh | 81 +++++++++---- .../Unit tests/nvm_get_artifact_compression | 6 + .../Unit tests/nvm_install_binary_extract | 3 + test/fast/Unit tests/nvm_is_version_installed | 9 +- 6 files changed, 186 insertions(+), 21 deletions(-) create mode 100755 .github/workflows/windows-npm.yml diff --git a/.github/workflows/windows-npm.yml b/.github/workflows/windows-npm.yml new file mode 100755 index 0000000..2515a23 --- /dev/null +++ b/.github/workflows/windows-npm.yml @@ -0,0 +1,106 @@ +name: 'Tests on Windows: `nvm install`' + +on: [pull_request, push] + +env: + NVM_INSTALL_GITHUB_REPO: ${{ github.repository }} + NVM_INSTALL_VERSION: ${{ github.sha }} + +jobs: + node_fail_install: + # Default installation does not work due to npm_config_prefix set to C:\npm\prefix + name: 'MSYS fail prefix nvm install' + runs-on: windows-latest + steps: + - name: Retrieve nvm + shell: bash + run: | + curl -fsSLo- "https://raw.githubusercontent.com/${NVM_INSTALL_GITHUB_REPO}/${NVM_INSTALL_VERSION}/install.sh" | METHOD=script bash + . "$HOME/.nvm/nvm.sh" + ! nvm install --lts + nodes: + name: 'MSYS nvm install' + runs-on: windows-latest + strategy: + matrix: + npm-node-version: + - '--lts' + - '--default 12' + - '--no-progress 10' + steps: + - name: Retrieve nvm + shell: bash + run: | + unset npm_config_prefix + if [ "${{ matrix.npm-node-version }}" = "--lts" ]; then + curl -fsSLo- "https://raw.githubusercontent.com/${NVM_INSTALL_GITHUB_REPO}/${NVM_INSTALL_VERSION}/install.sh" | bash + else + curl -fsSLo- "https://raw.githubusercontent.com/${NVM_INSTALL_GITHUB_REPO}/${NVM_INSTALL_VERSION}/install.sh" | METHOD=script bash + fi + . "$HOME/.nvm/nvm.sh" + nvm install ${{ matrix.npm-node-version }} + node_cygwin: + name: 'Cygwin nvm install' + runs-on: windows-latest + steps: + - name: Install Cygwin + shell: bash + run: | + export SITE='https://mirror.clarkson.edu/cygwin/' + export LOCALDIR="$(pwd)" + export ROOTDIR="$USERPROFILE\\cygwin" + export PACKAGES='bash,git,curl' + + curl -fsSLo setup-x86_64.exe 'https://cygwin.com/setup-x86_64.exe' + ./setup-x86_64.exe --disable-buggy-antivirus -q -s "$SITE" -l "$LOCALDIR" -R "$ROOTDIR" -P "$PACKAGES" + + cat >~/setup.sh </dev/null)"/bin/node ] + if [ -z "${1-}" ]; then + return 1 + fi + local NVM_NODE_BINARY + NVM_NODE_BINARY='node' + if [ "_$(nvm_get_os)" = '_win' ]; then + NVM_NODE_BINARY='node.exe' + fi + if [ -x "$(nvm_version_path "$1" 2>/dev/null)/bin/${NVM_NODE_BINARY}" ]; then + return 0 + fi + return 1 } nvm_print_npm_version() { @@ -326,10 +337,14 @@ nvm_tree_contains_path() { return 2 fi + local previous_pathdir + previous_pathdir="${node_path}" local pathdir - pathdir=$(dirname "${node_path}") - while [ "${pathdir}" != "" ] && [ "${pathdir}" != "." ] && [ "${pathdir}" != "/" ] && [ "${pathdir}" != "${tree}" ]; do - pathdir=$(dirname "${pathdir}") + pathdir=$(dirname "${previous_pathdir}") + while [ "${pathdir}" != '' ] && [ "${pathdir}" != '.' ] && [ "${pathdir}" != '/' ] && + [ "${pathdir}" != "${tree}" ] && [ "${pathdir}" != "${previous_pathdir}" ]; do + previous_pathdir="${pathdir}" + pathdir=$(dirname "${previous_pathdir}") done [ "${pathdir}" = "${tree}" ] } @@ -1763,6 +1778,7 @@ nvm_get_os() { FreeBSD\ *) NVM_OS=freebsd ;; OpenBSD\ *) NVM_OS=openbsd ;; AIX\ *) NVM_OS=aix ;; + CYGWIN* | MSYS* | MINGW*) NVM_OS=win ;; esac nvm_echo "${NVM_OS-}" } @@ -1892,23 +1908,37 @@ nvm_install_binary_extract() { command mkdir -p "${TMPDIR}" && \ VERSION_PATH="$(nvm_version_path "${PREFIXED_VERSION}")" || return 1 - local tar_compression_flag - tar_compression_flag='z' - if nvm_supports_xz "${VERSION}"; then - tar_compression_flag='J' - fi - - local tar - if [ "${NVM_OS}" = 'aix' ]; then - tar='gtar' + # For Windows system (GitBash with MSYS, Cygwin) + if [ "${NVM_OS}" = 'win' ]; then + VERSION_PATH="${VERSION_PATH}/bin" + command unzip -q "${TARBALL}" -d "${TMPDIR}" || return 1 + # For non Windows system (including WSL running on Windows) else - tar='tar' + local tar_compression_flag + tar_compression_flag='z' + if nvm_supports_xz "${VERSION}"; then + tar_compression_flag='J' + fi + + local tar + if [ "${NVM_OS}" = 'aix' ]; then + tar='gtar' + else + tar='tar' + fi + command "${tar}" -x${tar_compression_flag}f "${TARBALL}" -C "${TMPDIR}" --strip-components 1 || return 1 fi - command "${tar}" -x${tar_compression_flag}f "${TARBALL}" -C "${TMPDIR}" --strip-components 1 || return 1 command mkdir -p "${VERSION_PATH}" || return 1 - command mv "${TMPDIR}/"* "${VERSION_PATH}" || return 1 + if [ "${NVM_OS}" = 'win' ]; then + command mv "${TMPDIR}/"*/* "${VERSION_PATH}" || return 1 + command chmod +x "${VERSION_PATH}"/node.exe || return 1 + command chmod +x "${VERSION_PATH}"/npm || return 1 + command chmod +x "${VERSION_PATH}"/npx 2>/dev/null + else + command mv "${TMPDIR}/"* "${VERSION_PATH}" || return 1 + fi command rm -rf "${TMPDIR}" @@ -2042,7 +2072,9 @@ nvm_get_artifact_compression() { local COMPRESSION COMPRESSION='tar.gz' - if nvm_supports_xz "${VERSION}"; then + if [ "_${NVM_OS}" = '_win' ]; then + COMPRESSION='zip' + elif nvm_supports_xz "${VERSION}"; then COMPRESSION='tar.xz' fi @@ -2409,6 +2441,9 @@ nvm_die_on_prefix() { return 3 fi + local NVM_OS + NVM_OS="$(nvm_get_os)" + # npm normalizes NPM_CONFIG_-prefixed env vars # https://github.com/npm/npmconf/blob/22827e4038d6eebaafeb5c13ed2b92cf97b8fb82/npmconf.js#L331-L348 # https://github.com/npm/npm/blob/5e426a78ca02d0044f8dd26e0c5f881217081cbd/lib/config/core.js#L343-L359 @@ -2420,6 +2455,9 @@ nvm_die_on_prefix() { if [ -n "${NVM_NPM_CONFIG_PREFIX_ENV-}" ]; then local NVM_CONFIG_VALUE eval "NVM_CONFIG_VALUE=\"\$${NVM_NPM_CONFIG_PREFIX_ENV}\"" + if [ -n "${NVM_CONFIG_VALUE-}" ] && [ "_${NVM_OS}" = "_win" ]; then + NVM_CONFIG_VALUE="$(cd "$NVM_CONFIG_VALUE" 2>/dev/null && pwd)" + fi if [ -n "${NVM_CONFIG_VALUE-}" ] && ! nvm_tree_contains_path "${NVM_DIR}" "${NVM_CONFIG_VALUE}"; then nvm deactivate >/dev/null 2>&1 nvm_err "nvm is not compatible with the \"${NVM_NPM_CONFIG_PREFIX_ENV}\" environment variable: currently set to \"${NVM_CONFIG_VALUE}\"" @@ -3209,8 +3247,13 @@ nvm() { nvm_get_make_jobs fi - NVM_NO_PROGRESS="${NVM_NO_PROGRESS:-${noprogress}}" nvm_install_source "${FLAVOR}" std "${VERSION}" "${NVM_MAKE_JOBS}" "${ADDITIONAL_PARAMETERS}" - EXIT_CODE=$? + if [ "_${NVM_OS}" = "_win" ]; then + nvm_err 'Installing from source on non-WSL Windows is not supported' + EXIT_CODE=87 + else + NVM_NO_PROGRESS="${NVM_NO_PROGRESS:-${noprogress}}" nvm_install_source "${FLAVOR}" std "${VERSION}" "${NVM_MAKE_JOBS}" "${ADDITIONAL_PARAMETERS}" + EXIT_CODE=$? + fi fi fi diff --git a/test/fast/Unit tests/nvm_get_artifact_compression b/test/fast/Unit tests/nvm_get_artifact_compression index ed7a180..3fc5fcf 100755 --- a/test/fast/Unit tests/nvm_get_artifact_compression +++ b/test/fast/Unit tests/nvm_get_artifact_compression @@ -13,4 +13,10 @@ die () { echo "$@" ; cleanup ; exit 1; } # nvm_get_artifact_compression with xz [ "$(nvm_get_artifact_compression "14.0.0")" = 'tar.xz' ] || die 'nvm_get_artifact_compression should return "tar.xz" for this version' +# nvm_get_artifact_compression with zip on Windows +nvm_get_os() { + nvm_echo 'win' +} +[ "$(nvm_get_artifact_compression)" = 'zip' ] || die 'nvm_get_artifact_compression should return "zip" for Windows' + cleanup diff --git a/test/fast/Unit tests/nvm_install_binary_extract b/test/fast/Unit tests/nvm_install_binary_extract index a0fc58a..8b8782a 100644 --- a/test/fast/Unit tests/nvm_install_binary_extract +++ b/test/fast/Unit tests/nvm_install_binary_extract @@ -43,6 +43,9 @@ if [ -z "$NVM_DIR" ] || [ -z "$tmp_dir" ]; then die 'Unable to create temporary folder' fi +# Test windows zip +test_archi 'win' 'v15.6.0' 'x64' 'node' 'zip' 'zip' '-qr' + # Test linux tar.xz test_archi 'linux' 'v14.15.4' 'x64' 'bin/node' 'tar.xz' 'tar' '-cJf' diff --git a/test/fast/Unit tests/nvm_is_version_installed b/test/fast/Unit tests/nvm_is_version_installed index d530658..45971f0 100644 --- a/test/fast/Unit tests/nvm_is_version_installed +++ b/test/fast/Unit tests/nvm_is_version_installed @@ -2,7 +2,7 @@ cleanup () { rm -rf "$NVM_DIR" - unset -f die cleanup check_version + unset -f die cleanup nvm_get_os check_version unset NVM_DIR NODE_PATH } die () { echo "$@" ; cleanup ; exit 1; } @@ -44,4 +44,11 @@ type nvm_is_version_installed > /dev/null 2>&1 || die 'nvm_is_version_installed check_version '12.0.0' 'node' +# Checking for Windows +nvm_get_os() { + echo "win" +} +check_version '13.0.0' 'node.exe' + + cleanup From 07253ecd514b2ec955b1c5c1ef89ba463825aee1 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 15 Apr 2021 22:34:40 -0700 Subject: [PATCH 1369/1426] [actions] adjust shellcheck/windows tests to9 have a final "done" job --- .github/workflows/shellcheck.yml | 8 +++++++- .github/workflows/windows-npm.yml | 17 +++++++++++++---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml index f56843d..a193faa 100644 --- a/.github/workflows/shellcheck.yml +++ b/.github/workflows/shellcheck.yml @@ -3,7 +3,7 @@ name: 'Tests: shellcheck' on: [pull_request, push] jobs: - shellcheck: + shellcheck_matrix: runs-on: ubuntu-latest strategy: matrix: @@ -29,3 +29,9 @@ jobs: - run: "shellcheck --version" - name: Run shellcheck on ${{ matrix.file }} run: shellcheck -s ${{ matrix.shell }} ${{ matrix.file }} + + shellcheck: + needs: [shellcheck_matrix] + runs-on: ubuntu-latest + steps: + - run: 'echo tests completed' diff --git a/.github/workflows/windows-npm.yml b/.github/workflows/windows-npm.yml index 2515a23..810536e 100755 --- a/.github/workflows/windows-npm.yml +++ b/.github/workflows/windows-npm.yml @@ -7,7 +7,7 @@ env: NVM_INSTALL_VERSION: ${{ github.sha }} jobs: - node_fail_install: + msys_fail_install: # Default installation does not work due to npm_config_prefix set to C:\npm\prefix name: 'MSYS fail prefix nvm install' runs-on: windows-latest @@ -18,7 +18,8 @@ jobs: curl -fsSLo- "https://raw.githubusercontent.com/${NVM_INSTALL_GITHUB_REPO}/${NVM_INSTALL_VERSION}/install.sh" | METHOD=script bash . "$HOME/.nvm/nvm.sh" ! nvm install --lts - nodes: + + msys_matrix: name: 'MSYS nvm install' runs-on: windows-latest strategy: @@ -39,7 +40,8 @@ jobs: fi . "$HOME/.nvm/nvm.sh" nvm install ${{ matrix.npm-node-version }} - node_cygwin: + + cygwin_matrix: name: 'Cygwin nvm install' runs-on: windows-latest steps: @@ -75,7 +77,8 @@ jobs: run: | cd %USERPROFILE%\cygwin\bin bash.exe "%USERPROFILE%\setup.sh" - wsl_nodes: + + wsl_matrix: name: 'WSL nvm install' runs-on: windows-latest env: @@ -104,3 +107,9 @@ jobs: fi . "$HOME/.nvm/nvm.sh" nvm install ${{ matrix.npm-node-version }} + + nvm_windows: + needs: [wsl_matrix, cygwin_matrix, msys_matrix, msys_fail_install] + runs-on: ubuntu-latest + steps: + - run: 'echo tests completed' From 117486d4a7aea2c407f1d1350f906ab0f27cf177 Mon Sep 17 00:00:00 2001 From: akefirad Date: Fri, 16 Apr 2021 18:53:35 +0200 Subject: [PATCH 1370/1426] [Fix] `bash_completion`: check if `compinit` is called before calling it Fixes #2489. --- bash_completion | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/bash_completion b/bash_completion index e10138a..3e72500 100644 --- a/bash_completion +++ b/bash_completion @@ -84,11 +84,14 @@ __nvm() { # called bashcompinit that will create a complete in ZSH. If the user is in # ZSH, load and run bashcompinit before calling the complete function. if [[ -n ${ZSH_VERSION-} ]]; then - # Calling compinit first and then bashcompinit as mentioned by zsh man page. - autoload -U +X compinit && if [[ ${ZSH_DISABLE_COMPFIX-} = true ]]; then - compinit -u - else - compinit + # First calling compinit (only if not called yet!) + # and then bashcompinit as mentioned by zsh man page. + if ! command -v compinit > /dev/null; then + autoload -U +X compinit && if [[ ${ZSH_DISABLE_COMPFIX-} = true ]]; then + compinit -u + else + compinit + fi fi autoload -U +X bashcompinit && bashcompinit fi From bd0ac1e96d3dfc766a2a8a3da4b986eb29d3e8bd Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 22 Apr 2021 22:28:41 -0700 Subject: [PATCH 1371/1426] [meta] add `SECURITY.md` --- .github/SECURITY.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .github/SECURITY.md diff --git a/.github/SECURITY.md b/.github/SECURITY.md new file mode 100644 index 0000000..82e4285 --- /dev/null +++ b/.github/SECURITY.md @@ -0,0 +1,3 @@ +# Security + +Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/security if you have a potential security vulnerability to report. From 1527ac9d21c8b1dad1f9a6a98ae594767cc6fbd0 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 26 Apr 2021 11:41:29 -0700 Subject: [PATCH 1372/1426] [readme] remove redundant "license" section text in favor of LICENSE.md --- README.md | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/README.md b/README.md index 8700768..c24dde0 100644 --- a/README.md +++ b/README.md @@ -641,16 +641,7 @@ load_nvm ## License -nvm is released under the MIT license. - - -Copyright (C) 2010 Tim Caswell and Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +See [LICENSE.md](./LICENSE.md). ## Running Tests From f3caa0642040ae5be4d52b5c75b7eec633305efb Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 26 Apr 2021 11:42:03 -0700 Subject: [PATCH 1373/1426] [meta] add OpenJS Foundation copyright notices/links --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index c24dde0..e36a0a0 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,7 @@ - [fish](#fish) - [Calling `nvm use` automatically in a directory with a `.nvmrc` file](#calling-nvm-use-automatically-in-a-directory-with-a-nvmrc-file-1) - [License](#license) +- [Copyright notice](#copyright-notice) - [Running Tests](#running-tests) - [Environment variables](#environment-variables) - [Bash Completion](#bash-completion) @@ -643,6 +644,12 @@ load_nvm See [LICENSE.md](./LICENSE.md). +## Copyright notice + +Copyright [OpenJS Foundation](https://openjsf.org) and [project name] contributors. All rights reserved. The [OpenJS Foundation](https://openjsf.org) has registered trademarks and uses trademarks. For a list of trademarks of the [OpenJS Foundation](https://openjsf.org), please see our [Trademark Policy](https://trademark-policy.openjsf.org/) and [Trademark List](https://trademark-list.openjsf.org/). Node.js is a trademark of Joyent, Inc. and is used with its permission. Trademarks and logos not indicated on the [list of OpenJS Foundation trademarks](https://trademark-list.openjsf.org) are trademarks™ or registered® trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them. + +[The OpenJS Foundation](https://openjsf.org/) | [Terms of Use](https://terms-of-use.openjsf.org/) | [Privacy Policy](https://privacy-policy.openjsf.org/) | [OpenJS Foundation Bylaws](https://bylaws.openjsf.org/) | [Trademark Policy](https://trademark-policy.openjsf.org/) | [Trademark List](https://trademark-list.openjsf.org/) | [Cookie Policy](https://www.linuxfoundation.org/cookies/) + ## Running Tests Tests are written in [Urchin]. Install Urchin (and other dependencies) like so: From fc87226b2314f93ea8c38b62b0d2ef26c3055fd7 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 26 Apr 2021 11:46:12 -0700 Subject: [PATCH 1374/1426] [readme] move License and Copyright notice sections to the bottom --- README.md | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index e36a0a0..7df2c2c 100644 --- a/README.md +++ b/README.md @@ -38,8 +38,6 @@ - [Calling `nvm use` automatically in a directory with a `.nvmrc` file](#calling-nvm-use-automatically-in-a-directory-with-a-nvmrc-file) - [fish](#fish) - [Calling `nvm use` automatically in a directory with a `.nvmrc` file](#calling-nvm-use-automatically-in-a-directory-with-a-nvmrc-file-1) -- [License](#license) -- [Copyright notice](#copyright-notice) - [Running Tests](#running-tests) - [Environment variables](#environment-variables) - [Bash Completion](#bash-completion) @@ -51,6 +49,8 @@ - [Docker For Development Environment](#docker-for-development-environment) - [Problems](#problems) - [macOS Troubleshooting](#macos-troubleshooting) +- [License](#license) +- [Copyright notice](#copyright-notice) @@ -639,17 +639,6 @@ end load_nvm ``` - -## License - -See [LICENSE.md](./LICENSE.md). - -## Copyright notice - -Copyright [OpenJS Foundation](https://openjsf.org) and [project name] contributors. All rights reserved. The [OpenJS Foundation](https://openjsf.org) has registered trademarks and uses trademarks. For a list of trademarks of the [OpenJS Foundation](https://openjsf.org), please see our [Trademark Policy](https://trademark-policy.openjsf.org/) and [Trademark List](https://trademark-list.openjsf.org/). Node.js is a trademark of Joyent, Inc. and is used with its permission. Trademarks and logos not indicated on the [list of OpenJS Foundation trademarks](https://trademark-list.openjsf.org) are trademarks™ or registered® trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them. - -[The OpenJS Foundation](https://openjsf.org/) | [Terms of Use](https://terms-of-use.openjsf.org/) | [Privacy Policy](https://privacy-policy.openjsf.org/) | [OpenJS Foundation Bylaws](https://bylaws.openjsf.org/) | [Trademark Policy](https://trademark-policy.openjsf.org/) | [Trademark List](https://trademark-list.openjsf.org/) | [Cookie Policy](https://www.linuxfoundation.org/cookies/) - ## Running Tests Tests are written in [Urchin]. Install Urchin (and other dependencies) like so: @@ -934,3 +923,13 @@ arm64 $ nvm use v14.15.4 Now using node v14.15.4 (npm v6.14.10) ``` + +## License + +See [LICENSE.md](./LICENSE.md). + +## Copyright notice + +Copyright [OpenJS Foundation](https://openjsf.org) and [project name] contributors. All rights reserved. The [OpenJS Foundation](https://openjsf.org) has registered trademarks and uses trademarks. For a list of trademarks of the [OpenJS Foundation](https://openjsf.org), please see our [Trademark Policy](https://trademark-policy.openjsf.org/) and [Trademark List](https://trademark-list.openjsf.org/). Node.js is a trademark of Joyent, Inc. and is used with its permission. Trademarks and logos not indicated on the [list of OpenJS Foundation trademarks](https://trademark-list.openjsf.org) are trademarks™ or registered® trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them. + +[The OpenJS Foundation](https://openjsf.org/) | [Terms of Use](https://terms-of-use.openjsf.org/) | [Privacy Policy](https://privacy-policy.openjsf.org/) | [OpenJS Foundation Bylaws](https://bylaws.openjsf.org/) | [Trademark Policy](https://trademark-policy.openjsf.org/) | [Trademark List](https://trademark-list.openjsf.org/) | [Cookie Policy](https://www.linuxfoundation.org/cookies/) From b5165ecbe48cac3dc32d203ca17f3f61ab5006f4 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 3 May 2021 14:19:31 -0700 Subject: [PATCH 1375/1426] [shellcheck] update for new warnings in v0.7.2 --- nvm.sh | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/nvm.sh b/nvm.sh index 7361bfe..303b423 100644 --- a/nvm.sh +++ b/nvm.sh @@ -6,10 +6,11 @@ # Implemented by Tim Caswell # with much bash help from Matthew Ranney -# "local" warning, quote expansion warning -# shellcheck disable=SC2039,SC2016,SC2001 +# "local" warning, quote expansion warning, sed warning, `local` warning +# shellcheck disable=SC2039,SC2016,SC2001,SC3043 { # this ensures the entire script is downloaded # +# shellcheck disable=SC3028 NVM_SCRIPT_SOURCE="$_" nvm_is_zsh() { @@ -309,7 +310,7 @@ fi if [ -z "${NVM_DIR-}" ]; then # shellcheck disable=SC2128 if [ -n "${BASH_SOURCE-}" ]; then - # shellcheck disable=SC2169 + # shellcheck disable=SC2169,SC3054 NVM_SCRIPT_SOURCE="${BASH_SOURCE[0]}" fi NVM_DIR="$(nvm_cd ${NVM_CD_FLAGS} "$(dirname "${NVM_SCRIPT_SOURCE:-$0}")" >/dev/null && \pwd)" @@ -968,6 +969,7 @@ nvm_list_aliases() { local ALIAS_NAME for ALIAS_NAME in "$(nvm_node_prefix)" "stable" "unstable"; do { + # shellcheck disable=SC2030,SC2031 # (https://github.com/koalaman/shellcheck/issues/2217) if [ ! -f "${NVM_ALIAS_DIR}/${ALIAS_NAME}" ] && { [ -z "${ALIAS}" ] || [ "${ALIAS_NAME}" = "${ALIAS}" ]; }; then NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_CURRENT="${NVM_CURRENT}" nvm_print_default_alias "${ALIAS_NAME}" fi @@ -975,6 +977,7 @@ nvm_list_aliases() { done wait ALIAS_NAME="$(nvm_iojs_prefix)" + # shellcheck disable=SC2030,SC2031 # (https://github.com/koalaman/shellcheck/issues/2217) if [ ! -f "${NVM_ALIAS_DIR}/${ALIAS_NAME}" ] && { [ -z "${ALIAS}" ] || [ "${ALIAS_NAME}" = "${ALIAS}" ]; }; then NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_CURRENT="${NVM_CURRENT}" nvm_print_default_alias "${ALIAS_NAME}" fi @@ -982,6 +985,7 @@ nvm_list_aliases() { ( local LTS_ALIAS + # shellcheck disable=SC2030,SC2031 # (https://github.com/koalaman/shellcheck/issues/2217) for ALIAS_PATH in "${NVM_ALIAS_DIR}/lts/${ALIAS}"*; do { LTS_ALIAS="$(NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_LTS=true nvm_print_alias_path "${NVM_ALIAS_DIR}" "${ALIAS_PATH}")" @@ -2849,7 +2853,7 @@ nvm() { nvm_err "\$TERM_PROGRAM: ${TERM_PROGRAM}" fi nvm_err "\$SHELL: ${SHELL}" - # shellcheck disable=SC2169 + # shellcheck disable=SC2169,SC3028 nvm_err "\$SHLVL: ${SHLVL-}" nvm_err "whoami: '$(whoami)'" nvm_err "\${HOME}: ${HOME}" From ad24e96fda498887d6393a61cf8828ae13e0beb0 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 3 May 2021 14:26:45 -0700 Subject: [PATCH 1376/1426] [shellcheck] disable additional `-x` warning from v0.7.2 --- nvm-exec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm-exec b/nvm-exec index c47cd06..d4f37df 100755 --- a/nvm-exec +++ b/nvm-exec @@ -2,7 +2,7 @@ DIR="$(command cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -# shellcheck disable=SC1090 +# shellcheck disable=SC1090,SC1091 \. "$DIR/nvm.sh" --no-use if [ -n "$NODE_VERSION" ]; then From eed0d0e85ccb35e8802b0df7061491e6cf5d6a4b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 26 Apr 2021 12:56:08 -0700 Subject: [PATCH 1377/1426] [meta] add project charter and governance --- GOVERNANCE.md | 10 ++++++++++ PROJECT_CHARTER.md | 49 ++++++++++++++++++++++++++++++++++++++++++++++ README.md | 11 ++++++++--- 3 files changed, 67 insertions(+), 3 deletions(-) create mode 100644 GOVERNANCE.md create mode 100644 PROJECT_CHARTER.md diff --git a/GOVERNANCE.md b/GOVERNANCE.md new file mode 100644 index 0000000..ea2d09c --- /dev/null +++ b/GOVERNANCE.md @@ -0,0 +1,10 @@ +# `nvm` Project Governance + +## Maintainers + - [@ljharb](https://github.com/ljharb) + +Maintainers are responsible for issue/PR triage, feature additions, maintenance, bugfixes, security fixes, releases, promoting existing contributors to maintainers, managing repo and CI configuration, etc. + +## Contributors + +Anyone who contributes code or content or time, via issues or pull requests or otherwise. Contributors do not have any additional permissions on the project. diff --git a/PROJECT_CHARTER.md b/PROJECT_CHARTER.md new file mode 100644 index 0000000..a8af15e --- /dev/null +++ b/PROJECT_CHARTER.md @@ -0,0 +1,49 @@ +# `nvm` Charter + +nvm is a version manager for Node.js, designed to be installed per-user, and invoked per-shell. nvm works on any POSIX-compliant shell (sh, dash, ksh, zsh, bash), in particular on these platforms: unix, macOS, and Windows WSL. + +## Section 0: Guiding Principles + +The `nvm` project is part of the [OpenJS Foundation][openjs foundation], which operates transparently, openly, collaboratively, and ethically. Project proposals, timelines, and status must not merely be open, but also easily visible to outsiders. + +## Section 1: Scope + +`nvm` is a node version manager, focused on making it easy to install and manage multiple Node.js versions. Any features related to managing the installation and removal of Node.js on any node-supported platform are potentially in scope. + +## Section 2: Relationship with OpenJS Foundation CPC. + +Technical leadership for the projects within the [OpenJS Foundation][openjs foundation] is delegated to the projects through their project charters by the [OpenJS Foundation Cross-Project Council](https://openjsf.org/about/governance/) (CPC). In the case of the `nvm` project, it is delegated to the [`nvm` Maintainers](README.md#maintainers) (the “Maintainers”). The OpenJS Foundation's business leadership is the Board of Directors (the “Board”). + +This `nvm` Charter reflects a carefully constructed balanced role for the Maintainers and the CPC in the governance of the OpenJS Foundation. The charter amendment process is for the Maintainers to propose changes using simple majority of the full Maintainers, the proposed changes being subject to review and approval by the CPC. The CPC may additionally make amendments to the project charter at any time, though the CPC will not interfere with day-to-day discussions, votes or meetings of the Maintainers. + +### 2.1 Other Formal Project Relationships + +Section Intentionally Left Blank + +## Section 3: `nvm`'s Maintainers Governing Body + +`nvm` is governed by its [maintainers](README.md#maintainers). + +## Section 4: Roles & Responsibilities + +The roles and responsibilities of `nvm`'s Maintainers are described in [GOVERNANCE.md](./GOVERNANCE.md). + +### Section 4.1 Project Operations & Management + +Section Intentionally Left Blank + +### Section 4.2: Decision-making, Voting, and/or Elections + +Section Intentionally Left Blank + +### Section 4.3: Other Project Roles + +Section Intentionally Left Blank + +## Section 5: Definitions + + - *Contributors*: contribute code or other artifacts, but do not have the right to commit to the codebase. Contributors work with the project’s maintainers to have code committed to the code base. A Contributor may be promoted to a Maintainer by the Maintainers. Contributors should rarely be encumbered by the Maintainers and never by the CPC or OpenJS Foundation Board. + + - *Maintainers*: Contributors with any kind of decision-making authority in the project. + +[openjs foundation]: https://openjsf.org diff --git a/README.md b/README.md index 7df2c2c..fbd0ef4 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,7 @@ - [Docker For Development Environment](#docker-for-development-environment) - [Problems](#problems) - [macOS Troubleshooting](#macos-troubleshooting) +- [Maintainers](#maintainers) - [License](#license) - [Copyright notice](#copyright-notice) @@ -511,9 +512,9 @@ The contents of a `.nvmrc` file **must** be the `` (as described by `nv ### Deeper Shell Integration -You can use [`avn`](https://github.com/wbyoung/avn) to deeply integrate into your shell and automatically invoke `nvm` when changing directories. `avn` is **not** supported by the `nvm` development team. Please [report issues to the `avn` team](https://github.com/wbyoung/avn/issues/new). +You can use [`avn`](https://github.com/wbyoung/avn) to deeply integrate into your shell and automatically invoke `nvm` when changing directories. `avn` is **not** supported by the `nvm` maintainers. Please [report issues to the `avn` team](https://github.com/wbyoung/avn/issues/new). -If you prefer a lighter-weight solution, the recipes below have been contributed by `nvm` users. They are **not** supported by the `nvm` development team. We are, however, accepting pull requests for more examples. +If you prefer a lighter-weight solution, the recipes below have been contributed by `nvm` users. They are **not** supported by the `nvm` maintainers. We are, however, accepting pull requests for more examples. #### bash @@ -924,12 +925,16 @@ $ nvm use v14.15.4 Now using node v14.15.4 (npm v6.14.10) ``` +## Maintainers + +Currently, the sole maintainer is [@ljharb](https://github.com/ljharb) - more maintainers are quite welcome, and we hope to add folks to the team over time. [Governance](./GOVERNANCE.md) will be re-evaluated as the project evolves. + ## License See [LICENSE.md](./LICENSE.md). ## Copyright notice -Copyright [OpenJS Foundation](https://openjsf.org) and [project name] contributors. All rights reserved. The [OpenJS Foundation](https://openjsf.org) has registered trademarks and uses trademarks. For a list of trademarks of the [OpenJS Foundation](https://openjsf.org), please see our [Trademark Policy](https://trademark-policy.openjsf.org/) and [Trademark List](https://trademark-list.openjsf.org/). Node.js is a trademark of Joyent, Inc. and is used with its permission. Trademarks and logos not indicated on the [list of OpenJS Foundation trademarks](https://trademark-list.openjsf.org) are trademarks™ or registered® trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them. +Copyright [OpenJS Foundation](https://openjsf.org) and `nvm` contributors. All rights reserved. The [OpenJS Foundation](https://openjsf.org) has registered trademarks and uses trademarks. For a list of trademarks of the [OpenJS Foundation](https://openjsf.org), please see our [Trademark Policy](https://trademark-policy.openjsf.org/) and [Trademark List](https://trademark-list.openjsf.org/). Node.js is a trademark of Joyent, Inc. and is used with its permission. Trademarks and logos not indicated on the [list of OpenJS Foundation trademarks](https://trademark-list.openjsf.org) are trademarks™ or registered® trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them. [The OpenJS Foundation](https://openjsf.org/) | [Terms of Use](https://terms-of-use.openjsf.org/) | [Privacy Policy](https://privacy-policy.openjsf.org/) | [OpenJS Foundation Bylaws](https://bylaws.openjsf.org/) | [Trademark Policy](https://trademark-policy.openjsf.org/) | [Trademark List](https://trademark-list.openjsf.org/) | [Cookie Policy](https://www.linuxfoundation.org/cookies/) From 7ba49f8f714ad4f913d0aa6f0c6986c63ef29d41 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 27 Jul 2021 22:23:56 -0700 Subject: [PATCH 1378/1426] [actions] use `node/install` instead of `node/run` --- .github/workflows/latest-npm.yml | 4 ++-- .github/workflows/lint.yml | 18 +++++++++--------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/latest-npm.yml b/.github/workflows/latest-npm.yml index 54b260a..db461b7 100644 --- a/.github/workflows/latest-npm.yml +++ b/.github/workflows/latest-npm.yml @@ -34,13 +34,13 @@ jobs: steps: - uses: actions/checkout@v2 - - uses: ljharb/actions/node/run@main + - uses: ljharb/actions/node/install@main name: 'nvm install-latest-npm' with: node-version: ${{ matrix.node-version }} skip-ls-check: true skip-install: true - shell-command: 'npm --version' + - run: npm --version node: name: 'nvm install-latest-npm' diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 67d32ee..83872ff 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -7,31 +7,31 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - uses: ljharb/actions/node/run@main - name: 'npm install && npm run eclint' + - uses: ljharb/actions/node/install@main + name: 'nvm install ${{ matrix.node-version }} && npm install' with: node-version: 'lts/*' - command: 'eclint' + - run: npm run eclint dockerfile_lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - uses: ljharb/actions/node/run@main - name: 'npm install && npm run dockerfile_lint' + - uses: ljharb/actions/node/install@main + name: 'nvm install ${{ matrix.node-version }} && npm install' with: node-version: 'lts/*' - command: 'dockerfile_lint' + - run: npm run dockerfile_lint' doctoc: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - uses: ljharb/actions/node/run@main - name: 'npm install && npm run doctoc' + - uses: ljharb/actions/node/install@main + name: 'nvm install ${{ matrix.node-version }} && npm install' with: node-version: 'lts/*' - command: "doctoc:check" + - run: npm run doctoc:check test_naming: runs-on: ubuntu-latest From 7f2ccd51d4c20cd23d7ba79e4c19f06c40b68470 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 5 Aug 2021 08:05:54 -0700 Subject: [PATCH 1379/1426] [Fix] `nvm_get_arch`: suppress error output if `/sbin` does not exist Introduced by #2469 --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 303b423..8989b7c 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1818,7 +1818,7 @@ nvm_get_arch() { esac # If running a 64bit ARM kernel but a 32bit ARM userland, change ARCH to 32bit ARM (armv7l) - L=$(ls -dl /sbin/init) # if /sbin/init is 32bit executable + L=$(ls -dl /sbin/init 2>/dev/null) # if /sbin/init is 32bit executable if [ "$(uname)" = "Linux" ] && [ "${NVM_ARCH}" = arm64 ] && [ "$(od -An -t x1 -j 4 -N 1 "${L#*-> }")" = ' 01' ]; then NVM_ARCH=armv7l HOST_ARCH=armv7l From 812d6e4ab49780d544d463aa1146d2197cd41b04 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 5 Aug 2021 08:35:22 -0700 Subject: [PATCH 1380/1426] [actions] fix typo in dockerfile_lint job --- .github/workflows/lint.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 83872ff..4285c31 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -21,7 +21,7 @@ jobs: name: 'nvm install ${{ matrix.node-version }} && npm install' with: node-version: 'lts/*' - - run: npm run dockerfile_lint' + - run: npm run dockerfile_lint doctoc: runs-on: ubuntu-latest From e98e9d9e4bc0ab78ccf86db70ef37fba5b9d6219 Mon Sep 17 00:00:00 2001 From: Thomas Geirhovd Date: Thu, 12 Aug 2021 15:51:32 +0200 Subject: [PATCH 1381/1426] [Fix] `install`: Detect correct profile based on $SHELL var --- install.sh | 8 +++++--- test/install_script/nvm_detect_profile | 19 +++++++++---------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/install.sh b/install.sh index 50fbd3a..4ca56c0 100755 --- a/install.sh +++ b/install.sh @@ -267,14 +267,16 @@ nvm_detect_profile() { local DETECTED_PROFILE DETECTED_PROFILE='' - if [ -n "${BASH_VERSION-}" ]; then + if [ "${SHELL#*bash}" != "$SHELL" ]; then if [ -f "$HOME/.bashrc" ]; then DETECTED_PROFILE="$HOME/.bashrc" elif [ -f "$HOME/.bash_profile" ]; then DETECTED_PROFILE="$HOME/.bash_profile" fi - elif [ -n "${ZSH_VERSION-}" ]; then - DETECTED_PROFILE="$HOME/.zshrc" + elif [ "${SHELL#*zsh}" != "$SHELL" ]; then + if [ -f "$HOME/.zshrc" ]; then + DETECTED_PROFILE="$HOME/.zshrc" + fi fi if [ -z "$DETECTED_PROFILE" ]; then diff --git a/test/install_script/nvm_detect_profile b/test/install_script/nvm_detect_profile index 54815ec..4cc2089 100755 --- a/test/install_script/nvm_detect_profile +++ b/test/install_script/nvm_detect_profile @@ -14,8 +14,7 @@ cleanup () { unset HOME unset NVM_ENV unset NVM_DETECT_PROFILE - unset BASH_VERSION - unset ZSH_VERSION + unset SHELL unset -f setup cleanup die rm -f ".bashrc" ".bash_profile" ".zshrc" ".profile" "test_profile" > "/dev/null" 2>&1 } @@ -35,7 +34,7 @@ if [ -n "$NVM_DETECT_PROFILE" ]; then fi # .bashrc should be detected for bash -NVM_DETECT_PROFILE="$(BASH_VERSION="1"; unset PROFILE; nvm_detect_profile)" +NVM_DETECT_PROFILE="$(SHELL="/bin/bash"; unset PROFILE; nvm_detect_profile)" if [ "$NVM_DETECT_PROFILE" != "$HOME/.bashrc" ]; then die "nvm_detect_profile didn't pick \$HOME/.bashrc for bash" fi @@ -47,7 +46,7 @@ if [ "$NVM_DETECT_PROFILE" != "test_profile" ]; then fi # .zshrc should be detected for zsh -NVM_DETECT_PROFILE="$(ZSH_VERSION="1"; unset PROFILE; unset BASH_VERSION; nvm_detect_profile)" +NVM_DETECT_PROFILE="$(SHELL="/bin/zsh"; unset PROFILE; nvm_detect_profile)" if [ "$NVM_DETECT_PROFILE" != "$HOME/.zshrc" ]; then die "nvm_detect_profile didn't pick \$HOME/.zshrc for zsh" fi @@ -64,7 +63,7 @@ fi # # $PROFILE is a valid file -NVM_DETECT_PROFILE="$(PROFILE="test_profile"; unset ZSH_VERSION; nvm_detect_profile)" +NVM_DETECT_PROFILE="$(PROFILE="test_profile"; unset SHELL; nvm_detect_profile)" if [ "$NVM_DETECT_PROFILE" != "test_profile" ]; then die "nvm_detect_profile didn't pick \$PROFILE when it was a valid file" fi @@ -83,35 +82,35 @@ fi # # It should favor .profile if file exists -NVM_DETECT_PROFILE="$(unset BASH_VERSION; unset ZSH_VERSION; nvm_detect_profile)" +NVM_DETECT_PROFILE="$(unset SHELL; nvm_detect_profile)" if [ "$NVM_DETECT_PROFILE" != "$HOME/.profile" ]; then die "nvm_detect_profile should have selected .profile" fi # Otherwise, it should favor .bashrc if file exists rm ".profile" -NVM_DETECT_PROFILE="$(unset BASH_VERSION; unset ZSH_VERSION; nvm_detect_profile)" +NVM_DETECT_PROFILE="$(unset SHELL; nvm_detect_profile)" if [ "$NVM_DETECT_PROFILE" != "$HOME/.bashrc" ]; then die "nvm_detect_profile should have selected .bashrc" fi # Otherwise, it should favor .bash_profile if file exists rm ".bashrc" -NVM_DETECT_PROFILE="$(unset BASH_VERSION; unset ZSH_VERSION; nvm_detect_profile)" +NVM_DETECT_PROFILE="$(unset SHELL; nvm_detect_profile)" if [ "$NVM_DETECT_PROFILE" != "$HOME/.bash_profile" ]; then die "nvm_detect_profile should have selected .bash_profile" fi # Otherwise, it should favor .zshrc if file exists rm ".bash_profile" -NVM_DETECT_PROFILE="$(unset BASH_VERSION; unset ZSH_VERSION; nvm_detect_profile)" +NVM_DETECT_PROFILE="$(unset SHELL; nvm_detect_profile)" if [ "$NVM_DETECT_PROFILE" != "$HOME/.zshrc" ]; then die "nvm_detect_profile should have selected .zshrc" fi # It should be empty if none is found rm ".zshrc" -NVM_DETECT_PROFILE="$(unset BASH_VERSION; unset ZSH_VERSION; nvm_detect_profile)" +NVM_DETECT_PROFILE="$(unset SHELL; nvm_detect_profile)" if [ ! -z "$NVM_DETECT_PROFILE" ]; then die "nvm_detect_profile should have returned an empty value" fi From e0df5e92e3099cedd61d394ca51c2c5e215abe7f Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 24 Aug 2021 09:34:01 -0700 Subject: [PATCH 1382/1426] [Robustness] avoid IFS shenanigans: quote arg count/return codes --- nvm.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/nvm.sh b/nvm.sh index 8989b7c..6985db0 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2640,7 +2640,7 @@ nvm_cache_dir() { } nvm() { - if [ $# -lt 1 ]; then + if [ "$#" -lt 1 ]; then nvm --help return fi @@ -2652,12 +2652,12 @@ nvm() { set +e local EXIT_CODE IFS="${DEFAULT_IFS}" nvm "$@" - EXIT_CODE=$? + EXIT_CODE="$?" set -e - return $EXIT_CODE + return "$EXIT_CODE" elif [ "${IFS}" != "${DEFAULT_IFS}" ]; then IFS="${DEFAULT_IFS}" nvm "$@" - return $? + return "$?" fi local i @@ -4227,7 +4227,7 @@ nvm_auto() { nvm_process_parameters() { local NVM_AUTO_MODE NVM_AUTO_MODE='use' - while [ $# -ne 0 ]; do + while [ "$#" -ne 0 ]; do case "$1" in --install) NVM_AUTO_MODE='install' ;; --no-use) NVM_AUTO_MODE='none' ;; From 62d45af17ed80d98931fbbb65f50ac4c376892db Mon Sep 17 00:00:00 2001 From: IYaksha Date: Mon, 30 Aug 2021 19:20:03 +0530 Subject: [PATCH 1383/1426] [readme] fix typo regarding docker image base in Dockerfile --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fbd0ef4..a1b8449 100644 --- a/README.md +++ b/README.md @@ -788,7 +788,7 @@ export NVM_DIR="$HOME/.nvm" ## Docker For Development Environment -To make the development and testing work easier, we have a Dockerfile for development usage, which is based on Ubuntu 14.04 base image, prepared with essential and useful tools for `nvm` development, to build the docker image of the environment, run the docker command at the root of `nvm` repository: +To make the development and testing work easier, we have a Dockerfile for development usage, which is based on Ubuntu 16.04 base image, prepared with essential and useful tools for `nvm` development, to build the docker image of the environment, run the docker command at the root of `nvm` repository: ```sh $ docker build -t nvm-dev . From 678a8279789ccb0a51958790bc52d53950a20dd7 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Wed, 25 Aug 2021 15:42:17 +0800 Subject: [PATCH 1384/1426] [Dockerfile] Update dated base image from Ubuntu 16.04 to 18.04 --- Dockerfile | 3 +-- README.md | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 0d71868..bc16629 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,7 +6,7 @@ # Please note that it'll use about 1.2 GB disk space and about 15 minutes to # build this image, it depends on your hardware. -FROM ubuntu:16.04 +FROM ubuntu:18.04 LABEL maintainer="Peter Dave Hello " LABEL name="nvm-dev-env" LABEL version="latest" @@ -54,7 +54,6 @@ RUN apt update && \ curl \ git \ jq \ - realpath \ zsh \ ksh \ gcc-4.8 \ diff --git a/README.md b/README.md index a1b8449..9c37cd6 100644 --- a/README.md +++ b/README.md @@ -788,7 +788,7 @@ export NVM_DIR="$HOME/.nvm" ## Docker For Development Environment -To make the development and testing work easier, we have a Dockerfile for development usage, which is based on Ubuntu 16.04 base image, prepared with essential and useful tools for `nvm` development, to build the docker image of the environment, run the docker command at the root of `nvm` repository: +To make the development and testing work easier, we have a Dockerfile for development usage, which is based on Ubuntu 18.04 base image, prepared with essential and useful tools for `nvm` development, to build the docker image of the environment, run the docker command at the root of `nvm` repository: ```sh $ docker build -t nvm-dev . From fd78c0101ee9199ec424a5902094b3b4dde86896 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 31 Aug 2021 15:28:41 -0700 Subject: [PATCH 1385/1426] [Tests] disable `fail-fast` --- .github/workflows/latest-npm.yml | 1 + .github/workflows/shellcheck.yml | 1 + .github/workflows/windows-npm.yml | 2 ++ 3 files changed, 4 insertions(+) diff --git a/.github/workflows/latest-npm.yml b/.github/workflows/latest-npm.yml index db461b7..c064f21 100644 --- a/.github/workflows/latest-npm.yml +++ b/.github/workflows/latest-npm.yml @@ -8,6 +8,7 @@ jobs: runs-on: ubuntu-latest strategy: + fail-fast: false matrix: node-version: - "11" diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml index a193faa..728b230 100644 --- a/.github/workflows/shellcheck.yml +++ b/.github/workflows/shellcheck.yml @@ -6,6 +6,7 @@ jobs: shellcheck_matrix: runs-on: ubuntu-latest strategy: + fail-fast: false matrix: shell: - bash diff --git a/.github/workflows/windows-npm.yml b/.github/workflows/windows-npm.yml index 810536e..8751e5b 100755 --- a/.github/workflows/windows-npm.yml +++ b/.github/workflows/windows-npm.yml @@ -23,6 +23,7 @@ jobs: name: 'MSYS nvm install' runs-on: windows-latest strategy: + fail-fast: false matrix: npm-node-version: - '--lts' @@ -84,6 +85,7 @@ jobs: env: WSLENV: NVM_INSTALL_GITHUB_REPO:NVM_INSTALL_VERSION:/p strategy: + fail-fast: false matrix: wsl-distrib: - Debian From 5b77f7d0233b5be54484943c8976ad403308e4a6 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 1 Sep 2021 10:06:32 -0700 Subject: [PATCH 1386/1426] [Fix] `nvm ls`/`nvm alias`/`nvm_list_aliases`: zsh: when no LTS aliases, no error Fixes #2575. --- nvm.sh | 1 + .../nvm_list_aliases calls nvm_get_colors | 7 ++----- ..._aliases works with no LTS aliases present | 21 +++++++++++++++++++ 3 files changed, 24 insertions(+), 5 deletions(-) create mode 100755 test/fast/Aliases/nvm_list_aliases works with no LTS aliases present diff --git a/nvm.sh b/nvm.sh index 6985db0..15d1ba8 100644 --- a/nvm.sh +++ b/nvm.sh @@ -957,6 +957,7 @@ nvm_list_aliases() { NVM_ALIAS_DIR="$(nvm_alias_path)" command mkdir -p "${NVM_ALIAS_DIR}/lts" + nvm_is_zsh && unsetopt local_options nomatch ( local ALIAS_PATH for ALIAS_PATH in "${NVM_ALIAS_DIR}/${ALIAS}"*; do diff --git a/test/fast/Aliases/nvm_list_aliases calls nvm_get_colors b/test/fast/Aliases/nvm_list_aliases calls nvm_get_colors index d037cac..21e5127 100755 --- a/test/fast/Aliases/nvm_list_aliases calls nvm_get_colors +++ b/test/fast/Aliases/nvm_list_aliases calls nvm_get_colors @@ -2,10 +2,7 @@ \. ../../../nvm.sh -die () { - echo "nvm_list_aliases did not call nvm_get_colors. Expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" - exit 1 -} +die () { echo "$@" ; exit 1; } set -e @@ -22,4 +19,4 @@ OUTPUT=$(command printf %b $(nvm_list_aliases test-stable-1) | awk '{ print subs EXPECTED_OUTPUT=$(command printf %b "\033[0;95mtest-stable-1" | awk '{ print substr($0, 1, 19); }') echo "\033[0m" -[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "nvm_list_aliases did not call nvm_get_colors. Expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" diff --git a/test/fast/Aliases/nvm_list_aliases works with no LTS aliases present b/test/fast/Aliases/nvm_list_aliases works with no LTS aliases present new file mode 100755 index 0000000..337d1d1 --- /dev/null +++ b/test/fast/Aliases/nvm_list_aliases works with no LTS aliases present @@ -0,0 +1,21 @@ +#!/bin/sh + +\. ../../../nvm.sh + +die () { + mv "$(nvm_alias_path)/_lts.bak" "$(nvm_alias_path)/lts" + echo "$@" + exit 1 +} + +set -e + +nvm_alias_path() { + nvm_echo "../../../alias" +} + +mv "$(nvm_alias_path)/lts" "$(nvm_alias_path)/_lts.bak" + +STDERR_OUTPUT="$(nvm_list_aliases 2>&1 >/dev/null)" + +[ -z "${STDERR_OUTPUT}" ] || die "expected no stderr output, got >${STDERR_OUTPUT}<" From c169d622ffefb86cd573c9d98d40cdc3b63a2bd0 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 4 Sep 2021 08:57:36 -0700 Subject: [PATCH 1387/1426] [Tests] update mocks --- .../mocks/nodejs.org-dist-index.tab | 32 ++++ .../nodejs.org-download-nightly-index.tab | 171 ++++++++++++++++++ .../Unit tests/mocks/nvm ls-remote lts.txt | 22 ++- .../Unit tests/mocks/nvm ls-remote node.txt | 38 +++- test/fast/Unit tests/mocks/nvm ls-remote.txt | 38 +++- .../Unit tests/mocks/nvm_ls_remote LTS.txt | 22 ++- .../mocks/nvm_ls_remote nightly.txt | 3 +- .../mocks/nvm_ls_remote stable nightly.txt | 2 +- .../Unit tests/mocks/nvm_ls_remote stable.txt | 2 +- test/fast/Unit tests/mocks/nvm_ls_remote.txt | 38 +++- .../mocks/nvm_make_alias LTS alias calls.txt | 6 +- ...t_implicit_alias remote stable nightly.txt | 2 +- ...nvm_print_implicit_alias remote stable.txt | 2 +- 13 files changed, 355 insertions(+), 23 deletions(-) diff --git a/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab b/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab index d2edcaf..9ad9279 100644 --- a/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab +++ b/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab @@ -1,4 +1,20 @@ version date files npm v8 uv zlib openssl modules lts security +v16.8.0 2021-08-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.21.0 9.2.230.21 1.42.0 1.2.11 1.1.1k+quic 93 - - +v16.7.0 2021-08-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.20.3 9.2.230.21 1.42.0 1.2.11 1.1.1k+quic 93 - - +v16.6.2 2021-08-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.20.3 9.2.230.21 1.41.0 1.2.11 1.1.1k+quic 93 - true +v16.6.1 2021-08-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.20.3 9.2.230.21 1.41.0 1.2.11 1.1.1k+quic 93 - - +v16.6.0 2021-07-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.19.1 9.2.230.21 1.41.0 1.2.11 1.1.1k+quic 93 - true +v16.5.0 2021-07-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.19.1 9.1.269.38 1.41.0 1.2.11 1.1.1k+quic 93 - - +v16.4.2 2021-07-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.18.1 9.1.269.36 1.41.0 1.2.11 1.1.1k+quic 93 - - +v16.4.1 2021-07-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.18.1 9.1.269.36 1.41.0 1.2.11 1.1.1k+quic 93 - true +v16.4.0 2021-06-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.18.1 9.1.269.36 1.41.0 1.2.11 1.1.1k+quic 93 - - +v16.3.0 2021-06-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.15.1 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v16.2.0 2021-05-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.13.0 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v16.1.0 2021-05-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.11.2 9.0.257.24 1.41.0 1.2.11 1.1.1k+quic 93 - - +v16.0.0 2021-04-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.10.0 9.0.257.17 1.41.0 1.2.11 1.1.1k+quic 93 - - +v15.14.0 2021-04-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.7.6 8.6.395.17 1.41.0 1.2.11 1.1.1k+quic 88 - - +v15.13.0 2021-03-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.7.6 8.6.395.17 1.41.0 1.2.11 1.1.1j+quic 88 - - +v15.12.0 2021-03-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.6.3 8.6.395.17 1.41.0 1.2.11 1.1.1j+quic 88 - - v15.11.0 2021-03-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.6.0 8.6.395.17 1.41.0 1.2.11 1.1.1j 88 - - v15.10.0 2021-02-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.3 8.6.395.17 1.41.0 1.2.11 1.1.1j 88 - true v15.9.0 2021-02-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.5.3 8.6.395.17 1.41.0 1.2.11 1.1.1i 88 - - @@ -14,6 +30,14 @@ v15.2.0 2020-11-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linu v15.1.0 2020-11-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.8 8.6.395.17 1.40.0 1.2.11 1.1.1g 88 - - v15.0.1 2020-10-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.3 8.6.395.17 1.40.0 1.2.11 1.1.1g 88 - - v15.0.0 2020-10-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.0.2 8.6.395.16 1.40.0 1.2.11 1.1.1g 88 - - +v14.17.6 2021-08-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.15 8.4.371.23 1.41.0 1.2.11 1.1.1l 83 Fermium true +v14.17.5 2021-08-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.14 8.4.371.23 1.41.0 1.2.11 1.1.1k 83 Fermium true +v14.17.4 2021-07-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.14 8.4.371.23 1.41.0 1.2.11 1.1.1k 83 Fermium true +v14.17.3 2021-07-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.13 8.4.371.23 1.41.0 1.2.11 1.1.1k 83 Fermium true +v14.17.2 2021-07-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.13 8.4.371.23 1.41.0 1.2.11 1.1.1k 83 Fermium true +v14.17.1 2021-06-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.13 8.4.371.23 1.41.0 1.2.11 1.1.1k 83 Fermium - +v14.17.0 2021-05-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.13 8.4.371.23 1.41.0 1.2.11 1.1.1k 83 Fermium - +v14.16.1 2021-04-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.12 8.4.371.19 1.40.0 1.2.11 1.1.1k 83 Fermium true v14.16.0 2021-02-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.11 8.4.371.19 1.40.0 1.2.11 1.1.1j 83 Fermium true v14.15.5 2021-02-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.11 8.4.371.19 1.40.0 1.2.11 1.1.1i 83 Fermium - v14.15.4 2021-01-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.10 8.4.371.19 1.40.0 1.2.11 1.1.1i 83 Fermium true @@ -55,6 +79,13 @@ v13.2.0 2019-11-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linu v13.1.0 2019-11-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.1 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - v13.0.1 2019-10-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - v13.0.0 2019-10-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.32.0 1.2.11 1.1.1d 79 - - +v12.22.6 2021-08-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.15 7.8.279.23 1.40.0 1.2.11 1.1.1l 72 Erbium true +v12.22.5 2021-08-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.14 7.8.279.23 1.40.0 1.2.11 1.1.1k 72 Erbium true +v12.22.4 2021-07-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.14 7.8.279.23 1.40.0 1.2.11 1.1.1k 72 Erbium true +v12.22.3 2021-07-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.13 7.8.279.23 1.40.0 1.2.11 1.1.1k 72 Erbium - +v12.22.2 2021-07-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.13 7.8.279.23 1.40.0 1.2.11 1.1.1k 72 Erbium true +v12.22.1 2021-04-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.12 7.8.279.23 1.40.0 1.2.11 1.1.1k 72 Erbium true +v12.22.0 2021-03-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.11 7.8.279.23 1.40.0 1.2.11 1.1.1j 72 Erbium - v12.21.0 2021-02-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.11 7.8.279.23 1.40.0 1.2.11 1.1.1j 72 Erbium true v12.20.2 2021-02-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.11 7.8.279.23 1.40.0 1.2.11 1.1.1i 72 Erbium - v12.20.1 2021-01-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.10 7.8.279.23 1.40.0 1.2.11 1.1.1i 72 Erbium - @@ -110,6 +141,7 @@ v11.3.0 2018-11-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux v11.2.0 2018-11-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.23.2 1.2.11 1.1.0i 67 - - v11.1.0 2018-10-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.32 1.23.2 1.2.11 1.1.0i 67 - - v11.0.0 2018-10-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.28 1.23.2 1.2.11 1.1.0i 67 - - +v10.24.1 2021-04-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.12 6.8.275.32 1.34.2 1.2.11 1.1.1k 64 Dubnium true v10.24.0 2021-02-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.11 6.8.275.32 1.34.2 1.2.11 1.1.1j 64 Dubnium true v10.23.3 2021-02-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.11 6.8.275.32 1.34.2 1.2.11 1.1.1i 64 Dubnium - v10.23.2 2021-01-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.14.10 6.8.275.32 1.34.2 1.2.11 1.1.1i 64 Dubnium - diff --git a/test/fast/Unit tests/mocks/nodejs.org-download-nightly-index.tab b/test/fast/Unit tests/mocks/nodejs.org-download-nightly-index.tab index dd1f3d8..62831c2 100644 --- a/test/fast/Unit tests/mocks/nodejs.org-download-nightly-index.tab +++ b/test/fast/Unit tests/mocks/nodejs.org-download-nightly-index.tab @@ -1,4 +1,175 @@ version date files npm v8 uv zlib openssl modules lts security +v17.0.0-nightly20210904f26c2ce0a1 2021-09-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.21.1 9.3.345.16 1.42.0 1.2.11 1.1.1l+quic 96 - true +v17.0.0-nightly202109030c35fe02d3 2021-09-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.21.1 9.3.345.16 1.42.0 1.2.11 1.1.1l+quic 96 - true +v17.0.0-nightly2021090213b569c679 2021-09-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.21.1 9.3.345.16 1.42.0 1.2.11 1.1.1l+quic 96 - true +v17.0.0-nightly20210901926152a38c 2021-09-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.21.1 9.3.345.16 1.42.0 1.2.11 1.1.1l+quic 96 - true +v17.0.0-nightly202108319eff8191f2 2021-08-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.21.1 9.3.345.16 1.42.0 1.2.11 1.1.1l+quic 96 - - +v17.0.0-nightly2021083052abf271c5 2021-08-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.21.1 9.2.230.21 1.42.0 1.2.11 1.1.1l+quic 95 - - +v17.0.0-nightly20210829449147ebab 2021-08-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.21.1 9.2.230.21 1.42.0 1.2.11 1.1.1l+quic 95 - - +v17.0.0-nightly20210828e5670f4968 2021-08-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.21.0 9.2.230.21 1.42.0 1.2.11 1.1.1l+quic 95 - - +v17.0.0-nightly2021082752ebe0f83a 2021-08-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.21.0 9.2.230.21 1.42.0 1.2.11 1.1.1l+quic 95 - - +v17.0.0-nightly2021082631772a4e85 2021-08-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.21.0 9.2.230.21 1.42.0 1.2.11 1.1.1k+quic 95 - - +v17.0.0-nightly20210825cee024a87e 2021-08-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.21.0 9.2.230.21 1.42.0 1.2.11 1.1.1k+quic 95 - - +v17.0.0-nightly20210824a2115450eb 2021-08-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.21.0 9.2.230.21 1.42.0 1.2.11 1.1.1k+quic 95 - - +v17.0.0-nightly202108230073831482 2021-08-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.21.0 9.2.230.21 1.42.0 1.2.11 1.1.1k+quic 95 - - +v17.0.0-nightly2021082282ae00cae4 2021-08-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.21.0 9.2.230.21 1.42.0 1.2.11 1.1.1k+quic 95 - - +v17.0.0-nightly20210821248f4c3764 2021-08-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.21.0 9.2.230.21 1.42.0 1.2.11 1.1.1k+quic 95 - - +v17.0.0-nightly20210820f6ee27fe67 2021-08-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.20.3 9.2.230.21 1.42.0 1.2.11 1.1.1k+quic 95 - - +v17.0.0-nightly202108187ca38f05a0 2021-08-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.20.3 9.2.230.21 1.42.0 1.2.11 1.1.1k+quic 95 - - +v17.0.0-nightly202108170e55a75ccd 2021-08-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.20.3 9.2.230.21 1.42.0 1.2.11 1.1.1k+quic 95 - - +v17.0.0-nightly20210816fdce138e1d 2021-08-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.20.3 9.2.230.21 1.42.0 1.2.11 1.1.1k+quic 95 - - +v17.0.0-nightly20210815fcf8ba4269 2021-08-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.20.3 9.2.230.21 1.42.0 1.2.11 1.1.1k+quic 95 - - +v17.0.0-nightly20210814ca19775d0e 2021-08-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.20.3 9.2.230.21 1.42.0 1.2.11 1.1.1k+quic 95 - - +v17.0.0-nightly202108131150cfe6eb 2021-08-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.20.3 9.2.230.21 1.42.0 1.2.11 1.1.1k+quic 95 - - +v17.0.0-nightly2021081287d6fd7e69 2021-08-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.20.3 9.2.230.21 1.42.0 1.2.11 1.1.1k+quic 95 - true +v17.0.0-nightly202108113914354cd7 2021-08-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.20.3 9.2.230.21 1.42.0 1.2.11 1.1.1k+quic 95 - - +v17.0.0-nightly20210810a1fac5b9a5 2021-08-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.20.3 9.2.230.21 1.42.0 1.2.11 1.1.1k+quic 95 - - +v17.0.0-nightly202108096145113fe5 2021-08-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.20.3 9.2.230.21 1.42.0 1.2.11 1.1.1k+quic 95 - - +v17.0.0-nightly20210808df25424b91 2021-08-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.20.3 9.2.230.21 1.42.0 1.2.11 1.1.1k+quic 95 - - +v17.0.0-nightly20210807822f9ff4e6 2021-08-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.20.3 9.2.230.21 1.42.0 1.2.11 1.1.1k+quic 95 - - +v17.0.0-nightly202108064832d1c02c 2021-08-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.20.3 9.2.230.21 1.42.0 1.2.11 1.1.1k+quic 95 - - +v17.0.0-nightly20210805c61870c376 2021-08-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.20.3 9.2.230.21 1.42.0 1.2.11 1.1.1k+quic 95 - - +v17.0.0-nightly20210804fe3c5a769d 2021-08-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.20.3 9.2.230.21 1.41.0 1.2.11 1.1.1k+quic 95 - - +v17.0.0-nightly202108039e904470f4 2021-08-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.20.3 9.2.230.21 1.41.0 1.2.11 1.1.1k+quic 95 - - +v17.0.0-nightly20210802afabd145d1 2021-08-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.20.3 9.2.230.21 1.41.0 1.2.11 1.1.1k+quic 95 - - +v17.0.0-nightly202108014f9fd8d244 2021-08-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.20.3 9.2.230.21 1.41.0 1.2.11 1.1.1k+quic 95 - true +v17.0.0-nightly202107318be3b91b00 2021-07-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.20.3 9.2.230.21 1.41.0 1.2.11 1.1.1k+quic 95 - true +v17.0.0-nightly202107300e22fa0f3d 2021-07-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.20.2 9.2.230.21 1.41.0 1.2.11 1.1.1k+quic 95 - true +v17.0.0-nightly20210729d6bb7ed6c8 2021-07-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 7.20.2 9.2.230.21 1.41.0 1.2.11 1.1.1k+quic 95 - - +v17.0.0-nightly20210728b14fb01324 2021-07-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.20.0 9.2.230.21 1.41.0 1.2.11 1.1.1k+quic 95 - - +v17.0.0-nightly202107275ad6a99ed9 2021-07-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.20.0 9.2.230.21 1.41.0 1.2.11 1.1.1k+quic 95 - - +v17.0.0-nightly2021072605f21be800 2021-07-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.20.0 9.2.230.21 1.41.0 1.2.11 1.1.1k+quic 95 - - +v17.0.0-nightly20210725b6316ab0ae 2021-07-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.20.0 9.2.230.21 1.41.0 1.2.11 1.1.1k+quic 95 - - +v17.0.0-nightly202107246140b3753f 2021-07-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.20.0 9.2.230.21 1.41.0 1.2.11 1.1.1k+quic 95 - - +v17.0.0-nightly20210723834ae63d61 2021-07-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.20.0 9.2.230.21 1.41.0 1.2.11 1.1.1k+quic 95 - - +v17.0.0-nightly20210722f1d353398e 2021-07-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.20.0 9.2.230.21 1.41.0 1.2.11 1.1.1k+quic 95 - - +v17.0.0-nightly202107215100c3cad9 2021-07-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.20.0 9.2.230.21 1.41.0 1.2.11 1.1.1k+quic 95 - - +v17.0.0-nightly202107203cbaabc462 2021-07-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.19.1 9.1.269.38 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly2021071936bcc2925f 2021-07-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.19.1 9.1.269.38 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly2021071800cac65af1 2021-07-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.19.1 9.1.269.38 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly2021071714b26e07bd 2021-07-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.19.1 9.1.269.38 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly202107160d42470798 2021-07-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.19.1 9.1.269.38 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly202107154b0776ab64 2021-07-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.19.1 9.1.269.38 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly20210714cfb7c4f658 2021-07-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.19.1 9.1.269.38 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly20210713223625a0b9 2021-07-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.19.1 9.1.269.38 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly20210712b60570ae59 2021-07-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.19.1 9.1.269.38 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly202107118970fa9006 2021-07-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.19.1 9.1.269.38 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly202107106463adf183 2021-07-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.19.1 9.1.269.36 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly20210709b7136827f5 2021-07-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.19.1 9.1.269.36 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly20210708b2fa795159 2021-07-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.19.1 9.1.269.36 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly202107074de6f207dc 2021-07-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.19.1 9.1.269.36 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly2021070612622c5f86 2021-07-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.19.1 9.1.269.36 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly20210705392213a387 2021-07-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.19.0 9.1.269.36 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly2021070492fde1ea70 2021-07-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.19.0 9.1.269.36 1.41.0 1.2.11 1.1.1k+quic 94 - true +v17.0.0-nightly202107038189dcc52a 2021-07-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.19.0 9.1.269.36 1.41.0 1.2.11 1.1.1k+quic 94 - true +v17.0.0-nightly20210702e5f9ef62f6 2021-07-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.19.0 9.1.269.36 1.41.0 1.2.11 1.1.1k+quic 94 - true +v17.0.0-nightly202107017ebf36ca98 2021-07-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.19.0 9.1.269.36 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly20210630f179eb01af 2021-06-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 7.19.0 9.1.269.36 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly20210629663d7e9fb2 2021-06-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.18.1 9.1.269.36 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly202106282de139b5d5 2021-06-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.18.1 9.1.269.36 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly20210627fdb097c4f4 2021-06-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.18.1 9.1.269.36 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly202106263c099874aa 2021-06-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.18.1 9.1.269.36 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly2021062544ecd41892 2021-06-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.18.1 9.1.269.36 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly2021062484d6ce9fd1 2021-06-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.18.1 9.1.269.36 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly20210623e0ebc6b30d 2021-06-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.18.1 9.1.269.36 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly20210622b82a1a1ac9 2021-06-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.18.1 9.1.269.36 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly202106214330fb757f 2021-06-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.18.1 9.1.269.36 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly2021061998139dfef1 2021-06-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.18.1 9.1.269.36 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly202106180536be2ad8 2021-06-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.17.0 9.1.269.36 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly2021061738a15d832a 2021-06-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.17.0 9.1.269.36 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly20210616767996047c 2021-06-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.17.0 9.1.269.36 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly2021061598140238ee 2021-06-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.17.0 9.1.269.36 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly2021061467d4a3f9bd 2021-06-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.16.0 9.1.269.36 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly20210613174b191f70 2021-06-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.16.0 9.1.269.36 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly20210612889ad35d3d 2021-06-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.16.0 9.1.269.36 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly2021061176ebad03bc 2021-06-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.16.0 9.1.269.36 1.41.0 1.2.11 1.1.1k+quic 94 - - +v17.0.0-nightly20210610f461158feb 2021-06-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.16.0 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly202106099d15c1468c 2021-06-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.16.0 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly20210608fa86b36124 2021-06-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.15.1 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly20210607d07c12f444 2021-06-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.15.1 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly202106061c36eefcdb 2021-06-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.15.1 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly2021060578af363aa7 2021-06-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.15.1 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly20210604e7f941c161 2021-06-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.15.1 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly2021060321f5a56914 2021-06-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.15.1 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly20210602def57580fc 2021-06-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.15.1 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly20210601910009d5c6 2021-06-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.14.0 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly2021053116ae37848d 2021-05-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.14.0 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly202105304c508f51c0 2021-05-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.14.0 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly20210529f1cbaea74b 2021-05-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.14.0 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly20210528a4ea9fc48e 2021-05-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.14.0 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly20210527b6471c9e76 2021-05-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.14.0 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly20210526ccde7fc2a6 2021-05-26 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.14.0 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly20210525ab71af3453 2021-05-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.14.0 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly20210524dc43066ee9 2021-05-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.14.0 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly20210523bf06daa656 2021-05-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.14.0 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly202105227afa7b9ab3 2021-05-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.14.0 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly2021052150f076c4f5 2021-05-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.13.0 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly202105203f025cb5d0 2021-05-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.13.0 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly20210518910efc2d9a 2021-05-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.13.0 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly2021051736bb31be5f 2021-05-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.13.0 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly202105160996eb71ed 2021-05-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.13.0 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly202105154a22850d7f 2021-05-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.13.0 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly2021051441fab0d6cb 2021-05-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.12.1 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly20210513aefc621e67 2021-05-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.12.1 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly2021051216e00a15de 2021-05-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.11.2 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly202105114ebb88fea5 2021-05-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.11.2 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly202105107c8a60851c 2021-05-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.11.2 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly2021050952e4fb5b23 2021-05-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.11.2 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly2021050829f1b609ba 2021-05-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.11.2 9.0.257.25 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly20210507f37c26b8a2 2021-05-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.11.2 9.0.257.24 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly20210506aed17e963a 2021-05-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.11.2 9.0.257.24 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly20210505efd70f4361 2021-05-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.11.2 9.0.257.24 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly2021050418e4f405b1 2021-05-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.11.2 9.0.257.24 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly2021050368e6673224 2021-05-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.11.2 9.0.257.24 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly202105029c7aa96703 2021-05-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.11.2 9.0.257.24 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly20210501c975dff3c0 2021-05-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.11.2 9.0.257.24 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly20210430746cc88b92 2021-04-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.10.0 9.0.257.24 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly20210429c791019b36 2021-04-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.10.0 9.0.257.24 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly2021042832404359b6 2021-04-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.10.0 9.0.257.21 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly202104277f56307a02 2021-04-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.10.0 9.0.257.21 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly2021042655745a1817 2021-04-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.10.0 9.0.257.19 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly20210425311989f30f 2021-04-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.10.0 9.0.257.19 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly20210424f9e07e432b 2021-04-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.10.0 9.0.257.19 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly202104238ca373f557 2021-04-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.10.0 9.0.257.19 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly202104224243ce0318 2021-04-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.10.0 9.0.257.19 1.41.0 1.2.11 1.1.1k+quic 93 - - +v17.0.0-nightly202104218780537564 2021-04-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.10.0 9.0.257.17 1.41.0 1.2.11 1.1.1k+quic 93 - - +v16.0.0-nightly20210420a0261d231c 2021-04-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.10.0 9.0.257.17 1.41.0 1.2.11 1.1.1k+quic 93 - - +v16.0.0-nightly20210417bc31dc0e0f 2021-04-17 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.10.0 9.0.257.17 1.41.0 1.2.11 1.1.1k+quic 93 - - +v16.0.0-nightly20210416d3162da8dd 2021-04-16 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.9.0 9.0.257.17 1.41.0 1.2.11 1.1.1k+quic 93 - - +v16.0.0-nightly20210415c3a5e15ebe 2021-04-15 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.9.0 9.0.257.17 1.41.0 1.2.11 1.1.1k+quic 93 - - +v16.0.0-nightly202104148d9d8236b7 2021-04-14 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.9.0 9.0.257.13 1.41.0 1.2.11 1.1.1k+quic 93 - - +v16.0.0-nightly2021041313c931a9dc 2021-04-13 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-arm64-tar,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.9.0 9.0.257.13 1.41.0 1.2.11 1.1.1k+quic 93 - - +v16.0.0-nightly202104128e76397fab 2021-04-12 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.9.0 9.0.257.13 1.41.0 1.2.11 1.1.1k+quic 93 - - +v16.0.0-nightly20210411f5eea1744d 2021-04-11 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.9.0 9.0.257.13 1.41.0 1.2.11 1.1.1k+quic 93 - - +v16.0.0-nightly2021041040ace47396 2021-04-10 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.9.0 9.0.257.13 1.41.0 1.2.11 1.1.1k+quic 93 - - +v16.0.0-nightly202104097df0fc5c5c 2021-04-09 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.8.0 9.0.257.13 1.41.0 1.2.11 1.1.1k+quic 93 - - +v16.0.0-nightly202104086cb314bbe5 2021-04-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.7.6 9.0.257.13 1.41.0 1.2.11 1.1.1k+quic 93 - - +v16.0.0-nightly202104076986fa07eb 2021-04-07 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 7.7.6 9.0.257.13 1.41.0 1.2.11 1.1.1k+quic 93 - - +v16.0.0-nightly20210406cbe3b27166 2021-04-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.7.6 9.0.257.13 1.41.0 1.2.11 1.1.1k+quic 93 - - +v16.0.0-nightly202104054f387c25cb 2021-04-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.7.6 9.0.257.13 1.41.0 1.2.11 1.1.1k+quic 93 - - +v16.0.0-nightly20210404f562ec64e8 2021-04-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.7.6 9.0.257.13 1.41.0 1.2.11 1.1.1k+quic 93 - - +v16.0.0-nightly20210403fae0320e7e 2021-04-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.7.6 9.0.257.13 1.41.0 1.2.11 1.1.1k+quic 93 - - +v16.0.0-nightly20210402f0bf373176 2021-04-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.7.6 9.0.257.13 1.41.0 1.2.11 1.1.1k+quic 93 - - +v16.0.0-nightly2021040131fe3b215f 2021-04-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.7.6 9.0.257.13 1.41.0 1.2.11 1.1.1k+quic 93 - - +v16.0.0-nightly20210331f638d8d754 2021-03-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.7.6 9.0.257.13 1.41.0 1.2.11 1.1.1k+quic 93 - - +v16.0.0-nightly2021033078237591f8 2021-03-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.7.6 9.0.257.13 1.41.0 1.2.11 1.1.1j+quic 93 - - +v16.0.0-nightly2021032945cdc134cd 2021-03-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.7.5 9.0.257.13 1.41.0 1.2.11 1.1.1j+quic 93 - - +v16.0.0-nightly20210328b560645d6b 2021-03-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.7.5 9.0.257.13 1.41.0 1.2.11 1.1.1j+quic 93 - - +v16.0.0-nightly20210327924238d7df 2021-03-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.7.5 9.0.257.13 1.41.0 1.2.11 1.1.1j+quic 93 - - +v16.0.0-nightly2021032632296fa193 2021-03-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.7.4 9.0.257.13 1.41.0 1.2.11 1.1.1j+quic 93 - - +v16.0.0-nightly20210325ce300d6f76 2021-03-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.7.4 9.0.257.13 1.41.0 1.2.11 1.1.1j+quic 93 - - +v16.0.0-nightly20210324f00c243592 2021-03-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.7.0 9.0.257.13 1.41.0 1.2.11 1.1.1j+quic 93 - - +v16.0.0-nightly202103233bee6d8aad 2021-03-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.6.3 9.0.257.13 1.41.0 1.2.11 1.1.1j+quic 93 - - +v16.0.0-nightly20210322baa9e65214 2021-03-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.6.3 9.0.257.11 1.41.0 1.2.11 1.1.1j+quic 93 - - +v16.0.0-nightly202103215318e53fd8 2021-03-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.6.3 9.0.257.11 1.41.0 1.2.11 1.1.1j+quic 93 - - +v16.0.0-nightly20210320e427c487fe 2021-03-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.6.3 9.0.257.11 1.41.0 1.2.11 1.1.1j+quic 93 - - +v16.0.0-nightly2021031952f9aafeab 2021-03-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.6.3 9.0.257.11 1.41.0 1.2.11 1.1.1j+quic 93 - - +v16.0.0-nightly2021031855f0955864 2021-03-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.6.3 9.0.257.11 1.41.0 1.2.11 1.1.1j+quic 93 - - +v16.0.0-nightly20210317da4b23354f 2021-03-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.6.3 9.0.257.11 1.41.0 1.2.11 1.1.1j+quic 93 - - +v16.0.0-nightly20210316640fe94354 2021-03-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.6.3 9.0.257.11 1.41.0 1.2.11 1.1.1j+quic 93 - - +v16.0.0-nightly2021031566f0eb7dc3 2021-03-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.6.3 8.9.255.19 1.41.0 1.2.11 1.1.1j 92 - - +v16.0.0-nightly202103147296bcb3cb 2021-03-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.6.3 8.9.255.19 1.41.0 1.2.11 1.1.1j 92 - - +v16.0.0-nightly20210312bfa6e37204 2021-03-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.6.1 8.9.255.19 1.41.0 1.2.11 1.1.1j 92 - - v16.0.0-nightly202103118a6d7a09f2 2021-03-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.6.1 8.9.255.19 1.41.0 1.2.11 1.1.1j 92 - - v16.0.0-nightly20210310853086fbaa 2021-03-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.6.1 8.9.255.19 1.41.0 1.2.11 1.1.1j 92 - - v16.0.0-nightly202103097f54dd4f07 2021-03-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 7.6.1 8.9.255.19 1.41.0 1.2.11 1.1.1j 92 - - diff --git a/test/fast/Unit tests/mocks/nvm ls-remote lts.txt b/test/fast/Unit tests/mocks/nvm ls-remote lts.txt index 08c5e9c..93f5c3a 100644 --- a/test/fast/Unit tests/mocks/nvm ls-remote lts.txt +++ b/test/fast/Unit tests/mocks/nvm ls-remote lts.txt @@ -112,7 +112,8 @@ v10.23.1  (LTS: Dubnium) v10.23.2  (LTS: Dubnium) v10.23.3  (LTS: Dubnium) - v10.24.0  (Latest LTS: Dubnium) + v10.24.0  (LTS: Dubnium) + v10.24.1  (Latest LTS: Dubnium) v12.13.0  (LTS: Erbium) v12.13.1  (LTS: Erbium) v12.14.0  (LTS: Erbium) @@ -133,11 +134,26 @@ v12.20.0  (LTS: Erbium) v12.20.1  (LTS: Erbium) v12.20.2  (LTS: Erbium) - v12.21.0  (Latest LTS: Erbium) + v12.21.0  (LTS: Erbium) + v12.22.0  (LTS: Erbium) + v12.22.1  (LTS: Erbium) + v12.22.2  (LTS: Erbium) + v12.22.3  (LTS: Erbium) + v12.22.4  (LTS: Erbium) + v12.22.5  (LTS: Erbium) + v12.22.6  (Latest LTS: Erbium) v14.15.0  (LTS: Fermium) v14.15.1  (LTS: Fermium) v14.15.2  (LTS: Fermium) v14.15.3  (LTS: Fermium) v14.15.4  (LTS: Fermium) v14.15.5  (LTS: Fermium) - v14.16.0  (Latest LTS: Fermium) + v14.16.0  (LTS: Fermium) + v14.16.1  (LTS: Fermium) + v14.17.0  (LTS: Fermium) + v14.17.1  (LTS: Fermium) + v14.17.2  (LTS: Fermium) + v14.17.3  (LTS: Fermium) + v14.17.4  (LTS: Fermium) + v14.17.5  (LTS: Fermium) + v14.17.6  (Latest LTS: Fermium) diff --git a/test/fast/Unit tests/mocks/nvm ls-remote node.txt b/test/fast/Unit tests/mocks/nvm ls-remote node.txt index 26d4a62..016fbc5 100644 --- a/test/fast/Unit tests/mocks/nvm ls-remote node.txt +++ b/test/fast/Unit tests/mocks/nvm ls-remote node.txt @@ -450,7 +450,8 @@ v10.23.1  (LTS: Dubnium) v10.23.2  (LTS: Dubnium) v10.23.3  (LTS: Dubnium) - v10.24.0  (Latest LTS: Dubnium) + v10.24.0  (LTS: Dubnium) + v10.24.1  (Latest LTS: Dubnium) v11.0.0 v11.1.0 v11.2.0 @@ -505,7 +506,14 @@ v12.20.0  (LTS: Erbium) v12.20.1  (LTS: Erbium) v12.20.2  (LTS: Erbium) - v12.21.0  (Latest LTS: Erbium) + v12.21.0  (LTS: Erbium) + v12.22.0  (LTS: Erbium) + v12.22.1  (LTS: Erbium) + v12.22.2  (LTS: Erbium) + v12.22.3  (LTS: Erbium) + v12.22.4  (LTS: Erbium) + v12.22.5  (LTS: Erbium) + v12.22.6  (Latest LTS: Erbium) v13.0.0 v13.0.1 v13.1.0 @@ -546,7 +554,15 @@ v14.15.3  (LTS: Fermium) v14.15.4  (LTS: Fermium) v14.15.5  (LTS: Fermium) - v14.16.0  (Latest LTS: Fermium) + v14.16.0  (LTS: Fermium) + v14.16.1  (LTS: Fermium) + v14.17.0  (LTS: Fermium) + v14.17.1  (LTS: Fermium) + v14.17.2  (LTS: Fermium) + v14.17.3  (LTS: Fermium) + v14.17.4  (LTS: Fermium) + v14.17.5  (LTS: Fermium) + v14.17.6  (Latest LTS: Fermium) v15.0.0 v15.0.1 v15.1.0 @@ -562,3 +578,19 @@ v15.9.0 v15.10.0 v15.11.0 + v15.12.0 + v15.13.0 + v15.14.0 + v16.0.0 + v16.1.0 + v16.2.0 + v16.3.0 + v16.4.0 + v16.4.1 + v16.4.2 + v16.5.0 + v16.6.0 + v16.6.1 + v16.6.2 + v16.7.0 + v16.8.0 diff --git a/test/fast/Unit tests/mocks/nvm ls-remote.txt b/test/fast/Unit tests/mocks/nvm ls-remote.txt index acfe35b..d9277c8 100644 --- a/test/fast/Unit tests/mocks/nvm ls-remote.txt +++ b/test/fast/Unit tests/mocks/nvm ls-remote.txt @@ -491,7 +491,8 @@ v10.23.1  (LTS: Dubnium) v10.23.2  (LTS: Dubnium) v10.23.3  (LTS: Dubnium) - v10.24.0  (Latest LTS: Dubnium) + v10.24.0  (LTS: Dubnium) + v10.24.1  (Latest LTS: Dubnium) v11.0.0 v11.1.0 v11.2.0 @@ -546,7 +547,14 @@ v12.20.0  (LTS: Erbium) v12.20.1  (LTS: Erbium) v12.20.2  (LTS: Erbium) - v12.21.0  (Latest LTS: Erbium) + v12.21.0  (LTS: Erbium) + v12.22.0  (LTS: Erbium) + v12.22.1  (LTS: Erbium) + v12.22.2  (LTS: Erbium) + v12.22.3  (LTS: Erbium) + v12.22.4  (LTS: Erbium) + v12.22.5  (LTS: Erbium) + v12.22.6  (Latest LTS: Erbium) v13.0.0 v13.0.1 v13.1.0 @@ -587,7 +595,15 @@ v14.15.3  (LTS: Fermium) v14.15.4  (LTS: Fermium) v14.15.5  (LTS: Fermium) - v14.16.0  (Latest LTS: Fermium) + v14.16.0  (LTS: Fermium) + v14.16.1  (LTS: Fermium) + v14.17.0  (LTS: Fermium) + v14.17.1  (LTS: Fermium) + v14.17.2  (LTS: Fermium) + v14.17.3  (LTS: Fermium) + v14.17.4  (LTS: Fermium) + v14.17.5  (LTS: Fermium) + v14.17.6  (Latest LTS: Fermium) v15.0.0 v15.0.1 v15.1.0 @@ -603,3 +619,19 @@ v15.9.0 v15.10.0 v15.11.0 + v15.12.0 + v15.13.0 + v15.14.0 + v16.0.0 + v16.1.0 + v16.2.0 + v16.3.0 + v16.4.0 + v16.4.1 + v16.4.2 + v16.5.0 + v16.6.0 + v16.6.1 + v16.6.2 + v16.7.0 + v16.8.0 diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt b/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt index 444467a..bfcef29 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt @@ -112,7 +112,8 @@ v10.23.0 Dubnium v10.23.1 Dubnium v10.23.2 Dubnium v10.23.3 Dubnium -v10.24.0 Dubnium * +v10.24.0 Dubnium +v10.24.1 Dubnium * v12.13.0 Erbium v12.13.1 Erbium v12.14.0 Erbium @@ -133,11 +134,26 @@ v12.19.1 Erbium v12.20.0 Erbium v12.20.1 Erbium v12.20.2 Erbium -v12.21.0 Erbium * +v12.21.0 Erbium +v12.22.0 Erbium +v12.22.1 Erbium +v12.22.2 Erbium +v12.22.3 Erbium +v12.22.4 Erbium +v12.22.5 Erbium +v12.22.6 Erbium * v14.15.0 Fermium v14.15.1 Fermium v14.15.2 Fermium v14.15.3 Fermium v14.15.4 Fermium v14.15.5 Fermium -v14.16.0 Fermium * +v14.16.0 Fermium +v14.16.1 Fermium +v14.17.0 Fermium +v14.17.1 Fermium +v14.17.2 Fermium +v14.17.3 Fermium +v14.17.4 Fermium +v14.17.5 Fermium +v14.17.6 Fermium * diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote nightly.txt b/test/fast/Unit tests/mocks/nvm_ls_remote nightly.txt index a0264ad..fd32cb7 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote nightly.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote nightly.txt @@ -141,4 +141,5 @@ v13.12.1-nightly202004140a8e07599b v13.13.1-nightly20200415947ddec091 v14.0.0-nightly20200421c3554307c6 v15.0.0-nightly2020102011f1ad939f -v16.0.0-nightly202103118a6d7a09f2 +v16.0.0-nightly20210420a0261d231c +v17.0.0-nightly20210904f26c2ce0a1 diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote stable nightly.txt b/test/fast/Unit tests/mocks/nvm_ls_remote stable nightly.txt index 901ecdd..ae8cdf0 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote stable nightly.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote stable nightly.txt @@ -1 +1 @@ -v16.0.0-nightly202103118a6d7a09f2 +v17.0.0-nightly20210904f26c2ce0a1 diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt b/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt index 9f28d5d..34326d6 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt @@ -1 +1 @@ -v15.11.0 +v16.8.0 diff --git a/test/fast/Unit tests/mocks/nvm_ls_remote.txt b/test/fast/Unit tests/mocks/nvm_ls_remote.txt index dcbfbcb..f3f66c8 100644 --- a/test/fast/Unit tests/mocks/nvm_ls_remote.txt +++ b/test/fast/Unit tests/mocks/nvm_ls_remote.txt @@ -450,7 +450,8 @@ v10.23.0 Dubnium v10.23.1 Dubnium v10.23.2 Dubnium v10.23.3 Dubnium -v10.24.0 Dubnium * +v10.24.0 Dubnium +v10.24.1 Dubnium * v11.0.0 v11.1.0 v11.2.0 @@ -505,7 +506,14 @@ v12.19.1 Erbium v12.20.0 Erbium v12.20.1 Erbium v12.20.2 Erbium -v12.21.0 Erbium * +v12.21.0 Erbium +v12.22.0 Erbium +v12.22.1 Erbium +v12.22.2 Erbium +v12.22.3 Erbium +v12.22.4 Erbium +v12.22.5 Erbium +v12.22.6 Erbium * v13.0.0 v13.0.1 v13.1.0 @@ -546,7 +554,15 @@ v14.15.2 Fermium v14.15.3 Fermium v14.15.4 Fermium v14.15.5 Fermium -v14.16.0 Fermium * +v14.16.0 Fermium +v14.16.1 Fermium +v14.17.0 Fermium +v14.17.1 Fermium +v14.17.2 Fermium +v14.17.3 Fermium +v14.17.4 Fermium +v14.17.5 Fermium +v14.17.6 Fermium * v15.0.0 v15.0.1 v15.1.0 @@ -562,3 +578,19 @@ v15.8.0 v15.9.0 v15.10.0 v15.11.0 +v15.12.0 +v15.13.0 +v15.14.0 +v16.0.0 +v16.1.0 +v16.2.0 +v16.3.0 +v16.4.0 +v16.4.1 +v16.4.2 +v16.5.0 +v16.6.0 +v16.6.1 +v16.6.2 +v16.7.0 +v16.8.0 diff --git a/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt b/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt index c72adac..f5cb8c1 100644 --- a/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt +++ b/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt @@ -1,7 +1,7 @@ lts/*|lts/fermium -lts/fermium|v14.16.0 -lts/erbium|v12.21.0 -lts/dubnium|v10.24.0 +lts/fermium|v14.17.6 +lts/erbium|v12.22.6 +lts/dubnium|v10.24.1 lts/carbon|v8.17.0 lts/boron|v6.17.1 lts/argon|v4.9.1 diff --git a/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable nightly.txt b/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable nightly.txt index 0d68f8a..03b6389 100644 --- a/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable nightly.txt +++ b/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable nightly.txt @@ -1 +1 @@ -16.0 +17.0 diff --git a/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt b/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt index f7b6d64..bda3c37 100644 --- a/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt +++ b/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt @@ -1 +1 @@ -15.11 +16.8 From 291c7c4c47772f3a8f531de4b83049fcc5bb91f3 Mon Sep 17 00:00:00 2001 From: Kevin Stolp Date: Fri, 3 Sep 2021 23:40:13 -0700 Subject: [PATCH 1388/1426] [Fix] `nvm_ls_remote_index_tab`: handle long version lists --- nvm.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/nvm.sh b/nvm.sh index 15d1ba8..1ba89c6 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1396,8 +1396,7 @@ nvm_ls_remote_index_tab() { local LTS_ALIAS local LTS_VERSION command mkdir -p "$(nvm_alias_path)/lts" - nvm_echo "${VERSION_LIST}" \ - | command awk '{ + { command awk '{ if ($10 ~ /^\-?$/) { next } if ($10 && !a[tolower($10)]++) { if (alias) { print alias, version } @@ -1416,7 +1415,9 @@ nvm_ls_remote_index_tab() { LTS_ALIAS="${LTS_ALIAS_LINE%% *}" LTS_VERSION="${LTS_ALIAS_LINE#* }" nvm_make_alias "${LTS_ALIAS}" "${LTS_VERSION}" >/dev/null 2>&1 - done + done; } << EOF +$VERSION_LIST +EOF VERSIONS="$({ command awk -v lts="${LTS-}" '{ if (!$1) { next } From fa63399991dfb8fbabad7bc80ab844488f053a68 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 9 Sep 2021 00:05:09 -0700 Subject: [PATCH 1389/1426] [Tests] `postcss` v7.0.36 stopped working on node 0.10; downgrade to v4 --- test/slow/nvm reinstall-packages/should work as expected | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/slow/nvm reinstall-packages/should work as expected b/test/slow/nvm reinstall-packages/should work as expected index de6962f..755c6f6 100755 --- a/test/slow/nvm reinstall-packages/should work as expected +++ b/test/slow/nvm reinstall-packages/should work as expected @@ -11,7 +11,7 @@ nvm use 0.10.28 (cd test-npmlink && npm link) EXPECTED_PACKAGES="autoprefixer bower david grunt-cli grunth-cli http-server jshint marked node-gyp npmlist postcss recursive-blame spawn-sync test-npmlink uglify-js yo" -EXPECTED_PACKAGES_INSTALL="autoprefixer bower david@11 grunt-cli grunth-cli http-server jshint marked node-gyp@7 npmlist postcss@7 recursive-blame spawn-sync test-npmlink uglify-js yo@1" +EXPECTED_PACKAGES_INSTALL="autoprefixer bower david@11 grunt-cli grunth-cli http-server jshint marked node-gyp@7 npmlist postcss@4 recursive-blame spawn-sync test-npmlink uglify-js yo@1" echo "$EXPECTED_PACKAGES_INSTALL" | sed -e 's/test-npmlink //' | xargs npm install -g --quiet From f03f69508e0981872adaf7b2a00faed602ee4bd4 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 7 Sep 2021 10:14:18 -0700 Subject: [PATCH 1390/1426] [Fix] `reinstall-packages`: handle global symlink locations properly This is a regression caused by npm ls -g in npm 7 no longer returning absolute paths. --- nvm.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 1ba89c6..e737a20 100644 --- a/nvm.sh +++ b/nvm.sh @@ -3978,7 +3978,10 @@ nvm() { for LINK in ${LINKS}; do set +f; unset IFS # restore variable expansion if [ -n "${LINK}" ]; then - (nvm_cd "${LINK}" && npm link) + case "${LINK}" in + '/'*) (nvm_cd "${LINK}" && npm link) ;; + *) (nvm_cd "$(npm root -g)/../${LINK}" && npm link) + esac fi done ) From 2dad0455ec61e2842f8d0820bae40114a343ae3b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 8 Sep 2021 23:49:16 -0700 Subject: [PATCH 1391/1426] [Fix] `nvm_die_on_prefix`: avoid grepping env functions in bash ironically, nvm itself has functions that matched this grep. --- nvm.sh | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/nvm.sh b/nvm.sh index e737a20..1c95f0b 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2456,18 +2456,22 @@ nvm_die_on_prefix() { # # here, we avoid trying to replicate "which one wins" or testing the value; if any are defined, it errors # until none are left. - local NVM_NPM_CONFIG_PREFIX_ENV - NVM_NPM_CONFIG_PREFIX_ENV="$(command env | nvm_grep -i NPM_CONFIG_PREFIX | command tail -1 | command awk -F '=' '{print $1}')" - if [ -n "${NVM_NPM_CONFIG_PREFIX_ENV-}" ]; then + local NVM_NPM_CONFIG_x_PREFIX_ENV + if [ -n "${BASH_SOURCE-}" ]; then + NVM_NPM_CONFIG_x_PREFIX_ENV="$(command set | command awk -F '=' '! /^[0-9A-Z_a-z]+=/ {exit} {print $1}' | nvm_grep -i NPM_CONFIG_PREFIX | command tail -1)" + else + NVM_NPM_CONFIG_x_PREFIX_ENV="$(command env | nvm_grep -i NPM_CONFIG_PREFIX | command tail -1 | command awk -F '=' '{print $1}')" + fi + if [ -n "${NVM_NPM_CONFIG_x_PREFIX_ENV-}" ]; then local NVM_CONFIG_VALUE - eval "NVM_CONFIG_VALUE=\"\$${NVM_NPM_CONFIG_PREFIX_ENV}\"" + eval "NVM_CONFIG_VALUE=\"\$${NVM_NPM_CONFIG_x_PREFIX_ENV}\"" if [ -n "${NVM_CONFIG_VALUE-}" ] && [ "_${NVM_OS}" = "_win" ]; then NVM_CONFIG_VALUE="$(cd "$NVM_CONFIG_VALUE" 2>/dev/null && pwd)" fi if [ -n "${NVM_CONFIG_VALUE-}" ] && ! nvm_tree_contains_path "${NVM_DIR}" "${NVM_CONFIG_VALUE}"; then nvm deactivate >/dev/null 2>&1 - nvm_err "nvm is not compatible with the \"${NVM_NPM_CONFIG_PREFIX_ENV}\" environment variable: currently set to \"${NVM_CONFIG_VALUE}\"" - nvm_err "Run \`unset ${NVM_NPM_CONFIG_PREFIX_ENV}\` to unset it." + nvm_err "nvm is not compatible with the \"${NVM_NPM_CONFIG_x_PREFIX_ENV}\" environment variable: currently set to \"${NVM_CONFIG_VALUE}\"" + nvm_err "Run \`unset ${NVM_NPM_CONFIG_x_PREFIX_ENV}\` to unset it." return 4 fi fi From 59532c74c642a8e62368124dc4eca85ffab3f8cc Mon Sep 17 00:00:00 2001 From: Step Security Date: Fri, 10 Sep 2021 06:09:45 +0000 Subject: [PATCH 1392/1426] [actions] restrict permissions for `GITHUB_TOKEN` --- .github/workflows/latest-npm.yml | 4 ++++ .github/workflows/lint.yml | 8 ++++++++ .github/workflows/rebase.yml | 2 ++ .github/workflows/release.yml | 2 ++ .github/workflows/require-allow-edits.yml | 2 ++ .github/workflows/shellcheck.yml | 4 ++++ .github/workflows/toc.yml | 2 ++ .github/workflows/windows-npm.yml | 8 ++++++++ 8 files changed, 32 insertions(+) mode change 100755 => 100644 .github/workflows/windows-npm.yml diff --git a/.github/workflows/latest-npm.yml b/.github/workflows/latest-npm.yml index c064f21..48fb62e 100644 --- a/.github/workflows/latest-npm.yml +++ b/.github/workflows/latest-npm.yml @@ -4,6 +4,8 @@ on: [pull_request, push] jobs: nodes: + permissions: + contents: read name: 'nvm install-latest-npm' runs-on: ubuntu-latest @@ -44,6 +46,8 @@ jobs: - run: npm --version node: + permissions: + contents: none name: 'nvm install-latest-npm' needs: [nodes] runs-on: ubuntu-latest diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 4285c31..32f279d 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -4,6 +4,8 @@ on: [pull_request, push] jobs: eclint: + permissions: + contents: read runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 @@ -14,6 +16,8 @@ jobs: - run: npm run eclint dockerfile_lint: + permissions: + contents: read runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 @@ -24,6 +28,8 @@ jobs: - run: npm run dockerfile_lint doctoc: + permissions: + contents: read runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 @@ -34,6 +40,8 @@ jobs: - run: npm run doctoc:check test_naming: + permissions: + contents: read runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/rebase.yml b/.github/workflows/rebase.yml index 027aed0..e97e6a9 100644 --- a/.github/workflows/rebase.yml +++ b/.github/workflows/rebase.yml @@ -4,6 +4,8 @@ on: [pull_request_target] jobs: _: + permissions: + contents: write name: "Automatic Rebase" runs-on: ubuntu-latest diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 596a040..dfd9969 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,6 +4,8 @@ on: [pull_request, push] jobs: release: + permissions: + contents: read runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/require-allow-edits.yml b/.github/workflows/require-allow-edits.yml index aac42d3..b92dcd5 100644 --- a/.github/workflows/require-allow-edits.yml +++ b/.github/workflows/require-allow-edits.yml @@ -4,6 +4,8 @@ on: [pull_request_target] jobs: _: + permissions: + pull-requests: read name: "Require “Allow Edits”" runs-on: ubuntu-latest diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml index 728b230..7b375a8 100644 --- a/.github/workflows/shellcheck.yml +++ b/.github/workflows/shellcheck.yml @@ -4,6 +4,8 @@ on: [pull_request, push] jobs: shellcheck_matrix: + permissions: + contents: read runs-on: ubuntu-latest strategy: fail-fast: false @@ -32,6 +34,8 @@ jobs: run: shellcheck -s ${{ matrix.shell }} ${{ matrix.file }} shellcheck: + permissions: + contents: none needs: [shellcheck_matrix] runs-on: ubuntu-latest steps: diff --git a/.github/workflows/toc.yml b/.github/workflows/toc.yml index 55ea20f..60ed577 100644 --- a/.github/workflows/toc.yml +++ b/.github/workflows/toc.yml @@ -4,6 +4,8 @@ on: [push] jobs: _: + permissions: + contents: write name: "update readme TOC" runs-on: ubuntu-latest diff --git a/.github/workflows/windows-npm.yml b/.github/workflows/windows-npm.yml old mode 100755 new mode 100644 index 8751e5b..90c5002 --- a/.github/workflows/windows-npm.yml +++ b/.github/workflows/windows-npm.yml @@ -9,6 +9,8 @@ env: jobs: msys_fail_install: # Default installation does not work due to npm_config_prefix set to C:\npm\prefix + permissions: + contents: none name: 'MSYS fail prefix nvm install' runs-on: windows-latest steps: @@ -20,6 +22,8 @@ jobs: ! nvm install --lts msys_matrix: + permissions: + contents: none name: 'MSYS nvm install' runs-on: windows-latest strategy: @@ -43,6 +47,8 @@ jobs: nvm install ${{ matrix.npm-node-version }} cygwin_matrix: + permissions: + contents: none name: 'Cygwin nvm install' runs-on: windows-latest steps: @@ -111,6 +117,8 @@ jobs: nvm install ${{ matrix.npm-node-version }} nvm_windows: + permissions: + contents: none needs: [wsl_matrix, cygwin_matrix, msys_matrix, msys_fail_install] runs-on: ubuntu-latest steps: From d91087c333d57c1cf37e9875ae235a1640a44d98 Mon Sep 17 00:00:00 2001 From: Gilad Barnea Date: Mon, 13 Sep 2021 15:26:40 +0300 Subject: [PATCH 1393/1426] [Fix] `bash_completion`: be robust when `cd` is overridden --- bash_completion | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bash_completion b/bash_completion index 3e72500..e1f987c 100644 --- a/bash_completion +++ b/bash_completion @@ -58,7 +58,7 @@ __nvm_aliases() { declare aliases aliases="" if [ -d "${NVM_DIR}/alias" ]; then - aliases="$(cd "${NVM_DIR}/alias" && command find "${PWD}" -type f | command sed "s:${PWD}/::")" + aliases="$(command cd "${NVM_DIR}/alias" && command find "${PWD}" -type f | command sed "s:${PWD}/::")" fi echo "${aliases} node stable unstable iojs" } From b6b6e685a39b9cc457a82530652b420d667c1dd1 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 14 Sep 2021 23:26:31 -0700 Subject: [PATCH 1394/1426] [Fix] `set -a`: when this option is set, some `sh` shells break Fixes #2574 --- nvm.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/nvm.sh b/nvm.sh index 1c95f0b..f646107 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2661,6 +2661,13 @@ nvm() { EXIT_CODE="$?" set -e return "$EXIT_CODE" + elif [ "${-#*a}" != "$-" ]; then + set +a + local EXIT_CODE + IFS="${DEFAULT_IFS}" nvm "$@" + EXIT_CODE="$?" + set -a + return "$EXIT_CODE" elif [ "${IFS}" != "${DEFAULT_IFS}" ]; then IFS="${DEFAULT_IFS}" nvm "$@" return "$?" From cc6915e2167ac8f0166a40ccda4f5d9971d00cfb Mon Sep 17 00:00:00 2001 From: Nikita N Date: Tue, 21 Sep 2021 23:57:25 +0300 Subject: [PATCH 1395/1426] [readme] updated automatic call script for bash Bash terminal was throwing error: `bash: cd: too many arguments` when directory had some spaces in the name. The quotes around `$PWD` fixes this issue --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9c37cd6..0eb56c9 100644 --- a/README.md +++ b/README.md @@ -566,7 +566,7 @@ cdnvm() { fi } alias cd='cdnvm' -cd $PWD +cd "$PWD" ``` This alias would search 'up' from your current directory in order to detect a `.nvmrc` file. If it finds it, it will switch to that version; if not, it will use the default version. From 4471b6beb679ef96509808ef1c5aee91dbe764af Mon Sep 17 00:00:00 2001 From: Georgi Chochov Date: Sun, 26 Sep 2021 09:47:50 +0000 Subject: [PATCH 1396/1426] [readme] remove duplicate word 'run' --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0eb56c9..b87748d 100644 --- a/README.md +++ b/README.md @@ -94,7 +94,7 @@ Eg: `curl ... | NVM_DIR="path/to/nvm"`. Ensure that the `NVM_DIR` does not conta #### Troubleshooting on Linux On Linux, after running the install script, if you get `nvm: command not found` or see no feedback from your terminal after you type `command -v nvm`, simply close your current terminal, open a new terminal, and try verifying again. -Alternatively, you can run run the following commands for the different shells on the command line: +Alternatively, you can run the following commands for the different shells on the command line: *bash*: `source ~/.bashrc` From 11d71ab24b3b138dfc5b64f4183245ed89b81a64 Mon Sep 17 00:00:00 2001 From: Axel Svensson Date: Fri, 24 Sep 2021 01:56:47 +0200 Subject: [PATCH 1397/1426] [Fix] Regression in 2dad045 Fixes #2599 --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index f646107..297f5ff 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2458,7 +2458,7 @@ nvm_die_on_prefix() { # until none are left. local NVM_NPM_CONFIG_x_PREFIX_ENV if [ -n "${BASH_SOURCE-}" ]; then - NVM_NPM_CONFIG_x_PREFIX_ENV="$(command set | command awk -F '=' '! /^[0-9A-Z_a-z]+=/ {exit} {print $1}' | nvm_grep -i NPM_CONFIG_PREFIX | command tail -1)" + NVM_NPM_CONFIG_x_PREFIX_ENV="$(command set | command awk -F '=' '! /^[0-9A-Z_a-z]+=/ {skip=1} skip==0 {print $1}' | nvm_grep -i NPM_CONFIG_PREFIX | command tail -1)" else NVM_NPM_CONFIG_x_PREFIX_ENV="$(command env | nvm_grep -i NPM_CONFIG_PREFIX | command tail -1 | command awk -F '=' '{print $1}')" fi From ca897ac6d5d02ecad4400cb4319d064c2e48d2bf Mon Sep 17 00:00:00 2001 From: Tim Connolly Date: Wed, 22 Sep 2021 16:25:28 +1000 Subject: [PATCH 1398/1426] [readme] Avoid infinite loop in cdnvm() --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b87748d..a670a88 100644 --- a/README.md +++ b/README.md @@ -524,7 +524,7 @@ Put the following at the end of your `$HOME/.bashrc`: ```bash cdnvm() { - cd "$@"; + command cd "$@"; nvm_path=$(nvm_find_up .nvmrc | tr -d '\n') # If there are no .nvmrc file, use the default nvm version From 91bd22aa5727c9c4959eddd89c019d7141d69184 Mon Sep 17 00:00:00 2001 From: James Stroud Date: Fri, 4 Jun 2021 15:15:17 -0400 Subject: [PATCH 1399/1426] [readme] fixed small typo afew to a few also gave more up to date versions for example of `nvm install` and `nvm which` as well as your pointer section I love your project by the way. --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a670a88..d664c16 100644 --- a/README.md +++ b/README.md @@ -154,7 +154,7 @@ which should output `nvm` if the installation was successful. Please note that ` If you're running a system without prepackaged binary available, which means you're going to install nodejs or io.js from its source code, you need to make sure your system has a C++ compiler. For OS X, Xcode will work, for Debian/Ubuntu based GNU/Linux, the `build-essential` and `libssl-dev` packages work. -**Note:** `nvm` also support Windows in some cases. It should work through WSL (Windows Subsystem for Linux) depending on the version of WSL. It should also work with [GitBash](https://gitforwindows.org/) (MSYS) or [Cygwin](https://cygwin.com). Otherwise, for Windows, afew alternatives exist, which are neither supported nor developed by us: +**Note:** `nvm` also support Windows in some cases. It should work through WSL (Windows Subsystem for Linux) depending on the version of WSL. It should also work with [GitBash](https://gitforwindows.org/) (MSYS) or [Cygwin](https://cygwin.com). Otherwise, for Windows, a few alternatives exist, which are neither supported nor developed by us: - [nvm-windows](https://github.com/coreybutler/nvm-windows) - [nodist](https://github.com/marcelklehr/nodist) @@ -255,7 +255,7 @@ nvm install node # "node" is an alias for the latest version To install a specific version of node: ```sh -nvm install 6.14.4 # or 10.10.0, 8.9.1, etc +nvm install 14.7.0 # or 16.3.0, 12.22.1, etc ``` The first version installed becomes the default. New shells will start with the default version of node (e.g., `nvm alias default`). @@ -287,10 +287,10 @@ nvm exec 4.2 node --version You can also get the path to the executable to where it was installed: ```sh -nvm which 5.0 +nvm which 12.22 ``` -In place of a version pointer like "0.10" or "5.0" or "4.2.1", you can use the following special default aliases with `nvm install`, `nvm use`, `nvm run`, `nvm exec`, `nvm which`, etc: +In place of a version pointer like "14.7" or "16.3" or "12.22.1", you can use the following special default aliases with `nvm install`, `nvm use`, `nvm run`, `nvm exec`, `nvm which`, etc: - `node`: this installs the latest version of [`node`](https://nodejs.org/en/) - `iojs`: this installs the latest version of [`io.js`](https://iojs.org/en/) From 47f0b32155be0f9c068088d0fce305d474b67072 Mon Sep 17 00:00:00 2001 From: Alex Sabau Date: Sun, 25 Feb 2018 21:46:31 +0100 Subject: [PATCH 1400/1426] [readme] Add info to restart bash if verification not working in verification section --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index d664c16..8302fbe 100644 --- a/README.md +++ b/README.md @@ -150,6 +150,8 @@ command -v nvm which should output `nvm` if the installation was successful. Please note that `which nvm` will not work, since `nvm` is a sourced shell function, not an executable binary. +**Note:** On Linux, after running the install script, if you get `nvm: command not found` or see no feedback from your terminal after you type `command -v nvm`, simply close your current terminal, open a new terminal, and try verifying again. + ### Important Notes If you're running a system without prepackaged binary available, which means you're going to install nodejs or io.js from its source code, you need to make sure your system has a C++ compiler. For OS X, Xcode will work, for Debian/Ubuntu based GNU/Linux, the `build-essential` and `libssl-dev` packages work. From 7bbc57355d74836bda13ee0516bb1cb713e6e86c Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 2 Apr 2017 07:33:49 +0800 Subject: [PATCH 1401/1426] [Tests] Print shell version in Travis CI --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index 7e991ed..47a3ac4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,6 +17,9 @@ before_install: - $SHELL --version 2> /dev/null || dpkg -s $SHELL 2> /dev/null || which $SHELL - curl --version - wget --version + - bash --version | head + - zsh --version + - dpkg -s dash | grep ^Version | awk '{print $2}' install: - if [ -z "${SHELLCHECK-}" ]; then nvm install node && npm install && npm prune && npm ls urchin doctoc eclint dockerfile_lint; fi - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' From 59b0b3942cc9b3c997211104c033ffb03992ed26 Mon Sep 17 00:00:00 2001 From: Alister Norris Date: Tue, 6 Dec 2016 15:14:08 +0000 Subject: [PATCH 1402/1426] [readme] Add quick intro to `nvm` Allow newbies to get a quick understanding of how `nvm` works right from the start. --- README.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/README.md b/README.md index 8302fbe..18dea21 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,7 @@ ## Table of Contents +- [Intro](#intro) - [About](#about) - [Installing and Updating](#installing-and-updating) - [Install & Update Script](#install--update-script) @@ -55,6 +56,29 @@ +## Intro + +`nvm` allows you to quickly install and use different versions of node via the command line. + +**Example:** +```sh +$ nvm use 16 +Now using node v16.9.1 (npm v7.21.1) +$ node -v +v16.9.1 +$ nvm use 14 +Now using node v14.18.0 (npm v6.14.15) +$ node -v +v14.18.0 +$ nvm install 12 +Now using node v12.22.6 (npm v6.14.5) +$ node -v +v12.22.6 +``` + +Simple as that! + + ## About nvm is a version manager for [node.js](https://nodejs.org/en/), designed to be installed per-user, and invoked per-shell. `nvm` works on any POSIX-compliant shell (sh, dash, ksh, zsh, bash), in particular on these platforms: unix, macOS, and windows WSL. From 07c02d43febdd2ec03f05550c7d7d2ce04c05206 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 29 Sep 2021 10:47:34 -0700 Subject: [PATCH 1403/1426] [Tests] `nvm install-latest-npm`: node < 0.10 breaks with npm with dropped support for TLS < 1.2 --- test/installation_node/install latest npm | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/test/installation_node/install latest npm b/test/installation_node/install latest npm index 8bb7a62..0de6f0d 100755 --- a/test/installation_node/install latest npm +++ b/test/installation_node/install latest npm @@ -26,13 +26,15 @@ nvm install-latest-npm || die 'nvm install-latest-npm failed: 3' NPM_VERSION="$(npm --version)" [ "${NPM_VERSION}" = '4.6.1' ] || die "io.js v1.x updates to ${NPM_VERSION}; expected v4.6.1" -export NPM_CONFIG_STRICT_SSL=false # the npm registry tightened up their SSL certs +# export NPM_CONFIG_STRICT_SSL=false # the npm registry tightened up their SSL certs -nvm deactivate >/dev/null 2>&1 || die 'unable to deactivate: 4' -nvm install 0.8.27 >/dev/null 2>&1 || die 'install v0.8 failed' -nvm install-latest-npm || die 'nvm install-latest-npm failed: 4' -NPM_VERSION="$(npm --version)" -[ "${NPM_VERSION}" = '4.5.0' ] || die "node 0.8.27 updates to ${NPM_VERSION}; expected v4.5.0" +## Commented because TLS < 1.2 is dropped, and this breaks npm in node < 0.10 +## https://github.blog/2021-08-23-npm-registry-deprecating-tls-1-0-tls-1-1/#detailed-timeline +# nvm deactivate >/dev/null 2>&1 || die 'unable to deactivate: 4' +# nvm install 0.8.27 >/dev/null 2>&1 || die 'install v0.8 failed' +# nvm install-latest-npm || die 'nvm install-latest-npm failed: 4' +# NPM_VERSION="$(npm --version)" +# [ "${NPM_VERSION}" = '4.5.0' ] || die "node 0.8.27 updates to ${NPM_VERSION}; expected v4.5.0" ## Commented to work around travis-ci breaking 0,6 installs # nvm deactivate >/dev/null 2>&1 || die 'unable to deactivate: 5' From 53f9ba8336d75fe82c167427b2cc865be757c0a2 Mon Sep 17 00:00:00 2001 From: Kaito Udagawa Date: Fri, 23 Dec 2016 01:03:41 +0900 Subject: [PATCH 1404/1426] [Refactor] Use awk for path stripping This works with paths which contains regex meta characters. --- nvm.sh | 13 ++++++------- test/fast/Unit tests/nvm_strip_path | 7 +++++++ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/nvm.sh b/nvm.sh index 297f5ff..87f4961 100644 --- a/nvm.sh +++ b/nvm.sh @@ -698,13 +698,12 @@ nvm_strip_path() { nvm_err '${NVM_DIR} not set!' return 1 fi - nvm_echo "${1-}" | command sed \ - -e "s#${NVM_DIR}/[^/]*${2-}[^:]*:##g" \ - -e "s#:${NVM_DIR}/[^/]*${2-}[^:]*##g" \ - -e "s#${NVM_DIR}/[^/]*${2-}[^:]*##g" \ - -e "s#${NVM_DIR}/versions/[^/]*/[^/]*${2-}[^:]*:##g" \ - -e "s#:${NVM_DIR}/versions/[^/]*/[^/]*${2-}[^:]*##g" \ - -e "s#${NVM_DIR}/versions/[^/]*/[^/]*${2-}[^:]*##g" + command printf %s "${1-}" | command awk -v NVM_DIR="${NVM_DIR}" -v RS=: ' + index($0, NVM_DIR) == 1 { + path = substr($0, length(NVM_DIR) + 1) + if (path ~ "^(/versions/[^/]*)?/[^/]*'"${2-}"'.*$") { next } + } + { print }' | command paste -s -d: - } nvm_change_path() { diff --git a/test/fast/Unit tests/nvm_strip_path b/test/fast/Unit tests/nvm_strip_path index a57a424..adce734 100755 --- a/test/fast/Unit tests/nvm_strip_path +++ b/test/fast/Unit tests/nvm_strip_path @@ -9,3 +9,10 @@ TEST_PATH=$NVM_DIR/v0.10.5/bin:/usr/bin:$NVM_DIR/v0.11.5/bin:$NVM_DIR/v0.9.5/bin STRIPPED_PATH=`nvm_strip_path "$TEST_PATH" "/bin"` [ "$STRIPPED_PATH" = "/usr/bin:/usr/local/bin" ] || die "Not correctly stripped: $STRIPPED_PATH " + +NVM_DIR='/#*.^$[]' +TEST_PATH="$NVM_DIR/v0.10.5/bin:/usr/bin:$NVM_DIR/v0.11.5/bin:$NVM_DIR/v0.9.5/bin:/usr/local/bin:$NVM_DIR/v0.2.5/bin:$NVM_DIR/versions/node/v0.12.0/bin:$NVM_DIR/versions/io.js/v1.0.0/bin" + +STRIPPED_PATH=`nvm_strip_path "$TEST_PATH" "/bin"` + +[ "$STRIPPED_PATH" = "/usr/bin:/usr/local/bin" ] || die "Not correctly stripped: $STRIPPED_PATH " From 1afd4f3566053526064b477a9b0bfd77ce2501f8 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 5 Nov 2017 04:06:36 +0800 Subject: [PATCH 1405/1426] [Tests] Add `markdown-link-check` script This uses the npm package `markdown-link-check` to check if all the links in the documentation are alive. --- package.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 2387b2f..f116996 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,8 @@ "doctoc:check": "diff -q README.md v-README.md.orig", "postdoctoc:check": "mv v-README.md.orig README.md", "eclint": "eclint check $(git ls-tree --name-only HEAD | xargs)", - "dockerfile_lint": "dockerfile_lint" + "dockerfile_lint": "dockerfile_lint", + "markdown-link-check": "git ls-files | command grep -E '\\.md$' | xargs -n 1 markdown-link-check -p" }, "repository": { "type": "git", @@ -42,6 +43,7 @@ "dockerfile_lint": "^0.3.4", "doctoc": "^2.0.0", "eclint": "^2.8.1", + "markdown-link-check": "^3.1.4", "replace": "^1.2.1", "semver": "^7.3.5", "urchin": "^0.0.5" From 7b530edd3a2a3ebc976c455394f7245827194da7 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 5 Nov 2017 04:07:37 +0800 Subject: [PATCH 1406/1426] [Docs] Use absolute URL for #606 in README.md Since markdown-link-check hasn't support relative links, to make the test passed, move this link to use absolute URL so that we can introduce the new test. cc tcort/markdown-link-check#10 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 18dea21..be66777 100644 --- a/README.md +++ b/README.md @@ -752,7 +752,7 @@ my_alias default v10.22.0 v12.18.3 v14.8.0 ## Compatibility Issues -`nvm` will encounter some issues if you have some non-default settings set. (see [#606](/../../issues/606)) +`nvm` will encounter some issues if you have some non-default settings set. (see [#606](https://github.com/creationix/nvm/issues/606)) The following are known to cause issues: Inside `~/.npmrc`: From 2bda9fd97e8f886c0acb495503139fe473f8ff6c Mon Sep 17 00:00:00 2001 From: Rick Button Date: Wed, 6 Oct 2021 01:50:44 -0400 Subject: [PATCH 1407/1426] [Tests] blacklist expired LetsEncrypt CA workaround for TravisCI's ubuntu 16.04 --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 47a3ac4..9e068c4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,6 +14,8 @@ cache: - $TRAVIS_BUILD_DIR/.cache - $TRAVIS_BUILD_DIR/node_modules before_install: + - sudo sed -i 's/mozilla\/DST_Root_CA_X3.crt/!mozilla\/DST_Root_CA_X3.crt/g' /etc/ca-certificates.conf + - sudo update-ca-certificates -f - $SHELL --version 2> /dev/null || dpkg -s $SHELL 2> /dev/null || which $SHELL - curl --version - wget --version From ebbd30eb7f5a16314822a8444301c8b5bd17d7e1 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 5 Oct 2021 15:13:45 -0700 Subject: [PATCH 1408/1426] [Fix] `nvm install-latest-npm`: ensure npm 8 does not install on unsupported nodes --- .github/workflows/latest-npm.yml | 5 ++++ nvm.sh | 32 +++++++++++++++++++++++ test/installation_node/install latest npm | 7 +++++ 3 files changed, 44 insertions(+) diff --git a/.github/workflows/latest-npm.yml b/.github/workflows/latest-npm.yml index 48fb62e..ee7d229 100644 --- a/.github/workflows/latest-npm.yml +++ b/.github/workflows/latest-npm.yml @@ -13,6 +13,11 @@ jobs: fail-fast: false matrix: node-version: + - "16" + - "15" + - "14" + - "13" + - "12" - "11" - "10" - "9" diff --git a/nvm.sh b/nvm.sh index 87f4961..e1da3b1 100644 --- a/nvm.sh +++ b/nvm.sh @@ -268,6 +268,31 @@ nvm_install_latest_npm() { if [ $NVM_IS_9_3_OR_ABOVE -eq 1 ] && nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 10.0.0; then NVM_IS_10_OR_ABOVE=1 fi + local NVM_IS_12_LTS_OR_ABOVE + NVM_IS_12_LTS_OR_ABOVE=0 + if [ $NVM_IS_10_OR_ABOVE -eq 1 ] && nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 12.13.0; then + NVM_IS_12_LTS_OR_ABOVE=1 + fi + local NVM_IS_13_OR_ABOVE + NVM_IS_13_OR_ABOVE=0 + if [ $NVM_IS_12_LTS_OR_ABOVE -eq 1 ] && nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 13.0.0; then + NVM_IS_13_OR_ABOVE=1 + fi + local NVM_IS_14_LTS_OR_ABOVE + NVM_IS_14_LTS_OR_ABOVE=0 + if [ $NVM_IS_13_OR_ABOVE -eq 1 ] && nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 14.15.0; then + NVM_IS_14_LTS_OR_ABOVE=1 + fi + local NVM_IS_15_OR_ABOVE + NVM_IS_15_OR_ABOVE=0 + if [ $NVM_IS_14_LTS_OR_ABOVE -eq 1 ] && nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 15.0.0; then + NVM_IS_15_OR_ABOVE=1 + fi + local NVM_IS_16_OR_ABOVE + NVM_IS_16_OR_ABOVE=0 + if [ $NVM_IS_15_OR_ABOVE -eq 1 ] && nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 16.0.0; then + NVM_IS_16_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}"; \ @@ -289,6 +314,13 @@ nvm_install_latest_npm() { elif [ $NVM_IS_10_OR_ABOVE -eq 0 ]; then nvm_echo '* `npm` `v6.x` is the last version that works on `node` below `v10.0.0`' $NVM_NPM_CMD install -g npm@6 + elif \ + [ $NVM_IS_12_LTS_OR_ABOVE -eq 0 ] \ + || { [ $NVM_IS_13_OR_ABOVE -eq 1 ] && [ $NVM_IS_14_LTS_OR_ABOVE -eq 0 ]; } \ + || { [ $NVM_IS_15_OR_ABOVE -eq 1 ] && [ $NVM_IS_16_OR_ABOVE -eq 0 ]; } \ + ; then + nvm_echo '* `npm` `v7.x` is the last version that works on `node` `v13`, `v15`, below `v12.13`, or `v14.0` - `v14.15`' + $NVM_NPM_CMD install -g npm@7 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 diff --git a/test/installation_node/install latest npm b/test/installation_node/install latest npm index 0de6f0d..6cbac8a 100755 --- a/test/installation_node/install latest npm +++ b/test/installation_node/install latest npm @@ -8,6 +8,13 @@ set +e # todo: fix \. ../../nvm.sh set -e +nvm deactivate >/dev/null 2>&1 || die 'unable to deactivate: 1' +nvm install 12.12 >/dev/null 2>&1 || die 'install v12.12 failed' +nvm install-latest-npm || die 'nvm install-latest-npm failed: 1' +NPM_VERSION="$(npm --version)" +nvm_version_greater_than_or_equal_to "${NPM_VERSION}" 7.0.0 \ +&& nvm_version_greater 8.0.0 "${NPM_VERSION}" || die "node v12.12 updates to ${NPM_VERSION}; expected v7" + nvm deactivate >/dev/null 2>&1 || die 'unable to deactivate: 1' nvm install 4 >/dev/null 2>&1 || die 'install v4 failed' nvm install-latest-npm || die 'nvm install-latest-npm failed: 1' From da5baa005b9f59f8f9f86002c85a2053f09494ba Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 5 Oct 2021 16:14:05 -0700 Subject: [PATCH 1409/1426] [Tests] use a matrix on the `nvm install-latest-npm` tests --- .github/workflows/latest-npm.yml | 52 +++++++++++++++----------------- 1 file changed, 25 insertions(+), 27 deletions(-) diff --git a/.github/workflows/latest-npm.yml b/.github/workflows/latest-npm.yml index ee7d229..b616158 100644 --- a/.github/workflows/latest-npm.yml +++ b/.github/workflows/latest-npm.yml @@ -3,7 +3,20 @@ name: 'Tests: `nvm install-latest-npm`' on: [pull_request, push] jobs: + matrix: + runs-on: ubuntu-latest + outputs: + latest: ${{ steps.set-matrix.outputs.requireds }} + steps: + - uses: ljharb/actions/node/matrix@main + id: set-matrix + with: + versionsAsRoot: true + type: majors + preset: '>=1' + nodes: + needs: [matrix] permissions: contents: read name: 'nvm install-latest-npm' @@ -12,33 +25,18 @@ jobs: strategy: fail-fast: false matrix: - node-version: - - "16" - - "15" - - "14" - - "13" - - "12" - - "11" - - "10" - - "9" - - "9.2" - - "9.1" - - "9.0" - - "8" - - "7" - - "6" - - "6.1" - - "5" - - "5.9" - - "4" - - "4.6" - - "4.5" - - "4.4" - - "3" - - "2" - - "1" - - "0.12" - - "0.10" + node-version: ${{ fromJson(needs.matrix.outputs.latest) }} + include: + - node-version: "9.2" + - node-version: "9.1" + - node-version: "9.0" + - node-version: "6.1" + - node-version: "5.9" + - node-version: "4.6" + - node-version: "4.5" + - node-version: "4.4" + - node-version: "0.12" + - node-version: "0.10" steps: - uses: actions/checkout@v2 From 10189bf4cb95fa8f113c3a38a580b74bc404bf34 Mon Sep 17 00:00:00 2001 From: Felipe Alexandre Rodrigues Date: Tue, 5 Oct 2021 10:47:56 -0300 Subject: [PATCH 1410/1426] [readme] Add bash_completion in "manual install" section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index be66777..62138cd 100644 --- a/README.md +++ b/README.md @@ -251,6 +251,7 @@ Now add these lines to your `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to hav ```sh export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm +[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion ``` ### Manual Upgrade From 93e0070a44134be7833ee8274aab1324533f95f7 Mon Sep 17 00:00:00 2001 From: Matteo De Wint Date: Sat, 28 Nov 2020 15:16:35 +0100 Subject: [PATCH 1411/1426] [Fix] `nvm_die_on_prefix`: filter prefixed env vars on name only, ignoring values --- nvm.sh | 6 +----- test/fast/Unit tests/nvm_die_on_prefix | 3 +++ 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/nvm.sh b/nvm.sh index e1da3b1..49d22fd 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2488,11 +2488,7 @@ nvm_die_on_prefix() { # here, we avoid trying to replicate "which one wins" or testing the value; if any are defined, it errors # until none are left. local NVM_NPM_CONFIG_x_PREFIX_ENV - if [ -n "${BASH_SOURCE-}" ]; then - NVM_NPM_CONFIG_x_PREFIX_ENV="$(command set | command awk -F '=' '! /^[0-9A-Z_a-z]+=/ {skip=1} skip==0 {print $1}' | nvm_grep -i NPM_CONFIG_PREFIX | command tail -1)" - else - NVM_NPM_CONFIG_x_PREFIX_ENV="$(command env | nvm_grep -i NPM_CONFIG_PREFIX | command tail -1 | command awk -F '=' '{print $1}')" - fi + NVM_NPM_CONFIG_x_PREFIX_ENV="$(command awk 'BEGIN { for (name in ENVIRON) if (toupper(name) == "NPM_CONFIG_PREFIX") { print name; break } }')" if [ -n "${NVM_NPM_CONFIG_x_PREFIX_ENV-}" ]; then local NVM_CONFIG_VALUE eval "NVM_CONFIG_VALUE=\"\$${NVM_NPM_CONFIG_x_PREFIX_ENV}\"" diff --git a/test/fast/Unit tests/nvm_die_on_prefix b/test/fast/Unit tests/nvm_die_on_prefix index f06a9bf..0a2429e 100755 --- a/test/fast/Unit tests/nvm_die_on_prefix +++ b/test/fast/Unit tests/nvm_die_on_prefix @@ -84,6 +84,9 @@ EXIT_CODE="$(export npm_CONFIG_PREFIX=bar ; nvm_die_on_prefix 0 foo "$(nvm_versi [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'npm_CONFIG_PREFIX=bar nvm_die_on_prefix 0 foo' did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" [ "_$EXIT_CODE" = "_4" ] || die "'npm_CONFIG_PREFIX=bar nvm_die_on_prefix 0 foo' did not exit with 4; got '$EXIT_CODE'" +OUTPUT="$(export FOO='This contains NPM_CONFIG_PREFIX' ; nvm_die_on_prefix 0 foo "$(nvm_version_dir new)" 2>&1)" +[ -z "$OUTPUT" ] || die "'nvm_die_on_prefix' was not a noop; got '$OUTPUT'" + # npmrc tests ( cd "${TEST_DIR}" From 055af09d245f645f8efb0f843d2d41ea71e5c674 Mon Sep 17 00:00:00 2001 From: Simon East Date: Tue, 4 May 2021 15:56:53 +1000 Subject: [PATCH 1412/1426] [readme] link "Windows WSL" down to the "important notes" section --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 62138cd..84919c2 100644 --- a/README.md +++ b/README.md @@ -80,7 +80,7 @@ Simple as that! ## About -nvm is a version manager for [node.js](https://nodejs.org/en/), designed to be installed per-user, and invoked per-shell. `nvm` works on any POSIX-compliant shell (sh, dash, ksh, zsh, bash), in particular on these platforms: unix, macOS, and windows WSL. +nvm is a version manager for [node.js](https://nodejs.org/en/), designed to be installed per-user, and invoked per-shell. `nvm` works on any POSIX-compliant shell (sh, dash, ksh, zsh, bash), in particular on these platforms: unix, macOS, and [windows WSL](https://github.com/nvm-sh/nvm#important-notes). From e8f485bb63d34b4894d7ed8ef4fe71dc038a51ca Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 7 Oct 2021 10:08:53 -0700 Subject: [PATCH 1413/1426] [Dev Deps] update `doctoc`, `markdown-link-check` --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index f116996..554713a 100644 --- a/package.json +++ b/package.json @@ -41,9 +41,9 @@ "homepage": "https://github.com/nvm-sh/nvm", "devDependencies": { "dockerfile_lint": "^0.3.4", - "doctoc": "^2.0.0", + "doctoc": "^2.0.1", "eclint": "^2.8.1", - "markdown-link-check": "^3.1.4", + "markdown-link-check": "^3.8.7", "replace": "^1.2.1", "semver": "^7.3.5", "urchin": "^0.0.5" From 5b3d188b83f27ec31d97f3f3e6e49220e09b6985 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 7 Oct 2021 10:11:35 -0700 Subject: [PATCH 1414/1426] v0.39.0 --- README.md | 16 ++++++++-------- install.sh | 2 +- nvm.sh | 2 +- package.json | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 84919c2..8891021 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Node Version Manager [![Build Status](https://travis-ci.org/nvm-sh/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.38.0-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://travis-ci.org/nvm-sh/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.39.0-yellow.svg)][4] [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/684/badge)](https://bestpractices.coreinfrastructure.org/projects/684) @@ -90,10 +90,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.38.0/install.sh | bash +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash ``` ```sh -wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash +wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/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`). @@ -159,7 +159,7 @@ You can use a task: ```yaml - name: nvm shell: > - curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash + curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash args: creates: "{{ ansible_env.HOME }}/.nvm/nvm.sh" ``` @@ -221,7 +221,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.38.0` +1. `cd ~/.nvm` and check out the latest version with `git checkout v0.39.0` 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: @@ -787,7 +787,7 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh ```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.38.0/install.sh | bash +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash ``` The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. @@ -884,9 +884,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.38.0/install.sh +[2]: https://github.com/nvm-sh/nvm/blob/v0.39.0/install.sh [3]: https://travis-ci.org/nvm-sh/nvm -[4]: https://github.com/nvm-sh/nvm/releases/tag/v0.38.0 +[4]: https://github.com/nvm-sh/nvm/releases/tag/v0.39.0 [Urchin]: https://github.com/scraperwiki/urchin [Fish]: http://fishshell.com diff --git a/install.sh b/install.sh index 4ca56c0..af8fb6e 100755 --- a/install.sh +++ b/install.sh @@ -27,7 +27,7 @@ nvm_install_dir() { } nvm_latest_version() { - nvm_echo "v0.38.0" + nvm_echo "v0.39.0" } nvm_profile_is_bash_or_zsh() { diff --git a/nvm.sh b/nvm.sh index 49d22fd..bdfe6d3 100644 --- a/nvm.sh +++ b/nvm.sh @@ -4069,7 +4069,7 @@ nvm() { NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" ;; "--version" | "-v") - nvm_echo '0.38.0' + nvm_echo '0.39.0' ;; "unload") nvm deactivate >/dev/null 2>&1 diff --git a/package.json b/package.json index 554713a..c0630c6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nvm", - "version": "0.38.0", + "version": "0.39.0", "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", "directories": { "test": "test" From a284af9228a62656e32eacfb0928faaeee8a124d Mon Sep 17 00:00:00 2001 From: Wu Jiang Date: Thu, 14 Apr 2016 20:57:10 -0400 Subject: [PATCH 1415/1426] [New] Add OpenBSD support --- nvm.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index bdfe6d3..72992c1 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2316,7 +2316,7 @@ nvm_install_source() { make='make' local MAKE_CXX case "${NVM_OS}" in - 'freebsd') + 'freebsd' | 'openbsd') make='gmake' MAKE_CXX="CC=${CC:-cc} CXX=${CXX:-c++}" ;; @@ -3273,6 +3273,10 @@ nvm() { # node.js and io.js do not have a FreeBSD binary nobinary=1 nvm_err "Currently, there is no binary for FreeBSD" + elif [ "_$NVM_OS" = "_openbsd" ]; then + # node.js and io.js do not have a OpenBSD binary + nobinary=1 + nvm_err "Currently, there is no binary for OpenBSD" elif [ "_${NVM_OS}" = "_sunos" ]; then # Not all node/io.js versions have a Solaris binary if ! nvm_has_solaris_binary "${VERSION}"; then From c9e7bb2da1bdaffe15f9a1d1bededb533a172138 Mon Sep 17 00:00:00 2001 From: Nix Date: Sat, 23 Oct 2021 22:23:55 +0900 Subject: [PATCH 1416/1426] [Fix] install script: Add `--no-pager` option to git branch --- install.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index af8fb6e..c5bc50f 100755 --- a/install.sh +++ b/install.sh @@ -160,11 +160,11 @@ install_nvm_from_git() { exit 2 } if [ -n "$(command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" show-ref refs/heads/master)" ]; then - if command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" branch --quiet 2>/dev/null; then - command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" branch --quiet -D master >/dev/null 2>&1 + if command git --no-pager --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" branch --quiet 2>/dev/null; then + command git --no-pager --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" branch --quiet -D master >/dev/null 2>&1 else nvm_echo >&2 "Your version of git is out of date. Please update it!" - command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" branch -D master >/dev/null 2>&1 + command git --no-pager --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" branch -D master >/dev/null 2>&1 fi fi From 2f40eeef2e201779b942c1c8bd241d058f5d2273 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 19 Nov 2021 08:53:43 -0800 Subject: [PATCH 1417/1426] [shellcheck] apply v0.8.0 updates --- install.sh | 2 +- nvm.sh | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/install.sh b/install.sh index c5bc50f..d6433ce 100755 --- a/install.sh +++ b/install.sh @@ -300,7 +300,7 @@ nvm_detect_profile() { nvm_check_global_modules() { local NPM_COMMAND NPM_COMMAND="$(command -v npm 2>/dev/null)" || return 0 - [ -n "${NVM_DIR}" ] && [ -z "${NPM_COMMAND%%$NVM_DIR/*}" ] && return 0 + [ -n "${NVM_DIR}" ] && [ -z "${NPM_COMMAND%%"$NVM_DIR"/*}" ] && return 0 local NPM_VERSION NPM_VERSION="$(npm --version)" diff --git a/nvm.sh b/nvm.sh index 72992c1..f65e991 100644 --- a/nvm.sh +++ b/nvm.sh @@ -634,7 +634,7 @@ nvm_remote_versions() { NVM_LS_REMOTE_EXIT_CODE=$? # split output into two NVM_LS_REMOTE_PRE_MERGED_OUTPUT="${NVM_LS_REMOTE_OUTPUT%%v4\.0\.0*}" - NVM_LS_REMOTE_POST_MERGED_OUTPUT="${NVM_LS_REMOTE_OUTPUT#$NVM_LS_REMOTE_PRE_MERGED_OUTPUT}" + NVM_LS_REMOTE_POST_MERGED_OUTPUT="${NVM_LS_REMOTE_OUTPUT#"$NVM_LS_REMOTE_PRE_MERGED_OUTPUT"}" fi local NVM_LS_REMOTE_IOJS_EXIT_CODE @@ -940,7 +940,7 @@ nvm_print_alias_path() { return 2 fi local ALIAS - ALIAS="${ALIAS_PATH##${NVM_ALIAS_DIR}\/}" + ALIAS="${ALIAS_PATH##"${NVM_ALIAS_DIR}"\/}" local DEST DEST="$(nvm_alias "${ALIAS}" 2>/dev/null)" ||: if [ -n "${DEST}" ]; then @@ -1186,7 +1186,7 @@ nvm_strip_iojs_prefix() { if [ "${1-}" = "${NVM_IOJS_PREFIX}" ]; then nvm_echo else - nvm_echo "${1#${NVM_IOJS_PREFIX}-}" + nvm_echo "${1#"${NVM_IOJS_PREFIX}"-}" fi } @@ -2614,7 +2614,7 @@ nvm_node_version_has_solaris_binary() { # Succeeds if $VERSION represents a version (node, io.js or merged) that has a # Solaris binary, fails otherwise. nvm_has_solaris_binary() { - local VERSION=$1 + local VERSION="${1-}" if nvm_is_merged_node_version "${VERSION}"; then return 0 # All merged node versions have a Solaris binary elif nvm_is_iojs_version "${VERSION}"; then From ccd98f7fcbae2a41ae4a00ab7ba50727732dd4b2 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 19 Nov 2021 08:59:37 -0800 Subject: [PATCH 1418/1426] [Dev Deps] update `doctoc` --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c0630c6..dc3efd5 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "homepage": "https://github.com/nvm-sh/nvm", "devDependencies": { "dockerfile_lint": "^0.3.4", - "doctoc": "^2.0.1", + "doctoc": "^2.1.0", "eclint": "^2.8.1", "markdown-link-check": "^3.8.7", "replace": "^1.2.1", From e9b26938b953278b0e6c0d1812e20267358f8f5e Mon Sep 17 00:00:00 2001 From: Ian Grayson Date: Mon, 15 Nov 2021 04:23:42 -0800 Subject: [PATCH 1419/1426] [readme] Describe another failure case for installing node versions from source on mac arm64 machines. It seems to be related to https://github.com/nodejs/node/issues/39313 (which describes a similar issue). --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8891021..658b704 100644 --- a/README.md +++ b/README.md @@ -913,6 +913,7 @@ Some issues you may encounter: $ NODE_OPTIONS="--max-old-space-size=4096" ./node_modules/.bin/your_node_package ``` - when using `nvm` to install some versions, the compilation fails +- after `nvm` successfully compiles some versions, `yarn` or `npm` may later fail to install packages with an `incorrect data check` error. One solution to this issue is to change the architecture of your shell from arm64 to x86. From 30486b9bd9b88c875b78f0ea9fd71801be6af46b Mon Sep 17 00:00:00 2001 From: Robert Elliot Date: Mon, 22 Nov 2021 14:34:43 +0000 Subject: [PATCH 1420/1426] [readme] Balance the if statement in bash example Nesting the `elif` at the same level as the `if` and `fi` makes it clear which code applies to which branch (no .nvmrc file / found .nvmrc file). I wasted a while looking at it trying to work out how it did anything if there was a .nvmrc file, because obviously the `if` didn't match and I couldn't see the `elif` branch. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 658b704..4f2b588 100644 --- a/README.md +++ b/README.md @@ -572,7 +572,7 @@ cdnvm() { nvm use default; fi - elif [[ -s $nvm_path/.nvmrc && -r $nvm_path/.nvmrc ]]; then + elif [[ -s $nvm_path/.nvmrc && -r $nvm_path/.nvmrc ]]; then declare nvm_version nvm_version=$(<"$nvm_path"/.nvmrc) From 89379176ac5f6604ca0bafa7f9d20951da620fdd Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 25 Nov 2021 14:26:35 -0800 Subject: [PATCH 1421/1426] [Fix] `install`: properly check for curl/wget --- install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index d6433ce..a4a12ba 100755 --- a/install.sh +++ b/install.sh @@ -360,7 +360,7 @@ nvm_do_install() { # Autodetect install method if nvm_has git; then install_nvm_from_git - elif nvm_has nvm_download; then + elif nvm_has curl || nvm_has wget; then install_nvm_as_script else nvm_echo >&2 'You need git, curl, or wget to install nvm' @@ -373,7 +373,7 @@ nvm_do_install() { fi install_nvm_from_git elif [ "${METHOD}" = 'script' ]; then - if ! nvm_has nvm_download; then + if ! nvm_has curl || nvm_has wget; then nvm_echo >&2 "You need curl or wget to install nvm" exit 1 fi From 275001b06642f9ee35776b06a37c16b67ccf2328 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 25 Nov 2021 19:35:39 -0800 Subject: [PATCH 1422/1426] [Tests] fix windows WSL tests --- .github/workflows/windows-npm.yml | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/.github/workflows/windows-npm.yml b/.github/workflows/windows-npm.yml index 90c5002..6281a42 100644 --- a/.github/workflows/windows-npm.yml +++ b/.github/workflows/windows-npm.yml @@ -87,6 +87,9 @@ jobs: wsl_matrix: name: 'WSL nvm install' + defaults: + run: + shell: wsl-bash {0} runs-on: windows-latest env: WSLENV: NVM_INSTALL_GITHUB_REPO:NVM_INSTALL_VERSION:/p @@ -99,19 +102,24 @@ jobs: - Ubuntu-18.04 npm-node-version: - '--lts' + - '14' + - '12' - '11' + - '10' + method: + - '' + # - 'script' # TODO: uncomment this. steps: - uses: Vampire/setup-wsl@v1 with: distribution: ${{ matrix.wsl-distrib }} - additional-packages: bash git curl ca-certificates + additional-packages: bash git curl ca-certificates wget - name: Retrieve nvm on WSL - shell: wsl-bash {0} run: | - if [ "${{ matrix.wsl-distrib }}" = "Ubuntu-18.04" ] && [ "${{ matrix.npm-node-version }}" = "--lts" ]; then + if [ -z "${{ matrix.method }}" ]; then curl -fsSLo- "https://raw.githubusercontent.com/${NVM_INSTALL_GITHUB_REPO}/${NVM_INSTALL_VERSION}/install.sh" | bash else - curl -fsSLo- "https://raw.githubusercontent.com/${NVM_INSTALL_GITHUB_REPO}/${NVM_INSTALL_VERSION}/install.sh" | METHOD=script bash + curl -fsSLo- "https://raw.githubusercontent.com/${NVM_INSTALL_GITHUB_REPO}/${NVM_INSTALL_VERSION}/install.sh" | METHOD="${{matrix.method}}" bash fi . "$HOME/.nvm/nvm.sh" nvm install ${{ matrix.npm-node-version }} From 4856407d2691d2135420f25d00acdb6d9b85ae3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Foray?= Date: Tue, 30 Nov 2021 16:07:22 +0100 Subject: [PATCH 1423/1426] [Fix] `install`: fix method=script install condition Fixes #2665; see 8937917 --- .github/workflows/windows-npm.yml | 2 +- install.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/windows-npm.yml b/.github/workflows/windows-npm.yml index 6281a42..29fef33 100644 --- a/.github/workflows/windows-npm.yml +++ b/.github/workflows/windows-npm.yml @@ -108,7 +108,7 @@ jobs: - '10' method: - '' - # - 'script' # TODO: uncomment this. + - 'script' steps: - uses: Vampire/setup-wsl@v1 with: diff --git a/install.sh b/install.sh index a4a12ba..eb37d04 100755 --- a/install.sh +++ b/install.sh @@ -373,7 +373,7 @@ nvm_do_install() { fi install_nvm_from_git elif [ "${METHOD}" = 'script' ]; then - if ! nvm_has curl || nvm_has wget; then + if ! nvm_has curl && ! nvm_has wget; then nvm_echo >&2 "You need curl or wget to install nvm" exit 1 fi From 328dd5004eaac5509d7e24359362df65c951478e Mon Sep 17 00:00:00 2001 From: Ankit Kumar Date: Sun, 21 Nov 2021 15:59:39 +0530 Subject: [PATCH 1424/1426] [Fix] `nvm_get_download_slug`: better architecture selection for M1 Macs If the node version is below 16.0.0 then nvm will select x86_64 architecture, else arm64 architecture. --- README.md | 2 ++ nvm.sh | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/README.md b/README.md index 4f2b588..94599b7 100644 --- a/README.md +++ b/README.md @@ -152,6 +152,8 @@ If the above doesn't fix the problem, you may try the following: - For more information about this issue and possible workarounds, please [refer here](https://github.com/nvm-sh/nvm/issues/576) +**Note** For Macs with the M1 chip, node started providing **arm64** arch darwin packages since v16.0.0. For earlier versions, there were only **darwin_x64** packages available but no **darwin_arm64**. If you are facing issues installing node using `nvm`, you may want to update to v16 or later. + #### Ansible You can use a task: diff --git a/nvm.sh b/nvm.sh index f65e991..a37e422 100644 --- a/nvm.sh +++ b/nvm.sh @@ -2093,6 +2093,14 @@ nvm_get_download_slug() { fi fi + # If node version in below 16.0.0 then there is no arm64 packages available in node repositories, so we have to install "x64" arch packages + # If running MAC M1 :: arm64 arch and Darwin OS then use "x64" Architecture because node doesn't provide darwin_arm64 package below v16.0.0 + if nvm_version_greater '16.0.0' "${VERSION}"; then + if [ "_${NVM_OS}" = '_darwin' ] && [ "${NVM_ARCH}" = 'arm64' ]; then + NVM_ARCH=x64 + fi + fi + if [ "${KIND}" = 'binary' ]; then nvm_echo "${FLAVOR}-${VERSION}-${NVM_OS}-${NVM_ARCH}" elif [ "${KIND}" = 'source' ]; then From 81fc05684de8b0b13aed401de64733e1d5d23a9a Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 2 Dec 2021 23:33:20 -0800 Subject: [PATCH 1425/1426] [Tests] `nvm_get_download_slug`: add unit tests --- test/fast/Unit tests/nvm_get_download_slug | 111 +++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100755 test/fast/Unit tests/nvm_get_download_slug diff --git a/test/fast/Unit tests/nvm_get_download_slug b/test/fast/Unit tests/nvm_get_download_slug new file mode 100755 index 0000000..a4a0bc4 --- /dev/null +++ b/test/fast/Unit tests/nvm_get_download_slug @@ -0,0 +1,111 @@ +#!/bin/sh + +cleanup() { + unset nvm_get_os + unset nvm_get_arch +} + +die () { cleanup; echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +[ "$(nvm_get_download_slug 2>/dev/null ; echo $?)" = '1' ] || die 'invalid flavor did not fail with exit code 1' +[ "$(nvm_get_download_slug 2>&1)" = 'supported flavors: node, iojs' ] || die 'invalid flavor did not fail with expected message' + +[ "$(nvm_get_download_slug node 2>/dev/null ; echo $?)" = '2' ] || die 'invalid kind did not fail with exit code 2' +[ "$(nvm_get_download_slug node 2>&1)" = 'supported kinds: binary, source' ] || die 'invalid kind did not fail with expected message' +[ "$(nvm_get_download_slug iojs 2>/dev/null ; echo $?)" = '2' ] || die 'invalid kind did not fail with exit code 2' +[ "$(nvm_get_download_slug iojs 2>&1)" = 'supported kinds: binary, source' ] || die 'invalid kind did not fail with expected message' + +nvm_get_os() { + echo omgOS +} +nvm_get_arch() { + echo nemesis +} + +ACTUAL="$(nvm_get_download_slug node binary 1.2.3)" +EXPECTED='node-1.2.3-omgOS-nemesis' +[ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<" +ACTUAL="$(nvm_get_download_slug iojs binary 1.2.3)" +EXPECTED='iojs-1.2.3-omgOS-nemesis' +[ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<" + +ACTUAL="$(nvm_get_download_slug node source 1.2.3)" +EXPECTED="node-1.2.3" +[ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<" +ACTUAL="$(nvm_get_download_slug iojs source 1.2.3)" +EXPECTED="iojs-1.2.3" +[ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<" + +nvm_get_arch() { + echo armv6l +} +ACTUAL="$(nvm_get_download_slug node binary 1.2.3)" +EXPECTED='node-1.2.3-omgOS-arm-pi' +[ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<" +ACTUAL="$(nvm_get_download_slug iojs binary 1.2.3)" +EXPECTED='iojs-1.2.3-omgOS-arm-pi' +[ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<" + +ACTUAL="$(nvm_get_download_slug node source 1.2.3)" +EXPECTED="node-1.2.3" +[ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<" +ACTUAL="$(nvm_get_download_slug iojs source 1.2.3)" +EXPECTED="iojs-1.2.3" +[ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<" + +nvm_get_arch() { + echo armv7l +} +ACTUAL="$(nvm_get_download_slug node binary 1.2.3)" +EXPECTED='node-1.2.3-omgOS-arm-pi' +[ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<" +ACTUAL="$(nvm_get_download_slug iojs binary 1.2.3)" +EXPECTED='iojs-1.2.3-omgOS-arm-pi' +[ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<" + +ACTUAL="$(nvm_get_download_slug node source 1.2.3)" +EXPECTED="node-1.2.3" +[ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<" +ACTUAL="$(nvm_get_download_slug iojs source 1.2.3)" +EXPECTED="iojs-1.2.3" +[ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<" + +nvm_get_os() { + echo darwin +} +nvm_get_arch() { + echo nemesis +} +ACTUAL="$(nvm_get_download_slug node binary 15.99.99)" +EXPECTED='node-15.99.99-darwin-nemesis' +[ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<" +ACTUAL="$(nvm_get_download_slug iojs binary 15.99.99)" +EXPECTED='iojs-15.99.99-darwin-nemesis' +[ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<" + +ACTUAL="$(nvm_get_download_slug node source 15.99.99)" +EXPECTED="node-15.99.99" +[ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<" +ACTUAL="$(nvm_get_download_slug iojs source 15.99.99)" +EXPECTED="iojs-15.99.99" +[ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<" + +nvm_get_arch() { + echo arm64 +} +ACTUAL="$(nvm_get_download_slug node binary 15.99.99)" +EXPECTED='node-15.99.99-darwin-x64' +[ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<" +ACTUAL="$(nvm_get_download_slug iojs binary 15.99.99)" +EXPECTED='iojs-15.99.99-darwin-x64' +[ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<" + +ACTUAL="$(nvm_get_download_slug node source 15.99.99)" +EXPECTED="node-15.99.99" +[ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<" +ACTUAL="$(nvm_get_download_slug iojs source 15.99.99)" +EXPECTED="iojs-15.99.99" +[ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<" + From 6cc90a4b8daa44ad3050828c2bf98fa77a16bf90 Mon Sep 17 00:00:00 2001 From: Varun Sharma Date: Mon, 22 Nov 2021 07:20:50 -0800 Subject: [PATCH 1426/1426] [actions] add step security runner --- .github/workflows/latest-npm.yml | 18 +++++++++++++++++ .github/workflows/lint.yml | 24 +++++++++++++++++++++++ .github/workflows/rebase.yml | 6 ++++++ .github/workflows/release.yml | 6 ++++++ .github/workflows/require-allow-edits.yml | 5 +++++ .github/workflows/shellcheck.yml | 13 ++++++++++++ .github/workflows/toc.yml | 6 ++++++ 7 files changed, 78 insertions(+) diff --git a/.github/workflows/latest-npm.yml b/.github/workflows/latest-npm.yml index b616158..b66c605 100644 --- a/.github/workflows/latest-npm.yml +++ b/.github/workflows/latest-npm.yml @@ -8,6 +8,12 @@ jobs: outputs: latest: ${{ steps.set-matrix.outputs.requireds }} steps: + - name: Harden Runner + uses: step-security/harden-runner@v1 + with: + allowed-endpoints: + iojs.org:443 + nodejs.org:443 - uses: ljharb/actions/node/matrix@main id: set-matrix with: @@ -39,6 +45,14 @@ jobs: - node-version: "0.10" steps: + - name: Harden Runner + uses: step-security/harden-runner@v1 + with: + allowed-endpoints: + github.com:443 + iojs.org:443 + nodejs.org:443 + registry.npmjs.org:443 - uses: actions/checkout@v2 - uses: ljharb/actions/node/install@main name: 'nvm install-latest-npm' @@ -55,4 +69,8 @@ jobs: needs: [nodes] runs-on: ubuntu-latest steps: + - name: Harden Runner + uses: step-security/harden-runner@v1 + with: + egress-policy: block - run: 'echo tests completed' diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 32f279d..62fc960 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -8,6 +8,12 @@ jobs: contents: read runs-on: ubuntu-latest steps: + - uses: step-security/harden-runner@v1 + with: + allowed-endpoints: + github.com:443 + nodejs.org:443 + registry.npmjs.org:443 - uses: actions/checkout@v2 - uses: ljharb/actions/node/install@main name: 'nvm install ${{ matrix.node-version }} && npm install' @@ -20,6 +26,14 @@ jobs: contents: read runs-on: ubuntu-latest steps: + - uses: step-security/harden-runner@v1 + with: + allowed-endpoints: + ghcr.io:443 + github.com:443 + pkg-containers.githubusercontent.com:443 + nodejs.org:443 + registry.npmjs.org:443 - uses: actions/checkout@v2 - uses: ljharb/actions/node/install@main name: 'nvm install ${{ matrix.node-version }} && npm install' @@ -32,6 +46,12 @@ jobs: contents: read runs-on: ubuntu-latest steps: + - uses: step-security/harden-runner@v1 + with: + allowed-endpoints: + github.com:443 + nodejs.org:443 + registry.npmjs.org:443 - uses: actions/checkout@v2 - uses: ljharb/actions/node/install@main name: 'nvm install ${{ matrix.node-version }} && npm install' @@ -44,6 +64,10 @@ jobs: contents: read runs-on: ubuntu-latest steps: + - uses: step-security/harden-runner@v1 + with: + allowed-endpoints: + github.com:443 - uses: actions/checkout@v2 - name: check tests filenames run: ./rename_test.sh --check diff --git a/.github/workflows/rebase.yml b/.github/workflows/rebase.yml index e97e6a9..9f48710 100644 --- a/.github/workflows/rebase.yml +++ b/.github/workflows/rebase.yml @@ -11,6 +11,12 @@ jobs: runs-on: ubuntu-latest steps: + - name: Harden Runner + uses: step-security/harden-runner@v1 + with: + allowed-endpoints: + api.github.com:443 + github.com:443 - uses: actions/checkout@v2 - uses: ljharb/rebase@master env: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index dfd9969..52c133d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -8,6 +8,12 @@ jobs: contents: read runs-on: ubuntu-latest steps: + - name: Harden Runner + uses: step-security/harden-runner@v1 + with: + allowed-endpoints: + github.com:443 + registry.npmjs.org:443 - uses: actions/checkout@v2 - uses: actions/setup-node@v2 with: diff --git a/.github/workflows/require-allow-edits.yml b/.github/workflows/require-allow-edits.yml index b92dcd5..427eecb 100644 --- a/.github/workflows/require-allow-edits.yml +++ b/.github/workflows/require-allow-edits.yml @@ -11,6 +11,11 @@ jobs: runs-on: ubuntu-latest steps: + - name: Harden Runner + uses: step-security/harden-runner@v1 + with: + allowed-endpoints: + api.github.com:443 - uses: ljharb/require-allow-edits@main env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml index 7b375a8..aafcb7f 100644 --- a/.github/workflows/shellcheck.yml +++ b/.github/workflows/shellcheck.yml @@ -26,9 +26,18 @@ jobs: file: nvm-exec # only runs in bash steps: + - name: Harden Runner + uses: step-security/harden-runner@v1 + with: + allowed-endpoints: + ghcr.io:443 + github.com:443 + pkg-containers.githubusercontent.com:443 - uses: actions/checkout@v2 - name: Install shellcheck run: brew install shellcheck + env: + HOMEBREW_NO_ANALYTICS: 1 - run: "shellcheck --version" - name: Run shellcheck on ${{ matrix.file }} run: shellcheck -s ${{ matrix.shell }} ${{ matrix.file }} @@ -39,4 +48,8 @@ jobs: needs: [shellcheck_matrix] runs-on: ubuntu-latest steps: + - name: Harden Runner + uses: step-security/harden-runner@v1 + with: + egress-policy: block - run: 'echo tests completed' diff --git a/.github/workflows/toc.yml b/.github/workflows/toc.yml index 60ed577..6a0fa6d 100644 --- a/.github/workflows/toc.yml +++ b/.github/workflows/toc.yml @@ -11,6 +11,12 @@ jobs: runs-on: ubuntu-latest steps: + - name: Harden Runner + uses: step-security/harden-runner@v1 + with: + allowed-endpoints: + github.com:443 + registry.npmjs.org:443 - uses: actions/checkout@v2 with: # https://github.com/actions/checkout/issues/217#issue-599945005