Release Process
Before embarking on a PST release, first consult with the Product Manager and read the guidance at Release Management Process.
This document describes only the technical steps of the release process; it does not describe any of the required planning and associated communication that should take place with the Product Manager, as described in the above document.
Check for existing releases
Before starting a new Draft release, check to see if there are any already planned or in progress by visiting
Compute the next version of ska-pst
In the terminal, ensure that you’re on the current version of the main branch
cd ska-pst
git checkout main
git pull --rebase
Make note of the current version number
cat .release
and decide if you’ll bump the major, minor or patch number. See Release Management REL project and Product Versions for advice.
Let the new version number be 0.4.0 in the remainder of this example.
Create REL issue for ska-pst
Visit https://jira.skatelescope.org/projects/REL/issues/ and click the blue Create button. In the pop up, enter
Summary: PST v0.4.0
Type: Sub-system Version
Component(s): COM PST Software
Fix Version/s: <current PI>
Delivers: <relevant features>
Tests: add all of the PST tests marked as Done; e.g. using this JQL filter
Environments: tick all of the boxes up to the last system targeted for deployment; e.g. Development, Staging, Prototype System Integration (PSI)
After creating the issue in Jira, add an “Issue Link” and relate the REL issue to the AT3 story for the release.
Release ska-pst components as needed
Depending on the versions of PST components that are currently required by the ska-pst-core and ska-pst-lmc umbrella helm charts, it may be necessary to release the following packages
ska-pst-buildtools
ska-pst
Release ska-pst-<pkg>
This section defines the generic pattern for releasing a package. Start by ensuring that everything is up to date.
cd ska-pst-<pkg>
git checkout main
git pull --rebase
git submodule update --init
Create a release branch
git checkout -b rel-708-release-pst-0-4-0
Update the infrastructure
make make
Double check that everything is ok and commit any changes; e.g.
git commit -m "REL-708 AT3-451 commit after make make" .
Note that both the REL and AT3 tickets are in the commit name, so that the commit gets linked to the PST project and the SKA Release project in Jira.
Check the current version number
cat .release
And then bump either the major, minor or patch release number; i.e.
make bump-major-release
or
make bump-minor-release
or
make bump-patch-release
Look for previous/old/outdated release numbers in other files; e.g.
grep -r -F 0.7.0 \* .[a-z]\* \| grep -v -E 'build|.git|.make'
Commit changes
git commit -m "REL-708 AT3-451 bump ska-pst version to 0.4.0" .
When ready, git push and wait for the gitlab pipeline to finish.
After the pipeline completes successfully, start the merge request.
After the merge request is approved and the release branch is merged with main, and the pipeline completes successfully
git checkout main
git pull --rebase
make git-create-tag
make git-push-tag
This will launch a new pipeline in gitlab, and the publish stage in this special pipeline contains the oci-image-publish task. Check that this task completed successfully by visiting the relevant pipeline at
https://gitlab.com/ska-telescope/pst/ska-pst-pkg/-/pipelines
After the oci-image-publish step has finished, ensure that the release is published in the CAR by searching for it at https://artefact.skao.int/
Also double-check that the release is published in gitlab at
https://gitlab.com/ska-telescope/pst/ska-pst-pkg/-/releases
Finally, optionally delete the branch on which the release was prepared; e.g.
git branch -d rel-542-release-pst-0-3-0
Notes for each ska-pst project
Release ska-pst-buildtools
Release this package only if there was a change. While it isn’t production code, we may bump versions of packages used by common, SMRB, RECV, STAT, and DSP.
Follow the recipe for ska-pst-<pkg>
Release ska-pst-common
As for ska-pst-<pkg>, but also ensure that the
PST_OCI_BUILDTOOLS_TAG
variable in the top-level Makefile is correct.
Release ska-pst-smrb
As for ska-pst-<pkg>, but also update the ska-pst-common release/version in
Makefile:DEV_TAG
.gitlab-ci.yml:PST_OCI_COMMON_TAG
In addition to searching for old/outdated ska-pst-smrb release numbers, also look for previous/old/outdated ska-pst-common release numbers in other files.
Release ska-pst-recv, ska-pst-dsp, ska-pst-stat, ska-pst-send (can be done in parallel)
As for ska-pst-<pkg>, but also update the ska-pst-smrb-builder release/version in
Makefile:DEV_TAG
.gitlab-ci.yml:PST_SMRB_OCI_COMMON_TAG
Ensure that the SMRB runtime and builder images are pulled from artefact.skao.int and not registry.gitlab.com; e.g. in .gitlab-ci.yml and Dockerfile
SMRB_RUNTIME_IMAGE: artefact.skao.int/ska-pst-smrb:0.3.1
RECV_BUILDER_IMAGE: artefact.skao.int/ska-pst-smrb-builder:0.3.1
Note that the DEV_IMAGE=registry.gitlab.com in Makefile is ok.
Update the ska-pst-smrb and ska-pst-smrb-builder versions in
images/*/Dockerfile:ARG BUILD_IMAGE
Makefile:DEV_IMAGE
Makefile:DEV_TAG
.gitlab-ci.yml:SMRB_RUNTIME_IMAGE
.gitlab-ci.yml:RECV_RUNTIME_IMAGE
In addition to searching for old/outdated RECV / DSP release numbers, also look for previous/old/outdated smrb and smrb-builder release numbers in other files; e.g.
grep -F <old-ska-pst-smrb-version> -r \* .[a-z]\*
Release ska-pst
As for ska-pst-<pkg>, but also update the ska-pst-lmc, ska-pst-smrb, ska-pst-recv, ska-pst-dsp versions in various ska-pst and test-parent charts and values files.
Sign in to Read the Docs using Gitlab and visit https://readthedocs.org/projects/ska-telescope-ska-pst/versions/
Under the Activate a Version heading, click the Activate button for the new release, tick the Active checkbox and click Save.
Visit the REL ticket for the release and edit the Gitlab URL(s), CAR URL(s), and User Docs fields; e.g.
Gitlab URL(s):
https://gitlab.com/ska-telescope/pst/ska-pst/-/releases/0.4.0
CAR URL(s):
https://artefact.skao.int/repository/helm-internal/ska-pst-0.4.0.tgz
User Docs:
https://developer.skao.int/projects/ska-pst/en/0.4.0/
Finally, flag the REL ticket as Ready for Release.