Skip to content

Commit 250d102

Browse files
authored
fix: rpm doesnt allow dashes in prerelease (#836)
closes #835
1 parent 2c264e3 commit 250d102

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

rpm/rpm.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ func formatVersion(info *nfpm.Info) string {
271271
version := info.Version
272272

273273
if info.Prerelease != "" {
274-
version += "~" + info.Prerelease
274+
version += "~" + strings.ReplaceAll(info.Prerelease, "-", "_")
275275
}
276276

277277
if info.VersionMetadata != "" {

rpm/rpm_test.go

+10
Original file line numberDiff line numberDiff line change
@@ -420,6 +420,16 @@ func TestRPMVersionWithPrerelease(t *testing.T) {
420420
require.Equal(t, "1", meta.Release)
421421
}
422422

423+
func TestRPMVersionWithPrereleaseWithDashes(t *testing.T) {
424+
info := exampleInfo()
425+
info.Version = "1.0.0"
426+
info.Prerelease = "rc1-alpha-omega" // nolint:goconst
427+
meta, err := buildRPMMeta(info)
428+
require.NoError(t, err)
429+
require.Equal(t, "1.0.0~rc1_alpha_omega", meta.Version)
430+
require.Equal(t, "1", meta.Release)
431+
}
432+
423433
func TestRPMVersionWithReleaseAndPrerelease(t *testing.T) {
424434
// https://fedoraproject.org/wiki/Package_Versioning_Examples#Complex_versioning_examples
425435
info := exampleInfo()

0 commit comments

Comments
 (0)