Skip to content

GGP Release Procedure

cpviolator edited this page Aug 22, 2024 · 1 revision

To release a new version of QUDA, perform the following steps in order:

  • Update QUDA_VERSION_* at the top of include/quda_constants.h.

    • We generally increment the subminor version number (e.g., 0.3.0 → 0.3.1) for bugfix releases and other minor releases without interface changes.
    • We increment the minor version (e.g., 0.3.2 → 0.4.0) for more significant releases, especially those with interface changes that require users to modify their code.
    • Someday we'll release 1.0.0, once QUDA is deemed sufficiently mature or we roll past 0.9.x, whichever comes first.
  • Update NEWS file with any relevant changes, new version number, and date.

    • It's only necessary to call out changes that a user might notice, e.g.,
      • "Improved domain wall performance by 10%"
      • "Added new 'goFaster' member to InvertParam"
      • "Fixed a bug that might induce the GPU fan to hum 'Daisy Bell'"
    • but not:
      • "Refactored the internal 'WidgetCuda' class hierarchy, affecting 10,000 lines of code"
  • Update README file with new version number and date. Also check that the list of "known issues" is up to date.

  • Check that the parameters and volumes in the test programs are set to reasonable values that should work on most devices (e.g., set cuda_prec to single, and keep memory requirements under 512 MB).

  • Commit changes and push.

  • Tag the branch as follows (replacing "0.4.0" as appropriate):

      git tag -a v0.4.0 -m 'Release 0.4.0'
      git push origin v0.4.0
    
  • Perform a git archive release/x.y.z | tar xv --directory into a new directory (replacing "x.y.z" with the relevant branch name).

  • Remove the .gitignore file.

  • Rename the directory to quda-<version> (e.g., quda-0.4.0), and tar it up as quda-<version>.tar.gz.

  • Within the "gh-pages" branch of the "downloads" repo, copy the tarball to the "quda" subdirectory, and update index.html with a link. The updates should be visible at http://lattice.github.io/downloads after you push.

  • Update the QUDA webpage by editing index.html in the gh-pages branch of the main "quda" repo. At a minimum, change the version number, release date, and link to the tarball. Also replace the NEWS and README files in quda-latest/ with new versions.

  • Update the doxygen reference, if desired. See the instructions in the quda-ref repository.