From d8742c13dce6f5f02ff67740da2efe1f94a2ed0e Mon Sep 17 00:00:00 2001 From: Roger Peppe Date: Wed, 12 Jun 2024 10:53:25 +0100 Subject: [PATCH] cmd/cue: parse module.cue file in non-strict mode MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We do not want to prevent editing a module.cue file when the strictness criteria are not met. Fixes #3211. Signed-off-by: Roger Peppe Change-Id: I31991846db9a1815eeaa4cc41720e0943e74e4a0 Reviewed-on: https://review.gerrithub.io/c/cue-lang/cue/+/1196180 TryBot-Result: CUEcueckoo Reviewed-by: Daniel Martí Unity-Result: CUE porcuepine Reviewed-on: https://review.gerrithub.io/c/cue-lang/cue/+/1196234 Reviewed-by: Paul Jolly --- cmd/cue/cmd/modedit.go | 2 +- .../testdata/script/modedit_nonstrict.txtar | 20 ++++++++++++++----- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/cmd/cue/cmd/modedit.go b/cmd/cue/cmd/modedit.go index 0ead266d7c4..1844d3a1336 100644 --- a/cmd/cue/cmd/modedit.go +++ b/cmd/cue/cmd/modedit.go @@ -77,7 +77,7 @@ func (c *modEditCmd) run(cmd *Command, args []string) error { if err != nil { return err } - mf, err := modfile.Parse(data, modPath) + mf, err := modfile.ParseNonStrict(data, modPath) if err != nil { return err } diff --git a/cmd/cue/cmd/testdata/script/modedit_nonstrict.txtar b/cmd/cue/cmd/testdata/script/modedit_nonstrict.txtar index 5edadca94cf..f82db93cd63 100644 --- a/cmd/cue/cmd/testdata/script/modedit_nonstrict.txtar +++ b/cmd/cue/cmd/testdata/script/modedit_nonstrict.txtar @@ -1,12 +1,22 @@ # This test checks that cue mod edit works OK even when the # module file doesn't conform to the strict parsing. -# TODO fix this to pass. -! exec cue mod edit --source self -cmpenv stderr want-stderr +exec cue mod edit --source self +cmp cue.mod/module.cue want-module -- cue.mod/module.cue -- module: "main.org" deps: "foo.com": v: "v1.2.3" language: version: "v0.9.0-alpha.0" --- want-stderr -- -invalid module.cue file $WORK${/}cue.mod${/}module.cue: no major version in "foo.com" +-- want-module -- +module: "main.org" +language: { + version: "v0.9.0-alpha.0" +} +source: { + kind: "self" +} +deps: { + "foo.com": { + v: "v1.2.3" + } +}