Skip to content

Create a new Charm release

Ronak Buch edited this page Mar 19, 2020 · 19 revisions

Before creating a prerelease

  • Check on GitHub to see if bugs targeted for the release version are done. If they aren't, decide if they can be postponed or get after people to fix them.

  • Check that libraries which we distribute with Charm are up to date:

    • hwloc
    • Boost uFcontext threads
    • QuickThreads
    • METIS
    • LLVM OpenMP runtime.
  • Add release notes to CHANGES.

  • Update the Charm++ version number in configure.ac and CMakeLists.txt.

  • Update the list of authors in the README.md.

Prereleases

  • Release an RC on a branch (branch named charm-X.X.X and tagged vX.X.X-rcX) and ask the application teams to do performance tests. Give them about a week to respond. If there are performance regressions or major bugs reported, then fix them before release.
  • Tag the commit on master directly after branching as v{X.X.X + 1}-devel (e.g. after creating the charm-6.10.0 branch and tagging the branch with v6.10.0-rc1, tag the next commit on master as v6.11.0-devel). This is required so that the preamble that Charm++ prints and git describe on master show the current release being worked toward. The new number should indicate the next feature release, not upcoming bugfix releases.

Release

When release is ready, create a tag on the branch (vX.X.X) and do the following:

  • Add release notes to CHANGES, and update the version numbers in configure.ac and CMakeLists.txt.
  • Update both webpages with the release tarballs and with news items: https://charm.cs.illinois.edu/download/ and http://charmplusplus.org/download/
  • The Charm++ wikipedia page also has the current release info, so update it: https://en.wikipedia.org/wiki/Charm%2B%2B
  • Modify the charm-latest.tar.gz link to point to the new release.
  • Update the tar files on the web server using ./package_tarball.sh --release.
  • Update the tar files for Projections & CharmDebug too.
  • Email charm.cs mailing list announcing the release with the release notes.
  • Close out the release on GitHub's roadmap, update mainline charm CHANGES, README.md, etc.
  • Create a new release of the manual on readthedocs.io
  • Update the Spack package.