mirror of
https://github.com/go-task/task.git
synced 2025-12-16 11:47:44 +01:00
feat: remove v2 support (#1447)
* feat: remove v2 support * docs: update v2 schema docs
This commit is contained in:
103
setup.go
103
setup.go
@@ -12,8 +12,7 @@ import (
|
||||
"github.com/Masterminds/semver/v3"
|
||||
"github.com/sajari/fuzzy"
|
||||
|
||||
compilerv2 "github.com/go-task/task/v3/internal/compiler/v2"
|
||||
compilerv3 "github.com/go-task/task/v3/internal/compiler/v3"
|
||||
"github.com/go-task/task/v3/internal/compiler"
|
||||
"github.com/go-task/task/v3/internal/execext"
|
||||
"github.com/go-task/task/v3/internal/filepathext"
|
||||
"github.com/go-task/task/v3/internal/logger"
|
||||
@@ -179,38 +178,21 @@ func (e *Executor) setupOutput() error {
|
||||
}
|
||||
|
||||
func (e *Executor) setupCompiler() error {
|
||||
if e.Taskfile.Version.LessThan(taskfile.V3) {
|
||||
if e.UserWorkingDir == "" {
|
||||
var err error
|
||||
e.taskvars, err = read.Taskvars(e.Dir)
|
||||
e.UserWorkingDir, err = os.Getwd()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
e.Compiler = &compilerv2.CompilerV2{
|
||||
Dir: e.Dir,
|
||||
Taskvars: e.taskvars,
|
||||
TaskfileVars: e.Taskfile.Vars,
|
||||
Expansions: e.Taskfile.Expansions,
|
||||
Logger: e.Logger,
|
||||
}
|
||||
} else {
|
||||
if e.UserWorkingDir == "" {
|
||||
var err error
|
||||
e.UserWorkingDir, err = os.Getwd()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
e.Compiler = &compilerv3.CompilerV3{
|
||||
Dir: e.Dir,
|
||||
UserWorkingDir: e.UserWorkingDir,
|
||||
TaskfileEnv: e.Taskfile.Env,
|
||||
TaskfileVars: e.Taskfile.Vars,
|
||||
Logger: e.Logger,
|
||||
}
|
||||
}
|
||||
|
||||
e.Compiler = &compiler.Compiler{
|
||||
Dir: e.Dir,
|
||||
UserWorkingDir: e.UserWorkingDir,
|
||||
TaskfileEnv: e.Taskfile.Env,
|
||||
TaskfileVars: e.Taskfile.Vars,
|
||||
Logger: e.Logger,
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -234,19 +216,9 @@ func (e *Executor) readDotEnvFiles() error {
|
||||
}
|
||||
|
||||
func (e *Executor) setupDefaults() {
|
||||
// Color available only on v3
|
||||
if e.Taskfile.Version.LessThan(taskfile.V3) {
|
||||
e.Logger.Color = false
|
||||
}
|
||||
|
||||
if e.Taskfile.Method == "" {
|
||||
if e.Taskfile.Version.Compare(taskfile.V3) >= 0 {
|
||||
e.Taskfile.Method = "checksum"
|
||||
} else {
|
||||
e.Taskfile.Method = "timestamp"
|
||||
}
|
||||
e.Taskfile.Method = "checksum"
|
||||
}
|
||||
|
||||
if e.Taskfile.Run == "" {
|
||||
e.Taskfile.Run = "always"
|
||||
}
|
||||
@@ -272,18 +244,11 @@ func (e *Executor) doVersionChecks() error {
|
||||
v := &semver.Version{}
|
||||
*v = *e.Taskfile.Version
|
||||
|
||||
if v.LessThan(taskfile.V2) {
|
||||
return fmt.Errorf(`task: version 1 schemas are no longer supported`)
|
||||
}
|
||||
|
||||
if v.LessThan(taskfile.V3) {
|
||||
e.Logger.Errf(logger.Yellow, "task: version 2 schemas are deprecated and will be removed in a future release\nSee https://github.com/go-task/task/issues/1197 for more details\n")
|
||||
return fmt.Errorf(`task: Taskfile schemas prior to v3 are no longer supported`)
|
||||
}
|
||||
|
||||
// consider as equal to the greater version if round
|
||||
if v.Equal(taskfile.V2) {
|
||||
v = semver.MustParse("2.6")
|
||||
}
|
||||
if v.Equal(taskfile.V3) {
|
||||
v = semver.MustParse("3.8")
|
||||
}
|
||||
@@ -292,54 +257,10 @@ func (e *Executor) doVersionChecks() error {
|
||||
return fmt.Errorf(`task: Taskfile versions greater than v3.8 not implemented in the version of Task`)
|
||||
}
|
||||
|
||||
if v.LessThan(semver.MustParse("2.1")) && !e.Taskfile.Output.IsSet() {
|
||||
return fmt.Errorf(`task: Taskfile option "output" is only available starting on Taskfile version v2.1`)
|
||||
}
|
||||
if v.LessThan(semver.MustParse("2.2")) && e.Taskfile.Includes.Len() > 0 {
|
||||
return fmt.Errorf(`task: Including Taskfiles is only available starting on Taskfile version v2.2`)
|
||||
}
|
||||
if v.Compare(taskfile.V3) >= 0 && e.Taskfile.Expansions > 2 {
|
||||
return fmt.Errorf(`task: The "expansions" setting is not available anymore on v3.0`)
|
||||
}
|
||||
if v.LessThan(semver.MustParse("3.8")) && e.Taskfile.Output.Group.IsSet() {
|
||||
return fmt.Errorf(`task: Taskfile option "output.group" is only available starting on Taskfile version v3.8`)
|
||||
}
|
||||
|
||||
if v.Compare(semver.MustParse("2.1")) <= 0 {
|
||||
err := errors.New(`task: Taskfile option "ignore_error" is only available starting on Taskfile version v2.1`)
|
||||
|
||||
for _, task := range e.Taskfile.Tasks.Values() {
|
||||
if task.IgnoreError {
|
||||
return err
|
||||
}
|
||||
for _, cmd := range task.Cmds {
|
||||
if cmd.IgnoreError {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if v.LessThan(semver.MustParse("2.6")) {
|
||||
for _, task := range e.Taskfile.Tasks.Values() {
|
||||
if len(task.Preconditions) > 0 {
|
||||
return errors.New(`task: Task option "preconditions" is only available starting on Taskfile version v2.6`)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if v.LessThan(taskfile.V3) {
|
||||
err := e.Taskfile.Includes.Range(func(_ string, taskfile taskfile.IncludedTaskfile) error {
|
||||
if taskfile.AdvancedImport {
|
||||
return errors.New(`task: Import with additional parameters is only available starting on Taskfile version v3`)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if v.LessThan(semver.MustParse("3.7")) {
|
||||
if e.Taskfile.Run != "" {
|
||||
return errors.New(`task: Setting the "run" type is only available starting on Taskfile version v3.7`)
|
||||
|
||||
Reference in New Issue
Block a user