How to Release 4.0

From OTBWiki
Jump to: navigation, search

Release Candidate preparation

J-2

  • Update version numbers in CMakeLists.txt for OTB and Monteverdi1
  • Update version numbers in doxygen
  • Update version numbers in software guide and cookbook
  • Update release notes
    • Walk the mercurial history and log all improvements
    • 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 list of contributors if necessary
  • Prepare announcement email
  • Prepare announcement on the blog MG Draft available on the blog for OTBv4

J-1

  • Last minute fixes, but avoid if possible
  • Before nightly deadline, tag for RC
    • tag OTB hg tag 4.0-rc1
    • tag Monteverdi
  • Make TGZ source packages
  • Make ZIP source packages
  • Ensure you named the zipped files with the same convention as the previous release (OTB -> OTB ; Monteverdi -> Monteverdi)
  • Test the source packages
  • Upload the packages on www.orfeo-toolbox.org/packages

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/latest to www.orfeo-toolbox.org/packages :
    • Monteverdi Windows installer
    • Monteverdi Mac installer
    • SoftwareGuide PDF and update simlink in packages (ln -fs {/path/to/file-name} {link-name})
    • Copy the SoftwareGuide HTML version to www and update simlink (ln -fs {/path/to/file-name} {link-name})
    • Cookbook PDF and update simlink in packages (ln -fs {/path/to/file-name} {link-name})
    • Copy the Cookbook HTML version to www and update simlink (ln -fs {/path/to/file-name} {link-name})
  • Handle FAQ :
    • www/FAQ/index.html points to www/FAQ.html : don't touch it.
    • update symlink www/FAQ.html to www/SoftwareGuide-$VERSION/SoftwareGuidech32.html
  • 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 simlink
  • Send RC announcement email (and blog post if there is one)

Final release preparation

J-2

  • Find a release code name (no release code name : it is 4.0)
  • Prepare annoucement email
  • Prepare annoucement on the blog
  • Launch doxygen generation (will finish on J)
  • 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
  • Update date in RELEASE_NOTES.txt
  • Before nightly deadline, tag for finale release
    • tag OTB
    • tag Monteverdi
    • tag OTB-Applications
    • tag OTB-Wrapping
    • 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
  • Upload to OTB server
    • Upload the source packages (OTB, Monteverdi, Monteverdi2 if needed)
    • 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, OTB-Applications, OTB-Wrapping)
    • 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
  • Update status on freecode.com
  • 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)
    • Monteverdi-windows-32bit
    • Monteverdi-windows-64bit
    • Monteverdi-MacOS
    • Monteverdi2-windows-32bit (not for OTB 4.0 release)
    • Monteverdi2-windows-64bit (not for OTB 4.0 release)
    • Monteverdi2-MacOS (not for OTB 4.0 release)
  • Upload binary packages to sourceforge
    • Monteverdi-windows-32bit
    • Monteverdi-windows-64bit
    • Monteverdi-MacOS
    • Monteverdi2-windows-32bit (not for OTB 4.0 release)
    • Monteverdi2-windows-64bit (not for OTB 4.0 release)
    • Monteverdi2-MacOS (not for OTB 4.0 release)
  • Update platform-specific links in sourceforge Files page
  • Update OSGeo4W packages
  • Generate Ubuntu source packages and upload to launchpad
    • generate otb package
make_ubuntu_packages.sh  -d ~/Dashboard/src/OTB -r 4.0 -o 4.0 -p 1 -c "New upstream release" -g 0x$GPGKEY
    • upload to orfeotoolbox-staging-stable-ubuntugis
dput ppa-otb-staging-stable-ubuntugis /tmp/otb_4.0.0-0ppa~*.changes
    • wait for otb package availability
    • generate package and upload for monteverdi monteverdi2 and otb-wrapping
    • wait for package availability
    • install them all on a test environment and check they can all be installed
  • Generate rpm packages
  • Update doxygen on orfeo-toolbox
export DOCVERSION=4.0
cd /var/www/main
cp -r /home/otbbot/doxygen/OTB-Documents/Doxygen/doxygen-current doxygen-$DOCVERSION
ln -nsf doxygen-$DOCVERSION doxygen
  • Update Software Guide online on orfeo-toolbox
export DOCVERSION=4.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
export DOCVERSION=4.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)
  • Send email to mailing list to announce the release
  • Release announcement on the blog

J+1

  • 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