[development] more work required by new release system? (was re: CVS branch work best practices?)

Derek Wright drupal at dwwright.net
Mon Feb 26 19:30:37 UTC 2007

On Feb 26, 2007, at 2:22 AM, Adrian Simmons wrote:

> I think there is also a lot of frustration, in effect we had it  
> easy before.
> Develop in HEAD, branch for each new drupal version, apply fixes in  
> the released branch directly etc. Fairly simple, in fact you could  
> often *avoid* having to merge at all, it was possible to ignore  
> some of CVS less usable commands.

you can do all of that today, too.  that's basically what i document  
in the handbook, with the 1, incredibly minor addition of "and make  
official release tags whenever practical for real releases", which is  
still optional (and a huge improvement in its own).

> The new system in effect forces us to do more work - and pretty  
> much makes it essential to get to grips with cvs merge.

neither part of that sentence is true.

1) the "degenerate case" of the new release system behaves exactly  
like the old system, even if you make no official release nodes at  
all.  well, ok, you have to do 2 minutes of extra work to make the  
initial development snapshot release node for a new branch, but  
effectively, that's 2 minutes of work every 6-9 months or so.

2) the new system does not at all require you to know how to do cvs  
merge at all.  that's exactly why i haven't documented it, since you  
don't need to, and as soon as i do, people will start sending me  
personal emails about how to merge their stuff.

a) you've always had to (and will need to) backport bug fixes to  
multiple branches, so long as you're continuing to support older  
versions of your code.  this didn't change from the new system.

b) you can do all your new feature development in HEAD and never have  
to merge.  for the 4th time in 12 hours, RTFM:

c) no one is forced by the new system to add new features to branches  
that work with older versions of core.  however, if you *want* to,  
you finally *CAN* do this, which is a vast improvement.  yes, it's  
more work, which i've said all along, but no one is *required* to do  
this extra work.  if you don't care about such things, or don't have  
enough of a user base to care about keeping your "stable" code  
stable, do whatever you want, including what you've always done.   
even in the case where you're actively supporting multiple branches  
for older versions of core, it's not clear to me that official cvs  
merging is actually a win (due to the fact that core's API changes so  
much, you often end up with tons of conflicts, anyway).  i did this  
for a little while with project* but have now switched back to just  
trying to apply (and porting) patches to whatever branches they need  
to go into in the first place, instead of merging after every  
official release.

> It's all for the better, but you'll never get people to like doing  
> more work :)

that's why i designed it so the extra work (except the 2 minutes  
every 6-9 months) is totally optional for people who care enough to  
do it.

> And that's without getting into the extra work you have to spend as  
> a user now tracking module updates if you're used to pulling them  
> from cvs.

which, in practice, is tiny.  only a small minority of modules have  
more branches than core does.  for the vast majority of cases, you  
just have to do "cvs co -r DRUPAL-5" and you've got all you need.  in  
the few edge cases where there's a DRUPAL-5--2 branch, you should  
think twice about if you want that code anyway, and then can just  
update your checked out copy to that new branch once (and, since CVS  
is such an excellent tool, it'll remember that for you so the next  
time you run "cvs update" in the top level of your modules directory,  
it'll get the code from DRUPAL-5 for most directories, and  
DRUPAL-5--2 from the ones where you want that).

but, this is becoming less and less of an issue, thanks to nedjo,  
merlin and myself working on the "ask drupal.org if my site is up-to- 
date XML-RPC interface":

> I don't have any easy answers,

i do. ;)

> and I don't want to knock the great work you've already done Derek -

good, thanks. ;)

> but you're making us all work harder,

not true.

> just get some ear plugs till the anguished screams and swearing die  
> down =D

i wouldn't need the ear plugs if all of you took yours out every time  
i swear and scream in anguish: RTFM!!!! ;)

it's all there.  if everyone spent 2 hours carefully reading what's  
in the CVS handbooks, and (gasp) helping to improve the docs if  
they're not crystal clear, you'd all already know all the stuff i  
have to keep re-explaining in emails over and over and over.  y'all  
are the ones making *me* work harder. ;)


More information about the development mailing list