Skip to content
Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
doc: add guide to maintaining npm
  • Loading branch information
MylesBorins committed Nov 29, 2017
commit 94952acd8ead3a675c5cf797c07a76eca795651c
70 changes: 70 additions & 0 deletions doc/guides/maintaining-npm.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# 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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would add a note to 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.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed below

```

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 checkout master
$ git remote update -p
$ git reset --hard origin master
$ git checkout -b npm-x.y.z

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe just

git remote update -p
git checkout -b npm-x.y.z origin/master

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

$ 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"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might be worth warning folks that this might end up including changes to -other- licenses, and that wouldn't be appropriate for this commit. They should make sure to check that any changes are actually npm-check related.

```

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
```