'NPM standard-version patch version problem

I'm trying to use standard-version in my javascript project. I added the release script to my package.json:

"scripts": {
    ...
    "release": "standard-version"
}

My problem is that I added a commit to my git repo with the following message:

feat: test

I run npm run release and it increased the patch version of the project.

So my initial version was 0.2.1 (tag: v0.2.1), and I it generated 0.2.2 with this commit message

chore(release): 0.2.2

Why didn't it increase the minor version?



Solution 1:[1]

I think it would be very useful to specify explicitly that it’s either x.y.z, 0.x.y, or 0.0.x, and x is semver-major, y semver-minor, z semver-patch (this is how the npm ecosystem tends to treat it) — ljharb

Caret ^ match Minor releases (It is also the default value for save-prefix in npm config), but it work different for 0.0.X, 0.X.X and X.X.X

So, for example ^0.0.1 will work like this

[?] 0.0.1
[x] 0.0.2
[x] 0.0.3
[x] 0.1.0

for ^0.1.0 will work like this

[?] 0.1.0
[?] 0.1.1
[?] 0.1.2
[x] 0.2.0
[x] 0.2.1
[x] 0.3.0

and for ^1.0.0 like normal:

[?] 1.0.0
[?] 1.0.1
[?] 1.1.0
[?] 1.2.1
[x] 2.0.0

Tilde ~ match Patch releases, doesn't have exceptions in it behavior for 0.0.X, 0.X.X and X.X.X (Perhaps because it is not a default value in npm config, idk really). It has the same behavior everywhere:

~0.0.1

[?] 0.0.1
[?] 0.0.2
[?] 0.0.3
[x] 0.1.0

~0.1.0

[?] 0.1.0
[?] 0.1.1
[?] 0.1.2
[x] 0.2.0
[x] 0.2.1
[x] 0.3.0

~1.0.0

[?] 1.0.0
[?] 1.0.1
[x] 1.1.0
[x] 1.2.1
[x] 2.0.0

You can check the behavior here

Solution 2:[2]

Until you publish your first release, the bumping of the package.json is going to be that way. In the package documentation, it is better explained

https://github.com/conventional-changelog/standard-version#first-release

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 J Krbaio