[development] Is DRUPAL-5 branch necessary for module?

Derek Wright drupal at dwwright.net
Tue Jan 23 18:29:39 UTC 2007


On Jan 22, 2007, at 7:56 PM, _craig wrote:

> Do I really need to have a separate DRUPAL-5 branch for my  
> contributed module?

i'm torn on this question, for a host of reasons:

pros for making the DRUPAL-5 branch early:

a) we have documented, expected conventions and practices to follow,  
and being consistent is good.  consistency with core is also good.

b) if they don't create a DRUPAL-5 branch *before* they start adding  
new features, people who don't really understand or have real  
experience with branch management (98% of the people reading this  
message, it seems) are more likely to screw things up and get in a  
situation where if there's a security problem in an older release,  
they have no way to release a new version that only fixes the bugs,  
and doesn't introduce new features which might break live sites.

c) people looking at Drupal via CVS will know what's going on.   
otherwise, they're stuck with HEAD, which could be anything, and  
they'd have to go look at the project node (and read through  
everything on the "All releases" page) to figure out what's really  
going on in HEAD.


cons for making the DRUPAL-5 branch early:

a) it will generate more work, since you have another branch to  
commit fixes to.  i won't pass judgement on how much more work, since  
It Depends(tm).

b) so long as you tagged your DRUPAL-5--1-0 stable release (on HEAD),  
you could delay creating a DRUPAL-5 branch until you actually needed  
it (e.g. security problem or bugs you need to fix) while still  
developing new features directly in HEAD [1].

c) the straight-from-CVS crowd is a minority and can probably be  
expected to know more than nothing.  making more work for the  
maintainers to make life easier for the people just browsing via CVS  
is not a clear win IMHO.  so long as everything is reasonable and  
sane with official releases on the module browsing pages and the  
project node, i'm a little less concerned about how things look in  
viewcvs.


so, there are good reasons for doing it both ways.  however, all of  
the good reasons for delaying the branch assume a *very* clueful  
maintainer who is careful about not screwing themselves (really,  
their users) badly in case they need to release a security update...


bottom line: i'm getting incredibly burnt out being everyone's free  
revision control consultant/tutor (and no, craig, that's not directed  
at you, or anyone in particular, so no one should take this  
personally).  if i had faith that people would read, understand, and  
correctly follow the instructions and conventions for handling  
various situations, i'd be able to suggest using some more advanced  
approaches to revision management to solve many of these problems.   
but, every time i try to unlock another door to people's revision  
control understanding, i get buried in a new avalanche of email/ 
issues/IRC questions about it.  i've been trying to build tools for  
and document/teach practices that will tend to have people get things  
right, but i can't single-handedly train the entire drupal community  
on everything about branches, release management, development  
snapshots vs. official releases, why you can't commit changes to a  
tag, etc.

therefore, if you're a power CVS user, and you know exactly what  
you're doing, and you promise never to ask me to bail you out when  
you screw something up, do whatever you think is best.  if *any* of  
those conditions are *not* met, do what i wrote in the handbooks  
(make the branch as soon as your 5.x code is stable and you're ready  
for a 5.x-1.0 release).

thanks,
-derek

[1] if you don't already know how to do this, don't try it, and don't  
bother asking.  if i wrote a handbook page about it, people would  
expect me to provide unlimited support for it.  that's the same  
reason i refuse to write a handbook page about merging branches.  if  
you can figure it out on your own, you don't need my help.  if you  
can't, i'm not going to hand you a loaded gun and say "good luck, try  
not to hurt anyone", especially given the apparently high failure  
rate of people reading and understanding the CVS docs i've already  
written.

p.s. if anyone dares to suggest that "SVN would be easier", i'll find  
a way to have your legs broken.  NONE of these problems have ANYTHING  
to do with CVS vs. SVN tool syntax.  it's all about people not  
understanding fundamental concepts of revision control and release  
management, which is totally independent of the tool we happen to be  
using.  you've been warned...




More information about the development mailing list