Hi, I mostly agree with Hoss and Yonik. Use patches, it's easy, trunk doesn't have to be stable, retain the Review Then Commit (RTC) style of development. Keep development fluid, don't gate it with more process than necessary (e.g. major branch merging).
Branches are significantly easier with SVN than they were with CVS, for sure. Even so, I only think they're worth the maintenance and merging hassle for really major things. Of course "really major" is subjectives, so here are some examples. In Tomcat we traditionally made a branch only for major versions of the server (3.x, 4.x, 5.x, 6.x) that implement new versions of the Servlet and JSP specifications. Work is done only on the trunk for many months at a time. In log4j we've never really had concurrent development on multiple branches, work is done in the trunk, just like Lucene. The other incubating projects I'm currently involved with (OFBiz, lokahi, XAP) are the same way as Hoss and Yonik described for Solr. That said, if a developer has a major piece of work he/she wants to work on, and feels uneasy about doing it on trunk, he/she is more than welcome to create and maintain a branch for this purpose. The onus is on him/her to properly merge the work back once there's consensus the branch work should be included in the trunk. So we don't need to be zealous about branches / no branches (and I don't think anyone here is). Yoav On 11/17/06, Yonik Seeley <[EMAIL PROTECTED]> wrote:
On 11/17/06, Chris Hostetter <[EMAIL PROTECTED]> wrote: > > : IIUC the agreed way of working is to do all important changes as > : patches in Jira, discuss them and only commit once we agree on them? > > I would rephrase as: "attach to jira, see if any one has > comments/objections and commit once they've had a little time to soak." For changes that a committer feels are obvious or non-contentious (and not likely to be improved by review), I think they should just commit them. We have a review-after-commit policy too. For example, Mike's recent fix of field boosts was an important fix, but simply committing it w/o a JIRA issue was fine IMO. Changes of any nature that are copyrightable (have originality, etc) and come from non-committers should go through JIRA I think (for IP documentation purposes). People should be able to count on the fact that commits without JIRA issues originate from committers only. As far as branches go, I've not used them (because Lucene really hasn't), so I don't have much to go by. I would be concerned about the ability to easily "see" what a patch consists of from a simple link in the JIRA bug though. -Yonik http://incubator.apache.org/solr Solr, the open-source Lucene search server