Hi James,

On Friday 07 May 2010 06:06:32 pm James Turner wrote:
> Anyway, the key thing - what are the steps to make a release happen. I'm
> seeking to capture the actual steps (and ideally script them), so even if
> Curt & Durk both get hit by the proverbial bus tomorrow, we can still make
> a Flightgear release ever again. But also, I'm seeking to remove the human
> factors from the release process, and especially not feel that we're
> overloading people just because a release needs to happen - eg, around
> LinuxTag Durk is often quite busy organising things :)
>
Well, I already gave you the outline over breakfast in Berlin, but 
nevertheless, I feel that it doesn't hurt to give a quick summary of our 
generic release procedure. I'll start by our historical cvs based procedure, 
and will later on give some indication as to how we can fit in our new git 
repository.

When I first started coordinating the releases, my first and foremost aim was 
to regularize the release cycle by making sure we did at least one release a 
year. More or less coincidentally, this happened around Christmas / end of the 
year. Typically preparations for the release started sometime in September / 
October by sending out a couple of emails to the developers list. These emails  
concerned matters such as our base package aircraft selection and the request 
to set a date for a feature freeze. Typically, October through late November 
were filled with bug fixing. Once we determined that the could was reasonably 
stable, I would update the version numbers for simgear, flightgear, and data, 
and run a make dist command on all three. Then, I would tag the CVS 
repositories and place the tar files resulting from the make dist commands 
somewhere on an ftp / web server. Usually this was my home PC, which was 
connected to the Internet through a rather slow wireless lan and ADSL upload 
link. I'd announce the presence of these packages to Curt, Fred, and 
Tatsuhiro, who would make the sources available for public download and build 
the windows and mac binary distributions respectively. Eventually, all files 
would be sent to Curt for placement on the flightgear.org website. This 
procedure would start with one release candidate and repeated if necessary. 

While we were approaching the final stages of the release cycle, I would start 
browsing the commit logs, in order to write a comprehensive summary of all the 
major changes that had happened during that year. In more recent years, this 
also included generating some screen shots for promotional purposes and 
writing a release announcement. 

Starting with the maintenance release 1.9.1, we began using Tim Moore's git 
repository. The obvious advantage was that Tim was able to only push bug fixes 
from CVS into the git repository, so that development of new features could 
continue without the risk of breaking  the stable code base. 

FlightGear 2.0 was entirely -as in source code- released from git, while the 
data tree was still downloaded from CVS. For this release, we changed our 
policy slightly, because we weren't too thrilled about having to push a 250+ 
MB base package through my slow ADSL upload. So, instead, we tagged the base 
package and asked Curt, Fred, and Tatsuhiro, to check and build the base 
package themselves. 

The release process of FlightGear 2.0 clearly marked a transition. Although 
the procedure worked reasonably well, we did encounter a few glitches. The 
most striking one was that it was seemingly impossible for me to remotely tag 
the base package, so I had to request that Curt finishes this job. In the 
midst of this, I wasn't able to build FlightGear on a clean system, so I 
missed the fact that a few files were not included in the data tar file, as 
well as running into a few other miscellaneous problems. 

With git allowing much finer grained control over revision changes, I don't 
think that we should encounter such trouble in the near future. With your 
automatic build system in place, we should in fact be able to automatize much 
of the process. The only two things that I can think of are 1) the fact that 
non-technical side of the release process (writing a ChangeLog summary; 
generating promotional materials) as well as pushing the result onto a central 
ftp server still requires some manual intervention. The question is how we 
could streamline that. 

Cheers,
Durk
------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Flightgear-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

Reply via email to