summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorMyles Borins <myles.borins@gmail.com>2017-10-26 23:26:41 -0400
committerGibson Fahnestock <gibfahn@gmail.com>2017-12-19 22:59:33 +0000
commit35316dcd10cb0122c021ee98c7197c970cc7b49e (patch)
tree72062219a040d465e71ff843ef7914560e537277 /doc
parentad9a8578ee36a0d728148a72710fd780caa15a6f (diff)
downloadnode-new-35316dcd10cb0122c021ee98c7197c970cc7b49e.tar.gz
doc: add guide to maintaining npm
This is based on the guide found on their wiki refs: https://github.com/npm/npm/wiki/CLI-Team-Process#submitting-the-new-latest-x-to-nodejs PR-URL: https://github.com/nodejs/node/pull/16541 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Anatoli Papirovski <apapirovski@mac.com> Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com> Reviewed-By: Michaƫl Zasso <targos@protonmail.com> Reviewed-By: Yuta Hiroto <hello@about-hiroppy.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Diffstat (limited to 'doc')
-rw-r--r--doc/guides/maintaining-npm.md68
1 files changed, 68 insertions, 0 deletions
diff --git a/doc/guides/maintaining-npm.md b/doc/guides/maintaining-npm.md
new file mode 100644
index 0000000000..af9d3af04f
--- /dev/null
+++ b/doc/guides/maintaining-npm.md
@@ -0,0 +1,68 @@
+# Maintaining npm in Node.js
+
+## Step 1: Clone npm
+
+```console
+$ git clone https://github.com/npm/npm.git
+$ cd npm
+```
+
+or if you already have npm cloned make sure the repo is up to date
+
+```console
+$ git remote update -p
+$ git reset --hard origin latest
+```
+
+## Step 2: Build release
+
+```console
+$ git checkout vX.Y.Z
+$ make release
+```
+
+Note: please run `npm dist-tag ls npm` and make sure this is the `latest` **dist-tag**. `latest` on git is usually released as `next` when it's time to downstream
+
+## Step 3: Remove old npm
+
+```console
+$ cd /path/to/node
+$ git remote update -p
+$ git checkout -b npm-x.y.z origin/master
+$ cd deps
+$ rm -rf npm
+```
+
+## Step 4: Extract and commit new npm
+
+```console
+$ tar zxf /path/to/npm/release/npm-x.y.z.tgz
+$ git add -A npm
+$ git commit -m "deps: upgrade npm to x.y.z"
+$ cd ..
+```
+
+## Step 5: Update licenses
+
+```console
+$ ./configure
+$ make -j4
+$ ./tools/license-builder.sh
+# The following commands are only necessary if there are changes
+$ git add .
+$ git commit -m "doc: update npm LICENSE using license-builder.sh"
+```
+
+Note: please ensure you are only making the updates that are changed by npm.
+
+## Step 6: Apply Whitespace fix
+
+```console
+$ git rebase --whitespace=fix master
+```
+
+## Step 7: Test the build
+
+```console
+$ make test-npm
+```