DEVELOPER INFO ============== MAKING A RELEASE ---------------- Transitioning the code to remove some of the development hooks in order to make a release has several, easy-to-forget steps. They are: 1. Remove the developer hook for 'version': a. Near the end of SConstruct, where it has 'extra_version', remove that. b. If you are bumping the revision, also do that in SConstruct. c. Update linux/debian/changelog 2. Remove the 'developer warning': in data/hydrogen.default.conf change hydrogen_preferences/showDevelWarning to "false". 3. Commit your changes to trunk. 4. Make a tarball of the release (gzipped). Use gzip instead of bzip2 for the folks on Windows. Tarballs should be named: +--- Relese version | | +--- Extra release version info __|__ _|_ hydrogen-0.9.4-rc2.tar.gz 5. If this is an RC release, the following steps are optional. 6. In a clean directory, test build the tarball in as many ways as you can. Call your friends. Have a party. Be sure to build packages on as many systems as possible. Be sure to install and uninstall them, too. 7. Go ahead and build binary packages. Follow the naming convention for the platform that you're building for. Linux: hydrogen_0.9.4rc2_distro_arch.pkg distro: the GNU/Linux distro (e.g. 'lenny' for Debian) arch: the processor it's built for (e.g. i686) pkg: the package management system (deb, rpm) OS X: hydrogen_0.9.4rc2_arch.dmg (arch is optional if the binary will work on both.) Windows: hydrogen_0.9.4rc2.exe 8. If the release passes these "internal" tests, tag the release. Remember, after tagging the release you may not commit changes to the tag. svn cp http://svn.assembla.com/svn/hydrogen/trunk \ http://svn.assembla.com/svn/hydrogen/tags/0.9.4 9. If this is a major release (e.g. 0.9.4), then make a branch for maintenance patches for your release. If this is a maintenance release (e.g. 0.9.4.1) then skip this step. svn cp http://svn.assembla.com/svn/hydrogen/trunk \ http://svn.assembla.com/svn/hydrogen/branches/0.9.4 10. Make announcements. CODING CONVENTIONS ------------------ Use the 'linux' indention. (i.e. Tabs) Allow extra space within parentheses, like this: while( !done ) { foo(); }