Fish has to be configured to use nvm.
Basically 2 actions have to be taken (like with bash and others):
1. Introduce the nvm function
2. Execute the nvm function once the shell is loaded to have access to nodejs
The first session with fish might take a while to start,
if nvm doesn't have its default env (stable nodejs + default alias)
This is a wrapper around nvm. It's main function is to check and promote environment variables changes from nvm to fish.
A little more is done to setup the environment in case that hasn't been done yet:
* install a stable node version if it doesn't exist
* set the default to stable alias if that hasn't been done yet
Due to those actions, the first execution of `nvm` might take some time.
It will print all paths that have been changed by nvm use. These paths are exported for all later nvm commands and need to be applied to the environment of other shells (in this case fish), therefore they are printed with the option.
Conversely, a warning is issued if it is missing, because that implies that no actual cross-shell testing will take place.
Also, the shell command that determines the set of available test suites is now POSIX-compliant.
- Using `npm test` and `npm run …` scripts defined in package.json now invokes the makefile and runs the test with the same shell that npm was invoked from.
- The makefile can now be invoked directly - supporting utilities from locally installed npm packages are automatically discovered.
- Invoking the makefile without a target errors out with a hint.
- Shell-specific test targets are now named 'test-<shell>'.
- Both 'test-<shell>' targets and the all-shells 'test' target now run all test suites by default.
- On `make TAG=<new-version> release` there must be no uncommitted changes. '<new-version>' can now also be one of the following increment specifiers: 'patch', 'minor', 'major'.
- It is ensure that <new-version>, if not an increment specifier, is a valid semver version number that is higher than the previous release's.
- The previous release tag is now located with a pattern so as to exclude tags that aren't version numbers.
- Switched from lightweight to annotated tags for releases.