These are a few notes on the release process

Release steps

I usually release by doing the following:

  • Use the test server (griddev01) to setup a fac simile of the production server. I take the copy of the gums.config from the prod server, modify it to make sure that the test server is not going to corrupt the data, and put it on the test server.
  • Polishing phase, which means run it as if it were the prod server, simulate gatekeeper coming in (with the command line client), run functionalities old and new, and fix whatever things are not right (including typos, logs that are not clear, ...)
  • Once you are confident that everything is good enough (which unfortunately is subjective), create the first packaged release. Change the release number in the main project.xml file (./siteAAA/GUMS/project.xml), which will change for all GUMS components, create the packages, install on the test server to see that they work correctly
  • Install the package on the production server and leave it there for some time (within which no changes in CVS are allowed). If you see a problem, fix in CVS, rebuild the packages and install. No need to change the version number, essentially it's like you are creating a new beta every time. The build number, which is the time in which you build, is information enough for you to know what version you are installing. If you are not making the betas public, there is no need to go to the extra effort of renaming.
  • While you wait, it's a good time to actually review the manual, and fix all the things that are now outdated
  • When you have enough confidence (two weeks of smooth running are enough), tag CVS (the usual format is GUMS_1_1_0 for GUMS 1.1.0, be sure that _everything_ was actually in CVS before tagging, including the modified project.xml), build the final packages, modify the download page information to include the new release
  • Change back the version in project.xml to SNAPSHOT
  • Make the announcement on the appropriate lists

That's it!