diff --git a/go.mod b/go.mod index d56ff2d3..2f5c3fda 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,6 @@ require ( github.com/stretchr/testify v1.8.4 github.com/xeipuuv/gojsonschema v1.2.0 github.com/xhit/go-str2duration/v2 v2.1.0 - golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 golang.org/x/sync v0.3.0 gopkg.in/yaml.v3 v3.0.1 gotest.tools/v3 v3.4.0 diff --git a/go.sum b/go.sum index 6f286744..e390ddfa 100644 --- a/go.sum +++ b/go.sum @@ -37,8 +37,6 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 h1:hNQpMuAJe5CtcUqCXaWga3FHu+kQvCqcsoVaQgSV60o= -golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3/go.mod h1:idGWGoKP1toJGkd5/ig9ZLuPcZBC3ewk7SzmH0uou08= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= diff --git a/graph/cycle.go b/graph/cycle.go index 60c37cef..58130ad6 100644 --- a/graph/cycle.go +++ b/graph/cycle.go @@ -18,11 +18,11 @@ package graph import ( "fmt" + "slices" "strings" "github.com/compose-spec/compose-go/v2/types" "github.com/compose-spec/compose-go/v2/utils" - "golang.org/x/exp/slices" ) // CheckCycle analyze project's depends_on relation and report an error on cycle detection diff --git a/graph/traversal.go b/graph/traversal.go index f0ee6c09..99ab4a4b 100644 --- a/graph/traversal.go +++ b/graph/traversal.go @@ -18,9 +18,9 @@ package graph import ( "context" + "slices" "sync" - "golang.org/x/exp/slices" "golang.org/x/sync/errgroup" ) diff --git a/loader/loader.go b/loader/loader.go index 322109b1..4451df4b 100644 --- a/loader/loader.go +++ b/loader/loader.go @@ -26,6 +26,7 @@ import ( "path/filepath" "reflect" "regexp" + "slices" "strconv" "strings" @@ -42,7 +43,6 @@ import ( "github.com/compose-spec/compose-go/v2/validation" "github.com/go-viper/mapstructure/v2" "github.com/sirupsen/logrus" - "golang.org/x/exp/slices" "gopkg.in/yaml.v3" ) diff --git a/override/merge.go b/override/merge.go index 8cb0ed52..872c5f85 100644 --- a/override/merge.go +++ b/override/merge.go @@ -19,10 +19,10 @@ package override import ( "cmp" "fmt" + "slices" "strings" "github.com/compose-spec/compose-go/v2/tree" - "golang.org/x/exp/slices" ) // Merge applies overrides to a config model diff --git a/types/project.go b/types/project.go index 4afdbab8..40e52d03 100644 --- a/types/project.go +++ b/types/project.go @@ -21,8 +21,10 @@ import ( "context" "encoding/json" "fmt" + "maps" "os" "path/filepath" + "slices" "sort" "github.com/compose-spec/compose-go/v2/dotenv" @@ -30,7 +32,6 @@ import ( "github.com/compose-spec/compose-go/v2/utils" "github.com/distribution/reference" godigest "github.com/opencontainers/go-digest" - "golang.org/x/exp/maps" "golang.org/x/sync/errgroup" "gopkg.in/yaml.v3" ) @@ -120,21 +121,21 @@ func (p *Project) ServicesWithBuild() []string { servicesBuild := p.Services.Filter(func(s ServiceConfig) bool { return s.Build != nil && s.Build.Context != "" }) - return maps.Keys(servicesBuild) + return slices.AppendSeq(make([]string, 0), maps.Keys(servicesBuild)) } func (p *Project) ServicesWithExtends() []string { servicesExtends := p.Services.Filter(func(s ServiceConfig) bool { return s.Extends != nil && *s.Extends != (ExtendsConfig{}) }) - return maps.Keys(servicesExtends) + return slices.AppendSeq(make([]string, 0), maps.Keys(servicesExtends)) } func (p *Project) ServicesWithDependsOn() []string { servicesDependsOn := p.Services.Filter(func(s ServiceConfig) bool { return len(s.DependsOn) > 0 }) - return maps.Keys(servicesDependsOn) + return slices.AppendSeq(make([]string, 0), maps.Keys(servicesDependsOn)) } func (p *Project) ServicesWithCapabilities() ([]string, []string, []string) { diff --git a/types/project_test.go b/types/project_test.go index 61c92c19..45d3ac7b 100644 --- a/types/project_test.go +++ b/types/project_test.go @@ -20,13 +20,13 @@ import ( _ "crypto/sha256" "errors" "fmt" + "slices" "strings" "testing" "github.com/compose-spec/compose-go/v2/utils" "github.com/distribution/reference" "github.com/opencontainers/go-digest" - "golang.org/x/exp/slices" "gotest.tools/v3/assert" ) diff --git a/utils/collectionutils.go b/utils/collectionutils.go index 4df8fb1f..ed815f0f 100644 --- a/utils/collectionutils.go +++ b/utils/collectionutils.go @@ -17,15 +17,13 @@ package utils import ( - "golang.org/x/exp/constraints" - "golang.org/x/exp/maps" - "golang.org/x/exp/slices" + "cmp" + "maps" + "slices" ) -func MapKeys[T constraints.Ordered, U any](theMap map[T]U) []T { - result := maps.Keys(theMap) - slices.Sort(result) - return result +func MapKeys[T cmp.Ordered, U any](theMap map[T]U) []T { + return slices.Sorted(maps.Keys(theMap)) } func MapsAppend[T comparable, U any](target map[T]U, source map[T]U) map[T]U {