[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"
http://drupal.org/node/83339#comment-145779
http://drupal.org/files/issues/release_as_node.patch_27.txt
"port cvs.module to releases-as-nodes"
http://drupal.org/node/84706#comment-146000
http://drupal.org/files/issues/cvs_release_node.patch_17.txt
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:
http://drupal-release.dwwright.net/
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!!!
-derek
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.
notes:
[1] for convenience, a tarball of the latest code from those 3
directories, with the 2 patches already applied: http://drupal-
release.dwwright.net/files/new-release-2005-10-15.tar.gz
[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://
drupal.org/node/88056
More information about the development
mailing list