Pārlūkot izejas kodu

chore: update supported go version to 1.18+

The 1.16 `io/fs` compatibility code was being built on 1.18 and 1.19.
Drop it completely as 1.16 is long EOL, and additionally drop 1.17 as it
has been EOL for a month and 1.18 is both the minimum Go supported by
the 20.10 branch, as well as a very easy jump from 1.17.

Signed-off-by: Bjorn Neergaard <bneergaard@mirantis.com>
Bjorn Neergaard 2 gadi atpakaļ
vecāks
revīzija
85fa72c599

+ 1 - 1
hack/go-mod-prepare.sh

@@ -5,5 +5,5 @@ ROOTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
 cat > "${ROOTDIR}/go.mod" << EOF
 module github.com/docker/docker
 
-go 1.17
+go 1.18
 EOF

+ 1 - 1
hack/vendor.sh

@@ -10,5 +10,5 @@ set -x
 SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
 "${SCRIPTDIR}"/go-mod-prepare.sh
 
-GO111MODULE=auto go mod tidy -modfile 'vendor.mod' -compat 1.17
+GO111MODULE=auto go mod tidy -modfile 'vendor.mod' -compat 1.18
 GO111MODULE=auto go mod vendor -modfile vendor.mod

+ 2 - 1
pkg/plugins/discovery.go

@@ -3,6 +3,7 @@ package plugins // import "github.com/docker/docker/pkg/plugins"
 import (
 	"encoding/json"
 	"fmt"
+	"io/fs"
 	"net/url"
 	"os"
 	"path/filepath"
@@ -40,7 +41,7 @@ func Scan() ([]string, error) {
 				continue
 			}
 
-			entry = fileInfoToDirEntry(fi)
+			entry = fs.FileInfoToDirEntry(fi)
 		}
 
 		if entry.Type()&os.ModeSocket != 0 {

+ 0 - 8
pkg/plugins/utils.go

@@ -1,8 +0,0 @@
-//go:build go1.17
-// +build go1.17
-
-package plugins
-
-import "io/fs"
-
-var fileInfoToDirEntry = fs.FileInfoToDirEntry

+ 0 - 47
pkg/plugins/utils_go1.16.go

@@ -1,47 +0,0 @@
-//go:build !go1.17
-// +build !go1.17
-
-// This code is taken from https://github.com/golang/go/blob/go1.17/src/io/fs/readdir.go#L49-L77
-// and provides the io/fs.FileInfoToDirEntry() utility for go1.16. Go 1.16 and up
-// provide a new implementation of ioutil.ReadDir() (in os.ReadDir()) that returns
-// an os.DirEntry instead of fs.FileInfo. go1.17 added the io/fs.FileInfoToDirEntry()
-// utility to allow existing uses of ReadDir() to get the old type. This utility
-// is not available in go1.16, so we copied it to assist the migration to os.ReadDir().
-
-// Copyright 2020 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package plugins
-
-import "os"
-
-// dirInfo is a DirEntry based on a FileInfo.
-type dirInfo struct {
-	fileInfo os.FileInfo
-}
-
-func (di dirInfo) IsDir() bool {
-	return di.fileInfo.IsDir()
-}
-
-func (di dirInfo) Type() os.FileMode {
-	return di.fileInfo.Mode().Type()
-}
-
-func (di dirInfo) Info() (os.FileInfo, error) {
-	return di.fileInfo, nil
-}
-
-func (di dirInfo) Name() string {
-	return di.fileInfo.Name()
-}
-
-// fileInfoToDirEntry returns a DirEntry that returns information from info.
-// If info is nil, fileInfoToDirEntry returns nil.
-func fileInfoToDirEntry(info os.FileInfo) os.DirEntry {
-	if info == nil {
-		return nil
-	}
-	return dirInfo{fileInfo: info}
-}

+ 1 - 1
vendor.mod

@@ -4,7 +4,7 @@
 
 module github.com/docker/docker
 
-go 1.17
+go 1.18
 
 require (
 	cloud.google.com/go v0.93.3