[development] chasing HEAD? vs remove it? (was Re: CVS branch work best practices?)
Derek Wright
drupal at dwwright.net
Mon Feb 26 08:32:52 UTC 2007
re: what to do with your contrib module's HEAD "branch"...
i knew this would be a big question, given the increased flexibility
the new release system provides maintainers, so i wrote this section:
http://drupal.org/node/17570#HEAD
my stance on this debate changed a lot in the course of the 5.x core
development cycle. i used to agree whole-heartedly with earl:
chasing HEAD is a bad idea unless you really know what you're doing.
now, i mostly agree with moshe: chasing HEAD is great if you're up
for it.
there were a handful of (at least to me) fairly serious bugs in the
5.x API that i only noticed once i tried to port project* to it.
it's a small miracle that we managed to get all of the core patches
to fix them accepted, even though it was after the code freeze
(thanks Dries, Unconed, et al!). no blame goes to any of the folks
who contributed these otherwise great improvements to core (whomever
they were) for not handling these edge cases that project* was
hitting... it was my responsibility as the project* maintainer to
notice and sound the alarm, not the folks for whom the core patch
worked in all the testing they could dream up with sane (ahem)
modules. ;)
bottom line on this point: if you're up to the task, trying to keep
your module's version of HEAD in sync with the (ever-changing)
version of the API in core's HEAD is a worthy, noble goal, and it
should be encouraged as much as possible. if they keep up with the
changes, contrib developers:
a) will be more familiar with the new changes to the API taking
place, and in general, be more knowledgeable about the core API itself
b) will have more chances to find/correct problems with the API
changes while there's still room to move
c) won't have to do all the porting at once
d) will help add momentum to the new version of core, since as soon
as the first RC ships, there will already be a set of modules
compatible with it
...
of course, all of this requires more work, and certainly not every
contrib maintainer is up for it. a lot of what earl says is still
absolutely true. but, moshe is fundamentally right on this: there's
no need to actively discourage people from doing this work if they're
willing and able.
cheers,
-derek
p.s. i've got to think about this "just remove all the files from
HEAD except a README.txt" approach before i strongly stake a
position. part of me recoils in shock, since that's not how You're
Supposed to Use CVS(tm). however, part of my loves it, since i
positively HATE the problems that come when people try to use HEAD
"releases" for real sites...
however, i think the impetus for adding this "3rd way" came from not
really understanding the simplicity of the first scenario i laid out
in the handbook page linked above. it seems the remove-all-the-files
scenario creates a handful of problems (some minor, some major) and
additional work that should be hashed out before a) anyone actively
goes down this route and b) this remains as a recommended approach in
our CVS handbook. unless there's strong opposition, i'd like to
revert the latest revision to the page, at least until we've clearly
decided it's another approach worth advocating for in some
circumstances. right now, i'm leaning towards saying this is a bad
idea, and people shouldn't be doing this to their contribs.
More information about the development
mailing list