Skip to content

Release process

Vladimir Kotal edited this page Aug 31, 2018 · 34 revisions

Release criteria

Ideally, the following minimum criteria should be fulfilled before a new final (i.e. non-prerelease) version is released:

  • The overall code coverage must be at least 70%
  • Sonarcloud reported bugs should not have any critical issues
  • No stoppers (meaning both Issues and Pull requests)
  • All bugs and enhancements must be evaluated (for final release also go through issues with given milestone)

Checklist for releasing OpenGrok:

The below steps are common for both pre-release and final release:

  1. build must be clean

    mvn clean package

  2. sanity check:

    • index fairly large code base, ideally multiple projects
    • deploy webapp
    • check UI:
      • history view
        • try comparing 2 distant revisions
        • check pagination
      • annotate view
      • directory listing
        • check sorting using multiple criteria
      • perform search using multiple fields across multiple projects
  3. check all tests pass, test code coverage is above given threshold

    Additional tools to use: pmd, findbugs, checkstyle, jdepend

    The release is OK, once above is fulfilled to our satisfaction.

  4. set new version

    mvn versions:set -DgenerateBackupPoms=false -DnewVersion=1.1-rcXYZ

    Then commit and push the change:

    git commit --all

    git push

  5. Trigger release creation

    git tag 1.1-rcXYZ

    git push origin tag 1.1-rcXYZ

    Wait for the build to finish and release created.

    Go to https://github.com/OpenGrok/OpenGrok/releases and edit the text of the release, e.g. adding list of issues fixed, whether complete reindex is necessary etc.

  6. Send announcement to opengrok-users@yahoogroups.com, the #opengrok Slack channel etc.