Skip to content

Commit df151d7

Browse files
authored
fix: increase patch on prerelease if current version not prerelease (#230)
closes #229 Signed-off-by: Carlos Alexandro Becker <[email protected]>
1 parent 4980a7c commit df151d7

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

internal/svu/svu.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,13 @@ func nextPreRelease(current, next *semver.Version, prerelease string) (semver.Ve
143143

144144
currentWithoutPreRelease, _ := current.SetPrerelease("")
145145

146+
// If current is a normal release (no prerelease) and the computed next is not greater than current,
147+
// bump the base version (patch) so that the prerelease targets the next normal version.
148+
if current.Prerelease() == "" && !next.GreaterThan(&currentWithoutPreRelease) {
149+
bumped := current.IncPatch()
150+
next = &bumped
151+
}
152+
146153
if !next.GreaterThan(&currentWithoutPreRelease) {
147154
preReleaseVersion = -1
148155
if len(splitSuffix) == 2 {

internal/svu/svu_test.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -368,6 +368,16 @@ func Test_nextPreRelease(t *testing.T) {
368368
want: *semver.MustParse("1.2.3-alpha123.2"),
369369
wantErr: false,
370370
},
371+
{
372+
name: "from normal version, bump base to next patch when creating prerelease",
373+
args: args{
374+
current: semver.MustParse("0.8.0"),
375+
next: semver.MustParse("0.8.0"),
376+
preRelease: "dev",
377+
},
378+
want: *semver.MustParse("0.8.1-dev.0"),
379+
wantErr: false,
380+
},
371381
}
372382
for _, tt := range tests {
373383
t.Run(tt.name, func(t *testing.T) {

0 commit comments

Comments
 (0)