[development] death to "x.y.z" version is now inevitable

Derek Wright drupal at dwwright.net
Thu Nov 16 10:26:30 UTC 2006

i'm not claiming the docs are the best possible explanation and that  
there's no room for improvement.  however, a) they're not *that*  
dense, b) they're pretty thorough in explaining everything, c) myself  
and webchick spent a *huge* amount of time writing/editing/organizing  
them to be as clear as possible, targeted for the right audience(s),  

a complete redesign of the entire release process for a huge software  
project involving tons of interacting versions, which didn't really  
have a release process before this (except for core), isn't utterly  
trivial, to be summed up in 100 words or less on 1 screen. ;)  my  
favorite quote about this: "make everything as simple as possible,  
but no simpler." our life is COMPLICATED (core vs. contrib, stable  
vs. new features, APIs changing all over the place, etc, etc, etc).   
none of this is my fault. ;)  furthermore, while designing the  
system, my hands were partially tied by years of past-practice.  if  
we were starting from scratch, it could be a lot cleaner and make  
even more sense, but i had to bolt a solution on top of a mostly  
broken foundation, so i did the best i could.  i just tried to stare  
our complicated reality in the face and solve our problems with a  
tool that's powerful enough to express and handle the complication  
we've always had, with the least drastic changes to how we've always  
done things.  now, when people are forced to acknowledge this  
complication, they balk at the less than 10 handbook pages you have  
to read to fully understand everything... (i'm not singling out  
anyone with that statement, please don't take it personally).

i don't think the release system, the docs, or myself are completely  
perfect, so i hope my sometimes scathing rebukes of the questions/ 
complaints people are sending are not taken the wrong way. ;)  i'm  
trying to keep a good attitude about it all, so i hope all of you do,  

On Nov 15, 2006, at 4:41 PM, Darrel O'Pry wrote:

> If my understanding is not mistaken it should probably read...
> DRUPAL-4-7 = 4.7.x-dev  ( the head of the DRUPAL-4-7 branch)
> and
> DRUPAL-4-7--1 = 4.7.x-1.x ( sticky tag in the DRUPAL-4-7 branch)

this is full of lies and confusion. ;)

1) you're mixing up core ("4.7.x-dev") and contrib ("4.7.x-1.x").  as  
clearly explained in numerous places, these have different version  
number schemes (and therefore, slightly different CVS branch/tagging  

2) DRUPAL-4-7--1 does not exist. it's neither a branch, a tag, nor a  
version, and the scripts that defend our CVS repository prevent you  
from being able to create it.  here's why:
"New release system: debate on branches and versions"
(i note with mild disappointment that only 9 other people commented  
in that thread, even though the implications effect the many hundreds  
of you on this list).

3) <cvs-guru> the "sticky tag" is a property of each instance of a  
file you checkout from CVS.  it's something in your local workspace,  
not in the repository.  the sticky tag (visible via "cvs status") is  
how CVS remembers what tag you've checked out, so that all commands 
[1] by default are relative to that tag.  if the sticky tag is set to  
a branch, it means that if you run "cvs commit", you make a new  
revision on that branch. "cvs diff" in a workspace with a sticky tag  
means "show me the diff between my local copy of this file, and the  
copy my sticky tag points to"...

the only identifier in CVS that automatically moves along as you make  
new revisions is a branch, and that's because when you create a tag  
at the beginning of the branch, that special kind of tag (a "branch  
tag") is used to identify the entire branch.  at any given time, if  
you ask CVS for "file foo from branch bar", you get the copy of foo  
on the very end of the "bar" branch.  i know it's confusing, which is  
why i poured so much thought and time into this page:

> I'm not the kind of person who sits and reads heavy docs then goes to
> work with a thorough academic understanding of the process.

fair enough.  we knew these kind of people exist, which is why  
webchick was kind enough to write up the first draft of the  
quickstart guide in the first place.  but, for it to remain "quick",  
it can't cover everything in full detail.  that's what the rest of  
http://drupal.org/handbook/cvs is for.

> I'm just stoked... I've been wanting this kind of
> branching and tagging for a while just in CVS, its even more awesome
> that project module supports it...

thanks, i appreciate that a lot.  in spite of the minor criticisms  
and sometimes major confusion, the response has been overwhelmingly  
positive.  i'm glad most people see the beauty and happiness all of  
this will bring. ;)

therefore, again, my apologies for being somewhat abrasive in my  
replies.  it's just frustrating how much work i've put in, and how  
hard it was to get anyone's input when there was a good chance to do  
something about it.  now that it's live, i'd like to just move on  
with my life, but i find myself spending hours re-answering questions  
and re-hashing debates i've already documented and been through...


[1] </cvs-guru style="pedantic"> sticky tags work for all cvs  
commands except for "cvs annotate" (what i like to call "cvs  
blame"). ;)  this is a bug in CVS, IMHO. :(  cvs annotate doesn't  
honor sticky tags, so even if you're in a directory checked out from  
DRUPAL-4-7, to see the annotated changes to foo.module on the  
DRUPAL-4-7 branch, you have to use:
"cvs annotate -r DRUPAL-4-7 foo.module" </cvs-guru>

More information about the development mailing list