mirror of
https://github.com/apricote/releaser-pleaser.git
synced 2026-01-13 21:21:03 +00:00
fix(versioning): wrong next version if repo only has prereleases
This commit is contained in:
parent
9444ea9915
commit
05084aa484
2 changed files with 48 additions and 1 deletions
|
|
@ -24,7 +24,12 @@ func (r Releases) NextVersion(versionBump conventionalcommits.VersionBump, nextV
|
|||
return "", fmt.Errorf("failed to parse stable version: %w", err)
|
||||
}
|
||||
|
||||
next := stable // Copy all fields
|
||||
// If there is a previous stable release, we use that as the version anchor. Falling back to any pre-releases
|
||||
// if they are the only tags in the repo.
|
||||
next := latest
|
||||
if r.Stable != nil {
|
||||
next = stable
|
||||
}
|
||||
|
||||
switch versionBump {
|
||||
case conventionalcommits.UnknownVersion:
|
||||
|
|
|
|||
|
|
@ -246,6 +246,48 @@ func TestReleases_NextVersion(t *testing.T) {
|
|||
want: "v0.0.1",
|
||||
wantErr: assert.NoError,
|
||||
},
|
||||
{
|
||||
name: "nil stable release (major)",
|
||||
releases: Releases{
|
||||
Latest: &Tag{Name: "v1.1.1-rc.0"},
|
||||
Stable: nil,
|
||||
},
|
||||
args: args{
|
||||
versionBump: conventionalcommits.MajorVersion,
|
||||
nextVersionType: NextVersionTypeUndefined,
|
||||
},
|
||||
want: "v2.0.0",
|
||||
wantErr: assert.NoError,
|
||||
},
|
||||
{
|
||||
name: "nil stable release (minor)",
|
||||
releases: Releases{
|
||||
Latest: &Tag{Name: "v1.1.1-rc.0"},
|
||||
Stable: nil,
|
||||
},
|
||||
args: args{
|
||||
|
||||
versionBump: conventionalcommits.MinorVersion,
|
||||
nextVersionType: NextVersionTypeUndefined,
|
||||
},
|
||||
want: "v1.2.0",
|
||||
wantErr: assert.NoError,
|
||||
},
|
||||
{
|
||||
name: "nil stable release (patch)",
|
||||
releases: Releases{
|
||||
Latest: &Tag{Name: "v1.1.1-rc.0"},
|
||||
Stable: nil,
|
||||
},
|
||||
args: args{
|
||||
|
||||
versionBump: conventionalcommits.PatchVersion,
|
||||
nextVersionType: NextVersionTypeUndefined,
|
||||
},
|
||||
// TODO: Is this actually correct our should it be v1.1.1?
|
||||
want: "v1.1.2",
|
||||
wantErr: assert.NoError,
|
||||
},
|
||||
{
|
||||
name: "error on invalid tag semver",
|
||||
releases: Releases{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue