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鈥檒l occasionally send you account related emails.
Already on GitHub? Sign in to your account
When struct keys are not strings, should error, not panic #764
Comments
This beheviour happens on words like: on, off, true, false used as yaml keys. |
@hmarko thanks for reporting this! Panicking is not great 馃槩 Treating To be able to use the key #@data/values
---
general:
notifications:
recipients:
- admin@test.com
"on":
- any |
Thank you ! I think it worth taking care of it to prevent nasty panics from happening. tools like ytt should template this anyway (what will happen if I want to change true to false as per the yaml spec using ytt ?) |
I agree, the panic isn't right. However, I think the right behavior according to spec is to treat your data values like so: #@data/values
---
general:
notifications:
recipients:
- admin@test.com
true: #! note the boolean
- any
I am not sure I follow you here. Can you expound and maybe provide an example? |
Ok, I think I got it now :-) |
@hmarko it's not you, this was a "good intention, bad impact" idea that we actually had intended to "fix". But that work has not yet been prioritized by the maintainers. See #407. What remains, tho, is the better handling. As @mamachanko noted above: panics are suitable for when something goes terribly wrong internally. When the problem arises directly from our inputs, we should error out gracefully with a helpful + actionable message. 馃憤馃徎 I'm going to adjust this issue to capture that scope. |
When a non-string value has been provided for an key in a struct,
ytt
should report an errorrather than panic (see below).
馃憞馃徎 original report 馃憞馃徎
when using
on
as a key in yaml (see below example) ytt panics. changing it to anything else solves it (just change the on: to on1: for example)config.yaml:
data.yaml:
ytt panics with the following stack trace:
Environment:
ytt version 0.43.0
CentOS Linux release 7.8.2003 (Core)
The text was updated successfully, but these errors were encountered: