feat(experiments): rename SCOPED_INCLUDES to SCOPED_TASKFILES and add env namespace

Rename the experiment from SCOPED_INCLUDES to SCOPED_TASKFILES to better
reflect its expanded scope. This experiment now provides:

1. Variable scoping (existing): includes see only their own vars + parent vars
2. Environment namespace (new): env vars accessible via {{.env.XXX}}

With TASK_X_SCOPED_TASKFILES=1:
- {{.VAR}} accesses vars only (scoped per include)
- {{.env.VAR}} accesses env (OS + Taskfile env:, inherited)
- {{.TASK}} and other special vars remain at root level

This is a breaking change for the experimental feature:
- {{.PATH}} no longer works, use {{.env.PATH}} instead
- Env vars are no longer at root level in templates
This commit is contained in:
Valentin Maerten
2025-12-29 16:31:51 +01:00
parent efaea39503
commit edee501b6b
19 changed files with 212 additions and 74 deletions

View File

@@ -106,7 +106,7 @@ func (e *Executor) readTaskfile(node taskfile.Node) error {
return err
}
e.Graph = graph
if e.Taskfile, err = graph.Merge(experiments.ScopedIncludes.Enabled()); err != nil {
if e.Taskfile, err = graph.Merge(experiments.ScopedTaskfiles.Enabled()); err != nil {
return err
}
return nil