[development] CVS branch work best practices?
Dries Buytaert
dries.buytaert at gmail.com
Fri Feb 2 19:50:51 UTC 2007
On 02 Feb 2007, at 18:16, Earl Miles wrote:
>> a. For people that are OK with following core's release
>> schedule, it is easier to develop in the CVS trunk/HEAD. This
>> means you can't release a significant upgrade of your module
>> until the DRUPAL-6 branch is available. In this case, your work
>> is targeted to be released when Drupal 6 becomes available. The
>> Drupal 5 version of your module is in maintenance mode, just like
>> core's DRUPAL-5 branch.
>
> Please notes that for most contrib projects, a) is very difficult.
> Because contrib development is very much dependent upon core being
> stable, developing for Drupal 6 before code freeze is basically a
> Bad Idea.
>
> 1) Your target audience is very very small. Comparatively, only a
> handfull of developers will be using HEAD, and they'll be
> developing with it, not using contrib modules.
>
> 2) You will be unable to offer the people who do use your modules
> and are likely to demand features those features. Yes, you can say
> you've built them...and now they must wait until Drupal 6 is
> available and usable. Remember, the people who actually *use*
> Drupal (i.e, for real production purposes) are strongly encouraged
> not to use a version of Drupal until it is ready and stable. At our
> current plan, with a Jun 1 code freeze, chances are Drupal 6 will
> be out sometime in the fall. That means anyone doing new features
> for modules exclusively in HEAD *right now* will experience greater
> than half a year lag of those features being available to those
> features being actively used.
>
> 3) Before code freeze, HEAD API changes a lot. At any given time,
> your module may simply not be functional. Sometimes commits get
> reverted, or go through a long transformation process. This is a
> necessary part of the development cycle. Contrib modules simply
> can't follow this. During this period I could theoretically spend
> more time keeping my module working than I spend actually writing
> new features for it. In my opinion, this is not an effective use of
> a contrib developer's time.
>
> 4) Drupal's release schedule does not match people's upgrade
> schedules. People are not able to run out and update right away; in
> part because 3) keeps module developers from updating their modules
> until the Release Candidate phase, when they're fairly confident
> that their work won't be broken by some important fix to the core.
> This is, perhaps, a leftover of the form API work in 4.7, where
> there was an extremely long period of change in Drupal core that
> was needed to work out all the kinks in the system, but left
> contrib developers rather frustrated. It also left actual site
> users frustrated because there was a long period where a lot of
> contrib development work was going on in an area that simply didn't
> have a stable codebase, so it could only be used by people running
> bleeding edge stuff -- meaning they probably didn't have production
> sites, or if they were production they were very small sites that
> could accept a big downtime when some important change had a ripple
> effect.
What Earl says is true iff you assume that you use contrib's HEAD to
track core's HEAD. That's not what I meant. What I meant is that if
you don't plan to add new features to the stable/supported version of
your module in the DRUPAL-5 branch, you can use contrib's HEAD to
develop against core's DRUPAL-5 and ugprade to core's CVS HEAD when
the time is right. Here the "time is right" could depend on various
things -- a core patch that you depend on got committed, HEAD is
frozen, etc, etc.
--
Dries Buytaert :: http://www.buytaert.net/
More information about the development
mailing list