Skip to content

Release guide

Herman De Beukelaer edited this page Aug 12, 2016 · 13 revisions

JAMES release checklist

Release submodule version x.y.z (extensions/examples)

  • remove SNAPSHOT suffix from submodule version (POM)
  • only stable dependencies (POM)
  • update CHANGES file (set release date!)
  • push submodule to GitHub [skip ci]
  • deploy submodule with release profile
  • create GitHub release x.y.z in submodule
  • pull git tag of release locally
  • extensions only: put new version API on website
  • move to next snapshot (POM + new header in CHANGES) - update parent reference and dependencies on other modules if applicable
  • push submodule to GitHub (Travis: auto snapshot deploy + API update)
  • upgrade to latest submodule snapshot in main project (push to GitHub)
  • website: update Jekyll config file with new submodule snapshot version number
  • once synced to Maven Central Repository (from sonatype):
    • website: update Jekyll config file with new submodule stable version number
    • website: update RSS to broadcast new release
    • deploy updated wiki and/or website (if necessary)
    • announce new version on user forum

Release module-wide version x.y

  • remove SNAPSHOT suffix from versions in submodules (POM) - update parent references if applicable
  • update versions of across module dependencies + only stable dependencies (POM)
  • update CHANGES files in submodules (set release dates!)
  • push submodules to GitHub [skip ci]
  • upgrade to latest submodule versions in main project
  • remove SNAPSHOT suffix from parent version (POM)
  • push main project to GitHub [skip ci]
  • deploy main project with release profile
  • create GitHub release x.y in submodules and main project
  • pull git tags of release locally in submodules and main project
  • core + extensions: put new version API on website
  • move to next snapshot in submodules (POM + new header in CHANGES) - update parent references if applicable
  • push submodules to GitHub [skip ci]
  • upgrade to latest submodule snapshots in main project
  • set main project version number to next snapshot (POM)
  • push main project to GitHub (Travis: auto snapshot deploy + API update)
  • website: update Jekyll config file with new snapshot version numbers
  • once synced to Maven Central Repository (from sonatype):
    • website: update Jekyll config file with new stable version numbers
    • website: update RSS to broadcast new release
    • deploy updated website
    • deploy updated wiki
    • announce new version(s) on user forum