Skip to content
Glenn Hickey edited this page Jul 23, 2020 · 32 revisions

Cactus release process

The latest stable release of cactus is found at:

Docker images are available from:

Versioning

Cactus currently does not implement semantic versioning. We do try to minimize breaking changes but there are no guarantees in place.

We do try to maintain a semantic-like naming scheme for releases (e.g. the major release after 1.7.0 is 1.8.0).

Before a release

  1. Update getDockerRelease() function in src/cactus/shared/common.py to return the new release
  2. Maintain ReleaseNotes.md in the tree as changes are made, in newest-first order
    • Record any new features and important changes, include those in submodules.
    • Make note of any breaking changes, include those in submodules.
    • It may help to consult the log of commits since the last release.
  3. Check that all unit and integration tests (both Travis and GitLab) have been ran.

Release process

To cut a new release:

  1. Ensure the section for this release in ReleaseNotes.md is current. It may help to consult the log of commits or pull requests since the last release.
  2. Edit ReleaseNotes.md and add release number and date.
  3. Create a new release on Github
    1. Look up the next release number
    2. Tag it vX.Y.Z
    3. Title it Cactus X.Y.Z 2020-00-00
    4. Fill in release description:
      1. Copy release description template below, edit to set release number.
      2. Inserted the section from ReleaseNotes.md describing this release.
    5. Mark it as a pre-release
    6. Publish it (which tags the commit and hopefully kicks off the Docker build on Quay)
  4. Produce a buildable source tarball, containing code for cactus and all submodules, and upload it to the release.
    make srcRelease
    
  5. Build and upload a static Linux binary package on a CentOS 7.5 system. This has the /bin/ files and python source needed to pip install cactus for the release.
    make binRelease
    
  6. Verify that the Docker image is at quay.io with the SHA returned by git rev-parse vX.Y.Z.
  7. Tag Docker image:
    ./build-tools/quayTagRelease
    
    or tag on the quay.io page
  8. Make a GPU Docker image
  9. Verify that all links are working
  10. Edit the release and mark it as no longer a pre-release, to make it the latest stable release.
  11. Send an announcement to cactus-announce@googlegroups.com, pointing to release notes at https://github.com/ComparativeGenomicsToolkit/cactus/releases/vX.Y.X/.

Release notes template

Cactus X.Y.Z is available in the following forms:
- Docker Image: `quay.io/comparative-genomics-toolkit/cactus:vX.Y.Z`
  Install instructions in [README.md](https://github.com/ComparativeGenomicsToolkit/cactus/blob/vX.Y.Z/README.md)
- Pre-compile Linux Tarball: [cactus-bin-vX.Y.Z.tar.gz](https://github.com/ComparativeGenomicsToolkit/cactus/releases/download/vX.Y.X/cactus-bin-vX.Y.Z.tar.gz)
  Install instructions in [BIN-INSTALL.md](https://github.com/ComparativeGenomicsToolkit/cactus/blob/vX.Y.Z/BIN-INSTALL.md)
- Source Tarball: [cactus-vX.Y.Z.tar.gz](https://github.com/ComparativeGenomicsToolkit/cactus/releases/download/vX.Y.Z/cactus-vX.Y.Z.tar.gz)
  Install instructions in [README.md](https://github.com/ComparativeGenomicsToolkit/cactus/blob/vX.Y.Z/README.md)

**WARNING**: do not use the github automatically generate source files (`Source code (zip)` or `Source code (tar.gz)`), these are not correct.

Please subscribe to the [cactus-announce](https://groups.google.com/d/forum/cactus-announce) low-volume mailing list to receive notice of Cactus release.

## Release notes
 <copy ReleaseNotes.md for this release here>

References

Clone this wiki locally