<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On 6 May 2016 at 13:15, Chris Barker <span dir="ltr"><<a href="mailto:chris.barker@noaa.gov" target="_blank">chris.barker@noaa.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, May 6, 2016 at 5:41 AM, Nick Coghlan <span dir="ltr"><<a href="mailto:ncoghlan@gmail.com" target="_blank">ncoghlan@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">[...]</blockquote><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">So rather than saying "the bootstrapping dependency declaration file<br>
is Python-but-not-really", it's easier to say "it's an ini-file format<br>
that can be parsed with the configparser module" or "it's JSON" (I'm<br>
ruling out any options that don't have a stdlib parser in Python 2.7)<br></blockquote><div><br></div><div>Last time, I promise :-)</div><div><br></div><div>"python literals" is perfectly well defined -- both by the language reference, and by "can be parsed by ast.literal_eval"</div></div></div></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><br></div><div>and it addresses the limitations of JSON and is fully declarative.</div></div></div></div></blockquote><div><br></div><div>There is actually prior art for that kind of use. Odoo uses such a language for its addons system, including package dependencies. See example file here:</div><div><br></div><div><a href="https://github.com/OCA/maintainer-tools/blob/master/template/module/__openerp__.py">https://github.com/OCA/maintainer-tools/blob/master/template/module/__openerp__.py</a><br></div><div><br></div><div>Notice the `depends` key, that lists other addons, and the `external_dependencies` key that can list both python distribution dependencies as well as external program dependencies.</div><div><br></div><div>ISTM the reluctance in adopting this idea comes from the desire of using other programming languages to parse the bootstraping information (imagine an sdist -> deb converter implemented in go. It will have to exec python eventually, during the build process, but not before it has prepared the build environment).</div><div><br></div><div>And even though, unlike JSON, the ConfigParser format of setup.cfg is not officially defined anywhere, there are sufficiently compatible ini parsers in other languages that the idea still has merit.</div><div><br></div></div></div></div>