Information relating to releasing new versions of BC Lab software, especially for installation on our production servers
Software must be in the our software subversion repository: https://depot.bmb.uga.edu/svn/software.
Software must include a README file containing the complete procedure required to install the software. Steps should be written out in enough detail so that someone without any familiarity with the software can install it.
It is often desirable to have two installation sections in the README, one for updating already installed software and one for installing the software from scratch. The section detailing updating installed software might look something like:
Upgrading --------- Release-1 -> Release-2 ---------------------- 1. Copy .... to .... . . . Release-2 -> Release-3 ---------------------- ...
In the source code itself, all configuration specific information/variables etc. should be placed in a special section at the top of the source code file or in a separate module/library. Special configuration sections at the top of files should be delimited in some fashion so that it is obvious where the section begins and where it ends.
If source files in a project begin to share certain information, for example, two files use the same database, a separate module/library should be created. Don't simply copy/paste portions of the top sections between different programs/scripts.
Procedure 1. Release Procedure
Tag the software with a suitable “pre-release” tag (eg, “prerelease-3”). This will allow you to continue working on the program if you wish without affecting the version that will be installed.
Email ... and CC to the project coordinator for your group (either Dawei or Wolfram).
When time allows, a system administrator will attempt to install the software by following the relevant section of the README file.
The system administrator will attempt to preserve the previous (installed) version (configuration, files etc.) in case the installation fails. If the installation fails for some reason, the system administrator will roll-back to this previous version. The administrator will then email the software developer. At this point, the administrator and developer may need to agree to meet to try and resolve the problem efficiently.
Upon successful installation, the administrator will reply to the original email confirming the installation. The developer should check the installation and if satisifed, must tag the software in the repository. A final email should be sent to the system administrator verifying successful installation and containing the name used for the tag (eg “release-3”).
The system administrator will create a branch based on the tag and commit all configuration changes made in installing the software to this branch. Beyond the initial install of a package, this branch will serve as the base point for updating installed software preventing the administrator from having to do the same configuration steps over and over again and making it easier to keep the installed version and latest version of a given package in sync.