<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Jul 27, 2013 at 12:40 PM, Harshavardhana <span dir="ltr">&lt;<a href="mailto:harsha@harshavardhana.net" target="_blank">harsha@harshavardhana.net</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><div class="im"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><br></div><div>- Be responsible for maintaining release branch.</div><div>- Deciding branch points in master for release branches.</div><div>- Actively scan commits happening in master and cherry-pick those which improve stability of a release branch.</div>


<div>- Handling commits in the release branch.</div><div>- Deciding what outstanding bugs must be fixed for a release.</div><div>- Backporting (with the help of the original author for patches which require rebase/conflict resolution) patches to release branches.</div>


<div>- Deciding on stability of a point in the release branch and making the release off it.</div><div><br></div><div><br></div></div></div></div></blockquote><div><br></div></div><div>There are many different models some of which are time tested which have worked for more than a decade and at a scale of 100,000&#39;s of patches millions of lines of code. </div>

<div><br></div><div>1. Linux kernel - <a href="http://www.oss-watch.ac.uk/resources/benevolentdictatorgovernancemodel" target="_blank">http://www.oss-watch.ac.uk/resources/benevolentdictatorgovernancemodel</a></div><div>
2. Mozilla Foundation - <a href="http://www.mozilla.org/en-US/about/governance/" target="_blank">http://www.mozilla.org/en-US/about/governance/</a></div>
<div>3. Openstack - <a href="https://wiki.openstack.org/wiki/Governance" target="_blank">https://wiki.openstack.org/wiki/Governance</a></div><div><br></div></div></div></div></blockquote><div><br></div><div>Each of them is interesting in itself. There are certainly concepts we can pick from all. Forming the right roles and responsibilities which will probably be the bulk of this exercise.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div></div><div>If you see the &#39;bylaws&#39; of these projects it choose &#39;meritocracy&#39;, &#39;direct democratic&#39;  models.  </div>

<div><br></div><div>What is good for GlusterFS as a whole is highly debatable - since there are no module owners/subsystem maintainers as of yet at-least on paper. But i would generally think Mozilla style and Openstack style works.  BDFL model is old school but works.</div>

<div><br></div><div>This seems to me might be necessary to do what this email is about as the project moves into 3.4.0 --&gt; 3.5.0 and further.</div><div><br></div><div>Here is the run down of why it is necessary `sloccount`</div>

<div><br></div><div><div>SLOC    Directory         SLOC-by-Language (Sorted)</div><div>-----------------------------------------------------------------------------------</div><div>185897  xlators            ansic=183597,python=1807,sh=493</div>

<div>27998    libglusterfs      ansic=27448,yacc=481,lex=69</div><div>23317    rpc                 ansic=23317</div><div>14719    cli                  ansic=14719</div><div>10330    top_dir           sh=10289,python=41</div>

<div>6562     contrib            ansic=4783,python=1769,sh=10</div><div>6486     doc                 xml=6486</div><div>5707     tests               sh=5021,ansic=477,python=209</div><div>5633     extras             ansic=2749,sh=1599,python=1161,lisp=124</div>

<div>4718     argp-standalone ansic=3672,sh=1046</div><div>4699     api                  ansic=4369,python=327,sh=3</div><div>3499     glusterfsd        ansic=3499</div><div>2702     geo-replication python=2316,ansic=386</div>

<div>1196     glusterfs-hadoop java=988,python=144,xml=64</div><div><br></div><div>Totals grouped by language (dominant language first):</div><div>------------------------------------------------------------------------------</div>

<div>ansic:         269016 (88.65%)</div><div>sh:             18461 (6.08%)</div><div>python:       7774 (2.56%)</div><div>xml:            6550 (2.16%)</div><div>java:           988 (0.33%)</div><div>yacc:           481 (0.16%)</div>

<div>lisp:            124 (0.04%)</div><div>lex:             69 (0.02%)</div></div><div><br></div><div><div>Total Physical Source Lines of Code (SLOC)                              = 303,463 </div><div>Development Effort Estimate, Person-Years (Person-Months)      = 80.77 (969.22)</div>

<div> (Basic COCOMO model, Person-Months                                  = 2.4 * (KSLOC**1.05))</div><div>Schedule Estimate, Years (Months)                                          = 2.84 (34.10)</div><div> (Basic COCOMO model, Months                                             = 2.5 * (person-months**0.38))</div>

<div>Estimated Average Number of Developers (Effort/Schedule)       = 28.42</div><div>Total Estimated Cost to Develop                                              = $ 10,910,701</div><div> (average salary = $56,286/year, overhead = 2.40).</div>

</div><div><br></div><div>If we choose Meritocratic Polling scheme this is how the eventual breakdown looks like</div><div><br></div><div><a href="https://github.com/gluster/glusterfs/contributors" target="_blank">https://github.com/gluster/glusterfs/contributors</a>  - Look at the top #50 contributors list. <br>
</div></div></div></div></blockquote><div><br></div><div>Meritocracy may be the preferred model (would love to hear from others). GitHub contributor tracking may not necessarily be accurate for us - there is a historic.git on which GitHub does not give out statistics, and more importantly not all our developers have GitHub accounts for it to even count their patches (e.g I don&#39;t see Pranith on the list). But yeah, getting the stats is just a matter of tooling.</div>
<div><br></div><div>Avati</div><div><br></div></div></div></div>