From 8ac1f946dde2342fa82aff7f90d2126bdd1f0057 Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Fri, 27 Jun 2025 22:40:57 +0100 Subject: [PATCH] fix(builder/cask): correctly resolve version with build variant to release name (#140) --- pkg/release/version.go | 8 ++++---- pkg/release/version_test.go | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/pkg/release/version.go b/pkg/release/version.go index f3f82a6..54485ab 100644 --- a/pkg/release/version.go +++ b/pkg/release/version.go @@ -4,7 +4,6 @@ import ( "errors" "fmt" "regexp" - "strings" ) // Errors @@ -18,8 +17,9 @@ var ( ) var ( - stableVersion = regexp.MustCompile(`^\d+\.\d+(?:[a-z]+)?$`) - stableGitRef = regexp.MustCompile(`^emacs-(\d+\.\d+(?:[a-z]+)?)$`) + stableVersion = regexp.MustCompile(`^\d+\.\d+(?:[a-z]+)?(-\d+)?$`) + pretestVersion = regexp.MustCompile(`-pretest(-\d+)?$`) + stableGitRef = regexp.MustCompile(`^emacs-(\d+\.\d+(?:[a-z]+)?)$`) ) func VersionToName(version string) (string, error) { @@ -28,7 +28,7 @@ func VersionToName(version string) (string, error) { } if stableVersion.MatchString(version) || - strings.HasSuffix(version, "-pretest") { + pretestVersion.MatchString(version) { return "Emacs-" + version, nil } diff --git a/pkg/release/version_test.go b/pkg/release/version_test.go index fdcfb18..94835f4 100644 --- a/pkg/release/version_test.go +++ b/pkg/release/version_test.go @@ -30,6 +30,27 @@ func TestVersionToName(t *testing.T) { }, want: "Emacs.2021-07-01.1b88404.master", }, + { + name: "nightly with variant", + args: args{ + version: "2021-07-01.1b88404.master-1", + }, + want: "Emacs.2021-07-01.1b88404.master-1", + }, + { + name: "pretest", + args: args{ + version: "30.0.93-pretest", + }, + want: "Emacs-30.0.93-pretest", + }, + { + name: "pretest with variant", + args: args{ + version: "30.0.93-pretest-1", + }, + want: "Emacs-30.0.93-pretest-1", + }, { name: "stable", args: args{ @@ -44,6 +65,20 @@ func TestVersionToName(t *testing.T) { }, want: "Emacs-23.3b", }, + { + name: "stable with variant", + args: args{ + version: "23.3-1", + }, + want: "Emacs-23.3-1", + }, + { + name: "stable with letter and variant", + args: args{ + version: "23.3b-1", + }, + want: "Emacs-23.3b-1", + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) {