Skip to content
This repository has been archived by the owner on Nov 18, 2021. It is now read-only.

cmd/cue: import should ignore null documents #1039

Closed
uhthomas opened this issue Jun 3, 2021 · 4 comments
Closed

cmd/cue: import should ignore null documents #1039

uhthomas opened this issue Jun 3, 2021 · 4 comments
Labels
NeedsInvestigation Triage Requires triage/attention

Comments

@uhthomas
Copy link

uhthomas commented Jun 3, 2021

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

$ cue version
cue version v0.4.0 linux/amd64

Does this issue reproduce with the latest release?

Yes.

What did you do?

Run cue import --list test.yaml against a YAML file with null documents:

---
some_key: some value

---

---
some_other_key: some other value

What did you expect to see?

Two CUE objects.

What did you see instead?

Three CUE objects, one being null.

[{
        some_key: "some value"
}, null, {
        some_other_key: "some other value"
}]
@uhthomas
Copy link
Author

uhthomas commented Jun 3, 2021

I hit this quite a lot when importing Kubernetes generated manifests, like Reloader's manifest.

The output ends up being lots of null, null, null.

Not really sure if this is a bug or a feature request as I can imagine scenarios where this behavior could be desired.

@uhthomas
Copy link
Author

uhthomas commented Jun 3, 2021

Not sure if this should be a separate issue -- the imported CUE definitions get really weird with comments.

This is the output for the example manifest I linked earlier:

// <snip>
}, null, null, null, {
	// Source: reloader/templates/role.yaml

	// Source: reloader/templates/rolebinding.yaml

	// Source: reloader/templates/service.yaml

	// Source: reloader/templates/serviceaccount.yaml

	apiVersion: "v1"
// </snip>

All of the comments from the "null" documents get shoved into the proceeding object.

Interestingly, if there is no proceeding object, these comments are just dropped entirely.

---
some_key: some value

---

# some comment

---

# some other comment

---
[{
        some_key: "some value"
}, null, null, null]

@myitcv
Copy link
Contributor

myitcv commented Jun 3, 2021

Not really sure if this is a bug or a feature request as I can imagine scenarios where this behavior could be desired.

It's not clear to me from the Yaml spec that what CUE does here is wrong, indeed quite the opposite:

https://yaml.org/spec/1.2/spec.html#id2786563

So I would instead consider this a feature request. With the query syntax (#165) something like this could be quite natural/easy to represent too.

Not sure if this should be a separate issue -- the imported CUE definitions get really weird with comments.

Comments should indeed be a separate issue (I understand from @mpvl comments are a "challenge" when it comes to Yaml).

Marking as "Triage" for discussion with @mpvl in any case.

@cueckoo
Copy link

cueckoo commented Jul 3, 2021

This issue has been migrated to cue-lang/cue#1039.

For more details about CUE's migration to a new home, please see cue-lang/cue#1078.

@cueckoo cueckoo closed this as completed Jul 3, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
NeedsInvestigation Triage Requires triage/attention
Projects
None yet
Development

No branches or pull requests

3 participants