refactor: centralize fingerprint method resolution in a Fingerprinter (#2924)

This commit is contained in:
Valentin Maerten
2026-08-10 16:12:18 +02:00
committed by GitHub
parent d2b02e3c69
commit fc49c72647
17 changed files with 390 additions and 203 deletions

13
task.go
View File

@@ -15,7 +15,6 @@ import (
"github.com/go-task/task/v3/errors"
"github.com/go-task/task/v3/internal/env"
"github.com/go-task/task/v3/internal/execext"
"github.com/go-task/task/v3/internal/fingerprint"
"github.com/go-task/task/v3/internal/logger"
"github.com/go-task/task/v3/internal/output"
"github.com/go-task/task/v3/internal/slicesext"
@@ -221,17 +220,7 @@ func (e *Executor) RunTask(ctx context.Context, call *Call) error {
return err
}
// Get the fingerprinting method to use
method := e.Taskfile.Method
if t.Method != "" {
method = t.Method
}
upToDate, err := fingerprint.IsTaskUpToDate(ctx, t,
fingerprint.WithMethod(method),
fingerprint.WithTempDir(e.TempDir.Fingerprint),
fingerprint.WithDry(e.Dry),
fingerprint.WithLogger(e.Logger),
)
upToDate, err := e.fingerprinter().UpToDate(ctx, t)
if err != nil {
return err
}