Skip to content
P. L. Lim edited this page Jun 26, 2026 · 20 revisions

Where to release

  • PyPI (bot picks up from GitHub release)
  • 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. 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.
  9. Wait for the "Wheel building" (https://github.com/spacetelescope/acstools/actions/workflows/build.yml) job associated with your release tag to finish running and make sure it succeeds.
  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/build.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.

Regression tests

Download and configure jfrog

See https://github.com/spacetelescope/jwst/wiki/Maintaining-Regression-Tests#download-and-configure-jfrog

Running regression tests locally

Set up environment variables and CRDS; e.g.:

export jref="/grp/crds/cache/references/hst/"
export CRDS_PATH="/path/to/local/crds_cache"
export CRDS_SERVER_URL="https://hst-crds.stsci.edu"

To set up local checkout of "big data" to $HOME (though it is preferable to store them to a disk that is physically close to the CPU, e.g., /internal/1):

mkdir ~/test_bigdata
mkdir ~/test_bigdata/scsb-hstcal
cd ~/test_bigdata/scsb-hstcal
jfrog rt dl "scsb-hstcal/dev/*" ./
export TEST_BIGDATA=$HOME/test_bigdata/

Note that scsb-hstcal is the same directory as the one used by hstcal. Therefore, please be careful when you add/remove files from this directory.

To run all the tests from acstools source checkout root directory:

pytest tests/ -s -v[v] --durations=0 --bigdata --slow [--run-slow] --basetemp=/path/to/pytest_output/ &> test_output.log

New input/truth file

Okify currently does not work. Manually copy them over to Artifactory.

Re-sync local TEST_BIGDATA

See https://github.com/spacetelescope/hstcal/wiki/Running-regression-tests-locally#re-sync-local-test_bigdata

Run tests for a pull request

See https://github.com/spacetelescope/RegressionTests/blob/main/docs/running_regression_tests.md

Also see