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.
After completion, two artifacts will be available:
Linux--X64.zipmacOS--X64.zip
Download and unzip both files.
Copy the
.condapackages to the correct folders in your local GOATS repo:cp Linux--X64/linux-64/*.conda goats/docs/gh_pages/conda/linux-64/ cp macOS--X64/osx-64/*.conda goats/docs/gh_pages/conda/osx-64/
Rebuild the Conda channel index:
conda index docs/gh_pages/conda --channeldata
Commit and push the updated channel data:
git add docs/gh_pages/conda git commit -m "Add Conda packages for VERSION." git push origin BRANCH_NAME
Merge your pull request. GitHub Pages will automatically deploy the updated Conda channel.
Installing the Release¶
Once the package is deployed, install it using:
conda install -c https://gemini-hlsw.github.io/goats/conda goats