How to Release OTB 5

From OTBWiki
Jump to: navigation, search

Release Candidate preparation for OTB 5.0

J-2 / J-1

  • Update version numbers in CMakeLists.txt (done for OTB and Monteverdi Monteverdi2 is missing (upgrade branch version?))
  • Update version numbers in doxygen -> Where? Guillaume?
  • Update version numbers in software guide
  • Update release notes TO BE REVIEWED
    • Walk the mercurial history and log all improvements
    • Generate mantis report
      • Use Advanced Filters
      • Select all projects in the combobox : Orfeo Toolbox (OTB)
      • Set "Use Date" and "Resolution" filters
      • Export in cvs format
      • Use processBugReport.py from OTB-DevUtils/Scripts
      • Copy/paste the result in the release notes
  • Update list of contributors if necessary
  • Prepare annoucement email
  • Last minute fixes, but avoid if possible
  • Before nightly deadline, tag for RC
    • tag OTB
    • tag Monteverdi
    • tag Monteverdi2
  • Make TGZ source packages
  • Make ZIP source packages
  • Ensure you named the zipped files with the same convention as the previous release
  • Test the source packages
  • Upload the packages on www.orfeo-toolbox.org/packages
  • Prepare and upload the SuperBuild source package (contains sources for all libs needed for SuperBuild)

J

  • Last dashboard check to confirm the release candidate
  • On failure :
    • Remove the source packages from the http server
    • Backout tags
    • Go back J-1
  • Copy from www.orfeo-toolbox.org/packages/nightly :
    • Monteverdi Windows installer
    • Monteverdi Mac installer
    • SoftwareGuide PDF
    • Cookbook PDF
    • Cookbook HTML
  • Generate SoftwareGuide HTML version (still needs user interaction...)
  • Upload the SoftwareGuide HTML version
  • Send RC announcement email (and blog post if there is one)

Final release preparation for OTB 5.0 (planned for 29/05/2015)

J-2

  • Find a release code name
    • Ideas:
      • Mission: Impossible
      • Giant steps
      • Supermode
  • Prepare annoucement email
  • Prepare annoucement on the blog -> draft available for review
  • <strike>Update documentation about installation (version number, packages name, list of supported platform) if necessary

J-1

  • No last minutes fix allowed
  • Test the nightly generated binary packages : don't forget the windows packages cross-compiled with MinGW (MinGW latest build available in latest dir or orfeo-toolbox.org)
  • Generate mantis report
    • Select all projects in the combobox : Orfeo Toolbox (OTB)
    • Use Advanced Filters
    • Set "Use Date" and "Resolution" filters
    • Export in cvs format
    • Use processBugReport.py from OTB-DevUtils/Scripts
    • Copy/paste the result in the release notes
  • Update date in RELEASE_NOTES.txt
  • Before nightly deadline, tag for finale release
    • tag OTB
    • tag ice
    • tag Monteverdi
    • tag Monteverdi2
    • tag OTB-Data
    • tag OTB-Documents
    • tag OTB-DevUtils
  • Prepare TGZ & ZIP source packages (use OTB-DevUtils/Scripts/prepareSourcePackages.sh)
    • Ensure you named the zipped files with the same convention as the previous release
  • Prepare a source package for ICE
  • Upload to OTB server
    • Upload the source packages (OTB, Monteverdi, Monteverdi2)
    • Upload Software pdf and html.tar.gz Guide on orfeo-toolbox
    • Upload Cookbook pdf and html.tar.gz on orfeo-toolbox
    • Upload FAQ pdf and html.tar.gz on orfeo-toolbox
  • Upload to Sourceforge (see http://sourceforge.net/apps/trac/sourceforge/wiki/SSH%20Client) :
    • Notes :
      • tsocks ssh -t yoursourceforgeuser,orfeo-toolbox@shell.sourceforge.net create
      • then you can ssh/scp/etc to this shell
      • type sf-help to know where the files dir are located
    • Upload the source packages (OTB, Monteverdi, Monteverdi2)
    • Upload Software pdf and html.tar.gz Guide on sourceforge
    • Upload Cookbook pdf and html.tar.gz on sourceforge
    • Upload FAQ pdf and html.tar.gz on sourceforge
    • Clean up sourceforge project dir
  • Do some cleanup in the packages dir on orfeo-toolbox if relevant (keep new release, put release candidate packages in 'archives')

J

  • Test the generated binary packages in http://www.orfeo-toolbox.org/packages/nightly
  • Upload binary packages to OTB server (move from packages/nightly/latest to packages)
    • OTB (MinGW)?
    • Monteverdi-windows-32bit
    • Monteverdi-windows-64bit
    • Monteverdi-MacOS
    • Monteverdi2-windows-32bit (pc-christophe & raoul)
    • Monteverdi2-windows-64bit (pc-christophe & raoul)
    • Monteverdi2-MacOS (from leod)
  • Upload binary packages to sourceforge
    • OTB (MinGW)?
    • Monteverdi-windows-32bit
    • Monteverdi-windows-64bit
    • Monteverdi-MacOS
    • Monteverdi2-windows-32bit (from OTB server)
    • Monteverdi2-windows-64bit (from OTB server)
    • Monteverdi2-MacOS
  • Update platform-specific links in sourceforge Files page
  • Update doxygen on orfeo-toolbox
export DOCVERSION=5.0
cd /var/www/doc
cp -r /home/otbbot/doxygen/OTB-Documents/Doxygen/doxygen-current doxygen-$DOCVERSION
cd /var/www/wordpress-4.0
ln -nsf ../doc/doxygen-$DOCVERSION doxygen-$DOCVERSION
ln -nsf doxygen-$DOCVERSION doxygen
  • Update Software Guide online on orfeo-toolbox
    • Copy latest Software Guide
    • Parse html to modify header and footer
export DOCVERSION=5.0
cp -R /var/www/main/packages/nightly/latest/SoftwareGuide /var/www/main/SoftwareGuide-$DOCVERSION
cd /var/www/main/SoftwareGuide-$DOCVERSION
rm index.html FAQ.html
ln -nsf SoftwareGuide.html index.html
ln -nsf `grep -rl "<head><title>[0-9]* Frequently Asked Questions</title>" .` FAQ.html
cd /var/www/main
ln -nsf SoftwareGuide-$DOCVERSION SoftwareGuide
  • Update Cookbook online on orfeo-toolbox
    • Copy latest CookBook
    • Parse html to modify haeder and footer
export DOCVERSION=5.0
cp -R /var/www/main/packages/nightly/latest/CookBook /var/www/main/CookBook-$DOCVERSION
cd /var/www/main/CookBook-$DOCVERSION
rm index.html
ln -nsf CookBook.html index.html
cd /var/www/main
ln -nsf CookBook-$DOCVERSION CookBook
  • Update FAQ html on orfeo-toolbox : Nothing to be done, we point to SG internal version
  • Generate Applications HTML version (generated by the Python script generateAppliDoc.py)
python generateAppliDoc.py  OTB_BIN_DIR APP_DOC_OUTPUT_DIR
  • Upload the Applications HTML version and update symlink
  • Update OTB-Data-Examples.tgz on orfeo-toolbox (packages)
  • Update banner on OTB website
  • Send email to mailing list to announce the release
  • Release announcement on the blog

J+1

  • Update OSGeo4W packages -> delayed to J+1
  • Generate Ubuntu source packages and upload to launchpad (postponed to J+1)
    • generate package ITK 4.7.1
    • generate otb package
make_ubuntu_packages.sh  -d ~/Dashboard/src/OTB -r 5.0 -o 5.0 -p 1 -c "New upstream release" -g 0x$GPGKEY
    • upload to orfeotoolbox-staging-stable-ubuntugis
dput ppa-otb-staging-stable-ubuntugis /tmp/otb_5.0.0-0ppa~*.changes
    • wait for otb package availability
    • generate package and upload for OTB-Ice
    • generate package and upload for monteverdi monteverdi2
    • wait for package availability
    • install them all on a test environment and check they can all be installed
  • Update version number to a development version (even minor number)
  • Stop nightly submission to launchpad to avoid flooding the server

J+N

  • Update osgeo-live GIS installation script and documentation with new OTB versions
  • Update general template version of "How to release" with the last release version