<div dir="ltr">On Sat, Nov 2, 2013 at 4:39 PM, Jay Pipes <span dir="ltr"><<a href="mailto:jaypipes@gmail.com" target="_blank">jaypipes@gmail.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi all,<br>
<br>
One of the most important aspects in the early stages of Solum development will be the consensus building and stabilization of the Solum API specification. A solid API spec aid in the speeding up the pace of innovation in the Solum contributor community.<br>

<br>
One of the aspects of the Keystone development process that I think is a big benefit is the separate source repository that stores the OpenStack Identity API specifications:<br>
<br>
<a href="https://github.com/openstack/identity-api" target="_blank">https://github.com/openstack/<u></u>identity-api</a><br>
<br>
When new versions of the API specification are debated or new extensions are proposed, patches are made to the specification markdown documents and reviewed in the exact same manner that regular code is on the <a href="https://review.openstack.org" target="_blank">https://review.openstack.org</a> Gerrit site. Contributors are free to annotate the proposed changes to the API specification in the same way that they would make inline code comments on a regular code review. Here's an example for a proposed change that I recently made:<br>

<br>
<a href="https://review.openstack.org/#/c/54215/10" target="_blank">https://review.openstack.org/#<u></u>/c/54215/10</a><br>
<br>
I'd like to propose that Solum do the same: have a separate source repository for the API specification.<br>
<br>
Thoughts?<br>
-jay<br></blockquote><div><br></div><div><br></div><div>I like this idea. I'd also propose that the format of the specification be something machine-readable, such as API-Blueprint (a simple subset of markdown, <a href="http://apiblueprint.org">apiblueprint.org</a>, also what apiary uses, if you've ever seen that) or RAML (a more structured YAML-based syntax, <a href="http://raml.org">raml.org</a>). API-Blueprint is closer to what the keystone document uses.</div>
</div><div><br></div><div>Making the documentation machine-readable means that it's much easier to verify that, in practice, the implementation of an API matches its specification and documentation, which is a problem that plagues many OpenStack projects right now.</div>
<div><br></div><div>--</div><div>IRC: radix</div><div>Christopher Armstrong</div><div>Rackspace</div></div></div>