I’d like to propose creating a $100 feature bounty for a new contributor to implement the following Prelude utility:
-- ./Prelude/JSON/renderYAML : JSON → Text
In other words, this would render a value of type
JSON as the corresponding YAML string, using
Text/show for rendering YAML strings (for simplicity; no multi-line rendering necessary).
My selfish motivation for proposing this is that I’m currently implementing a
dhall-kubernetes-charts repository to replace Helm with Dhall and this would benefit the repository in a few ways:
It would allow me to implement the entire repository logic in pure Dhall, including rendering the Kubernetes resources as YAML
I would like to write certain test assertions to compare against a rendered YAML string instead of comparing against the equivalent Dhall value
The reason why is that the Dhall value representing a Kubernetes resource might be enormous (with a lot of
Nonefield), whereas the corresponding rendered YAML value (with
nulls filtered out) will be much more compact.
However, I assume this would also benefit other people, too, since this could eventually replace the
dhall-to-yaml utility in some cases.
I can implement this utility myself but part of the reason for proposing this bounty is to begin creating a few representative expenses that potential donors can refer to as an example of how their donations could be used. I would also like to use these sorts of bounties to grow the pool of contributors to the Dhall ecosystem.
According to the expense guidelines I need to formally document the following:
What purpose is the expense for?
To create a “pure Dhall” utility for rendering YAML
Is this a one-time or recurring expense?
What is the amount that you wish to expense?
Also, the expense has to be approved by the same process that we approve changes to the language standard