-
Notifications
You must be signed in to change notification settings - Fork 53
Remove the direct depedency on gopkg.in/yaml.v2
.
#1027
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* `gopkg.in/yaml.v2` was a direct dependency only because one file `internal/component/configmap/configmap.go` used it to marshal yaml. This direct depdendency is removed by replacing it with the package `sigs.k8s.io/yaml` used everywhere else in the repository to maintain consistency. * Replace `yaml` with `json` struct tags since `sigs.k8s.io/yaml` first marshals the `struct` to a json, and then yaml. When `yaml` tags are specified, the specified tags are not used when marshalling to `json`, which causes the intermediate json values to have the keys as the `struct` field names, causing the final yaml also to have the struct field names as the keys.
seshachalam-yv
approved these changes
Mar 12, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, @renormalize, for replacing the direct dependency with sigs.k8s.io/yaml
!
/lgtm
/approve
This comment was marked as outdated.
This comment was marked as outdated.
* The general convention for fields which are `omitempty` is to make them pointers. If not, the fields will be their zero values which is not the intended marshalled output.
seshachalam-yv
approved these changes
Mar 12, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
area/dev-productivity
Developer productivity related (how to improve development)
dependencies
Pull requests that update a dependency file
kind/cleanup
Something that is not needed anymore and can be cleaned up
needs/ok-to-test
Needs approval for testing (check PR in detail before setting this label because PR is run on CI/CD)
reviewed/lgtm
Has approval for merging
size/s
Size of pull request is small (see gardener-robot robot/bots/size.py)
status/closed
Issue is closed (either delivered or triaged)
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
How to categorize this PR?
/area dev-productivity
/kind cleanup
What this PR does / why we need it:
gopkg.in/yaml.v2
was a direct dependency only because one fileinternal/component/configmap/configmap.go
used it to marshal yaml. This direct depdendency is removed by replacing it with the packagesigs.k8s.io/yaml
used everywhere else in the repository to maintain consistency.Replace
yaml
withjson
struct tags sincesigs.k8s.io/yaml
first marshals thestruct
to a json, and then yaml. Whenyaml
tags are specified, the specified tags are not used when marshalling tojson
, which causes the intermediate json values to have the keys as thestruct
field names, causing the final yaml also to have the struct field names as the keys.Make
omitempty
fields pointers. The general convention for fields which areomitempty
is to make them pointers. If not, the fields will be their zero values which is not the intended marshalled output.Replace C-like for loops with range for loops for readability.
Release note: