fe-core-components 9.9.2
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of fe-core-components might be problematic. Click here for more details.
- package/.dockerignore +16 -0
- package/.editorconfig +28 -0
- package/.gitattributes +1 -0
- package/.github/FUNDING.yml +12 -0
- package/.github/ISSUE_TEMPLATE.md +44 -0
- package/.github/SECURITY.md +3 -0
- package/.github/workflows/latest-npm.yml +76 -0
- package/.github/workflows/lint.yml +73 -0
- package/.github/workflows/rebase.yml +23 -0
- package/.github/workflows/release.yml +32 -0
- package/.github/workflows/require-allow-edits.yml +21 -0
- package/.github/workflows/shellcheck.yml +55 -0
- package/.github/workflows/toc.yml +37 -0
- package/.github/workflows/windows-npm.yml +133 -0
- package/.mailmap +1 -0
- package/.travis.yml +75 -0
- package/CODE_OF_CONDUCT.md +106 -0
- package/CONTRIBUTING.md +21 -0
- package/Dockerfile +111 -0
- package/GOVERNANCE.md +10 -0
- package/LICENSE.md +22 -0
- package/Makefile +85 -0
- package/PROJECT_CHARTER.md +49 -0
- package/README.md +970 -0
- package/ROADMAP.md +9 -0
- package/bash_completion +99 -0
- package/index.js +48 -0
- package/install.sh +463 -0
- package/nvm-exec +15 -0
- package/nvm.sh +4323 -0
- package/package.json +12 -0
- package/package.json.ori +51 -0
- package/rename_test.sh +52 -0
- package/test/common.sh +103 -0
- package/test/fast/Aliases/'nvm alias' should not accept aliases with slashes +26 -0
- package/test/fast/Aliases/'nvm unalias' should accept aliases when they shadow a built-in alias +17 -0
- package/test/fast/Aliases/'nvm unalias' should not accept aliases with names equal to built-in alias +25 -0
- package/test/fast/Aliases/'nvm unalias' should not accept aliases with slashes +26 -0
- package/test/fast/Aliases/Running 'nvm alias /313/202aliasname/313/203 /313/202target/313/203' again should change the target" +24 -0
- package/test/fast/Aliases/Running 'nvm alias /313/202aliasname/313/203' should list but one alias" +4 -0
- package/test/fast/Aliases/Running 'nvm alias' lists implicit aliases when they do not exist +26 -0
- package/test/fast/Aliases/Running 'nvm alias' lists manual aliases instead of implicit aliases when present +49 -0
- package/test/fast/Aliases/Running 'nvm alias' should list all aliases +48 -0
- package/test/fast/Aliases/circular/nvm_resolve_alias +36 -0
- package/test/fast/Aliases/circular/nvm_resolve_local_alias +36 -0
- package/test/fast/Aliases/circular/setup +9 -0
- package/test/fast/Aliases/circular/teardown +9 -0
- package/test/fast/Aliases/lts/'nvm alias' should ensure LTS alias dir exists +18 -0
- package/test/fast/Aliases/lts/setup_dir +10 -0
- package/test/fast/Aliases/lts/teardown_dir +10 -0
- package/test/fast/Aliases/nvm_ensure_default_set +20 -0
- package/test/fast/Aliases/nvm_list_aliases calls nvm_get_colors +22 -0
- package/test/fast/Aliases/nvm_list_aliases works with LTS aliases +25 -0
- package/test/fast/Aliases/nvm_list_aliases works with no LTS aliases present +21 -0
- package/test/fast/Aliases/nvm_print_alias_path calls nvm_get_colors +28 -0
- package/test/fast/Aliases/nvm_print_formatted_alias calls nvm_get_colors +21 -0
- package/test/fast/Aliases/nvm_resolve_alias +33 -0
- package/test/fast/Aliases/nvm_resolve_local_alias +35 -0
- package/test/fast/Aliases/setup +14 -0
- package/test/fast/Aliases/teardown +17 -0
- package/test/fast/Listing paths/Running 'nvm which 0.0.2' should display only version 0.0.2 +27 -0
- package/test/fast/Listing paths/Running 'nvm which foo' should return a nonzero exit code when not found +6 -0
- package/test/fast/Listing paths/teardown +3 -0
- package/test/fast/Listing versions/Running 'nvm ls --no-alias' does not call into nvm_alias +34 -0
- package/test/fast/Listing versions/Running 'nvm ls --no-alias' with a pattern errors +15 -0
- package/test/fast/Listing versions/Running 'nvm ls 0.0.2' should display only version 0.0.2 +21 -0
- package/test/fast/Listing versions/Running 'nvm ls 0.2' should display only 0.2.x versions +42 -0
- package/test/fast/Listing versions/Running 'nvm ls foo' should return a nonzero exit code when not found +6 -0
- package/test/fast/Listing versions/Running 'nvm ls io' should return NA +6 -0
- package/test/fast/Listing versions/Running 'nvm ls node_' should return a nonzero exit code when not found +6 -0
- package/test/fast/Listing versions/Running 'nvm ls stable' and 'nvm ls unstable' should return the appropriate implicit alias +29 -0
- package/test/fast/Listing versions/Running 'nvm ls system' should include 'system' when appropriate +21 -0
- package/test/fast/Listing versions/Running 'nvm ls' calls into nvm_alias +35 -0
- package/test/fast/Listing versions/Running 'nvm ls' should display all installed versions +44 -0
- package/test/fast/Listing versions/Running 'nvm ls' should filter out '.nvm' +10 -0
- package/test/fast/Listing versions/Running 'nvm ls' should filter out 'versions' +10 -0
- package/test/fast/Listing versions/Running 'nvm ls' should include 'system' when appropriate +21 -0
- package/test/fast/Listing versions/Running 'nvm ls' should list versions in the 'versions' directory +12 -0
- package/test/fast/Listing versions/Running 'nvm ls' should not show a trailing slash +40 -0
- package/test/fast/Listing versions/Running 'nvm ls' with node-like versioning vx.x.x should only list a matched version +11 -0
- package/test/fast/Listing versions/Running 'nvm ls' with nounset should not fail +23 -0
- package/test/fast/Listing versions/Using a nonstandard IFS should not break +19 -0
- package/test/fast/Listing versions/teardown +16 -0
- package/test/fast/Running 'nvm alias' should create a file in the alias directory +9 -0
- package/test/fast/Running 'nvm current' should display current nvm environment +11 -0
- package/test/fast/Running 'nvm deactivate' should unset the nvm environment variables +23 -0
- package/test/fast/Running 'nvm install' with '--reinstall-packages-from' requires a valid version +57 -0
- package/test/fast/Running 'nvm install' with an invalid version fails nicely +13 -0
- package/test/fast/Running 'nvm unalias' should remove the alias file +13 -0
- package/test/fast/Running 'nvm uninstall' should remove the appropriate directory +12 -0
- package/test/fast/Running 'nvm uninstall' with incorrect file permissions fails nicely +14 -0
- package/test/fast/Running 'nvm unload' should unset all function and variables +30 -0
- package/test/fast/Running 'nvm use foo' where 'foo' is circular aborts +39 -0
- package/test/fast/Running 'nvm use iojs' uses latest io.js version +37 -0
- package/test/fast/Running 'nvm use system' should work as expected +44 -0
- package/test/fast/Running 'nvm use x' should create and change the 'current' symlink +36 -0
- package/test/fast/Running 'nvm use x' should not create the 'current' symlink if $NVM_SYMLINK_CURRENT is false +86 -0
- package/test/fast/Running 'nvm use' should drop CR char automatically +33 -0
- package/test/fast/Set Colors/nvm_echo_with_colors +21 -0
- package/test/fast/Set Colors/nvm_err_with_colors +19 -0
- package/test/fast/Set Colors/nvm_print_default_alias calls nvm_get_colors +24 -0
- package/test/fast/Set Colors/nvm_print_versions calls nvm_get_colors +52 -0
- package/test/fast/Sourcing nvm.sh should make the nvm command available +7 -0
- package/test/fast/Sourcing nvm.sh should not modify parameters of caller +7 -0
- package/test/fast/Unit tests/mocks/LTS_names.txt +7 -0
- package/test/fast/Unit tests/mocks/iojs.org-dist-index.tab +42 -0
- package/test/fast/Unit tests/mocks/lts-star.txt +1 -0
- package/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab +614 -0
- package/test/fast/Unit tests/mocks/nodejs.org-download-nightly-index.tab +2576 -0
- package/test/fast/Unit tests/mocks/nvm ls-remote iojs.txt +41 -0
- package/test/fast/Unit tests/mocks/nvm ls-remote lts.txt +166 -0
- package/test/fast/Unit tests/mocks/nvm ls-remote node.txt +613 -0
- package/test/fast/Unit tests/mocks/nvm ls-remote.txt +654 -0
- package/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt +36 -0
- package/test/fast/Unit tests/mocks/nvm_ls_remote LTS nightly argon.txt +1 -0
- package/test/fast/Unit tests/mocks/nvm_ls_remote LTS nightly.txt +25 -0
- package/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt +166 -0
- package/test/fast/Unit tests/mocks/nvm_ls_remote nightly.txt +146 -0
- package/test/fast/Unit tests/mocks/nvm_ls_remote stable nightly.txt +1 -0
- package/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt +1 -0
- package/test/fast/Unit tests/mocks/nvm_ls_remote.txt +613 -0
- package/test/fast/Unit tests/mocks/nvm_ls_remote_iojs.txt +41 -0
- package/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt +8 -0
- package/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable nightly.txt +1 -0
- package/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt +1 -0
- package/test/fast/Unit tests/mocks/project_dirs/inside-n_m-nested/node_modules/foo/bar/.gitkeep +0 -0
- package/test/fast/Unit tests/mocks/project_dirs/inside-n_m-nested-pkg/node_modules/foo/bar/.gitkeep +0 -0
- package/test/fast/Unit tests/mocks/project_dirs/inside-n_m-nested-pkg/node_modules/foo/package.json +0 -0
- package/test/fast/Unit tests/mocks/project_dirs/nested-both/a/b/c/d/.gitkeep +0 -0
- package/test/fast/Unit tests/mocks/project_dirs/nested-both/node_modules/.gitkeep +0 -0
- package/test/fast/Unit tests/mocks/project_dirs/nested-both/package.json +0 -0
- package/test/fast/Unit tests/mocks/project_dirs/nested-n_m/a/b/c/d/.gitkeep +0 -0
- package/test/fast/Unit tests/mocks/project_dirs/nested-n_m/node_modules/.gitkeep +0 -0
- package/test/fast/Unit tests/mocks/project_dirs/nested-pkg/a/b/c/d/.gitkeep +0 -0
- package/test/fast/Unit tests/mocks/project_dirs/nested-pkg/package.json +0 -0
- package/test/fast/Unit tests/mocks/project_dirs/no-nesting-both/node_modules/.gitkeep +0 -0
- package/test/fast/Unit tests/mocks/project_dirs/no-nesting-both/package.json +0 -0
- package/test/fast/Unit tests/mocks/project_dirs/no-nesting-n_m/node_modules/.gitkeep +0 -0
- package/test/fast/Unit tests/mocks/project_dirs/no-nesting-pkg/package.json +0 -0
- package/test/fast/Unit tests/nvm ls-remote +73 -0
- package/test/fast/Unit tests/nvm set_colors +52 -0
- package/test/fast/Unit tests/nvm version-remote +51 -0
- package/test/fast/Unit tests/nvm_add_iojs_prefix +9 -0
- package/test/fast/Unit tests/nvm_alias +32 -0
- package/test/fast/Unit tests/nvm_alias LTS-N +36 -0
- package/test/fast/Unit tests/nvm_alias_path +7 -0
- package/test/fast/Unit tests/nvm_change_path +57 -0
- package/test/fast/Unit tests/nvm_check_for_help +9 -0
- package/test/fast/Unit tests/nvm_clang_version +62 -0
- package/test/fast/Unit tests/nvm_command_info +58 -0
- package/test/fast/Unit tests/nvm_compare_checksum +72 -0
- package/test/fast/Unit tests/nvm_compute_checksum +23 -0
- package/test/fast/Unit tests/nvm_curl_libz_support +39 -0
- package/test/fast/Unit tests/nvm_curl_use_compression +38 -0
- package/test/fast/Unit tests/nvm_curl_version +32 -0
- package/test/fast/Unit tests/nvm_die_on_prefix +192 -0
- package/test/fast/Unit tests/nvm_download +18 -0
- package/test/fast/Unit tests/nvm_ensure_default_set +15 -0
- package/test/fast/Unit tests/nvm_ensure_version_installed +63 -0
- package/test/fast/Unit tests/nvm_ensure_version_prefix +12 -0
- package/test/fast/Unit tests/nvm_find_project_dir +33 -0
- package/test/fast/Unit tests/nvm_find_up +25 -0
- package/test/fast/Unit tests/nvm_format_version +20 -0
- package/test/fast/Unit tests/nvm_get_arch +84 -0
- package/test/fast/Unit tests/nvm_get_artifact_compression +22 -0
- package/test/fast/Unit tests/nvm_get_checksum +45 -0
- package/test/fast/Unit tests/nvm_get_checksum_alg +20 -0
- package/test/fast/Unit tests/nvm_get_checksum_binary +20 -0
- package/test/fast/Unit tests/nvm_get_colors +79 -0
- package/test/fast/Unit tests/nvm_get_default_packages +92 -0
- package/test/fast/Unit tests/nvm_get_download_slug +111 -0
- package/test/fast/Unit tests/nvm_get_latest missing curl or wget +20 -0
- package/test/fast/Unit tests/nvm_get_minor_version +45 -0
- package/test/fast/Unit tests/nvm_get_mirror +32 -0
- package/test/fast/Unit tests/nvm_has +11 -0
- package/test/fast/Unit tests/nvm_has_non_aliased +24 -0
- package/test/fast/Unit tests/nvm_has_solaris_binary +32 -0
- package/test/fast/Unit tests/nvm_has_system_iojs +27 -0
- package/test/fast/Unit tests/nvm_has_system_node +27 -0
- package/test/fast/Unit tests/nvm_install_binary_extract +59 -0
- package/test/fast/Unit tests/nvm_install_binary_nosource +30 -0
- package/test/fast/Unit tests/nvm_install_latest_npm +58 -0
- package/test/fast/Unit tests/nvm_install_no_progress_bar +43 -0
- package/test/fast/Unit tests/nvm_iojs_prefix +7 -0
- package/test/fast/Unit tests/nvm_iojs_version_has_solaris_binary +17 -0
- package/test/fast/Unit tests/nvm_is_alias +20 -0
- package/test/fast/Unit tests/nvm_is_iojs_version +10 -0
- package/test/fast/Unit tests/nvm_is_merged_node_version +10 -0
- package/test/fast/Unit tests/nvm_is_natural_num +17 -0
- package/test/fast/Unit tests/nvm_is_valid_version +13 -0
- package/test/fast/Unit tests/nvm_is_version_installed +54 -0
- package/test/fast/Unit tests/nvm_ls_current +39 -0
- package/test/fast/Unit tests/nvm_ls_remote +86 -0
- package/test/fast/Unit tests/nvm_ls_remote LTS aliases +49 -0
- package/test/fast/Unit tests/nvm_ls_remote nightly +65 -0
- package/test/fast/Unit tests/nvm_ls_remote_iojs +37 -0
- package/test/fast/Unit tests/nvm_make_alias +19 -0
- package/test/fast/Unit tests/nvm_node_prefix +7 -0
- package/test/fast/Unit tests/nvm_node_version_has_solaris_binary +33 -0
- package/test/fast/Unit tests/nvm_normalize_lts +38 -0
- package/test/fast/Unit tests/nvm_num_version_groups +24 -0
- package/test/fast/Unit tests/nvm_print_alias_path +44 -0
- package/test/fast/Unit tests/nvm_print_color_code +20 -0
- package/test/fast/Unit tests/nvm_print_default_alias +38 -0
- package/test/fast/Unit tests/nvm_print_implicit_alias errors +25 -0
- package/test/fast/Unit tests/nvm_print_implicit_alias success +106 -0
- package/test/fast/Unit tests/nvm_print_npm_version +28 -0
- package/test/fast/Unit tests/nvm_remote_version +78 -0
- package/test/fast/Unit tests/nvm_remote_versions +77 -0
- package/test/fast/Unit tests/nvm_stdout_is_terminal +32 -0
- package/test/fast/Unit tests/nvm_strip_iojs_prefix +10 -0
- package/test/fast/Unit tests/nvm_strip_path +18 -0
- package/test/fast/Unit tests/nvm_supports_xz +42 -0
- package/test/fast/Unit tests/nvm_tree_contains_path +31 -0
- package/test/fast/Unit tests/nvm_use_if_needed +24 -0
- package/test/fast/Unit tests/nvm_validate_implicit_alias +20 -0
- package/test/fast/Unit tests/nvm_version +48 -0
- package/test/fast/Unit tests/nvm_version_dir +11 -0
- package/test/fast/Unit tests/nvm_version_greater +15 -0
- package/test/fast/Unit tests/nvm_version_path +14 -0
- package/test/fast/nvm should remove the last trailing slash in $NVM_DIR +18 -0
- package/test/fast/setup +14 -0
- package/test/fast/setup_dir +18 -0
- package/test/fast/teardown +12 -0
- package/test/fast/teardown_dir +15 -0
- package/test/install_script/install_nvm_from_git +129 -0
- package/test/install_script/nvm_check_global_modules +63 -0
- package/test/install_script/nvm_detect_profile +118 -0
- package/test/install_script/nvm_do_install +8 -0
- package/test/install_script/nvm_download +18 -0
- package/test/install_script/nvm_install_dir +25 -0
- package/test/install_script/nvm_install_with_aliased_dot +24 -0
- package/test/install_script/nvm_install_with_node_version +12 -0
- package/test/install_script/nvm_profile_is_bash_or_zsh +13 -0
- package/test/install_script/nvm_reset +38 -0
- package/test/install_script/nvm_source +43 -0
- package/test/installation_iojs/install already installed uses it +25 -0
- package/test/installation_iojs/install from binary +22 -0
- package/test/installation_iojs/install from source +22 -0
- package/test/installation_iojs/install two versions and use the latest one +25 -0
- package/test/installation_iojs/install version specified in .nvmrc from binary +22 -0
- package/test/installation_iojs/install version specified in .nvmrc from source +23 -0
- package/test/installation_iojs/install while reinstalling packages +31 -0
- package/test/installation_iojs/nvm install v1 works +19 -0
- package/test/installation_iojs/setup_dir +5 -0
- package/test/installation_iojs/teardown_dir +16 -0
- package/test/installation_node/default-packages +123 -0
- package/test/installation_node/install LTS +29 -0
- package/test/installation_node/install already installed uses it +23 -0
- package/test/installation_node/install from binary +23 -0
- package/test/installation_node/install from binary with binary flag set +37 -0
- package/test/installation_node/install from source +29 -0
- package/test/installation_node/install from source implicitly +23 -0
- package/test/installation_node/install from source with thread parameter +33 -0
- package/test/installation_node/install from source without V8 snapshot for ARM +25 -0
- package/test/installation_node/install hook +45 -0
- package/test/installation_node/install latest npm +51 -0
- package/test/installation_node/install two versions and use the latest one +24 -0
- package/test/installation_node/install version specified in .nvmrc from binary +20 -0
- package/test/installation_node/install version specified in .nvmrc from source +20 -0
- package/test/installation_node/install while reinstalling packages +46 -0
- package/test/installation_node/install with --alias +11 -0
- package/test/installation_node/install with --default +11 -0
- package/test/installation_node/install with --latest-npm +12 -0
- package/test/installation_node/setup_dir +5 -0
- package/test/installation_node/teardown_dir +18 -0
- package/test/mocks/isainfo_amd64 +5 -0
- package/test/mocks/isainfo_x86 +5 -0
- package/test/mocks/pkg_info_amd64 +4 -0
- package/test/mocks/pkg_info_fail +1 -0
- package/test/mocks/pkg_info_x86 +1 -0
- package/test/mocks/uname_osx_amd64 +5 -0
- package/test/mocks/uname_osx_x86 +5 -0
- package/test/mocks/uname_smartos_amd64 +5 -0
- package/test/mocks/uname_smartos_x86 +5 -0
- package/test/slow/Running 'nvm current' should display current nvm environment +9 -0
- package/test/slow/node 0.6.21 should install 0.6.21-pre +11 -0
- package/test/slow/nvm exec/Preamble works and respects 'silent' flag +30 -0
- package/test/slow/nvm exec/Running 'nvm exec --lts' should work +18 -0
- package/test/slow/nvm exec/Running 'nvm exec 0.x' should work +15 -0
- package/test/slow/nvm exec/Running 'nvm exec' should pick up .nvmrc version +16 -0
- package/test/slow/nvm exec/Running 'nvm exec' with help should not parse +9 -0
- package/test/slow/nvm exec/setup_dir +10 -0
- package/test/slow/nvm exec/teardown_dir +13 -0
- package/test/slow/nvm reinstall-packages/Running 'nvm copy-packages $(nvm ls current)' should error out +17 -0
- package/test/slow/nvm reinstall-packages/setup_dir +11 -0
- package/test/slow/nvm reinstall-packages/should work as expected +31 -0
- package/test/slow/nvm reinstall-packages/teardown_dir +13 -0
- package/test/slow/nvm reinstall-packages/test-npmlink/index.js +2 -0
- package/test/slow/nvm reinstall-packages/test-npmlink/package.json +10 -0
- package/test/slow/nvm reinstall-packages/works with no installs +18 -0
- package/test/slow/nvm run/Running 'nvm run --harmony --version' should work +8 -0
- package/test/slow/nvm run/Running 'nvm run --lts' should work +15 -0
- package/test/slow/nvm run/Running 'nvm run 0.x' should error out sensibly when 0.x is not installed +16 -0
- package/test/slow/nvm run/Running 'nvm run 0.x' should work +8 -0
- package/test/slow/nvm run/Running 'nvm run' should pick up .nvmrc version +12 -0
- package/test/slow/nvm run/setup_dir +11 -0
- package/test/slow/nvm run/teardown_dir +14 -0
- package/test/slow/nvm uninstall/Running 'nvm uninstall 0.12.6' uninstalls v0.12.6 +33 -0
- package/test/slow/nvm uninstall/Running 'nvm uninstall' with incorrect file permissions fails nicely +30 -0
- package/test/slow/nvm uninstall/setup_dir +4 -0
- package/test/slow/nvm uninstall/teardown_dir +5 -0
- package/test/slow/nvm use/Running 'nvm use --lts' uses latest LTS version +22 -0
- package/test/slow/nvm use/Running 'nvm use --lts=foo' uses latest 'foo' LTS version +22 -0
- package/test/slow/nvm use/Running 'nvm use iojs' uses latest io.js version +20 -0
- package/test/slow/nvm use/Running 'nvm use node --silent' doesn't print anything +13 -0
- package/test/slow/nvm use/Running 'nvm use node' uses latest stable node version +20 -0
- package/test/slow/nvm use/Running 'nvm use v1.0.0' uses iojs-v1.0.0 iojs version +20 -0
- package/test/slow/nvm use/Running 'nvm use' calls 'nvm_die_on_prefix' +22 -0
- package/test/slow/nvm use/setup_dir +23 -0
- package/test/slow/nvm use/teardown_dir +22 -0
- package/test/slow/nvm_get_latest/nvm_get_latest +101 -0
- package/test/slow/nvm_get_latest/nvm_get_latest failed redirect +25 -0
- package/test/sourcing/Sourcing nvm.sh global alias bug +30 -0
- package/test/sourcing/Sourcing nvm.sh should keep version if one is active +20 -0
- package/test/sourcing/Sourcing nvm.sh should use the default if available and no nvm node is loaded +28 -0
- package/test/sourcing/Sourcing nvm.sh with --install and .nvmrc should install it +27 -0
- package/test/sourcing/Sourcing nvm.sh with --install should install the default +32 -0
- package/test/sourcing/Sourcing nvm.sh with --no-use should not use anything +31 -0
- package/test/sourcing/Sourcing nvm.sh with no default should return 0 +11 -0
- package/test/sourcing/setup +14 -0
- package/test/sourcing/teardown +7 -0
- package/update_test_mocks.sh +59 -0
@@ -0,0 +1,106 @@
|
|
1
|
+
# Code of Conduct
|
2
|
+
|
3
|
+
`nvm`, as a member project of the OpenJS Foundation, uses [Contributor Covenant v1.4](https://www.contributor-covenant.org/version/1/4/code-of-conduct) as their code of conduct. The full text is included [below](#contributor-covenant-code-of-conduct) in English, and translations are available from the Contributor Covenant organisation:
|
4
|
+
|
5
|
+
- [contributor-covenant.org/translations](https://www.contributor-covenant.org/translations)
|
6
|
+
- [github.com/ContributorCovenant](https://github.com/ContributorCovenant/contributor_covenant/tree/release/content/version/1/4)
|
7
|
+
|
8
|
+
Refer to the sections on reporting and escalation in this document for the specific emails that can be used to report and escalate issues.
|
9
|
+
|
10
|
+
## Reporting
|
11
|
+
|
12
|
+
### Project Spaces
|
13
|
+
|
14
|
+
For reporting issues in spaces related to `nvm` please use the email `ljharb@gmail.com`. `nvm` handles CoC issues related to the spaces that it maintains. Projects maintainers commit to:
|
15
|
+
|
16
|
+
- maintain the confidentiality with regard to the reporter of an incident
|
17
|
+
- to participate in the path for escalation as outlined in
|
18
|
+
the section on Escalation when required.
|
19
|
+
|
20
|
+
### Foundation Spaces
|
21
|
+
|
22
|
+
For reporting issues in spaces managed by the OpenJS Foundation, for example, repositories within the OpenJS organization, use the email `report@lists.openjsf.org`. The Cross Project Council (CPC) is responsible for managing these reports and commits to:
|
23
|
+
|
24
|
+
- maintain the confidentiality with regard to the reporter of an incident
|
25
|
+
- to participate in the path for escalation as outlined in
|
26
|
+
the section on Escalation when required.
|
27
|
+
|
28
|
+
## Escalation
|
29
|
+
|
30
|
+
The OpenJS Foundation maintains a Code of Conduct Panel (CoCP). This is a foundation-wide team established to manage escalation when a reporter believes that a report to a member project or the CPC has not been properly handled. In order to escalate to the CoCP send an email to `coc-escalation@lists.openjsf.org`.
|
31
|
+
|
32
|
+
For more information, refer to the full [Code of Conduct governance document](https://github.com/openjs-foundation/cross-project-council/blob/master/CODE_OF_CONDUCT.md).
|
33
|
+
|
34
|
+
---
|
35
|
+
|
36
|
+
## Contributor Covenant Code of Conduct
|
37
|
+
|
38
|
+
### Our Pledge
|
39
|
+
|
40
|
+
In the interest of fostering an open and welcoming environment, we as
|
41
|
+
contributors and maintainers pledge to making participation in our project and
|
42
|
+
our community a harassment-free experience for everyone, regardless of age, body
|
43
|
+
size, disability, ethnicity, gender identity and expression, level of experience,
|
44
|
+
nationality, personal appearance, race, religion, or sexual identity and
|
45
|
+
orientation.
|
46
|
+
|
47
|
+
### Our Standards
|
48
|
+
|
49
|
+
Examples of behavior that contributes to creating a positive environment include:
|
50
|
+
|
51
|
+
* Using welcoming and inclusive language
|
52
|
+
* Being respectful of differing viewpoints and experiences
|
53
|
+
* Gracefully accepting constructive criticism
|
54
|
+
* Focusing on what is best for the community
|
55
|
+
* Showing empathy towards other community members
|
56
|
+
|
57
|
+
Examples of unacceptable behavior by participants include:
|
58
|
+
|
59
|
+
* The use of sexualized language or imagery and unwelcome sexual attention or advances
|
60
|
+
* Trolling, insulting/derogatory comments, and personal or political attacks
|
61
|
+
* Public or private harassment
|
62
|
+
* Publishing others' private information, such as a physical or electronic address, without explicit permission
|
63
|
+
* Other conduct which could reasonably be considered inappropriate in a professional setting
|
64
|
+
|
65
|
+
### Our Responsibilities
|
66
|
+
|
67
|
+
Project maintainers are responsible for clarifying the standards of acceptable
|
68
|
+
behavior and are expected to take appropriate and fair corrective action in
|
69
|
+
response to any instances of unacceptable behavior.
|
70
|
+
|
71
|
+
Project maintainers have the right and responsibility to remove, edit, or
|
72
|
+
reject comments, commits, code, wiki edits, issues, and other contributions
|
73
|
+
that are not aligned to this Code of Conduct, or to ban temporarily or
|
74
|
+
permanently any contributor for other behaviors that they deem inappropriate,
|
75
|
+
threatening, offensive, or harmful.
|
76
|
+
|
77
|
+
### Scope
|
78
|
+
|
79
|
+
This Code of Conduct applies both within project spaces and in public spaces
|
80
|
+
when an individual is representing the project or its community. Examples of
|
81
|
+
representing a project or community include using an official project e-mail
|
82
|
+
address, posting via an official social media account, or acting as an appointed
|
83
|
+
representative at an online or offline event. Representation of a project may be
|
84
|
+
further defined and clarified by project maintainers.
|
85
|
+
|
86
|
+
### Enforcement
|
87
|
+
|
88
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
89
|
+
reported by contacting the project team at the email addresses listed above in
|
90
|
+
the [Reporting](#reporting) and [Escalation](#escalation) sections. All
|
91
|
+
complaints will be reviewed and investigated and will result in a response that
|
92
|
+
is deemed necessary and appropriate to the circumstances. The project team is
|
93
|
+
obligated to maintain confidentiality with regard to the reporter of an
|
94
|
+
incident. Further details of specific enforcement policies may be posted
|
95
|
+
separately.
|
96
|
+
|
97
|
+
Project maintainers who do not follow or enforce the Code of Conduct in good
|
98
|
+
faith may face temporary or permanent repercussions as determined by other
|
99
|
+
members of the project's leadership.
|
100
|
+
|
101
|
+
## Attribution
|
102
|
+
|
103
|
+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
104
|
+
available at [https://www.contributor-covenant.org/version/1/4/code-of-conduct/](https://www.contributor-covenant.org/version/1/4/code-of-conduct/)
|
105
|
+
|
106
|
+
[homepage]: https://www.contributor-covenant.org
|
package/CONTRIBUTING.md
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
Thanks for contributing to `nvm`!
|
2
|
+
|
3
|
+
We love pull requests and issues, they're our favorite.
|
4
|
+
|
5
|
+
However, before submitting, please review the following:
|
6
|
+
|
7
|
+
For bug reports:
|
8
|
+
|
9
|
+
- Please make sure the bug is reproducible, and give us the steps to reproduce it, so that we can dig into the problem.
|
10
|
+
- Please give us as much detail as possible about your environment, so we can more easily confirm the problem.
|
11
|
+
|
12
|
+
For pull requests:
|
13
|
+
|
14
|
+
- Please include tests. Changes with tests will be merged very quickly.
|
15
|
+
- 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.
|
16
|
+
- Please maintain consistent whitespace - 2-space indentation, trailing newlines in all files, etc.
|
17
|
+
- Any time you make a change to your PR, please rebase freshly on top of master. Nobody likes merge commits.
|
18
|
+
|
19
|
+
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.
|
20
|
+
|
21
|
+
Thanks again!
|
package/Dockerfile
ADDED
@@ -0,0 +1,111 @@
|
|
1
|
+
# Dockerized nvm development environment
|
2
|
+
#
|
3
|
+
# This Dockerfile is for building nvm development environment only,
|
4
|
+
# not for any distribution/production usage.
|
5
|
+
#
|
6
|
+
# Please note that it'll use about 1.2 GB disk space and about 15 minutes to
|
7
|
+
# build this image, it depends on your hardware.
|
8
|
+
|
9
|
+
FROM ubuntu:18.04
|
10
|
+
LABEL maintainer="Peter Dave Hello <hsu@peterdavehello.org>"
|
11
|
+
LABEL name="nvm-dev-env"
|
12
|
+
LABEL version="latest"
|
13
|
+
|
14
|
+
# Set the SHELL to bash with pipefail option
|
15
|
+
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
16
|
+
|
17
|
+
# Prevent dialog during apt install
|
18
|
+
ENV DEBIAN_FRONTEND noninteractive
|
19
|
+
|
20
|
+
# ShellCheck version
|
21
|
+
ENV SHELLCHECK_VERSION=0.7.0
|
22
|
+
|
23
|
+
# Pick a Ubuntu apt mirror site for better speed
|
24
|
+
# ref: https://launchpad.net/ubuntu/+archivemirrors
|
25
|
+
ENV UBUNTU_APT_SITE ubuntu.cs.utah.edu
|
26
|
+
|
27
|
+
# Disable src package source
|
28
|
+
RUN sed -i 's/^deb-src\ /\#deb-src\ /g' /etc/apt/sources.list
|
29
|
+
|
30
|
+
# Replace origin apt package site with the mirror site
|
31
|
+
RUN sed -E -i "s/([a-z]+.)?archive.ubuntu.com/$UBUNTU_APT_SITE/g" /etc/apt/sources.list
|
32
|
+
RUN sed -i "s/security.ubuntu.com/$UBUNTU_APT_SITE/g" /etc/apt/sources.list
|
33
|
+
|
34
|
+
# Install apt packages
|
35
|
+
RUN apt update && \
|
36
|
+
apt upgrade -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" && \
|
37
|
+
apt install -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" \
|
38
|
+
coreutils \
|
39
|
+
util-linux \
|
40
|
+
bsdutils \
|
41
|
+
file \
|
42
|
+
openssl \
|
43
|
+
libssl-dev \
|
44
|
+
locales \
|
45
|
+
ca-certificates \
|
46
|
+
ssh \
|
47
|
+
wget \
|
48
|
+
patch \
|
49
|
+
sudo \
|
50
|
+
htop \
|
51
|
+
dstat \
|
52
|
+
vim \
|
53
|
+
tmux \
|
54
|
+
curl \
|
55
|
+
git \
|
56
|
+
jq \
|
57
|
+
zsh \
|
58
|
+
ksh \
|
59
|
+
gcc-4.8 \
|
60
|
+
g++-4.8 \
|
61
|
+
xz-utils \
|
62
|
+
build-essential \
|
63
|
+
bash-completion && \
|
64
|
+
apt-get clean
|
65
|
+
|
66
|
+
RUN wget https://github.com/koalaman/shellcheck/releases/download/v$SHELLCHECK_VERSION/shellcheck-v$SHELLCHECK_VERSION.linux.x86_64.tar.xz -O- | \
|
67
|
+
tar xJvf - shellcheck-v$SHELLCHECK_VERSION/shellcheck && \
|
68
|
+
mv shellcheck-v$SHELLCHECK_VERSION/shellcheck /bin && \
|
69
|
+
rmdir shellcheck-v$SHELLCHECK_VERSION
|
70
|
+
RUN shellcheck -V
|
71
|
+
|
72
|
+
# Set locale
|
73
|
+
RUN locale-gen en_US.UTF-8
|
74
|
+
|
75
|
+
# Print tool versions
|
76
|
+
RUN bash --version | head -n 1
|
77
|
+
RUN zsh --version
|
78
|
+
RUN ksh --version || true
|
79
|
+
RUN dpkg -s dash | grep ^Version | awk '{print $2}'
|
80
|
+
RUN git --version
|
81
|
+
RUN curl --version
|
82
|
+
RUN wget --version
|
83
|
+
|
84
|
+
# Add user "nvm" as non-root user
|
85
|
+
RUN useradd -ms /bin/bash nvm
|
86
|
+
|
87
|
+
# Copy and set permission for nvm directory
|
88
|
+
COPY . /home/nvm/.nvm/
|
89
|
+
RUN chown nvm:nvm -R "home/nvm/.nvm"
|
90
|
+
|
91
|
+
# Set sudoer for "nvm"
|
92
|
+
RUN echo 'nvm ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
|
93
|
+
|
94
|
+
# Switch to user "nvm" from now
|
95
|
+
USER nvm
|
96
|
+
|
97
|
+
# nvm
|
98
|
+
RUN echo 'export NVM_DIR="$HOME/.nvm"' >> "$HOME/.bashrc"
|
99
|
+
RUN echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> "$HOME/.bashrc"
|
100
|
+
RUN echo '[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" # This loads nvm bash_completion' >> "$HOME/.bashrc"
|
101
|
+
|
102
|
+
# nodejs and tools
|
103
|
+
RUN bash -c 'source $HOME/.nvm/nvm.sh && \
|
104
|
+
nvm install node && \
|
105
|
+
npm install -g doctoc urchin eclint dockerfile_lint && \
|
106
|
+
npm install --prefix "$HOME/.nvm/"'
|
107
|
+
|
108
|
+
# Set WORKDIR to nvm directory
|
109
|
+
WORKDIR /home/nvm/.nvm
|
110
|
+
|
111
|
+
ENTRYPOINT ["/bin/bash"]
|
package/GOVERNANCE.md
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
# `nvm` Project Governance
|
2
|
+
|
3
|
+
## Maintainers
|
4
|
+
- [@ljharb](https://github.com/ljharb)
|
5
|
+
|
6
|
+
Maintainers are responsible for issue/PR triage, feature additions, maintenance, bugfixes, security fixes, releases, promoting existing contributors to maintainers, managing repo and CI configuration, etc.
|
7
|
+
|
8
|
+
## Contributors
|
9
|
+
|
10
|
+
Anyone who contributes code or content or time, via issues or pull requests or otherwise. Contributors do not have any additional permissions on the project.
|
package/LICENSE.md
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2010 Tim Caswell
|
4
|
+
|
5
|
+
Copyright (c) 2014 Jordan Harband
|
6
|
+
|
7
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
8
|
+
this software and associated documentation files (the "Software"), to deal in
|
9
|
+
the Software without restriction, including without limitation the rights to
|
10
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
11
|
+
the Software, and to permit persons to whom the Software is furnished to do so,
|
12
|
+
subject to the following conditions:
|
13
|
+
|
14
|
+
The above copyright notice and this permission notice shall be included in all
|
15
|
+
copies or substantial portions of the Software.
|
16
|
+
|
17
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
18
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
19
|
+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
20
|
+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
21
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
22
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
package/Makefile
ADDED
@@ -0,0 +1,85 @@
|
|
1
|
+
# Since we rely on paths relative to the makefile location, abort if make isn't being run from there.
|
2
|
+
$(if $(findstring /,$(MAKEFILE_LIST)),$(error Please only invoke this makefile from the directory it resides in))
|
3
|
+
# Note: With Travis CI:
|
4
|
+
# - the path to urchin is passed via the command line.
|
5
|
+
# - the other utilities are NOT needed, so we skip the test for their existence.
|
6
|
+
URCHIN := urchin
|
7
|
+
ifeq ($(findstring /,$(URCHIN)),) # urchin path was NOT passed in.
|
8
|
+
# Add the local npm packages' bin folder to the PATH, so that `make` can find them, when invoked directly.
|
9
|
+
# Note that rather than using `$(npm bin)` the 'node_modules/.bin' path component is hard-coded, so that invocation works even from an environment
|
10
|
+
# where npm is (temporarily) unavailable due to having deactivated an nvm instance loaded into the calling shell in order to avoid interference with tests.
|
11
|
+
export PATH := $(shell printf '%s' "$$PWD/node_modules/.bin:$$PATH")
|
12
|
+
# The list of all supporting utilities, installed with `npm install`.
|
13
|
+
UTILS := $(URCHIN) replace semver
|
14
|
+
# Make sure that all required utilities can be located.
|
15
|
+
UTIL_CHECK := $(or $(shell PATH="$(PATH)" which $(UTILS) >/dev/null && echo 'ok'),$(error Did you forget to run `npm install` after cloning the repo? At least one of the required supporting utilities not found: $(UTILS)))
|
16
|
+
endif
|
17
|
+
# The files that need updating when incrementing the version number.
|
18
|
+
VERSIONED_FILES := nvm.sh install.sh README.md package.json
|
19
|
+
# Define all shells to test with. Can be overridden with `make SHELLS=... <target>`.
|
20
|
+
SHELLS := sh bash dash zsh # ksh (#574)
|
21
|
+
# Generate 'test-<shell>' target names from specified shells.
|
22
|
+
# The embedded shell names are extracted on demand inside the recipes.
|
23
|
+
SHELL_TARGETS := $(addprefix test-,$(SHELLS))
|
24
|
+
# Define the default test suite(s). This can be overridden with `make TEST_SUITE=<...> <target>`.
|
25
|
+
# Test suites are the names of subfolders of './test'.
|
26
|
+
TEST_SUITE := $(shell find ./test/* -type d -prune -exec basename {} \;)
|
27
|
+
|
28
|
+
|
29
|
+
# Default target (by virtue of being the first non '.'-prefixed in the file).
|
30
|
+
.PHONY: _no-target-specified
|
31
|
+
_no-target-specified:
|
32
|
+
$(error Please specify the target to make - `make list` shows targets. Alternatively, use `npm test` to run the default tests; `npm run` shows all tests)
|
33
|
+
|
34
|
+
# Lists all targets defined in this makefile.
|
35
|
+
.PHONY: list
|
36
|
+
list:
|
37
|
+
@$(MAKE) -pRrn : -f $(MAKEFILE_LIST) 2>/dev/null | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | egrep -v -e '^[^[:alnum:]]' -e '^$@$$' | sort
|
38
|
+
|
39
|
+
# Set of test-<shell> targets; each runs the specified test suites for a single shell.
|
40
|
+
# Note that preexisting NVM_* variables are unset to avoid interfering with tests, except when running the Travis tests (where NVM_DIR must be passed in and the env. is assumed to be pristine).
|
41
|
+
.PHONY: $(SHELL_TARGETS)
|
42
|
+
$(SHELL_TARGETS):
|
43
|
+
@shell='$@'; shell=$${shell##*-}; which "$$shell" >/dev/null || { printf '\033[0;31m%s\033[0m\n' "WARNING: Cannot test with shell '$$shell': not found." >&2; exit 0; } && \
|
44
|
+
printf '\n\033[0;34m%s\033[0m\n' "Running tests in $$shell"; \
|
45
|
+
[ -z "$$TRAVIS_BUILD_DIR" ] && for v in $$(set | awk -F'=' '$$1 ~ "^NVM_" { print $$1 }'); do unset $$v; done && unset v; \
|
46
|
+
for suite in $(TEST_SUITE); do $(URCHIN) -f -s $$shell test/$$suite || exit; done
|
47
|
+
|
48
|
+
# All-tests target: invokes the specified test suites for ALL shells defined in $(SHELLS).
|
49
|
+
.PHONY: test
|
50
|
+
test: $(SHELL_TARGETS)
|
51
|
+
|
52
|
+
.PHONY: _ensure-tag
|
53
|
+
_ensure-tag:
|
54
|
+
ifndef TAG
|
55
|
+
$(error Please invoke with `make TAG=<new-version> release`, where <new-version> is either an increment specifier (patch, minor, major, prepatch, preminor, premajor, prerelease), or an explicit major.minor.patch version number)
|
56
|
+
endif
|
57
|
+
|
58
|
+
# Ensures there are version tags in repository
|
59
|
+
.PHONY: _ensure-current-version
|
60
|
+
|
61
|
+
_ensure-current-version:
|
62
|
+
ifeq ($(shell git tag),$(printf ''))
|
63
|
+
@git fetch --tags
|
64
|
+
endif
|
65
|
+
|
66
|
+
# Ensures that the git workspace is clean.
|
67
|
+
.PHONY: _ensure-clean
|
68
|
+
_ensure-clean:
|
69
|
+
@[ -z "$$(git status --porcelain --untracked-files=no || echo err)" ] || { echo "Workspace is not clean; please commit changes first." >&2; exit 2; }
|
70
|
+
|
71
|
+
# Makes a release; invoke with `make TAG=<versionOrIncrementSpec> release`.
|
72
|
+
.PHONY: release
|
73
|
+
release: _ensure-tag _ensure-clean _ensure-current-version
|
74
|
+
@old_ver=`git describe --abbrev=0 --tags --match 'v[0-9]*.[0-9]*.[0-9]*'` || { echo "Failed to determine current version." >&2; exit 1; }; old_ver=$${old_ver#v}; \
|
75
|
+
new_ver=`echo "$(TAG)" | sed 's/^v//'`; new_ver=$${new_ver:-patch}; \
|
76
|
+
if printf "$$new_ver" | grep -q '^[0-9]'; then \
|
77
|
+
semver "$$new_ver" >/dev/null || { echo 'Invalid version number specified: $(TAG) - must be major.minor.patch' >&2; exit 2; }; \
|
78
|
+
semver -r "> $$old_ver" "$$new_ver" >/dev/null || { echo 'Invalid version number specified: $(TAG) - must be HIGHER than current one.' >&2; exit 2; } \
|
79
|
+
else \
|
80
|
+
new_ver=`semver -i "$$new_ver" "$$old_ver"` || { echo 'Invalid version-increment specifier: $(TAG)' >&2; exit 2; } \
|
81
|
+
fi; \
|
82
|
+
printf "=== Bumping version **$$old_ver** to **$$new_ver** before committing and tagging:\n=== TYPE 'proceed' TO PROCEED, anything else to abort: " && read response && [ "$$response" = 'proceed' ] || { echo 'Aborted.' >&2; exit 2; }; \
|
83
|
+
replace "$$old_ver" "$$new_ver" $(VERSIONED_FILES) && \
|
84
|
+
git commit -m "v$$new_ver" $(VERSIONED_FILES) && \
|
85
|
+
git tag -a "v$$new_ver"
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# `nvm` Charter
|
2
|
+
|
3
|
+
nvm is a version manager for Node.js, designed to be installed per-user, and invoked per-shell. nvm works on any POSIX-compliant shell (sh, dash, ksh, zsh, bash), in particular on these platforms: unix, macOS, and Windows WSL.
|
4
|
+
|
5
|
+
## Section 0: Guiding Principles
|
6
|
+
|
7
|
+
The `nvm` project is part of the [OpenJS Foundation][openjs foundation], which operates transparently, openly, collaboratively, and ethically. Project proposals, timelines, and status must not merely be open, but also easily visible to outsiders.
|
8
|
+
|
9
|
+
## Section 1: Scope
|
10
|
+
|
11
|
+
`nvm` is a node version manager, focused on making it easy to install and manage multiple Node.js versions. Any features related to managing the installation and removal of Node.js on any node-supported platform are potentially in scope.
|
12
|
+
|
13
|
+
## Section 2: Relationship with OpenJS Foundation CPC.
|
14
|
+
|
15
|
+
Technical leadership for the projects within the [OpenJS Foundation][openjs foundation] is delegated to the projects through their project charters by the [OpenJS Foundation Cross-Project Council](https://openjsf.org/about/governance/) (CPC). In the case of the `nvm` project, it is delegated to the [`nvm` Maintainers](README.md#maintainers) (the “Maintainers”). The OpenJS Foundation's business leadership is the Board of Directors (the “Board”).
|
16
|
+
|
17
|
+
This `nvm` Charter reflects a carefully constructed balanced role for the Maintainers and the CPC in the governance of the OpenJS Foundation. The charter amendment process is for the Maintainers to propose changes using simple majority of the full Maintainers, the proposed changes being subject to review and approval by the CPC. The CPC may additionally make amendments to the project charter at any time, though the CPC will not interfere with day-to-day discussions, votes or meetings of the Maintainers.
|
18
|
+
|
19
|
+
### 2.1 Other Formal Project Relationships
|
20
|
+
|
21
|
+
Section Intentionally Left Blank
|
22
|
+
|
23
|
+
## Section 3: `nvm`'s Maintainers Governing Body
|
24
|
+
|
25
|
+
`nvm` is governed by its [maintainers](README.md#maintainers).
|
26
|
+
|
27
|
+
## Section 4: Roles & Responsibilities
|
28
|
+
|
29
|
+
The roles and responsibilities of `nvm`'s Maintainers are described in [GOVERNANCE.md](./GOVERNANCE.md).
|
30
|
+
|
31
|
+
### Section 4.1 Project Operations & Management
|
32
|
+
|
33
|
+
Section Intentionally Left Blank
|
34
|
+
|
35
|
+
### Section 4.2: Decision-making, Voting, and/or Elections
|
36
|
+
|
37
|
+
Section Intentionally Left Blank
|
38
|
+
|
39
|
+
### Section 4.3: Other Project Roles
|
40
|
+
|
41
|
+
Section Intentionally Left Blank
|
42
|
+
|
43
|
+
## Section 5: Definitions
|
44
|
+
|
45
|
+
- *Contributors*: contribute code or other artifacts, but do not have the right to commit to the codebase. Contributors work with the project’s maintainers to have code committed to the code base. A Contributor may be promoted to a Maintainer by the Maintainers. Contributors should rarely be encumbered by the Maintainers and never by the CPC or OpenJS Foundation Board.
|
46
|
+
|
47
|
+
- *Maintainers*: Contributors with any kind of decision-making authority in the project.
|
48
|
+
|
49
|
+
[openjs foundation]: https://openjsf.org
|