From: Caolan McNamara (Caolan.McNamara at domain ul.ie)
Date: Wed 22 Sep 1999 - 16:33:00 IST
rant upon the usage of cvs in large free software projects
cvs is a very powerful tool to manage a large distributed project. The
ease of applying patches automatically to the server, the ability to
keep every component of the project in sync, and easy of making the
source available to the public are all great benefits. The usual
model of use that projects such as gnome and mozilla takes is one of
major releases at irregular intervals, with cvs used in between to
manage the developers changes.
Now there are two types of free software developer, type a is the core
folk involved in the project, they always have an up to date cvs tree,
they update in the morning and commit in the evening. They live beside
the cvs server, in the same bloody building. They see cvs as the
perfect solution to everying. Now type b programmer is the one who is
interested in the project, he sweeps in every now and then, maybe a
month apart and wants to hack a little functionality in (or maybe just
to see if a certain feature is working now). He goes to the last
available tarball and cvs updates that.
Heres the right way to support programmer b...
Wine is set up perfectly, snapshot tarfiles are taken regularly, dated
and mirrored around the world. you can cvs update the babies easily and
secondly the cvs tree is in denmark, so the speed for me is alright. So
you sweep in, get the tarfile, cvs update, and ta-da you are in business
already. easy peasy.
on the other hand...
Now with mozilla you sweep in, plonk, you get the last *stable* version,
and cvs update that, the cvs server is in the states, you update all
night, and all the next day, at some infintesimal speed. fuck it, you
dont need the hassle, so you dont bother. Gnome is the same you take
the *latest* source tar, so when was that made again, undated, who knows
and you want to cvs update something of that size, again to hell with it
who needs the hassle.
So when using cvs trees for an open source project where you actually
want input from other you *must* *must* make regular (being compilable
or not is not relevent) snapshot tarfiles weekly and mirror them widely.
Whats wrong with mozilla is
1) the tarfile releases are a month to two months apart, the changes from
a tar file to the cvs tree are huge
2) the cvs server is on the other side of the world
1+2 == few hackers outside of netscape can stay in sync, why bother.
Whats wrong with gnome is
1) the tarfile releases are undated, you have no idea when they were made,
the cvs server is hugely different from the source tars
2) the cvs server is in the states
3) everything and the kitchen sink is in cvs
and again we have the same issue
Why wine's cvs works is
1) the tarfiles are regular each week, they are dated, the cvs server is never
too far out of sync
2) the cvs server is in denmark (though their reliability leaves something to
3) each change to the cvs tree is posted to a cvs update email list with the
log message, this allows programmer type b to subscribe to the email list,
notice a change to a key module of interest to him, and then start into one
of his irregular download and update cycles.
So for instance right now i want to see how the canvas is looking in gnome
because i might be interested in using it for a project. So how do we achieve
this goal, we download an unnumbered tar release, and spend three days syncing
it up with the last day ? week ? three months ? worth of cvs diffs. Hah no
Needless to say the linux kernel has survived very very well indeed without cvs,
by using patches and regular releases on a very frequent basis. There is no
substitute for regular tar files, though I would also make a case for using
distributed cvs trees, mirrorrin the cvs updates from the server to slaves,
though the sync conditions there would be a veritable nightmare, and
impracticl I suspect, though making automated diffs in the cvs tree from the
last regular release and putting that on a ftp site as a diff is perfectly
acceptable and possible. Again is what wine does.
Rise up and demand your snapshot tarfiles.
Real Life: Caolan McNamara * Doing: MSc in HCI
Work: Caolan.McNamara at domain ul.ie * Phone: +353-86-8790257
URL: http://www.csn.ul.ie/~caolan * Sig: an oblique strategy
This archive was generated by hypermail 2.1.6 : Thu 06 Feb 2003 - 13:04:35 GMT