jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefano Mazzocchi <stef...@apache.org>
Subject Sandboxing
Date Thu, 18 Nov 2004 16:44:39 GMT
David Nuescheler wrote:

> another question that i have for the entire 
> jackrabbit-dev-community:
> since it seems like a number of people started to
> implement jackrabbit pms and other 
> extensions that maybe are not finished, should we 
> create a section of the svn tree dedicated to 
> experimental code in general? some sort of sandbox 
> or proposals. experiences from other projects?

one thing I strongly advise against, is the creation of "personal 
branches", these tend to increase the chance of "code ownership" which 
normally leads to friction in the community.

There are two ways of doing this:

  1) internal work area
  2) external work area

as an example, cocoon uses both (the first is called "scratchpad" the 
second is called "whiteboard"). The scratchpad is for little modules 
that hook into the same core, the whiteboard is for proposals that 
change the core.

None of these are "branches" because they are not guaranteed to make it 
into the trunk at any point in time, you can think of it as a mini 
incubator. Other projects call it "sandbox" (jakarta-commons, for example).

Personally, I would suggest to try to force everybody to work on the 
same tree at any given moment in time. If that is not possible, the 
internal work area should be preferred.

The reason for the above is that community building is done by making 
people talk and the more isolation the less people will have to confront 
until it's too late and incompatible decisions were made or lots of 
efforts were spent in development that the community might decide not o 
use (and this pisses people off, normally).

So, work incrementally, small patches and small discussions, one step at 
a time. As thermodynamics teaches, entropy is not increased with 
reversible steps. Try to make every step reversible, so that noise and 
disorder does not increase.

If that is not possible, try hard to minimize the impact and keep the 
communication channels open, even if, and especially, if this means 
making the life harder for the developers. Most of them believe that 
"continuous integration" is a waste of time and that "incremental 
reversible development" is uselessly harder.

They all change their mind sooner of later ;-)


View raw message