Create a New Release

Creating a new release of the Azure-Schema-Operator #

  1. Go to the releases page and draft a new release.
  2. In the tag dropdown, type the name of the new tag you’d like to create (it should match the pattern of previous release tags, for example: v1.0.0-alpha.1). The release target should be main (the default).
  3. Use the GitHub “auto-generate release notes” button to generate a set of release notes to work with. You will need to clean this up quite a bit before actually publishing it.
  4. If publishing an alpha/beta, be sure to mark the release as a pre-release.
  5. Write a “Release Notes” section. You can edit the autogenerated section as a start. You can also look through the commits between the last release and now: git log v1.0.0-alpha.6..main.
  6. Publish the release. This will automatically trigger a GitHub action to build and publish an updated Docker image with the latest changes.
  7. Ensure that the action associated with your release finishes successfully.

Creating and testing Helm chart for new release #

  1. Create a new branch from <NEW_RELEASE_TAG> HEAD

  2. Generate helm manifest for new release: task controller:gen-helm-manifest

  3. Check the version in /charts/azure-schema-operator/Chart.yaml if matches with the latest release tag.

  4. Install helm chart:

    helm install schemaop -n azureschemaoperator-system --create-namespace ./charts/azure-schema-operator/.
    
  5. Wait for the chart installation.

  6. Wait for it to start: kubectl get all -n azureschemaoperator-system

  7. Run through the kusto tutorial and validate the changes.

  8. If installed successfully, commit the files under charts/azure-schema-operator.

  9. Create a pool request following the PR template.

Fixing an incorrect release #

If there was an issue publishing a new release, we may want to delete the existing release and try again. Only do this if you’ve just published the release and there is something wrong with it. We shouldn’t be deleting releases people are actually using.

  1. Delete the release in the releases page.
  2. Delete the tag: git push <origin> --delete <tag>, for example git push origin --delete v2.0.0-alpha.1.

At this point, you can safely publish a “new” release with the same name.