We publish Docker images and Helm charts to GitHub Container Registry (ghcr.io) for every tag. This document describes how to make a new version tag and push it to GitHub.
To update the version:
-
Update the CHANGELOG.md
- Generate a list of PRs using github-activity
pip install github-activity github-activity --output github-activity-output.md --since <last tag> 2i2c-org/jupyterhub-home-nfs - Visit and label all uncategorized PRs appropriately with: maintenance, enhancement, breaking, bug, or documentation or skip this and next step and categorize them manually in the changelog.
- Generate the list of PRs again and add it to the changelog
- Highlight breaking changes
- Summarize the release changes
- Generate a list of PRs using github-activity
-
Prepare Your Environment
Ensure your local repository is up-to-date and install required tools:
git checkout main git fetch origin main git reset --hard origin/main
Install tbump if not already installed:
pip install tbump
-
Update Version with tbump
Use tbump to update the version numbers in the codebase:
First, run a dry run to see what will change:
tbump --dry-run ${VERSION}Then, run the actual update:
VERSION=x.y.z tbump ${VERSION}This will:
- Update
__version__injupyterhub_home_nfs/__init__.py - Update version and appVersion in
helm/jupyterhub-home-nfs/Chart.yaml - Create a git commit
- Create a git tag
- Update
-
Push Changes
Push the changes and tag to GitHub:
git push origin main git push origin ${VERSION} -
CI Automation
Once we create a tag, the GitHub Actions workflow (
build-publish-docker-helm.yaml) will automatically:- Build the Docker images
- Push them to GitHub Container Registry (ghcr.io)
- Update the Helm chart with the new image tags
- Package and publish the Helm chart to ghcr.io
-
Reset the version back to dev, e.g. 4.0.1-0.dev after releasing 4.0.0.
NEXT_VERSION=x.y.z1-0.dev tbump --no-tag ${NEXT_VERSION}-0.dev
After pushing your changes:
- Check the GitHub Actions workflow status
- Verify that:
- The workflow completed successfully
- The Docker images are available on ghcr.io
- The Helm chart is published to ghcr.io