Skip to content

Commit d4aaa88

Browse files
committed
use masterMindsSemver
Signed-off-by: Arjun Raja Yogidas <[email protected]>
1 parent 134f401 commit d4aaa88

File tree

1 file changed

+17
-8
lines changed

1 file changed

+17
-8
lines changed

pkg/snapshotterutil/sociutil.go

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import (
2626
"strconv"
2727
"strings"
2828

29-
"golang.org/x/mod/semver"
29+
"github.com/Masterminds/semver/v3"
3030

3131
"github.com/containerd/containerd/v2/client"
3232
"github.com/containerd/log"
@@ -81,14 +81,23 @@ func CheckSociVersion(requiredVersion string) error {
8181
return fmt.Errorf("failed to parse SOCI version from output: %s", versionStr)
8282
}
8383

84-
// Extract version number and add 'v' prefix required by semver package
85-
// The regex captures only the numeric part, so we always need to add the 'v'
86-
installedVersion := "v" + matches[1]
87-
requiredSemver := "v" + requiredVersion
84+
// Extract version number
85+
installedVersionStr := matches[1]
8886

89-
// Use semver package to compare versions
90-
if semver.Compare(installedVersion, requiredSemver) < 0 {
91-
return fmt.Errorf("SOCI version %s is lower than the required version %s for the convert operation", strings.TrimPrefix(installedVersion, "v"), requiredVersion)
87+
// Parse versions using semver package
88+
installedVersion, err := semver.NewVersion(installedVersionStr)
89+
if err != nil {
90+
return fmt.Errorf("failed to parse installed SOCI version: %w", err)
91+
}
92+
93+
reqVersion, err := semver.NewVersion(requiredVersion)
94+
if err != nil {
95+
return fmt.Errorf("failed to parse required SOCI version: %w", err)
96+
}
97+
98+
// Compare versions
99+
if installedVersion.LessThan(reqVersion) {
100+
return fmt.Errorf("SOCI version %s is lower than the required version %s for the convert operation", installedVersion.String(), reqVersion.String())
92101
}
93102

94103
return nil

0 commit comments

Comments
 (0)