Skip to content

DevNotes_DevGuide_ReleaseChecklistTemplate

Jeff Krzywon edited this page Jan 15, 2026 · 5 revisions

Release checklist [WIP]

This is a template checklist that release managers can use to populate release checklist pages and use as a guide for publishing a full SasView release, with or without changes to sasdata and sasmodels.

Prerequisites

A developer will need the following permissions in order to draft, publish and finalize a release.

All releases

This checklist is general enough it can be applied to all repos, but has elements specific that may be not apply to every repo.. Each item is labelled, in curly brackets, with the repos the task is relevant to. {v=sasview, d=sasdata, m=sasmodels}

Initial planning Tasks

  • Determine if the repo will have its own release {d,m}
  • Create release branch (release-x.y.z) as needed {v,d,m}
  • Choose fixes and features to include in the release {v,d,m}
  • Cherry-pick commits into the branch that aren't already present in the branch {v,d,m}
  • Update version pins in the release requirements files {v}
    • Ensure the versions of sasdata and sasmodels match the version being used in the sasview release (if the release isn't finalized, use the release branch by specifying <package_name> @ <vcs_url>@<branch_name_or_commit_hash>) {v}
  • Create an Alpha1 release for testing as soon after cherry picking is complete {v}

Pre-release Tasks

  • Write the release notes {v,d,m}
    • in docs/sphinx-docs/source/user/RELEASE.rst {v}
    • in docs/source/user/RELEASE.rst {d}
    • in CHANGES.rst {m}
  • Update release number {v,d,m}
    • build_tools/application_metadata/org.sasview.sasview.metainfo.xml - version and release date {v}
    • build_tools/release_automation.py - version and title {v}
    • docs/sphinx-docs/source/conf.py - version number {v}
    • 'installers/installer.iss' - version number {v}
    • https://github.com/flathub/org.sasview.sasview/blob/master/org.sasview.sasview.yml - version number and release date {v}
  • Check & update lists of developers/contributors (release_automation.py & contributors.tsv) {v}
  • Mark release manager in contributors.tsv {v}
  • Update first author in 'src/sas/qtgui/MainWindow/Acknowledgements.py' {v}
  • Run python ./sasview/build_tools/release_automation.py with appropriate arguments to generate a draft zenodo record {v}
  • Commit DOI to release branch {v}
  • Update the license and copyright years {v,d,m}

Release process

  • Ensure both sasdata and sasmodels releases are finalized and published to pypi {v}
  • Draft a new release on Github {v,d,m}
    • Create a new tag on publish in the format `v1.2.3' {v,d,m}
    • Select the previous release tag as the target {v,d,m}
    • Auto-generate the release notes using the GitHub API {v,d,m}
    • Select as latest release {v,d,m}
    • Save draft {v,d,m}
  • Update release notes in release branch using the auto-generated notes from GitHub {v,d,m}
  • Change any pins for sasdata and sasmodels from branches to release versions {v}
  • Ensure all version numbers and dates noted in the pre-release tasks are correct {v,d,m}
  • Publish the release, once ready {v,d,m}

Post-Release Tasks

  • Attach binaries built on tag generation to release page and zenodo record {v,d,m}
  • Upload wheel and tarball to pypi {v,d,m}
  • Follow the guide available at https://github.com/SasView/sasview/wiki/DevNotes_DevGuide_FlatpakReleaseProcess for the Flatpak release {v}
  • Update docs on website {v}
    • Download and install the version appropriate for your system
    • Find the installed docs
    • Update https://github.com/SasView/docs repo with latest docs
      • Create directory in old_docs with the previous version as the name
      • Copy top-level docs into the new directory
      • Copy installed docs into top level of the repo
      • Commit and push
  • Update sasview.github.io with SasView-related release information
    • Update release link in download.md {v}
    • Update latestversion.json {v}
    • Update 'Current Release' link in download.md {v}
    • Create post on website to announce new release (in _posts directory) {v}
    • Update cite.md with latest release citation information {v}
  • Announce release to [email protected] (with 'newsletter')
  • Announce release to sa_scat & neutron mailing lists
  • Publish zenodo record {v,d,m}
  • Create PRs to merge release branches into main/master {v,d,m}

Clone this wiki locally