howto_release.txt 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261
  1. How to release GRASS GIS binaries and source code
  2. $Date$
  3. Note: This text contains *some* rules only applicable to the
  4. development coordinator (currently Markus Neteler, PSC Chair).
  5. ###########################################
  6. Contents
  7. (A) HOWTO create a release
  8. (B) HOWTO create a branch
  9. ###########################################
  10. (A) HOWTO create a release
  11. 1. Local work (done by release coordinator)
  12. - svn up
  13. - check if
  14. ( cd doc/raster/r.example/ ; make )
  15. ( cd doc/vector/v.example/ ; make )
  16. still compile; fix otherwise
  17. - Check that autoconf scripts are up-to-date (to do only in RC cycle!):
  18. rm -f config.guess config.sub
  19. wget http://git.savannah.gnu.org/cgit/config.git/plain/config.guess
  20. wget http://git.savannah.gnu.org/cgit/config.git/plain/config.sub
  21. svn diff config.guess config.sub
  22. autoconf-2.13
  23. # check and submit to SVN:
  24. svn ci -m"config.guess + config.sub: updated from http://git.savannah.gnu.org/cgit/config.git/plain/" config.guess config.sub configure
  25. # test by running ./configure
  26. - make distclean
  27. - cleanup rubbish:
  28. rm -f locale/templates/*.pot
  29. rm -f locale/po/messages.mo
  30. find . -name '*~' | xargs rm
  31. find . -name '*.bak' | xargs rm
  32. find . -name '.#*' | xargs rm
  33. find . -name '*.orig' | xargs rm
  34. find . -name '*.rej' | xargs rm
  35. find . -name '*.o' | xargs rm
  36. chmod -R a+r *
  37. svn status
  38. - Create release branch (only if not yet existing)
  39. - Update VERSION file to release version:
  40. vim include/VERSION
  41. #example:
  42. 7
  43. 0
  44. 0RC1
  45. 2014
  46. rm -f include/VERSION~
  47. - Update additionally the winGRASS version
  48. grass-addons/tools/wingrass-packager/grass_packager_release.bat
  49. #version:
  50. MAJOR=`cat include/VERSION | head -1 | tail -1`
  51. MINOR=`cat include/VERSION | head -2 | tail -1`
  52. RELEASE=`cat include/VERSION | head -3 | tail -1`
  53. VERSION=${MAJOR}.${MINOR}.${RELEASE}
  54. echo $VERSION
  55. svn ci -m"GRASS GIS $VERSION" include/VERSION
  56. svn up
  57. o Create Changelog file on release branch:
  58. # http://ch.tudelft.nl/~arthur/svn2cl/
  59. svn2cl
  60. mv ChangeLog ChangeLog_$VERSION
  61. head ChangeLog_$VERSION
  62. gzip ChangeLog_$VERSION
  63. o Tag release (http://trac.osgeo.org/grass/browser/grass/tags):
  64. http://svnbook.red-bean.com/en/1.4/svn.branchmerge.tags.html
  65. TODAY=`date +"%Y%m%d"`
  66. RELEASETAG=release_${TODAY}_grass_${MAJOR}_${MINOR}_${RELEASE}
  67. echo $RELEASETAG
  68. URL=https://svn.osgeo.org/grass
  69. svn copy $URL/grass/branches/releasebranch_7_0 \
  70. $URL/grass/tags/$RELEASETAG \
  71. -m "Tagging release grass_${MAJOR}_${MINOR}_${RELEASE}"
  72. o create source package (in the source directory):
  73. echo grass-${VERSION}
  74. mkdir grass-${VERSION}
  75. mv * grass-${VERSION}/
  76. # do not include the debian control files:
  77. mv grass-${VERSION}/debian .
  78. # create the package:
  79. tar cvfzh grass-${VERSION}.tar.gz grass-${VERSION}/* --exclude=.svn
  80. # restore src code location:
  81. mv ./grass-${VERSION}/* .
  82. rmdir ./grass-${VERSION}
  83. # Calculating MD5 sum:
  84. md5sum grass-${VERSION}.tar.gz > grass-${VERSION}.md5sum
  85. o reset include/VERSION file to SVN version:
  86. vim include/VERSION
  87. #example
  88. 7
  89. 0
  90. 0svn
  91. 2014
  92. rm -f include/VERSION~
  93. svn ci -m"back to SVN" include/VERSION
  94. o Store the source tarball (twice) in (use scp -p FILES grass:):
  95. SERVER1=grass.osgeo.org:/osgeo/grass/grass-cms/grass$MAJOR$MINOR/source/
  96. SERVER2=download.osgeo.org:/osgeo/download/grass/grass$MAJOR$MINOR/source/
  97. echo $SERVER1
  98. echo $SERVER2
  99. # copy along with associated files:
  100. scp -p grass-$VERSION.* AUTHORS COPYING ChangeLog_$VERSION.gz \
  101. INSTALL REQUIREMENTS.html SUBMITTING neteler@$SERVER1
  102. scp -p grass-$VERSION.* AUTHORS COPYING ChangeLog_$VERSION.gz \
  103. INSTALL REQUIREMENTS.html SUBMITTING neteler@$SERVER2
  104. o update web site to new version: CMS
  105. - News section
  106. - http://grass.osgeo.org/download/software/
  107. - http://grass.osgeo.org/download/software/sources/
  108. - http://grass.osgeo.org/grass70/
  109. - http://grass.osgeo.org/home/history/releases/
  110. - http://grass.osgeo.org/development/svn/svn-tags/ (add tag): echo $RELEASETAG
  111. write announcement
  112. - store in trac: http://trac.osgeo.org/grass/wiki/Release/7.XX.YY-News
  113. - store in Web as announces/announce_grass$MAJOR$MINOR$RELEASE.html <- how? with protected PHP upload page?
  114. o upload user HTML manual in case of *final release* from compiled English
  115. version at (warning: needs stuff to be compiled).
  116. - download new source code package, compile with most settings
  117. - cd dist.$ARCH/docs/html
  118. echo www/grass$MAJOR$MINOR/manuals/
  119. scp -r * neteler@grass.osgeo.org:/osgeo/grass/grass-cms/grass$MAJOR$MINOR/manuals/
  120. scp -r * neteler@download.osgeo.org:/osgeo/download/grass/grass$MAJOR$MINOR/manuals/
  121. o stable release: update cronjob 'cron_grass_HEAD_src_snapshot.sh' to next but one
  122. release tag for the differences
  123. o WinGRASS notes:
  124. Update grass_packager_release.bat, eg.
  125. set MAJOR=7
  126. set MINOR=0
  127. set PATCH=0beta3
  128. Update addons (grass_addons.sh) rules, eg.
  129. compile $SVN_PATH/grass7 $GISBASE_PATH/grass700beta3 $ADDON_PATH/grass700beta3/addons
  130. Modify grass_copy_wwwroot.sh accordingly, eg.
  131. copy_addon 700beta3 7.0.0beta3
  132. 2. Tell others about it:
  133. * If release candidate:
  134. - <grass-announce@lists.osgeo.org>
  135. - <grass-dev@lists.osgeo.org>
  136. * If official release:
  137. - publish related announcement press release at:
  138. Our GRASS web site: /announces/
  139. Note: DON'T use relative links there
  140. Our main mailing lists:
  141. http://lists.osgeo.org/mailman/listinfo/grass-announce
  142. <grass-announce@lists.osgeo.org>
  143. http://lists.osgeo.org/mailman/listinfo/grass-dev
  144. <grass-dev@lists.osgeo.org>
  145. http://lists.osgeo.org/mailman/listinfo/grassuser
  146. <grass-user@lists.osgeo.org>
  147. DebianGIS: <debian-gis@lists.debian.org>
  148. FreeGIS: <freegis-list@intevation.de>
  149. Geowanking: <geowanking@lists.burri.to>
  150. OSGeo.org: <news_item@osgeo.org>
  151. Email:
  152. http://www.gis-news.de/ (franz-josef.behr@gismngt.de)
  153. http://www.gisdevelopment.net (news@gisdevelopment.net)
  154. http://spatialnews.geocomm.com/submitnews.html (not free any more, convince editor@geocomm.com)
  155. redazione@geoforus.it
  156. mfeilner@linuxnewmedia.de
  157. info@harzer.de
  158. info@j-geoinfo.net
  159. pr@geocomm.com
  160. editor-geo@geoconnexion.com
  161. Web:
  162. https://plus.google.com/u/0/communities/111147786674687562495 (G+ GRASS GIS community)
  163. http://slashgeo.org/submit.pl
  164. http://freshmeat.net/projects/grass/?highlight=GRASS (update, MN)
  165. http://linuxtoday.com/contribute.php3
  166. https://joinup.ec.europa.eu/software/grassgis/home (submit news, MN)
  167. http://www.macnn.com/contact/newstips/1
  168. http://www10.giscafe.com/submit_material/submit_options.php#Press (MN)
  169. http://www.freegis.org (update, MN)
  170. http://www.directionsmag.com/pressreleases/ (News -> Post Press Release)
  171. http://www.gnu.org/directory/science/geography/grass.html
  172. http://www.kde-apps.org/content/show.php?content=19776
  173. http://www.opendesktop.org/content/show.php?content=19776
  174. http://news.eoportal.org/share_news.html (MN)
  175. -> Share your news with the EO community
  176. http://www.osdir.com/Downloads+index-req-viewsdownload-sid-206.phtml
  177. http://groups.google.com/group/Remote-Sensing-GIS-for-a-New-World
  178. http://groups.google.com/group/comp.infosystems.gis
  179. http://www.heise.de/software/download/edit_7105 (update, MN)
  180. See also: http://grass.osgeo.org/wiki/Contact_Databases
  181. ... anywhere else? Please add here.
  182. ###########################################
  183. (B) HOWTO create a branch
  184. 1. see SVN book:
  185. http://svnbook.red-bean.com/en/1.1/ch04s07.html
  186. GRASS 7.0 release branch:
  187. BRANCH=releasebranch_7_0
  188. URL=https://svn.osgeo.org/grass
  189. svn copy $URL/grass/trunk \
  190. $URL/grass/branches/$BRANCH \
  191. -m "Development branch for GRASS 7.0.x"
  192. Switching current local copy to above development branch:
  193. (http://svnbook.red-bean.com/en/1.1/ch04s05.html)
  194. cd /path/to/your/local/copy/trunk
  195. svn switch https://svn.osgeo.org/grass/grass/branches/releasebranch_7_0 .
  196. ----------
  197. GRASS GIS 7.0 release branch creation
  198. svn copy https://svn.osgeo.org/grass/grass/trunk/ \
  199. https://svn.osgeo.org/grass/grass/branches/releasebranch_7_0 \
  200. -m "Creating the GRASS GIS 7.0 release branch (development started in 04/2008, r31142)"