-
Notifications
You must be signed in to change notification settings - Fork 2.3k
fix: Allow patches with empty files with multiple newlines or comments #5771
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
fix: Allow patches with empty files with multiple newlines or comments #5771
Conversation
This PR has multiple commits, and the default merge method is: merge. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
Welcome @jchanam! |
Hi @jchanam. Thanks for your PR. I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
Hi @stormqueen1990 @varshaprasad96, Could I get some help in getting this approved? Thank you! |
Hi there, @jchanam! I am taking a look at this and got a bit confused with the comment you made in the PR description about the tests. Do you mean that tests are currently failing locally? |
/test all |
Hi @stormqueen1990 , Yes, I meant that. It looks like there are a test checking if the input is not empty, but the goal of my code is testing specifically that, as it should not fail. If we add a file to kustomize that is empty, it should simply not produce any output, instead of failing. Also, now the tests here say that there's a diff found on the file I've modified. How can I fix that or change extra code so the tests continue? Thank you! |
/test all |
Signed-off-by: Julio Chana <[email protected]>
@stormqueen1990 Sorry for the late response. I think I was able to follow your guidance and fix the tests. |
/retest |
@jchanam: Cannot trigger testing until a trusted user reviews the PR and leaves an In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
Hi there, @jchanam! Thanks for updating this! |
/retest |
@stormqueen1990 looks like the tests were not run. Could you please force them in any way? thank you! |
@stormqueen1990 Could you please help me with the linter errors?
I don't understand why it's complaining when I've followed the same structure as for other tests |
Hi @jchanam, our linter requires test helper functions to have an invocation to As for the tests, |
Signed-off-by: Julio Chana <[email protected]>
@stormqueen1990 Thank you so much for the explanation! I've just added them and pushed the changes. |
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.
/lgtm
@stormqueen1990 what is the following step now that the PR passed all the tests? Could this PR be merged? |
Hi there, @jchanam! The next step is the review and then approval by a maintainer (I am just a reviewer). Once one of the maintainers approve this pull request using |
Hi! I'm still waiting for any maintainer to approve and merge this. Is there any way to ping anyone so they can check this? |
@koba1t or @varshaprasad96: could you please take a look at this PR when you get a chance? |
/ok-to-test |
/assign |
Hi! Could we have this PR merged please? |
Thanks @jchanam /lgtm |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: jchanam, koba1t The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
This MR contains the following updates: | Package | Update | Change | |---|---|---| | [kubernetes-sigs/kustomize](https://github.com/kubernetes-sigs/kustomize) | minor | `v5.6.0` -> `v5.7.0` | MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot). **Proposed changes to behavior should be submitted there as MRs.** --- ### Release Notes <details> <summary>kubernetes-sigs/kustomize (kubernetes-sigs/kustomize)</summary> ### [`v5.7.0`](https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize/v5.7.0) [Compare Source](kubernetes-sigs/kustomize@kustomize/v5.6.0...kustomize/v5.7.0) #### Feature kubernetes-sigs/kustomize#5630: Add static value source for replacement kubernetes-sigs/kustomize#5921: feat: Add images suport for Image Volumes kubernetes-sigs/kustomize#5771: fix: Allow patches with empty files with multiple newlines or comments kubernetes-sigs/kustomize#5865: feat(helm): allow the use of devel alias for helmcharts #### fix kubernetes-sigs/kustomize#5846: fix: Get version from the BuildInfo.Main.Version if not found in deps and build flag kubernetes-sigs/kustomize#5859: fix: Don't panic on multiple $patch: delete strategic merge patches in a single patch file kubernetes-sigs/kustomize#5877: fix: make private one field in replacements transformer struct that had a missing JSON tag #### Dependencies [#​5847](kubernetes-sigs/kustomize#5847): replace deplecated package github.com/google/shlex with github.com/carapace-sh/carapace-shlex [#​5873](kubernetes-sigs/kustomize#5873): Bump to github.com/spf13/viper v1.20.0 [#​5931](kubernetes-sigs/kustomize#5931): Drop usage of forked copies of goyaml.v2 and goyaml.v3 #### chore kubernetes-sigs/kustomize#5882: Set Git messages to English for TestRemoteLoad\_LocalProtocol [#​5934](kubernetes-sigs/kustomize#5934): Update kyaml to v0.20.0 [#​5935](kubernetes-sigs/kustomize#5935): Update cmd/config to v0.20.0 [#​5936](kubernetes-sigs/kustomize#5936): Update api to v0.20.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this MR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box --- This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42Mi4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90Il19-->
kubernetes-sigs#5771) * fix: Add test, when an empty patch file is given, it should not fail * fix: Add code so there's no error given if an empty file is given as a patch * chore: Generate plugin with pluginator * chore: fix tests Signed-off-by: Julio Chana <[email protected]> * Add t.helper() at start of test function Signed-off-by: Julio Chana <[email protected]> --------- Signed-off-by: Julio Chana <[email protected]>
Fixes #5487
Right now, when a file is empty, the patches given by the resmap (sm patches) or the jsonpatch is nil. When the file has only comments in it (virtually empty if we think about changes to be made) or multiple newlines, the result given by said functions is an empty slice.
I've changed the check for when we can't allow to have a patch that is valid for both SM and JSON, so it allows empty changes (both nil or empty slices).
Extra comments:
I'll be more than happy to work on these two with some help or guidance.