[webkit-dev] Trunk policy regarding new features and stabilization

Maciej Stachowiak mjs at apple.com
Mon Feb 4 15:42:55 PST 2008

Hi Eric,

On Jan 23, 2008, at 11:50 PM, Eric Seidel wrote:

> I'd like to get some clarification from other members of the WebKit  
> project, regarding the policy regarding having features on/off on  
> trunk.  Specifically Apple folks, since they are the largest single  
> vendor actively contributing to the WebKit Open Source Project.

I think there's two separate questions here. First, what formal  
policy, if any, do we follow for disabling features or removing code.  
Second, there's the specific question of what to do about  
foreignObject specifically.

Regarding policy:

I think there are a few reasons why a feature might be removed or  
disabled, either permanently or on a vendor's release branch:

1) The feature is so destabilizing that it affects testability, and we  
don't expect it to get fixed soon. This would be a reason to disable  
code on trunk.
2) The feature is relatively minorly unstable but has no clear  
maintainer and may be bitrotting a bit. This might also be a reason  
(though in this case it would be good to ask around first).
3) The feature has some significant problem (stability or correctness)  
that would lead us not to want vendors to ship it in its current state.

In case 3, a case could be made for disabling only on appropriate  
vendor release branches. (On the other hand, if there are many such  
branches we want to encourage them to do the right thing.) On the  
other hand, if no one is actively working on the feature, and no one  
especially objects, it might be ok to disable on trunk.

We don't really have a formal policy on this, we just try to use  
common sense and discussion if there is disagreement.

As for this specific instance:

Oliver Hunt suggested disabling foreignObject. I'm not sure which  
specific problems he was worried about, or which of the above  
categories they would fall in. Oliver, could you please clarify what  
the specific problems with foreignObject are. Oliver & Eric, can you  
please discuss and decide together whether foreignObject should in  
fact be enabled by trunk?

To address some specific questions:

> I'm interested in discussing the general policy towards new features  
> on trunk and "stabilization" of trunk during release times for  
> various vendors.
> This was prompted by my recent discovery that SVG_FOREIGN_OBJECT  
> feature had been turned off.  I assume for "stabilization"  
> concerns.  I've filed a bug: http://bugs.webkit.org/show_bug.cgi?id=16991 
>  about that specific case.
> * Is trunk the advised location for all feature development?  At  
> what point should a feature be moved off onto it's own branch?
> * Is the current policy that there will be times of "stabilization"  
> for the trunk, to match with a certain vendor or set of vendors  
> release cycles?
> * If a vendor (or group of contributers) wishes to ship from trunk,  
> is there a procedure by which they can "close" trunk to new feature  
> development?

Apple has not requested any formal or de facto stabilization period.  
Trunk remains open for feature development, porting, performance work,  
bug fixing, and all the usual good stuff. If we need something more  
stable than trunk we will use branches as appropriate.

> My personal preferences would be:
> * Trunk is the location for all feature development.  Large features  
> which would disturb other development (introduce more than N p1  
> bugs, break the build, break patches repeatedly, etc.)

You didn't finish this sentence, but I assume it meant to raise such  
features as a possible exception. Currently I think this is the shared  
understanding of the project.

> * Currently there is no policy to enact a time of "stabilization"  
> for trunk, however I think such could make sense if there was a way  
> for enough contributers to agree.  Stabilization periods should last  
> no more than a month or two, during which time, all feature work  
> should continue on a feature branch (similar to last summer, except  
> *not nearly so long*).
> * I know of no such procedure, but I can see rational for creating  
> one.  Without one, my default would be to leave trunk always "open",  
> unless policies are defined allow for its closure (like perf  
> regressions?).

I think the overly long "stabilization period" on trunk did not work  
out very well and I don't think we should do it again in the near  

I hope this answers your questions.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.webkit.org/pipermail/webkit-dev/attachments/20080204/589f9804/attachment.html

More information about the webkit-dev mailing list