Skip to content

remove "sigs.k8s.io/yaml" dependency - #340

Draft
thaJeztah wants to merge 2 commits into
cncf-tags:mainfrom
thaJeztah:migrate_yaml_step2
Draft

remove "sigs.k8s.io/yaml" dependency#340
thaJeztah wants to merge 2 commits into
cncf-tags:mainfrom
thaJeztah:migrate_yaml_step2

Conversation

@thaJeztah

Copy link
Copy Markdown
Contributor

remove "sigs.k8s.io/yaml" dependency

Use go.yaml.in/yaml/v3 for both marshaling and unmarshaling CDI specs,
and drop the sigs.k8s.io/yaml dependency.

The Kubernetes YAML implementation converts YAML to JSON before decoding,
which is useful for Kubernetes APIs where JSON semantics are part of the API
contract. CDI does not require that intermediate representation, and its spec
types already provide YAML tags matching their JSON representation.

Use Decoder.KnownFields(true) to retain strict rejection of unknown fields.
yaml.v3 also rejects duplicate mapping keys, preserving the strictness relied
on from sigs.k8s.io/yaml.UnmarshalStrict.

Keep the existing behavior of decoding only the first YAML document rather
than introducing additional validation for trailing documents.

The gopkg.in/yaml.v3 module has been deprecated and is now archived.
Maintenance is continued in the go.yaml.in/yaml/v3 module.

Update to the latest version of go.yaml.in/yaml/v3, which now has
zero dependencies. The old gopkg.in/yaml.v3 is still present as an
indirect dependency (through github.com/stretchr/testify), but only
used in test-code, and this should eventually go away.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Use go.yaml.in/yaml/v3 for both marshaling and unmarshaling CDI specs,
and drop the sigs.k8s.io/yaml dependency.

The Kubernetes YAML implementation converts YAML to JSON before decoding,
which is useful for Kubernetes APIs where JSON semantics are part of the API
contract. CDI does not require that intermediate representation, and its spec
types already provide YAML tags matching their JSON representation.

Use Decoder.KnownFields(true) to retain strict rejection of unknown fields.
yaml.v3 also rejects duplicate mapping keys, preserving the strictness relied
on from sigs.k8s.io/yaml.UnmarshalStrict.

Keep the existing behavior of decoding only the first YAML document rather
than introducing additional validation for trailing documents.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant