Skip to content

Release checklist

Andreas Pedersen edited this page Sep 19, 2024 · 29 revisions

Protocol

To release a new version of the code the following should be executed. In the example it is a minor release (1.7.2):

  • On development make a "temporary" branch with new version number (1.7.2) in
    • pyproject.toml
    • INSTALLATION.md for public homepage to point to released version
    • CHANGELOG.md
    • Squash merge into branch into development
  1. Make a PR for development -> master
    • merge with Create a merge commit strategy to keep all commits
  2. Tag commit on master
    • Name: should be consistent with version number vx.y.z (fx. v1.7.2)
    • Type: Annotated
  3. Under Actions on the GitHub Repo page make sure following pipelines were successful
    • macos-windows-build pipeline was successful
    • linux-build pipeline was successful
  4. Run tests described on: https://github.com/easyScience/EasyReflectometryApp/wiki/Testing-in-Hand
  5. On GitHub create a new release in hand (SHOULD BE AUTOMATED)
    • Under Releases on repo main page click Create a new release
    • Click the Tags
    • Click on the new tag
    • Click Make release from tag
    • Click Generate release notes
  6. Add artifacts to the Release
    • Download the EasyReflectometry assets
    • Extract and use the following naming:
      • Windows EasyReflectometry_Windows_x86-32_<tag>.exe (fx. EasyReflectometry_Windows_x86-32_v1.7.2.exe)
      • MacOS EasyReflectometry_macOS_x86-64_<tag>.zip (fx. EasyReflectometry_macOS_x86-64_v1.7.2.zip)
    • Add the EasyReflectometry assets
  7. Do release procedure for public webpage https://github.com/easyScience/EasyReflectometryWww/wiki/Release-checklist

What happens

Push to any branch triggers:

  1. A build and publish pipeline
    • macos-windows-build.yml
    • Produce artifacts for Windows and Mac-OS
    • For master
      • Upload offline artifacts to GitHub
      • Upload online artifacts to FTP server
  2. A build and publish pipeline
    • linux-build.yml
    • Produce artifact for Linux
    • Upload artifact to snapcraft
      • For development branch the artifact goes to beta
      • For master branch the artifact is goes to stable

Push to master triggers:

  1. The dev documentation build pipeline
    • documentation-build.yml
    • Produce the sphinx documentation
    • Push the produced documentation to gh-pages branch

Inspired by: https://github.com/easyScience/easyDiffractionApp/discussions/247

Clone this wiki locally