From f2eaf874ed6b8d701e9eac144cd6067ec9874d86 Mon Sep 17 00:00:00 2001 From: Myles Borins Date: Thu, 26 Oct 2017 23:26:41 -0400 Subject: [PATCH] doc: add guide to maintaining npm MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-By: Luigi Pinca Reviewed-By: Gireesh Punathil Reviewed-By: Colin Ihrig Reviewed-By: Anatoli Papirovski Reviewed-By: Jeremiah Senkpiel Reviewed-By: Michaƫl Zasso Reviewed-By: Yuta Hiroto Reviewed-By: Ruben Bridgewater Reviewed-By: Michael Dawson Reviewed-By: Gibson Fahnestock --- doc/guides/maintaining-npm.md | 68 +++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 doc/guides/maintaining-npm.md diff --git a/doc/guides/maintaining-npm.md b/doc/guides/maintaining-npm.md new file mode 100644 index 00000000000000..af9d3af04f2360 --- /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 +```