Skip to content

release checklist

Pete R Jemian edited this page Jan 23, 2024 · 10 revisions

Release checklist

Initial Steps

  • create a milestone on GitHub
  • create a project for the milestone on GitHub
  • create issue(s) on GitHub and assign them to the appropriate milestone and project

Routine work

  • create a branch for work on an issue, branch name might start with the issue number
  • push the branch to GitHub
  • create a pull request (PR) for the branch on GitHub and assign it to the appropriate milestone and project
  • review and revise the PR

Wiki release notes

TODO:

create_release_notes --head main OLD_MILESTONE THIS_MILESTONE GH_TOKEN 2>&1 | tee /tmp/notes.md

Release Candidate Steps

  • Finish all issues & PRs or move them to other milestones (& projects).

  • Update the docs/source/_static/switcher.json file for the new version and commit/push to GitHub.

  • Edit .github/scripts/define_versions.sh so that new version will be added and commit/push to GitHub.

  • Edit/update the CHANGES.rst document for the new version and commit/push to GitHub.

  • Iterate with release candidates until the process runs smoothly with no errors

    • Create a release candidate tag (start from rc1) and commit/push to GitHub.
    • In the PyPI build action (GitHub Actions) logs, note the SHA256 for the .tar.gz file.
      The SHA256 will be used in the recipe/meta.yml file below.
    • Begin the conda-forge release process (if not already started) in private fork of https://github.com/conda-forge/apstools-feedstock
      • make a new branch for the new release
      • edit recipe/meta.yaml file
        • change the version on line 2
        • edit the sha256 on line 2 with the value from the build of the .tar.gz image for PyPI
      • update conda-smithy package: conda update -c conda-forge conda-smithy
      • run conda smithy rerender
      • push the new branch to the private fork
      • make the PR to conda-forge
      • complete the check boxes on the new conda-forge feedstock PR
      • wait for CI to run in the feedstock
    • if errors, revise meta.yml and commit/push

Release

  • Tag with new release number and a release candidate tag (start from rc1).
  • push to GitHub
  • Get the SHA256 code for the PyPI build and update meta.yaml (also update the version)
  • commit the feedstock branch
  • wait for CI to run in the feedstock

Final Steps

  • Wait for CI (GitHub Actions) to finish and confirm no problems.

  • Edit CHANGES.rst with the new release data and commit/push to GitHub.

  • Wait for CI (GitHub Actions) to finish and confirm no problems.

  • Create the final release tag and push to GitHub

  • Go to the apstools tags page: https://github.com/BCDA-APS/apstools/tags

  • Select the new tag for this release

  • Select the button Create release from tag

  • Release name same as tag name, same as new version.

  • Start the release text with the following (use the correct version number, wiki page will be created below)

    - [History of changes](/CHANGES.rst)
    - [Release Notes](https://github.com/BCDA-APS/apstools/wiki/release-notes-VERSION_HERE)
    
    ----
  • Also push the Generate release notes button (GitHub adds its own release notes to the release text).

  • Create the new release.

  • Build release notes locally for the apstools wiki

    Such as for new milestone 1.6.11 (from milestone 1.6.10):

    conda activate murky
    create_release_notes --head main 1.6.10 1.6.11 $GITHUB_API_TOKEN | tee /tmp/notes.md
  • Edit the wiki page (https://github.com/BCDA-APS/apstools/wiki/Release-Notes) for the new notes.

    • Copy paste the top row in the table, edit for new version.
    • save the changes
  • Go to the new page and copy content from /tmp/notes.md file. Edit as necessary.

  • Visit GitHub Actions workflow to publish the docs: https://github.com/BCDA-APS/apstools/actions/workflows/pages.yml

  • Find and click the Run workflow dropdown button.

  • Check the Deploy documentation box, then click green Run workflow button

  • Go to the open PR on conda-forge and merge it once the CI completes.

Clone this wiki locally