4.6.1 release process proposal

Biju Chacko botsie at xfce.org
Fri Jan 16 04:43:58 CET 2009


Brian J. Tarricone wrote:
> Hi guys,
> 
> I have a bit of an experiment in mind for our first post-4.6 point
> release.  Stephan has been doing a fabulous job as release manager, but,
> as is the case with all of us, he doesn't always have enough time to put
> in to keep releases churning out as timely as we'd hope.  Plus, building
> and testing all the tarballs takes a huge amount of time, and is
> incredibly tedious.  It's not uncommon for it to be a multi-day process,
> which, frankly, kinda sucks.
> 
> So, I'd like to grab a page from how GNOME (and undoubtedly others) do
> it.  The idea is basically:
> 
> Building and submitting the release tarball is the responsibility of the
> module maintainer.

I'm wary of doing a release with components built on multiple 
environments -- it requires a fair amount of care and discipline to get 
right.

I'd suggest a CI (Continuous Integration) System running a Release 
Pipeline. Basically, on every check-in the entire project is rebuilt in 
a number of steps:

1. Compile everything.

1a. Normally we'd run a test suite here but we don't actually have one.

2. Build release artifacts (tarballs, rpms, debs, etc)

3. Automated verification of artifacts (perhaps comparison against a 
Manifest) -- this is just a sanity test against a major failure.

4. Manual download and testing of the artifacts by module maintainers.

5. Release Manager verifies that all modules have been signed-off and 
executes an automated Release to:

	- Download Site
	- RPM Repo
	- APT Repo

Benefits:

- All grunt work is automated and Release managers and maintainers only 
do stuff which needs their attention.

- We would use a canonical environment for all builds. We wouldn't get 
caught by a maintainer using a newer GTK+, say, than what we've targeted 
for a particular release.

- During a development phase we get quick feedback on whether modules 
are broken or not.

- We'd be able to release nightly builds to make it easier for people to 
test trunk.

Basically, this is the same as Brian's idea except with the boring bits 
taken out. ;-)

I've got a fair amount of experience in this area so I could help set 
this up.

Full Disclosure: I work for a company, ThoughtWorks, that makes open 
source and proprietary tools for Continuous Integeration: CruiseControl, 
CruiseControl.net, CruiseControl.rb and Cruise.

-- b




More information about the Xfce4-dev mailing list