2
2
mirror of https://github.com/octoleo/restic.git synced 2024-11-25 14:17:42 +00:00

bump required go version to 1.21

This commit is contained in:
Michael Eischer 2024-07-26 19:07:14 +02:00
parent 05571286b2
commit ad48751adb
11 changed files with 10 additions and 54 deletions

View File

@ -49,16 +49,6 @@ jobs:
os: ubuntu-latest os: ubuntu-latest
test_fuse: true test_fuse: true
- job_name: Linux
go: 1.20.x
os: ubuntu-latest
test_fuse: true
- job_name: Linux
go: 1.19.x
os: ubuntu-latest
test_fuse: true
name: ${{ matrix.job_name }} Go ${{ matrix.go }} name: ${{ matrix.job_name }} Go ${{ matrix.go }}
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}

View File

@ -58,7 +58,7 @@ var config = Config{
Main: "./cmd/restic", // package name for the main package Main: "./cmd/restic", // package name for the main package
DefaultBuildTags: []string{"selfupdate"}, // specify build tags which are always used DefaultBuildTags: []string{"selfupdate"}, // specify build tags which are always used
Tests: []string{"./..."}, // tests to run Tests: []string{"./..."}, // tests to run
MinVersion: GoVersion{Major: 1, Minor: 18, Patch: 0}, // minimum Go version supported MinVersion: GoVersion{Major: 1, Minor: 21, Patch: 0}, // minimum Go version supported
} }
// Config configures the build. // Config configures the build.

View File

@ -284,8 +284,7 @@ From Source
*********** ***********
restic is written in the Go programming language and you need at least restic is written in the Go programming language and you need at least
Go version 1.19. Building for Solaris requires at least Go version 1.20. Go version 1.21. Building restic may also work with older versions of Go,
Building restic may also work with older versions of Go,
but that's not supported. See the `Getting but that's not supported. See the `Getting
started <https://go.dev/doc/install>`__ guide of the Go project for started <https://go.dev/doc/install>`__ guide of the Go project for
instructions how to install Go. instructions how to install Go.

2
go.mod
View File

@ -86,4 +86,4 @@ require (
gopkg.in/yaml.v3 v3.0.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect
) )
go 1.19 go 1.21

View File

@ -94,7 +94,7 @@ func run(command string, args ...string) (*StdioConn, *sync.WaitGroup, chan stru
err = errW err = errW
} }
if err != nil { if err != nil {
if util.IsErrDot(err) { if errors.Is(err, exec.ErrDot) {
return nil, nil, nil, nil, errors.Errorf("cannot implicitly run relative executable %v found in current directory, use -o rclone.program=./<program> to override", cmd.Path) return nil, nil, nil, nil, errors.Errorf("cannot implicitly run relative executable %v found in current directory, use -o rclone.program=./<program> to override", cmd.Path)
} }
return nil, nil, nil, nil, err return nil, nil, nil, nil, err

View File

@ -1,6 +1,3 @@
//go:build go1.20
// +build go1.20
package rest_test package rest_test
import ( import (

View File

@ -1,5 +1,5 @@
//go:build !windows && go1.20 //go:build !windows
// +build !windows,go1.20 // +build !windows
package rest_test package rest_test

View File

@ -88,7 +88,7 @@ func startClient(cfg Config) (*SFTP, error) {
bg, err := util.StartForeground(cmd) bg, err := util.StartForeground(cmd)
if err != nil { if err != nil {
if util.IsErrDot(err) { if errors.Is(err, exec.ErrDot) {
return nil, errors.Errorf("cannot implicitly run relative executable %v found in current directory, use -o sftp.command=./<command> to override", cmd.Path) return nil, errors.Errorf("cannot implicitly run relative executable %v found in current directory, use -o sftp.command=./<command> to override", cmd.Path)
} }
return nil, err return nil, err

View File

@ -1,20 +0,0 @@
//go:build go1.19
// +build go1.19
// This file provides a function to check whether an error from cmd.Start() is
// exec.ErrDot which was introduced in Go 1.19.
// This function is needed so that we can perform this check only for Go 1.19 and
// up, whereas for older versions we use a dummy/stub in the file errdot_old.go.
// Once the minimum Go version restic supports is 1.19, remove this file and
// replace any calls to it with the corresponding code as per below.
package util
import (
"errors"
"os/exec"
)
func IsErrDot(err error) bool {
return errors.Is(err, exec.ErrDot)
}

View File

@ -1,13 +0,0 @@
//go:build !go1.19
// +build !go1.19
// This file provides a stub for IsErrDot() for Go versions below 1.19.
// See the corresponding file errdot_119.go for more information.
// Once the minimum Go version restic supports is 1.19, remove this file
// and perform the actions listed in errdot_119.go.
package util
func IsErrDot(err error) bool {
return false
}

View File

@ -11,6 +11,9 @@ import (
// to the previous process group. // to the previous process group.
// //
// The command's environment has all RESTIC_* variables removed. // The command's environment has all RESTIC_* variables removed.
//
// Return exec.ErrDot if it would implicitly run an executable from the current
// directory.
func StartForeground(cmd *exec.Cmd) (bg func() error, err error) { func StartForeground(cmd *exec.Cmd) (bg func() error, err error) {
env := os.Environ() // Returns a copy that we can modify. env := os.Environ() // Returns a copy that we can modify.