diff --git a/go.mod b/go.mod index 6c551f392..d6b164c10 100644 --- a/go.mod +++ b/go.mod @@ -1,13 +1,13 @@ module github.com/grafana/cog -go 1.23.0 +go 1.24.0 -toolchain go1.23.6 +toolchain go1.24.4 require ( cuelang.org/go v0.11.0 github.com/expr-lang/expr v1.17.6 - github.com/getkin/kin-openapi v0.128.0 + github.com/getkin/kin-openapi v0.133.0 github.com/google/go-cmp v0.7.0 github.com/grafana/codejen v0.0.4-0.20230321061741-77f656893a3d github.com/huandu/xstrings v1.5.0 @@ -16,9 +16,9 @@ require ( github.com/spf13/cobra v1.10.1 github.com/stretchr/testify v1.11.1 github.com/yalue/merged_fs v1.3.0 - golang.org/x/mod v0.27.0 - golang.org/x/text v0.28.0 - golang.org/x/tools v0.36.0 + golang.org/x/mod v0.28.0 + golang.org/x/text v0.29.0 + golang.org/x/tools v0.37.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -35,11 +35,12 @@ require ( github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/invopop/yaml v0.3.1 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect + github.com/oasdiff/yaml v0.0.0-20250309154309-f31be36b4037 // indirect + github.com/oasdiff/yaml3 v0.0.0-20250309153720-d2182401db90 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pelletier/go-toml/v2 v2.2.3 // indirect @@ -49,7 +50,8 @@ require ( github.com/rogpeppe/go-internal v1.13.1 // indirect github.com/spf13/pflag v1.0.9 // indirect github.com/wk8/go-ordered-map/v2 v2.1.8 // indirect - golang.org/x/net v0.43.0 // indirect - golang.org/x/oauth2 v0.24.0 // indirect - golang.org/x/sync v0.16.0 // indirect + github.com/woodsbury/decimal128 v1.3.0 // indirect + golang.org/x/net v0.44.0 // indirect + golang.org/x/oauth2 v0.27.0 // indirect + golang.org/x/sync v0.17.0 // indirect ) diff --git a/go.sum b/go.sum index e3308ccc7..11d0728f2 100644 --- a/go.sum +++ b/go.sum @@ -15,8 +15,8 @@ github.com/emicklei/proto v1.13.2 h1:z/etSFO3uyXeuEsVPzfl56WNgzcvIr42aQazXaQmFZY github.com/emicklei/proto v1.13.2/go.mod h1:rn1FgRS/FANiZdD2djyH7TMA9jdRDcYQ9IEN9yvjX0A= github.com/expr-lang/expr v1.17.6 h1:1h6i8ONk9cexhDmowO/A64VPxHScu7qfSl2k8OlINec= github.com/expr-lang/expr v1.17.6/go.mod h1:8/vRC7+7HBzESEqt5kKpYXxrxkr31SaO8r40VO/1IT4= -github.com/getkin/kin-openapi v0.128.0 h1:jqq3D9vC9pPq1dGcOCv7yOp1DaEe7c/T1vzcLbITSp4= -github.com/getkin/kin-openapi v0.128.0/go.mod h1:OZrfXzUfGrNbsKj+xmFBx6E5c6yH3At/tAKSc2UszXM= +github.com/getkin/kin-openapi v0.133.0 h1:pJdmNohVIJ97r4AUFtEXRXwESr8b0bD721u/Tz6k8PQ= +github.com/getkin/kin-openapi v0.133.0/go.mod h1:boAciF6cXk5FhPqe/NQeBTeenbjqU4LhWBf09ILVvWE= github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= @@ -42,8 +42,6 @@ github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2 github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/invopop/jsonschema v0.13.0 h1:KvpoAJWEjR3uD9Kbm2HWJmqsEaHt8lBUpd0qHcIi21E= github.com/invopop/jsonschema v0.13.0/go.mod h1:ffZ5Km5SWWRAIN6wbDXItl95euhFz2uON45H2qjYt+0= -github.com/invopop/yaml v0.3.1 h1:f0+ZpmhfBSS4MhG+4HYseMdJhoeeopbSKbq5Rpeelso= -github.com/invopop/yaml v0.3.1/go.mod h1:PMOp3nn4/12yEZUFfmOuNHJsZToEEOwoWsT+D81KkeA= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= @@ -60,6 +58,10 @@ github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQ github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/oasdiff/yaml v0.0.0-20250309154309-f31be36b4037 h1:G7ERwszslrBzRxj//JalHPu/3yz+De2J+4aLtSRlHiY= +github.com/oasdiff/yaml v0.0.0-20250309154309-f31be36b4037/go.mod h1:2bpvgLBZEtENV5scfDFEtB/5+1M4hkQhDQrccEJ/qGw= +github.com/oasdiff/yaml3 v0.0.0-20250309153720-d2182401db90 h1:bQx3WeLcUWy+RletIKwUIt4x3t8n2SxavmoclizMb8c= +github.com/oasdiff/yaml3 v0.0.0-20250309153720-d2182401db90/go.mod h1:y5+oSEHCPT/DGrS++Wc/479ERge0zTFxaF8PbGKcg2o= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= @@ -87,22 +89,26 @@ github.com/ugorji/go/codec v1.2.7 h1:YPXUKf7fYbp/y8xloBqZOw2qaVggbfwMlI8WM3wZUJ0 github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY= github.com/wk8/go-ordered-map/v2 v2.1.8 h1:5h/BUHu93oj4gIdvHHHGsScSTMijfx5PeYkE/fJgbpc= github.com/wk8/go-ordered-map/v2 v2.1.8/go.mod h1:5nJHM5DyteebpVlHnWMV0rPz6Zp7+xBAnxjb1X5vnTw= +github.com/woodsbury/decimal128 v1.3.0 h1:8pffMNWIlC0O5vbyHWFZAt5yWvWcrHA+3ovIIjVWss0= +github.com/woodsbury/decimal128 v1.3.0/go.mod h1:C5UTmyTjW3JftjUFzOVhC20BEQa2a4ZKOB5I6Zjb+ds= github.com/yalue/merged_fs v1.3.0 h1:qCeh9tMPNy/i8cwDsQTJ5bLr6IRxbs6meakNE5O+wyY= github.com/yalue/merged_fs v1.3.0/go.mod h1:WqqchfVYQyclV2tnR7wtRhBddzBvLVR83Cjw9BKQw0M= -golang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ= -golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc= -golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE= -golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg= +golang.org/x/mod v0.28.0 h1:gQBtGhjxykdjY9YhZpSlZIsbnaE2+PgjfLWUQTnoZ1U= +golang.org/x/mod v0.28.0/go.mod h1:yfB/L0NOf/kmEbXjzCPOx1iK1fRutOydrCMsqRhEBxI= +golang.org/x/net v0.44.0 h1:evd8IRDyfNBMBTTY5XRF1vaZlD+EmWx6x8PkhR04H/I= +golang.org/x/net v0.44.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY= golang.org/x/oauth2 v0.24.0 h1:KTBBxWqUa0ykRPLtV69rRto9TLXcqYkeswu48x/gvNE= golang.org/x/oauth2 v0.24.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= -golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw= -golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= -golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI= -golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng= -golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU= -golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg= -golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s= +golang.org/x/oauth2 v0.27.0 h1:da9Vo7/tDv5RH/7nZDz1eMGS/q1Vv1N/7FCrBhI9I3M= +golang.org/x/oauth2 v0.27.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8= +golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= +golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k= +golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk= +golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4= +golang.org/x/tools v0.37.0 h1:DVSRzp7FwePZW356yEAChSdNcQo6Nsp+fex1SUW09lE= +golang.org/x/tools v0.37.0/go.mod h1:MBN5QPQtLMHVdvsbtarmTNukZDdgwdwlO5qGacAzF0w= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/internal/codegen/pipeline.go b/internal/codegen/pipeline.go index bd4987208..22f4853d2 100644 --- a/internal/codegen/pipeline.go +++ b/internal/codegen/pipeline.go @@ -19,7 +19,7 @@ import ( "github.com/grafana/cog/internal/languages" "github.com/grafana/cog/internal/veneers/rewrite" cogyaml "github.com/grafana/cog/internal/yaml" - "gopkg.in/yaml.v3" + yamlv3 "gopkg.in/yaml.v3" ) type ParametersInterpolator func(input string) string @@ -48,7 +48,7 @@ func PipelineFromFile(file string, opts ...PipelineOption) (*Pipeline, error) { } defer func() { _ = fileHandle.Close() }() - decoder := yaml.NewDecoder(fileHandle) + decoder := yamlv3.NewDecoder(fileHandle) decoder.KnownFields(true) pipeline, err := NewPipeline() diff --git a/internal/jennies/common/codejen_test.go b/internal/jennies/common/codejen_test.go index c6e7bfd35..dc470e158 100644 --- a/internal/jennies/common/codejen_test.go +++ b/internal/jennies/common/codejen_test.go @@ -20,9 +20,7 @@ func (jenny fakeNamedJenny) JennyName() string { func TestPrefixer(t *testing.T) { req := require.New(t) fileContent := []byte("with content") - inputFile := codejen.NewFile("some.file", fileContent) - - resultFile, err := PathPrefixer("/the/prefix")(*inputFile) + resultFile, err := PathPrefixer("/the/prefix")(*codejen.NewFile("some.file", fileContent)) req.NoError(err) req.Equal("/the/prefix/some.file", resultFile.RelativePath) diff --git a/internal/jennies/golang/builder_test.go b/internal/jennies/golang/builder_test.go index 885bafd9e..0e168a5dd 100644 --- a/internal/jennies/golang/builder_test.go +++ b/internal/jennies/golang/builder_test.go @@ -33,7 +33,7 @@ func TestBuilder_Generate(t *testing.T) { test.Run(t, func(tc *testutils.Test[languages.Context]) { var err error - req := require.New(tc) + req := require.New(tc.T) context := tc.UnmarshalJSONInput(testutils.BuildersContextInputFile) context, err = languages.GenerateBuilderNilChecks(language, context) diff --git a/internal/jennies/golang/converter_test.go b/internal/jennies/golang/converter_test.go index 53512332a..5f6826889 100644 --- a/internal/jennies/golang/converter_test.go +++ b/internal/jennies/golang/converter_test.go @@ -33,7 +33,7 @@ func TestConverter_Generate(t *testing.T) { test.Run(t, func(tc *testutils.Test[languages.Context]) { var err error - req := require.New(tc) + req := require.New(tc.T) context := tc.UnmarshalJSONInput(testutils.BuildersContextInputFile) context, err = languages.GenerateBuilderNilChecks(language, context) diff --git a/internal/jennies/golang/rawtypes_test.go b/internal/jennies/golang/rawtypes_test.go index 1bd623731..0a408972e 100644 --- a/internal/jennies/golang/rawtypes_test.go +++ b/internal/jennies/golang/rawtypes_test.go @@ -34,7 +34,7 @@ func TestRawTypes_Generate(t *testing.T) { compilerPasses := New(config).CompilerPasses() test.Run(t, func(tc *testutils.Test[ast.Schema]) { - req := require.New(tc) + req := require.New(tc.T) // We run the compiler passes defined fo Go since without them, we // might not be able to translate some of the IR's semantics into Go. diff --git a/internal/jennies/java/builder_test.go b/internal/jennies/java/builder_test.go index d65ea18bb..b92caf59d 100644 --- a/internal/jennies/java/builder_test.go +++ b/internal/jennies/java/builder_test.go @@ -29,7 +29,7 @@ func TestBuilder_Generate(t *testing.T) { test.Run(t, func(tc *testutils.Test[languages.Context]) { var err error - req := require.New(tc) + req := require.New(tc.T) context := tc.UnmarshalJSONInput(testutils.BuildersContextInputFile) context, err = languages.GenerateBuilderNilChecks(language, context) diff --git a/internal/jennies/java/deserializers_test.go b/internal/jennies/java/deserializers_test.go index 3b11d5f8a..60d951924 100644 --- a/internal/jennies/java/deserializers_test.go +++ b/internal/jennies/java/deserializers_test.go @@ -25,7 +25,7 @@ func TestDeserializers_Generate(t *testing.T) { compilerPasses := New(cfg).CompilerPasses() test.Run(t, func(tc *testutils.Test[ast.Schema]) { - req := require.New(tc) + req := require.New(tc.T) // We run the compiler passes defined fo Java since without them, we // might not be able to translate some of the IR's semantics into Java. diff --git a/internal/jennies/java/rawtypes_test.go b/internal/jennies/java/rawtypes_test.go index 6b6f76830..bcadc524f 100644 --- a/internal/jennies/java/rawtypes_test.go +++ b/internal/jennies/java/rawtypes_test.go @@ -24,7 +24,7 @@ func TestRawTypes_Generate(t *testing.T) { compilerPasses := New(cfg).CompilerPasses() test.Run(t, func(tc *testutils.Test[ast.Schema]) { - req := require.New(tc) + req := require.New(tc.T) // We run the compiler passes defined fo Java since without them, we // might not be able to translate some of the IR's semantics into Java. diff --git a/internal/jennies/java/serializers_test.go b/internal/jennies/java/serializers_test.go index 2eeee9935..40df37011 100644 --- a/internal/jennies/java/serializers_test.go +++ b/internal/jennies/java/serializers_test.go @@ -25,7 +25,7 @@ func TestSerializers_Generate(t *testing.T) { compilerPasses := New(cfg).CompilerPasses() test.Run(t, func(tc *testutils.Test[ast.Schema]) { - req := require.New(tc) + req := require.New(tc.T) // We run the compiler passes defined fo Java since without them, we // might not be able to translate some of the IR's semantics into Java. diff --git a/internal/jennies/jsonschema/schema_test.go b/internal/jennies/jsonschema/schema_test.go index fa8792262..c023ba349 100644 --- a/internal/jennies/jsonschema/schema_test.go +++ b/internal/jennies/jsonschema/schema_test.go @@ -20,7 +20,7 @@ func TestSchema_Generate(t *testing.T) { compilerPasses := New(config).CompilerPasses() test.Run(t, func(tc *testutils.Test[ast.Schema]) { - req := require.New(tc) + req := require.New(tc.T) // We run the compiler passes defined fo JSONSchema since without them, we // might not be able to translate some of the IR's semantics. diff --git a/internal/jennies/openapi/schema_test.go b/internal/jennies/openapi/schema_test.go index 8cb62c1fe..24403ad15 100644 --- a/internal/jennies/openapi/schema_test.go +++ b/internal/jennies/openapi/schema_test.go @@ -20,7 +20,7 @@ func TestSchema_Generate(t *testing.T) { compilerPasses := New(config).CompilerPasses() test.Run(t, func(tc *testutils.Test[ast.Schema]) { - req := require.New(tc) + req := require.New(tc.T) // We run the compiler passes defined fo OpenAPI since without them, we // might not be able to translate some of the IR's semantics. diff --git a/internal/jennies/php/builder_test.go b/internal/jennies/php/builder_test.go index f3e78a5bd..8e3e602ea 100644 --- a/internal/jennies/php/builder_test.go +++ b/internal/jennies/php/builder_test.go @@ -30,7 +30,7 @@ func TestBuilder_Generate(t *testing.T) { test.Run(t, func(tc *testutils.Test[languages.Context]) { var err error - req := require.New(tc) + req := require.New(tc.T) context := tc.UnmarshalJSONInput(testutils.BuildersContextInputFile) context, err = languages.GenerateBuilderNilChecks(language, context) diff --git a/internal/jennies/php/converter_test.go b/internal/jennies/php/converter_test.go index dc605232d..0cb337fe9 100644 --- a/internal/jennies/php/converter_test.go +++ b/internal/jennies/php/converter_test.go @@ -32,7 +32,7 @@ func TestConverter_Generate(t *testing.T) { test.Run(t, func(tc *testutils.Test[languages.Context]) { var err error - req := require.New(tc) + req := require.New(tc.T) context := tc.UnmarshalJSONInput(testutils.BuildersContextInputFile) context, err = languages.GenerateBuilderNilChecks(language, context) diff --git a/internal/jennies/php/rawtypes_test.go b/internal/jennies/php/rawtypes_test.go index 2d949ef4a..0e6a1f1e0 100644 --- a/internal/jennies/php/rawtypes_test.go +++ b/internal/jennies/php/rawtypes_test.go @@ -31,7 +31,7 @@ func TestRawTypes_Generate(t *testing.T) { compilerPasses := New(config).CompilerPasses() test.Run(t, func(tc *testutils.Test[ast.Schema]) { - req := require.New(tc) + req := require.New(tc.T) // We run the compiler passes defined fo Go since without them, we // might not be able to translate some of the IR's semantics into Go. diff --git a/internal/jennies/python/builder_test.go b/internal/jennies/python/builder_test.go index 9e735d4b0..141e85a14 100644 --- a/internal/jennies/python/builder_test.go +++ b/internal/jennies/python/builder_test.go @@ -27,7 +27,7 @@ func TestBuilder_Generate(t *testing.T) { test.Run(t, func(tc *testutils.Test[languages.Context]) { var err error - req := require.New(tc) + req := require.New(tc.T) context := tc.UnmarshalJSONInput(testutils.BuildersContextInputFile) context, err = languages.GenerateBuilderNilChecks(language, context) diff --git a/internal/jennies/python/rawtypes_test.go b/internal/jennies/python/rawtypes_test.go index eb3f97495..f21651bac 100644 --- a/internal/jennies/python/rawtypes_test.go +++ b/internal/jennies/python/rawtypes_test.go @@ -31,7 +31,7 @@ func TestRawTypes_Generate(t *testing.T) { compilerPasses := New(config).CompilerPasses() test.Run(t, func(tc *testutils.Test[ast.Schema]) { - req := require.New(tc) + req := require.New(tc.T) // We run the compiler passes defined fo Python since without them, we // might not be able to translate some of the IR's semantics into Python. diff --git a/internal/jennies/template/template.go b/internal/jennies/template/template.go index 0144d7e3b..0bef117e6 100644 --- a/internal/jennies/template/template.go +++ b/internal/jennies/template/template.go @@ -19,11 +19,12 @@ const recursionMaxNums = 1000 type FuncMap gotemplate.FuncMap func (funcMap FuncMap) MergeWith(other FuncMap) FuncMap { - for k, v := range other { - funcMap[k] = v + fm := gotemplate.FuncMap(funcMap) + for k, v := range gotemplate.FuncMap(other) { + fm[k] = v } - return funcMap + return FuncMap(fm) } type Option func(*Template) error @@ -246,6 +247,8 @@ func (template *Template) builtins() FuncMap { default: panic(fmt.Sprintf("Cannot find first on type %s", tp)) } + + return nil }, "last": func(list any) any { tp := reflect.TypeOf(list).Kind() @@ -259,6 +262,8 @@ func (template *Template) builtins() FuncMap { default: panic(fmt.Sprintf("Cannot find first on type %s", tp)) } + + return nil }, "slice": func(arr interface{}, start int) interface{} { diff --git a/internal/jennies/typescript/builder_test.go b/internal/jennies/typescript/builder_test.go index 8025fda70..1902c297b 100644 --- a/internal/jennies/typescript/builder_test.go +++ b/internal/jennies/typescript/builder_test.go @@ -29,7 +29,7 @@ func TestBuilder_Generate(t *testing.T) { test.Run(t, func(tc *testutils.Test[languages.Context]) { var err error - req := require.New(tc) + req := require.New(tc.T) context := tc.UnmarshalJSONInput(testutils.BuildersContextInputFile) context, err = languages.GenerateBuilderNilChecks(language, context) diff --git a/internal/jennies/typescript/rawtypes_test.go b/internal/jennies/typescript/rawtypes_test.go index 09543f7bd..f33a8cb54 100644 --- a/internal/jennies/typescript/rawtypes_test.go +++ b/internal/jennies/typescript/rawtypes_test.go @@ -25,7 +25,7 @@ func TestRawTypes_Generate(t *testing.T) { compilerPasses := New(config).CompilerPasses() test.Run(t, func(tc *testutils.Test[ast.Schema]) { - req := require.New(tc) + req := require.New(tc.T) // We run the compiler passes defined fo Go since without them, we // might not be able to translate some of the IR's semantics into TS. diff --git a/internal/jsonschema/generator_test.go b/internal/jsonschema/generator_test.go index a4ef99173..243c992ef 100644 --- a/internal/jsonschema/generator_test.go +++ b/internal/jsonschema/generator_test.go @@ -16,7 +16,7 @@ func TestGenerateAST(t *testing.T) { } test.Run(t, func(tc *testutils.Test[string]) { - req := require.New(tc) + req := require.New(tc.T) schemaAst, err := GenerateAST(tc.OpenInput("schema.json"), Config{Package: "grafanatest"}) req.NoError(err) diff --git a/internal/languages/converter.go b/internal/languages/converter.go index 10dbc9116..dff9ac8a7 100644 --- a/internal/languages/converter.go +++ b/internal/languages/converter.go @@ -127,7 +127,7 @@ type Converter struct { func (converter Converter) inputRootPath() ast.Path { return ast.Path{ - { + ast.PathItem{ Identifier: converter.Input.ArgName, Type: converter.Input.TypeRef.AsType(), Root: true, @@ -283,12 +283,12 @@ func (generator *ConverterGenerator) mappingForOption(context Context, converter if mapping.RepeatFor != nil && valueType.IsArray() { valueType = valueType.AsArray().ValueType valuePath = ast.Path{ - {Identifier: mapping.RepeatAs, Type: valueType, Root: true}, + ast.PathItem{Identifier: mapping.RepeatAs, Type: valueType, Root: true}, } } else if mapping.RepeatFor != nil && assignment.Method == ast.IndexAssignment { // index indexPath := ast.Path{ - {Identifier: mapping.RepeatIndex, Type: valueType, Root: true}, + ast.PathItem{Identifier: mapping.RepeatIndex, Type: valueType, Root: true}, } indexType := assignment.Path.Last().Index.Argument.Type argument := generator.argumentForType(context, converter, mapping.RepeatIndex, indexPath, indexType) @@ -296,7 +296,7 @@ func (generator *ConverterGenerator) mappingForOption(context Context, converter // If it isn't a disjunction, we have to put the value in the second argument // value valuePath = ast.Path{ - {Identifier: mapping.RepeatAs, Type: valueType, Root: true}, + ast.PathItem{Identifier: mapping.RepeatAs, Type: valueType, Root: true}, } if !generator.isAssignmentFromDisjunctionStruct(context, assignment) { argument = generator.argumentForType(context, converter, argName, valuePath, valueType) @@ -366,7 +366,7 @@ func (generator *ConverterGenerator) argumentForType(context Context, converter if typeDef.IsArray() { valueAs := ast.Path{ - {Identifier: argName, Type: typeDef.Array.ValueType, Root: true}, + ast.PathItem{Identifier: argName, Type: typeDef.Array.ValueType, Root: true}, } forArg := generator.argumentForType(context, converter, argName+"Value", valueAs, typeDef.Array.ValueType) @@ -384,7 +384,7 @@ func (generator *ConverterGenerator) argumentForType(context Context, converter if typeDef.IsMap() { valueAs := ast.Path{ - {Identifier: argName, Type: typeDef.Map.ValueType, Root: true}, + ast.PathItem{Identifier: argName, Type: typeDef.Map.ValueType, Root: true}, } forArg := generator.argumentForType(context, converter, argName+"Value", valueAs, typeDef.Map.ValueType) diff --git a/internal/openapi/generator_test.go b/internal/openapi/generator_test.go index ba9c8712d..4ad12fbec 100644 --- a/internal/openapi/generator_test.go +++ b/internal/openapi/generator_test.go @@ -17,7 +17,7 @@ func TestGenerateAST(t *testing.T) { } test.Run(t, func(tc *testutils.Test[string]) { - req := require.New(tc) + req := require.New(tc.T) ctx := context.TODO() schemaAst, err := GenerateAST(ctx, getSchemaAsReader(tc), Config{Package: "grafanatest"}) @@ -29,14 +29,14 @@ func TestGenerateAST(t *testing.T) { } func getSchemaAsReader(tc *testutils.Test[string]) *openapi3.T { - tc.Helper() + tc.T.Helper() loader := openapi3.NewLoader() loader.IsExternalRefsAllowed = true oapi, err := loader.LoadFromFile(filepath.Join(tc.RootDir, "schema.json")) if err != nil { - tc.Fatalf("could not open schema: %s", err) + tc.T.Fatalf("could not open schema: %s", err) } return oapi diff --git a/internal/simplecue/generator.go b/internal/simplecue/generator.go index b16718b15..1af214f45 100644 --- a/internal/simplecue/generator.go +++ b/internal/simplecue/generator.go @@ -477,7 +477,7 @@ func (g *generator) declareReference(v cue.Value, defV cue.Value) (ast.Type, err if path.String() != "" { refPkg, err := g.refResolver.PackageForNode(v.Source(), g.schema.Package) if err != nil { - return ast.Type{}, errorWithCueRef(v, err.Error()) + return ast.Type{}, errorWithCueRef(v, "%s", err.Error()) } defValue, err := g.extractDefault(defV) @@ -507,7 +507,7 @@ func (g *generator) declareReference(v cue.Value, defV cue.Value) (ast.Type, err if err != nil { referenceValue, err = v.Int64() if err != nil { - return ast.Type{}, errorWithCueRef(v, err.Error()) + return ast.Type{}, errorWithCueRef(v, "%s", err.Error()) } } @@ -897,7 +897,7 @@ func (g *generator) declareNumberConstraints(v cue.Value) ([]ast.TypeConstraint, op, arg, err := extractOperatorAndArg(part, v.IncompleteKind()) if err != nil { - return nil, errorWithCueRef(v, err.Error()) + return nil, errorWithCueRef(v, "%s", err.Error()) } constraints = append(constraints, ast.TypeConstraint{ diff --git a/internal/simplecue/generator_test.go b/internal/simplecue/generator_test.go index 5c2b11ffc..9e8ce4076 100644 --- a/internal/simplecue/generator_test.go +++ b/internal/simplecue/generator_test.go @@ -24,7 +24,7 @@ func TestGenerateAST(t *testing.T) { } test.Run(t, func(tc *testutils.Test[string]) { - req := require.New(tc) + req := require.New(tc.T) schemaAst, err := GenerateAST(txtarTestToCueInstance(tc), Config{Package: "grafanatest"}) req.NoError(err) @@ -214,7 +214,7 @@ func toCueOverlay(prefix string, vfs fs.FS, overlay map[string]load.Source) erro } func txtarTestToCueInstance(tc *testutils.Test[string]) cue.Value { - tc.Helper() + tc.T.Helper() return bytesToCueValue(tc.T, tc.ReadInput("schema.cue")) } diff --git a/internal/simplecue/utils.go b/internal/simplecue/utils.go index d6860cc9a..e6a63c721 100644 --- a/internal/simplecue/utils.go +++ b/internal/simplecue/utils.go @@ -36,7 +36,7 @@ func dumpsyn(v cue.Value) (string, error) { } func errorWithCueRef(v cue.Value, format string, args ...interface{}) error { - return fmt.Errorf(v.Pos().String() + ": " + fmt.Sprintf(format, args...)) + return fmt.Errorf("%s: %s", v.Pos().String(), fmt.Sprintf(format, args...)) } func selectorLabel(sel cue.Selector) string { @@ -53,6 +53,8 @@ func selectorLabel(sel cue.Selector) string { // fields and definitions because we've not asked the // Fields iterator for those or created them explicitly. panic(fmt.Sprintf("unreachable %v", sel.Type())) + + return "" } // from https://github.com/cue-lang/cue/blob/99e8578ac45e5e7e6ebf25794303bc916744c0d3/encoding/openapi/build.go#L490 diff --git a/internal/testutils/jennytestsuite.go b/internal/testutils/jennytestsuite.go index dfabd7839..c1a79ab50 100644 --- a/internal/testutils/jennytestsuite.go +++ b/internal/testutils/jennytestsuite.go @@ -61,7 +61,7 @@ type GoldenFilesTestSuite[GoldenFileType any] struct { // out files. type Test[GoldenFileType any] struct { // Allow Test to be used as a T. - *testing.T + T *testing.T fileComparator FileComparator @@ -81,10 +81,10 @@ func (t *Test[GoldenFileType]) WriteFile(f *codejen.File) { // WriteJSON marshals and writes the given input to `filename`. func (t *Test[GoldenFileType]) WriteJSON(filename string, input any) { - t.Helper() + t.T.Helper() marshaledIR, err := json.MarshalIndent(input, "", " ") - require.NoError(t, err) + require.NoError(t.T, err) t.WriteFile(&codejen.File{ RelativePath: filename, @@ -101,11 +101,11 @@ func (t *Test[GoldenFileType]) WriteFiles(files codejen.Files) { // UnmarshalJSONInput reads and unmarshals the specified input file. func (t *Test[GoldenFileType]) UnmarshalJSONInput(filename string) GoldenFileType { - t.Helper() + t.T.Helper() var parsed GoldenFileType if err := json.Unmarshal(t.ReadInput(filename), &parsed); err != nil { - t.Fatalf("could not unmarshal input: %s", err) + t.T.Fatalf("could not unmarshal input: %s", err) } return parsed @@ -113,11 +113,11 @@ func (t *Test[GoldenFileType]) UnmarshalJSONInput(filename string) GoldenFileTyp // OpenInput opens the specified input file and returns an [io.Reader] to it. func (t *Test[GoldenFileType]) OpenInput(inputFile string) io.Reader { - t.Helper() + t.T.Helper() reader, err := os.Open(filepath.Join(t.RootDir, inputFile)) if err != nil { - t.Fatalf("could not open input file '%s': %s", inputFile, err) + t.T.Fatalf("could not open input file '%s': %s", inputFile, err) } return reader @@ -125,11 +125,11 @@ func (t *Test[GoldenFileType]) OpenInput(inputFile string) io.Reader { // ReadInput reads the specified input file and its contents. func (t *Test[GoldenFileType]) ReadInput(inputFile string) []byte { - t.Helper() + t.T.Helper() content, err := io.ReadAll(t.OpenInput(inputFile)) if err != nil { - t.Fatalf("could not read input file '%s': %s", inputFile, err) + t.T.Fatalf("could not read input file '%s': %s", inputFile, err) } return content diff --git a/internal/veneers/builder/rules_test.go b/internal/veneers/builder/rules_test.go index 4e1ba6822..842591451 100644 --- a/internal/veneers/builder/rules_test.go +++ b/internal/veneers/builder/rules_test.go @@ -22,7 +22,7 @@ func TestDuplicate(t *testing.T) { }, } originalBuilders := ast.Builders{ - { + ast.Builder{ For: originalObject, Package: "pkg", Name: "Dashboard", @@ -63,7 +63,7 @@ func TestInitialize(t *testing.T) { }, } originalBuilders := ast.Builders{ - { + ast.Builder{ For: originalObject, Package: "pkg", Name: "Dashboard", @@ -90,7 +90,7 @@ func TestInitialize(t *testing.T) { expectedAssignments := []ast.Assignment{ { - Path: ast.Path{{Identifier: "name", Type: ast.String()}}, + Path: ast.Path{ast.PathItem{Identifier: "name", Type: ast.String()}}, Value: ast.AssignmentValue{Constant: "great name, isn't it?"}, Method: ast.DirectAssignment, }, @@ -116,7 +116,7 @@ func TestPromoteOptionsToConstructor(t *testing.T) { }, } originalBuilders := ast.Builders{ - { + ast.Builder{ For: originalObject, Package: "pkg", Name: "Dashboard", diff --git a/internal/veneers/option/actions.go b/internal/veneers/option/actions.go index 7df6d179c..aa540d219 100644 --- a/internal/veneers/option/actions.go +++ b/internal/veneers/option/actions.go @@ -149,7 +149,7 @@ func MapToIndexAction() RewriteAction { newFirstAssignment := option.Assignments[0] newFirstAssignment.Method = ast.IndexAssignment - newFirstAssignment.Path = newFirstAssignment.Path.Append(ast.Path{{ + newFirstAssignment.Path = newFirstAssignment.Path.Append(ast.Path{ast.PathItem{ Index: &ast.PathIndex{Argument: &newFirstArg}, Type: option.Args[0].Type.Map.ValueType, }}) diff --git a/internal/veneers/option/actions_test.go b/internal/veneers/option/actions_test.go index 4a3948ebf..238c1a576 100644 --- a/internal/veneers/option/actions_test.go +++ b/internal/veneers/option/actions_test.go @@ -36,7 +36,7 @@ func TestUnfoldBooleanAction(t *testing.T) { }, Assignments: []ast.Assignment{ ast.ArgumentAssignment(ast.Path{ - {Identifier: "editable", Type: ast.Bool()}, + ast.PathItem{Identifier: "editable", Type: ast.Bool()}, }, ast.Argument{Name: "editable", Type: ast.Bool()}), }, } @@ -72,7 +72,7 @@ func TestUnfoldBooleanAction_onNonBooleanDoesNothing(t *testing.T) { }, Assignments: []ast.Assignment{ ast.ArgumentAssignment(ast.Path{ - {Identifier: "tags", Type: ast.NewArray(ast.String())}, + ast.PathItem{Identifier: "tags", Type: ast.NewArray(ast.String())}, }, ast.Argument{Name: "tags", Type: ast.NewArray(ast.String())}), }, } @@ -100,7 +100,7 @@ func TestDisjunctionAsOptionsAction_withDisjunction(t *testing.T) { }, Assignments: []ast.Assignment{ ast.ArgumentAssignment(ast.Path{ - {Identifier: "panel", Type: disjunctionType}, + ast.PathItem{Identifier: "panel", Type: disjunctionType}, }, ast.Argument{Name: "tags", Type: disjunctionType}), }, } @@ -135,10 +135,10 @@ func TestDisjunctionAsOptionsAction_withDisjunctionAsSecondArg(t *testing.T) { }, Assignments: []ast.Assignment{ ast.ArgumentAssignment(ast.Path{ // This assignment doesn't make sense, but for the purpose of this test it doesn't matter. - {Identifier: "key", Type: ast.String()}, + ast.PathItem{Identifier: "key", Type: ast.String()}, }, ast.Argument{Name: "key", Type: ast.String()}), ast.ArgumentAssignment(ast.Path{ - {Identifier: "panel", Type: disjunctionType}, + ast.PathItem{Identifier: "panel", Type: disjunctionType}, }, ast.Argument{Name: "tags", Type: disjunctionType}), }, } @@ -189,7 +189,7 @@ func TestDisjunctionAsOptionsAction_withDisjunctionStruct(t *testing.T) { }, Assignments: []ast.Assignment{ ast.ArgumentAssignment(ast.Path{ - {Identifier: "panel", Type: ref}, + ast.PathItem{Identifier: "panel", Type: ref}, }, ast.Argument{Name: "tags", Type: ref}), }, } @@ -235,10 +235,10 @@ func TestDisjunctionAsOptionsAction_withDisjunctionStructAsSecondArg(t *testing. }, Assignments: []ast.Assignment{ ast.ArgumentAssignment(ast.Path{ // This assignment doesn't make sense, but for the purpose of this test it doesn't matter. - {Identifier: "key", Type: ast.String()}, + ast.PathItem{Identifier: "key", Type: ast.String()}, }, ast.Argument{Name: "key", Type: ast.String()}), ast.ArgumentAssignment(ast.Path{ - {Identifier: "panel", Type: ref}, + ast.PathItem{Identifier: "panel", Type: ref}, }, ast.Argument{Name: "tags", Type: ref}), }, } @@ -285,7 +285,7 @@ func TestStructFieldsAsOptionsAction_withRefArg(t *testing.T) { }, Assignments: []ast.Assignment{ ast.ArgumentAssignment(ast.Path{ - {Identifier: "time", Type: ref}, + ast.PathItem{Identifier: "time", Type: ref}, }, ast.Argument{Name: "editable", Type: ref}), }, } @@ -314,7 +314,7 @@ func TestArrayToAppendAction_withNoArgument(t *testing.T) { option := ast.Option{ Assignments: []ast.Assignment{ ast.ConstantAssignment(ast.Path{ - {Identifier: "editable", Type: ast.Bool()}, + ast.PathItem{Identifier: "editable", Type: ast.Bool()}, }, true), }, } @@ -332,7 +332,7 @@ func TestArrayToAppendAction_withNonArrayArgument(t *testing.T) { }, Assignments: []ast.Assignment{ ast.ArgumentAssignment(ast.Path{ - {Identifier: "editable", Type: ast.Bool()}, + ast.PathItem{Identifier: "editable", Type: ast.Bool()}, }, ast.Argument{Name: "editable", Type: ast.Bool()}), }, } @@ -351,7 +351,7 @@ func TestArrayToAppendAction_withArrayArgument(t *testing.T) { }, Assignments: []ast.Assignment{ ast.ArgumentAssignment(ast.Path{ - {Identifier: "tags", Type: ast.NewArray(ast.String())}, + ast.PathItem{Identifier: "tags", Type: ast.NewArray(ast.String())}, }, ast.Argument{Name: "tags", Type: ast.NewArray(ast.String())}), }, } @@ -364,7 +364,7 @@ func TestArrayToAppendAction_withArrayArgument(t *testing.T) { Assignments: []ast.Assignment{ ast.ArgumentAssignment( ast.Path{ - {Identifier: "tags", Type: ast.NewArray(ast.String())}, + ast.PathItem{Identifier: "tags", Type: ast.NewArray(ast.String())}, }, ast.Argument{Name: "tag", Type: ast.String()}, ast.Method(ast.AppendAssignment), @@ -384,7 +384,7 @@ func TestStructFieldsAsArgumentsAction_withNoArgument(t *testing.T) { option := ast.Option{ Assignments: []ast.Assignment{ ast.ConstantAssignment(ast.Path{ - {Identifier: "editable", Type: ast.Bool()}, + ast.PathItem{Identifier: "editable", Type: ast.Bool()}, }, true), }, } @@ -402,7 +402,7 @@ func TestStructFieldsAsArgumentsAction_withNonStructArgument(t *testing.T) { }, Assignments: []ast.Assignment{ ast.ArgumentAssignment(ast.Path{ - {Identifier: "tags", Type: ast.NewArray(ast.String())}, + ast.PathItem{Identifier: "tags", Type: ast.NewArray(ast.String())}, }, ast.Argument{Name: "tags", Type: ast.NewArray(ast.String())}), }, } @@ -427,7 +427,7 @@ func TestStructFieldsAsArgumentsAction_withStructArgument(t *testing.T) { }, Assignments: []ast.Assignment{ ast.ArgumentAssignment(ast.Path{ - {Identifier: "time", Type: structType}, + ast.PathItem{Identifier: "time", Type: structType}, }, ast.Argument{Name: "time", Type: structType}), }, } @@ -440,16 +440,16 @@ func TestStructFieldsAsArgumentsAction_withStructArgument(t *testing.T) { }, Assignments: []ast.Assignment{ ast.ArgumentAssignment(ast.Path{ - {Identifier: "time", Type: structType}, - {Identifier: "from", Type: ast.String()}, + ast.PathItem{Identifier: "time", Type: structType}, + ast.PathItem{Identifier: "from", Type: ast.String()}, }, ast.Argument{Name: "from", Type: ast.String()}), ast.ArgumentAssignment(ast.Path{ - {Identifier: "time", Type: structType}, - {Identifier: "to", Type: ast.String()}, + ast.PathItem{Identifier: "time", Type: structType}, + ast.PathItem{Identifier: "to", Type: ast.String()}, }, ast.Argument{Name: "to", Type: ast.String()}), ast.ConstantAssignment(ast.Path{ - {Identifier: "time", Type: structType}, - {Identifier: "type", Type: ast.String(ast.Value("time"))}, + ast.PathItem{Identifier: "time", Type: structType}, + ast.PathItem{Identifier: "type", Type: ast.String(ast.Value("time"))}, }, "time"), }, VeneerTrail: []string{"StructFieldsAsArguments"}, @@ -476,7 +476,7 @@ func TestStructFieldsAsArgumentsAction_withArrayOfStructArgument(t *testing.T) { }, Assignments: []ast.Assignment{ ast.ArgumentAssignment(ast.Path{ - {Identifier: "time", Type: ast.NewArray(structType)}, + ast.PathItem{Identifier: "time", Type: ast.NewArray(structType)}, }, ast.Argument{Name: "time", Type: structType}), }, } @@ -490,27 +490,27 @@ func TestStructFieldsAsArgumentsAction_withArrayOfStructArgument(t *testing.T) { Assignments: []ast.Assignment{ { Method: ast.AppendAssignment, - Path: ast.Path{{Identifier: "time", Type: ast.NewArray(structType)}}, + Path: ast.Path{ast.PathItem{Identifier: "time", Type: ast.NewArray(structType)}}, Value: ast.AssignmentValue{ Envelope: &ast.AssignmentEnvelope{ Type: structType, Values: []ast.EnvelopeFieldValue{ { - Path: ast.Path{{Identifier: "from", Type: ast.String()}}, + Path: ast.Path{ast.PathItem{Identifier: "from", Type: ast.String()}}, Value: ast.AssignmentValue{Argument: &ast.Argument{ Name: "from", Type: ast.String(), }}, }, { - Path: ast.Path{{Identifier: "to", Type: ast.String()}}, + Path: ast.Path{ast.PathItem{Identifier: "to", Type: ast.String()}}, Value: ast.AssignmentValue{Argument: &ast.Argument{ Name: "to", Type: ast.String(), }}, }, { - Path: ast.Path{{Identifier: "type", Type: ast.String(ast.Value("time"))}}, + Path: ast.Path{ast.PathItem{Identifier: "type", Type: ast.String(ast.Value("time"))}}, Value: ast.AssignmentValue{Constant: "time"}, }, }, diff --git a/internal/veneers/rewrite/rewrite_test.go b/internal/veneers/rewrite/rewrite_test.go index e524b74e2..5db4b953c 100644 --- a/internal/veneers/rewrite/rewrite_test.go +++ b/internal/veneers/rewrite/rewrite_test.go @@ -51,7 +51,7 @@ func testData() []rewriteTestCase { }, outputBuilders: ast.Builders{ dashboardBuilder(), - { + ast.Builder{ Package: "test_pkg", For: ast.NewObject( "test_pkg", @@ -69,7 +69,7 @@ func testData() []rewriteTestCase { }, Assignments: []ast.Assignment{ ast.ArgumentAssignment( - ast.Path{{Identifier: "id", Type: ast.NewScalar(ast.KindInt64)}}, + ast.Path{ast.PathItem{Identifier: "id", Type: ast.NewScalar(ast.KindInt64)}}, ast.Argument{Name: "id", Type: ast.NewScalar(ast.KindInt64)}, ), }, @@ -81,7 +81,7 @@ func testData() []rewriteTestCase { }, Assignments: []ast.Assignment{ ast.ArgumentAssignment( - ast.Path{{Identifier: "type", Type: ast.String()}}, + ast.Path{ast.PathItem{Identifier: "type", Type: ast.String()}}, ast.Argument{Name: "type", Type: ast.String()}, ), }, @@ -102,7 +102,7 @@ func testData() []rewriteTestCase { ), }, outputBuilders: ast.Builders{ - { + ast.Builder{ Package: "test_pkg", For: ast.NewObject( "test_pkg", @@ -120,7 +120,7 @@ func testData() []rewriteTestCase { }, Assignments: []ast.Assignment{ ast.ArgumentAssignment( - ast.Path{{Identifier: "uid", Type: ast.String()}}, + ast.Path{ast.PathItem{Identifier: "uid", Type: ast.String()}}, ast.Argument{Name: "uid", Type: ast.String()}, ), }, @@ -152,7 +152,7 @@ func dashboardBuilder() ast.Builder { }, Assignments: []ast.Assignment{ ast.ArgumentAssignment( - ast.Path{{Identifier: "uid", Type: ast.String()}}, + ast.Path{ast.PathItem{Identifier: "uid", Type: ast.String()}}, ast.Argument{Name: "uid", Type: ast.String()}, ), }, @@ -164,7 +164,7 @@ func dashboardBuilder() ast.Builder { }, Assignments: []ast.Assignment{ ast.ArgumentAssignment( - ast.Path{{Identifier: "title", Type: ast.String()}}, + ast.Path{ast.PathItem{Identifier: "title", Type: ast.String()}}, ast.Argument{Name: "title", Type: ast.String()}, ), }, @@ -192,7 +192,7 @@ func panelBuilder() ast.Builder { }, Assignments: []ast.Assignment{ ast.ArgumentAssignment( - ast.Path{{Identifier: "id", Type: ast.NewScalar(ast.KindInt64)}}, + ast.Path{ast.PathItem{Identifier: "id", Type: ast.NewScalar(ast.KindInt64)}}, ast.Argument{Name: "id", Type: ast.NewScalar(ast.KindInt64)}, ), }, @@ -204,7 +204,7 @@ func panelBuilder() ast.Builder { }, Assignments: []ast.Assignment{ ast.ArgumentAssignment( - ast.Path{{Identifier: "type", Type: ast.String()}}, + ast.Path{ast.PathItem{Identifier: "type", Type: ast.String()}}, ast.Argument{Name: "type", Type: ast.String()}, ), }, diff --git a/internal/yaml/compiler.go b/internal/yaml/compiler.go index f930b3f1d..e4bc725f3 100644 --- a/internal/yaml/compiler.go +++ b/internal/yaml/compiler.go @@ -5,7 +5,7 @@ import ( "os" "github.com/grafana/cog/internal/ast/compiler" - "gopkg.in/yaml.v3" + yamlv3 "gopkg.in/yaml.v3" ) type Compiler struct { @@ -51,7 +51,7 @@ func (loader *CompilerLoader) LoadAll(readers []io.Reader) (compiler.Passes, err func (loader *CompilerLoader) Load(reader io.Reader) (compiler.Passes, error) { compilerConfig := &Compiler{} - decoder := yaml.NewDecoder(reader) + decoder := yamlv3.NewDecoder(reader) decoder.KnownFields(true) if err := decoder.Decode(&compilerConfig); err != nil { diff --git a/internal/yaml/converter_config.go b/internal/yaml/converter_config.go index 57a79416b..fbbe1f67b 100644 --- a/internal/yaml/converter_config.go +++ b/internal/yaml/converter_config.go @@ -3,7 +3,7 @@ package yaml import ( "os" - "gopkg.in/yaml.v3" + yamlv3 "gopkg.in/yaml.v3" ) type ConverterConfig struct { @@ -35,7 +35,7 @@ func (c ConverterConfigReader) ReadConverterConfig(filename string) (ConverterCo defer f.Close() - decoder := yaml.NewDecoder(f) + decoder := yamlv3.NewDecoder(f) decoder.KnownFields(true) var config ConverterConfig diff --git a/internal/yaml/veneers.go b/internal/yaml/veneers.go index c17b03b8f..758ff820c 100644 --- a/internal/yaml/veneers.go +++ b/internal/yaml/veneers.go @@ -8,7 +8,7 @@ import ( "github.com/grafana/cog/internal/veneers/builder" "github.com/grafana/cog/internal/veneers/option" "github.com/grafana/cog/internal/veneers/rewrite" - "gopkg.in/yaml.v3" + yamlv3 "gopkg.in/yaml.v3" ) type Veneers struct { @@ -52,7 +52,7 @@ func (loader *VeneersLoader) load(reader io.Reader) (rewrite.LanguageRules, erro veneers := &Veneers{} - decoder := yaml.NewDecoder(reader) + decoder := yamlv3.NewDecoder(reader) decoder.KnownFields(true) if err := decoder.Decode(&veneers); err != nil { diff --git a/requirements.txt b/requirements.txt index 8fbc46c94..3ba1ca6e7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -30,10 +30,10 @@ python-dateutil==2.9.0.post0 PyYAML==6.0.2 pyyaml_env_tag==0.1 regex==2024.5.15 -requests==2.32.3 +requests==2.32.4 six==1.16.0 toml==0.10.2 typing_extensions==4.12.2 -urllib3==2.2.2 +urllib3==2.5.0 watchdog==4.0.1 zipp==3.19.2