Repository navigation
doc: add guide to maintaining npm #16541
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
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
- Loading branch information
There are no files selected for viewing
| 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 | ||
| ``` | ||
|
|
||
| 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 | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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" | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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 | ||
| ``` | ||
There was a problem hiding this comment.
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 npmand make sure this is thelatestdist-tag.lateston git is usually released asnextwhen it's time to downstream.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed below