Skip to content

release_process

Peter Holloway edited this page Aug 27, 2025 · 1 revision

Release Process

The release process is in two parts. The first is to publish the new release in Github, and the second is to update the Diamond argoCD app to update the version of numtracker used by the central deployment.

Github Release

  1. In GitHub, go to the new release page (or navigate to the Releases section and select "Draft New Release").

  2. For tag, enter a new tag in the format vX.Y.Z where the correct component has been incremented for the changes and choose "Create new tag on publish".

  3. For 'Target' choose 'main' unless patching a previous version.

  4. For the 'Release Title', follow the format of previous releases - vX.Y.Z - Very brief highlight

  5. Under the 'Release notes' sections, select the previous tag from the drop down and choose Generate release notes

  6. The generated release notes are based purely on PRs and is not useful in its generated form.

    Rearrange and/or merge the suggested changes into sensible headings - see previous releases for inspiration, eg

    • 'What's Changed' for new features and user facing updates
    • 'Fixed' for bugfixes
    • 'Housekeeping' for dependency updates/chores
    • 'Internal' for implementation changes that don't effect behaviour
    • 'Deployment' for changes to helm charts
  7. The automatic 'New Contributors' section can be left as is

  8. Select "Set as pre-release" and "Set as latest release" as appropriate - most likely no to pre-release and yes to latest

  9. Select 'Publish Release'

Use new version at Diamond

  1. In the services repo, make a PR to update the version of numtracker to the newly released version, eg

     --- a/services/numtracker/Chart.yaml
     +++ b/services/numtracker/Chart.yaml
     @@ -7,14 +7,14 @@ description: Central numtracker instance for numtracker.diamond.ac.uk
      # Otherwise, changes to appVersion or to values.yaml are patch changes. Changes to the
      # structure of the chart (e.g. adding a secret.yaml to templates/ should be
      # semantically versioned)
     -version: 1.0.0
     +version: 1.0.1
    
      # appVersion should match version of numtracker below
     -appVersion: "1.0.0"
     +appVersion: "1.0.1"
    
      type: application
    
      dependencies:
        - name: numtracker
     -    version: "1.0.0"
     +    version: "1.0.1"
          repository: "oci://ghcr.io/diamondlightsource/charts"

    The Chart.lock file will need to be updated to lock the new version, this can be generated using helm dependency update. This should generate a diff such as

     --- a/services/numtracker/Chart.lock
     +++ b/services/numtracker/Chart.lock
     @@ -1,6 +1,6 @@
      dependencies:
      - name: numtracker
        repository: oci://ghcr.io/diamondlightsource/charts
     -  version: 0.2.0
     -digest: sha256:1a6e92081ec0aeb91b2c98c78c1f3eae90ea28cb26802cfd1542747e532ce601
     -generated: "2025-02-18T11:18:24.164126552Z"
     +  version: 0.3.0
     +digest: sha256:9a66c57c9a40f9f2a25ab752902ca3541d7127913290530b6ba309e5f71eed2a
     +generated: "2025-04-02T17:01:53.550877037+01:00"

    This PR may be automatically generated by @Renovate bot - if so, checking and merging it should be enough.

  2. Merge the PR

  3. Ensure that numtracker updates in ArgoCD.

Clone this wiki locally