diff --git a/errors/error_taskfile_decode.go b/errors/error_taskfile_decode.go index 3176215733..b5458f3e18 100644 --- a/errors/error_taskfile_decode.go +++ b/errors/error_taskfile_decode.go @@ -5,15 +5,12 @@ import ( "cmp" "errors" "fmt" - "regexp" "strings" "github.com/fatih/color" - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" ) -var typeErrorRegex = regexp.MustCompile(`line \d+: (.*)`) - type ( TaskfileDecodeError struct { Message string @@ -53,10 +50,10 @@ func (err *TaskfileDecodeError) Error() string { if len(te.Errors) > 1 { fmt.Fprintln(buf, color.RedString("errs:")) for _, message := range te.Errors { - fmt.Fprintln(buf, color.RedString("- %s", extractTypeErrorMessage(message))) + fmt.Fprintln(buf, color.RedString("- %s", message.Err.Error())) } } else { - fmt.Fprintln(buf, color.RedString("err: %s", extractTypeErrorMessage(te.Errors[0]))) + fmt.Fprintln(buf, color.RedString("err: %s", te.Errors[0].Err.Error())) } } else { // Otherwise print the error message normally @@ -128,11 +125,3 @@ func (err *TaskfileDecodeError) WithFileInfo(location string, snippet string) *T err.Snippet = snippet return err } - -func extractTypeErrorMessage(message string) string { - matches := typeErrorRegex.FindStringSubmatch(message) - if len(matches) == 2 { - return matches[1] - } - return message -} diff --git a/go.mod b/go.mod index 9692df3f3f..95462968b2 100644 --- a/go.mod +++ b/go.mod @@ -25,9 +25,9 @@ require ( github.com/spf13/pflag v1.0.10 github.com/stretchr/testify v1.11.1 github.com/zeebo/xxh3 v1.0.2 + go.yaml.in/yaml/v4 v4.0.0-rc.2 golang.org/x/sync v0.17.0 golang.org/x/term v0.35.0 - gopkg.in/yaml.v3 v3.0.1 mvdan.cc/sh/moreinterp v0.0.0-20250915182820-b717ad599e17 mvdan.cc/sh/v3 v3.12.0 ) @@ -63,4 +63,5 @@ require ( golang.org/x/net v0.39.0 // indirect golang.org/x/sys v0.36.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index d44bdf3a1e..ee91731d4b 100644 --- a/go.sum +++ b/go.sum @@ -121,8 +121,6 @@ github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/skeema/knownhosts v1.3.1 h1:X2osQ+RAjK76shCbvhHHHVl3ZlgDm8apHEHFqRjnBY8= github.com/skeema/knownhosts v1.3.1/go.mod h1:r7KTdC8l4uxWRyK2TpQZ/1o5HaSzh06ePQNxPwTcfiY= -github.com/spf13/pflag v1.0.7 h1:vN6T9TfwStFPFM5XzjsvmzZkLuaLX+HS+0SeFLRgU6M= -github.com/spf13/pflag v1.0.7/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -131,8 +129,6 @@ github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.11.0 h1:ib4sjIrwZKxE5u/Japgo/7SJV3PvgjGiRNAvTVGqQl8= -github.com/stretchr/testify v1.11.0/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/u-root/u-root v0.14.1-0.20250807200646-5e7721023dc7 h1:ax+jBy7xFhh+Ka0IGLmH5mft+YDuqvzEjSgWuAP0nsM= @@ -145,6 +141,8 @@ github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= +go.yaml.in/yaml/v4 v4.0.0-rc.2 h1:/FrI8D64VSr4HtGIlUtlFMGsm7H7pWTbj6vOLVZcA6s= +go.yaml.in/yaml/v4 v4.0.0-rc.2/go.mod h1:aZqd9kCMsGL7AuUv/m/PvWLdg5sjJsZ4oHDEnfPPfY0= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE= golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc= @@ -153,8 +151,6 @@ golang.org/x/exp v0.0.0-20250305212735-054e65f0b394/go.mod h1:sIifuuw/Yco/y6yb6+ golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= -golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw= -golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -166,13 +162,9 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI= -golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k= golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.34.0 h1:O/2T7POpk0ZZ7MAzMeWFSg6S5IpWd/RXDlM9hgM3DR4= -golang.org/x/term v0.34.0/go.mod h1:5jC53AEywhIVebHgPVeg0mj8OD3VO9OzclacVrqpaAw= golang.org/x/term v0.35.0 h1:bZBVKBudEyhRcajGcNc3jIfWPqV4y/Kt2XcoigOWtDQ= golang.org/x/term v0.35.0/go.mod h1:TPGtkTLesOwf2DE8CgVYiZinHAOuy5AYUYT1lENIZnA= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -189,8 +181,6 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -mvdan.cc/sh/moreinterp v0.0.0-20250807215248-5a1a658912aa h1:sRmA9AmA5+9CbK6a7N52q9W9jAeoBy1EJ7cncm+SLxw= -mvdan.cc/sh/moreinterp v0.0.0-20250807215248-5a1a658912aa/go.mod h1:Of9PCedbLDYT8b3EyiYG64rNnx5nOp27OLCVdDrjJyo= mvdan.cc/sh/moreinterp v0.0.0-20250915182820-b717ad599e17 h1:2FU24GcRtL5Idt1KOtmzxU3RiXwirUQQUTV0voIHI2g= mvdan.cc/sh/moreinterp v0.0.0-20250915182820-b717ad599e17/go.mod h1:Of9PCedbLDYT8b3EyiYG64rNnx5nOp27OLCVdDrjJyo= mvdan.cc/sh/v3 v3.12.0 h1:ejKUR7ONP5bb+UGHGEG/k9V5+pRVIyD+LsZz7o8KHrI= diff --git a/internal/templater/funcs.go b/internal/templater/funcs.go index c3fdc469b6..d160b40b79 100644 --- a/internal/templater/funcs.go +++ b/internal/templater/funcs.go @@ -9,7 +9,7 @@ import ( "github.com/davecgh/go-spew/spew" "github.com/google/uuid" - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" "mvdan.cc/sh/v3/shell" "mvdan.cc/sh/v3/syntax" diff --git a/taskfile/ast/cmd.go b/taskfile/ast/cmd.go index 3dab193c55..b590e6bb96 100644 --- a/taskfile/ast/cmd.go +++ b/taskfile/ast/cmd.go @@ -1,7 +1,7 @@ package ast import ( - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" "github.com/go-task/task/v3/errors" "github.com/go-task/task/v3/internal/deepcopy" diff --git a/taskfile/ast/defer.go b/taskfile/ast/defer.go index 5705de445d..2d20bb4942 100644 --- a/taskfile/ast/defer.go +++ b/taskfile/ast/defer.go @@ -1,7 +1,7 @@ package ast import ( - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" "github.com/go-task/task/v3/errors" ) diff --git a/taskfile/ast/dep.go b/taskfile/ast/dep.go index d8c6af7f8e..990cb2fa93 100644 --- a/taskfile/ast/dep.go +++ b/taskfile/ast/dep.go @@ -1,7 +1,7 @@ package ast import ( - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" "github.com/go-task/task/v3/errors" ) diff --git a/taskfile/ast/for.go b/taskfile/ast/for.go index 544f71d3c1..0e77d9182a 100644 --- a/taskfile/ast/for.go +++ b/taskfile/ast/for.go @@ -1,7 +1,7 @@ package ast import ( - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" "github.com/go-task/task/v3/errors" "github.com/go-task/task/v3/internal/deepcopy" diff --git a/taskfile/ast/glob.go b/taskfile/ast/glob.go index 3d30b45c0b..7a22d6f3b2 100644 --- a/taskfile/ast/glob.go +++ b/taskfile/ast/glob.go @@ -1,7 +1,7 @@ package ast import ( - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" "github.com/go-task/task/v3/errors" ) diff --git a/taskfile/ast/include.go b/taskfile/ast/include.go index 6902b5a61d..551a0a5d60 100644 --- a/taskfile/ast/include.go +++ b/taskfile/ast/include.go @@ -5,7 +5,7 @@ import ( "sync" "github.com/elliotchance/orderedmap/v3" - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" "github.com/go-task/task/v3/errors" "github.com/go-task/task/v3/internal/deepcopy" diff --git a/taskfile/ast/matrix.go b/taskfile/ast/matrix.go index 379f178183..c2dff548b0 100644 --- a/taskfile/ast/matrix.go +++ b/taskfile/ast/matrix.go @@ -4,7 +4,7 @@ import ( "iter" "github.com/elliotchance/orderedmap/v3" - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" "github.com/go-task/task/v3/errors" "github.com/go-task/task/v3/internal/deepcopy" diff --git a/taskfile/ast/output.go b/taskfile/ast/output.go index b820e2b527..36bc41f616 100644 --- a/taskfile/ast/output.go +++ b/taskfile/ast/output.go @@ -1,7 +1,7 @@ package ast import ( - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" "github.com/go-task/task/v3/errors" ) diff --git a/taskfile/ast/platforms.go b/taskfile/ast/platforms.go index ac258a4a4e..3464e89e75 100644 --- a/taskfile/ast/platforms.go +++ b/taskfile/ast/platforms.go @@ -4,7 +4,7 @@ import ( "fmt" "strings" - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" "github.com/go-task/task/v3/errors" "github.com/go-task/task/v3/internal/goext" diff --git a/taskfile/ast/precondition.go b/taskfile/ast/precondition.go index 275144c917..37284922b1 100644 --- a/taskfile/ast/precondition.go +++ b/taskfile/ast/precondition.go @@ -3,7 +3,7 @@ package ast import ( "fmt" - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" "github.com/go-task/task/v3/errors" ) diff --git a/taskfile/ast/precondition_test.go b/taskfile/ast/precondition_test.go index 3eab661083..656406b062 100644 --- a/taskfile/ast/precondition_test.go +++ b/taskfile/ast/precondition_test.go @@ -5,7 +5,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" "github.com/go-task/task/v3/taskfile/ast" ) diff --git a/taskfile/ast/prompt.go b/taskfile/ast/prompt.go index 073ec05e80..47893f383d 100644 --- a/taskfile/ast/prompt.go +++ b/taskfile/ast/prompt.go @@ -1,7 +1,7 @@ package ast import ( - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" "github.com/go-task/task/v3/errors" ) diff --git a/taskfile/ast/requires.go b/taskfile/ast/requires.go index da0ae8dc37..5a76e13fcd 100644 --- a/taskfile/ast/requires.go +++ b/taskfile/ast/requires.go @@ -1,7 +1,7 @@ package ast import ( - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" "github.com/go-task/task/v3/errors" "github.com/go-task/task/v3/internal/deepcopy" diff --git a/taskfile/ast/task.go b/taskfile/ast/task.go index 7c49e9a32c..2747a00ee2 100644 --- a/taskfile/ast/task.go +++ b/taskfile/ast/task.go @@ -5,7 +5,7 @@ import ( "regexp" "strings" - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" "github.com/go-task/task/v3/errors" "github.com/go-task/task/v3/internal/deepcopy" diff --git a/taskfile/ast/taskfile.go b/taskfile/ast/taskfile.go index 4aad932da7..8085e41b63 100644 --- a/taskfile/ast/taskfile.go +++ b/taskfile/ast/taskfile.go @@ -5,7 +5,7 @@ import ( "time" "github.com/Masterminds/semver/v3" - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" "github.com/go-task/task/v3/errors" ) diff --git a/taskfile/ast/taskfile_test.go b/taskfile/ast/taskfile_test.go index be364e17e6..2a8b747efe 100644 --- a/taskfile/ast/taskfile_test.go +++ b/taskfile/ast/taskfile_test.go @@ -5,7 +5,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" "github.com/go-task/task/v3/taskfile/ast" ) diff --git a/taskfile/ast/tasks.go b/taskfile/ast/tasks.go index dd499b85c7..783cd6c388 100644 --- a/taskfile/ast/tasks.go +++ b/taskfile/ast/tasks.go @@ -8,7 +8,7 @@ import ( "sync" "github.com/elliotchance/orderedmap/v3" - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" "github.com/go-task/task/v3/errors" "github.com/go-task/task/v3/internal/filepathext" diff --git a/taskfile/ast/var.go b/taskfile/ast/var.go index f03091b8a7..ac32c8d57c 100644 --- a/taskfile/ast/var.go +++ b/taskfile/ast/var.go @@ -1,7 +1,7 @@ package ast import ( - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" "github.com/go-task/task/v3/errors" ) diff --git a/taskfile/ast/vars.go b/taskfile/ast/vars.go index 0271ee5c3a..1fb8f73804 100644 --- a/taskfile/ast/vars.go +++ b/taskfile/ast/vars.go @@ -5,7 +5,7 @@ import ( "sync" "github.com/elliotchance/orderedmap/v3" - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" "github.com/go-task/task/v3/errors" "github.com/go-task/task/v3/internal/deepcopy" @@ -113,7 +113,7 @@ func (vars *Vars) ToCacheMap() (m map[string]any) { m[k] = v.Value } } - return + return m } // Merge loops over other and merges it values with the variables in vars. If diff --git a/taskfile/reader.go b/taskfile/reader.go index 3f36ad62b2..402c3f7214 100644 --- a/taskfile/reader.go +++ b/taskfile/reader.go @@ -8,8 +8,8 @@ import ( "time" "github.com/dominikbraun/graph" + "go.yaml.in/yaml/v4" "golang.org/x/sync/errgroup" - "gopkg.in/yaml.v3" "github.com/go-task/task/v3/errors" "github.com/go-task/task/v3/internal/env" diff --git a/taskrc/reader.go b/taskrc/reader.go index aad26eef00..257123827f 100644 --- a/taskrc/reader.go +++ b/taskrc/reader.go @@ -3,7 +3,7 @@ package taskrc import ( "os" - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" "github.com/go-task/task/v3/taskrc/ast" )