node-semver icon indicating copy to clipboard operation
node-semver copied to clipboard

Pre-release id version do not update with a provided pre-release id

Open stephenlacy opened this issue 7 years ago • 1 comments

Stemming from https://github.com/stevelacy/bump-regex/issues/17 I noticed that providing the dot-separated identifiers as the preid did not update the version correctly.

My understanding is if a preid of alpha.beta is passed to semver.inc with type prerelease it should update the prerelease version. Currently if I do not pass a preid it bumps correctly.

I created a repo to demonstrate: https://github.com/stevelacy/semver-test-1/blob/master/index.js

The current output is:

3.0.0-alpha.beta.0
3.0.0-alpha.beta.5.5

With a preid provided it resets the prerelease version to 0 regardless of what version is provided. I am assuming that this is not quite the desired effect.

Cheers.

stephenlacy avatar Dec 14 '17 16:12 stephenlacy

Yeah, this smells like a bug to me:

const semver = require('semver')

const out0 = semver.inc('3.0.0-alpha.beta.5.4', 'prerelease', 'alpha.beta')
console.log(['3.0.0-alpha.beta.5.4', 'prerelease', 'alpha.beta', out0])

const out1 = semver.inc('3.0.0-alpha.beta.5.4', 'prerelease')
console.log(['3.0.0-alpha.beta.5.4', 'prerelease', out1])

const out2 = semver.inc('3.0.0-alpha.beta.5.4', 'prerelease', 'alpha.beta.5')
console.log(['3.0.0-alpha.beta.5.4', 'prerelease', 'alpha.beta.5', out2])

/*
[ '3.0.0-alpha.beta.5.4',
  'prerelease',
  'alpha.beta',
  '3.0.0-alpha.beta.0' ]
[ '3.0.0-alpha.beta.5.4',
  'prerelease',
  '3.0.0-alpha.beta.5.5' ]
[ '3.0.0-alpha.beta.5.4',
  'prerelease',
  'alpha.beta.5',
  '3.0.0-alpha.beta.5.0' ]
*/

isaacs avatar Dec 14 '17 17:12 isaacs