<div dir="ltr">> <span style="color:rgb(33,33,33)">Why is it configured in YAML? When I tried to make a similar library, I thought it was a monadic DSL in Haskell that matches the need best.</span><div dir="auto" class="gmail_msg" style="color:rgb(33,33,33)">> I'm interested in the reason!</div><div dir="auto" class="gmail_msg" style="color:rgb(33,33,33)"><br></div><div class="gmail_msg" style="color:rgb(33,33,33)">Hey Yuji,</div><div class="gmail_msg" style="color:rgb(33,33,33)"><br></div><div class="gmail_msg" style="color:rgb(33,33,33)">The reason I picked JSON/YAML to declare the spec to be able to re-implement it in other languages we use at my current work, so the abstraction is shared among many different languages. There could be a potential to have a Builder DSL in Haskell to create the ConfigSpec record, however this puts your app config on <i>codeland</i> rather than <i>dataland</i> which may remove some flexibility.</div><div class="gmail_msg" style="color:rgb(33,33,33)"><br></div><div class="gmail_msg" style="color:rgb(33,33,33)">Thanks for the feedback, and hope you find the library useful.</div></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Apr 6, 2017 at 5:28 PM Yuji Yamamoto <<a href="mailto:whosekiteneverfly@gmail.com">whosekiteneverfly@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto" class="gmail_msg">Awesome!<div dir="auto" class="gmail_msg">This may be the one I've wanted for a long time.</div><div dir="auto" class="gmail_msg">As you I've often felt it's very tedious to manage the source of configurations (from the file? CLI argument? etc.).</div><div dir="auto" class="gmail_msg"><br class="gmail_msg"></div><div dir="auto" class="gmail_msg">I'm going to read it in detail later, but I have one question after the first look:</div><div dir="auto" class="gmail_msg">Why is it configured in YAML? When I tried to make a similar library, I thought it was a monadic DSL in Haskell that matches the need best.</div><div dir="auto" class="gmail_msg">I'm interested in the reason!</div><div dir="auto" class="gmail_msg"><br class="gmail_msg"></div><div dir="auto" class="gmail_msg">Thanks for the interesting library!</div></div><div class="gmail_extra gmail_msg"><br class="gmail_msg"><div class="gmail_quote gmail_msg">2017/04/07 午前3:56 "Román González" <<a href="mailto:romanandreg@gmail.com" class="gmail_msg" target="_blank">romanandreg@gmail.com</a>>:<br type="attribution" class="gmail_msg"><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"></blockquote></div></div><div class="gmail_extra gmail_msg"><div class="gmail_quote gmail_msg"><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="gmail_msg">Is my pleasure to announce a new library for managing configuration values on Haskell projects.<div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Some features:</div><br class="gmail_msg">* Have a versioned spec of all values your application can accept<br class="gmail_msg"><br class="gmail_msg">* Provides an API for gathering values from multiple sources (files, overwrite files, cli arguments, environment variables) and then composing them into a single configuration map<br class="gmail_msg"><br class="gmail_msg">* Gives a sane precedence over sources of the configuration value sources<br class="gmail_msg"><br class="gmail_msg">* Provides inspection utilities to understand why the configuration is the way it is<br class="gmail_msg"><br class="gmail_msg">* Provides an API that abstracts away the source of configuration values and allows easy casting into record types your application or other libraries understand<div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">* Supports both configuration files in JSON or YAML (when cabal flags are used)</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">* Dynamically generates CLI inputs from spec configuration file</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Any feedback, or comments feel free to create a ticket or send me a tweet over at @romanandreg</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Cheers.</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Roman Gonzalez.-</div></div>
<br class="gmail_msg"></blockquote></div></div><div class="gmail_extra gmail_msg"><div class="gmail_quote gmail_msg"><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">_______________________________________________<br class="gmail_msg">
Haskell-Cafe mailing list<br class="gmail_msg">
To (un)subscribe, modify options or view archives go to:<br class="gmail_msg">
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" class="gmail_msg" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br class="gmail_msg">
Only members subscribed via the mailman list are allowed to post.<br class="gmail_msg"></blockquote></div></div></blockquote></div>