Skip to content
Merged
Show file tree
Hide file tree
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
9 changes: 8 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ Options:
-i --increment [<level>]
Increment a version by the specified level. Level can
be one of: major, minor, patch, premajor, preminor,
prepatch, or prerelease. Default level is 'patch'.
prepatch, prerelease, or release. Default level is 'patch'.
Only one version may be specified.

--preid <identifier>
Expand Down Expand Up @@ -239,6 +239,13 @@ $ semver 1.2.4-beta.0 -i prerelease
1.2.4-beta.1
```

To get out of the prerelease phase, use the `release` option:

```bash
$ semver 1.2.4-beta.1 -i release
1.2.4
```

#### Prerelease Identifier Base

The method `.inc` takes an optional parameter 'identifierBase' string
Expand Down
3 changes: 2 additions & 1 deletion bin/semver.js
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ const main = () => {
switch (argv[0]) {
case 'major': case 'minor': case 'patch': case 'prerelease':
case 'premajor': case 'preminor': case 'prepatch':
case 'release':
inc = argv.shift()
break
default:
Expand Down Expand Up @@ -149,7 +150,7 @@ Options:
-i --increment [<level>]
Increment a version by the specified level. Level can
be one of: major, minor, patch, premajor, preminor,
prepatch, or prerelease. Default level is 'patch'.
prepatch, prerelease, or release. Default level is 'patch'.
Only one version may be specified.

--preid <identifier>
Expand Down
8 changes: 7 additions & 1 deletion classes/semver.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ class SemVer {

if (version instanceof SemVer) {
if (version.loose === !!options.loose &&
version.includePrerelease === !!options.includePrerelease) {
version.includePrerelease === !!options.includePrerelease) {
return version
} else {
version = version.version
Expand Down Expand Up @@ -206,6 +206,12 @@ class SemVer {
}
this.inc('pre', identifier, identifierBase)
break
case 'release':
if (this.prerelease.length === 0) {
throw new Error(`version ${this.raw} is not a prerelease`)
}
this.prerelease.length = 0
break

case 'major':
// If this is a pre-major version, bump up to the same major version.
Expand Down
17 changes: 13 additions & 4 deletions tap-snapshots/test/bin/semver.js.test.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ Object {
-i --increment [<level>]
Increment a version by the specified level. Level can
be one of: major, minor, patch, premajor, preminor,
prepatch, or prerelease. Default level is 'patch'.
prepatch, prerelease, or release. Default level is 'patch'.
Only one version may be specified.

--preid <identifier>
Expand Down Expand Up @@ -131,7 +131,7 @@ Object {
-i --increment [<level>]
Increment a version by the specified level. Level can
be one of: major, minor, patch, premajor, preminor,
prepatch, or prerelease. Default level is 'patch'.
prepatch, prerelease, or release. Default level is 'patch'.
Only one version may be specified.

--preid <identifier>
Expand Down Expand Up @@ -192,7 +192,7 @@ Object {
-i --increment [<level>]
Increment a version by the specified level. Level can
be one of: major, minor, patch, premajor, preminor,
prepatch, or prerelease. Default level is 'patch'.
prepatch, prerelease, or release. Default level is 'patch'.
Only one version may be specified.

--preid <identifier>
Expand Down Expand Up @@ -253,7 +253,7 @@ Object {
-i --increment [<level>]
Increment a version by the specified level. Level can
be one of: major, minor, patch, premajor, preminor,
prepatch, or prerelease. Default level is 'patch'.
prepatch, prerelease, or release. Default level is 'patch'.
Only one version may be specified.

--preid <identifier>
Expand Down Expand Up @@ -348,6 +348,15 @@ Object {
}
`

exports[`test/bin/semver.js TAP inc tests > -i release 1.0.0-pre`] = `
Object {
"code": 0,
"err": "",
"out": "1.0.0\\n",
"signal": null,
}
`

exports[`test/bin/semver.js TAP sorting and filtering > 1.2.3 -v 3.2.1 --version 2.3.4 -rv 1`] = `
Object {
"code": 0,
Expand Down
7 changes: 6 additions & 1 deletion test/fixtures/increments.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,12 @@ module.exports = [
['1.2.3-1', 'premajor', '2.0.0-0'],
['1.2.0-1', 'minor', '1.2.0'],
['1.0.0-1', 'major', '1.0.0'],
['1.0.0-1', 'release', '1.0.0'],
['1.2.0-1', 'release', '1.2.0'],
['1.2.3-1', 'release', '1.2.3'],
['1.2.3', 'release', null],

// [version, inc, result, identifierIndex, loose, identifier]
['1.2.3', 'major', '2.0.0', false, 'dev'],
['1.2.3', 'minor', '1.3.0', false, 'dev'],
['1.2.3', 'patch', '1.2.4', false, 'dev'],
Expand Down Expand Up @@ -88,7 +93,7 @@ module.exports = [
['1.2.3-1.1', 'prerelease', '1.2.3-1.2', false, '1'],
['1.2.3-1.1', 'prerelease', '1.2.3-2.0', false, '2'],

// [version, inc, result, identifierIndex, loose, identifier]
// [version, inc, result, identifierIndex, loose, identifier, identifierBase]
['1.2.0-1', 'prerelease', '1.2.0-alpha.0', false, 'alpha', '0'],
['1.2.1', 'prerelease', '1.2.2-alpha.0', false, 'alpha', '0'],
['0.2.0', 'prerelease', '0.2.1-alpha.0', false, 'alpha', '0'],
Expand Down
Loading