pyhf icon indicating copy to clipboard operation
pyhf copied to clipboard

Release v0.7.4 checklist

Open matthewfeickert opened this issue 2 years ago • 2 comments

Release Checklist

Before Release

  • [x] Update the checklist Issue template in the .github/ISSUE_TEMPLATE directory if there are revisions.
  • [x] Migrate any unresolved Issues or PRs from the release GitHub project board to a new project board.
    • c.f. https://github.com/orgs/scikit-hep/projects/13
  • [x] Verify that there is a release notes file for the release under docs/release-notes.
    • c.f. https://github.com/scikit-hep/pyhf/pull/2322
  • [x] Verify that the release notes files correctly summarize all development changes since the last release.
  • [x] Add any new use citations or published statistical models to the Use and Citations page.
    • c.f. https://github.com/scikit-hep/pyhf/pull/2324
  • [x] Verify that the citations on the Use and Citations page are up to date with their current INSPIRE record. Checking the Dimensions listing of publication citations can be helpful to catch citations that are now journal publications.
    • c.f. https://github.com/scikit-hep/pyhf/pull/2323
  • [x] Update the codemeta.json file in the release PR if its requirements have updated.
  • [x] Update the pypa/gh-action-pypi-publish GitHub Action used for deployment to TestPyPI and PyPI to the latest stable release.
  • [x] Make a release to TestPyPI using the workflow dispatch event trigger.
    • c.f. https://test.pypi.org/project/pyhf/0.7.4.dev6/
  • [x] Verify that the project README is displaying correctly on TestPyPI.
  • [x] Draft email to pyhf-announcements mailing list that summarizes the main points of the release notes and circulate it for development team approval.

Create Release Tag

For a video walkthrough consult the pyhf v0.7.1 release recording on YouTube.

  • [x] Use the bump version GitHub Actions workflow perform a dry run of the bump version to the new release tag.
  • [x] Check the annotated tag in the dry run workflow logs to make sure it looks correct.
  • [x] If the dry run passes as expected, run the same workflow with the dry run option set to false to bump the release tag version and push the new tag back to GitHub.
  • [x] Verify the release tag was pushed to the correct branch.
  • [x] Verify the release tag commit has bumped the correct versions.
  • [x] Watch the CI to verify all tag based jobs finish correctly.
  • [x] Verify the release for the tag on TestPyPI looks correct.
    • c.f. https://test.pypi.org/project/pyhf/0.7.4/

After Release Tag Pushed To GitHub

  • [x] Create a GitHub release from the new release tag and copy the release notes published to the GitHub release page. The creation of the GitHub release triggers all other release related activities.
    • [x] Before pasting in the release notes copy the changes that the GitHub bot has already queued up and pasted into the tag and place them in the "Changes" section of the release notes. If the release notes are published before these are copied then they will be overwritten and you'll have to add them back in by hand.
    • [x] Create a corresponding announcement GitHub Discussion for the release.
    • c.f. https://github.com/scikit-hep/pyhf/discussions/2326
  • [x] Watch the CI to ensure that the deployment to PyPI is successful.
    • c.f. https://pypi.org/project/pyhf/0.7.4/
  • [x] Verify Docker images with the correct tags have been deployed to all container image registries.
    • [x] Docker Hub
    • [x] OSG Harbor (crane cp docker.io/pyhf/pyhf:v0.7.4 hub.opensciencegrid.org/pyhf/pyhf:v0.7.4)
    • [x] CERN Harbor (crane cp docker.io/pyhf/pyhf:v0.7.4 registry.cern.ch/pyhf/pyhf:v0.7.4)
  • [x] Verify there is a new Zenodo DOI minted for the release.
    • [x] Verify that the new release archive metadata on Zenodo matches is being picked up as expected from CITATION.cff.
  • [x] Verify that a Binder has properly built for the new release.
  • [x] Watch for a GitHub notification that there is an automatic PR to the Conda-forge feedstock. This may take multiple hours to happen. If there are any changes needed to the Conda-forge release make them from a personal account and not from an organization account to have workflows properly trigger.
    • [x] Verify the requirements in the Conda-forge feedstock recipe meta.yaml match those in pyproject.toml.
    • c.f. https://github.com/conda-forge/pyhf-feedstock/pull/20

After Release

  • [x] Verify that the release is installable from both PyPI and Conda-forge.
  • [x] Send the drafted pyhf-announcements email out from the pyhf-announcements account email.
    • c.f. https://groups.google.com/g/pyhf-announcements/c/jHv_5KkLnGA
  • [x] Tweet the release out on both personal and team Twitter accounts.
    • https://x.com/pyhf_/status/1702702124369379328?s=20
  • [x] Forward port the release notes and bumpversion information from the release branch to the default branch.
    • c.f. PR https://github.com/scikit-hep/pyhf/pull/2217 and PR https://github.com/scikit-hep/pyhf/pull/2218 as examples from pyhf v0.7.2.
    • https://github.com/scikit-hep/pyhf/pull/2330
    • https://github.com/scikit-hep/pyhf/pull/2331
  • [ ] Announce the release on the Scikit-HEP community Gitter.
  • [x] Make a release for the pyhf tutorial corresponding to the previous release number. This release represents the last version of the tutorial that is guaranteed to work with previous release API.
    • c.f. https://github.com/pyhf/pyhf-tutorial/releases/tag/v0.7.3
  • [ ] Update the tutorial to use the new release number and API.
  • [ ] Make a PR to use the new release in the CUDA enabled Docker images.
  • [x] Open a ticket on the CERN Software Process and Infrastructure JIRA to update the version of pyhf available in the next LCG release.
  • [x] Make a MR to use the new release in ATLAS StatAnalysis.
  • [ ] Close the release GitHub Project board.

matthewfeickert avatar Sep 06 '23 20:09 matthewfeickert

Issues with using environments for deployments to PyPI using v*

Screenshot from 2023-09-06 22-43-34

are coming from changes in GitHub's security covered in https://github.com/orgs/community/discussions/62991#discussioncomment-6718696

matthewfeickert avatar Sep 07 '23 04:09 matthewfeickert

Issues with using environments for deployments to PyPI using v*

This is resolved now as the environment protection rules now apply to branches and tags

image

cc @kratsg.

This was resolved on October 3rd, 2023:

matthewfeickert avatar May 24 '24 22:05 matthewfeickert