<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""></div><div class=""><br class=""></div><div class="">On Oct 31, 2015, at 7:18 PM, Meyer, Jim <<a href="mailto:jim.meyer@hpe.com" class="">jim.meyer@hpe.com</a>> wrote:<br class=""><br class=""></div><blockquote type="cite" class=""><div class=""><span class="">I was reading this:</span><br class=""><span class=""></span><br class=""><span class="">Debian dropping the Linux Standard Base [<a href="http://lwn.net" class="">LWN.net</a>]</span><br class=""><span class=""><a href="https://lwn.net/Articles/658809/" class="">https://lwn.net/Articles/658809/</a></span><br class=""><span class=""></span><br class=""><span class="">… and was struck by the parallels behind both the intent of LSB and DefCore (provide assurances around common functionality and interoperability delivered in a distro) as well as implementation (standard trails implementation, etc.). The article is a 5-10 minute read; in the comments, read the first from michaeljt; then pick up near the bottom, starting with the one by criswell, to the end.</span><br class=""><span class=""></span><br class=""><span class="">I see two interesting ways to angles from which to view this:</span><br class=""><span class=""></span><br class=""><span class="">1. LSB was successful at driving convergence for 20+ years and is beginning to die out.</span><br class=""><span class="">2. LSB failed to reach effectiveness in 20+ years of trying and is beginning to die out.</span><br class=""><span class=""></span><br class=""><span class="">The case for #1 seems suspect. The article and comments, as well as the relative lack of applications which successfully adopted LSB as the primary or sole basis of specifying their dependencies, seem to indicate otherwise.</span><br class=""><span class=""></span><br class=""><span class="">The question here: how is DefCore different, and how will we succeed where LSB failed?</span><br class=""></div></blockquote><div class=""><br class=""></div><div class=""><div class="">Hi Jim</div><div class=""><div id="magicdomid3" class="" style="margin: 0px; padding: 0px;"><span style="background-color: rgba(255, 255, 255, 0);" class=""><br style="margin: 0px; padding: 0px;" class=""></span></div><div id="magicdomid4" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">The primary difference is in the trademark application. Application</span></div><div id="magicdomid5" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">of the Linux Sublicense is managed by the Linux Trademark Institute</span></div><div id="magicdomid6" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">and does not require that a distribution implement the Linux Standard</span></div><div id="magicdomid7" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">Base (LSB) program [1]. The Linux Foundation provides LSB and LSB</span></div><div id="magicdomid8" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">Certified trademark programs [2] which does require compliance with</span></div><div id="magicdomid9" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">the program. The marks are seperate though, so loss of the LSB mark</span></div><div id="magicdomid10" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">does not cause loss of the Linux mark.</span></div><div id="magicdomid11" class="" style="margin: 0px; padding: 0px;"><span style="background-color: rgba(255, 255, 255, 0);" class=""><br style="margin: 0px; padding: 0px;" class=""></span></div><div id="magicdomid12" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">The OpenStack Foundation is taking a different approach.</span></div><div id="magicdomid13" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">Use of the OpenStack Powered trademark requires conforming to the</span></div><div id="magicdomid14" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">DefCore guideline, which includes using designated sections of</span></div><div id="magicdomid15" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">OpenStack code, and providing capabilities that can be independently</span></div><div id="magicdomid16" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">checked with must-pass tests [3][4].</span></div><div id="magicdomid17" class="" style="margin: 0px; padding: 0px;"><span style="background-color: rgba(255, 255, 255, 0);" class=""><br style="margin: 0px; padding: 0px;" class=""></span></div><div id="magicdomid18" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">As the OpenStack Powered trademark is the only mark that can be</span></div><div id="magicdomid19" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">applied to products running OpenStack, the incentive to conform</span></div><div id="magicdomid20" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">to the program is much greater. A distribution or service could</span></div><div id="magicdomid21" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">not apply an OpenStack trademark without passing DefCore.</span></div><div id="magicdomid22" class="" style="margin: 0px; padding: 0px;"><span style="background-color: rgba(255, 255, 255, 0);" class=""><br style="margin: 0px; padding: 0px;" class=""></span></div><div id="magicdomid23" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">The surface area of the DefCore standard is smaller than the LSB. </span></div><div id="magicdomid24" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">Right now it only enforces components for core projects and explicitly</span></div><div id="magicdomid25" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">tests across Keystone, Nova, and Swift (with implicit tests for networking,</span></div><div id="magicdomid26" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">block storage, and image storage). End users can independently test a</span></div><div id="magicdomid27" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">cloud using the DefCore tests. Interoperability is defined against a set</span></div><div id="magicdomid28" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">of APIs that is built by the developer community, and the DefCore</span></div><div id="magicdomid29" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">"lagging" indicators is designed to move at the pace of new API</span></div><div id="magicdomid30" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">introduction and adoption, including criteria to consider future Technical</span></div><div id="magicdomid31" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">Committee directives [4].</span></div><div id="magicdomid32" class="" style="margin: 0px; padding: 0px;"><span style="background-color: rgba(255, 255, 255, 0);" class=""><br style="margin: 0px; padding: 0px;" class=""></span></div><div id="magicdomid33" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">The real proof of the program will be seen in the next year or</span></div><div id="magicdomid34" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">two as we refine the guidelines to ensure capabilities that</span></div><div id="magicdomid35" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">guarantee a base level of interoperability for applications</span></div><div id="magicdomid36" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">written by developers and users.</span></div><div id="magicdomid37" class="" style="margin: 0px; padding: 0px;"><span style="background-color: rgba(255, 255, 255, 0);" class=""><br style="margin: 0px; padding: 0px;" class=""></span></div><div id="magicdomid38" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">We're starting small, limiting our scope to a set of core</span></div><div id="magicdomid39" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">projects, and quickly refining the guideline to address issues</span></div><div id="magicdomid40" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">that the entire community: users, developers, and vendors; are</span></div><div id="magicdomid41" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">finding. From my point of view, the DefCore process has already</span></div><div id="magicdomid42" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">had a positive impact on API maturity in the development community</span></div><div id="magicdomid43" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">and in encoraging vendors to not make breaking changes to deployed</span></div><div id="magicdomid44" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">APIs. This is feeding into efforts to support our application</span></div><div id="magicdomid45" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">development community in building easily deployable apps that</span></div><div id="magicdomid46" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">run on Openstack.</span></div><div id="magicdomid47" class="" style="margin: 0px; padding: 0px;"><span style="background-color: rgba(255, 255, 255, 0);" class=""><br style="margin: 0px; padding: 0px;" class=""></span></div><div id="magicdomid48" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">If we do DefCore correctly, it will become a boring standard that</span></div><div id="magicdomid49" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">is easy to enforce because it is easy to deploy upstream while</span></div><div id="magicdomid50" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">tracking how the needs of the community is expressed through the</span></div><div id="magicdomid51" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">evolving APIs (which themselves take time to be successfully</span></div><div id="magicdomid52" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);">deployed and adopted).</span></div><div id="magicdomid52" class="" style="margin: 0px; padding: 0px;"><span class="" style="margin: 0px; padding: 0px; cursor: auto; background-color: rgba(255, 255, 255, 0);"><br class=""></span></div><div id="magicdomid52" class="" style="margin: 0px; padding: 0px;"><div id="magicdomid52" class="" style="margin: 0px; padding: 0px;">Chris Hoge</div><div id="magicdomid52" class="" style="margin: 0px; padding: 0px;">Interop Engineer</div><div id="magicdomid52" class="" style="margin: 0px; padding: 0px;">OpenStack Foundation</div></div><div id="magicdomid53" class="" style="margin: 0px; padding: 0px;"><span style="background-color: rgba(255, 255, 255, 0);" class=""><br style="margin: 0px; padding: 0px;" class=""></span></div><div id="magicdomid54" class="" style="margin: 0px; padding: 0px;"><span style="background-color: rgba(255, 255, 255, 0);" class=""><span class="" style="margin: 0px; padding: 0px; cursor: auto;">[1] </span><span class=" url" style="margin: 0px; padding: 0px; cursor: auto;"><a href="http://www.linuxfoundation.org/programs/legal/trademark/sublicense-agreement" style="margin: 0px; padding: 0px; cursor: pointer !important;" class="">http://www.linuxfoundation.org/programs/legal/trademark/sublicense-agreement</a></span></span></div><div id="magicdomid55" class="" style="margin: 0px; padding: 0px;"><span style="background-color: rgba(255, 255, 255, 0);" class=""><span class="" style="margin: 0px; padding: 0px; cursor: auto;">[2] </span><span class=" url" style="margin: 0px; padding: 0px; cursor: auto;"><a href="http://www.linuxfoundation.org/about/linux-foundation-trademark-usage-guidelines" style="margin: 0px; padding: 0px; cursor: pointer !important;" class="">http://www.linuxfoundation.org/about/linux-foundation-trademark-usage-guidelines</a></span></span></div><div id="magicdomid56" class="" style="margin: 0px; padding: 0px;"><span style="background-color: rgba(255, 255, 255, 0);" class=""><span class="" style="margin: 0px; padding: 0px; cursor: auto;">[3] </span><span class=" url" style="margin: 0px; padding: 0px; cursor: auto;"><a href="https://openstack.org/brand/interop" style="margin: 0px; padding: 0px; cursor: pointer !important;" class="">https://openstack.org/brand/interop</a></span></span></div><div id="magicdomid57" class="" style="margin: 0px; padding: 0px;"><span style="background-color: rgba(255, 255, 255, 0);" class=""><span class="" style="margin: 0px; padding: 0px; cursor: auto;">[4] </span><span class=" url" style="margin: 0px; padding: 0px; cursor: auto;"><a href="http://git.openstack.org/cgit/openstack/defcore/tree/2015.07.json" style="margin: 0px; padding: 0px; cursor: pointer !important;" class="">http://git.openstack.org/cgit/openstack/defcore/tree/2015.07.json</a></span></span></div><div id="magicdomid58" class="" style="margin: 0px; padding: 0px;"><span style="background-color: rgba(255, 255, 255, 0);" class=""><span class="" style="margin: 0px; padding: 0px; cursor: auto;">[5] </span><span class=" url" style="margin: 0px; padding: 0px; cursor: auto;"><a href="http://git.openstack.org/cgit/openstack/defcore/tree/doc/source/process/CoreCriteria.rst" style="margin: 0px; padding: 0px; cursor: pointer !important;" class="">http://git.openstack.org/cgit/openstack/defcore/tree/doc/source/process/CoreCriteria.rst</a></span></span></div></div><div class=""><br class=""></div></div><br class=""><blockquote type="cite" class=""><div class=""><span class="">--j</span><br class=""><span class=""></span><br class=""><span class="">_______________________________________________</span><br class=""><span class="">Defcore-committee mailing list</span><br class=""><span class=""><a href="mailto:Defcore-committee@lists.openstack.org" class="">Defcore-committee@lists.openstack.org</a></span><br class=""><span class=""><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/defcore-committee" class="">http://lists.openstack.org/cgi-bin/mailman/listinfo/defcore-committee</a></span><br class=""></div></blockquote></body></html>