#------------------------------------------------------------------------------ # SourceForge # This project is stored on SourceForge as http://sf.net/projects/shunit2. The source code can be accessed using the following information. * Subversion $ svn co https://shunit2.svn.sourceforge.net/svnroot/shunit2/trunk/source shunit2 Subversion may also be browsed via a web browser at http://svn.sourceforge.net/shunit2 #------------------------------------------------------------------------------ # Making a release # For these steps, it is assumed we are working with release 2.0.0. Steps: * write release notes * update version * finish changelog * check all the code in * tag the release * export the release * create tarball * md5sum the tarball and sign with gpg * update website * post to SourceForge and Freshmeat WRITE RELEASE NOTES This should be pretty self explainatory. Use one of the release notes from a previous release as an example. To get the versions of the various shells, do the following: Cygwin bash: $ bash --version ksh: actually pdksh pdksh: look in the downloaded Cygwin directory Linux bash: $ bash --version dash: look at installed version ksh: $ ksh --version pdksh: $ strings /bin/pdksh |grep 'PD KSH' zsh: $ zsh --version Solaris 10 sh: not possible bash: $ bash --version ksh: $ strings /usr/bin/ksh |grep 'Version' UPDATE VERSION Edit the shunit2 source code, and change the version number in the comment, as well as in the __SHUNIT_VERSION variable. Next, edit the src/docbook/shunit2.xml file, edit the version in the element, and make sure there is a revision section for this release. FINISH DOCUMENTATION Make sure that any remaning changes get put into the CHANGES-X.X.txt file. Finish writing the RELEASE_NOTES-X.X.X.txt. Once it is finished, run it through the 'fmt' command to make it pretty. $ fmt -w 80 RELEASE_NOTES-2.0.0.txt >RELEASE_NOTES-2.0.0.txt.new $ mv RELEASE_NOTES-2.0.0.txt.new RELEASE_NOTES-2.0.0.txt We want to have an up-to-date version of the documentation in the release, so we'd better build it. $ pwd .../shunit2/source/2.0 $ make docs ... $ cp -p build/shunit2.html doc $ svn ci -m "" doc/shunit2.html CHECK IN ALL THE CODE This step is pretty self-explainatory TAG THE RELEASE $ pwd .../shunit2/source $ ls 2.0 2.1 $ svn cp -m "Release 2.0.0" \ 2.0 https://shunit2.svn.sourceforge.net/svnroot/shunit2/tags/source/2.0.0 EXPORT THE RELEASE $ pwd .../shunit2/builds $ svn export \ https://shunit2.svn.sourceforge.net/svnroot/shunit2/tags/source/2.0.0 \ shunit2-2.0.0 CREATE TARBALL $ tar cfz ../releases/shunit2-2.0.0.tgz shunit2-2.0.0 MD5SUM THE TARBALL AND SIGN WITH GPG $ cd ../releases $ md5sum shunit2-2.0.0.tgz >shunit2-2.0.0.tgz.md5 $ gpg --default-key kate.ward@forestent.com --detach-sign shunit2-2.0.0.tgz UPDATE WEBSITE Again, pretty self-explainatory. Make sure to copy the MD5 and GPG signature files. Once that is done, make sure to tag the website so we can go back in time if needed. $ pwd .../shunit2 $ ls source website $ svn cp -m "Release 2.0.0" \ website https://shunit2.svn.sourceforge.net/svnroot/shunit2/tags/website/20060916 Now, update the website. It too is held in Subversion, so ssh into SourceForge and use 'svn up' to grab the latest version. POST TO SOURCEFORGE AND FRESHMEAT http://sourceforge.net/projects/shunit2/ http://freshmeat.net/ #------------------------------------------------------------------------------ # Related documentation # Docbook XML docbook-xml-4.4.zip http://www.docbook.org/xml/4.4/docbook-xml-4.4.zip http://www.oasis-open.org/docbook/xml/4.4/docbook-xml-4.4.zip docbook-xml-4.5.zip http://www.docbook.org/xml/4.5/docbook-xml-4.5.zip Docbook XSL docbook-xsl-1.71.0.tar.bz2 http://prdownloads.sourceforge.net/docbook/docbook-xsl-1.71.0.tar.bz2?download docbook-xsl-1.71.1.tar.bz2 http://downloads.sourceforge.net/docbook/docbook-xsl-1.71.1.tar.bz2?use_mirror=puzzle JUnit http://www.junit.org $Revision$