From f0ed7a79ee135ff33a583d89b52e624265ecd448 Mon Sep 17 00:00:00 2001 From: Valentin Maerten Date: Wed, 5 Nov 2025 08:55:25 +0100 Subject: [PATCH 1/2] fix: better error when a Taskfile does not exist in include --- taskfile/node_file.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/taskfile/node_file.go b/taskfile/node_file.go index 901909e7f5..2d895c6569 100644 --- a/taskfile/node_file.go +++ b/taskfile/node_file.go @@ -5,6 +5,7 @@ import ( "os" "path/filepath" + "github.com/go-task/task/v3/errors" "github.com/go-task/task/v3/internal/execext" "github.com/go-task/task/v3/internal/filepathext" "github.com/go-task/task/v3/internal/fsext" @@ -20,6 +21,9 @@ func NewFileNode(entrypoint, dir string, opts ...NodeOption) (*FileNode, error) // Find the entrypoint file resolvedEntrypoint, err := fsext.Search(entrypoint, dir, defaultTaskfiles) if err != nil { + if errors.Is(err, os.ErrNotExist) { + return nil, errors.TaskfileNotFoundError{URI: entrypoint, Walk: false} + } return nil, err } From c1295de0e2aeafc41e8ad83a6242270e52760b2f Mon Sep 17 00:00:00 2001 From: Valentin Maerten Date: Wed, 5 Nov 2025 09:12:39 +0100 Subject: [PATCH 2/2] fix test --- task_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/task_test.go b/task_test.go index 03ee2ee1b2..5b54317184 100644 --- a/task_test.go +++ b/task_test.go @@ -1052,7 +1052,7 @@ func TestIncludesOptionalImplicitFalse(t *testing.T) { const dir = "testdata/includes_optional_implicit_false" wd, _ := os.Getwd() - message := "stat %s/%s/TaskfileOptional.yml: no such file or directory" + message := "task: No Taskfile found at \"%s/%s/TaskfileOptional.yml\"" expected := fmt.Sprintf(message, wd, dir) e := task.NewExecutor( @@ -1072,7 +1072,7 @@ func TestIncludesOptionalExplicitFalse(t *testing.T) { const dir = "testdata/includes_optional_explicit_false" wd, _ := os.Getwd() - message := "stat %s/%s/TaskfileOptional.yml: no such file or directory" + message := "task: No Taskfile found at \"%s/%s/TaskfileOptional.yml\"" expected := fmt.Sprintf(message, wd, dir) e := task.NewExecutor(