Deployment How-To¶
This guide describes how to create a GOATS release, build Conda packages, and publish them for installation via GitHub Pages.
Release Strategy¶
GOATS uses CalVer (calendar versioning), since it is an application that depends on evolving external systems. We prioritize compatibility with current systems rather than strict backward compatibility with older versions of GOATS.
Version Format¶
Format:
YY.MM.PATCH(e.g.,25.6.0for the first release of June 2025)Add
rcNsuffix for release candidates (e.g.,25.6.0rc1)Increment the patch version for subsequent releases within the same month (e.g.,
27.12.4)
Creating a GitHub Release¶
Choose a tag version to release (see version format above).
Navigate to the GOATS GitHub repository.
Click the Actions tab.
Find the Build Release workflow and click it.
Click the Run Workflow button.
Fill out the version tag and any other required fields, then click Run Workflow.
The release will be created automatically in a few minutes, along with release notes and a GitHub release tag.
Preparing Conda Feedstock¶
Clone the
goats-infrarepository:git clone https://github.com/gemini-hlsw/goats-infra.git cd goats-infra
Run the release SHA script to retrieve the version and checksum:
python get_release_sha.pyOpen
goats-feedstock/recipe/meta.yamland update:{% set version - "..." %}to the release version.source.sha256to the generated SHA256 value.
Commit and push the changes:
git add . git commit -m "Update version to VERSION" git push origin main
Building Conda Packages¶
Go to the
goats-infraActions page.Select the Conda Build workflow.
Click Run Workflow and wait for the job to finish.
Publish to Custom Conda Channel¶
After the Conda Build workflow completes, a pull request will be created automatically on goats-infra with the title:
Publish goats-VERSION to Conda.
Review the pull request and ensure the build artifacts and metadata look correct.
Once you’re satisfied, approve and merge the PR into the main branch.
After merging, GitHub Pages will automatically deploy the updated Conda channel.
Confirming the Package Availability¶
Run the following command to ensure the package has been published successfully:
conda search -c https://gemini-hlsw.github.io/goats-infra/conda goats