John Chamberlain
Developer Diary
 Developer Diary · You Heard It Here First · 14 November 2003
The Mechanics of a Release
Do you ever wonder what a software developer must do to create a release? Usually nothing because this task is done by the "build engineer" or a release team in a really big company. For a small company like OPeNDAP.org the developer of a product generally has to make the release, the file or bundle of files the user needs to install the product on their machine. Here's some of the things I have had to do this time around to release our latest version 2.23 of the OPeNDAP Data Connector:

01 test the developer build a final time to make sure it really works
02 use an Ant script to build the release package
03 oops, something changed so the script failed, fix it, and run the script again
04 download the new JRE (3rd party software we need to run our software)
05 make a prototype installation (as it would appear on a user machine) using stuff from 3 + 4
06 test the prototype installation, oop it doesn't work (the config has changed)
07 fix the config
08 repeat step 6, oops it doesn't work (the JRE is new and incompatible with the config)
09 spend half an hour trying to determine the new startup command for the config
10 hey, it starts, test it again, does it work? yes
11 change the dates/transitory info in various text documents
12 delete all the preference/option files/directories the testing generated
13 zip the directory tree and make it self-extracting
14 upload the zipped archive to ftp server
15 log on to the ftp server and move the archive to the download area
16 log on to the web server machine
17 modify the release page to point to the new download
18 update the release notes and other info on the web page

And that's just the Windows version. Repeat all 18 steps (with variations) for Linux/UNIX version then repeat them again for the Macintosh version. Aren't you glad you're not a build engineer?

Developer's Diary 14 November 2003 · info@johnchamberlain.com · bio · Revised 14 November 2003 · Pure Content