Skip to content

Commit 13eb9cd

Browse files
stevemaobcoe
authored andcommitted
feat: allow a version # to be provided for release-as, rather than just major, minor, patch.
1 parent 0d1fb38 commit 13eb9cd

File tree

4 files changed

+31
-2
lines changed

4 files changed

+31
-2
lines changed

README.md

+2
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,8 @@ you would like your next release to be a `minor`. Simply do:
129129
```bash
130130
# npm run script
131131
npm run release -- --release-as minor
132+
# Or
133+
npm run release -- --release-as 1.1.0
132134
```
133135

134136
you will get version `1.1.0` rather than the auto generated version `1.0.1`.

command.js

-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ module.exports = require('yargs')
77
describe: 'Specify the release type manually (like npm version <major|minor|patch>)',
88
requiresArg: true,
99
string: true,
10-
choices: ['major', 'minor', 'patch'],
1110
global: true
1211
})
1312
.option('prerelease', {

index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ module.exports = function standardVersion (argv, done) {
2727

2828
if (!args.firstRelease) {
2929
var releaseType = getReleaseType(args.prerelease, release.releaseType, pkg.version)
30-
newVersion = semver.inc(pkg.version, releaseType, args.prerelease)
30+
newVersion = semver.valid(releaseType) || semver.inc(pkg.version, releaseType, args.prerelease)
3131
updateConfigs(args, newVersion)
3232
} else {
3333
checkpoint(args, 'skip version bump on first release', [], chalk.red(figures.cross))

test.js

+28
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,34 @@ describe('cli', function () {
290290
})
291291
})
292292

293+
describe('release-as-exact', function () {
294+
it('releases as v100.0.0', function () {
295+
var originVer = '1.0.0'
296+
writePackageJson(originVer)
297+
fs.writeFileSync('CHANGELOG.md', 'legacy header format<a name="1.0.0">\n', 'utf-8')
298+
299+
commit('fix: first commit')
300+
301+
return execCliAsync('--release-as v100.0.0')
302+
.then(function () {
303+
getPackageVersion().should.equal('100.0.0')
304+
})
305+
})
306+
307+
it('releases as 200.0.0-amazing', function () {
308+
var originVer = '1.0.0'
309+
writePackageJson(originVer)
310+
fs.writeFileSync('CHANGELOG.md', 'legacy header format<a name="1.0.0">\n', 'utf-8')
311+
312+
commit('fix: first commit')
313+
314+
return execCliAsync('--release-as 200.0.0-amazing')
315+
.then(function () {
316+
getPackageVersion().should.equal('200.0.0-amazing')
317+
})
318+
})
319+
})
320+
293321
it('creates a prerelease with a new minor version after two prerelease patches', function () {
294322
writePackageJson('1.0.0')
295323
fs.writeFileSync('CHANGELOG.md', 'legacy header format<a name="1.0.0">\n', 'utf-8')

0 commit comments

Comments
 (0)