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>
(cherry picked from commit 85fa72c599
)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
parent
b76a60dee6
commit
f9ab209417
6 changed files with 5 additions and 59 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
//go:build go1.17
|
||||
// +build go1.17
|
||||
|
||||
package plugins
|
||||
|
||||
import "io/fs"
|
||||
|
||||
var fileInfoToDirEntry = fs.FileInfoToDirEntry
|
|
@ -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}
|
||||
}
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
module github.com/docker/docker
|
||||
|
||||
go 1.17
|
||||
go 1.18
|
||||
|
||||
require (
|
||||
cloud.google.com/go v0.93.3
|
||||
|
|
Loading…
Reference in a new issue