Compare commits

..

218 Commits

Author SHA1 Message Date
Jordan Harband
011810e721 v0.35.0 2019-10-02 00:05:28 -04:00
Darío Hereñú
d48abff659 [Docs] clean up formatting in readme 2019-05-03 19:44:21 -03:00
Darío Hereñú
82037b41b1 [Docs] clean up a bit 2017-10-06 01:54:07 -03:00
Roman Isko
7b0a46eafb [docker] add libssl-dev to Docker image 2018-06-18 10:33:12 +03:00
Roman Isko
dcbecbf2c7 [shellcheck] install shellcheck v0.6.0 in Dockerfile 2018-06-14 10:45:01 +03:00
metasean
970cadf258 [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
2018-12-30 18:24:29 -07:00
Will Papper
3cc9525dce [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.
2019-04-24 00:03:01 -07:00
Greg Smith
6537c91eb5 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`.
2019-08-09 14:38:37 -06:00
Jordan Harband
07b20d5008 [meta] add copyright line to license file 2019-07-17 10:48:23 -07:00
Sehrope Sarkuni
0b5bb5ccd8 [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.
2019-05-14 08:31:24 -04:00
Bastian Fuchs
45c1b84794 [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.
2019-04-28 12:51:15 +02:00
Alfred Myers
3664744e3b Updated note about Windows
There's a lot of old info around the interwebs.
Much stating nvm doesn't work in WSL.
2019-05-02 12:20:17 -03:00
Jordan Harband
ee9e56582e [Tests] jspm v2 beta started breaking tests; pin to < v2 2019-05-04 13:34:16 -07:00
Jordan Harband
e7a5b7992b [meta] update repo links to point to org 2019-04-24 16:08:34 -07:00
Daniel Li
ff77ac17af [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`
2019-03-12 16:43:08 +00:00
Christopher Sahnwaldt
2410215b6a [Refactor] add nvm_stdout_is_terminal helper 2019-02-24 00:03:19 +01:00
Christopher Sahnwaldt
a1abfd1fe4 [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
2019-02-27 10:50:59 +01:00
Jordan Harband
43402df896 [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.
2019-02-26 16:53:36 -08:00
Eric Lewis
1ede50cbae [Docs] Add note about what version of node new shells run with.
Fixes #2000
2019-02-22 10:04:13 -05:00
Jordan Harband
e0d87528f3 [shellcheck] remove unnecessary overrides 2019-02-24 23:04:13 -08:00
Refael Ackermann
924a175bd8 [Tests] update dist from trusty to xenial 2019-02-25 15:02:15 -05:00
Jordan Harband
9daf26f0a0 [Tests] nvm_command_info: make error output more helpful 2019-02-25 13:17:10 -08:00
Jordan Harband
226487d358 [Fix] install: error out when an argument has ---
Fixes #1915.
2019-02-25 00:13:50 -08:00
Jordan Harband
216c24fba0 [Docs] --help: consolidate some help output 2019-02-24 22:57:06 -08:00
Christopher Sahnwaldt
930507dbbc [Docs] README.md: mention --no-colors option 2019-02-23 09:53:56 +01:00
Jordan Harband
4c8ced736d [Docs] nvm --help: add --no-colors and --no-alias 2019-02-24 00:04:40 -08:00
Jarvis Mercer - Amir Mohammad Safari (AMSL)
1f7f0c2d81 [Docs] add version number to nvm —help output 2019-01-27 04:13:12 +03:30
Jarvis Mercer - Amir Mohammad Safari (AMSL)
41eb40821b [Docs] add “update” terminology to installation section 2019-01-26 01:00:43 +03:30
Jordan Harband
c6740f5a6e [New] nvm ls: add --no-alias to suppress alias output
Per https://github.com/creationix/nvm/issues/1792#issuecomment-466696504
2019-02-23 22:41:46 -08:00
Jordan Harband
04fdb2331b [Tests] nvm ls: ensure nvm alias is called 2019-02-23 22:22:18 -08:00
Jordan Harband
58d0933f72 [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.
2019-02-23 22:21:46 -08:00
Jordan Harband
2a5d2c06ff [Tests] add more checks to make_fake_* helpers 2019-02-23 15:24:02 -08:00
Jordan Harband
2a513a1bc0 [Fix] nvm_ls: Reverts #1462 to fix io.js sorting.
<details>
<summary>Before this revert:</summary>

```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
```
</details>

<details>
<summary>After this revert:</summary>

```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
```
</details>

In other words, the sorting needs to happen *before* the `NVM_NODE_PREFIX` is removed.
2019-02-23 15:02:31 -08:00
Jordan Harband
48196d2436 [Tests] fix fake node versions 2019-02-23 14:47:49 -08:00
Jordan Harband
7f9220dbd8 [Fix] nvm ls: --no-colors: system: print an asterisk 2019-02-23 14:41:57 -08:00
jjangga0214
890fbb5581 Update README: sync node release schedule url 2019-02-15 11:11:01 +09:00
Jordan Harband
e1bb44f712 [shellcheck] add overrides 2019-02-04 14:45:04 -08:00
Jordan Harband
db19450caa [Fix] default_packages: work when the file lacks a trailing newline
Fixes #1995.
2019-02-02 13:45:11 -08:00
Jordan Harband
5c117e6ab3 [Refactor] extract “get default packages” logic to nvm_get_default_packages 2019-02-01 13:27:18 -08:00
Lucas Kellner
02997b0753 [Docs] unalias: add more specific error message for builtin aliases 2019-01-23 16:39:57 -08:00
Peter Dave Hello
cc0750eb5d [Fix] install: Add missing io.js installation message
Fixes #1988
2019-01-22 15:46:29 +08:00
Peter Dave Hello
7e715d5c73 [Tests] Improve syntax in "test/installation_iojs/nvm install v1 works" 2019-01-23 03:10:03 +08:00
Jordan Harband
66d2909650 Merge pull request #1986 from Sayegh7/master
[Fix] Make installation less restrictive when NVM_DIR is set
2019-01-22 10:50:10 -08:00
Jordan Harband
a56c6f1485 tweak logic 2019-01-21 21:58:43 -08:00
Ahmed El Sayegh
703babe60a [Fix] Make installation less restrictive when NVM_DIR is set 2019-01-21 02:15:02 +02:00
Peter Dave Hello
10f24d6d4b [Refactor] nvm.sh: make coding style more consistent 2018-05-22 20:57:40 +08:00
Peter Dave Hello
e367533eb8 [Refactor] Reduce one more sed & pipe to speedup 2017-03-28 23:15:35 +08:00
Peter Dave Hello
6534568745 [Fix] Enhance nvm debug for different environments 2019-01-12 14:17:01 +08:00
Waldir Pimenta
13f3cdcdf7 README: clarify how to specify default packages 2019-01-11 10:42:33 +00:00
Jordan Harband
3d9c31d944 v0.34.0 2019-01-07 23:01:16 -08:00
Jordan Harband
0acccb8a77 Merge pull request #1974 from valeriemettler/valeriemettler-patch-1
[Docs] Improve phrasing of 'nvm current'
2019-01-05 14:10:31 -08:00
Valerie Mettler
6354b170d7 Improve phrasing of 'nvm current'
To help beginners know that 'nvm current' is talking about node and not nvm.
2019-01-05 12:20:56 -08:00
Javier Infante
5e065ec026 [Docs] fixing cdnvm on .bashrc 2018-12-31 08:42:58 +01:00
Peter Dave Hello
206d503a21 [Docs] Improve indent of output block in GitHub Issue template 2018-12-26 03:46:13 +08:00
Jordan Harband
deb2a9b821 [Docs] fix eclint 2018-12-19 15:36:24 -08:00
Joel Parker Henderson
fb83eeb140 [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.
2018-12-19 12:45:59 -08:00
Peter Dave Hello
14179bc8ce [shellcheck] Use -n/-z instead of ! -z/! -n condition
https://github.com/koalaman/shellcheck/wiki/SC2236
2018-12-03 13:59:19 +08:00
Jordan Harband
153506c8da [shellcheck] ignore SC2230 errors 2018-11-25 16:22:25 -08:00
Jordan Harband
c1150c41ab [Tests] avoid using shopt in zsh 2018-11-26 11:18:11 -08:00
Jordan Harband
ad1110ef1a [Tests] print out shellcheck version 2018-11-25 23:56:19 -08:00
Jordan Harband
914c220586 Merge pull request #1947 from PeterDaveHello/Enable-ccache-on-TravisCI
[Tests] Enable ccache on Travis CI to speed up compilation
2018-11-24 23:18:23 -06:00
Peter Dave Hello
22d32bede0 [New] Enable ccache on Travis CI to speed up compilation 2018-11-22 13:58:26 +08:00
Jordan Harband
a49d9163ef [Fix] avoid unbound variable
Fixes #1949.
2018-11-21 21:25:20 -06:00
Alexander Groß
17586b971a [Fix] Allow zsh users to have the nomatch option set
Closes #1937.
2018-11-08 00:55:52 +01:00
Peter Dave Hello
f3fd5eff46 [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
2018-07-15 02:26:05 +08:00
Kayla Altepeter
423252a99c [docs] update README to fix docker run command flag order 2018-10-18 22:30:05 -05:00
Ole Johan Andersen
2a294ebd61 [Docs] improve instructions for manual install 2018-10-24 19:49:55 +02:00
Jordan Harband
a08d1ea4a3 Merge pull request #1865 from d4nyll/master
[Docs] Add section on automatic `nvm use` in Bash

Replaces #1108 and #1677. Closes #1678.
2018-11-05 16:10:15 -08:00
Fábio Antunes
217a5bb0de [Docs] Added fish nvm 2018-10-21 23:31:20 -07:00
Paul Nickerson
caf6208dbd install.sh: Print an error and exit the script if $METHOD is set to something unexpected. 2018-10-02 13:46:26 -04:00
Nathan Burchill
0c2efed407 [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.
2018-09-18 16:15:35 -04:00
et304383
2d97ce5f7b [Docs] add instructions for installing a specific version 2018-08-27 11:50:48 -03:00
Erik Lilja
8542df4ac5 [New] add support for $XDG_CONFIG_HOME 2018-08-14 21:45:40 +02:00
Jordan Harband
f218a85454 [Tests] eslint 5.5+ seems to not install on node 0.10 2018-09-09 14:56:17 -07:00
Jordan Harband
96ebed37c7 Merge pull request #1863 from PeterDaveHello/ImproveDockerfile
Improve Dockerfile
2018-08-23 09:13:47 -07:00
Jordan Harband
e7a37f336d [Tests] fix failing tests on master due to npm registry SSL changes 2018-08-15 15:01:47 -07:00
Daniel Li
e06f735776 Improve Bash alias
This will take into account nested directories inside your main project
directory
2018-07-26 16:13:07 +01:00
Daniel Li
355c4c7915 [Docs] Add section on automatic nvm use in Bash 2018-07-15 19:08:15 +01:00
Peter Dave Hello
4bd99bcfa2 [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.
2018-07-12 18:38:15 +08:00
Peter Dave Hello
5f9ccaada0 [Dockerfile] Set the SHELL to bash with pipefail option 2018-07-12 18:38:15 +08:00
Peter Dave Hello
7ff20855a2 [Tests] Integrate dockerfile_lint to test Dockerfile 2018-07-12 18:38:14 +08:00
Peter Dave Hello
cdde74a55d [Dockerfile] install missing eclint package 2018-07-12 18:37:40 +08:00
Jordan Harband
17c33fd9ae Merge pull request #1861 from PeterDaveHello/ImproveDockerfile
Improve and update Dockerfile
2018-07-11 12:15:25 -07:00
Peter Dave Hello
04b35b5440 [Dockerfile] Use arguments JSON notation for ENTRYPOINT 2018-07-11 15:17:27 +08:00
Peter Dave Hello
aacb0b9b97 [Dockerfile] Fix command From to be FROM 2018-07-11 15:17:27 +08:00
Peter Dave Hello
f121e5ace0 [Dockerfile] Add missing quotes for variables 2018-07-11 15:17:18 +08:00
Peter Dave Hello
af8038ffec [Dockerfile] Update ShellCheck version to v0.5.0 2018-07-11 15:14:00 +08:00
Peter Dave Hello
265ec90532 [Dockerfile] Add missing name & version LABEL 2018-07-11 15:14:00 +08:00
Peter Dave Hello
e2195b4c35 [Dockerfile] Use LABEL instead of deprecated MAINTAINER command 2018-07-11 15:13:57 +08:00
JBallin
41dc4218b9 [Docs] add --no-use option to installation 2018-06-17 21:31:56 -07:00
Xandor Schiefer
90cfb5d771 [Fix] use: Prepend instead of changing if shadowed by system dirs (fixes #1652) 2018-06-08 15:23:02 +02:00
Joshua Li
0cdc184168 [Fix] Improve nvm_is_version_installed to check for a node executable instead of root dir 2018-05-31 15:26:30 -07:00
Joshua Li
a5f42d9cea [Tests] update most mkdirs to use make_fake_{node,iojs} 2018-06-13 10:38:19 -07:00
Xandor Schiefer
eabd7ab13d Respect previously nvm-loaded node version when sourcing 2016-11-14 19:18:24 +02:00
Jordan Harband
b111436fde [Tests] test nvm install-latest-npm on io.js v2 2018-06-06 22:49:56 -07:00
Spike Grobstein
9854928ba9 [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`.
2018-05-03 08:22:07 -07:00
Jordan Harband
c50ea6f0a3 [shellcheck] quote variables in for loops to avoid unintentional expansion 2018-05-31 23:56:20 -07:00
Jordan Harband
628d4fac84 [shellcheck] use { …; } instead of (…) to group test commands 2018-05-31 23:49:15 -07:00
Jordan Harband
ef35bc4cb6 Merge pull request #1823 from SrHuevo/master
fix for .nvmrc script
2018-05-30 20:08:07 -04:00
SrHuevo
d08d8607f5 fix for .nvmrc script 2018-05-30 09:02:29 +02:00
Jay Williams
e7b53a01fd Grammar update 2018-05-26 23:17:08 +01:00
Siddharth Sakhadeo
b81c120e0c fix failing if check in autoload script 2018-05-25 15:33:42 -07:00
Jordan Harband
57ec311f53 [Fix] ls-remote: fix issues in zsh when using a mirror with a ton of entries
Merge pull request #1818 from adedomin/master
2018-05-24 14:08:20 -04:00
Jordan Harband
38b32c27f3 [Tests] update mock data 2018-05-23 23:48:50 -04:00
adedomin
7a5ff0d133 [Fix] ls-remote: fix issues in zsh when using a mirror with a ton of entries
Fixes #1813
2018-05-23 19:47:11 -04:00
Jordan Harband
f5f029c409 [Fix] “unstable” alias: when there’s no “unstable” minors, output “N/A” 2018-05-24 12:23:02 -04:00
Jordan Harband
c465a83518 [Tests] nvm ls-remote: add test for overly-large tab file 2018-05-23 23:48:04 -04:00
Peter Dave Hello
62ee7cf998 [Refactor] bash_completion: Improve coding style 2018-05-21 19:59:01 +08:00
Peter Dave Hello
113d807e5a [New] Support --no-progress for nvm install
Closes #1079.
2017-03-10 01:07:16 +08:00
Jordan Harband
3fc7b737f5 [Fix] install -s: zsh: ensure shwordsplit opt is set
Fixes #1719.
2018-04-29 15:35:39 -07:00
Josh Sleeper
04c27e23fe add --tags to git fetch in manual upgrade
facilitates older `git` fetching tags so that it can actually upgrade properly
2018-04-25 14:55:31 -07:00
Jordan Harband
592c0be195 Merge tag 'v0.33.11'
v0.33.11

Fixes
 - `nvm install-latest-npm`: node v4.5 and v4.6 work on npm v5.4.1, but not v5.4.2
2018-04-25 13:26:19 -07:00
Jordan Harband
93990ab7da v0.33.11 2018-04-25 13:25:35 -07:00
Jordan Harband
61c7b133f8 [Fix] nvm install-latest-npm: node v4.5 and v4.6 work on npm v5.4.1, but not v5.4.2 2018-04-25 13:25:28 -07:00
Jordan Harband
eb0a8442d8 [Fix] nvm install-latest-npm: node v4.5 and v4.6 work on npm v5.4.1, but not v5.4.2 2018-04-25 10:08:41 -07:00
Jordan Harband
a26ab88478 [Tests] fix nvm install-latest-npm tests to fail properly 2018-04-24 22:23:44 -07:00
Jordan Harband
1f2a3234d2 [Tests] add nvm install-latest-npm tests for all node versions 2018-04-24 22:23:44 -07:00
Jordan Harband
34e1ec800e Merge tag 'v0.33.10'
v0.33.10

Fixes
 - `install-latest-npm`: npm 6 is out, and requires node 6 or higher
2018-04-24 22:09:27 -07:00
Jordan Harband
177a9673a7 v0.33.10 2018-04-24 22:08:51 -07:00
Jordan Harband
db98f8cdaf [Fix] install-latest-npm: npm 6 is out, and requires node 6 or higher 2018-04-24 22:08:16 -07:00
Jordan Harband
c983fefbae Merge pull request #1734 from PeterDaveHello/improve-NVM_DIR-handling
[Fix] Remove $NVM_DIR trailing slash automatically
2018-04-24 16:22:42 -07:00
Jordan Harband
42f11acce1 [Fix] install-latest-npm: npm 6 is out, and requires node 6 or higher 2018-04-24 14:39:46 -07:00
Jordan Harband
09f7bbb78c [Refactor] use a different approach to remove trailing slashes 2018-04-24 13:24:08 -07:00
Peter Dave Hello
d5dacdf80f [Fix] nvm debug: Fix sed syntax error in nvm_command_info() 2018-04-17 18:09:47 +08:00
Peter Dave Hello
d3a9272a0c [Refactor] Speedup nvm_list_aliases() 2018-04-18 17:03:47 +08:00
Jordan Harband
1b14e6b4d9 v0.33.9 2018-04-14 22:38:18 -07:00
Jordan Harband
f060867f15 Merge pull request #1739 from PeterDaveHello/add-editorconfig
[New] Add EditorConfig to help maintain part of coding style
2018-04-14 22:36:25 -07:00
Jordan Harband
0da699605e [eclint] only check non-ignored files 2018-04-14 22:12:22 -07:00
Peter Dave Hello
d9dc8464fd [Doc] Add macOS install script note about Git
Closes #1782
2018-04-13 01:14:39 +08:00
Peter Dave Hello
685312d600 [Fix] Remove $NVM_DIR trailing slash automatically, fix #1708 2018-04-12 14:14:58 +08:00
Peter Dave Hello
0731003cfe [New] Integrate eclint to test partial coding style 2018-02-26 02:29:38 +08:00
Peter Dave Hello
ca66a13710 nvm debug: Improve OS version detection 2018-02-24 02:53:40 +08:00
Peter Dave Hello
8ff437ae51 [Doc] Fix manual install & upgrade guide, fix #1772 2018-04-12 23:58:30 +08:00
Peter Dave Hello
b15709e637 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
2018-04-12 23:44:27 +08:00
Brian M. Jemilo II
8b71861d06 [Fix] install.sh: Detect profile with $BASH_VERSION and $ZSH_VERSION
Using `$(basename "/$SHELL")` to detect the shell would also choose bash on mac
2018-04-09 15:13:02 -05:00
Brian M. Jemilo II
68fe26a5e4 [Fix] Add autocompletion support to zsh
Fixes #1707.
2018-04-09 14:54:28 -05:00
Peter Dave Hello
37e0977e60 install.sh: Improve install.sh prompt output, add a newline 2018-04-10 15:53:33 +08:00
Jordan Harband
918a39a0d0 [Tests] update mocks 2018-04-09 23:29:37 -07:00
Jordan Harband
52f1b24895 [Tests] fix mirrors in mocks update script 2018-04-09 23:28:17 -07:00
Jordan Harband
74ff70aab3 [Fix] installing with an LTS name should lowercase the name before ensuring a default
Fixes #1781.
2018-04-09 23:23:27 -07:00
Ed Reel
663bddee9b [docs] Add removal instructions to README.md
Closes #1767.
2018-04-09 10:36:54 -05:00
Guy Lepage
bc87d3dd1c removed global install on README.md. closes #1773 2018-04-04 19:03:03 -04:00
easyaspi314 (Devin)
d8689f6b9a bash_completion: Reduce startup time 2018-03-12 10:41:05 -04:00
Jordan Harband
0e3bb2cc47 [Fix] ensure --reinstall-packages-from has a version number.
Fixes #1760.
2018-03-14 00:13:07 -07:00
Peter Dave Hello
2850e65b62 [Docs] Fix some typos 2018-03-03 21:18:42 +08:00
Josh Soref
2859a19bbd [Docs] fix spelling 2018-03-06 04:38:01 +00:00
Peter Dave Hello
d6fa67166c [Fix] reinstall-packages: Prevent install/link when no packages found
Fixes #1744.
2018-02-27 14:05:33 +08:00
Peter Dave Hello
25b7f264d5 [Fix] Use nvm_echo instead of echo directly 2018-02-28 02:16:24 +08:00
Jordan Harband
5fc8bd950d Fix whitespace 2018-02-25 13:34:28 -08:00
Peter Dave Hello
750571056c [Fix] Correct most of the wrong indentation 2018-02-26 02:20:21 +08:00
Peter Dave Hello
544c3f4caa [New] Add EditorConfig to help maintain part of coding style 2018-02-21 01:26:02 +08:00
Peter Dave Hello
e7b42198b4 [Fix] Improve .nvmrc reading process
Fixes #1015. Fixes #1712.
2018-02-20 03:34:43 +08:00
Peter Dave Hello
5f53caadad [Refactor] Use grep -q parameter instead of redirect to /dev/null 2018-02-03 11:29:31 +08:00
Peter Dave Hello
9c42470347 [New] Add "$PATH" to nvm debug output 2018-02-06 08:17:20 +08:00
Peter Dave Hello
9f34b3e95c Remove trailing space 2018-02-26 01:03:01 +08:00
Peter Dave Hello
41ec44f6b5 Add missing final newline in test script 2018-02-26 01:02:41 +08:00
Peter Dave Hello
2cd2c0f72e Remove useless trailing newlines 2018-02-26 01:01:30 +08:00
Peter Dave Hello
f3076d14c9 [Fix] Add missing "command" prefixes for few commands 2018-02-20 04:05:47 +08:00
Peter Dave Hello
bb803492d8 Remove duplicate code in nvm_npm_global_modules()
No matter what's the result of the condition here, the path is the same.
2018-02-22 09:43:09 +08:00
Peter Dave Hello
f290ccf1d5 [Fix] Add missing "command" prefix for "tr", fix #1725 2018-02-19 13:59:26 +08:00
Peter Dave Hello
225e447b54 [Doc] Update Docker image build info in README.md 2018-02-19 00:27:04 +08:00
Peter Dave Hello
77da9f5a6d 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.
2018-01-18 00:33:41 +08:00
Peter Dave Hello
3ed47431f8 [New] Print $SHLVL in nvm debug 2017-11-05 03:25:04 +08:00
Peter Dave Hello
aad269d224 Display FreeBSD and SunOS with correct caps 2018-02-12 02:15:01 +08:00
Christoph Krautz
74f455e610 [Docs] Add reminder that NVM_DIR should not contain trailing slash, fix for #1708 2018-02-09 11:51:46 +01:00
Karthik K
f5b5f2d41d [copyright] year to 2010 obsoleting future updations 2018-01-26 12:20:13 +05:30
Peter Dave Hello
a23f7169a6 [Fix] Correct nvm.sh indent 2018-01-26 11:30:57 +08:00
Jordan Harband
71032cfaa1 [Tests] update to latest npm in this test 2018-02-08 22:53:41 -08:00
Jordan Harband
6dd9ecb607 [Docs] add nvm which current to nvm --help output 2018-01-16 16:55:50 -08:00
Yannick Ihmels
7ca8acc98d [Docs] [Tests] Add escape sequences; add test for aliased . 2018-01-13 21:25:30 +01:00
Paul Norman
d34bb3247d install.sh: Don't give detached HEAD advice when installing 2018-01-10 13:21:27 -08:00
Jordan Harband
3e81904525 Update minimum git version to v1.17.10
Per https://github.com/creationix/nvm/pull/1704#discussion_r161366186
2018-01-12 23:24:56 -08:00
Jordan Harband
7cba6cd6d0 install.sh: detect a defined but nonexistent $NVM_DIR
(ref: #1700)
2018-01-06 09:34:11 -08:00
p-salido
9273f23bc8 [Docs] Explain .nvmrc better 2017-11-23 23:09:44 -05:00
Jordan Harband
2a259435c8 Merge pull request #1684 from PeterDaveHello/ShellCheck-v0.4.7-fixes
ShellCheck v0.4.7 fixes
2017-12-13 14:49:34 -08:00
Peter Dave Hello
2a8a81da94 [Fix] ShellCheck SC1117 in nvm.sh & install.sh 2017-12-14 03:26:17 +08:00
Peter Dave Hello
fce7f4ed13 [Fix] Disable ShellCheck SC2207 in bash_completion line 14 2017-12-14 02:11:50 +08:00
Jordan Harband
7ad6d98ced v0.33.8 2017-12-12 10:43:17 -08:00
Jordan Harband
fa9c50520d [Fix] nvm install-latest-npm: fix for node 4.5/4.6. 2017-12-12 00:13:00 -08:00
Jordan Harband
4846d57c69 nvm use: perfect pre-npm-config env var checking 2017-12-05 00:00:18 -08:00
Jordan Harband
65f0572bdc 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)
2017-12-08 21:21:42 -08:00
Jordan Harband
b6a7a54d04 [Fix] nvm install-latest-npm: fix node 4-4.6 2017-12-08 21:20:59 -08:00
Jordan Harband
8a8dcbb393 Merge pull request #1676 from Quadric/fix-node-version-in-install-script
`install.sh`: Fix a bug that block that installation of node in install.sh
2017-12-03 11:47:39 -08:00
Ahmad Magdy
bacdd95591 Update test/install_script/nvm_install_with_node_version to use nvm ls 8 instead of grep! 2017-11-30 15:33:01 +01:00
Ahmad Magdy
4b0563093c Add test nvm_install_with_node_version under test/install_script 2017-11-30 15:23:37 +01:00
Ahmad Magdy
c7ac69bfbb Fix nvm_install_node function in install.sh script to not override the actual NODE_VERSION value 2017-11-30 14:47:42 +01:00
Jordan Harband
a57fe846e8 [Fix] set -u: ensure NVM_USE_OUTPUT is always set.
Fixes #1671.
2017-11-23 10:02:37 -06:00
Jordan Harband
7bfd1e0644 Merge pull request #1669 from mail6543210/master
Fix for $path used by zsh
2017-11-22 08:52:13 -08:00
mail6543210
9352f6913a Add symbolic link for printf in case of command-not-found 2017-11-22 02:01:38 +08:00
mail6543210
16d3e6d2dc Remove unnecessary, incorrect workaround.
The "\printf" calls zsh shell builtin instead of `command printf` in scripting.

The workaround is no longer needed given 91a29c0.
2017-11-22 00:57:27 +08:00
mail6543210
91a29c0da2 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
2017-11-20 22:32:13 +08:00
Jordan Harband
4b48556e92 Merge pull request #1665 from norpol/fix_issue_1664_unassigned_variable_20171115
Fix #1664: unassigned variable
2017-11-17 23:31:26 -06:00
Phileas Lebada
be171bba33 Add unset-variable as exit error 2017-11-15 17:19:05 +01:00
Phileas Lebada
049a86022f Add empty value to local variable 2017-11-15 17:17:57 +01:00
David Gatti
a7b7eec0c5 [Docs] Added missing piece
This sentence broke my brain when I read it the first time :) I hope this helps.
2017-11-08 01:02:15 +01:00
Jordan Harband
9953a52afb Merge pull request #1644 from citrusui/patch-1
[Docs] Make `nvm cache clear` message less ambiguous
2017-10-28 22:42:14 -07:00
Avery Magnotti
fc30e0ade4 Make nvm cache clear message less ambiguous 2017-10-28 20:30:28 -04:00
Jordan Harband
b546436113 v0.33.6 2017-10-23 23:53:26 -07:00
Darío Hereñú
016bc134d5 Typo 2017-10-23 02:23:04 -03:00
Peter Dave Hello
9c25a8f316 [Cleanup] Remove ghc related things in .travis.yml, cc #1619 2017-10-22 00:42:07 +08:00
Christopher Beland
a954458829 [Docs] Improve git installation instructions 2017-10-18 10:39:11 -04:00
Jordan Harband
09951b49c5 Only apps should have lockfiles 2017-10-05 13:34:54 -07:00
Jordan Harband
3b133fac2f [Fix] install-latest-npm: npm v5.4+ breaks on node v4.5 and v4.6. 2017-10-04 11:04:27 -07:00
Michał Gołębiowski-Owczarek
6ac8ebafba Add a Git .mailmap with my new name
In this way my past contributions are mapped correctly.
2017-10-04 12:55:41 +02:00
Jordan Harband
62fb0d0ad6 Merge pull request #1605 from PeterDaveHello/fix-install.sh
[Fix] install.sh shouldn't use not existed variable
2017-10-03 22:23:48 -07:00
Peter Dave Hello
a461a0fffc [Fix] install.sh shouldn't use not existed $NVM_PROFILE 2017-10-04 10:10:47 +08:00
Jordan Harband
6597e11971 v0.33.5 2017-09-29 12:50:27 -04:00
Jordan Harband
707d268a76 Merge pull request #1619 from PeterDaveHello/refactor-travis-config
Remove the manual ShellCheck install proecss on Travis CI
2017-09-28 10:45:49 -07:00
Peter Dave Hello
73ad812215 Remove the manual ShellCheck install proecss on Travis CI 2017-09-29 00:22:43 +08:00
Jordan Harband
8c578b864d [Fix] ensure all grep calls go through nvm_grep.
Fixes #1615.
2017-09-22 19:11:43 -07:00
Peter Dave Hello
d535c97d0f Enhance nvm debug with more tools info 2017-09-21 22:09:15 +08:00
Xandor Schiefer
334897ae39 Preserve PATH locations order when changing versions 2016-11-14 19:19:39 +02:00
Jordan Harband
7b8af94fc9 [Tests] retry io.js test runs, since iojs.org is flaky. 2017-09-08 01:32:54 -07:00
Peter Dave Hello
7753b24948 [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
2017-09-07 18:00:08 +08:00
Xandor Schiefer
44ab611421 [Fix] unset NVM_RC_VERSION when unloading 2017-09-07 16:52:05 +02:00
Jordan Harband
c0b56d03a1 [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
2017-09-07 15:57:09 -07:00
Jordan Harband
d91b6197f3 v0.33.4 2017-09-04 22:59:50 -07:00
Jordan Harband
e3d1519567 [Fix] install-latest-npm: io.js v1.0.0 has weird behavior with npm v4.6.x. 2017-09-04 22:01:46 -07:00
152 changed files with 3759 additions and 1129 deletions

View File

@@ -14,4 +14,3 @@ npm-debug.log
.DS_Store
current

22
.editorconfig Normal file
View File

@@ -0,0 +1,22 @@
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
[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

1
.gitattributes vendored
View File

@@ -1,2 +1 @@
* eol=lf

View File

@@ -21,7 +21,7 @@
```
</details>
- 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?
@@ -37,5 +37,6 @@
<!-- do not delete the following blank line -->
```sh
```
</details>

8
.gitignore vendored
View File

@@ -1,3 +1,4 @@
# gitignore
HEAD
.cache
v*
@@ -14,4 +15,9 @@ npm-debug.log
.DS_Store
current
default-packages
/default-packages
# Only apps should have lockfiles
npm-shrinkwrap.json
package-lock.json
yarn.lock

1
.mailmap Normal file
View File

@@ -0,0 +1 @@
Michał Gołębiowski-Owczarek <m.goleb@gmail.com>

1
.npmrc Normal file
View File

@@ -0,0 +1 @@
package-lock=false

View File

@@ -1,49 +1,52 @@
language: generic
dist: trusty
dist: xenial
sudo: required
addons:
apt:
packages:
- cabal-install
- ghc
- zsh
# - ksh
# - gcc-4.8
# - g++-4.8
cache:
ccache: true
directories:
- $HOME/.npm
- $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
- shellcheck --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
- 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 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
- 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
- PATH="~/.cabal/bin/:$(echo $PATH | sed 's/::/:/')"
- CXX=g++
- CC=gcc
- PATH="$(echo $PATH | sed 's/::/:/')"
- PATH="/usr/lib/ccache/:$PATH"
- NVM_DIR="${TRAVIS_BUILD_DIR}"
matrix:
- MAKE_RELEASE=true
- 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
@@ -80,3 +83,15 @@ 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"
- NODE=2 TEST="nvm install-latest-npm"

View File

@@ -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.
@@ -17,4 +19,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!

View File

@@ -8,12 +8,20 @@
# 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 <hsu@peterdavehello.org>
FROM ubuntu:14.04
LABEL maintainer="Peter Dave Hello <hsu@peterdavehello.org>"
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
# ShellCheck version
ENV SHELLCHECK_VERSION=0.6.0
# Pick a Ubuntu apt mirror site for better speed
# ref: https://launchpad.net/ubuntu/+archivemirrors
ENV UBUNTU_APT_SITE ubuntu.cs.utah.edu
@@ -21,7 +29,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
@@ -34,6 +42,7 @@ RUN apt update && \
bsdutils \
file \
openssl \
libssl-dev \
ca-certificates \
ssh \
wget \
@@ -49,14 +58,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,38 +85,32 @@ 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
# 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
# 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
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 -g doctoc urchin eclint dockerfile_lint && \
npm install --prefix "$HOME/.nvm/"'
# Set WORKDIR to nvm directory
WORKDIR /home/nvm/.nvm
ENTRYPOINT /bin/bash
ENTRYPOINT ["/bin/bash"]

View File

@@ -1,6 +1,8 @@
The MIT License (MIT)
Copyright (c) 2010-2017 Tim Caswell
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
@@ -18,4 +20,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.

293
README.md
View File

@@ -1,11 +1,12 @@
# 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/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)
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
## 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)
- [Git install](#git-install)
@@ -18,8 +19,11 @@
- [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)
- [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)
@@ -28,37 +32,43 @@
- [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)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
## 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.33.3/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/creationix/nvm/v0.33.3/install.sh | bash
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.0/install.sh | bash
```
<sub>The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`).</sub>
<sub>**Note:** If the environment variable `$XDG_CONFIG_HOME` is present, it will place the `nvm` files there.</sub>
```sh
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads 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
```
**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=/usr/local/nvm bash` for a global install.
Eg: `curl ... | NVM_DIR="path/to/nvm"`. Ensure that the `NVM_DIR` does not contain a trailing slash.
<sub>*NB. The installer can use `git`, `curl`, or `wget` to download `nvm`, whatever is available.*</sub>
@@ -67,17 +77,32 @@ Eg: `curl ... | NVM_DIR=/usr/local/nvm bash` for a global install.
```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/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:-
- 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:
`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:
```
- name: nvm
shell: >
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.0/install.sh | bash
args:
creates: "{{ ansible_env.HOME }}/.nvm/nvm.sh"
```
### Verify installation
@@ -87,48 +112,54 @@ 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
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)), 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)
**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
- [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)
- [[#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:
- [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.
**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`
1. check out the latest version with `git checkout v0.33.3`
1. activate nvm by sourcing it from your shell
- `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. 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)
@@ -141,14 +172,14 @@ 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" && (
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]*" origin`
) && . "$NVM_DIR/nvm.sh"
git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1)`
) && \. "$NVM_DIR/nvm.sh"
```
Now add these lines to your `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it automatically sourced upon login:
@@ -156,12 +187,12 @@ 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
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
@@ -171,9 +202,9 @@ For manual upgrade with `git` (requires git v1.7+):
```sh
(
cd "$NVM_DIR"
git fetch origin
git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" origin`
) && . "$NVM_DIR/nvm.sh"
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"
```
## Usage
@@ -181,7 +212,21 @@ For manual upgrade with `git` (requires git v1.7+):
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
```
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
nvm ls-remote
```
And then in any new shell just use the installed version:
@@ -195,6 +240,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
@@ -212,10 +258,12 @@ 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:
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`
- `nvm use --lts` / `nvm use --lts=argon` / `nvm use 'lts/*'` / `nvm use lts/argon`
@@ -227,6 +275,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
@@ -242,9 +291,25 @@ 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 <your latest _working_ version from the ls>`, (2) delete the newly created node version (`nvm uninstall <your _broken_ version of node from the ls>`), 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. 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
@@ -255,6 +320,7 @@ stevemao/left-pad
```
### io.js
If you want to install [io.js](https://github.com/iojs/io.js/):
```sh
@@ -267,9 +333,10 @@ 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
If you want to use the system-installed version of node, you can use the special default alias "system":
```sh
@@ -278,6 +345,7 @@ nvm run system --version
```
### Listing versions
If you want to see what versions are installed:
```sh
@@ -290,6 +358,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
@@ -324,15 +401,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.
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,12 +422,78 @@ 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 `<version>` (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).
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
find-up () {
path=$(pwd)
while [[ "$path" != "" && ! -e "$path/$1" ]]; do
path=${path%/*}
done
echo "$path"
}
cdnvm(){
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)
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 "$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
if [[ "$locally_resolved_nvm_version" == "N/A" ]]; then
nvm install "$nvm_version";
elif [[ $(nvm current) != "$locally_resolved_nvm_version" ]]; then
nvm use "$nvm_version";
fi
fi
}
alias cd='cdnvm'
```
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
##### Calling `nvm use` automatically in a directory with a `.nvmrc` file
@@ -385,7 +530,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:
@@ -394,6 +539,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
@@ -420,7 +566,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`).
@@ -429,6 +575,7 @@ Put the above sourcing line just below the sourcing line for nvm in your profile
nvm:
> $ nvm <kbd>Tab</kbd>
```
alias deactivate install ls run unload
clear-cache exec list ls-remote unalias use
@@ -437,63 +584,92 @@ current help list-remote reinstall-packages
nvm alias:
> $ nvm alias <kbd>Tab</kbd>
```
default
```
> $ nvm alias my_alias <kbd>Tab</kbd>
```
v0.6.21 v0.8.26 v0.10.28
```
nvm use:
> $ nvm use <kbd>Tab</kbd>
```
my_alias default v0.6.21 v0.8.26 v0.10.28
```
nvm uninstall:
> $ nvm uninstall <kbd>Tab</kbd>
```
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.
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.
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
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.3/install.sh | bash
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
```
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).
## 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:
@@ -502,36 +678,37 @@ 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
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:
```sh
$ docker run -it nvm-dev -h nvm-dev
$ docker run -h nvm-dev -it 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 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/
## 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.
- 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:
@@ -539,7 +716,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"
@@ -553,9 +730,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.33.3/install.sh
[3]: https://travis-ci.org/creationix/nvm
[4]: https://github.com/creationix/nvm/releases/tag/v0.33.3
[1]: https://github.com/nvm-sh/nvm.git
[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.35.0
[Urchin]: https://github.com/scraperwiki/urchin
[Fish]: http://fishshell.com

View File

@@ -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 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
- [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

View File

@@ -2,20 +2,19 @@
# bash completion for Node Version Manager (NVM)
if ! nvm &> /dev/null; then
if ! command -v nvm &> /dev/null; then
return
fi
__nvm_generate_completion()
{
__nvm_generate_completion() {
declare current_word
current_word="${COMP_WORDS[COMP_CWORD]}"
COMPREPLY=($(compgen -W "$1" -- "$current_word"))
# shellcheck disable=SC2207
COMPREPLY=($(compgen -W "$1" -- "${current_word}"))
return 0
}
__nvm_commands ()
{
__nvm_commands() {
declare current_word
declare command
@@ -40,44 +39,39 @@ __nvm_commands ()
case "${current_word}" in
-*) __nvm_options ;;
*) __nvm_generate_completion "$COMMANDS" ;;
*) __nvm_generate_completion "${COMMANDS}" ;;
esac
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]}"
case "$previous_word" in
case "${previous_word}" in
use | run | exec | ls | list | uninstall) __nvm_installed_nodes ;;
alias | unalias) __nvm_alias ;;
*) __nvm_commands ;;
@@ -91,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 && if [[ ${ZSH_DISABLE_COMPFIX-} = true ]]; then
compinit -u
else
compinit
fi
fi
complete -o default -F __nvm nvm

View File

@@ -6,12 +6,20 @@ nvm_has() {
type "$1" > /dev/null 2>&1
}
nvm_default_install_dir() {
[ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm"
}
nvm_install_dir() {
printf %s "${NVM_DIR:-"$HOME/.nvm"}"
if [ -n "$NVM_DIR" ]; then
printf %s "${NVM_DIR}"
else
nvm_default_install_dir
fi
}
nvm_latest_version() {
echo "v0.33.3"
echo "v0.35.0"
}
nvm_profile_is_bash_or_zsh() {
@@ -39,14 +47,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
@@ -85,7 +93,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 +101,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}" || {
@@ -110,14 +118,14 @@ 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)"
if [ ! -z "$(command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" show-ref refs/heads/master)" ]; then
command git -c advice.detachedHead=false --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" checkout -f --quiet "$(nvm_latest_version)"
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
@@ -140,22 +148,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
}
@@ -188,7 +196,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
@@ -212,6 +220,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
@@ -219,16 +232,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
@@ -241,7 +252,7 @@ nvm_detect_profile() {
done
fi
if [ ! -z "$DETECTED_PROFILE" ]; then
if [ -n "$DETECTED_PROFILE" ]; then
echo "$DETECTED_PROFILE"
fi
}
@@ -268,7 +279,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
@@ -294,6 +305,19 @@ nvm_check_global_modules() {
}
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."
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
fi
fi
if [ -z "${METHOD}" ]; then
# Autodetect install method
if nvm_has git; then
@@ -316,6 +340,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
@@ -323,19 +350,25 @@ 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"
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
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}"
echo
else
if nvm_profile_is_bash_or_zsh "${NVM_PROFILE-}"; then
BASH_OR_ZSH=true
@@ -384,7 +417,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

1067
nvm.sh

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{
"name": "nvm",
"version": "0.33.3",
"version": "0.35.0",
"description": "Node Version Manager - Simple bash script to manage multiple active node.js versions",
"directories": {
"test": "test"
@@ -14,11 +14,13 @@
"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 $(git ls-tree --name-only HEAD | xargs)",
"dockerfile_lint": "dockerfile_lint"
},
"repository": {
"type": "git",
"url": "git://github.com/creationix/nvm.git"
"url": "git://github.com/nvm-sh/nvm.git"
},
"keywords": [
"nvm",
@@ -30,10 +32,12 @@
"author": "Tim Caswell <tim@creationix.com>",
"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",
"replace": "^0.3.0",
"semver": "^5.0.1",
"urchin": "^0.0.5",

View File

@@ -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 "${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 "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() {

View File

@@ -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'"

View File

@@ -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'"

View File

@@ -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'"

View File

@@ -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'"

View File

@@ -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")"

View File

@@ -7,4 +7,3 @@ echo three > ../../../../alias/two
echo one > ../../../../alias/three
echo two > ../../../../alias/four

View File

@@ -7,4 +7,3 @@ rm -f ../../../../alias/two
rm -f ../../../../alias/three
rm -f ../../../../alias/four

View File

@@ -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

View File

@@ -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; }

View File

@@ -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

View File

@@ -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}<"

View File

@@ -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}<"

View File

@@ -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; }

View File

@@ -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; }

View File

@@ -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"

View File

@@ -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

View File

@@ -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}<"

View File

@@ -1,24 +1,44 @@
#!/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)"
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}<"

View File

@@ -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.

View File

@@ -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.

View File

@@ -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

View File

@@ -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'

View File

@@ -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 &&

View File

@@ -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}"

View File

@@ -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

View File

@@ -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.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

View File

@@ -2,21 +2,22 @@
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"
[ `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'"

View File

@@ -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
@@ -39,4 +40,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

View File

@@ -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' ]

View File

@@ -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"

View File

@@ -1,6 +1,6 @@
#!/bin/sh
set -ex
set -eux
cleanup() {
unset -f nvm_has_system_node nvm_print_npm_version

View File

@@ -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")"

View File

@@ -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() {

View File

@@ -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

View File

@@ -1,32 +1,100 @@
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 -
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 -
@@ -49,15 +117,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

File diff suppressed because it is too large Load Diff

View File

@@ -24,11 +24,47 @@
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  (LTS: Boron)
v6.14.2  (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  (LTS: Carbon)
v8.11.2  (Latest LTS: Carbon)

View File

@@ -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,25 @@
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  (LTS: Boron)
v6.14.2  (Latest LTS: Boron)
v7.0.0
v7.1.0
v7.2.0
@@ -316,3 +343,53 @@
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  (LTS: Carbon)
v8.11.2  (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
v10.0.0
v10.1.0
v10.2.0

View File

@@ -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,25 @@
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  (LTS: Boron)
v6.14.2  (Latest LTS: Boron)
v7.0.0
v7.1.0
v7.2.0
@@ -357,3 +384,53 @@
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  (LTS: Carbon)
v8.11.2  (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
v10.0.0
v10.1.0
v10.2.0

View File

@@ -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

View File

@@ -0,0 +1 @@
N/A

View File

@@ -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

View File

@@ -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,30 @@ 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
v6.14.2 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
v8.11.2 Carbon

View File

@@ -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

View File

@@ -0,0 +1 @@
v11.0.0-nightly201805249a02de7084

View File

@@ -1 +1 @@
v7.7.2
v10.2.0

View File

@@ -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,24 @@ 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
v6.14.2 Boron
v7.0.0
v7.1.0
v7.2.0
@@ -316,3 +343,53 @@ 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
v8.11.2 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
v10.0.0
v10.1.0
v10.2.0

View File

@@ -1,3 +1,4 @@
lts/*|lts/boron
lts/boron|v6.10.0
lts/argon|v4.8.0
lts/*|lts/carbon
lts/carbon|v8.11.2
lts/boron|v6.14.2
lts/argon|v4.9.1

View File

@@ -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

View File

@@ -30,4 +30,3 @@ OUTPUT="$(nvm_alias test)"
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_alias test' produced wrong output; got $OUTPUT"
cleanup

View File

@@ -4,5 +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"

View File

@@ -0,0 +1,57 @@
#!/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 "
# 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
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 "

View File

@@ -19,8 +19,14 @@ WGET_EXPECTED_INFO="$(which wget)"
cleanup
# 2. test aliased wget
# enable expand_aliases/aliases to make alias work in interactive shell
if nvm_has shopt; then
shopt -s expand_aliases
# enable expand_aliases to make alias working in interactive shell
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)"
@@ -38,3 +44,15 @@ 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
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

View File

@@ -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="$@"

View File

@@ -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=$?

View File

@@ -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

View File

@@ -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"

View File

@@ -0,0 +1,91 @@
#!/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
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
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 "4: 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 "5: expected default packages >${EXPECTED_PKGS}<; got >${DEFAULT_PKGS}<"
touch $FILE
cleanup

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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'

View File

@@ -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")"

View File

@@ -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

View File

@@ -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

View File

@@ -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"

View File

@@ -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 "

View File

@@ -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"

View File

@@ -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"

View File

@@ -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

View File

@@ -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 true when stdin is redirected'
else
# test is not running in a terminal, e.g. on travis-ci
! nvm_stdout_is_terminal || die 'nvm_stdout_is_terminal should be false'
! nvm_stdout_is_terminal 2>/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 stdin is redirected'
fi
(! nvm_stdout_is_terminal || echo "boo!") | read && die 'nvm_stdout_is_terminal should be false when stdout goes to a pipe'
! 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 </dev/null || die 'nvm_stdout_is_terminal should be true when stdout goes to /dev/tty and stdin is redirected'
cleanup

View File

@@ -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"

View File

@@ -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

View File

@@ -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"

View File

@@ -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'

View File

@@ -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

View File

@@ -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'

View File

@@ -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"'

Some files were not shown because too many files have changed in this diff Show More