How to release GRASS binaries and source code $Date$ Note: This text contains *some* rules only applicable to the development coordinators at ITC-irst (currently Markus Neteler). ########################################### Contents (A) HOWTO create a release (B) HOWTO create a branch ########################################### (A) HOWTO create a release 1. Local work (basically at ITC-irst) o - cleanup rubbish: find . -name '*~' | xargs rm find . -name '*.o' | xargs rm find . -name '*.bak' | xargs rm find . -name '.#*' | xargs rm - Update VERSION file to release version: vim include/VERSION #example: 6 0 2RC1 2006 rm -f include/VERSION~ - submit include/VERSION to CVS - cvs up -dP - Create release branch (only if not yet existing) o Create Changelog file CVSBRANCH=`cat CVS/Entries | grep AUTHORS | cut -d'/' -f6 | cut -b2-` echo $CVSBRANCH #version: MAJOR=6 MINOR=1 RELEASE=`cat include/VERSION | head -3 | tail -1` VERSION=${MAJOR}.${MINOR}.${RELEASE} echo $VERSION #create ChangeLog on release branch: sh tools/cvs2cl.pl --follow "$CVSBRANCH" mv ChangeLog ChangeLog_$VERSION gzip ChangeLog_$VERSION o Tag release: echo grass_${MAJOR}_${MINOR}_${RELEASE} cvs tag grass_${MAJOR}_${MINOR}_${RELEASE} o create source package (in the source directory): echo grass-${VERSION} mkdir grass-${VERSION} mv * grass-${VERSION}/ # do not include the debian control files: mv grass-${VERSION}/debian . # create the package: tar cvfzh grass-${VERSION}.tar.gz grass-${VERSION}/* --exclude=CVS # restore src code location: mv ./grass-${VERSION}/* . rmdir ./grass-${VERSION} # Calculating MD5 sum: md5sum grass-${VERSION}.tar.gz > grass-${VERSION}.md5sum o reset include/VERSION file to CVS version #example 6 0 2cvs 2006 o Store the source tarball in (use scp -p FILES grass:): http://grass.itc.it/grass/grass$MAJOR$MINOR/source/ along with associated files: scp grass-$VERSION.* AUTHORS ChangeLog_$VERSION.gz INSTALL REQUIREMENTS.html SUBMITTING SUBMITTING_TCLTK SUBMITTING_SCRIPTS neteler@grass.itc.it:www/grass$MAJOR$MINOR/source/ o update web site to new version (HTML in Web-CVS) - main.inc - download/software.inc - grass$MAJOR$MINOR/main.inc - devel/grasshist.html - devel/grassreleases.html - bugtracking/bugreport.html (not always) - devel/cvstags.inc (add tag) write announcement - store in Web as announces/announce_grass$MAJOR$MINOR$RELEASE.html o upload user HTML manual in case of *final release* from compiled English version at: cd dist.$ARCH/docs/html scp * neteler@grass.itc.it:www/grass$MAJOR$MINOR/manuals/html$MAJOR$MINOR_user/ 2. Tell others about it: * If release candidate: - - * If official release: - publish related announcement press release at: Our GRASS web site: /announces/ Our main mailing lists: http://grass.itc.it/mailman/listinfo/grass-announce http://grass.itc.it/mailman/listinfo/grass-dev http://grass.itc.it/mailman/listinfo/grassuser http://grass.itc.it/mailman/listinfo/wingrass DebianGIS: FreeGIS: Geowanking: OSGeo.org: + at https://mail.osgeo.org/servlets/ProjectMailingListList http://grass.osgeo.org (is fed through ) http://slashgeo.org/submit.pl http://spatialnews.geocomm.com/submitnews.html (not free any more) http://freshmeat.net/projects/grass/?highlight=GRASS (update, MN) http://linuxtoday.com/contribute.php3 http://www.newsforge.com/submit.pl http://programming.newsforge.com/submit.pl http://osx.macnn.com/ (email to news tips) http://www.gis-news.de/ (news@gismngt.de) http://www.giscafe.com/ (link: submit material, needs registration) http://www.freegis.org (update, MN) http://www.directionsmag.com/pressreleases.php (News -> Post Press Release) http://www.gismonitor.com/news/submit_news.php http://www.gisdevelopment.net (click on 'Submit Press Release') http://www.gnu.org/directory/science/geography/grass.html http://www.kde-apps.org/content/show.php?content=19776 http://news.eoportal.org/cgi-bin/eoportal_header.pl?dw=psr&site=software&words=type http://www.osdir.com/Downloads+index-req-viewsdownload-sid-206.phtml http://www.foss4g.org/FOSS4G/modules.php?name=Submit_News http://groups.google.com/group/Remote-Sensing-GIS-for-a-New-World http://groups.google.com/group/comp.infosystems.gis ... anywhere else? Please add here. ########################################### (B) HOWTO create a branch 1. update from CVS into clean directory 2. create the branch: BRANCH="releasebranch_6_1" cvs tag -b $BRANCH 3. checkout the branch into new directory: yourcvsid=markus export CVSROOT=:ext:$yourcvsid@grasscvs:/grassrepository cvs -z3 checkout -r $BRANCH grass6 4. Take care that relevant HEAD changes are backported. 5. For releasing beta1,..betaN, RC1..RCN, follow the standard release rules.