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

https://jira.skatelescope.org/issues/?filter=19129

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.