Skip to content
dvstark edited this page Apr 28, 2026 · 14 revisions

Where to release

  • PyPI (bot picks up from tag push)
  • GitHub
  • conda-forge (bot picks up from PyPI)
  • Zenodo (bot picks up from GitHub release)

How to release on GitHub

  1. Grab latest code from master: git fetch upstream master
  2. Grab all the tags from this repo: git fetch upstream --tags
  3. Make sure you are on the branch that you intend to release from: git checkout master -> git rebase upstream/master
  4. Check git status (must be clean) and git log (must contain correct history).
  5. Optional: Remove files not under version control: git clean -xdf
  6. Tag the release (replace X.Y.Z with real version number; replace -s with -a if you do not have GPG): git tag -s "X.Y.Z" -m "Tagging version X.Y.Z"
  7. Push the tag (replace X.Y.Z with real version number; replace upstream with whatever you name the repo that points to this repo, not your fork): git push upstream X.Y.Z
  8. Wait for the "Wheel building" (https://github.com/spacetelescope/acstools/actions/workflows/publish-to-pypi.yml) job associated with your release tag to finish running and make sure it succeeds.
  9. Edit release tag on GitHub to add change log and publish release. Go to "Tags" on main page --> click the latest one --> Click "create release from tag" --> Set title to "X.Y.Z Release Notes" --> "Hit the button to automatically generate release notes" --> Remove infrastructure-related commits (e.g., "TST*", "bump actions"). Add anything else worth noting (the commits should catch worthwhile updates though) --> Hit release.
  10. Send Webmaster (current = Meaghan McDonald) a message that there's a new version. Include a the top highlighted changes from the "Release Notes"

How to release on PyPI

Check the logs under https://github.com/spacetelescope/acstools/actions/workflows/publish-to-pypi.yml . This should be done automatically when a new tag is pushed out. If successful, you will see it on https://pypi.org/project/acstools/ . If it failed, you have to fix whatever that failed and go through the release process above again.

Other release outlets

  • Wait for a notification from conda-forge feedstock, review its PR, fix (if needed), and merge.
  • Check acstools page on Zenodo (https://zenodo.org/records/19857779; look for newest version on right menu)

Lack of milestone

This is a low-traffic package. Therefore, there is no milestone being used to track GitHub PRs. A release is made when ACS Team wants it and whether it is a major/minor/bugfix depends on what went in since the last release.