Skip to content

Commit fedadf5

Browse files
committed
Modernize to remove abandoned dependencies
Signed-off-by: Erik Godding Boye <egboye@gmail.com>
1 parent 3050126 commit fedadf5

File tree

9 files changed

+54
-62
lines changed

9 files changed

+54
-62
lines changed

cmd/cmrel/cmd/gcb_stage.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,8 @@ func (o *gcbStageOptions) AddFlags(fs *flag.FlagSet, markRequired func(string))
100100

101101
allOSList := release.AllOSes()
102102

103-
allOSes := strings.Join(allOSList.List(), ", ")
104-
allArches := strings.Join(release.AllArchesForOSes(allOSList).List(), ", ")
103+
allOSes := strings.Join(allOSList.UnsortedList(), ", ")
104+
allArches := strings.Join(release.AllArchesForOSes(allOSList).UnsortedList(), ", ")
105105

106106
fs.StringVar(&o.TargetOSes, "target-os", "*", fmt.Sprintf("Comma-separated list of OSes to target, or '*' for all. Options: %s", allOSes))
107107
fs.StringVar(&o.TargetArches, "target-arch", "*", fmt.Sprintf("Comma-separated list of arches to target, or '*' for all. Options: %s", allArches))
@@ -195,7 +195,7 @@ func runGCBStage(rootOpts *rootOptions, o *gcbStageOptions) error {
195195

196196
var artifacts []release.ArtifactMetadata
197197

198-
for _, osVariant := range targetOSes.List() {
198+
for _, osVariant := range targetOSes.UnsortedList() {
199199
for _, arch := range release.ArchitecturesPerOS[osVariant] {
200200
if !targetArches.Has(arch) {
201201
continue

cmd/cmrel/cmd/stage.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -118,8 +118,8 @@ func (o *stageOptions) AddFlags(fs *flag.FlagSet, markRequired func(string)) {
118118

119119
allOSList := release.AllOSes()
120120

121-
allOSes := strings.Join(allOSList.List(), ", ")
122-
allArches := strings.Join(release.AllArchesForOSes(allOSList).List(), ", ")
121+
allOSes := strings.Join(allOSList.UnsortedList(), ", ")
122+
allArches := strings.Join(release.AllArchesForOSes(allOSList).UnsortedList(), ", ")
123123

124124
fs.StringVar(&o.TargetOSes, "target-os", "*", fmt.Sprintf("Comma-separated list of OSes to target, or '*' for all. Options: %s", allOSes))
125125
fs.StringVar(&o.TargetArches, "target-arch", "*", fmt.Sprintf("Comma-separated list of arches to target, or '*' for all. Options: %s", allArches))
@@ -210,8 +210,8 @@ func runStage(rootOpts *rootOptions, o *stageOptions) error {
210210
build.Substitutions["_PUBLISHED_IMAGE_REPO"] = o.PublishedImageRepository
211211
build.Substitutions["_KMS_KEY"] = o.SigningKMSKey
212212
build.Substitutions["_SKIP_SIGNING"] = fmt.Sprintf("%v", o.SkipSigning)
213-
build.Substitutions["_TARGET_OSES"] = strings.Join(targetOSes.List(), ",")
214-
build.Substitutions["_TARGET_ARCHES"] = strings.Join(targetArches.List(), ",")
213+
build.Substitutions["_TARGET_OSES"] = strings.Join(targetOSes.UnsortedList(), ",")
214+
build.Substitutions["_TARGET_ARCHES"] = strings.Join(targetArches.UnsortedList(), ",")
215215

216216
outputDir := ""
217217
// If --release-version is not explicitly set, we treat this build as a

go.mod

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,8 @@ require (
66
cloud.google.com/go/storage v1.60.0
77
github.com/blang/semver v3.5.1+incompatible
88
github.com/cenkalti/backoff/v5 v5.0.3
9-
github.com/ghodss/yaml v1.0.0
109
github.com/google/go-github/v35 v35.3.0
1110
github.com/google/martian v2.1.0+incompatible
12-
github.com/pkg/errors v0.9.1
1311
github.com/spf13/cobra v1.10.2
1412
github.com/spf13/pflag v1.0.10
1513
github.com/stretchr/testify v1.11.1
@@ -51,6 +49,7 @@ require (
5149
github.com/googleapis/enterprise-certificate-proxy v0.3.11 // indirect
5250
github.com/googleapis/gax-go/v2 v2.17.0 // indirect
5351
github.com/inconshreveable/mousetrap v1.1.0 // indirect
52+
github.com/pkg/errors v0.9.1 // indirect
5453
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
5554
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
5655
github.com/spiffe/go-spiffe/v2 v2.6.0 // indirect
@@ -74,7 +73,6 @@ require (
7473
google.golang.org/genproto/googleapis/rpc v0.0.0-20260203192932-546029d2fa20 // indirect
7574
google.golang.org/grpc v1.78.0 // indirect
7675
google.golang.org/protobuf v1.36.11 // indirect
77-
gopkg.in/yaml.v2 v2.4.0 // indirect
7876
gopkg.in/yaml.v3 v3.0.1 // indirect
7977
k8s.io/klog/v2 v2.130.1 // indirect
8078
)

go.sum

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,6 @@ github.com/envoyproxy/protoc-gen-validate v1.2.1 h1:DEo3O99U8j4hBFwbJfrz9VtgcDfU
5353
github.com/envoyproxy/protoc-gen-validate v1.2.1/go.mod h1:d/C80l/jxXLdfEIhX1W2TmLfsJ31lvEjwamM4DxlWXU=
5454
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
5555
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
56-
github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
57-
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
5856
github.com/go-jose/go-jose/v4 v4.1.3 h1:CVLmWDhDVRa6Mi/IgCgaopNosCaHz7zrMeF9MlZRkrs=
5957
github.com/go-jose/go-jose/v4 v4.1.3/go.mod h1:x4oUasVrzR7071A4TnHLGSPpNOm2a21K9Kf04k1rs08=
6058
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
@@ -174,8 +172,6 @@ google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j
174172
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
175173
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
176174
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
177-
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
178-
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
179175
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
180176
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
181177
helm.sh/helm/v3 v3.20.0 h1:2M+0qQwnbI1a2CxN7dbmfsWHg/MloeaFMnZCY56as50=

pkg/release/helm/helm.go

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,16 @@ package helm
1919
import (
2020
"context"
2121
"encoding/base64"
22+
"errors"
2223
"fmt"
2324
"log"
2425
"net/http"
2526
"os"
2627
"strings"
2728

2829
"github.com/google/go-github/v35/github"
29-
"github.com/pkg/errors"
30-
utilerrors "k8s.io/apimachinery/pkg/util/errors"
3130
"k8s.io/apimachinery/pkg/util/sets"
32-
"k8s.io/utils/pointer"
31+
"k8s.io/utils/ptr"
3332

3433
"github.com/cert-manager/release/pkg/release/manifests"
3534
)
@@ -41,10 +40,10 @@ const (
4140
tplPRDescription = "This PR was generated by [cmrel](https://github.com/cert-manager/release) for the cert-manager staged release: `%s`."
4241
)
4342

44-
var acceptableGitHubPermissions sets.String
43+
var acceptableGitHubPermissions sets.Set[string]
4544

4645
func init() {
47-
acceptableGitHubPermissions = sets.NewString("write", "admin")
46+
acceptableGitHubPermissions = sets.New("write", "admin")
4847
}
4948

5049
type RepositoryManager interface {
@@ -85,13 +84,13 @@ func NewGitHubRepositoryManager(client *GitHubClient, owner, repo, branch string
8584
func (o *gitHubRepositoryManager) Check(ctx context.Context) (err error) {
8685
var errs []error
8786
defer func() {
88-
err = errors.WithStack(utilerrors.NewAggregate(errs))
87+
err = errors.Join(errs...)
8988
}()
9089

9190
// NB: Empty user means current logged in user
9291
user, response, err := o.UsersClient.Get(ctx, "")
9392
if err != nil {
94-
return errors.WithStack(err)
93+
return err
9594
}
9695
scopes := strings.Split(response.Header.Get("X-Oauth-Scopes"), ",")
9796
for i, scope := range scopes {
@@ -106,7 +105,7 @@ func (o *gitHubRepositoryManager) Check(ctx context.Context) (err error) {
106105
if err != nil {
107106
var gitHubErr *github.ErrorResponse
108107
if !errors.As(err, &gitHubErr) {
109-
return errors.WithStack(err)
108+
return err
110109
}
111110
if gitHubErr.Response.StatusCode == http.StatusNotFound {
112111
errs = append(
@@ -128,7 +127,7 @@ func (o *gitHubRepositoryManager) Check(ctx context.Context) (err error) {
128127
errs,
129128
fmt.Errorf(
130129
"expected permission to be one of %q, got: %q",
131-
strings.Join(acceptableGitHubPermissions.List(), ","),
130+
strings.Join(acceptableGitHubPermissions.UnsortedList(), ","),
132131
actualPermission,
133132
),
134133
)
@@ -139,7 +138,7 @@ func (o *gitHubRepositoryManager) Check(ctx context.Context) (err error) {
139138
if err != nil {
140139
var gitHubErr *github.ErrorResponse
141140
if !errors.As(err, &gitHubErr) {
142-
return errors.WithStack(err)
141+
return err
143142
}
144143
if gitHubErr.Response.StatusCode == http.StatusNotFound {
145144
errs = append(errs, fmt.Errorf("branch %q not found: %v", o.branch, err))
@@ -168,14 +167,14 @@ func (o *gitHubRepositoryManager) Publish(ctx context.Context, releaseName strin
168167
}
169168
// Create PR
170169
npr := &github.NewPullRequest{
171-
Title: pointer.StringPtr(fmt.Sprintf(tplPRTitle, releaseName)),
172-
Body: pointer.StringPtr(fmt.Sprintf(tplPRDescription, releaseName)),
173-
Base: pointer.StringPtr(o.branch),
174-
Head: pointer.StringPtr(newBranchName),
170+
Title: ptr.To(fmt.Sprintf(tplPRTitle, releaseName)),
171+
Body: ptr.To(fmt.Sprintf(tplPRDescription, releaseName)),
172+
Base: ptr.To(o.branch),
173+
Head: ptr.To(newBranchName),
175174
}
176175
pr, _, err := o.PullRequestClient.Create(ctx, o.owner, o.repo, npr)
177176
if err != nil {
178-
return "", errors.WithStack(err)
177+
return "", err
179178
}
180179
prURL := pr.GetHTMLURL()
181180
log.Printf("Created PR: %s ", prURL)
@@ -187,16 +186,16 @@ func (o *gitHubRepositoryManager) Publish(ctx context.Context, releaseName strin
187186
func (o *gitHubRepositoryManager) createBranch(ctx context.Context, sourceName, branchName string) (*github.Reference, error) {
188187
baseRef, _, err := o.GitClient.GetRef(ctx, o.owner, o.repo, fmt.Sprintf("refs/heads/%s", sourceName))
189188
if err != nil {
190-
return nil, errors.WithStack(err)
189+
return nil, err
191190
}
192191

193192
newRef := &github.Reference{
194-
Ref: pointer.StringPtr(fmt.Sprintf("refs/heads/%s", branchName)),
193+
Ref: ptr.To(fmt.Sprintf("refs/heads/%s", branchName)),
195194
Object: baseRef.GetObject(),
196195
}
197196

198197
ref, _, err := o.GitClient.CreateRef(ctx, o.owner, o.repo, newRef)
199-
return ref, errors.WithStack(err)
198+
return ref, err
200199
}
201200

202201
// commitChartToBranch uploads a single Helm chart to the target branch, along with its signature if such a signature exists
@@ -207,7 +206,7 @@ func (o *gitHubRepositoryManager) commitChartToBranch(ctx context.Context, ref *
207206

208207
chartContent, err := os.ReadFile(chart.Path())
209208
if err != nil {
210-
return errors.WithStack(err)
209+
return err
211210
}
212211

213212
// we can't just append a github.TreeEntry because the tgz file is binary data and can't be string encoded, which
@@ -218,7 +217,7 @@ func (o *gitHubRepositoryManager) commitChartToBranch(ctx context.Context, ref *
218217
Encoding: github.String("base64"),
219218
})
220219
if err != nil {
221-
return errors.WithStack(err)
220+
return err
222221
}
223222

224223
entries = append(entries, &github.TreeEntry{
@@ -240,7 +239,7 @@ func (o *gitHubRepositoryManager) commitChartToBranch(ctx context.Context, ref *
240239
provFileName := chartFileName + ".prov"
241240
provContent, err := os.ReadFile(*provPath)
242241
if err != nil {
243-
return errors.WithStack(err)
242+
return err
244243
}
245244

246245
// TreeEntries can create a blob entry if it contains textual data; a prov file does, so
@@ -254,20 +253,20 @@ func (o *gitHubRepositoryManager) commitChartToBranch(ctx context.Context, ref *
254253
})
255254

256255
if err != nil {
257-
return errors.WithStack(err)
256+
return err
258257
}
259258

260259
commitMessage = commitMessage + fmt.Sprintf(" and %s", provFileName)
261260
}
262261

263262
tree, _, err := o.GitClient.CreateTree(ctx, o.owner, o.repo, *ref.Object.SHA, entries)
264263
if err != nil {
265-
return errors.WithStack(err)
264+
return err
266265
}
267266

268267
parent, _, err := o.RepositoriesClient.GetCommit(ctx, o.owner, o.repo, *ref.Object.SHA)
269268
if err != nil {
270-
return errors.WithStack(err)
269+
return err
271270
}
272271

273272
// This needs to be set, according to:
@@ -283,13 +282,13 @@ func (o *gitHubRepositoryManager) commitChartToBranch(ctx context.Context, ref *
283282
}
284283
newCommit, _, err := o.GitClient.CreateCommit(ctx, o.owner, o.repo, commit)
285284
if err != nil {
286-
return errors.WithStack(err)
285+
return err
287286
}
288287

289288
ref.Object.SHA = newCommit.SHA
290289
_, _, err = o.GitClient.UpdateRef(ctx, o.owner, o.repo, ref, false)
291290
if err != nil {
292-
return errors.WithStack(err)
291+
return err
293292
}
294293

295294
return nil

pkg/release/manifests/chart.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ import (
2121
"fmt"
2222
"os"
2323

24-
"github.com/ghodss/yaml"
2524
"k8s.io/utils/pointer"
25+
"sigs.k8s.io/yaml"
2626

2727
"github.com/cert-manager/release/pkg/release/tar"
2828
)

pkg/release/platforms.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,9 @@ var (
5353

5454
// AllOSes returns a slice of all known operating systems which cert-manager targets
5555
// including both server and client targets.
56-
func AllOSes() sets.String {
56+
func AllOSes() sets.Set[string] {
5757
// initialise set with server platforms
58-
platforms := sets.NewString(mapKeys(ServerPlatforms)...)
58+
platforms := sets.New(mapKeys(ServerPlatforms)...)
5959

6060
// add client platforms
6161
platforms = platforms.Insert(mapKeys(ClientPlatforms)...)
@@ -65,10 +65,10 @@ func AllOSes() sets.String {
6565

6666
// AllArchesForOSes returns all architectures targetted by any of the given OSes. Panics
6767
// if any of the OSes are unknown
68-
func AllArchesForOSes(osList sets.String) sets.String {
69-
knownArches := sets.String{}
68+
func AllArchesForOSes(osList sets.Set[string]) sets.Set[string] {
69+
knownArches := sets.New[string]()
7070

71-
for _, os := range osList.List() {
71+
for _, os := range osList.UnsortedList() {
7272
arches, ok := ArchitecturesPerOS[os]
7373
if !ok {
7474
panic("unknown OS when trying to get architectures: " + os)
@@ -94,7 +94,7 @@ func mapKeys(in map[string][]string) []string {
9494

9595
// OSListFromString parses and validates a comma-separated list of OSes, returning an error if any are invalid or a slice
9696
// of valid OSes if all are OK.
97-
func OSListFromString(targetOSes string) (sets.String, error) {
97+
func OSListFromString(targetOSes string) (sets.Set[string], error) {
9898
allOSes := AllOSes()
9999

100100
splitList := strings.Split(strings.TrimSpace(targetOSes), ",")
@@ -103,7 +103,7 @@ func OSListFromString(targetOSes string) (sets.String, error) {
103103
return allOSes, nil
104104
}
105105

106-
osListOut := sets.String{}
106+
osListOut := sets.New[string]()
107107

108108
for _, rawOS := range splitList {
109109
os := strings.ToLower(strings.TrimSpace(rawOS))
@@ -130,7 +130,7 @@ func OSListFromString(targetOSes string) (sets.String, error) {
130130
// Returns an error on an unknown architecture or an architecture which isn't a valid target for the given
131131
// OSes for this invocation (e.g. will error if osList == []string{"windows"} and targetArches == "s390x")
132132
// Panics if given an unknown OS
133-
func ArchListFromString(targetArches string, osList sets.String) (sets.String, error) {
133+
func ArchListFromString(targetArches string, osList sets.Set[string]) (sets.Set[string], error) {
134134
allArches := AllArchesForOSes(osList)
135135

136136
splitList := strings.Split(targetArches, ",")
@@ -139,7 +139,7 @@ func ArchListFromString(targetArches string, osList sets.String) (sets.String, e
139139
return allArches, nil
140140
}
141141

142-
archListOut := sets.String{}
142+
archListOut := sets.New[string]()
143143

144144
for _, rawArch := range splitList {
145145
arch := strings.ToLower(strings.TrimSpace(rawArch))

pkg/release/platforms_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ func TestOSListFromString(t *testing.T) {
7676
return
7777
}
7878

79-
output := outputSet.List()
79+
output := outputSet.UnsortedList()
8080

8181
sort.Strings(test.expectedOSes)
8282
sort.Strings(output)
@@ -144,7 +144,7 @@ func TestArchListFromString(t *testing.T) {
144144

145145
for name, test := range tests {
146146
t.Run(name, func(t *testing.T) {
147-
outputSet, err := ArchListFromString(test.input, sets.NewString(test.inputOSes...))
147+
outputSet, err := ArchListFromString(test.input, sets.New(test.inputOSes...))
148148

149149
if test.expectErr {
150150
if err == nil {
@@ -154,7 +154,7 @@ func TestArchListFromString(t *testing.T) {
154154
return
155155
}
156156

157-
output := outputSet.List()
157+
output := outputSet.UnsortedList()
158158

159159
sort.Strings(test.expectedArches)
160160
sort.Strings(output)

0 commit comments

Comments
 (0)