[development] new release system: patches needs review

Derek Wright drupal at dwwright.net
Mon Oct 16 07:56:44 UTC 2006

i'm pleased to announce that v0.1 of the new release system is Done  
Enough(tm).   of course, the system isn't completely done, in the  
sense that no further improvements could be made. ;)  i just think  
it's at a point of functionality and usability that we could install  
it, start using it, and make incremental improvements going forward.   
therefore, the 2 main issues now need review:

"make releases real nodes"

"port cvs.module to releases-as-nodes"

these apply against DRUPAL-4-7 of project, project_issue and cvslog. [1]

i don't expect everyone to review every line of code (or even  
understand all of it -- i had to do some fairly nasty FAPI tricks to  
make the UI as smooth as i could for adding new releases).  however,  
all of this is going to run on d.o and so we need to make sure it's  
all secure, the performance isn't going to be a problem, and that it  
all works how we want.  so, any reviews would be most appreciated  
(and obviously essential before the whole system can go to go live).

if you're not a heavy-weight drupal coder and don't feel up to the  
task of reviewing this stuff, you can still help by playing with the  
new system on a test site i've setup:


this is running a modified copy of a DB snapshot from drupal.org as  
of about 2 months ago.  all the email addresses have been stripped  
out (so trying to reset your password won't work!), and a few of the  
modules have been disabled (namely all the forums and aggregator/blog  
stuff).  new account creation is disabled, but everyone with accounts  
on d.o can log in with their d.o username/password circa 2 months  
ago.  projects and issues are of course still enabled.  there's a  
scratch copy of the contrib cvs repository, too.  this is just a  
shared hosting box, so the performance is pretty terrible. ;)  don't  
let that scare you (and please be gentle on the site). ;)

the main thing i need are people who maintain projects (modules,  
themes or translations) to login to the site, go to your project  
page, and try adding some new release nodes.  i haven't yet written  
the handbook pages, so i'll just briefly document the process for  
adding a release here:

1) create a cvs tag for your release
2) navigate to your project node
3) click on the "add new release" link
4) fill out the N-page form (which involves specifying the tag you  
want to use)
5) wait for the cron job to package your release based on the tag [2]

since it's going to be too much of a pain in the ass to give y'all  
access to this test site's cvs repository, i just created some tags  
across the entire contrib repo for your testing enjoyment.  there are  
a few release tags and a few branches for each project.  if anyone  
wants additional tags created you can let me know (preferably when  
i'm on IRC, or else via email).

if you add a release node and point it to a branch, that means you  
want nightly development snapshots created from that branch.  the  
conversion script that i ran (and which will run on d.o)  
automatically creates these release nodes for you for any existing  
releases (which are all snapshot releases from branches).  however,  
to give y'all a sense of how things will work in the long term, i  
removed all the HEAD-specific releases for all the projects, so folks  
can see what's it's like to add a release node for both the HEAD  
(which is a special case for various reasons you'll see when you fill  
out the form) and for a regular branch (DRUPAL-5).

my goal is that the UI makes enough sense that i don't have to say  
anything else.  however, i'm sure some of you will be confused in the  
absence of any documentation, since i admit that some of it is pretty  
complicated. ;)

in addition to adding releases, you can poke around with how releases  
interact with the issue queue, the project browsing pages, and the  
project nodes themselves.  the last 2 in particular are areas of  
future work, but you can help verify that what's there isn't any  
worse than what we already have. ;)

thanks for any testing, feedback, and most importantly, code reviews!
i can't wait to get this all committed and installed on d.o!!!


p.s.: there are a *ton* of ideas i have about new features we can  
build on top of this.  at this point, i'm not very interested in that  
-- i just want to get the basic system commited to cvs and install it  
on d.o.  please file other feature requests and ideas as separate  
issues, instead of posting replies here, or following up to the 2  
issues i linked to above.


[1] for convenience, a tarball of the latest code from those 3  
directories, with the 2 patches already applied: http://drupal- 

[2] the cron job packages releases from tags every 5 minutes, and  
does the snapshots from branches every 8 hours.  for the interested  
reader, the packaging script itself is a separate issue: http:// 

More information about the development mailing list