123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302 |
- How to release GRASS GIS binaries and source code
- $Date$
- Note: This text contains *some* rules only applicable to the
- development coordinator (currently Markus Neteler, PSC Chair).
- ###########################################
- Contents
- (A) HOWTO create a release
- (B) HOWTO create a branch
- ###########################################
- (A) HOWTO create a release
- 1. Local work (done by release coordinator)
- - svn up
- - svn status --no-ignore
- - check if
- ( cd doc/raster/r.example/ ; make clean ; make )
- ( cd doc/vector/v.example/ ; make clean ; make )
- still compile; fix otherwise
- - fix typos with tools/fix_typos.sh
-
- - Check that autoconf scripts are up-to-date (to do only in RC cycle!):
- rm -f config.guess config.sub
- wget http://git.savannah.gnu.org/cgit/config.git/plain/config.guess
- wget http://git.savannah.gnu.org/cgit/config.git/plain/config.sub
- svn diff config.guess config.sub
- autoconf-2.13
- # check and submit to SVN:
- svn ci -m"config.guess + config.sub: updated from http://git.savannah.gnu.org/cgit/config.git/plain/" config.guess config.sub configure
- # test by running ./configure
- - make distclean
- - cleanup rubbish:
- rm -f locale/templates/*.pot
- rm -f locale/po/messages.mo
- find . -name '*~' | xargs rm
- find . -name '*.bak' | xargs rm
- find . -name '.#*' | xargs rm
- find . -name '*.orig' | xargs rm
- find . -name '*.rej' | xargs rm
- find . -name '*.o' | xargs rm
- find . -name '*.pyc' | xargs rm
- rm -f gui/wxpython/menustrings.py gui/wxpython/build_ext.pyc gui/wxpython/xml/menudata.xml gui/wxpython/xml/module_tree_menudata.xml
- chmod -R a+r *
- svn status
- - Create release branch (only if not yet existing)
- - Update VERSION file to release version:
- vim include/VERSION
- #example:
- 7
- 2
- 1RC1
- 2017
- rm -f include/VERSION~
- - Update OSGeo4W setup.hint file
- - for RC candidates use 'test' keyword
- - for final version use 'curr' keyword
- vim mswindows/osgeo4w/setup.hint.tmpl
- #version:
- MAJOR=`cat include/VERSION | head -1 | tail -1`
- MINOR=`cat include/VERSION | head -2 | tail -1`
- RELEASE=`cat include/VERSION | head -3 | tail -1`
- VERSION=${MAJOR}.${MINOR}.${RELEASE}
- echo $VERSION
- svn ci -m"GRASS GIS $VERSION" include/VERSION mswindows/osgeo4w/setup.hint.tmpl
- svn up
- o Create Changelog file on release branch:
- # http://ch.tudelft.nl/~arthur/svn2cl/
- svn2cl
- mv ChangeLog ChangeLog_$VERSION
- head ChangeLog_$VERSION
- gzip ChangeLog_$VERSION
- o Tag release (http://trac.osgeo.org/grass/browser/grass/tags):
- http://svnbook.red-bean.com/en/1.4/svn.branchmerge.tags.html
- TODAY=`date +"%Y%m%d"`
- RELEASETAG=release_${TODAY}_grass_${MAJOR}_${MINOR}_${RELEASE}
- echo $RELEASETAG
- URL=https://svn.osgeo.org/grass
- svn copy $URL/grass/branches/releasebranch_7_2 \
- $URL/grass/tags/$RELEASETAG \
- -m "Tagging release 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=.svn
- # 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 SVN version:
- vim include/VERSION
- #example
- 7
- 2
- 1svn
- 2017
- rm -f include/VERSION~
- svn ci -m"back to SVN" include/VERSION
- o Store the source tarball (twice) in (use scp -p FILES grass:):
- SERVER1=grass.osgeo.org:/var/www/grass/grass-cms/grass$MAJOR$MINOR/source/
- SERVER2=upload.osgeo.org:/osgeo/download/grass/grass$MAJOR$MINOR/source/
- echo $SERVER1
- echo $SERVER2
- # copy along with associated files:
- scp -p grass-$VERSION.* AUTHORS COPYING ChangeLog_$VERSION.gz \
- INSTALL REQUIREMENTS.html SUBMITTING neteler@$SERVER1
- scp -p grass-$VERSION.* AUTHORS COPYING ChangeLog_$VERSION.gz \
- INSTALL REQUIREMENTS.html SUBMITTING neteler@$SERVER2
- o update winGRASS related files
- - Update the winGRASS version
- grass-addons/tools/wingrass-packager/grass_packager_release.bat
- grass-addons/tools/wingrass-packager/grass_addons.sh
- grass-addons/tools/wingrass-packager/grass_copy_wwwroot.sh
- o update web site to new version: CMS
- - News section
- - http://grass.osgeo.org/download/software/
- - http://grass.osgeo.org/download/software/sources/
- - http://grass.osgeo.org/download/software/linux/
- - http://grass.osgeo.org/home/history/releases/
- - http://grass.osgeo.org/development/svn/svn-tags/ (add tag): echo $RELEASETAG
- write announcement
- - store in trac:
- http://trac.osgeo.org/grass/wiki/Release/7.XX.YY-News
- https://trac.osgeo.org/grass/wiki/Grass7/NewFeatures72 <- major releases only
- - update version in https://grasswiki.osgeo.org/wiki/GRASS-Wiki
- - store in Web as announces/announce_grass$MAJOR$MINOR$RELEASE.html <- how? with protected PHP upload page?
- full release:
- - update trac
- - milesstone/add next: https://trac.osgeo.org/grass/admin/ticket/milestones
- - add released version: https://trac.osgeo.org/grass/admin/ticket/versions
-
- o upload user HTML manual in case of *final release* from compiled English
- version at (warning: needs stuff to be compiled).
- - download new source code package, compile with most settings
- - cd dist.$ARCH/docs/html
- echo www/grass$MAJOR$MINOR/manuals/
- scp -r * neteler@grass.osgeo.org:/osgeo/grass/grass-cms/grass$MAJOR$MINOR/manuals/
- scp -r * neteler@upload.osgeo.org:/osgeo/download/grass/grass$MAJOR$MINOR/manuals/
- o stable release: update cronjob 'cron_grass_HEAD_src_snapshot.sh' on grass.osgeo.org to next but one
- release tag for the differences
- o Trac updates:
- - Add new release to https://trac.osgeo.org/grass/admin/ticket/versions
- - Set "complete" flag in https://trac.osgeo.org/grass/milestone/7.2.x --> Edit Milestone
- - Batch modify tickets, set to next milestone (update this query accordingly: two entries to change)
- https://trac.osgeo.org/grass/query?status=assigned&status=new&status=reopened&milestone=7.2.0&milestone=7.2.1&group=status&col=id&col=summary&col=owner&col=type&col=priority&col=component&col=version&order=priority
- - Set max items to 1000, then select all shown tickets via Status: assigned/new/reopened sections
- - Scroll down to "Batch modify": under the "Comment" section, add Field "Milestone" and set to next version
- - then use "Change ticket" button, done.
- - Only in case of new release branch being created:
- Add Wiki Macro definitions for manual pages G7X:modulename
- - Edit: https://trac.osgeo.org/grass/wiki/InterMapTxt
- o WinGRASS notes:
- Update grass_packager_release.bat, eg.
- set MAJOR=7
- set MINOR=2
- set PATCH=0RC1
- Update addons (grass_addons.sh) rules, eg.
- compile $SVN_PATH/grass7 $GISBASE_PATH/grass720RC1 $ADDON_PATH/grass720RC1/addons
- Modify grass_copy_wwwroot.sh accordingly, eg.
- copy_addon 720RC1 7.2.0RC1
- o Launchpad notes:
- Create milestone and release: https://launchpad.net/grass/+series
- Upload tarball for created release
- Update daily recipe contents: https://code.launchpad.net/~grass/+recipe/grass-trunk
- o Packaging notes:
- https://trac.osgeo.org/grass/wiki/BuildHints
- - https://trac.osgeo.org/grass/wiki/DebianUbuntuPackaging
- - https://trac.osgeo.org/grass/wiki/CompileOnWindows
- 2. Tell others about it:
- * If release candidate:
- - <grass-announce@lists.osgeo.org>
- - <grass-dev@lists.osgeo.org>
- * If official release:
- - publish related announcement press release at:
-
- Our GRASS web site: /announces/
- Note: DON'T use relative links there
- Our main mailing lists:
- http://lists.osgeo.org/mailman/listinfo/grass-announce
- <grass-announce@lists.osgeo.org>
- http://lists.osgeo.org/mailman/listinfo/grass-dev
- <grass-dev@lists.osgeo.org>
- http://lists.osgeo.org/mailman/listinfo/grassuser
- <grass-user@lists.osgeo.org>
- DebianGIS: <debian-gis@lists.debian.org>
- FreeGIS: <freegis-list@intevation.de>
- Geowanking: <geowanking@geowanking.org>
- OSGeo.org: <news_item@osgeo.org>
- Email:
- info@osgeo.org
- http://www.gis-news.de/ (franz-josef.behr@gismngt.de)
- http://spatialnews.geocomm.com/submitnews.html (not free any more, convince editor@geocomm.com)
- redazione@geoforus.it
- mfeilner@linuxnewmedia.de
- info@harzer.de
- pr@geocomm.com
- editor-geo@geoconnexion.com
- Web:
- https://plus.google.com/u/0/communities/111147786674687562495 (G+ GRASS GIS community)
- http://linuxtoday.com/contribute.php3
- https://joinup.ec.europa.eu/software/grassgis/home (submit news, MN)
- http://www.macnn.com/contact/newstips/1
- http://www10.giscafe.com/submit_material/submit_options.php#Press (MN) --> Press releases
- http://www.directionsmag.com/pressreleases/ (News -> Submit Press Release)
- http://directory.fsf.org/wiki/GRASS_%28Geographic_Resources_Analysis_Support_System%29
- https://www.linux-apps.com/p/1128004/edit/ (MN)
- https://news.eoportal.org/web/eoportal/share-your-news (MN)
- -> Share your news with the EO community
- https://www.heise.de/download/product/grass-gis-7105 (update, MN)
- See also: http://grass.osgeo.org/wiki/Contact_Databases
- ... anywhere else? Please add here.
- ###########################################
- (B) HOWTO create a branch
- 1. see SVN book:
- http://svnbook.red-bean.com/en/1.1/ch04s07.html
- GRASS 7.2 release branch:
- BRANCH=releasebranch_7_2
- URL=https://svn.osgeo.org/grass
- svn copy $URL/grass/trunk \
- $URL/grass/branches/$BRANCH \
- -m "Development branch for GRASS 7.2.x"
- Switching current local copy to above development branch:
- (http://svnbook.red-bean.com/en/1.1/ch04s05.html)
- cd /path/to/your/local/copy/trunk
- svn switch https://svn.osgeo.org/grass/grass/branches/releasebranch_7_2 .
- ----------
- Example: GRASS GIS 7.2 release branch creation
- svn copy https://svn.osgeo.org/grass/grass/trunk/ \
- https://svn.osgeo.org/grass/grass/branches/releasebranch_7_2 \
- -m "Creating the GRASS GIS 7.2 release branch (branch started in 05/2016, r68500)"
|