View Source

<p>We are considering infrastructure changes for ZF 2.0, and want input from the community.</p>

<p>In particular, we are weighing whether to stick with Subversion for ZF 2.0 development, or to move to Git. There are several pros and cons to each.</p>

<h2>Git</h2>
<h3>Pros</h3>
<ul>
<li>
<ul>
<li>No need for ACLs. Each developer maintains their own fork, and issues pull requests to the appropriate maintainer(s). Only trusted maintainers would have access to push patches into the main branch.</li>
<li>Lower bandwidth and storage needs (git is very efficient in regards to compression)</li>
<li>Cheaper branching; easier to work on many bugs in parallel with the main branch</li>
<li>Easier path to establishing community release masters</li>
<li>Potential for organizing better/different workflows than SVN currently supports</li>
<li>Provides some more useful paths for aggregating different areas of development (library/test code versus documentation versus tooling etc)</li>
</ul>
</li>
</ul>


<h3>Cons</h3>
<ul>
<li>
<ul>
<li>Tracking CLAs becomes more difficult. Currently with SVN, we only grant access to those who have signed a CLA; if anybody can fork, we now need some way to verify CLA status before pulling patches.</li>
<li>No good svn:externals equivalent</li>
<li>Tooling across platforms is not as mature or robust</li>
<li>Would potentially require (re-)training contributors</li>
</ul>
</li>
</ul>


<h2>Subversion</h2>
<h3>Pros</h3>
<ul>
<li>
<ul>
<li>Established processes</li>
<li>Established CLA/ACL relationships</li>
<li>Mature toolsets available cross-platform</li>
<li>svn:externals as distribution mechanism
<h3>Cons</h3></li>
<li>Distributed model flattens the barrier to contribution; non-distributed presents barriers (getting access is harder)</li>
<li>Fewer workflow options (cannot track multiple remotes, cannot create throwaway branches, etc.)</li>
<li>Only users with appropriate authorization can create branches</li>
<li>Requires more storage and bandwidth</li>
<li>Single tree paradigm makes organizing code more difficult.</li>
</ul>
</li>
</ul>


<p>We'd like to hear from you, our contributors, to determine what you would like, and why. Please omit &quot;fanboy&quot; arguments &ndash; simply stating you like or prefer one approach over the other is not enough; explain why.</p>