Skip to content

Commit a34ca56

Browse files
authored
Merge pull request #5404 from corhere/backport-23.0/golang-1.22.6
[23.0] Update to go1.22.6
2 parents 0f15753 + 6ce1dd5 commit a34ca56

File tree

92 files changed

+530
-542
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

92 files changed

+530
-542
lines changed

.github/workflows/test.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ jobs:
6363
name: Set up Go
6464
uses: actions/setup-go@v3
6565
with:
66-
go-version: 1.20.13
66+
go-version: 1.22.6
6767
-
6868
name: Test
6969
run: |
@@ -77,3 +77,4 @@ jobs:
7777
with:
7878
file: /tmp/coverage.txt
7979
working-directory: ${{ env.GOPATH }}/src/github.com/docker/cli
80+
version: v0.7.3 # Work around https://github.com/codecov/uploader/issues/1687 -- uploader v0.8.0 for mac is built for arm64, not x86_64

.golangci.yml

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,27 +26,26 @@ linters:
2626

2727
run:
2828
timeout: 5m
29-
skip-files:
30-
- cli/compose/schema/bindata.go
31-
- .*generated.*
3229

3330
linters-settings:
3431
depguard:
35-
list-type: blacklist
36-
include-go-root: true
37-
packages:
38-
# The io/ioutil package has been deprecated.
39-
# https://go.dev/doc/go1.16#ioutil
40-
- io/ioutil
32+
rules:
33+
main:
34+
deny:
35+
- pkg: io/ioutil
36+
desc: The io/ioutil package has been deprecated, see https://go.dev/doc/go1.16#ioutil
4137
gocyclo:
4238
min-complexity: 16
43-
govet:
44-
check-shadowing: false
4539
lll:
4640
line-length: 200
4741
nakedret:
4842
command: nakedret
4943
pattern: ^(?P<path>.*?\\.go):(?P<line>\\d+)\\s*(?P<message>.*)$
44+
revive:
45+
rules:
46+
- name: unused-parameter
47+
severity: warning
48+
disabled: true
5049

5150
issues:
5251
# The default exclusion rules are a bit too permissive, so copying the relevant ones below
@@ -55,6 +54,10 @@ issues:
5554
exclude:
5655
- parameter .* always receives
5756

57+
exclude-files:
58+
- cli/compose/schema/bindata.go
59+
- .*generated.*
60+
5861
exclude-rules:
5962
# We prefer to use an "exclude-list" so that new "default" exclusions are not
6063
# automatically inherited. We can decide whether or not to follow upstream

Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# syntax=docker/dockerfile:1
22

33
ARG BASE_VARIANT=alpine
4-
ARG GO_VERSION=1.20.13
5-
ARG ALPINE_VERSION=3.18
4+
ARG GO_VERSION=1.22.6
5+
ARG ALPINE_VERSION=3.20
66
ARG XX_VERSION=1.1.1
77
ARG GOVERSIONINFO_VERSION=v1.3.0
88
ARG GOTESTSUM_VERSION=v1.10.0

cli-plugins/manager/error_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package manager
22

33
import (
44
"encoding/json"
5-
"fmt"
5+
"errors"
66
"testing"
77

88
"gotest.tools/v3/assert"
@@ -13,7 +13,7 @@ func TestPluginError(t *testing.T) {
1313
err := NewPluginError("new error")
1414
assert.Check(t, is.Error(err, "new error"))
1515

16-
inner := fmt.Errorf("testing")
16+
inner := errors.New("testing")
1717
err = wrapAsPluginError(inner, "wrapping")
1818
assert.Check(t, is.Error(err, "wrapping: testing"))
1919
assert.Check(t, is.ErrorIs(err, inner))

cli/command/cli.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@ func newAPIClientFromEndpoint(ep docker.Endpoint, configFile *configfile.ConfigF
278278

279279
func resolveDockerEndpoint(s store.Reader, contextName string) (docker.Endpoint, error) {
280280
if s == nil {
281-
return docker.Endpoint{}, fmt.Errorf("no context store initialized")
281+
return docker.Endpoint{}, errors.New("no context store initialized")
282282
}
283283
ctxMeta, err := s.GetMetadata(contextName)
284284
if err != nil {

cli/command/cli_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ func TestInitializeFromClientHangs(t *testing.T) {
192192
ts.Start()
193193
defer ts.Close()
194194

195-
opts := &flags.ClientOptions{Hosts: []string{fmt.Sprintf("unix://%s", socket)}}
195+
opts := &flags.ClientOptions{Hosts: []string{"unix://" + socket}}
196196
configFile := &configfile.ConfigFile{}
197197
apiClient, err := NewAPIClientFromFlags(opts, configFile)
198198
assert.NilError(t, err)

cli/command/config/inspect_test.go

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88
"time"
99

1010
"github.com/docker/cli/internal/test"
11-
. "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function
11+
"github.com/docker/cli/internal/test/builders"
1212
"github.com/docker/docker/api/types/swarm"
1313
"github.com/pkg/errors"
1414
"gotest.tools/v3/assert"
@@ -43,7 +43,7 @@ func TestConfigInspectErrors(t *testing.T) {
4343
args: []string{"foo", "bar"},
4444
configInspectFunc: func(_ context.Context, configID string) (swarm.Config, []byte, error) {
4545
if configID == "foo" {
46-
return *Config(ConfigName("foo")), nil, nil
46+
return *builders.Config(builders.ConfigName("foo")), nil, nil
4747
}
4848
return swarm.Config{}, nil, errors.Errorf("error while inspecting the config")
4949
},
@@ -58,7 +58,7 @@ func TestConfigInspectErrors(t *testing.T) {
5858
)
5959
cmd.SetArgs(tc.args)
6060
for key, value := range tc.flags {
61-
cmd.Flags().Set(key, value)
61+
assert.Check(t, cmd.Flags().Set(key, value))
6262
}
6363
cmd.SetOut(io.Discard)
6464
assert.ErrorContains(t, cmd.Execute(), tc.expectedError)
@@ -78,14 +78,14 @@ func TestConfigInspectWithoutFormat(t *testing.T) {
7878
if name != "foo" {
7979
return swarm.Config{}, nil, errors.Errorf("Invalid name, expected %s, got %s", "foo", name)
8080
}
81-
return *Config(ConfigID("ID-foo"), ConfigName("foo")), nil, nil
81+
return *builders.Config(builders.ConfigID("ID-foo"), builders.ConfigName("foo")), nil, nil
8282
},
8383
},
8484
{
8585
name: "multiple-configs-with-labels",
8686
args: []string{"foo", "bar"},
8787
configInspectFunc: func(_ context.Context, name string) (swarm.Config, []byte, error) {
88-
return *Config(ConfigID("ID-"+name), ConfigName(name), ConfigLabels(map[string]string{
88+
return *builders.Config(builders.ConfigID("ID-"+name), builders.ConfigName(name), builders.ConfigLabels(map[string]string{
8989
"label1": "label-foo",
9090
})), nil, nil
9191
},
@@ -102,7 +102,7 @@ func TestConfigInspectWithoutFormat(t *testing.T) {
102102

103103
func TestConfigInspectWithFormat(t *testing.T) {
104104
configInspectFunc := func(_ context.Context, name string) (swarm.Config, []byte, error) {
105-
return *Config(ConfigName("foo"), ConfigLabels(map[string]string{
105+
return *builders.Config(builders.ConfigName("foo"), builders.ConfigLabels(map[string]string{
106106
"label1": "label-foo",
107107
})), nil, nil
108108
}
@@ -131,7 +131,7 @@ func TestConfigInspectWithFormat(t *testing.T) {
131131
})
132132
cmd := newConfigInspectCommand(cli)
133133
cmd.SetArgs(tc.args)
134-
cmd.Flags().Set("format", tc.format)
134+
assert.Check(t, cmd.Flags().Set("format", tc.format))
135135
assert.NilError(t, cmd.Execute())
136136
golden.Assert(t, cli.OutBuffer().String(), fmt.Sprintf("config-inspect-with-format.%s.golden", tc.name))
137137
}
@@ -145,15 +145,15 @@ func TestConfigInspectPretty(t *testing.T) {
145145
{
146146
name: "simple",
147147
configInspectFunc: func(_ context.Context, id string) (swarm.Config, []byte, error) {
148-
return *Config(
149-
ConfigLabels(map[string]string{
148+
return *builders.Config(
149+
builders.ConfigLabels(map[string]string{
150150
"lbl1": "value1",
151151
}),
152-
ConfigID("configID"),
153-
ConfigName("configName"),
154-
ConfigCreatedAt(time.Time{}),
155-
ConfigUpdatedAt(time.Time{}),
156-
ConfigData([]byte("payload here")),
152+
builders.ConfigID("configID"),
153+
builders.ConfigName("configName"),
154+
builders.ConfigCreatedAt(time.Time{}),
155+
builders.ConfigUpdatedAt(time.Time{}),
156+
builders.ConfigData([]byte("payload here")),
157157
), []byte{}, nil
158158
},
159159
},
@@ -165,7 +165,7 @@ func TestConfigInspectPretty(t *testing.T) {
165165
cmd := newConfigInspectCommand(cli)
166166

167167
cmd.SetArgs([]string{"configID"})
168-
cmd.Flags().Set("pretty", "true")
168+
assert.Check(t, cmd.Flags().Set("pretty", "true"))
169169
assert.NilError(t, cmd.Execute())
170170
golden.Assert(t, cli.OutBuffer().String(), fmt.Sprintf("config-inspect-pretty.%s.golden", tc.name))
171171
}

cli/command/config/ls_test.go

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88

99
"github.com/docker/cli/cli/config/configfile"
1010
"github.com/docker/cli/internal/test"
11-
. "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function
11+
"github.com/docker/cli/internal/test/builders"
1212
"github.com/docker/docker/api/types"
1313
"github.com/docker/docker/api/types/swarm"
1414
"github.com/pkg/errors"
@@ -50,23 +50,23 @@ func TestConfigList(t *testing.T) {
5050
cli := test.NewFakeCli(&fakeClient{
5151
configListFunc: func(_ context.Context, options types.ConfigListOptions) ([]swarm.Config, error) {
5252
return []swarm.Config{
53-
*Config(ConfigID("ID-1-foo"),
54-
ConfigName("1-foo"),
55-
ConfigVersion(swarm.Version{Index: 10}),
56-
ConfigCreatedAt(time.Now().Add(-2*time.Hour)),
57-
ConfigUpdatedAt(time.Now().Add(-1*time.Hour)),
53+
*builders.Config(builders.ConfigID("ID-1-foo"),
54+
builders.ConfigName("1-foo"),
55+
builders.ConfigVersion(swarm.Version{Index: 10}),
56+
builders.ConfigCreatedAt(time.Now().Add(-2*time.Hour)),
57+
builders.ConfigUpdatedAt(time.Now().Add(-1*time.Hour)),
5858
),
59-
*Config(ConfigID("ID-10-foo"),
60-
ConfigName("10-foo"),
61-
ConfigVersion(swarm.Version{Index: 11}),
62-
ConfigCreatedAt(time.Now().Add(-2*time.Hour)),
63-
ConfigUpdatedAt(time.Now().Add(-1*time.Hour)),
59+
*builders.Config(builders.ConfigID("ID-10-foo"),
60+
builders.ConfigName("10-foo"),
61+
builders.ConfigVersion(swarm.Version{Index: 11}),
62+
builders.ConfigCreatedAt(time.Now().Add(-2*time.Hour)),
63+
builders.ConfigUpdatedAt(time.Now().Add(-1*time.Hour)),
6464
),
65-
*Config(ConfigID("ID-2-foo"),
66-
ConfigName("2-foo"),
67-
ConfigVersion(swarm.Version{Index: 11}),
68-
ConfigCreatedAt(time.Now().Add(-2*time.Hour)),
69-
ConfigUpdatedAt(time.Now().Add(-1*time.Hour)),
65+
*builders.Config(builders.ConfigID("ID-2-foo"),
66+
builders.ConfigName("2-foo"),
67+
builders.ConfigVersion(swarm.Version{Index: 11}),
68+
builders.ConfigCreatedAt(time.Now().Add(-2*time.Hour)),
69+
builders.ConfigUpdatedAt(time.Now().Add(-1*time.Hour)),
7070
),
7171
}, nil
7272
},
@@ -80,15 +80,15 @@ func TestConfigListWithQuietOption(t *testing.T) {
8080
cli := test.NewFakeCli(&fakeClient{
8181
configListFunc: func(_ context.Context, options types.ConfigListOptions) ([]swarm.Config, error) {
8282
return []swarm.Config{
83-
*Config(ConfigID("ID-foo"), ConfigName("foo")),
84-
*Config(ConfigID("ID-bar"), ConfigName("bar"), ConfigLabels(map[string]string{
83+
*builders.Config(builders.ConfigID("ID-foo"), builders.ConfigName("foo")),
84+
*builders.Config(builders.ConfigID("ID-bar"), builders.ConfigName("bar"), builders.ConfigLabels(map[string]string{
8585
"label": "label-bar",
8686
})),
8787
}, nil
8888
},
8989
})
9090
cmd := newConfigListCommand(cli)
91-
cmd.Flags().Set("quiet", "true")
91+
assert.Check(t, cmd.Flags().Set("quiet", "true"))
9292
assert.NilError(t, cmd.Execute())
9393
golden.Assert(t, cli.OutBuffer().String(), "config-list-with-quiet-option.golden")
9494
}
@@ -97,8 +97,8 @@ func TestConfigListWithConfigFormat(t *testing.T) {
9797
cli := test.NewFakeCli(&fakeClient{
9898
configListFunc: func(_ context.Context, options types.ConfigListOptions) ([]swarm.Config, error) {
9999
return []swarm.Config{
100-
*Config(ConfigID("ID-foo"), ConfigName("foo")),
101-
*Config(ConfigID("ID-bar"), ConfigName("bar"), ConfigLabels(map[string]string{
100+
*builders.Config(builders.ConfigID("ID-foo"), builders.ConfigName("foo")),
101+
*builders.Config(builders.ConfigID("ID-bar"), builders.ConfigName("bar"), builders.ConfigLabels(map[string]string{
102102
"label": "label-bar",
103103
})),
104104
}, nil
@@ -116,15 +116,15 @@ func TestConfigListWithFormat(t *testing.T) {
116116
cli := test.NewFakeCli(&fakeClient{
117117
configListFunc: func(_ context.Context, options types.ConfigListOptions) ([]swarm.Config, error) {
118118
return []swarm.Config{
119-
*Config(ConfigID("ID-foo"), ConfigName("foo")),
120-
*Config(ConfigID("ID-bar"), ConfigName("bar"), ConfigLabels(map[string]string{
119+
*builders.Config(builders.ConfigID("ID-foo"), builders.ConfigName("foo")),
120+
*builders.Config(builders.ConfigID("ID-bar"), builders.ConfigName("bar"), builders.ConfigLabels(map[string]string{
121121
"label": "label-bar",
122122
})),
123123
}, nil
124124
},
125125
})
126126
cmd := newConfigListCommand(cli)
127-
cmd.Flags().Set("format", "{{ .Name }} {{ .Labels }}")
127+
assert.Check(t, cmd.Flags().Set("format", "{{ .Name }} {{ .Labels }}"))
128128
assert.NilError(t, cmd.Execute())
129129
golden.Assert(t, cli.OutBuffer().String(), "config-list-with-format.golden")
130130
}
@@ -135,24 +135,24 @@ func TestConfigListWithFilter(t *testing.T) {
135135
assert.Check(t, is.Equal("foo", options.Filters.Get("name")[0]))
136136
assert.Check(t, is.Equal("lbl1=Label-bar", options.Filters.Get("label")[0]))
137137
return []swarm.Config{
138-
*Config(ConfigID("ID-foo"),
139-
ConfigName("foo"),
140-
ConfigVersion(swarm.Version{Index: 10}),
141-
ConfigCreatedAt(time.Now().Add(-2*time.Hour)),
142-
ConfigUpdatedAt(time.Now().Add(-1*time.Hour)),
138+
*builders.Config(builders.ConfigID("ID-foo"),
139+
builders.ConfigName("foo"),
140+
builders.ConfigVersion(swarm.Version{Index: 10}),
141+
builders.ConfigCreatedAt(time.Now().Add(-2*time.Hour)),
142+
builders.ConfigUpdatedAt(time.Now().Add(-1*time.Hour)),
143143
),
144-
*Config(ConfigID("ID-bar"),
145-
ConfigName("bar"),
146-
ConfigVersion(swarm.Version{Index: 11}),
147-
ConfigCreatedAt(time.Now().Add(-2*time.Hour)),
148-
ConfigUpdatedAt(time.Now().Add(-1*time.Hour)),
144+
*builders.Config(builders.ConfigID("ID-bar"),
145+
builders.ConfigName("bar"),
146+
builders.ConfigVersion(swarm.Version{Index: 11}),
147+
builders.ConfigCreatedAt(time.Now().Add(-2*time.Hour)),
148+
builders.ConfigUpdatedAt(time.Now().Add(-1*time.Hour)),
149149
),
150150
}, nil
151151
},
152152
})
153153
cmd := newConfigListCommand(cli)
154-
cmd.Flags().Set("filter", "name=foo")
155-
cmd.Flags().Set("filter", "label=lbl1=Label-bar")
154+
assert.Check(t, cmd.Flags().Set("filter", "name=foo"))
155+
assert.Check(t, cmd.Flags().Set("filter", "label=lbl1=Label-bar"))
156156
assert.NilError(t, cmd.Execute())
157157
golden.Assert(t, cli.OutBuffer().String(), "config-list-with-filter.golden")
158158
}

cli/command/container/attach.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package container
22

33
import (
44
"context"
5-
"fmt"
65
"io"
76

87
"github.com/docker/cli/cli"
@@ -153,7 +152,7 @@ func getExitStatus(errC <-chan error, resultC <-chan container.WaitResponse) err
153152
select {
154153
case result := <-resultC:
155154
if result.Error != nil {
156-
return fmt.Errorf(result.Error.Message)
155+
return errors.New(result.Error.Message)
157156
}
158157
if result.StatusCode != 0 {
159158
return cli.StatusError{StatusCode: int(result.StatusCode)}

cli/command/container/attach_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package container
22

33
import (
4-
"fmt"
54
"io"
65
"testing"
76

@@ -79,7 +78,7 @@ func TestNewAttachCommandErrors(t *testing.T) {
7978

8079
func TestGetExitStatus(t *testing.T) {
8180
var (
82-
expectedErr = fmt.Errorf("unexpected error")
81+
expectedErr = errors.New("unexpected error")
8382
errC = make(chan error, 1)
8483
resultC = make(chan container.WaitResponse, 1)
8584
)

0 commit comments

Comments
 (0)