howto_release.txt 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. How to release GRASS binaries and source code
  2. $Date$
  3. Note: This text contains *some* rules only applicable to the
  4. development coordinators at CEA (currently Markus Neteler).
  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 (basically at CEA)
  12. - check if
  13. ( cd doc/raster/r.example/ ; make )
  14. ( cd doc/vector/v.example/ ; make )
  15. still compile; fix otherwise
  16. - cleanup rubbish:
  17. find . -name '*~' | xargs rm
  18. find . -name '*.bak' | xargs rm
  19. find . -name '.#*' | xargs rm
  20. find . -name '*.orig' | xargs rm
  21. find . -name '*.rej' | xargs rm
  22. find . -name '*.o' | xargs rm
  23. chmod -R a+r *
  24. svn status
  25. - Create release branch (only if not yet existing)
  26. - Update VERSION file to release version:
  27. vim include/VERSION
  28. #example:
  29. 7
  30. 0
  31. 0RC1
  32. 2009
  33. rm -f include/VERSION~
  34. #version:
  35. MAJOR=`cat include/VERSION | head -1 | tail -1`
  36. MINOR=`cat include/VERSION | head -2 | tail -1`
  37. RELEASE=`cat include/VERSION | head -3 | tail -1`
  38. VERSION=${MAJOR}.${MINOR}.${RELEASE}
  39. echo $VERSION
  40. svn ci -m"GRASS $VERSION" include/VERSION
  41. svn up
  42. o Create Changelog file on release branch:
  43. # http://ch.tudelft.nl/~arthur/svn2cl/
  44. svn2cl
  45. mv ChangeLog ChangeLog_$VERSION
  46. head ChangeLog_$VERSION
  47. gzip ChangeLog_$VERSION
  48. o Tag release (http://trac.osgeo.org/grass/browser/grass/tags):
  49. http://svnbook.red-bean.com/en/1.4/svn.branchmerge.tags.html
  50. TODAY=`date +"%Y%m%d"`
  51. RELEASETAG=release_${TODAY}_grass_${MAJOR}_${MINOR}_${RELEASE}
  52. echo $RELEASETAG
  53. URL=https://svn.osgeo.org/grass
  54. svn copy $URL/grass/branches/releasebranch_7_0 \
  55. $URL/grass/tags/$RELEASETAG \
  56. -m "Tagging release grass_${MAJOR}_${MINOR}_${RELEASE}"
  57. o create source package (in the source directory):
  58. echo grass-${VERSION}
  59. mkdir grass-${VERSION}
  60. mv * grass-${VERSION}/
  61. # do not include the debian control files:
  62. mv grass-${VERSION}/debian .
  63. # create the package:
  64. tar cvfzh grass-${VERSION}.tar.gz grass-${VERSION}/* --exclude=.svn
  65. # restore src code location:
  66. mv ./grass-${VERSION}/* .
  67. rmdir ./grass-${VERSION}
  68. # Calculating MD5 sum:
  69. md5sum grass-${VERSION}.tar.gz > grass-${VERSION}.md5sum
  70. o reset include/VERSION file to SVN version:
  71. vim include/VERSION
  72. #example
  73. 7
  74. 0
  75. 0svn
  76. 2009
  77. rm -f include/VERSION~
  78. svn ci -m"back to SVN" include/VERSION
  79. o Store the source tarball (twice) in (use scp -p FILES grass:):
  80. SERVER1=download.osgeo.org:/osgeo/download/grass/grass$MAJOR$MINOR/source/
  81. SERVER2=grass.osgeo.org:/osgeo/grass/grass-web-public/grass$MAJOR$MINOR/source/
  82. echo $SERVER1
  83. echo $SERVER2
  84. along with associated files:
  85. scp -p grass-$VERSION.* AUTHORS COPYING ChangeLog_$VERSION.gz \
  86. INSTALL REQUIREMENTS.html SUBMITTING SUBMITTING_DOCS \
  87. SUBMITTING_PYTHON SUBMITTING_SCRIPTS neteler@$SERVER1
  88. scp -p grass-$VERSION.* AUTHORS COPYING ChangeLog_$VERSION.gz \
  89. INSTALL REQUIREMENTS.html SUBMITTING SUBMITTING_DOCS \
  90. SUBMITTING_PYTHON SUBMITTING_SCRIPTS neteler@$SERVER2
  91. o update web site to new version (http://trac.osgeo.org/grass/browser/grass-web)
  92. - rss.xml (for news section)
  93. - download/software.inc
  94. - grass$MAJOR$MINOR/main.inc
  95. - devel/grasshist.html
  96. - devel/grassreleases.html
  97. - devel/svntags.inc (add tag)
  98. write announcement
  99. - store in trac: http://trac.osgeo.org/grass/wiki/Release/6.XX.YY-News
  100. - store in Web as announces/announce_grass$MAJOR$MINOR$RELEASE.html
  101. o upload user HTML manual in case of *final release* from compiled English
  102. version at (warning: needs stuff to be compiled).
  103. - download new source code package, compile with most settings
  104. - cd dist.$ARCH/docs/html
  105. echo www/grass$MAJOR$MINOR/manuals/html$MAJOR${MINOR}_user/
  106. scp -r * neteler@download.osgeo.org:/osgeo/download/grass$MAJOR$MINOR/manuals/html$MAJOR${MINOR}_user/
  107. scp -r * neteler@grass.osgeo.org:/osgeo/download/grass$MAJOR$MINOR/manuals/html$MAJOR${MINOR}_user/
  108. o stable release: update cronjob 'cron_grass70_release_src_snapshot.sh' to next but one
  109. release tag for the differences
  110. 2. Tell others about it:
  111. * If release candidate:
  112. - <grass-announce@lists.osgeo.org>
  113. - <grass-dev@lists.osgeo.org>
  114. * If official release:
  115. - publish related announcement press release at:
  116. Our GRASS web site: /announces/
  117. Note: DON'T use relative links there
  118. Our main mailing lists:
  119. http://lists.osgeo.org/mailman/listinfo/grass-announce
  120. <grass-announce@lists.osgeo.org>
  121. http://lists.osgeo.org/mailman/listinfo/grass-dev
  122. <grass-dev@lists.osgeo.org>
  123. http://lists.osgeo.org/mailman/listinfo/grassuser
  124. <grass-user@lists.osgeo.org>
  125. http://lists.osgeo.org/mailman/listinfo/wingrass
  126. <wingrass@lists.osgeo.org>
  127. DebianGIS: <pkg-grass-general@lists.alioth.debian.org>
  128. FreeGIS: <freegis-list@intevation.de>
  129. Geowanking: <geowanking@lists.burri.to>
  130. OSGeo.org: <news_item@osgeo.org>
  131. Email:
  132. http://www.gismonitor.com/news/submit_news.php (matteo@gismonitor.com)
  133. http://www.gis-news.de/ (franz-josef.behr@gismngt.de)
  134. http://www.gisdevelopment.net (news@gisdevelopment.net)
  135. http://spatialnews.geocomm.com/submitnews.html (not free any more, convince editor@geocomm.com)
  136. admin@cartographyonline.com
  137. redazionenews@mondogis.net
  138. mfeilner@linuxnewmedia.de
  139. info@harzer.de
  140. info@j-geoinfo.net
  141. Web:
  142. http://slashgeo.org/submit.pl
  143. http://freshmeat.net/projects/grass/?highlight=GRASS (update, MN)
  144. http://linuxtoday.com/contribute.php3
  145. http://www.newsforge.com/submit.pl
  146. http://osx.macnn.com/ (email to "contact" -> news tips)
  147. http://www.giscafe.com/submit_material/submit_options.php#Press (MN)
  148. http://www.freegis.org (update, MN)
  149. http://www.blinkgeo.com (markusN)
  150. http://www.directionsmag.com/pressreleases.php (News -> Post Press Release)
  151. http://www.gnu.org/directory/science/geography/grass.html
  152. http://www.kde-apps.org/content/show.php?content=19776
  153. http://www.opendesktop.org/content/show.php?content=19776
  154. http://news.eoportal.org/share_news.html (MN)
  155. -> Share your news with the EO community
  156. http://www.osdir.com/Downloads+index-req-viewsdownload-sid-206.phtml
  157. http://www.foss4g.org/FOSS4G/modules.php?name=Submit_News
  158. http://groups.google.com/group/Remote-Sensing-GIS-for-a-New-World
  159. http://groups.google.com/group/comp.infosystems.gis
  160. http://www.heise.de/software/download/edit_7105 (update, MN)
  161. ... anywhere else? Please add here.
  162. ###########################################
  163. (B) HOWTO create a branch
  164. 1. see SVN book:
  165. http://svnbook.red-bean.com/en/1.1/ch04s07.html
  166. GRASS 7.0 release branch:
  167. BRANCH=releasebranch_7_0
  168. URL=https://svn.osgeo.org/grass
  169. svn copy $URL/grass/trunk \
  170. $URL/grass/branches/$BRANCH \
  171. -m "Development branch for GRASS 7.0.x"
  172. Switching current local copy to above development branch:
  173. (http://svnbook.red-bean.com/en/1.1/ch04s05.html)
  174. cd /path/to/your/local/copy/trunk
  175. svn switch https://svn.osgeo.org/grass/grass/branches/releasebranch_7_0 .