cue-lang / cue

The home of the CUE language! Validate and define text-based and dynamic configuration
https://cuelang.org
Apache License 2.0
5.01k stars 283 forks source link

output differs after trimming #1547

Open yujunz opened 2 years ago

yujunz commented 2 years ago

What version of CUE are you using (cue version)?

❯ cue version
cue version v0.4.2 darwin/amd64

Does this issue reproduce with the latest release?

Yes

What did you do?

❯ cue trim

What did you expect to see?

cue files trimmed

What did you see instead?

-                     cacert: "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
+                     cacert?: "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
...
Aborting trim, output differs after trimming. This is a bug! Use -i to force trim.
yujunz commented 2 years ago

A simplified case to reproduce similar issue.

❯ cat <<HERE >foo.cue
package foo

base: helm: values: cacert: "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
base: #HelmRelease

#HelmRelease: {
        helm: {
                #WithHelmUtils
                values: {...}
        }
}

#HelmUtils: {
        cacert?: string | *"/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
}

#WithHelmUtils: {
        values: {
                utils
                ...
        }
        utils: #HelmUtils
}

HERE

❯ cue trim
  {
      base: {
          helm: {
              values: {
-                 cacert: "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
              }
              utils: {
-                 cacert?: "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
              }
          }
      }
      #HelmRelease: {
          helm: {
              values: {
-                 cacert?: "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
              }
              utils: {
-                 cacert?: "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
              }
          }
      }
      #HelmUtils: {
-         cacert?: "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
      }
      #WithHelmUtils: {
          values: {
-             cacert?: "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
          }
          utils: {
-             cacert?: "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
          }
      }
  }
Aborting trim, output differs after trimming. This is a bug! Use -i to force trim.
You can file a bug here: https://cuelang.org/issues/new?assignees=&labels=NeedsInvestigation&template=bug_report.md&title=