diff --git a/build/build.go b/build/build.go index 9f14fa08ffe1..9dcd5c969f5f 100644 --- a/build/build.go +++ b/build/build.go @@ -299,9 +299,8 @@ func validateTargetLinks(reqForNodes map[string][]*reqForNode, drivers map[strin func toRepoOnly(in string) (string, error) { m := map[string]struct{}{} - p := strings.Split(in, ",") - for _, pp := range p { - n, err := reference.ParseNormalizedNamed(pp) + for ref := range strings.SplitSeq(in, ",") { + n, err := reference.ParseNormalizedNamed(ref) if err != nil { return "", err } diff --git a/build/utils.go b/build/utils.go index a7b6b19ecef0..bf81b38f2a56 100644 --- a/build/utils.go +++ b/build/utils.go @@ -85,7 +85,7 @@ func toBuildkitExtraHosts(ctx context.Context, inp []string, nodeDriver *driver. } ips = append(ips, hgip.String()) } else { - for _, v := range strings.Split(ip, ",") { + for v := range strings.SplitSeq(ip, ",") { // If the address is enclosed in square brackets, extract it // (for IPv6, but permit it for IPv4 as well; we don't know the // address family here, but it's unambiguous). diff --git a/builder/builder.go b/builder/builder.go index d26c42379d61..34ab026b85e2 100644 --- a/builder/builder.go +++ b/builder/builder.go @@ -268,7 +268,7 @@ func (b *Builder) MarshalJSON() ([]byte, error) { return json.Marshal(struct { Name string Driver string - LastActivity time.Time `json:",omitempty"` + LastActivity time.Time Dynamic bool Nodes []Node Err string `json:",omitempty"` diff --git a/commands/history/inspect.go b/commands/history/inspect.go index e398d7aa3593..df132bdd417e 100644 --- a/commands/history/inspect.go +++ b/commands/history/inspect.go @@ -88,7 +88,7 @@ type inspectOutput struct { BuildArgs []keyValueOutput `json:",omitempty"` Labels []keyValueOutput `json:",omitempty"` - Config configOutput `json:",omitempty"` + Config configOutput Materials []materialOutput `json:",omitempty"` Attachments []attachmentOutput `json:",omitempty"` @@ -263,7 +263,7 @@ workers0: readAttr(attrs, "platform", &out.Platform, func(v string) ([]string, bool) { return tryParseValue(v, &out.Errors, func(v string) ([]string, error) { var pp []string - for _, v := range strings.Split(v, ",") { + for v := range strings.SplitSeq(v, ",") { p, err := platforms.Parse(v) if err != nil { return nil, err diff --git a/commands/inspect.go b/commands/inspect.go index 0e2424116fb9..00031e44467e 100644 --- a/commands/inspect.go +++ b/commands/inspect.go @@ -155,7 +155,7 @@ func runInspect(ctx context.Context, dockerCli command.Cli, in inspectOptions) e } for f, dt := range nodes[i].Files { fmt.Fprintf(w, "File#%s:\n", f) - for _, line := range strings.Split(string(dt), "\n") { + for line := range strings.SplitSeq(string(dt), "\n") { fmt.Fprintf(w, "\t> %s\n", line) } } diff --git a/go.mod b/go.mod index 3f375de1d2fe..863186a3074b 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/docker/buildx -go 1.23.0 +go 1.24.0 require ( github.com/Masterminds/semver/v3 v3.4.0 diff --git a/tests/create.go b/tests/create.go index 647892e8d088..d49f34bb2559 100644 --- a/tests/create.go +++ b/tests/create.go @@ -100,7 +100,7 @@ func testCreateRemoteContainer(t *testing.T, sb integration.Sandbox) { out, err = inspectCmd(sb, withArgs(remoteBuilderName)) require.NoError(t, err, out) - for _, line := range strings.Split(out, "\n") { + for line := range strings.SplitSeq(out, "\n") { if v, ok := strings.CutPrefix(line, "Status:"); ok { require.Equal(t, "running", strings.TrimSpace(v)) return diff --git a/tests/inspect.go b/tests/inspect.go index 6a9f7a14eab4..47a5c4373f68 100644 --- a/tests/inspect.go +++ b/tests/inspect.go @@ -32,7 +32,7 @@ func testInspect(t *testing.T, sb integration.Sandbox) { var name string var driver string var hostGatewayIP string - for _, line := range strings.Split(out, "\n") { + for line := range strings.SplitSeq(out, "\n") { if v, ok := strings.CutPrefix(line, "Name:"); ok && name == "" { name = strings.TrimSpace(v) } @@ -75,7 +75,7 @@ func testInspectBuildkitdFlags(t *testing.T, sb integration.Sandbox) { out, err = inspectCmd(sb, withArgs(builderName)) require.NoError(t, err, out) - for _, line := range strings.Split(out, "\n") { + for line := range strings.SplitSeq(out, "\n") { if v, ok := strings.CutPrefix(line, "BuildKit daemon flags:"); ok { require.Contains(t, v, "--oci-worker-net=bridge") return @@ -105,7 +105,7 @@ func testInspectNetworkHostEntitlement(t *testing.T, sb integration.Sandbox) { out, err = inspectCmd(sb, withArgs(builderName)) require.NoError(t, err, out) - for _, line := range strings.Split(out, "\n") { + for line := range strings.SplitSeq(out, "\n") { if v, ok := strings.CutPrefix(line, "BuildKit daemon flags:"); ok { require.Contains(t, v, "--allow-insecure-entitlement=network.host") return @@ -160,7 +160,7 @@ insecure-entitlements = ["network.host", "security.insecure"] var fileLines []string var fileFound bool var reConfLine = regexp.MustCompile(`^[\s\t]*>\s(.*)`) - for _, line := range strings.Split(out, "\n") { + for line := range strings.SplitSeq(out, "\n") { if strings.HasPrefix(line, "File#buildkitd.toml:") { fileFound = true continue diff --git a/tests/integration.go b/tests/integration.go index 444e74df814f..8790d296d406 100644 --- a/tests/integration.go +++ b/tests/integration.go @@ -184,7 +184,7 @@ func buildkitVersion(t *testing.T, sb integration.Sandbox) string { if !ok { out, err := inspectCmd(sb, withArgs(sb.Address())) require.NoError(t, err, out) - for _, line := range strings.Split(out, "\n") { + for line := range strings.SplitSeq(out, "\n") { if v, ok := strings.CutPrefix(line, "BuildKit version:"); ok { ver = strings.TrimSpace(v) bkvers[sb.Name()] = ver diff --git a/tests/ls.go b/tests/ls.go index 5898c7fb9d74..84bdc213e3c8 100644 --- a/tests/ls.go +++ b/tests/ls.go @@ -40,7 +40,7 @@ func testLs(t *testing.T, sb integration.Sandbox) { out, err := lsCmd(sb, withArgs(tt.args...)) require.NoError(t, err, out) found := false - for _, line := range strings.Split(out, "\n") { + for line := range strings.SplitSeq(out, "\n") { if strings.Contains(line, sb.Address()) { found = true require.Contains(t, line, sbDriver) diff --git a/tests/workers/docker.go b/tests/workers/docker.go index aae00510e8e8..285223882a42 100644 --- a/tests/workers/docker.go +++ b/tests/workers/docker.go @@ -27,8 +27,7 @@ func InitDockerWorker() { }) // e.g. `docker@26.0=/opt/docker-26.0,docker@25.0=/opt/docker-25.0` if s := os.Getenv("TEST_DOCKER_EXTRA"); s != "" { - entries := strings.Split(s, ",") - for _, entry := range entries { + for entry := range strings.SplitSeq(s, ",") { ver, bin, err := func(entry string) (string, string, error) { p1 := strings.Split(strings.TrimSpace(entry), "=") if len(p1) != 2 { diff --git a/util/buildflags/export.go b/util/buildflags/export.go index ad96c76a5439..44500d2b6769 100644 --- a/util/buildflags/export.go +++ b/util/buildflags/export.go @@ -190,8 +190,7 @@ func ParseAnnotations(inp []string) (map[exptypes.AnnotationKey]string, error) { continue } - typesSplit := strings.Split(types, ",") - for _, typeAndPlatform := range typesSplit { + for typeAndPlatform := range strings.SplitSeq(types, ",") { groups := annotationTypeRegexp.FindStringSubmatch(typeAndPlatform) if groups == nil { return nil, errors.Errorf(