When making changes to app.yaml (to add a plugin for instance), it is easy to include extra space, forget a dash, etc. An incorrectly formatted YAML file causes launcher rebuild app to fail with the following error:
/merge_command.rb:45:in `merge': no implicit conversion of String into Hash
The error code and description in no way imply that there is an issue with parsing app.yaml, nor does it indicate what the problem is with the file. Googling the above error does contain a couple of support links that suggest the issue, but it is far from clear.
Could an error message be added that, at a minimum, indicated that the build tool failed to parse app.yaml, or even better, indicate what the syntax or parsing error was (e.g. “expected indentation on line 17 but found <tab>”, orsimilar)
This is really more of a limitation of the YAML file format than anything else.
About all you can do is pass it to a YAML validator beforehand, but there are lots of ways to mess up a YAML file that keep it technically valid but not working for the settings we’re looking for.
I am not against writing a “semantic” validator that ensures we know about all the keys and all the keys have the right kind of values in them, but it would be a fair bit of work.
Yes, an error of that sort would definitely have told me that the problem was with my app.yaml file. Even an error just stating that there was an issue with that file would be helpful. This wouldn’t require any kind of linting library.