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)
|
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 {
|
switch versionBump {
|
||||||
case conventionalcommits.UnknownVersion:
|
case conventionalcommits.UnknownVersion:
|
||||||
|
|
|
||||||
|
|
@ -246,6 +246,48 @@ func TestReleases_NextVersion(t *testing.T) {
|
||||||
want: "v0.0.1",
|
want: "v0.0.1",
|
||||||
wantErr: assert.NoError,
|
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",
|
name: "error on invalid tag semver",
|
||||||
releases: Releases{
|
releases: Releases{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue