diff --git a/.github/ISSUE_TEMPLATE/bug_6.md b/.github/ISSUE_TEMPLATE/bug_6.md
new file mode 100644
index 0000000000000..d6808074b88fa
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_6.md
@@ -0,0 +1,35 @@
+---
+name: 🐞 Bug v6
+about: File a bug/issue against v6.x
+title: '[BUG]
'
+labels: Bug, Needs Triage, Release 6.x
+assignees: ''
+
+---
+
+
+
+### Current Behavior:
+
+
+### Expected Behavior:
+
+
+### Steps To Reproduce:
+
+
+### Environment:
+
diff --git a/.github/ISSUE_TEMPLATE/bug_7.md b/.github/ISSUE_TEMPLATE/bug_7.md
new file mode 100644
index 0000000000000..48faa9c79ed6b
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_7.md
@@ -0,0 +1,35 @@
+---
+name: 🐞 Bug v7
+about: File a bug/issue against v7.x
+title: '[BUG] '
+labels: Bug, Needs Triage, Release 7.x
+assignees: ''
+
+---
+
+
+
+### Current Behavior:
+
+
+### Expected Behavior:
+
+
+### Steps To Reproduce:
+
+
+### Environment:
+
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 0000000000000..64449dae28ae7
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1,17 @@
+blank_issues_enabled: true
+contact_links:
+ - name: ⭐️ Feature Request
+ url: https://github.com/npm/rfcs/discussions/category_choices
+ about: Add your request or discuss the project w/ the community
+ - name: 📃 RFC
+ url: https://github.com/npm/rfcs
+ about: Create a more formal proposal/idea via our RFC
+ - name: 🚥 Registry Status
+ url: https://status.npmjs.org
+ about: Check the current status of the website/registry
+ - name: 🗂 Documentation
+ url: https://preview-docs.npmjs.com/cli-commands/npm
+ about: Preview our new docs
+ - name: 📫 Support
+ url: https://npm.community
+ about: Links to other support options &/or community references
diff --git a/.github/settings.yml b/.github/settings.yml
new file mode 100644
index 0000000000000..4aaa0dd57e4ad
--- /dev/null
+++ b/.github/settings.yml
@@ -0,0 +1,2 @@
+---
+_extends: 'open-source-project-boilerplate'
diff --git a/.github/workflows/benchmark-comment.yml b/.github/workflows/benchmark-comment.yml
new file mode 100644
index 0000000000000..de86c3c132bb7
--- /dev/null
+++ b/.github/workflows/benchmark-comment.yml
@@ -0,0 +1,92 @@
+---
+name: Benchmark CLI - Comment
+
+on:
+ issue_comment:
+ types: [created, edited]
+
+jobs:
+ comment-handler:
+ name: Trigger Benchmarks
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Handle Incoming Comment
+ env:
+ DISPATCH_REPO: "benchmarks"
+ DISPATCH_OWNER: "npm"
+ EVENT_NAME: ${{ github.event_name }}
+ EVENT_ACTION: ${{ github.event.action }}
+ OWNER: ${{ github.event.repository.owner.login }}
+ REPO: ${{ github.event.repository.name }}
+ ISSUE_NUMBER: ${{ github.event.issue.number }}
+ COMMENT_BODY: ${{ github.event.comment.body }}
+ COMMENT_ID: ${{ github.event.comment.id }}
+ COMMENT_NODE_ID: ${{ github.event.comment.node_id }}
+ COMMENT_ACTIONABLE: ${{ startsWith(github.event.comment.body, 'test this please ✅') }}
+ AUTH_TOKEN: ${{ secrets.NPM_DEPLOY_USER_PAT }}
+ run: |
+ # Comment Handler
+
+ # Creates an exit early condition if there are errors
+ # Exit early if `jq` is not present
+ set -e
+ jq --version
+
+ # Figure out if comment came from pull-request or issue
+ IS_PR=$(curl -s https://api.github.com/repos/${OWNER}/${REPO}/issues/${ISSUE_NUMBER} | jq -cr '.pull_request.url')
+
+ if [ "${IS_PR}" != "null" ]; then
+ echo "Comment from pull/${ISSUE_NUMBER}."
+
+ # It is a pull-request; check comment body for correct phrase
+ if [ "${COMMENT_ACTIONABLE}" == "true" ]; then
+ # Fetch pull-request information
+ PR_DATA=$(curl -s "${IS_PR}")
+ PR_OWNER=$(echo "${PR_DATA}" | jq '.head.repo.owner.login')
+ PR_REPO=$(echo "${PR_DATA}" | jq '.head.repo.name')
+ PR_COMMIT_SHA=$(curl -s "${IS_PR}/commits" | jq -r '.[0].sha')
+
+ # dispatch request for benchmarks
+ echo "Dispatching request..."
+ curl \
+ -s \
+ -X POST https://api.github.com/repos/${DISPATCH_OWNER}/${DISPATCH_REPO}/dispatches \
+ -H "Accept: application/vnd.github.everest-preview+json" \
+ -H "Authorization: token ${AUTH_TOKEN}" \
+ -d \
+ '
+ {
+ "event_type": "'"${EVENT_NAME}"'",
+ "client_payload": {
+ "pr_id": "'"${ISSUE_NUMBER}"'",
+ "repo": "'"${PR_REPO}"'",
+ "owner": "'"${PR_OWNER}"'",
+ "commit_sha": "'"${PR_COMMIT_SHA}"'"
+ }
+ }'
+
+ # Create reaction on comment to confirm dispatch was sent
+ curl \
+ -s \
+ -X POST https://api.github.com/graphql \
+ -H "Content-Type: application/json" \
+ -H "Authorization: token ${AUTH_TOKEN}" \
+ -d \
+ '
+ {
+ "query": "mutation($inputData:AddReactionInput!) { addReaction(input:$inputData) { reaction { content } } }",
+ "variables": {
+ "inputData": {
+ "subjectId": "'"${COMMENT_NODE_ID}"'",
+ "content": "ROCKET"
+ }
+ }
+ }'
+ else
+ echo "Comment not actionable."
+ fi
+ else
+ echo "Comment not from pull-request."
+ fi
diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml
new file mode 100644
index 0000000000000..0920f711c5aff
--- /dev/null
+++ b/.github/workflows/benchmark.yml
@@ -0,0 +1,68 @@
+---
+name: Benchmark Suite
+
+on:
+ push:
+ branches:
+ - "latest"
+ pull_request:
+ branches:
+ - "**"
+
+jobs:
+ build:
+ name: Trigger Benchmarks
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Handle Incoming Pull-Request
+ env:
+ DISPATCH_REPO: "benchmarks"
+ DISPATCH_OWNER: "npm"
+ EVENT_NAME: ${{ github.event_name }}
+ EVENT_ACTION: ${{ github.event.action }}
+ REPO: ${{ github.event.repository.name }}
+ PR_NUMBER: ${{ github.event.pull_request.number }}
+ PR_OWNER: ${{ github.event.pull_request.head.repo.owner.login }}
+ PR_COMMITS_URL: ${{ github.event.pull_request.commits_url }}
+ PR_COMMIT_SHA: ${{ github.event.pull_request.head.sha }}
+ AUTH_TOKEN: ${{ secrets.NPM_DEPLOY_USER_PAT }}
+ run: |
+ # Dispatch Handler
+
+ dispatch_request () {
+ echo "Dispatching request..."
+ REF_SHA=$1
+ curl \
+ -s \
+ -X POST https://api.github.com/repos/${DISPATCH_OWNER}/${DISPATCH_REPO}/dispatches \
+ -H "Accept: application/vnd.github.everest-preview+json" \
+ -H "Authorization: token ${AUTH_TOKEN}" \
+ -d \
+ '
+ {
+ "event_type": "'"${EVENT_NAME}"'",
+ "client_payload": {
+ "pr_id": "'"${PR_NUMBER}"'",
+ "repo": "'"${REPO}"'",
+ "owner": "'"${PR_OWNER}"'",
+ "commit_sha": "'"${REF_SHA}"'"
+ }
+ }'
+ }
+
+ if [ "${AUTH_TOKEN}" != "" ]; then
+ if [ "${EVENT_ACTION}" == "opened" ]; then
+ # Fetch the head commit sha, since it doesn't exist in the body of this event
+ COMMIT_SHA=$(curl -s "${PR_COMMITS_URL}" | jq -r '.[0].sha')
+
+ # Dispatch request for benchmarks
+ dispatch_request "${COMMIT_SHA}"
+ else
+ # Dispatch request for benchmarks
+ dispatch_request "${PR_COMMIT_SHA}"
+ fi
+ else
+ echo "NO AUTH - FORK PULL REQUEST"
+ fi
diff --git a/.github/workflows/ci-serial.yml b/.github/workflows/ci-serial.yml
new file mode 100644
index 0000000000000..14f8b2fc950d6
--- /dev/null
+++ b/.github/workflows/ci-serial.yml
@@ -0,0 +1,34 @@
+name: Node Serial CI
+
+on: [push, pull_request]
+
+jobs:
+ build:
+ strategy:
+ fail-fast: false
+ matrix:
+ node-version: [6.x, 8.x, 10.x, 12.x, 14.x]
+ os: [windows-latest]
+
+ runs-on: ${{ matrix.os }}
+
+ steps:
+ # Checkout the npm/cli repo
+ - uses: actions/checkout@v2
+
+ # Installs the specific version of Node.js
+ - name: Use Node.js ${{ matrix.node-version }}
+ uses: actions/setup-node@v1
+ with:
+ node-version: ${{ matrix.node-version }}
+
+ # Run the installer script
+ - name: Install dependencies
+ run: node . install
+
+ # Run the tests
+ - name: Run Tap tests
+ run: node . run tap:serial -- "test/tap/*.js" -t600 -Rclassic -c
+ env:
+ DEPLOY_VERSION: testing
+
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000000000..f9fd9a9f9e438
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,51 @@
+name: Node CI
+
+on: [push, pull_request]
+
+jobs:
+ build:
+ strategy:
+ fail-fast: false
+ matrix:
+ node-version: [6.x, 8.x, 10.x, 12.x, 14.x]
+ os: [ubuntu-latest, macOS-latest]
+
+ runs-on: ${{ matrix.os }}
+
+ steps:
+ # Checkout the npm/cli repo
+ - uses: actions/checkout@v2
+
+ # Installs the specific version of Node.js
+ - name: Use Node.js ${{ matrix.node-version }}
+ uses: actions/setup-node@v1
+ with:
+ node-version: ${{ matrix.node-version }}
+
+ # Run the installer script
+ - name: Install dependencies
+ run: node . install
+
+ # Run the tests
+ - name: Run Tap tests
+ run: node . run tap -- "test/tap/*.js" -t600 -Rclassic -c
+ env:
+ DEPLOY_VERSION: testing
+
+ # Run coverage check
+ - name: Run coverage report
+ if: matrix.os == 'ubuntu-latest' && matrix.node-version == '12.x'
+ run: node . run tap -- "test/tap/*.js" -t600 -Rclassic -c
+ env:
+ DEPLOY_VERSION: testing
+ COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_OPTIONAL_TOKEN }}
+
+ # - name: Run sudo tests on Linux
+ # if: matrix.os == 'ubuntu-latest'
+ # run: sudo PATH=$PATH $(which node) . run tap -- "test/tap/*.js" --coverage --timeout 600
+
+ - name: Lint
+ run: node . run lint
+
+ - name: Validate licenses
+ run: node . run licenses
diff --git a/.gitignore b/.gitignore
index efd010de30823..923690dc2bc95 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,9 +8,9 @@ npm-debug.log
/test/packages/test-package/random-data.txt
/test/root
/node_modules/.bin
-/html/doc/
+/docs/output/
+/docs/node_modules/
/man/
-/doc/*/npm-index.md
/npmrc
/release/
/npm-*.tgz
@@ -23,3 +23,6 @@ npm-debug.log
.nyc_output
/test/npm_cache*
/node_modules/.cache
+.DS_Store
+**/.DS_Store
+.vscode/
diff --git a/.mailmap b/.mailmap
index a14e7b8287bc8..725a59da65590 100644
--- a/.mailmap
+++ b/.mailmap
@@ -2,13 +2,14 @@ Alex K. Wolfe
Andrew Bradley
Andrew Lunny
Arlo Breault
-Ashley Williams
Ashley Williams
+Ashley Williams
Benjamin Coe
Benjamin Coe
Brian White
Cedric Nelson
Charlie Robbins
+Claudia Hernández
Dalmais Maxence
Danila Gerasimov
Dave Galbraith
@@ -22,22 +23,23 @@ Evan Lucas
Evan Lucas
Faiq Raza
Forbes Lindesay
-Forrest L Norvell
+Forrest L Norvell
+Forrest L Norvell
Gabriel Barros
Geoff Flarity
Gregers Gram Rygg
Ifeanyi Oraelosi
-Isaac Z. Schlueter
-Isaac Z. Schlueter
-isaacs
+isaacs
+isaacs
+isaacs
Jake Verbaten
James Sanders
James Treworgy
Jason Smith
Jed Fox
+Jonas Weber
Joshua Bennett
Joshua Bennett
-Jonas Weber
Julien Meddah
Kat Marchán
Kevin Lorenz
@@ -51,12 +53,12 @@ Max Goodman
Maxim Bogushevich
Maximilian Antoni
Michael Hayes
-Nicolas Morel
Misha Kaletsky
+Nicolas Morel
Olivier Melcher
Ra'Shaun Stovall
-Rebecca Turner
Rebecca Turner
+Rebecca Turner
Ryan Emery
Sam Mikes
Sreenivas Alapati
diff --git a/.npmignore b/.npmignore
index 12efef27852da..f45f47b93829b 100644
--- a/.npmignore
+++ b/.npmignore
@@ -1,11 +1,13 @@
*.swp
.*.swp
+netlify.toml
npm-debug.log
/.github
/test
node_modules/marked
node_modules/marked-man
node_modules/tap
+tap-snapshots
node_modules/.bin
node_modules/npm-registry-mock
/npmrc
@@ -22,5 +24,5 @@ html/*.png
*.pyc
-
+Session.vim
.nyc_output
diff --git a/.travis.yml b/.travis.yml
index 07bae65e6640f..16165cd643da8 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,36 +1,20 @@
-sudo: false
# need to declare the language as well as the matrix below
language: node_js
-# having top-level `env:` adds a phantom build
-# https://github.com/travis-ci/travis-ci/issues/4681
-#env: DEPLOY_VERSION=testing
-matrix:
- include:
- # LTS is our most important target
- - node_js: "12"
- # DEPLOY_VERSION is used to set the couchapp setup mode for test/tap/registry.js
- # only gather coverage info for LTS
- env: DEPLOY_VERSION=testing COVERALLS_REPO_TOKEN="$COVERALLS_OPTIONAL_TOKEN"
- script:
- - "node . run tap-cover -- \"test/tap/*.js\""
- - "unset COVERALLS_REPO_TOKEN ; node . run tap -- \"test/broken-under-*/*.js\""
- # previous LTS is next most important
- - node_js: "10"
- env: DEPLOY_VERSION=testing
- script:
- - "npx standard"
- - "node . run licenses"
- - "node . run tap -- \"test/tap/*.js\" \"test/broken-under-nyc/*.js\""
- - node_js: "8"
- env: DEPLOY_VERSION=testing
- - node_js: "6"
- env: DEPLOY_VERSION=testing
-notifications:
- slack: npm-inc:kRqQjto7YbINqHPb1X6nS3g8
-cache:
- directories:
- - node_modules/.cache
+
+os:
+ - windows
+
+node_js:
+ - 14
+ - 12
+ - 10
+ - 8
+ - 6
+
+env: "DEPLOY_VERSION=testing"
+
install:
- "node . install"
+
script:
- - "node . run tap -- \"test/tap/*.js\" \"test/broken-under-nyc/*.js\""
+ - "node . run tap -- \"test/tap/*.js\" -t600 -Rclassic -c"
diff --git a/AUTHORS b/AUTHORS
index 6d31174b73f66..817a87a8856be 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,5 +1,4 @@
# Authors sorted by whether or not they're me
-Isaac Z. Schlueter
isaacs
Steve Steiner
Mikeal Rogers
@@ -644,7 +643,78 @@ Florian Keller
Sreeram Jayan
--get
raywu0123
-isaacs
Iván Reinoso García
Roy Marples
Robert James Gabriel
+John Firebaugh
+Kitten King
+Claudia Hernández
+Artem Sapegin
+Márton Salomváry
+gall0ws
+Olivier Chevet
+Maël Nison
+Sara Ahbabou
+Gareth Jones
+Ruy Adorno
+Michael Perrotte
+Ben Blank
+Christian Clauss
+Nikita Lebedev
+Henrik Gemal
+Philip Harrison
+Jason Etcovitch
+Darcy Clarke
+orion
+NoDocCat
+joan xie
+Amal Hussein
+Brett Zamir
+Menelaos Kotsollaris
+Mehdi Hasan Khan
+Craig Loewen
+Fighting-Jack <574637316@qq.com>
+Bakel, Roel van
+Charlie West-Toebe <38671683+Hoidberg@users.noreply.github.com>
+Richard Lau
+Felix Yan
+Zhenya Vinogradov
+Rafael Hengles
+Jan-Philip Gehrcke
+Caleb Sacks <16855387+clabe45@users.noreply.github.com>
+Kyle Getz
+Sean Healy
+Netanel Gilad
+Dave Nicolson
+Ajay Narain Mathur
+Vitaliy Markitanov <9357021+vit100@users.noreply.github.com>
+simon_s
+John Kennedy
+Bernard Kitchens
+Jarda Snajdr
+Naix Geng <1308363651@qq.com>
+Dylan Treisman
+mum-never-proud
+Peter Fich
+Maxwell Gerber
+Sean Poulter
+vanishcode
+Jean-Charles Sisk
+Martin Packman
+Danielle Adams
+Gianfranco Costamagna
+Antonio
+Sandra Tatarevićová
+Antoine du Hamel
+Assaf Sapir
+Lukas Spieß
+Darcy Clarke
+Jim Fisher
+Xavier Guimard
+Edward Thomson
+Attila Večerek
+Edward Thomson
+Myles Borins
+Colm Bhandal
+Luke Karrys
+Ruy Adorno
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7c472f999a118..23bd3e79f136d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,1005 @@
+## 6.14.18 (2022-12-21)
+
+### DEPENDENCIES
+
+* [`f55bd65da`](https://github.com/npm/cli/commit/f55bd65da0da00655c4d4312b30d65160e7149a6)
+ `rimraf@2.7.1`
+* [`cd4894696`](https://github.com/npm/cli/commit/cd4894696698f3a15bfa57eac373acd7f1121100)
+ `bluebird@3.7.2`
+* [`023d7e96b`](https://github.com/npm/cli/commit/023d7e96b7c20be4071d3da32fd74856651eb3dd)
+ `cacache@12.0.4`
+* [`dd2811c0b`](https://github.com/npm/cli/commit/dd2811c0b1e274dc56dd8e1f50d8b07bf1acc851)
+ `config-chain@1.1.1`:3
+* [`e21b6ebd9`](https://github.com/npm/cli/commit/e21b6ebd9ae1a543864f9667dd141979c87b6724)
+ `deep-equal@1.1.1`
+* [`2bec581c6`](https://github.com/npm/cli/commit/2bec581c6bd3ac622b8b46b2a13bc2e131c0bea4)
+ `dezalgo@1.0.4`
+* [`273485157`](https://github.com/npm/cli/commit/273485157d5743a51003f91670de18e1811f9b9f)
+ `figgy-pudding@3.5.2`
+* [`720f8ae5e`](https://github.com/npm/cli/commit/720f8ae5e120670463e1437ea201ef774ee5529b)
+ `glob@7.2.3`
+* [`5f1200e33`](https://github.com/npm/cli/commit/5f1200e3386422b055fbbdb274580f12ca85992d)
+ `graceful-fs@4.2.1`:0
+* [`58b74a38b`](https://github.com/npm/cli/commit/58b74a38b28aece8ae91474c48cc46dcb544e89d)
+ `is-cidr@3.1.1`
+* [`4b609655f`](https://github.com/npm/cli/commit/4b609655f5ed554bfb2eb1de2c8a3272a7da7cfd)
+ `jsdom@16.7.0`
+* [`14c7a1a85`](https://github.com/npm/cli/commit/14c7a1a85445bfd5277a4e4afdc31c98c5f67dac)
+ `meant@1.0.3`
+* [`06d9cefc4`](https://github.com/npm/cli/commit/06d9cefc4e2d07ca7160272765449d46d34b0bc4)
+ `minimatch@3.1.2`
+* [`1d2da355c`](https://github.com/npm/cli/commit/1d2da355ca7a7af1bf2d918ec5005cc820334af7)
+ `mkdirp@0.5.6`
+* [`22eda3a26`](https://github.com/npm/cli/commit/22eda3a26cb14f1a0ab82e6eadb9132cd87e7183)
+ `node-gyp@5.1.1`
+* [`b77a7f1b0`](https://github.com/npm/cli/commit/b77a7f1b095cf06b20817923cb0629e979a08ca5)
+ `npm-registry-mock@1.3.2`
+* [`de37398af`](https://github.com/npm/cli/commit/de37398af08036d62a6b4eb6d475c02b0e6f1161)
+ `query-string@6.14.1`
+* [`196650baa`](https://github.com/npm/cli/commit/196650baa43046c8db165a3130850a304cb9a8b7)
+ `qw@1.0.2`
+* [`3218c16b5`](https://github.com/npm/cli/commit/3218c16b5041821b7f72efeb0f8c19408bbf6df1)
+ `read-package-json@2.1.2`
+* [`0f5d57919`](https://github.com/npm/cli/commit/0f5d579197122713b9ffb2a7ee78108c3a851d49)
+ `request@2.88.2`
+* [`43ed5c23b`](https://github.com/npm/cli/commit/43ed5c23b806d4904df83bd72854b57012f65992)
+ `safe-buffer@5.2.1`
+* [`31b51c564`](https://github.com/npm/cli/commit/31b51c5646de729c691c2dec94f73988f6dd7d8a)
+ `tar-stream@2.2.0`
+* [`209a79d1f`](https://github.com/npm/cli/commit/209a79d1fc5a00288f23f6e359212f6420530ed3)
+ `uuid@3.4.0`
+* [`4778a8d95`](https://github.com/npm/cli/commit/4778a8d95680d62494035600a7240395a580c04d)
+ `yaml@1.10.2`
+* [`8b357e558`](https://github.com/npm/cli/commit/8b357e5581a4fd4c95fcb889c4d89e1634c7c862)
+ `decode-uri-component@0.2.2`
+* [`d3e7eed13`](https://github.com/npm/cli/commit/d3e7eed13a1109d7760e62bca639ed3ef64a0bd3)
+ `lock-verify@2.2.2`
+
+## 6.14.17 (2022-04-28)
+
+### DEPENDENCIES
+
+* [`a869ec48b`](https://github.com/npm/cli/commit/a869ec48b9481c10302378e6c2d94fe36e4c81c2)
+ `ansi-regex@4.1.1`
+* [`a869ec48b`](https://github.com/npm/cli/commit/a869ec48b9481c10302378e6c2d94fe36e4c81c2)
+ `minimist@1.2.6`
+
+## 6.14.16 (2022-01-19)
+
+### CHORE
+
+* [`0afe4f12f`](https://github.com/npm/cli/commit/0afe4f12f6b69f8fa6d39451b6e684fbef5fe1e2)
+ update one-time password prompt
+ ([@ruyadorno](https://github.com/ruyadorno))
+
+### DEPENDENCIES
+
+* [`2c534f801`](https://github.com/npm/cli/commit/2c534f801b87d6b8d6c534d326ca39654e313fe9)
+ `json-schema@0.4.0`
+
+
+## 6.14.15 (2021-08-23)
+
+### DEPENDENCIES
+
+* [`8160e6e4b`](https://github.com/npm/cli/commit/8160e6e4b58c0f76e720183f2057e26c6d9d8470)
+ `path-parse@1.0.7`
+* [`3079f5038`](https://github.com/npm/cli/commit/3079f503896323ab10bfad5bbdb7fe5ca9207d4b)
+ `tar@4.4.1`
+
+## 6.14.14 (2021-07-27)
+
+### DEPENDENCIES
+
+* [`4627c0670`](https://github.com/npm/cli/commit/4627c0670957ee5c5e8506750f4626493aabdc25)
+ `tar@4.4.15`
+
+## 6.14.13 (2021-04-08)
+
+### DEPENDENCIES
+
+* [`285ab3f65`](https://github.com/npm/cli/commit/285ab3f654882860246f729eb52e2c8c6a6d6e01)
+ `hosted-git-info@2.8.9`
+* [`63b5c56c5`](https://github.com/npm/cli/commit/63b5c56c5203c8965c8ddeff28f2a65010b40b7c)
+ `ssri@6.0.2`
+
+## 6.14.12 (2021-03-25)
+
+### DEPENDENCIES
+
+* [`e47654048`](https://github.com/npm/cli/commit/e4765404844a0b6795752b2bc6f9b9107fe713be)
+ [#2737](https://github.com/npm/cli/pull/2737)
+ Update y18n to fix CVE-2020-7774
+ ([@vecerek](https://github.com/vecerek))
+
+## 6.14.11 (2021-01-07)
+### DEPENDENCIES
+
+* [`19108ca5b`](https://github.com/npm/cli/commit/19108ca5be1b3e7e9787dac3131aafe2722c6218)
+ `ini@1.3.8`:
+ * addressing [`CVE-2020-7788`](https://github.com/advisories/GHSA-qqgx-2p2h-9c37)
+* [`7a0574074`](https://github.com/npm/cli/commit/7a05740743ac9d9229e2dc9e1b9ca8b57d58c789)
+ `bl@3.0.1`
+ * addressing [`CVE-2020-8244`](https://github.com/advisories/GHSA-pp7h-53gx-mx7r)
+
+## 6.14.10 (2020-12-18)
+
+### DEPENDENCIES
+
+* [`906d647e1`](https://github.com/npm/cli/commit/906d647e1cacd74243abcacba3bade80437f30f5)
+`opener@1.5.2`
+ * fixes: [`#36445`](https://github.com/nodejs/node/issues/36445) addressing
+[`GHSL-2020-145`](https://securitylab.github.com/advisories/GHSL-2020-145-domenic-opener)
+
+## 6.14.9 (2020-11-20)
+
+### BUG FIXES
+* [`4a91e48aa`](https://github.com/npm/cli/commit/4a91e48aa92be5b2739ebcdd8a9a841ff5cb6817)
+ fix: docs generation breaking builds
+
+### DEPENDDENCIES
+* [`ab80a7cf0`](https://github.com/npm/cli/commit/ab80a7cf092d52f4b055cc6d03c38b6115c4b582)
+ `npm-user-validate@1.0.1`
+ * dep update to resolve security issue [GHSA-xgh6-85xh-479p](https://github.com/advisories/GHSA-xgh6-85xh-479p)
+* [`6b2ab9d53`](https://github.com/npm/cli/commit/6b2ab9d532ef8ffce326f4caa23eb27f83765acd)
+ `har-validator@5.1.5`
+ * dep update to resolve security issue [SNYK-JS-AJV-584908](https://snyk.io/vuln/SNYK-JS-AJV-584908)
+
+## 6.14.8 (2020-08-17)
+
+### BUG FIXES
+* [`9262e8c88`](https://github.com/npm/cli/commit/9262e8c88f2f828206423928b8e21eea67f4801a)
+ [#1575](https://github.com/npm/cli/pull/1575)
+ npm install --dev deprecation message
+ ([@sandratatarevicova](https://github.com/sandratatarevicova))
+* [`765cfe0bc`](https://github.com/npm/cli/commit/765cfe0bc05a10b72026291ff0ca7c9ca5cb3f57)
+ [#1658](https://github.com/npm/cli/issues/1658)
+ remove unused broken require
+ ([@aduh95](https://github.com/aduh95))
+* [`4e28de79a`](https://github.com/npm/cli/commit/4e28de79a3a0aacc7603010a592beb448ceb6f5f)
+ [#1663](https://github.com/npm/cli/pull/1663)
+ Do not send user secret in the referer header
+ ([@assapir](https://github.com/assapir))
+
+### DOCUMENTATION
+* [`8abdf30c9`](https://github.com/npm/cli/commit/8abdf30c95ec90331456f3f2ed78e2703939bb74)
+ [#1572](https://github.com/npm/cli/pull/1572)
+ docs: add missing metadata in semver page
+ ([@tripu](https://github.com/tripu))
+* [`8cedcca46`](https://github.com/npm/cli/commit/8cedcca464ced5aab58be83dd5049c3df13384de)
+ [#1614](https://github.com/npm/cli/pull/1614)
+ Node-gyp supports both Python and legacy Python
+ ([@cclauss](https://github.com/cclauss))
+
+### DEPENDENCIES
+* [`a303b75fd`](https://github.com/npm/cli/commit/a303b75fd7c4b2644da02ad2ad46d80dfceec3c5)
+ `update-notifier@2.5.0`
+* [`c48600832`](https://github.com/npm/cli/commit/c48600832aff4cc349f59997e08dc4bbde15bd49)
+ `npm-registry-fetch@4.0.7`
+* [`a6e9fc4df`](https://github.com/npm/cli/commit/a6e9fc4df7092ba3eb5394193638b33c24855c36)
+ `meant@1.0.2`:
+
+## 6.14.7 (2020-07-21)
+
+### BUG FIXES
+* [`de5108836`](https://github.com/npm/cli/commit/de5108836189bddf28d4d3542f9bd5869cc5c2e9) [#784](https://github.com/npm/cli/pull/784) npm explore spawn shell correctly ([@jasisk](https://github.com/jasisk))
+* [`36e6c01d3`](https://github.com/npm/cli/commit/36e6c01d334c4db75018bc6a4a0bef726fd41ce4) git tag handling regression on shrinkwrap ([@claudiahdz](https://github.com/claudiahdz))
+* [`1961c9369`](https://github.com/npm/cli/commit/1961c9369c92bf8fe530cecba9834ca3c7f5567c) [#288](https://github.com/npm/cli/pull/288) Fix package id in shrinkwrap lifecycle step output ([@bz2](https://github.com/bz2))
+* [`87888892a`](https://github.com/npm/cli/commit/87888892a1282cc3edae968c3ae4ec279189271c) [#1009](https://github.com/npm/cli/pull/1009) gracefully handle error during npm install ([@danielleadams](https://github.com/danielleadams))
+* [`6fe2bdc25`](https://github.com/npm/cli/commit/6fe2bdc25e7961956e5c0067fa4db54ff1bd0dbd) [#1547](https://github.com/npm/cli/pull/1547) npm ls --parseable --long output ([@ruyadorno](https://github.com/ruyadorno))
+
+### DEPENDENCIES
+* [`2d78481c7`](https://github.com/npm/cli/commit/2d78481c7ec178e628ce23df940f73a05d5c6367) update mkdirp on tacks ([@claudiahdz](https://github.com/claudiahdz))
+* [`4e129d105`](https://github.com/npm/cli/commit/4e129d105eba3b12d474caa6e5ca216a98deb75a) uninstall npm-registry-couchapp ([@claudiahdz](https://github.com/claudiahdz))
+* [`8e1869e27`](https://github.com/npm/cli/commit/8e1869e278d1dd37ddefd6b4e961d1bb17fc9d09) update marked dev dep ([@claudiahdz](https://github.com/claudiahdz))
+* [`6a6151f37`](https://github.com/npm/cli/commit/6a6151f377063c6aca852c859c01910edd235ec6) `libnpx@10.2.4` ([@claudiahdz](https://github.com/claudiahdz))
+* [`dc21422eb`](https://github.com/npm/cli/commit/dc21422eb1ca1a4a19f160fad0e924566e08c496) `bin-links@1.1.8` ([@claudiahdz](https://github.com/claudiahdz))
+* [`d341f88ce`](https://github.com/npm/cli/commit/d341f88ce6feb3df1dcb37f34910fcc6c1db85f2) `gentle-fs@2.3.1` ([@claudiahdz](https://github.com/claudiahdz))
+* [`3e168d49b`](https://github.com/npm/cli/commit/3e168d49b41574809cae2ad013776a00d3f20ff4) `libcipm@4.0.8` ([@claudiahdz](https://github.com/claudiahdz))
+* [`6ae942a51`](https://github.com/npm/cli/commit/6ae942a510520b7dff11b5b78eebeff1706e38af) `npm-audit-report@1.3.3` ([@claudiahdz](https://github.com/claudiahdz))
+* [`6a35e3dee`](https://github.com/npm/cli/commit/6a35e3deec275bf2ae76603acd424a0640458047) `npm-lifecycle@3.1.5` ([@claudiahdz](https://github.com/claudiahdz))
+
+## 6.14.6 (2020-07-07)
+
+### BUG FIXES
+* [`a9857b8f6`](https://github.com/npm/cli/commit/a9857b8f6869451ff058789c4631fadfde5bbcbc) chore: remove auth info from logs ([@claudiahdz](https://github.com/claudiahdz))
+* [`b7ad77598`](https://github.com/npm/cli/commit/b7ad77598112908d60195d0fbc472b3c84275fd5) [#1416](https://github.com/npm/cli/pull/1416) fix: wrong `npm doctor` command result ([@vanishcode](https://github.com/vanishcode))
+
+### DEPENDENCIES
+* [`94eca6377`](https://github.com/npm/cli/commit/94eca637756376b949edfb697e179a1fdcc231ee) `npm-registry-fetch@4.0.5` ([@claudiahdz](https://github.com/claudiahdz))
+* [`c49b6ae28`](https://github.com/npm/cli/commit/c49b6ae28791ff7184288be16654f97168aa9705) [#1418](https://github.com/npm/cli/pull/1418) `spdx-license-ids@3.0.5` ([@kemitchell](https://github.com/kemitchell))
+
+### DOCUMENTATION
+* [`2e052984b`](https://github.com/npm/cli/commit/2e052984b08c09115ed75387fb2c961631d85d77)
+ [#1459](https://github.com/npm/cli/pull/1459)
+ chore(docs): fixed links to cli commands ([@claudiahdz](https://github.com/claudiahdz))
+* [`0ca3509ca`](https://github.com/npm/cli/commit/0ca3509ca940865392daeeabb39192f7d5af9f5e)
+ [#1283](https://github.com/npm/cli/pull/1283) Update npm-link.md ([@peterfich](https://github.com/peterfich))
+* [`3dd429e9a`](https://github.com/npm/cli/commit/3dd429e9aad760ce2ff9e522b34ebfebd85b460c)
+ [#1377](https://github.com/npm/cli/pull/1377)
+ Add note about dropped `*` filenames ([@maxwellgerber](https://github.com/maxwellgerber))
+* [`9a2e2e797`](https://github.com/npm/cli/commit/9a2e2e797e5c91e7f4f261583a1906e2c440cc2f)
+ [#1429](https://github.com/npm/cli/pull/1429) Fix typo ([@seanpoulter](https://github.com/seanpoulter))
+
+## 6.14.5 (2020-05-01)
+
+### BUG FIXES
+
+* [`33ec41f18`](https://github.com/npm/cli/commit/33ec41f18f557146607cb14a7a38c707fce6d42c) [#758](https://github.com/npm/cli/pull/758) fix: relativize file links when inflating shrinkwrap ([@jsnajdr](https://github.com/jsnajdr))
+* [`94ed456df`](https://github.com/npm/cli/commit/94ed456dfb0b122fd4192429024f034d06c3c454) [#1162](https://github.com/npm/cli/pull/1162) fix: npm init help output ([@mum-never-proud](https://github.com/mum-never-proud))
+
+### DEPENDENCIES
+
+* [`5587ac01f`](https://github.com/npm/cli/commit/5587ac01ffd0d2ea830a6bbb67bb34a611ffc409) `npm-registry-fetch@4.0.4`
+ * [`fc5d94c39`](https://github.com/npm/npm-registry-fetch/commit/fc5d94c39ca218d78df77249ab3a6bf1d9ed9db1) fix: removed default timeout
+* [`07a4d8884`](https://github.com/npm/cli/commit/07a4d8884448359bac485a49c05fd2d23d06834b) `graceful-fs@4.2.4`
+* [`8228d1f2e`](https://github.com/npm/cli/commit/8228d1f2e427ad9adee617266108acd1ee39b4a5) `mkdirp@0.5.5`
+* [`e6d208317`](https://github.com/npm/cli/commit/e6d20831740a84aea766da2a2913cf82a4d56ada) `nopt@4.0.3`
+
+## 6.14.4 (2020-03-24)
+
+### DEPENDENCIES
+
+* Bump `minimist@1.2.5` transitive dep to resolve security issue
+ * [`9c554fd8c`](https://github.com/npm/cli/commit/9c554fd8cd1e9aeb8eb122ccfa3c78d12af4097a) `update-notifier@2.5.0`
+ * bump `deep-extend@1.2.5`
+ * bump `deep-extend@0.6.0`
+ * bump `is-ci@1.2.1`
+ * bump `is-retry-allowed@1.2.0`
+ * bump `rc@1.2.8`
+ * bump `registry-auth-token@3.4.0`
+ * bump `widest-line@2.0.1`
+* [`136832dca`](https://github.com/npm/cli/commit/136832dcae13cb5518b1fe17bd63ea9b2a195f92) `mkdirp@0.5.4`
+* [`8bf99b2b5`](https://github.com/npm/cli/commit/8bf99b2b58c14d45dc6739fce77de051ebc8ffb7) [#1053](https://github.com/npm/cli/pull/1053) deps: updates term-size to use signed binary
+ * [`d2f08a1bdb`](https://github.com/nodejs/node/commit/d2f08a1bdb78655c4a3fc49825986c148d14117e) ([@rvagg](https://github.com/rvagg))
+
+## 6.14.3 (2020-03-19)
+
+### DOCUMENTATION
+
+* [`4ad221487`](https://github.com/npm/cli/commit4ad2214873cddfd4a0eff1bd188516b08fae9f9e) [#1020](https://github.com/npm/cli/pull/1020) docs(teams): updated team docs to reflect MFA workflow ([@blkdm0n](https://github.com/blkdm0n))
+* [`4a31a4ba2`](https://github.com/npm/cli/commit/4a31a4ba2db0a5db2d1d0890ee934ba1babb73a6) [#1034](https://github.com/npm/cli/pull/1034) docs: cleanup ([@ruyadorno](https://github.com/ruyadorno))
+* [`0eac801cd`](https://github.com/npm/cli/commit/0eac801cdef344e9fbda6270145e062211255b0e) [#1013](https://github.com/npm/cli/pull/1013) docs: fix links to cli commands ([@alenros](https://github.com/alenros))
+* [`7d8e5b99c`](https://github.com/npm/cli/commit/7d8e5b99c4ef8c394cffa7fc845f54a25ff37e3a) [#755](https://github.com/npm/cli/pull/755) docs: correction to `npm update -g` behaviour ([@johnkennedy9147](https://github.com/johnkennedy9147))
+
+### DEPENDENCIES
+
+* [`e11167646`](https://github.com/npm/cli/commit/e111676467f090f73802b97e8da7ece481b18f99) `mkdirp@0.5.3`
+ * [`c5b97d17d`](https://github.com/isaacs/node-mkdirp/commit/c5b97d17d45a22bcf4c815645cbb989dab57ddd8) fix: bump `minimist` dep to resolve security issue ([@isaacs](https://github.com/isaacs))
+* [`c50d679c6`](https://github.com/npm/cli/commit/c50d679c68b39dd03ad127d34f540ddcb1b1e804) `rimraf@2.7.1`
+* [`a2de99ff9`](https://github.com/npm/cli/commit/a2de99ff9e02425a3ccc25280f390178be755a36) `npm-registry-mock@1.3.1`
+* [`217debeb9`](https://github.com/npm/cli/commit/217debeb9812e037a6686cbf6ec67a0cd47fa68a) `npm-registry-couchapp@2.7.4`
+
+## 6.14.2 (2020-03-03)
+
+### DOCUMENTATION
+* [`f9248c0be`](https://github.com/npm/cli/commit/f9248c0be63fba37a30098dc9215c752474380e3) [#730](https://github.com/npm/cli/pull/730) chore(docs): update unpublish docs & policy reference ([@nomadtechie](https://github.com/nomadtechie), [@mikemimik](https://github.com/mikemimik))
+
+### DEPENDENCIES
+
+* [`909cc3918`](https://github.com/npm/cli/commit/909cc39180a352f206898481add5772206c8b65f) `hosted-git-info@2.8.8` ([@darcyclarke](https://github.com/darcyclarke))
+ * [`5038b1891`](https://github.com/npm/hosted-git-info/commit/5038b1891a61ca3cd7453acbf85d7011fe0086bb) fix: regression in old node versions w/ respect to url.URL implmentation
+* [`9204ffa58`](https://github.com/npm/cli/commit/9204ffa584c140c5e22b1ee37f6df2c98f5dc70b) `npm-profile@4.0.4` ([@isaacs](https://github.com/isaacs))
+ * [`6bcf0860a`](https://github.com/npm/npm-profile/commit/6bcf0860a3841865099d0115dbcbde8b78109bd9) fix: treat non-http/https login urls as invalid
+* [`0365d39bd`](https://github.com/npm/cli/commit/0365d39bdc74960a18caac674f51d0e2a98b31e6) `glob@7.1.6` ([@isaacs](https://github.com/isaacs))
+* [`dab030536`](https://github.com/nodejs/node-gyp/commit/dab030536b6a70ecae37debc74c581db9e5280fd) `node-gyp@5.1.0` ([@rvagg](https://github.com/rvagg))
+
+## 6.14.1 (2020-02-26)
+
+* [`303e5c11e`](https://github.com/npm/cli/commit/303e5c11e7db34cf014107aecd2e81c821bfde8d)
+ `hosted-git-info@2.8.7`
+ Fixes a regression where scp-style git urls are passed to the WhatWG URL
+ parser, which does not handle them properly.
+ ([@isaacs](https://github.com/isaacs))
+
+## 6.14.0 (2020-02-25)
+
+### FEATURES
+* [`30f170877`](https://github.com/npm/cli/commit/30f170877954acd036cb234a581e4eb155049b82) [#731](https://github.com/npm/cli/pull/731) add support for multiple funding sources ([@ljharb](https://github.com/ljharb) & [@ruyadorno](hhttps://github.com/ruyadorno/))
+
+### BUG FIXES
+* [`55916b130`](https://github.com/npm/cli/commit/55916b130ef52984584678f2cc17c15c1f031cb5) [#508](https://github.com/npm/cli/pull/508) fix: check `npm.config` before accessing its members ([@kaiyoma](https://github.com/kaiyoma))
+* [`7d0cd65b2`](https://github.com/npm/cli/commit/7d0cd65b23c0986b631b9b54d87bbe74902cc023) [#733](https://github.com/npm/cli/pull/733) fix: access grant with unscoped packages ([@netanelgilad](https://github.com/netanelgilad))
+* [`28c3d40d6`](https://github.com/npm/cli/commit/28c3d40d65eef63f9d6ccb60b99ac57f5057a46e), [`0769c5b20`](https://github.com/npm/cli/commit/30f170877954acd036cb234a581e4eb155049b82) [#945](https://github.com/npm/cli/pull/945), [#697](https://github.com/npm/cli/pull/697) fix: allow new major versions of node to be automatically considered "supported" ([@isaacs](https://github.com/isaacs), [@ljharb](https://github.com/ljharb))
+
+### DEPENDENCIES
+* [`6f39e93`](https://github.com/npm/hosted-git-info/commit/6f39e93bae9162663af6f15a9d10bce675dd5de3) `hosted-git-info@2.8.6` ([@darcyclarke](https://github.com/darcyclarke))
+ * fix: passwords & usernames are escaped properly in git deps ([@stevenhilder](https://github.com/stevenhilder))
+* [`f14b594ee`](https://github.com/npm/cli/commit/f14b594ee9dbfc98ed0b65c65d904782db4f31ad) `chownr@1.1.4` ([@isaacs](https://github.com/isaacs))
+* [`77044150b`](https://github.com/npm/cli/commit/77044150b763d67d997f9ff108219132ea922678) `npm-packlist@1.4.8` ([@isaacs](https://github.com/isaacs))
+* [`1d112461a`](https://github.com/npm/cli/commit/1d112461ad8dc99e5ff7fabb5177e8c2f89a9755) `npm-registry-fetch@4.0.3` ([@isaacs](https://github.com/isaacs))
+ * [`ba8b4fe`](https://github.com/npm/npm-registry-fetch/commit/ba8b4fe60eb6cdf9b39012560aec596eda8ce924) fix: always bypass cache when ?write=true
+* [`a47fed760`](https://github.com/npm/cli/commit/a47fed7603a6ed31dcc314c0c573805f05a96830) `readable-stream@3.6.0`
+ * [`3bbf2d6`](https://github.com/nodejs/readable-stream/commit/3bbf2d6feb45b03f4e46a2ae8251601ad2262121) fix: babel's "loose mode" class transform enbrittles BufferList ([@ljharb](https://github.com/ljharb))
+
+### DOCUMENTATION
+* [`284c1c055`](https://github.com/npm/cli/commit/284c1c055a28c4b334496101799acefe3c54ceb3), [`fbb5f0e50`](https://github.com/npm/cli/commit/fbb5f0e50e54425119fa3f03c5de93e4cb6bfda7) [#729](https://github.com/npm/cli/pull/729) update lifecycle hooks docs
+ ([@seanhealy](https://github.com/seanhealy), [@mikemimik](https://github.com/mikemimik))
+* [`1c272832d`](https://github.com/npm/cli/commit/1c272832d048300e409882313305c416dc6f21a2) [#787](https://github.com/npm/cli/pull/787) fix: trademarks typo ([@dnicolson](https://github.com/dnicolson))
+* [`f6ff41776`](https://github.com/npm/cli/commit/f6ff417767d52418cc8c9e7b9731ede2c3916d2e) [#936](https://github.com/npm/cli/pull/936) fix: postinstall example ([@ajaymathur](https://github.com/ajaymathur))
+* [`373224b16`](https://github.com/npm/cli/commit/373224b16e019b7b63d8f0b4c5d4adb7e5cb80dd) [#939](https://github.com/npm/cli/pull/939) fix: bad links in publish docs ([@vit100](https://github.com/vit100))
+
+### MISCELLANEOUS
+* [`85c79636d`](https://github.com/npm/cli/commit/85c79636df31bac586c0e380c4852ee155a7723c) [#736](https://github.com/npm/cli/pull/736) add script to update dist-tags ([@mikemimik](https://github.com/mikemimik))
+
+## 6.13.7 (2020-01-28)
+
+### BUG FIXES
+* [`7dbb91438`](https://github.com/npm/cli/commit/7dbb914382ecd2074fffb7eba81d93262e2d23c6)
+ [#655](https://github.com/npm/cli/pull/655)
+ Update CI detection cases
+ ([@isaacs](https://github.com/isaacs))
+
+### DEPENDENCIES
+* [`0fb1296c7`](https://github.com/npm/cli/commit/0fb1296c7d6d4bb9e78c96978c433cd65e55c0ea)
+ `libnpx@10.2.2`
+ ([@mikemimik](https://github.com/mikemimik))
+* [`c9b69d569`](https://github.com/npm/cli/commit/c9b69d569fec7944375a746e9c08a6fa9bec96ff)
+ `node-gyp@5.0.7`
+ ([@mikemimik](https://github.com/mikemimik))
+* [`e8dbaf452`](https://github.com/npm/cli/commit/e8dbaf452a1f6c5350bb0c37059b89a7448e7986)
+ `bin-links@1.1.7`
+ ([@mikemimik](https://github.com/mikemimik))
+ * [#613](https://github.com/npm/cli/issues/613) Fixes bin entry for package
+
+## 6.13.6 (2020-01-09)
+
+### DEPENDENCIES
+
+* [`6dba897a1`](https://github.com/npm/cli/commit/6dba897a1e2d56388fb6df0c814b0bb85af366b4)
+ `pacote@9.5.12`:
+ * [`d2f4176`](https://github.com/npm/pacote/commit/d2f4176b6af393d7e29de27e9b638dbcbab9a0c7)
+ fix(git): Do not drop uid/gid when executing in root-owned directory
+ ([@isaacs](https://github.com/isaacs))
+
+## 6.13.5 (2020-01-09)
+
+### BUG FIXES
+
+* [`fd0a802ec`](https://github.com/npm/cli/commit/fd0a802ec468ec7b98d6c15934c355fef0e7ff60) [#550](https://github.com/npm/cli/pull/550) Fix cache location for `npm ci` ([@zhenyavinogradov](https://github.com/zhenyavinogradov))
+* [`4b30f3cca`](https://github.com/npm/cli/commit/4b30f3ccaebf50d6ab3bad130ff94827c017cc16) [#648](https://github.com/npm/cli/pull/648) fix(version): using 'allow-same-version', git commit --allow-empty and git tag -f ([@rhengles](https://github.com/rhengles))
+
+### TESTING
+
+* [`e16f68d30`](https://github.com/npm/cli/commit/e16f68d30d59ce1ddde9fe62f7681b2c07fce84d) test(ci): add failing cache config test ([@ruyadorno](https://github.com/ruyadorno))
+* [`3f009fbf2`](https://github.com/npm/cli/commit/3f009fbf2c42f68c5127efecc6e22db105a74fe0) [#659](https://github.com/npm/cli/pull/659) test: fix bin-overwriting test on Windows ([@isaacs](https://github.com/isaacs))
+* [`43ae0791f`](https://github.com/npm/cli/commit/43ae0791f74f68e02850201a64a6af693657b241) [#601](https://github.com/npm/cli/pull/601) ci: Allow builds to run even if one fails ([@XhmikosR](https://github.com/XhmikosR))
+* [`4a669bee4`](https://github.com/npm/cli/commit/4a669bee4ac54c70adc6979d45cd0605b6dc33fd) [#603](https://github.com/npm/cli/pull/603) Remove the unused appveyor.yml ([@XhmikosR](https://github.com/XhmikosR))
+* [`9295046ac`](https://github.com/npm/cli/commit/9295046ac92bbe82f4d84e1ec90cc81d3b80bfc7) [#600](https://github.com/npm/cli/pull/600) ci: switch to `actions/checkout@v2` ([@XhmikosR](https://github.com/XhmikosR))
+
+### DOCUMENTATION
+
+* [`f2d770ac7`](https://github.com/npm/cli/commit/f2d770ac768ea84867772b90a3c9acbdd0c1cb6a) [#569](https://github.com/npm/cli/pull/569) fix netlify publish path config ([@claudiahdz](https://github.com/claudiahdz))
+* [`462cf0983`](https://github.com/npm/cli/commit/462cf0983dbc18a3d93f77212ca69f878060b2ec) [#627](https://github.com/npm/cli/pull/627) update gatsby dependencies ([@felixonmars](https://github.com/felixonmars))
+* [`6fb5dbb72`](https://github.com/npm/cli/commit/6fb5dbb7213c4c050c9a47a7d5131447b8b7dcc8)
+ [#532](https://github.com/npm/cli/pull/532) docs: clarify usage of global prefix ([@jgehrcke](https://github.com/jgehrcke))
+
+## 6.13.4 (2019-12-11)
+
+## BUGFIXES
+
+* [`320ac9aee`](https://github.com/npm/cli/commit/320ac9aeeafd11bb693c53b31148b8d10c4165e8)
+ [npm/bin-links#12](https://github.com/npm/bin-links/pull/12)
+ [npm/gentle-fs#7](https://github.com/npm/gentle-fs/pull/7)
+ Do not remove global bin/man links inappropriately
+ ([@isaacs](https://github.com/isaacs))
+
+## DEPENDENCIES
+
+* [`52fd21061`](https://github.com/npm/cli/commit/52fd21061ff8b1a73429294620ffe5ebaaa60d3e)
+ `gentle-fs@2.3.0`
+ ([@isaacs](https://github.com/isaacs))
+* [`d06f5c0b0`](https://github.com/npm/cli/commit/d06f5c0b0611c43b6e70ded92af24fa5d83a0f48)
+ `bin-links@1.1.6`
+ ([@isaacs](https://github.com/isaacs))
+
+## 6.13.3 (2019-12-09)
+
+### DEPENDENCIES
+
+* [`19ce061a2`](https://github.com/npm/cli/commit/19ce061a2ee165d8de862c8f0f733c222846b9e1)
+ `bin-links@1.1.5` Properly normalize, sanitize, and verify `bin` entries
+ in `package.json`.
+* [`59c836aae`](https://github.com/npm/cli/commit/59c836aae8d0104a767e80c540b963c91774012a)
+ `npm-packlist@1.4.7`
+* [`fb4ecd7d2`](https://github.com/npm/cli/commit/fb4ecd7d2810b0b4897daaf081a5e2f3f483b310)
+ `pacote@9.5.11`
+ * [`5f33040`](https://github.com/npm/pacote/commit/5f3304028b6985fd380fc77c4840ff12a4898301)
+ [#476](https://github.com/npm/cli/issues/476)
+ [npm/pacote#22](https://github.com/npm/pacote/issues/22)
+ [npm/pacote#14](https://github.com/npm/pacote/issues/14) fix: Do not
+ drop perms in git when not root ([isaacs](https://github.com/isaacs),
+ [@darcyclarke](https://github.com/darcyclarke))
+ * [`6f229f7`](https://github.com/npm/pacote/6f229f78d9911b4734f0a19c6afdc5454034c759)
+ sanitize and normalize package bin field
+ ([isaacs](https://github.com/isaacs))
+* [`1743cb339`](https://github.com/npm/cli/commit/1743cb339767e86431dcd565c7bdb0aed67b293d)
+ `read-package-json@2.1.1`
+
+
+## 6.13.2 (2019-12-03)
+
+### BUG FIXES
+
+* [`4429645b3`](https://github.com/npm/cli/commit/4429645b3538e1cda54d8d1b7ecb3da7a88fdd3c)
+ [#546](https://github.com/npm/cli/pull/546)
+ fix docs target typo
+ ([@richardlau](https://github.com/richardlau))
+* [`867642942`](https://github.com/npm/cli/commit/867642942bec69bb9ab71cff1914fb6a9fe67de8)
+ [#142](https://github.com/npm/cli/pull/142)
+ fix(packageRelativePath): fix 'where' for file deps
+ ([@larsgw](https://github.com/larsgw))
+* [`d480f2c17`](https://github.com/npm/cli/commit/d480f2c176e6976b3cca3565e4c108b599b0379b)
+ [#527](https://github.com/npm/cli/pull/527)
+ Revert "windows: Add preliminary WSL support for npm and npx"
+ ([@craigloewen-msft](https://github.com/craigloewen-msft))
+* [`e4b97962e`](https://github.com/npm/cli/commit/e4b97962e5fce0d49beb541ce5a0f96aee0525de)
+ [#504](https://github.com/npm/cli/pull/504)
+ remove unnecessary package.json read when reading shrinkwrap
+ ([@Lighting-Jack](https://github.com/Lighting-Jack))
+* [`1c65d26ac`](https://github.com/npm/cli/commit/1c65d26ac9f10ac0037094c207d216fbf0e969bf)
+ [#501](https://github.com/npm/cli/pull/501)
+ fix(fund): open url for string shorthand
+ ([@ruyadorno](https://github.com/ruyadorno))
+* [`ae7afe565`](https://github.com/npm/cli/commit/ae7afe56504dbffabf9f73d55b6dac1e3e9fed4a)
+ [#263](https://github.com/npm/cli/pull/263)
+ Don't log error message if git tagging is disabled
+ ([@woppa684](https://github.com/woppa684))
+* [`4c1b16f6a`](https://github.com/npm/cli/commit/4c1b16f6aecaf78956b9335734cfde2ac076ee11)
+ [#182](https://github.com/npm/cli/pull/182)
+ Warn the user that it is uninstalling npm-install
+ ([@Hoidberg](https://github.com/Hoidberg))
+
+## 6.13.1 (2019-11-18)
+
+### BUG FIXES
+
+* [`938d6124d`](https://github.com/npm/cli/commit/938d6124d6d15d96b5a69d0ae32ef59fceb8ceab)
+ [#472](https://github.com/npm/cli/pull/472)
+ fix(fund): support funding string shorthand
+ ([@ruyadorno](https://github.com/ruyadorno))
+* [`b49c5535b`](https://github.com/npm/cli/commit/b49c5535b7c41729a8d167b035924c3c66b36de0)
+ [#471](https://github.com/npm/cli/pull/471)
+ should not publish tap-snapshot folder
+ ([@ruyadorno](https://github.com/ruyadorno))
+* [`3471d5200`](https://github.com/npm/cli/commit/3471d5200217bfa612b1a262e36c9c043a52eb09)
+ [#253](https://github.com/npm/cli/pull/253)
+ Add preliminary WSL support for npm and npx
+ ([@infinnie](https://github.com/infinnie))
+* [`3ef295f23`](https://github.com/npm/cli/commit/3ef295f23ee1b2300abf13ec19e935c47a455179)
+ [#486](https://github.com/npm/cli/pull/486)
+ print quick audit report for human output
+ ([@isaacs](https://github.com/isaacs))
+
+### TESTING
+
+* [`dbbf977ac`](https://github.com/npm/cli/commit/dbbf977acd1e74bcdec859c562ea4a2bc0536442)
+ [#278](https://github.com/npm/cli/pull/278)
+ added workflow to trigger and run benchmarks
+ ([@mikemimik](https://github.com/mikemimik))
+* [`b4f5e3825`](https://github.com/npm/cli/commit/b4f5e3825535256aaada09c5e8f104570a3d96a4)
+ [#457](https://github.com/npm/cli/pull/457)
+ feat(docs): adding tests and updating docs to reflect changes in registry teams API.
+ ([@nomadtechie](https://github.com/nomadtechie))
+* [`454c7dd60`](https://github.com/npm/cli/commit/454c7dd60c78371bf606f11a17ed0299025bc37c)
+ [#456](https://github.com/npm/cli/pull/456)
+ fix git configs for git 2.23 and above
+ ([@isaacs](https://github.com/isaacs))
+
+### DOCUMENTATION
+
+* [`b8c1576a4`](https://github.com/npm/cli/commit/b8c1576a448566397c721655b95fc90bf202b35a) [`30b013ae8`](https://github.com/npm/cli/commit/30b013ae8eacd04b1b8a41ce2ed0dd50c8ebae25) [`26c1b2ef6`](https://github.com/npm/cli/commit/26c1b2ef6be1595d28d935d35faa8ec72daae544) [`9f943a765`](https://github.com/npm/cli/commit/9f943a765faf6ebb8a442e862b808dbb630e018d) [`c0346b158`](https://github.com/npm/cli/commit/c0346b158fc25ab6ca9954d4dd78d9e62f573a41) [`8e09d5ad6`](https://github.com/npm/cli/commit/8e09d5ad67d4f142241193cecbce61c659389be3) [`4a2f551ee`](https://github.com/npm/cli/commit/4a2f551eeb3285f6f200534da33644789715a41a) [`87d67258c`](https://github.com/npm/cli/commit/87d67258c213d9ea9a49ce1804294a718f08ff13) [`5c3b32722`](https://github.com/npm/cli/commit/5c3b3272234764c8b4d2d798b69af077b5a529c7) [`b150eaeff`](https://github.com/npm/cli/commit/b150eaeff428180bfa03be53fd741d5625897758) [`7555a743c`](https://github.com/npm/cli/commit/7555a743ce4c3146d6245dd63f91503c7f439a6c) [`b89423e2f`](https://github.com/npm/cli/commit/b89423e2f6a09b290b15254e7ff7e8033b434d83)
+ [#463](https://github.com/npm/cli/pull/463)
+ [#285](https://github.com/npm/cli/pull/285)
+ [#268](https://github.com/npm/cli/pull/268)
+ [#232](https://github.com/npm/cli/pull/232)
+ [#485](https://github.com/npm/cli/pull/485)
+ [#453](https://github.com/npm/cli/pull/453)
+ docs cleanup: typos, styling and content
+ ([@claudiahdz](https://github.com/claudiahdz))
+ ([@XhmikosR](https://github.com/XhmikosR))
+ ([@mugli](https://github.com/mugli))
+ ([@brettz9](https://github.com/brettz9))
+ ([@mkotsollaris](https://github.com/mkotsollaris))
+
+### DEPENDENCIES
+
+* [`661d86cd2`](https://github.com/npm/cli/commit/661d86cd229b14ddf687b7f25a66941a79d233e7)
+ `make-fetch-happen@5.0.2`
+ ([@claudiahdz](https://github.com/claudiahdz))
+
+## 6.13.0 (2019-11-05)
+
+### NEW FEATURES
+
+* [`4414b06d9`](https://github.com/npm/cli/commit/4414b06d944c56bee05ccfb85260055a767ee334)
+ [#273](https://github.com/npm/cli/pull/273)
+ add fund command
+ ([@ruyadorno](https://github.com/ruyadorno))
+
+### DOCUMENTATION
+
+* [`ae4c74d04`](https://github.com/npm/cli/commit/ae4c74d04f820a0255a92bdfe77ecf97af134fae)
+ [#274](https://github.com/npm/cli/pull/274)
+ migrate existing docs to gatsby
+ ([@claudiahdz](https://github.com/claudiahdz))
+* [`4ff1bb180`](https://github.com/npm/cli/commit/4ff1bb180b1db8c72e51b3d57bd4e268b738e049)
+ [#277](https://github.com/npm/cli/pull/277)
+ updated documentation copy
+ ([@oletizi](https://github.com/oletizi))
+
+### BUG FIXES
+
+* [`e4455409f`](https://github.com/npm/cli/commit/e4455409fe6fe9c198b250b488129171f0b4624a)
+ [#281](https://github.com/npm/cli/pull/281)
+ delete ps1 files on package removal
+ ([@NoDocCat](https://github.com/NoDocCat))
+* [`cd14d4701`](https://github.com/npm/cli/commit/cd14d47014e8c96ffd6a18791e8752028b19d637)
+ [#279](https://github.com/npm/cli/pull/279)
+ update supported node list to remove v6.0, v6.1, v9.0 - v9.2
+ ([@ljharb](https://github.com/ljharb))
+
+### DEPENDENCIES
+
+* [`a37296b20`](https://github.com/npm/cli/commit/a37296b20ca3e19c2bbfa78fedcfe695e03fda69)
+ `pacote@9.5.9`
+* [`d3cb3abe8`](https://github.com/npm/cli/commit/d3cb3abe8cee54bd2624acdcf8043932ef0d660a)
+ `read-cmd-shim@1.0.5`
+
+### TESTING
+
+* [`688cd97be`](https://github.com/npm/cli/commit/688cd97be94ca949719424ff69ff515a68c5caba)
+ [#272](https://github.com/npm/cli/pull/272)
+ use github actions for CI
+ ([@JasonEtco](https://github.com/JasonEtco))
+* [`9a2d8af84`](https://github.com/npm/cli/commit/9a2d8af84f7328f13d8f578cf4b150b9d5f09517)
+ [#240](https://github.com/npm/cli/pull/240)
+ Clean up some flakiness and inconsistency
+ ([@isaacs](https://github.com/isaacs))
+
+## 6.12.1 (2019-10-29)
+
+### BUG FIXES
+
+* [`6508e833d`](https://github.com/npm/cli/commit/6508e833df35a3caeb2b496f120ce67feff306b6)
+ [#269](https://github.com/npm/cli/pull/269)
+ add node v13 as a supported version
+ ([@ljharb](https://github.com/ljharb))
+* [`b6588a8f7`](https://github.com/npm/cli/commit/b6588a8f74fb8b1ad103060b73c4fd5174b1d1f6)
+ [#265](https://github.com/npm/cli/pull/265)
+ Fix regression in lockfile repair for sub-deps
+ ([@feelepxyz](https://github.com/feelepxyz))
+* [`d5dfe57a1`](https://github.com/npm/cli/commit/d5dfe57a1d810fe7fd64edefc976633ee3a4da53)
+ [#266](https://github.com/npm/cli/pull/266)
+ resolve circular dependency in pack.js
+ ([@addaleax](https://github.com/addaleax))
+
+### DEPENDENCIES
+
+* [`73678bb59`](https://github.com/npm/cli/commit/73678bb590a8633c3bdbf72e08f1279f9e17fd28)
+ `chownr@1.1.3`
+* [`4b76926e2`](https://github.com/npm/cli/commit/4b76926e2058ef30ab1d5e2541bb96d847653417)
+ `graceful-fs@4.2.3`
+* [`c691f36a9`](https://github.com/npm/cli/commit/c691f36a9c108b6267859fe61e4a38228b190c17)
+ `libcipm@4.0.7`
+* [`5e1a14975`](https://github.com/npm/cli/commit/5e1a14975311bfdc43df8e1eb317ae5690ee580c)
+ `npm-packlist@1.4.6`
+* [`c194482d6`](https://github.com/npm/cli/commit/c194482d65ee81a5a0a6281c7a9f984462286c56)
+ `npm-registry-fetch@4.0.2`
+* [`bc6a8e0ec`](https://github.com/npm/cli/commit/bc6a8e0ec966281e49b1dc66f9c641ea661ab7a6)
+ `tar@4.4.1`
+* [`4dcca3cbb`](https://github.com/npm/cli/commit/4dcca3cbb161da1f261095d9cdd26e1fbb536a8d)
+ `uuid@3.3.3`
+
+## 6.12.0 (2019-10-08):
+
+Now `npm ci` runs prepare scripts for git dependencies, and respects the
+`--no-optional` argument. Warnings for `engine` mismatches are printed
+again. Various other fixes and cleanups.
+
+### BUG FIXES
+
+* [`890b245dc`](https://github.com/npm/cli/commit/890b245dc1f609590d8ab993fac7cf5a37ed46a5)
+ [#252](https://github.com/npm/cli/pull/252) ci: add dirPacker to options
+ ([@claudiahdz](https://github.com/claudiahdz))
+* [`f3299acd0`](https://github.com/npm/cli/commit/f3299acd0b4249500e940776aca77cc6c0977263)
+ [#257](https://github.com/npm/cli/pull/257)
+ [npm.community#4792](https://npm.community/t/engines-and-engines-strict-ignored/4792)
+ warn message on engine mismatch
+ ([@ruyadorno](https://github.com/ruyadorno))
+* [`bbc92fb8f`](https://github.com/npm/cli/commit/bbc92fb8f3478ff67071ebaff551f01c1ea42ced)
+ [#259](https://github.com/npm/cli/pull/259)
+ [npm.community#10288](https://npm.community/t/npm-token-err-figgypudding-options-cannot-be-modified-use-concat-instead/10288)
+ Fix figgyPudding error in `npm token`
+ ([@benblank](https://github.com/benblank))
+* [`70f54dcb5`](https://github.com/npm/cli/commit/70f54dcb5693b301c6b357922b7e8d16b57d8b00)
+ [#241](https://github.com/npm/cli/pull/241) doctor: Make OK more
+ consistent ([@gemal](https://github.com/gemal))
+
+### FEATURES
+
+* [`ed993a29c`](https://github.com/npm/cli/commit/ed993a29ccf923425317c433844d55dbea2f23ee)
+ [#249](https://github.com/npm/cli/pull/249) Add CI environment variables
+ to user-agent ([@isaacs](https://github.com/isaacs))
+* [`f6b0459a4`](https://github.com/npm/cli/commit/f6b0459a466a2c663dbd549cdc331e7732552dca)
+ [#248](https://github.com/npm/cli/pull/248) Add option to save
+ package-lock without formatting Adds a new config
+ `--format-package-lock`, which defaults to true.
+ ([@bl00mber](https://github.com/bl00mber))
+
+### DEPENDENCIES
+
+* [`0ca063c5d`](https://github.com/npm/cli/commit/0ca063c5dc961c4aa17373f4b33fb54c51c8c8d6)
+ `npm-lifecycle@3.1.4`:
+ - fix: filter functions and undefined out of makeEnv
+ ([@isaacs](https://github.com/isaacs))
+* [`5df6b0ea2`](https://github.com/npm/cli/commit/5df6b0ea2e3106ba65bba649cc8d7f02f4738236)
+ `libcipm@4.0.4`:
+ - fix: pack git directories properly
+ ([@claudiahdz](https://github.com/claudiahdz))
+ - respect no-optional argument
+ ([@cruzdanilo](https://github.com/cruzdanilo))
+* [`7e04f728c`](https://github.com/npm/cli/commit/7e04f728cc4cd4853a8fc99e2df0a12988897589)
+ `tar@4.4.12`
+* [`5c380e5a3`](https://github.com/npm/cli/commit/5c380e5a33d760bb66a4285b032ae5f50af27199)
+ `stringify-package@1.0.1` ([@isaacs](https://github.com/isaacs))
+* [`62f2ca692`](https://github.com/npm/cli/commit/62f2ca692ac0c0467ef4cf74f91777a5175258c4)
+ `node-gyp@5.0.5` ([@isaacs](https://github.com/isaacs))
+* [`0ff0ea47a`](https://github.com/npm/cli/commit/0ff0ea47a8840dd7d952bde7f7983a5016cda8ea)
+ `npm-install-checks@3.0.2` ([@isaacs](https://github.com/isaacs))
+* [`f46edae94`](https://github.com/npm/cli/commit/f46edae9450b707650a0efab09aa1e9295a18070)
+ `hosted-git-info@2.8.5` ([@isaacs](https://github.com/isaacs))
+
+### TESTING
+
+* [`44a2b036b`](https://github.com/npm/cli/commit/44a2b036b34324ec85943908264b2e36de5a9435)
+ [#262](https://github.com/npm/cli/pull/262) fix root-ownership race
+ conditions in meta-test ([@isaacs](https://github.com/isaacs))
+
+## 6.11.3 (2019-09-03):
+
+Fix npm ci regressions and npm outdated depth.
+
+### BUG FIXES
+
+* [`235ed1d28`](https://github.com/npm/cli/commit/235ed1d2838ef302bb995e183980209d16c51b9b)
+ [#239](https://github.com/npm/cli/pull/239)
+ Don't override user specified depth in outdated
+ Restores ability to update packages using `--depth` as suggested by `npm audit`.
+ ([@G-Rath](https://github.com/G-Rath))
+* [`1fafb5151`](https://github.com/npm/cli/commit/1fafb51513466cd793866b576dfea9a8963a3335)
+ [#242](https://github.com/npm/cli/pull/242)
+ [npm.community#9586](https://npm.community/t/6-11-1-some-dependencies-are-no-longer-being-installed/9586/4)
+ Revert "install: do not descend into directory deps' child modules"
+ ([@isaacs](https://github.com/isaacs))
+* [`cebf542e6`](https://github.com/npm/cli/commit/cebf542e61dcabdd2bd3b876272bf8eebf7d01cc)
+ [#243](https://github.com/npm/cli/pull/243)
+ [npm.community#9720](https://npm.community/t/6-11-2-npm-ci-installs-package-with-wrong-permissions/9720)
+ ci: pass appropriate configs for file/dir modes
+ ([@isaacs](https://github.com/isaacs))
+
+### DEPENDENCIES
+
+* [`e5fbb7ed1`](https://github.com/npm/cli/commit/e5fbb7ed1fc7ef5c6ca4790e2d0dc441e0ac1596)
+ `read-cmd-shim@1.0.4`
+ ([@claudiahdz](https://github.com/claudiahdz))
+* [`23ce65616`](https://github.com/npm/cli/commit/23ce65616c550647c586f7babc3c2f60115af2aa)
+ `npm-pick-manifest@3.0.2`
+ ([@claudiahdz](https://github.com/claudiahdz))
+
+## 6.11.2 (2019-08-22):
+
+Fix a recent Windows regression, and two long-standing Windows bugs. Also,
+get CI running on Windows, so these things are less likely in the future.
+
+### DEPENDENCIES
+
+* [`9778a1b87`](https://github.com/npm/cli/commit/9778a1b878aaa817af6e99385e7683c2a389570d)
+ `cmd-shim@3.0.3`: Fix regression where shims fail to preserve exit code
+ ([@isaacs](https://github.com/isaacs))
+* [`bf93e91d8`](https://github.com/npm/cli/commit/bf93e91d879c816a055d5913e6e4210d7299f299)
+ `npm-package-arg@6.1.1`: Properly handle git+file: urls on Windows when a
+ drive letter is included. ([@isaacs](https://github.com/isaacs))
+
+### BUGFIXES
+
+* [`6cc4cc66f`](https://github.com/npm/cli/commit/6cc4cc66f1fb050dc4113e35cab59197fd48e04a)
+ escape args properly on Windows Bash Despite being bash, Node.js running
+ on windows git mingw bash still executes child processes using cmd.exe.
+ As a result, arguments in this environment need to be escaped in the
+ style of cmd.exe, not bash. ([@isaacs](https://github.com/isaacs))
+
+### TESTS
+
+* [`291aba7b8`](https://github.com/npm/cli/commit/291aba7b821e247b96240b1ec037310ead69a594)
+ make tests pass on Windows ([@isaacs](https://github.com/isaacs))
+* [`fea3a023a`](https://github.com/npm/cli/commit/fea3a023a80863f32a5f97f5132401b1a16161b8)
+ travis: run tests on Windows as well
+ ([@isaacs](https://github.com/isaacs))
+
+## 6.11.1 (2019-08-20):
+
+Fix a regression for windows command shim syntax.
+
+* [`37db29647`](https://github.com/npm/cli/commit/37db2964710c80003604b7e3c1527d17be7ed3d0)
+ `cmd-shim@3.0.2` ([@isaacs](https://github.com/isaacs))
+
+## v6.11.0 (2019-08-20):
+
+A few meaty bugfixes, and introducing `peerDependenciesMeta`.
+
+### FEATURES
+
+* [`a12341088`](https://github.com/npm/cli/commit/a12341088820c0e7ef6c1c0db3c657f0c2b3943e)
+ [#224](https://github.com/npm/cli/pull/224) Implements
+ peerDependenciesMeta ([@arcanis](https://github.com/arcanis))
+* [`2f3b79bba`](https://github.com/npm/cli/commit/2f3b79bbad820fd4a398aa494b19f79b7fd520a1)
+ [#234](https://github.com/npm/cli/pull/234) add new forbidden 403 error
+ code ([@claudiahdz](https://github.com/claudiahdz))
+
+### BUGFIXES
+
+* [`24acc9fc8`](https://github.com/npm/cli/commit/24acc9fc89d99d87cc66206c6c6f7cdc82fbf763)
+ and
+ [`45772af0d`](https://github.com/npm/cli/commit/45772af0ddca54b658cb2ba2182eec26d0a4729d)
+ [#217](https://github.com/npm/cli/pull/217)
+ [npm.community#8863](https://npm.community/t/installing-the-same-module-under-multiple-relative-paths-fails-on-linux/8863)
+ [npm.community#9327](https://npm.community/t/reinstall-breaks-after-npm-update-to-6-10-2/9327,)
+ do not descend into directory deps' child modules, fix shrinkwrap files
+ that inappropriately list child nodes of symlink packages
+ ([@isaacs](https://github.com/isaacs) and
+ [@salomvary](https://github.com/salomvary))
+* [`50cfe113d`](https://github.com/npm/cli/commit/50cfe113da5fcc59c1d99b0dcf1050ace45803c7)
+ [#229](https://github.com/npm/cli/pull/229) fixed typo in semver doc
+ ([@gall0ws](https://github.com/gall0ws))
+* [`e8fb2a1bd`](https://github.com/npm/cli/commit/e8fb2a1bd9785e0092e9926f4fd65ad431e38452)
+ [#231](https://github.com/npm/cli/pull/231) Fix spelling mistakes in
+ CHANGELOG-3.md ([@XhmikosR](https://github.com/XhmikosR))
+* [`769d2e057`](https://github.com/npm/cli/commit/769d2e057daf5a2cbfe0ce86f02550e59825a691)
+ [npm/uid-number#7](https://github.com/npm/uid-number/issues/7) Better
+ error on invalid `--user`/`--group` configs. This addresses the issue
+ when people fail to install binary packages on Docker and other
+ environments where there is no 'nobody' user.
+ ([@isaacs](https://github.com/isaacs))
+* [`8b43c9624`](https://github.com/npm/cli/commit/8b43c962498c8e2707527e4fca442d7a4fa51595)
+ [nodejs/node#28987](https://github.com/nodejs/node/issues/28987)
+ [npm.community#6032](https://npm.community/t/npm-ci-doesnt-respect-npmrc-variables/6032)
+ [npm.community#6658](https://npm.community/t/npm-ci-doesnt-fill-anymore-the-process-env-npm-config-cache-variable-on-post-install-scripts/6658)
+ [npm.community#6069](https://npm.community/t/npm-ci-does-not-compile-native-dependencies-according-to-npmrc-configuration/6069)
+ [npm.community#9323](https://npm.community/t/npm-6-9-x-not-passing-environment-to-node-gyp-regression-from-6-4-x/9323/2)
+ Fix the regression where random config values in a .npmrc file are not
+ passed to lifecycle scripts, breaking build processes which rely on them.
+ ([@isaacs](https://github.com/isaacs))
+* [`8b85eaa47`](https://github.com/npm/cli/commit/8b85eaa47da3abaacc90fe23162a68cc6e1f0404)
+ save files with inferred ownership rather than relying on `SUDO_UID` and
+ `SUDO_GID`. ([@isaacs](https://github.com/isaacs))
+* [`b7f6e5f02`](https://github.com/npm/cli/commit/b7f6e5f0285515087b4614d81db17206524c0fdb)
+ Infer ownership of shrinkwrap files
+ ([@isaacs](https://github.com/isaacs))
+* [`54b095d77`](https://github.com/npm/cli/commit/54b095d77b3b131622b3cf4cb5c689aa2dd10b6b)
+ [#235](https://github.com/npm/cli/pull/235) Add spec to dist-tag remove
+ function ([@theberbie](https://github.com/theberbie))
+
+### DEPENDENCIES
+
+* [`dc8f9e52f`](https://github.com/npm/cli/commit/dc8f9e52f0bb107c0a6b20cc0c97cbc3b056c1b3)
+ `pacote@9.5.7`: Infer the ownership of all unpacked files in
+ `node_modules`, so that we never have user-owned files in root-owned
+ folders, or root-owned files in user-owned folders.
+ ([@isaacs](https://github.com/isaacs))
+* [`bb33940c3`](https://github.com/npm/cli/commit/bb33940c32aad61704084e61ebd1bd8e7cacccc8)
+ `cmd-shim@3.0.0`:
+ * [`9c93ac3`](https://github.com/npm/cmd-shim/commit/9c93ac39e95b0d6ae852e842e4c5dba5e19687c2)
+ [#2](https://github.com/npm/cmd-shim/pull/2)
+ [npm#3380](https://github.com/npm/npm/issues/3380) Handle environment
+ variables properly ([@basbossink](https://github.com/basbossink))
+ * [`2d277f8`](https://github.com/npm/cmd-shim/commit/2d277f8e84d45401747b0b9470058f168b974ad5)
+ [#25](https://github.com/npm/cmd-shim/pull/25)
+ [#36](https://github.com/npm/cmd-shim/pull/36)
+ [#35](https://github.com/npm/cmd-shim/pull/35) Fix 'no shebang' case by
+ always providing `$basedir` in shell script
+ ([@igorklopov](https://github.com/igorklopov))
+ * [`adaf20b`](https://github.com/npm/cmd-shim/commit/adaf20b7fa2c09c2111a2506c6a3e53ed0831f88)
+ [#26](https://github.com/npm/cmd-shim/pull/26) Fix `$*` causing an
+ error when arguments contain parentheses
+ ([@satazor](https://github.com/satazor))
+ * [`49f0c13`](https://github.com/npm/cmd-shim/commit/49f0c1318fd384e0031c3fd43801f0e22e1e555f)
+ [#30](https://github.com/npm/cmd-shim/pull/30) Fix paths for MSYS/MINGW
+ bash ([@dscho](https://github.com/dscho))
+ * [`51a8af3`](https://github.com/npm/cmd-shim/commit/51a8af30990cb072cb30d67fc1b564b14746bba9)
+ [#34](https://github.com/npm/cmd-shim/pull/34) Add proper support for
+ PowerShell ([@ExE-Boss](https://github.com/ExE-Boss))
+ * [`4c37e04`](https://github.com/npm/cmd-shim/commit/4c37e048dee672237e8962fdffca28e20e9f976d)
+ [#10](https://github.com/npm/cmd-shim/issues/10) Work around quoted
+ batch file names ([@isaacs](https://github.com/isaacs))
+* [`a4e279544`](https://github.com/npm/cli/commit/a4e279544f7983e0adff1e475e3760f1ea85825a)
+ `npm-lifecycle@3.1.3` ([@isaacs](https://github.com/isaacs)):
+ * fail properly if `uid-number` raises an error
+* [`7086a1809`](https://github.com/npm/cli/commit/7086a1809bbfda9be81344b3949c7d3ac687ffc4)
+ `libcipm@4.0.3` ([@isaacs](https://github.com/isaacs))
+* [`8845141f9`](https://github.com/npm/cli/commit/8845141f9d7827dae572c8cf26f2c775db905bd3)
+ `read-package-json@2.1.0` ([@isaacs](https://github.com/isaacs))
+* [`51c028215`](https://github.com/npm/cli/commit/51c02821575d80035ebe853492d110db11a7d1b9)
+ `bin-links@1.1.3` ([@isaacs](https://github.com/isaacs))
+* [`534a5548c`](https://github.com/npm/cli/commit/534a5548c9ebd59f0dd90e9ccca148ed8946efa6)
+ `read-cmd-shim@1.0.3` ([@isaacs](https://github.com/isaacs))
+* [`3038f2fd5`](https://github.com/npm/cli/commit/3038f2fd5b1d7dd886ee72798241d8943690f508)
+ `gentle-fs@2.2.1` ([@isaacs](https://github.com/isaacs))
+* [`a609a1648`](https://github.com/npm/cli/commit/a609a16489f76791697d270b499fd4949ab1f8c3)
+ `graceful-fs@4.2.2` ([@isaacs](https://github.com/isaacs))
+* [`f0346f754`](https://github.com/npm/cli/commit/f0346f75490619a81b310bfc18646ae5ae2e0ea4)
+ `cacache@12.0.3` ([@isaacs](https://github.com/isaacs))
+* [`ca9c615c8`](https://github.com/npm/cli/commit/ca9c615c8cff5c7db125735eb09f84d912d18694)
+ `npm-pick-manifest@3.0.0` ([@isaacs](https://github.com/isaacs))
+* [`b417affbf`](https://github.com/npm/cli/commit/b417affbf7133dc7687fd809e4956a43eae3438a)
+ `pacote@9.5.8` ([@isaacs](https://github.com/isaacs))
+
+### TESTS
+
+* [`b6df0913c`](https://github.com/npm/cli/commit/b6df0913ca73246f1fa6cfa0e81e34ba5f2b6204)
+ [#228](https://github.com/npm/cli/pull/228) Proper handing of
+ /usr/bin/node lifecycle-path test
+ ([@olivr70](https://github.com/olivr70))
+* [`aaf98e88c`](https://github.com/npm/cli/commit/aaf98e88c78fd6c850d0a3d3ee2f61c02f63bc8c)
+ `npm-registry-mock@1.3.0` ([@isaacs](https://github.com/isaacs))
+
+## v6.10.3 (2019-08-06):
+
+### BUGFIXES
+
+* [`27cccfbda`](https://github.com/npm/cli/commit/27cccfbdac8526cc807b07f416355949b1372a9b)
+ [#223](https://github.com/npm/cli/pull/223) vulns → vulnerabilities in
+ npm audit output ([@sapegin](https://github.com/sapegin))
+* [`d5e865eb7`](https://github.com/npm/cli/commit/d5e865eb79329665a927cc2767b4395c03045dbb)
+ [#222](https://github.com/npm/cli/pull/222)
+ [#226](https://github.com/npm/cli/pull/226) install, doctor: don't crash
+ if registry unset ([@dmitrydvorkin](https://github.com/dmitrydvorkin),
+ [@isaacs](https://github.com/isaacs))
+* [`5b3890226`](https://github.com/npm/cli/commit/5b389022652abeb0e1c278a152550eb95bc6c452)
+ [#227](https://github.com/npm/cli/pull/227)
+ [npm.community#9167](https://npm.community/t/npm-err-cb-never-called-permission-denied/9167/5)
+ Handle unhandledRejections, tell user what to do when encountering an
+ `EACCES` error in the cache. ([@isaacs](https://github.com/isaacs))
+
+### DEPENDENCIES
+
+* [`77516df6e`](https://github.com/npm/cli/commit/77516df6eac94a6d7acb5e9ca06feaa0868d779b)
+ `licensee@7.0.3` ([@isaacs](https://github.com/isaacs))
+* [`ceb993590`](https://github.com/npm/cli/commit/ceb993590e4e376a9a78264ce7bb4327fbbb37fe)
+ `query-string@6.8.2` ([@isaacs](https://github.com/isaacs))
+* [`4050b9189`](https://github.com/npm/cli/commit/4050b91898c60e9b22998cf82b70b9b822de592a)
+ `hosted-git-info@2.8.2`
+ * [#46](https://github.com/npm/hosted-git-info/issues/46)
+ [#43](https://github.com/npm/hosted-git-info/issues/43)
+ [#47](https://github.com/npm/hosted-git-info/pull/47)
+ [#44](https://github.com/npm/hosted-git-info/pull/44) Add support for
+ GitLab subgroups ([@mterrel](https://github.com/mterrel),
+ [@isaacs](https://github.com/isaacs),
+ [@ybiquitous](https://github.com/ybiquitous))
+ * [`3b1d629`](https://github.com/npm/hosted-git-info/commit/3b1d629)
+ [#48](https://github.com/npm/hosted-git-info/issues/48) fix http
+ protocol using sshurl by default
+ ([@fengmk2](https://github.com/fengmk2))
+ * [`5d4a8d7`](https://github.com/npm/hosted-git-info/commit/5d4a8d7)
+ ignore noCommittish on tarball url generation
+ ([@isaacs](https://github.com/isaacs))
+ * [`1692435`](https://github.com/npm/hosted-git-info/commit/1692435)
+ use gist tarball url that works for anonymous gists
+ ([@isaacs](https://github.com/isaacs))
+ * [`d5cf830`](https://github.com/npm/hosted-git-info/commit/d5cf8309be7af884032616c63ea302ce49dd321c)
+ Do not allow invalid gist urls ([@isaacs](https://github.com/isaacs))
+ * [`e518222`](https://github.com/npm/hosted-git-info/commit/e5182224351183ce619dd5ef00019ae700ed37b7)
+ Use LRU cache to prevent unbounded memory consumption
+ ([@iarna](https://github.com/iarna))
+
+## v6.10.2 (2019-07-23):
+
+tl;dr - Fixes several issues with the cache when npm is run as `sudo` on
+Unix systems.
+
+### TESTING
+
+* [`2a78b96f8`](https://github.com/npm/cli/commit/2a78b96f830bbd834720ccc9eacccc54915ae6f7)
+ check test cache for root-owned files
+ ([@isaacs](https://github.com/isaacs))
+* [`108646ebc`](https://github.com/npm/cli/commit/108646ebc12f3eeebaa0a45884c45991a45e57e4)
+ run sudo tests on Travis-CI ([@isaacs](https://github.com/isaacs))
+* [`cf984e946`](https://github.com/npm/cli/commit/cf984e946f453cbea2fcc7a59608de3f24ab74c3)
+ set --no-esm tap flag ([@isaacs](https://github.com/isaacs))
+* [`8e0a3100d`](https://github.com/npm/cli/commit/8e0a3100dffb3965bb3dc4240e82980dfadf2f3c)
+ add script to run tests and leave fixtures for inspection and debugging
+ ([@isaacs](https://github.com/isaacs))
+
+### BUGFIXES
+
+* [`25f4f73f6`](https://github.com/npm/cli/commit/25f4f73f6dc9744757787c82351120cd1baee5f8)
+ add a util for writing arbitrary files to cache This prevents metrics
+ timing and debug logs from becoming root-owned.
+ ([@isaacs](https://github.com/isaacs))
+* [`2c61ce65d`](https://github.com/npm/cli/commit/2c61ce65d6b67100fdf3fcb9729055b669cb1a1d)
+ infer cache owner from parent dir in `correct-mkdir` util
+ ([@isaacs](https://github.com/isaacs))
+* [`235e5d6df`](https://github.com/npm/cli/commit/235e5d6df6f427585ec58425f1f3339d08f39d8a)
+ ensure correct owner on cached all-packages metadata
+ ([@isaacs](https://github.com/isaacs))
+* [`e2d377bb6`](https://github.com/npm/cli/commit/e2d377bb6419d8a3c1d80a73dba46062b4dad336)
+ [npm.community#8540](https://npm.community/t/npm-audit-fails-with-child-requires-fails-because-requires-must-be-an-object/8540)
+ audit: report server error on failure
+ ([@isaacs](https://github.com/isaacs))
+* [`52576a39e`](https://github.com/npm/cli/commit/52576a39ed75d94c46bb2c482fd38d2c6ea61c56)
+ [#216](https://github.com/npm/cli/pull/216)
+ [npm.community#5385](https://npm.community/t/6-8-0-npm-ci-fails-with-local-dependency/5385)
+ [npm.community#6076](https://npm.community/t/npm-ci-fail-to-local-packages/6076)
+ Fix `npm ci` with `file:` dependencies. Partially reverts
+ [#40](https://github.com/npm/cli/pull/40)/[#86](https://github.com/npm/cli/pull/86),
+ recording dependencies of linked deps in order for `npm ci` to work.
+ ([@jfirebaugh](https://github.com/jfirebaugh))
+
+### DEPENDENCIES
+
+* [`0fefdee13`](https://github.com/npm/cli/commit/0fefdee130fd7d0dbb240fb9ecb50a793fbf3d29)
+ `cacache@12.0.2` ([@isaacs](https://github.com/isaacs))
+ * infer uid/gid instead of accepting as options, preventing the
+ overwhelming majority of cases where root-owned files end up in the
+ cache folder.
+ ([ac84d14](https://github.com/npm/cacache/commit/ac84d14))
+ ([@isaacs](https://github.com/isaacs))
+ ([#1](https://github.com/npm/cacache/pull/1))
+ * **i18n:** add another error message
+ ([676cb32](https://github.com/npm/cacache/commit/676cb32))
+ ([@zkat](https://github.com/zkat))
+* [`e1d87a392`](https://github.com/npm/cli/commit/e1d87a392371a070b0788ab7bfc62be18b21e9ad)
+ `pacote@9.5.4` ([@isaacs](https://github.com/isaacs))
+ * git: ensure stream failures are reported
+ ([7f07b5d](https://github.com/npm/pacote/commit/7f07b5d))
+ [#1](https://github.com/npm/pacote/issues/1)
+ ([@lddubeau](https://github.com/lddubeau))
+* [`3f035bf09`](https://github.com/npm/cli/commit/3f035bf098e2feea76574cec18b04812659aa16d)
+ `infer-owner@1.0.4` ([@isaacs](https://github.com/isaacs))
+* [`ba3283112`](https://github.com/npm/cli/commit/ba32831126591d2f6f48e31a4a2329b533b1ff19)
+ `npm-registry-fetch@4.0.0` ([@isaacs](https://github.com/isaacs))
+* [`ee90c334d`](https://github.com/npm/cli/commit/ee90c334d271383d0325af42f20f80f34cb61f07)
+ `libnpm@3.0.1` ([@isaacs](https://github.com/isaacs))
+* [`1e480c384`](https://github.com/npm/cli/commit/1e480c38416982ae28b5cdd48c698ca59d3c0395)
+ `libnpmaccess@3.0.2` ([@isaacs](https://github.com/isaacs))
+* [`7662ee850`](https://github.com/npm/cli/commit/7662ee850220c71ecaec639adbc7715286f0d28b)
+ `libnpmhook@5.0.3` ([@isaacs](https://github.com/isaacs))
+* [`1357fadc6`](https://github.com/npm/cli/commit/1357fadc613d0bfeb40f9a8f3ecace2face2fe2c)
+ `libnpmorg@1.0.1` ([@isaacs](https://github.com/isaacs))
+* [`a621b5cb6`](https://github.com/npm/cli/commit/a621b5cb6c881f95a11af86a8051754a67ae017c)
+ `libnpmsearch@2.0.2` ([@isaacs](https://github.com/isaacs))
+* [`560cd31dd`](https://github.com/npm/cli/commit/560cd31dd51b6aa2e396ccdd7289fab0a50b5608)
+ `libnpmteam@1.0.2` ([@isaacs](https://github.com/isaacs))
+* [`de7ae0867`](https://github.com/npm/cli/commit/de7ae0867d4c0180edc283457ce0b4e8e5eee554)
+ `npm-profile@4.0.2` ([@isaacs](https://github.com/isaacs))
+* [`e95da463c`](https://github.com/npm/cli/commit/e95da463cb7a325457ef411a569d7ef4bf76901d)
+ `libnpm@3.0.1` ([@isaacs](https://github.com/isaacs))
+* [`554b641d4`](https://github.com/npm/cli/commit/554b641d49d135ae8d137e83aa288897c32dacc6)
+ `npm-registry-fetch@4.0.0` ([@isaacs](https://github.com/isaacs))
+* [`06772f34a`](https://github.com/npm/cli/commit/06772f34ab851440dcd78574736936c674a84aed)
+ `node-gyp@5.0.3` ([@isaacs](https://github.com/isaacs))
+* [`85358db80`](https://github.com/npm/cli/commit/85358db80d6ccb5f7bc9a0b4d558ac6dd2468394)
+ `npm-lifecycle@3.1.2` ([@isaacs](https://github.com/isaacs))
+ * [`051cf20`](https://github.com/npm/npm-lifecycle/commit/051cf20072a01839c17920d2e841756251c4f924)
+ [#26](https://github.com/npm/npm-lifecycle/pull/26) fix switches for
+ alternative shells on Windows
+ ([@gucong3000](https://github.com/gucong3000))
+ * [`3aaf954`](https://github.com/npm/npm-lifecycle/commit/3aaf95435965e8f7acfd955582cf85237afd2c9b)
+ [#25](https://github.com/npm/npm-lifecycle/pull/25) set only one PATH
+ env variable for child process on Windows
+ ([@zkochan](https://github.com/zkochan))
+ * [`ea18ed2`](https://github.com/npm/npm-lifecycle/commit/ea18ed2b754ca7f11998cad70d88e9004c5bef4a)
+ [#36](https://github.com/npm/npm-lifecycle/pull/36)
+ [#11](https://github.com/npm/npm-lifecycle/issue/11)
+ [#18](https://github.com/npm/npm-lifecycle/issue/18) remove
+ procInterrupt listener on SIGINT in procError
+ ([@mattshin](https://github.com/mattshin))
+ * [`5523951`](https://github.com/npm/npm-lifecycle/commit/55239519c57b82521605622e6c71640a31ed4586)
+ [#29](https://github.com/npm/npm-lifecycle/issue/29)
+ [#30](https://github.com/npm/npm-lifecycle/pull/30) Use platform
+ specific path casing if present
+ ([@mattezell](https://github.com/mattezell))
+
## v6.10.1 (2019-07-11):
### BUGFIXES
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 3fc4ff5dc7a82..3e3512ffeaec0 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -3,80 +3,189 @@
## Table of Contents
* [Introduction](#introduction)
-* [Roles](#roles)
- * [Community Members](#community-members)
- * [Collaborators](#collaborators)
- * [npm, Inc Employees](#npm-inc-employees)
-
+* [Code Structure](#code-structure)
+* [Running Tests](#running-tests)
+* [Debugging](#debugging)
+* [Coverage](#coverage)
+* [Benchmarking](#benchmarking)
+* [Types of Contributions](#types-of-contributions)
+ * [Contributing an Issue?](#contributing-an-issue)
+ * [Contributing a Question?](#contributing-a-question)
+ * [Contributing a Bug Fix?](#contributing-a-bug-fix)
+ * [Contributing a Feature?](#contributing-a-bug-feature)
+* [Development Dependencies](#development-dependencies)
+* [Dependencies](#dependencies)
## Introduction
-Welcome to the npm CLI Contributor Guide! This document outlines the npm CLI repository's process for community interaction and contribution. This includes the issue tracker, pull requests, wiki pages, and, to a certain extent, outside communication in the context of the npm CLI. It defines roles, responsibilities, and procedures, and is an entry point for anyone wishing to contribute their time and effort to making npm a better tool for the JavaScript community!
+Welcome to the npm CLI Contributor Guide! This document outlines the npm CLI repository's process for community interaction and contribution. This includes the issue tracker, pull requests, wiki pages, and, to a certain extent, outside communication in the context of the npm CLI. This is an entry point for anyone wishing to contribute their time and effort to making npm a better tool for the JavaScript community!
All interactions in the npm repository are covered by the [npm Code of Conduct](https://www.npmjs.com/policies/conduct)
-## Roles
-There are three main roles for people participating in the npm issue tracker. Each has a specific set of abilities and responsibilities: [Community members](#community-members), [Collaborators](#collaborators), and [npm, Inc employees](#npm-inc-employees).
+## Code Structure
+```
+/
+├── bin/
+│ │ # Directory for executable files. It's very rare that you
+│ │ # will need to update a file in this directory.
+│ │
+│ ├── npm # npm-cli entrypoint for bourne shell
+│ ├── npm-cli.js # npm-cli entrypoint for node
+│ ├── npm.cmd # npm-cli entrypoint for windows
+│ ├── npx # npx entrypoint for bourne shell
+│ ├── npx-cli.js # npx entrypoint for node
+│ └── npx.cmd # npx entrypoint for windows
+│
+├── docs/ 📖
+│ │ # Directory that contains the documentation website for
+│ │ # the npm-cli. You can run this website locally, and have
+│ │ # offline docs! 🔥📖🤓
+│ │
+│ ├── content/ # Markdown files for site content
+│ ├── src/ # Source files for the website; gatsby related
+│ └── package.json # Site manifest; scripts and dependencies
+│
+├── lib/ 📦
+│ # All the Good Bits(tm) of the CLI project live here
+│
+├── node_modules/ 🔋
+│ # Vendored dependencies for the CLI project (See the
+│ # dependencies section below for more details).
+│
+├── scripts/ 📜
+│ # We've created some helper scripts for working with the
+│ # CLI project, specifically around managing our vendored
+│ # dependencies, merging in pull-requests, and publishing
+│ # releases.
+│
+├── test/ 🧪
+│ # All the tests for the CLI live in this folder. We've
+│ # got a lot of tests 🤓🧪🩺
+│
+├── CONTRIBUTING.md # This file! 🎉
+└── package.json # The projects main manifest file 📃
+```
+
+## Running Tests
+
+```
+# Make sure you install the dependencies first before running tests.
+$ npm install
+
+# Run tests for the CLI (it could take a while).
+$ npm run test
+```
+
+## Debugging
+
+It can be tricky to track down issues in the CLI. It's a large code base that has been evolving for over a decade. There is a handy `make` command that will connect the **cloned repository** you have on your machine with the global command, so you can add `console.log` statements or debug any other way you feel most comfortable with.
+
+```
+# Clone the repository to start with
+$ git clone git@github.com:npm/cli.git
+
+# Change working directories into the repository
+$ cd cli
+
+# Make sure you have the latest code (if that's what you're trying to debug)
+$ git fetch origin latest
+
+# Connect repository to the global namespace
+$ make link
+
+#################
+# ALTERNATIVELY
+#################
+# If you're working on a feature or bug, you can run the same command on your
+# working branch and link that code.
+
+# Create new branch to work from (there are many ways)
+$ git checkout -b feature/awesome-feature
+
+# Connect repository to global namespace
+$ make link
+```
+
+## Coverage
+
+We try and make sure that each new feature or bug fix has tests to go along with them in order to keep code coverages consistent and increasing. We are actively striving for 100% code coverage!
+
+```
+# You can run the following command to find out coverage
+$ npm run test-coverage
+```
+
+## Benchmarking
+
+We often want to know if the bug we've fixed for the feature we've added has any sort of performance impact. We've created a [benchmark suite](https://github.com/npm/benchmarks) to run against the CLI project from pull-requests. If you would like to know if there are any performance impacts to the work you're contributing, simply do the following:
+
+1. Make a pull-request against this repository
+2. Add the following comment to the pull-request: "`test this please ✅`"
+
+This will trigger the [benchmark suite](https://github.com/npm/benchmarks) to run against your pull-request, and when it's finished running it will post a comment on your pull-request just like below. You'll be able to see the results from the suite inline in your pull-request.
+
+> You'll notice that the bot-user will also add a 🚀 reaction to your comment to
+let you know that it's sent the request to start the benchmark suite.
+
+
+
+If you've updated your pull-request and you'd like to run the the benchmark suite again, simple update your original comment, by adding `test this please ✅` again, or simply just adding another emoji to the **end**. _(The trigger is the phrase "test this please ✅" at the beginning of a comment. Updates will trigger as well, so long as the phrase stays at the beginning.)_.
+
+
+
+## Types of Contributions
-Failure to comply with the expected responsibilities of each role, or violating the Code of Conduct will result in punitive action relative to the transgression, ranging from a warning to full removal from the project, at the discretion of npm employees.
+### Contributing an Issue?
-### Community Members
+Great!! Is your [new issue](https://github.com/npm/cli/issues/new/choose) a [bug](https://github.com/npm/cli/issues/new?template=bug.md&title=%5BBUG%5D+%3Ctitle%3E), a [feature](https://github.com/npm/cli/issues/new?template=feature.md&title=%5BFEATURE%5D+%3Ctitle%3E), or a [question](https://github.com/npm/cli/issues/new?template=question.md&title=%5BQUESTION%5D+%3Ctitle%3E)?
-This includes anyone who may show up to the npm/npm repo with issues, PRs, comments etc. They may not have any other involvement with npm.
+### Contributing a Question?
-#### Abilities
+Huh? 🤔 Got a situation you're not sure about?! Perfect! We've got some resources you can use.
-* Open issues and PRs
-* Comment on issues and PRs
+* Our [documentation site](https://docs.npmjs.com/)
+* The local docs that come with the CLI project
-#### Responsibilities
+ > **Example**: `npm help install --viewer browser`
-* Comment on issues when they have a reference to the answer.
-* If community members aren't sure they are correct and don't have a reference to the answer, please leave the issue and try another one.
-* Defer to collaborators and npm employees for answers.
-* Make sure to search for [the troubleshooting posts on npm.community](https://npm.community/c/support/troubleshooting) and search on the issue tracker for similar issues before opening a new one.
-* Any users with urgent support needs are welcome to email support@npmjs.com, and our dedicated support team will be happy to help.
+* The man pages that are built and shipped with the CLI
-PLEASE don't @ collaborators or npm employees on issues. The CLI team is small, and has many outstanding commitments to fulfill.
+ > **Example**: `man npm-install` (only on linux/macOS)
-### Collaborators
+* Search of the [current issues](https://github.com/npm/cli/issues)
-These are folks who have the ability to label and close issues. The role of collaborators may expand over time, but for now it is a limited (& important) role. This is an excellent way to contribute to npm without writing code.
+### Contributing a Bug Fix?
-Community members may become collaborators by showing consistent, proven track record of quality contributions to the project, a reasonable level of proficiency with the CLI, and regular participation through the tracker and other related mediums, including regular contact with the CLI team itself. This role entails a higher level of responsibility than community member, so we ask for a higher level of understanding and commitment.
+We'd be happy to triage and help! Head over to the issues and [create a new one](https://github.com/npm/cli/issues/new?template=bug.md&title=%5BBUG%5D+%3Ctitle%3E)!
-Collaborators who become inactive for 3 months or longer may have their collaborator privileges removed until they are ready to return.
+> We'll need a little bit of information about what happened, rather than "it broke". Such as:
+* When did/does this bug happen?
+* Can you reproduce it? _(Can you make it happen more than once.)_
+* What version of `node`/`npm` are you running on your computer?
+* What did you expect it to do?
+* What did it _actually do?
+* etc...
-#### Abilities
+### Contributing a Feature?
-* Label/triage new issues
-* Respond to ongoing issues
-* Close resolved issues.
+Snazzy, we're always up for fancy new things! If the feature is fairly minor, the team can triage it and prioritize it into our backlog. However, if the feature is a little more complex, then it's best to create an [RFC](https://en.wikipedia.org/wiki/Request_for_Comments) in our [RFC repository](https://github.com/npm/rfcs). Exactly how to do that is outlined in that repository. If you're not sure _exactly_ how to implement your idea, or don't want to make a document about your idea, then please create an issue on that repository. We consider these RRFC's, or a "Requesting Request For Comment".
-#### Responsibilities
+## Development Dependencies
-* Only answer questions when they know the answer, and provide a reference to the answer.
-* If collaborators aren't totally confident about their answer, please leave the issue and try another one.
-* If they've responded to an issue, it becomes their responsibility to see it to resolution.
-* Defer to fellow Collaborators & npm employees for answers (Again, please don't @ collaborators or npm employees, thank you!)
-* Make sure to search [the troubleshooting posts on npm.community](https://npm.community/c/support/troubleshooting) and search the rest of the forum for similar topics.
+You'll need a few things installed in order to update and test the CLI project during development:
-### npm, Inc Employees
+* [node](https://nodejs.org/) v8 or greater
-Folks who work at npm, Inc, who have a responsibility to ensure the stability and functionality of the tools npm offers.
+> We recommend that you have a [node version manager](https://github.com/nvm-sh/nvm) installed if you plan on fixing bugs that might be present in a specific version of node. With a version manager you can easily switch versions of node and test if your changes to the CLI project are working.
-#### Abilities
+* [git](https://git-scm.com/) v2.11+
-* Label/triage new issues
-* Respond to ongoing issues
-* Close resolved issues
-* Land PRs
-Please note that this is a living document, and the CLI team will put up PRs to it as needed.
+## Dependencies
-#### Responsibilities
+> Package vendoring is commonly referred to as the case where dependent packages are stored in the same place as your project. That usually means you dependencies are checked into your source management system, such as Git.
-* Preserve and promote the health of the CLI, the registry, the website, etc.
+The CLI project vendors its dependencies in the `node_modules/` folder. Meaning all the dependencies that the CLI project uses are contained within the project itself. This is represented by the `bundledDependencies` section in the root level `package.json` file. The main reason for this is because the `npm` CLI project is distributed with the NodeJS runtime and needs to work out of the box, which means all dependencies need to be available after the runtime is installed.
-In special cases, [Collaborators](#collaborators) may request time to speak with an npm employee directly, by contacting them and coordinating a time/place.
+There are a couple scripts created to help manage this process in the `scripts/` folder.
diff --git a/Makefile b/Makefile
index 4e00647a19cf0..deddc38438113 100644
--- a/Makefile
+++ b/Makefile
@@ -4,51 +4,25 @@ SHELL = bash
PUBLISHTAG = $(shell node scripts/publish-tag.js)
BRANCH = $(shell git rev-parse --abbrev-ref HEAD)
-markdowns = $(shell find doc -name '*.md' | grep -v 'index') README.md
+markdowns = $(shell find docs -name '*.md' | grep -v 'index') README.md
-html_docdeps = html/dochead.html \
- html/docfoot.html \
- scripts/doc-build.sh \
- package.json
-
-cli_mandocs = $(shell find doc/cli -name '*.md' \
+cli_mandocs = $(shell find docs/content/commands -name '*.md' \
|sed 's|.md|.1|g' \
- |sed 's|doc/cli/|man/man1/|g' ) \
+ |sed 's|docs/content/commands/|man/man1/|g' ) \
man/man1/npm-README.1 \
man/man1/npx.1
-files_mandocs = $(shell find doc/files -name '*.md' \
+files_mandocs = $(shell find docs/content/configuring-npm -name '*.md' \
|sed 's|.md|.5|g' \
- |sed 's|doc/files/|man/man5/|g' ) \
- man/man5/npm-json.5 \
- man/man5/npm-global.5
+ |sed 's|docs/content/configuring-npm/|man/man5/|g' ) \
-misc_mandocs = $(shell find doc/misc -name '*.md' \
+misc_mandocs = $(shell find docs/content/using-npm -name '*.md' \
|sed 's|.md|.7|g' \
- |sed 's|doc/misc/|man/man7/|g' ) \
- man/man7/npm-index.7
-
-cli_htmldocs = $(shell find doc/cli -name '*.md' \
- |sed 's|.md|.html|g' \
- |sed 's|doc/cli/|html/doc/cli/|g' ) \
- html/doc/README.html
-
-files_htmldocs = $(shell find doc/files -name '*.md' \
- |sed 's|.md|.html|g' \
- |sed 's|doc/files/|html/doc/files/|g' ) \
- html/doc/files/npm-json.html \
- html/doc/files/npm-global.html
-
-misc_htmldocs = $(shell find doc/misc -name '*.md' \
- |sed 's|.md|.html|g' \
- |sed 's|doc/misc/|html/doc/misc/|g' ) \
- html/doc/index.html
+ |sed 's|docs/content/using-npm/|man/man7/|g' ) \
mandocs = $(cli_mandocs) $(files_mandocs) $(misc_mandocs)
-htmldocs = $(cli_htmldocs) $(files_htmldocs) $(misc_htmldocs)
-
-all: doc
+all: docs
latest:
@echo "Installing latest published npm"
@@ -65,14 +39,19 @@ dev: install
link: uninstall
node bin/npm-cli.js link -f
-clean: markedclean marked-manclean doc-clean
+clean: markedclean marked-manclean docs-clean
rm -rf npmrc
node bin/npm-cli.js cache clean --force
uninstall:
node bin/npm-cli.js rm npm -g -f
-doc: $(mandocs) $(htmldocs)
+mandocs: $(mandocs)
+
+htmldocs:
+ cd docs && node dockhand.js >&2
+
+docs: mandocs htmldocs
markedclean:
rm -rf node_modules/marked node_modules/.bin/marked .building_marked
@@ -80,26 +59,28 @@ markedclean:
marked-manclean:
rm -rf node_modules/marked-man node_modules/.bin/marked-man .building_marked-man
-docclean: doc-clean
-doc-clean:
+docsclean: docs-clean
+docs-clean:
rm -rf \
.building_marked \
.building_marked-man \
- html/doc \
- man
+ man \
+ docs/node_modules \
+ docs/output \
+ docs/.cache
## build-time tools for the documentation
build-doc-tools := node_modules/.bin/marked \
node_modules/.bin/marked-man
# use `npm install marked-man` for this to work.
-man/man1/npm-README.1: README.md scripts/doc-build.sh package.json $(build-doc-tools)
+man/man1/npm-README.1: README.md scripts/docs-build.js package.json $(build-doc-tools)
@[ -d man/man1 ] || mkdir -p man/man1
- scripts/doc-build.sh $< $@
+ node scripts/docs-build.js $< $@
-man/man1/%.1: doc/cli/%.md scripts/doc-build.sh package.json $(build-doc-tools)
+man/man1/%.1: docs/content/commands/%.md scripts/docs-build.js package.json $(build-doc-tools)
@[ -d man/man1 ] || mkdir -p man/man1
- scripts/doc-build.sh $< $@
+ node scripts/docs-build.js $< $@
man/man1/npx.1: node_modules/libnpx/libnpx.1
cat $< | sed s/libnpx/npx/ > $@
@@ -107,46 +88,16 @@ man/man1/npx.1: node_modules/libnpx/libnpx.1
man/man5/npm-json.5: man/man5/package.json.5
cp $< $@
-man/man5/npm-global.5: man/man5/npm-folders.5
+man/man5/npm-global.5: man/man5/folders.5
cp $< $@
-man/man5/%.5: doc/files/%.md scripts/doc-build.sh package.json $(build-doc-tools)
+man/man5/%.5: docs/content/configuring-npm/%.md scripts/docs-build.js package.json $(build-doc-tools)
@[ -d man/man5 ] || mkdir -p man/man5
- scripts/doc-build.sh $< $@
-
-doc/misc/npm-index.md: scripts/index-build.js package.json $(build-doc-tools)
- node scripts/index-build.js > $@
+ node scripts/docs-build.js $< $@
-html/doc/index.html: doc/misc/npm-index.md $(html_docdeps) $(build-doc-tools)
- @[ -d html/doc ] || mkdir -p html/doc
- scripts/doc-build.sh $< $@
-
-man/man7/%.7: doc/misc/%.md scripts/doc-build.sh package.json $(build-doc-tools)
+man/man7/%.7: docs/content/using-npm/%.md scripts/docs-build.js package.json $(build-doc-tools)
@[ -d man/man7 ] || mkdir -p man/man7
- scripts/doc-build.sh $< $@
-
-html/doc/README.html: README.md $(html_docdeps) $(build-doc-tools)
- @[ -d html/doc ] || mkdir -p html/doc
- scripts/doc-build.sh $< $@
-
-html/doc/cli/%.html: doc/cli/%.md $(html_docdeps) $(build-doc-tools)
- @[ -d html/doc/cli ] || mkdir -p html/doc/cli
- scripts/doc-build.sh $< $@
-
-html/doc/files/npm-json.html: html/doc/files/package.json.html
- cp $< $@
-
-html/doc/files/npm-global.html: html/doc/files/npm-folders.html
- cp $< $@
-
-html/doc/files/%.html: doc/files/%.md $(html_docdeps) $(build-doc-tools)
- @[ -d html/doc/files ] || mkdir -p html/doc/files
- scripts/doc-build.sh $< $@
-
-html/doc/misc/%.html: doc/misc/%.md $(html_docdeps) $(build-doc-tools)
- @[ -d html/doc/misc ] || mkdir -p html/doc/misc
- scripts/doc-build.sh $< $@
-
+ node scripts/docs-build.js $< $@
marked: node_modules/.bin/marked
@@ -158,11 +109,7 @@ marked-man: node_modules/.bin/marked-man
node_modules/.bin/marked-man:
node bin/npm-cli.js install marked-man --no-global --no-timing --no-save
-doc: man
-
-man: $(cli_docs)
-
-test: doc
+test: docs
node bin/npm-cli.js test
tag:
@@ -174,17 +121,17 @@ ls-ok:
gitclean:
git clean -fd
-publish: gitclean ls-ok link doc-clean doc
+publish: gitclean ls-ok link docs-clean docs
@git push origin :v$(shell node bin/npm-cli.js --no-timing -v) 2>&1 || true
git push origin $(BRANCH) &&\
git push origin --tags &&\
node bin/npm-cli.js publish --tag=$(PUBLISHTAG)
-release: gitclean ls-ok markedclean marked-manclean doc-clean doc
+release: gitclean ls-ok markedclean marked-manclean docs-clean docs
node bin/npm-cli.js prune --production --no-save
@bash scripts/release.sh
sandwich:
@[ $$(whoami) = "root" ] && (echo "ok"; echo "ham" > sandwich) || (echo "make it yourself" && exit 13)
-.PHONY: all latest install dev link doc clean uninstall test man doc-clean docclean release ls-ok realclean
+.PHONY: all latest install dev link docs clean uninstall test man docs-clean docsclean release ls-ok realclean
diff --git a/README.md b/README.md
index bb33879fd0118..05da169f25961 100644
--- a/README.md
+++ b/README.md
@@ -155,12 +155,7 @@ When you find issues, please report them:
Be sure to include *all* of the output from the npm command that didn't work
as expected. The `npm-debug.log` file is also helpful to provide.
-You can also find npm people in `#npm` on https://package.community/ or
-[on Twitter](https://twitter.com/npm_support). Whoever responds will no
-doubt tell you to put the output in a gist or email.
-
## SEE ALSO
* npm(1)
* npm-help(1)
-* npm-index(7)
diff --git a/appveyor.yml b/appveyor.yml
deleted file mode 100644
index 7b97e79d626ef..0000000000000
--- a/appveyor.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-environment:
- matrix:
- # LTS is our most important target
- - nodejs_version: "6"
- # previous LTS is next most important
- - nodejs_version: "4"
- - nodejs_version: "7"
- # then master
- - nodejs_version: "8"
- COVERALLS_REPO_TOKEN:
- secure: XdC0aySefK0HLh1GNk6aKrzZPbCfPQLyA4mYtFGEp4DrTuZA/iuCUS0LDqFYO8JQ
-platform:
- - x86
- - x64
-install:
- - ps: Install-Product node $env:nodejs_version $env:platform
- - npm config set spin false
- - npm rebuild
- - node . install -g .
- - set "PATH=%APPDATA%\npm;C:\Program Files\Git\mingw64\libexec;%PATH%"
- - npm install --loglevel=http
-test_script:
- - node --version
- - npm --version
- - npm run test -- --reporter=classic
-notifications:
-- provider: Slack
- incoming_webhook:
- secure: vXiG5AgpqxJsXZ0N0CTYDuVrX6RMjBybZKtOx6IbRxCyjgd+DAx6Z9/0XgYQjuof7QFJY3M/U6HxaREQVYbNVHA+C5N5dNALRbKzAC8QNbA=
-# GO_FAST
-matrix:
- fast_finish: true
-# we don't need the builds, we just need tests
-build: off
diff --git a/bin/npm-cli.js b/bin/npm-cli.js
index 705aa472e7e55..c0d9be00433d4 100755
--- a/bin/npm-cli.js
+++ b/bin/npm-cli.js
@@ -28,6 +28,7 @@
var npm = require('../lib/npm.js')
var npmconf = require('../lib/config/core.js')
var errorHandler = require('../lib/utils/error-handler.js')
+ var replaceInfo = require('../lib/utils/replace-info.js')
var configDefs = npmconf.defs
var shorthands = configDefs.shorthands
@@ -40,7 +41,8 @@
process.argv.splice(1, 1, 'npm', '-g')
}
- log.verbose('cli', process.argv)
+ var args = replaceInfo(process.argv)
+ log.verbose('cli', args)
var conf = nopt(types, shorthands)
npm.argv = conf.argv.remain
@@ -62,6 +64,7 @@
log.info('using', 'node@%s', process.version)
process.on('uncaughtException', errorHandler)
+ process.on('unhandledRejection', errorHandler)
if (conf.usage && npm.command !== 'help') {
npm.argv.unshift(npm.command)
diff --git a/changelogs/CHANGELOG-3.md b/changelogs/CHANGELOG-3.md
index e8ef464098d83..fc55a696fb22a 100644
--- a/changelogs/CHANGELOG-3.md
+++ b/changelogs/CHANGELOG-3.md
@@ -2864,7 +2864,7 @@ Historically, if you used a pre-release version of Node.js, you would get
dozens and dozens of warnings when EVERY engine check failed across all of
your modules, because `>= 0.10.0` doesn't match prereleases.
-You might find this stream of redundent warnings undesirable. I do.
+You might find this stream of redundant warnings undesirable. I do.
We've moved this into a SINGLE warning you'll get about using a pre-release
version of Node.js and now suppress those other warnings.
@@ -3524,7 +3524,7 @@ it would just refuse to install anything. (We fixed that in
[#10338](https://github.com/npm/npm/pull/10338)
Updating a module could result in the module stealing some of its
dependencies from the top level, potentially breaking other modules or
- resulting in many redundent installations. This bug was first introduced
+ resulting in many redundant installations. This bug was first introduced
by [`971fd47a`](https://github.com/npm/npm/commit/971fd47a).
([@iarna](https://github.com/iarna))
* [`5653366`](https://github.com/npm/npm/commit/5653366)
diff --git a/doc/cli/npm-adduser.md b/doc/cli/npm-adduser.md
deleted file mode 100644
index 72433e00f7483..0000000000000
--- a/doc/cli/npm-adduser.md
+++ /dev/null
@@ -1,85 +0,0 @@
-npm-adduser(1) -- Add a registry user account
-=============================================
-
-## SYNOPSIS
-
- npm adduser [--registry=url] [--scope=@orgname] [--always-auth] [--auth-type=legacy]
-
- aliases: login, add-user
-
-## DESCRIPTION
-
-Create or verify a user named `` in the specified registry, and
-save the credentials to the `.npmrc` file. If no registry is specified,
-the default registry will be used (see `npm-config(7)`).
-
-The username, password, and email are read in from prompts.
-
-To reset your password, go to
-
-To change your email address, go to
-
-You may use this command multiple times with the same user account to
-authorize on a new machine. When authenticating on a new machine,
-the username, password and email address must all match with
-your existing record.
-
-`npm login` is an alias to `adduser` and behaves exactly the same way.
-
-## CONFIGURATION
-
-### registry
-
-Default: https://registry.npmjs.org/
-
-The base URL of the npm package registry. If `scope` is also specified,
-this registry will only be used for packages with that scope. `scope` defaults
-to the scope of the project directory you're currently in, if any. See `npm-scope(7)`.
-
-### scope
-
-Default: none
-
-If specified, the user and login credentials given will be associated
-with the specified scope. See `npm-scope(7)`. You can use both at the same time,
-e.g.
-
- npm adduser --registry=http://myregistry.example.com --scope=@myco
-
-This will set a registry for the given scope and login or create a user for
-that registry at the same time.
-
-### always-auth
-
-Default: false
-
-If specified, save configuration indicating that all requests to the given
-registry should include authorization information. Useful for private
-registries. Can be used with `--registry` and / or `--scope`, e.g.
-
- npm adduser --registry=http://private-registry.example.com --always-auth
-
-This will ensure that all requests to that registry (including for tarballs)
-include an authorization header. This setting may be necessary for use with
-private registries where metadata and package tarballs are stored on hosts with
-different hostnames. See `always-auth` in `npm-config(7)` for more details on
-always-auth. Registry-specific configuration of `always-auth` takes precedence
-over any global configuration.
-
-### auth-type
-
-* Default: `'legacy'`
-* Type: `'legacy'`, `'sso'`, `'saml'`, `'oauth'`
-
-What authentication strategy to use with `adduser`/`login`. Some npm registries
-(for example, npmE) might support alternative auth strategies besides classic
-username/password entry in legacy npm.
-
-## SEE ALSO
-
-* npm-registry(7)
-* npm-config(1)
-* npm-config(7)
-* npmrc(5)
-* npm-owner(1)
-* npm-whoami(1)
diff --git a/doc/cli/npm-bin.md b/doc/cli/npm-bin.md
deleted file mode 100644
index 9b76ec529e30a..0000000000000
--- a/doc/cli/npm-bin.md
+++ /dev/null
@@ -1,19 +0,0 @@
-npm-bin(1) -- Display npm bin folder
-====================================
-
-## SYNOPSIS
-
- npm bin [-g|--global]
-
-## DESCRIPTION
-
-Print the folder where npm will install executables.
-
-## SEE ALSO
-
-* npm-prefix(1)
-* npm-root(1)
-* npm-folders(5)
-* npm-config(1)
-* npm-config(7)
-* npmrc(5)
diff --git a/doc/cli/npm-bugs.md b/doc/cli/npm-bugs.md
deleted file mode 100644
index 55bce12f23fa3..0000000000000
--- a/doc/cli/npm-bugs.md
+++ /dev/null
@@ -1,43 +0,0 @@
-npm-bugs(1) -- Bugs for a package in a web browser maybe
-========================================================
-
-## SYNOPSIS
-
- npm bugs []
-
- aliases: issues
-
-## DESCRIPTION
-
-This command tries to guess at the likely location of a package's
-bug tracker URL, and then tries to open it using the `--browser`
-config param. If no package name is provided, it will search for
-a `package.json` in the current folder and use the `name` property.
-
-## CONFIGURATION
-
-### browser
-
-* Default: OS X: `"open"`, Windows: `"start"`, Others: `"xdg-open"`
-* Type: String
-
-The browser that is called by the `npm bugs` command to open websites.
-
-### registry
-
-* Default: https://registry.npmjs.org/
-* Type: url
-
-The base URL of the npm package registry.
-
-
-## SEE ALSO
-
-* npm-docs(1)
-* npm-view(1)
-* npm-publish(1)
-* npm-registry(7)
-* npm-config(1)
-* npm-config(7)
-* npmrc(5)
-* package.json(5)
diff --git a/doc/cli/npm-build.md b/doc/cli/npm-build.md
deleted file mode 100644
index 019f225850dc0..0000000000000
--- a/doc/cli/npm-build.md
+++ /dev/null
@@ -1,25 +0,0 @@
-npm-build(1) -- Build a package
-===============================
-
-## SYNOPSIS
-
- npm build []
-
-* ``:
- A folder containing a `package.json` file in its root.
-
-## DESCRIPTION
-
-This is the plumbing command called by `npm link` and `npm install`.
-
-It should generally be called during installation, but if you need to run it
-directly, run:
-
- npm run-script build
-
-## SEE ALSO
-
-* npm-install(1)
-* npm-link(1)
-* npm-scripts(7)
-* package.json(5)
diff --git a/doc/cli/npm-bundle.md b/doc/cli/npm-bundle.md
deleted file mode 100644
index 69b3d83e458d7..0000000000000
--- a/doc/cli/npm-bundle.md
+++ /dev/null
@@ -1,14 +0,0 @@
-npm-bundle(1) -- REMOVED
-========================
-
-## DESCRIPTION
-
-The `npm bundle` command has been removed in 1.0, for the simple reason
-that it is no longer necessary, as the default behavior is now to
-install packages into the local space.
-
-Just use `npm install` now to do what `npm bundle` used to do.
-
-## SEE ALSO
-
-* npm-install(1)
diff --git a/doc/cli/npm-completion.md b/doc/cli/npm-completion.md
deleted file mode 100644
index 57fa3bbd38ce0..0000000000000
--- a/doc/cli/npm-completion.md
+++ /dev/null
@@ -1,32 +0,0 @@
-npm-completion(1) -- Tab Completion for npm
-===========================================
-
-## SYNOPSIS
-
- source <(npm completion)
-
-## DESCRIPTION
-
-Enables tab-completion in all npm commands.
-
-The synopsis above
-loads the completions into your current shell. Adding it to
-your ~/.bashrc or ~/.zshrc will make the completions available
-everywhere:
-
- npm completion >> ~/.bashrc
- npm completion >> ~/.zshrc
-
-You may of course also pipe the output of `npm completion` to a file
-such as `/usr/local/etc/bash_completion.d/npm` or
-`/etc/bash_completion.d/npm` if you have a system that will read
-that file for you.
-
-When `COMP_CWORD`, `COMP_LINE`, and `COMP_POINT` are defined in the
-environment, `npm completion` acts in "plumbing mode", and outputs
-completions based on the arguments.
-
-## SEE ALSO
-
-* npm-developers(7)
-* npm(1)
diff --git a/doc/cli/npm-config.md b/doc/cli/npm-config.md
deleted file mode 100644
index c60afc167c742..0000000000000
--- a/doc/cli/npm-config.md
+++ /dev/null
@@ -1,73 +0,0 @@
-npm-config(1) -- Manage the npm configuration files
-===================================================
-
-## SYNOPSIS
-
- npm config set [-g|--global]
- npm config get
- npm config delete
- npm config list [-l] [--json]
- npm config edit
- npm get
- npm set [-g|--global]
-
- aliases: c
-
-## DESCRIPTION
-
-npm gets its config settings from the command line, environment
-variables, `npmrc` files, and in some cases, the `package.json` file.
-
-See npmrc(5) for more information about the npmrc files.
-
-See `npm-config(7)` for a more thorough discussion of the mechanisms
-involved.
-
-The `npm config` command can be used to update and edit the contents
-of the user and global npmrc files.
-
-## Sub-commands
-
-Config supports the following sub-commands:
-
-### set
-
- npm config set key value
-
-Sets the config key to the value.
-
-If value is omitted, then it sets it to "true".
-
-### get
-
- npm config get key
-
-Echo the config value to stdout.
-
-### list
-
- npm config list
-
-Show all the config settings. Use `-l` to also show defaults. Use `--json`
-to show the settings in json format.
-
-### delete
-
- npm config delete key
-
-Deletes the key from all configuration files.
-
-### edit
-
- npm config edit
-
-Opens the config file in an editor. Use the `--global` flag to edit the
-global config.
-
-## SEE ALSO
-
-* npm-folders(5)
-* npm-config(7)
-* package.json(5)
-* npmrc(5)
-* npm(1)
diff --git a/doc/cli/npm-dedupe.md b/doc/cli/npm-dedupe.md
deleted file mode 100644
index d68832145f0a5..0000000000000
--- a/doc/cli/npm-dedupe.md
+++ /dev/null
@@ -1,55 +0,0 @@
-npm-dedupe(1) -- Reduce duplication
-===================================
-
-## SYNOPSIS
-
- npm dedupe
- npm ddp
-
- aliases: find-dupes, ddp
-
-## DESCRIPTION
-
-Searches the local package tree and attempts to simplify the overall
-structure by moving dependencies further up the tree, where they can
-be more effectively shared by multiple dependent packages.
-
-For example, consider this dependency graph:
-
- a
- +-- b <-- depends on c@1.0.x
- | `-- c@1.0.3
- `-- d <-- depends on c@~1.0.9
- `-- c@1.0.10
-
-In this case, `npm-dedupe(1)` will transform the tree to:
-
- a
- +-- b
- +-- d
- `-- c@1.0.10
-
-Because of the hierarchical nature of node's module lookup, b and d
-will both get their dependency met by the single c package at the root
-level of the tree.
-
-The deduplication algorithm walks the tree, moving each dependency as far
-up in the tree as possible, even if duplicates are not found. This will
-result in both a flat and deduplicated tree.
-
-If a suitable version exists at the target location in the tree
-already, then it will be left untouched, but the other duplicates will
-be deleted.
-
-Arguments are ignored. Dedupe always acts on the entire tree.
-
-Modules
-
-Note that this operation transforms the dependency tree, but will never
-result in new modules being installed.
-
-## SEE ALSO
-
-* npm-ls(1)
-* npm-update(1)
-* npm-install(1)
diff --git a/doc/cli/npm-deprecate.md b/doc/cli/npm-deprecate.md
deleted file mode 100644
index 3660f49ab654f..0000000000000
--- a/doc/cli/npm-deprecate.md
+++ /dev/null
@@ -1,28 +0,0 @@
-npm-deprecate(1) -- Deprecate a version of a package
-====================================================
-
-## SYNOPSIS
-
- npm deprecate [@]
-
-## DESCRIPTION
-
-This command will update the npm registry entry for a package, providing
-a deprecation warning to all who attempt to install it.
-
-It works on [version ranges](https://semver.npmjs.com/) as well as specific
-versions, so you can do something like this:
-
- npm deprecate my-thing@"< 0.2.3" "critical bug fixed in v0.2.3"
-
-Note that you must be the package owner to deprecate something. See the
-`owner` and `adduser` help topics.
-
-To un-deprecate a package, specify an empty string (`""`) for the `message`
-argument. Note that you must use double quotes with no space between them to
-format an empty string.
-
-## SEE ALSO
-
-* npm-publish(1)
-* npm-registry(7)
diff --git a/doc/cli/npm-docs.md b/doc/cli/npm-docs.md
deleted file mode 100644
index f5064c55e2829..0000000000000
--- a/doc/cli/npm-docs.md
+++ /dev/null
@@ -1,44 +0,0 @@
-npm-docs(1) -- Docs for a package in a web browser maybe
-========================================================
-
-## SYNOPSIS
-
- npm docs [ [ ...]]
- npm docs .
- npm home [ [ ...]]
- npm home .
-
-## DESCRIPTION
-
-This command tries to guess at the likely location of a package's
-documentation URL, and then tries to open it using the `--browser`
-config param. You can pass multiple package names at once. If no
-package name is provided, it will search for a `package.json` in
-the current folder and use the `name` property.
-
-## CONFIGURATION
-
-### browser
-
-* Default: OS X: `"open"`, Windows: `"start"`, Others: `"xdg-open"`
-* Type: String
-
-The browser that is called by the `npm docs` command to open websites.
-
-### registry
-
-* Default: https://registry.npmjs.org/
-* Type: url
-
-The base URL of the npm package registry.
-
-
-## SEE ALSO
-
-* npm-view(1)
-* npm-publish(1)
-* npm-registry(7)
-* npm-config(1)
-* npm-config(7)
-* npmrc(5)
-* package.json(5)
diff --git a/doc/cli/npm-edit.md b/doc/cli/npm-edit.md
deleted file mode 100644
index f9913a015ad3b..0000000000000
--- a/doc/cli/npm-edit.md
+++ /dev/null
@@ -1,39 +0,0 @@
-npm-edit(1) -- Edit an installed package
-========================================
-
-## SYNOPSIS
-
- npm edit [/...]
-
-## DESCRIPTION
-
-Selects a (sub)dependency in the current
-working directory and opens the package folder in the default editor
-(or whatever you've configured as the npm `editor` config -- see
-`npm-config(7)`.)
-
-After it has been edited, the package is rebuilt so as to pick up any
-changes in compiled packages.
-
-For instance, you can do `npm install connect` to install connect
-into your package, and then `npm edit connect` to make a few
-changes to your locally installed copy.
-
-## CONFIGURATION
-
-### editor
-
-* Default: `EDITOR` environment variable if set, or `"vi"` on Posix,
- or `"notepad"` on Windows.
-* Type: path
-
-The command to run for `npm edit` or `npm config edit`.
-
-## SEE ALSO
-
-* npm-folders(5)
-* npm-explore(1)
-* npm-install(1)
-* npm-config(1)
-* npm-config(7)
-* npmrc(5)
diff --git a/doc/cli/npm-explore.md b/doc/cli/npm-explore.md
deleted file mode 100644
index 44b77f94340d6..0000000000000
--- a/doc/cli/npm-explore.md
+++ /dev/null
@@ -1,39 +0,0 @@
-npm-explore(1) -- Browse an installed package
-=============================================
-
-## SYNOPSIS
-
- npm explore [ -- ]
-
-## DESCRIPTION
-
-Spawn a subshell in the directory of the installed package specified.
-
-If a command is specified, then it is run in the subshell, which then
-immediately terminates.
-
-This is particularly handy in the case of git submodules in the
-`node_modules` folder:
-
- npm explore some-dependency -- git pull origin master
-
-Note that the package is *not* automatically rebuilt afterwards, so be
-sure to use `npm rebuild ` if you make any changes.
-
-## CONFIGURATION
-
-### shell
-
-* Default: SHELL environment variable, or "bash" on Posix, or "cmd" on
- Windows
-* Type: path
-
-The shell to run for the `npm explore` command.
-
-## SEE ALSO
-
-* npm-folders(5)
-* npm-edit(1)
-* npm-rebuild(1)
-* npm-build(1)
-* npm-install(1)
diff --git a/doc/cli/npm-help-search.md b/doc/cli/npm-help-search.md
deleted file mode 100644
index 74e1011ab0067..0000000000000
--- a/doc/cli/npm-help-search.md
+++ /dev/null
@@ -1,34 +0,0 @@
-npm-help-search(1) -- Search npm help documentation
-===================================================
-
-## SYNOPSIS
-
- npm help-search
-
-## DESCRIPTION
-
-This command will search the npm markdown documentation files for the
-terms provided, and then list the results, sorted by relevance.
-
-If only one result is found, then it will show that help topic.
-
-If the argument to `npm help` is not a known help topic, then it will
-call `help-search`. It is rarely if ever necessary to call this
-command directly.
-
-## CONFIGURATION
-
-### long
-
-* Type: Boolean
-* Default: false
-
-If true, the "long" flag will cause help-search to output context around
-where the terms were found in the documentation.
-
-If false, then help-search will just list out the help topics found.
-
-## SEE ALSO
-
-* npm(1)
-* npm-help(1)
diff --git a/doc/cli/npm-help.md b/doc/cli/npm-help.md
deleted file mode 100644
index 5230082b923fa..0000000000000
--- a/doc/cli/npm-help.md
+++ /dev/null
@@ -1,38 +0,0 @@
-npm-help(1) -- Get help on npm
-==============================
-
-## SYNOPSIS
-
- npm help []
-
-## DESCRIPTION
-
-If supplied a topic, then show the appropriate documentation page.
-
-If the topic does not exist, or if multiple terms are provided, then run
-the `help-search` command to find a match. Note that, if `help-search`
-finds a single subject, then it will run `help` on that topic, so unique
-matches are equivalent to specifying a topic name.
-
-## CONFIGURATION
-
-### viewer
-
-* Default: "man" on Posix, "browser" on Windows
-* Type: path
-
-The program to use to view help content.
-
-Set to `"browser"` to view html help content in the default web browser.
-
-## SEE ALSO
-
-* npm(1)
-* README
-* npm-folders(5)
-* npm-config(1)
-* npm-config(7)
-* npmrc(5)
-* package.json(5)
-* npm-help-search(1)
-* npm-index(7)
diff --git a/doc/cli/npm-install-ci-test.md b/doc/cli/npm-install-ci-test.md
deleted file mode 100644
index 4cbab9144e48f..0000000000000
--- a/doc/cli/npm-install-ci-test.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# npm install-ci-test(1) -- Install a project with a clean slate and run tests
-
-## SYNOPSIS
-
- npm install-ci-test
-
- alias: npm cit
-
-## DESCRIPTION
-
-This command runs an `npm ci` followed immediately by an `npm test`.
-
-## SEE ALSO
-
-- npm-ci(1)
-- npm-test(1)
diff --git a/doc/cli/npm-install-test.md b/doc/cli/npm-install-test.md
deleted file mode 100644
index 471b36f16b565..0000000000000
--- a/doc/cli/npm-install-test.md
+++ /dev/null
@@ -1,25 +0,0 @@
-# npm install-test(1) -- Install package(s) and run tests
-
-## SYNOPSIS
-
- npm install-test (with no args, in package dir)
- npm install-test [<@scope>/]
- npm install-test [<@scope>/]@
- npm install-test [<@scope>/]@
- npm install-test [<@scope>/]@
- npm install-test
- npm install-test
- npm install-test
-
- alias: npm it
- common options: [--save|--save-dev|--save-optional] [--save-exact] [--dry-run]
-
-## DESCRIPTION
-
-This command runs an `npm install` followed immediately by an `npm test`. It
-takes exactly the same arguments as `npm install`.
-
-## SEE ALSO
-
-- npm-install(1)
-- npm-test(1)
diff --git a/doc/cli/npm-install.md b/doc/cli/npm-install.md
deleted file mode 100644
index 4ff4a47cbcf4e..0000000000000
--- a/doc/cli/npm-install.md
+++ /dev/null
@@ -1,457 +0,0 @@
-npm-install(1) -- Install a package
-===================================
-
-## SYNOPSIS
-
- npm install (with no args, in package dir)
- npm install [<@scope>/]
- npm install [<@scope>/]@
- npm install [<@scope>/]@
- npm install [<@scope>/]@
- npm install :/
- npm install
- npm install
- npm install
- npm install
-
- aliases: npm i, npm add
- common options: [-P|--save-prod|-D|--save-dev|-O|--save-optional] [-E|--save-exact] [-B|--save-bundle] [--no-save] [--dry-run]
-
-## DESCRIPTION
-
-This command installs a package, and any packages that it depends on. If the
-package has a package-lock or shrinkwrap file, the installation of dependencies
-will be driven by that, with an `npm-shrinkwrap.json` taking precedence if both
-files exist. See package-lock.json(5) and npm-shrinkwrap(1).
-
-A `package` is:
-
-* a) a folder containing a program described by a `package.json(5)` file
-* b) a gzipped tarball containing (a)
-* c) a url that resolves to (b)
-* d) a `@` that is published on the registry (see `npm-registry(7)`) with (c)
-* e) a `@` (see `npm-dist-tag(1)`) that points to (d)
-* f) a `` that has a "latest" tag satisfying (e)
-* g) a `` that resolves to (a)
-
-Even if you never publish your package, you can still get a lot of
-benefits of using npm if you just want to write a node program (a), and
-perhaps if you also want to be able to easily install it elsewhere
-after packing it up into a tarball (b).
-
-
-* `npm install` (in package directory, no arguments):
-
- Install the dependencies in the local node_modules folder.
-
- In global mode (ie, with `-g` or `--global` appended to the command),
- it installs the current package context (ie, the current working
- directory) as a global package.
-
- By default, `npm install` will install all modules listed as dependencies
- in `package.json(5)`.
-
- With the `--production` flag (or when the `NODE_ENV` environment variable
- is set to `production`), npm will not install modules listed in
- `devDependencies`.
-
- > NOTE: The `--production` flag has no particular meaning when adding a
- dependency to a project.
-
-* `npm install `:
-
- Install the package in the directory as a symlink in the current project.
- Its dependencies will be installed before it's linked. If `` sits
- inside the root of your project, its dependencies may be hoisted to the
- toplevel `node_modules` as they would for other types of dependencies.
-
-* `npm install `:
-
- Install a package that is sitting on the filesystem. Note: if you just want
- to link a dev directory into your npm root, you can do this more easily by
- using `npm link`.
-
- Tarball requirements:
- * The filename *must* use `.tar`, `.tar.gz`, or `.tgz` as
- the extension.
- * The package contents should reside in a subfolder inside the tarball (usually it is called `package/`). npm strips one directory layer when installing the package (an equivalent of `tar x --strip-components=1` is run).
- * The package must contain a `package.json` file with `name` and `version` properties.
-
- Example:
-
- npm install ./package.tgz
-
-* `npm install `:
-
- Fetch the tarball url, and then install it. In order to distinguish between
- this and other options, the argument must start with "http://" or "https://"
-
- Example:
-
- npm install https://github.com/indexzero/forever/tarball/v0.5.6
-
-* `npm install [<@scope>/]`:
-
- Do a `@` install, where `` is the "tag" config. (See
- `npm-config(7)`. The config's default value is `latest`.)
-
- In most cases, this will install the version of the modules tagged as
- `latest` on the npm registry.
-
- Example:
-
- npm install sax
-
- `npm install` saves any specified packages into `dependencies` by default.
- Additionally, you can control where and how they get saved with some
- additional flags:
-
- * `-P, --save-prod`: Package will appear in your `dependencies`. This is the
- default unless `-D` or `-O` are present.
-
- * `-D, --save-dev`: Package will appear in your `devDependencies`.
-
- * `-O, --save-optional`: Package will appear in your `optionalDependencies`.
-
- * `--no-save`: Prevents saving to `dependencies`.
-
- When using any of the above options to save dependencies to your
- package.json, there are two additional, optional flags:
-
- * `-E, --save-exact`: Saved dependencies will be configured with an
- exact version rather than using npm's default semver range
- operator.
-
- * `-B, --save-bundle`: Saved dependencies will also be added to your `bundleDependencies` list.
-
- Further, if you have an `npm-shrinkwrap.json` or `package-lock.json` then it
- will be updated as well.
-
- `` is optional. The package will be downloaded from the registry
- associated with the specified scope. If no registry is associated with
- the given scope the default registry is assumed. See `npm-scope(7)`.
-
- Note: if you do not include the @-symbol on your scope name, npm will
- interpret this as a GitHub repository instead, see below. Scopes names
- must also be followed by a slash.
-
- Examples:
-
- npm install sax
- npm install githubname/reponame
- npm install @myorg/privatepackage
- npm install node-tap --save-dev
- npm install dtrace-provider --save-optional
- npm install readable-stream --save-exact
- npm install ansi-regex --save-bundle
-
-
- **Note**: If there is a file or folder named `` in the current
- working directory, then it will try to install that, and only try to
- fetch the package by name if it is not valid.
-
-* `npm install [<@scope>/]@`:
-
- Install the version of the package that is referenced by the specified tag.
- If the tag does not exist in the registry data for that package, then this
- will fail.
-
- Example:
-
- npm install sax@latest
- npm install @myorg/mypackage@latest
-
-* `npm install [<@scope>/]@`:
-
- Install the specified version of the package. This will fail if the
- version has not been published to the registry.
-
- Example:
-
- npm install sax@0.1.1
- npm install @myorg/privatepackage@1.5.0
-
-* `npm install [<@scope>/]@`:
-
- Install a version of the package matching the specified version range. This
- will follow the same rules for resolving dependencies described in `package.json(5)`.
-
- Note that most version ranges must be put in quotes so that your shell will
- treat it as a single argument.
-
- Example:
-
- npm install sax@">=0.1.0 <0.2.0"
- npm install @myorg/privatepackage@">=0.1.0 <0.2.0"
-
-* `npm install `:
-
- Installs the package from the hosted git provider, cloning it with `git`.
- For a full git remote url, only that URL will be attempted.
-
- ://[[:]@][:][:][/][# | #semver:]
-
- `` is one of `git`, `git+ssh`, `git+http`, `git+https`, or
- `git+file`.
-
- If `#` is provided, it will be used to clone exactly that
- commit. If the commit-ish has the format `#semver:`, `` can
- be any valid semver range or exact version, and npm will look for any tags
- or refs matching that range in the remote repository, much as it would for a
- registry dependency. If neither `#` or `#semver:` is
- specified, then the default branch of the repository is used.
-
- If the repository makes use of submodules, those submodules will be cloned
- as well.
-
- If the package being installed contains a `prepare` script, its
- `dependencies` and `devDependencies` will be installed, and the prepare
- script will be run, before the package is packaged and installed.
-
- The following git environment variables are recognized by npm and will be
- added to the environment when running git:
-
- * `GIT_ASKPASS`
- * `GIT_EXEC_PATH`
- * `GIT_PROXY_COMMAND`
- * `GIT_SSH`
- * `GIT_SSH_COMMAND`
- * `GIT_SSL_CAINFO`
- * `GIT_SSL_NO_VERIFY`
-
- See the git man page for details.
-
- Examples:
-
- npm install git+ssh://git@github.com:npm/cli.git#v1.0.27
- npm install git+ssh://git@github.com:npm/cli#semver:^5.0
- npm install git+https://isaacs@github.com/npm/cli.git
- npm install git://github.com/npm/cli.git#v1.0.27
- GIT_SSH_COMMAND='ssh -i ~/.ssh/custom_ident' npm install git+ssh://git@github.com:npm/cli.git
-
-* `npm install