summaryrefslogtreecommitdiff
path: root/deps/npm/man/man1/npm-version.1
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/man/man1/npm-version.1')
-rw-r--r--deps/npm/man/man1/npm-version.170
1 files changed, 51 insertions, 19 deletions
diff --git a/deps/npm/man/man1/npm-version.1 b/deps/npm/man/man1/npm-version.1
index 6c9444ff7..1cfe82618 100644
--- a/deps/npm/man/man1/npm-version.1
+++ b/deps/npm/man/man1/npm-version.1
@@ -1,4 +1,4 @@
-.TH "NPM\-VERSION" "1" "June 2015" "" ""
+.TH "NPM\-VERSION" "1" "August 2015" "" ""
.SH "NAME"
\fBnpm-version\fR \- Bump a package version
.SH SYNOPSIS
@@ -11,21 +11,22 @@ npm version [<newversion> | major | minor | patch | premajor | preminor | prepat
.SH DESCRIPTION
.P
Run this in a package directory to bump the version and write the new
-data back to \fBpackage\.json\fR and, if present, \fBnpm\-shrinkwrap\.json\fR\|\.
+data back to \fBpackage\.json\fP and, if present, \fBnpm\-shrinkwrap\.json\fP\|\.
.P
-The \fBnewversion\fR argument should be a valid semver string, \fIor\fR a
-valid second argument to semver\.inc (one of "patch", "minor", "major",
-"prepatch", "preminor", "premajor", "prerelease")\. In the second case,
+The \fBnewversion\fP argument should be a valid semver string, \fIor\fR a
+valid second argument to semver\.inc (one of \fBpatch\fP, \fBminor\fP, \fBmajor\fP,
+\fBprepatch\fP, \fBpreminor\fP, \fBpremajor\fP, \fBprerelease\fP)\. In the second case,
the existing version will be incremented by 1 in the specified field\.
.P
-If run in a git repo, it will also create a version commit and tag, and fail if
-the repo is not clean\. This behavior is controlled by \fBgit\-tag\-version\fR (see
-below), and can be disabled on the command line by running \fBnpm
-\-\-no\-git\-tag\-version version\fR
+If run in a git repo, it will also create a version commit and tag\.
+This behavior is controlled by \fBgit\-tag\-version\fP (see below), and can
+be disabled on the command line by running \fBnpm \-\-no\-git\-tag\-version version\fP\|\.
+It will fail if the working directory is not clean, unless the \fB\-\-force\fP
+flag is set\.
.P
-If supplied with \fB\-\-message\fR (shorthand: \fB\-m\fR) config option, npm will
+If supplied with \fB\-\-message\fP (shorthand: \fB\-m\fP) config option, npm will
use it as a commit message when creating a version commit\. If the
-\fBmessage\fR config contains \fB%s\fR then that will be replaced with the
+\fBmessage\fP config contains \fB%s\fP then that will be replaced with the
resulting version number\. For example:
.P
.RS 2
@@ -34,8 +35,8 @@ npm version patch \-m "Upgrade to %s for reasons"
.fi
.RE
.P
-If the \fBsign\-git\-tag\fR config is set, then the tag will be signed using
-the \fB\-s\fR flag to git\. Note that you must have a default GPG key set up
+If the \fBsign\-git\-tag\fP config is set, then the tag will be signed using
+the \fB\-s\fP flag to git\. Note that you must have a default GPG key set up
in your git config for this to work properly\. For example:
.P
.RS 2
@@ -51,17 +52,48 @@ Enter passphrase:
.fi
.RE
.P
-If "preversion", "version", "postversion" in the "scripts" property of
-the package\.json, it will execute by running \fBnpm version\fR\|\. preversion
-and version ware executed before bump the package version, postversion
-was executed after bump the package version\. For example to run \fBnpm version\fR
-after passed all test:
+If \fBpreversion\fP, \fBversion\fP, or \fBpostversion\fP are in the \fBscripts\fP property of
+the package\.json, they will be executed as part of running \fBnpm version\fP\|\.
+.P
+The exact order of execution is as follows:
+.RS 0
+.IP 1. 3
+Check to make sure the git working directory is clean before we get started\.
+Your scripts may add files to the commit in future steps\.
+This step is skipped if the \fB\-\-force\fP flag is set\.
+.IP 2. 3
+Run the \fBpreversion\fP script\. These scripts have access to the old \fBversion\fP in package\.json\.
+A typical use would be running your full test suite before deploying\.
+Any files you want added to the commit should be explicitly added using \fBgit add\fP\|\.
+.IP 3. 3
+Bump \fBversion\fP in \fBpackage\.json\fP as requested (\fBpatch\fP, \fBminor\fP, \fBmajor\fP, etc)\.
+.IP 4. 3
+Run the \fBversion\fP script\. These scripts have access to the new \fBversion\fP in package\.json
+(so they can incorporate it into file headers in generated files for example)\.
+Again, scripts should explicitly add generated files to the commit using \fBgit add\fP\|\.
+.IP 5. 3
+Commit and tag\.
+.IP 6. 3
+Run the \fBpostversion\fP script\. Use it to clean up the file system or automatically push
+the commit and/or tag\.
+
+.RE
+.P
+Take the following example:
.P
.RS 2
.nf
-"scripts": { "preversion": "npm test" }
+"scripts": {
+ "preversion": "npm test",
+ "version": "npm run build && git add \-A dist",
+ "postversion": "git push && git push \-\-tags && rm \-rf build/temp"
+}
.fi
.RE
+.P
+This runs all your tests, and proceeds only if they pass\. Then runs your \fBbuild\fP script, and
+adds everything in the \fBdist\fP directory to the commit\. After the commit, it pushes the new commit
+and tag up to the server, and deletes the \fBbuild/temp\fP directory\.
.SH CONFIGURATION
.SS git\-tag\-version
.RS 0