Release process guidance

Release version and Docker images

  1. Make sure that the release commits have no security issues.
  2. Document all the changes for new release in CHANGELOG.md.
  3. Create the following release tags:
    • git tag -s v1.xx.y in master branch
    • git tag -s v1.xx.y-cluster in cluster branch
    • git tag -s v1.xx.y-enterprise in enterprise branch
    • git tag -s v1.xx.y-enterprise-cluster in enterprise-cluster branch
  4. Run TAG=v1.xx.y make publish-release. It will create *.tar.gz release archives with the corresponding _checksums.txt files inside bin directory and publish Docker images for the given TAG, TAG-cluster, TAG-enterprise and TAG-enterprise-cluster.
  5. Push release tags to https://github.com/VictoriaMetrics/VictoriaMetrics : git push origin v1.xx.y and git push origin v1.xx.y-cluster. Do not push -enterprise tags to public repository.
  6. Go to https://github.com/VictoriaMetrics/VictoriaMetrics/releases , create new release from the pushed tag on step 4 and upload *.tar.gz archive with the corresponding _checksums.txt from step 3.
  7. Copy the CHANGELOG for this release to releases page.
  8. Bump version of the VictoriaMetrics cluster setup in for sandbox environment by opening and merging PR.

Building snap package

pre-requirements:

  • snapcraft binary, can be installed with commands: for MacOS brew install snapcraft and install mutipass, for Ubuntu - sudo snap install snapcraft --classic
  • exported snapcraft login to ~/.snap/login.json with snapcraft export-login login.json && mkdir -p ~/.snap && mv login.json ~/.snap/
  • already created release at github (it operates git describe version, so git tag must be annotated).
  1. checkout to the latest git tag for single-node version.
  2. execute make release-snap - it must build and upload snap package.
  3. promote release to current, if needed manually at release page snapcraft-releases

Public Announcement

Helm Charts

The helm chart repository https://github.com/VictoriaMetrics/helm-charts/

Bump the version of images

  1. Update vmagent chart version in values.yaml and Chart.yaml
  2. Update vmalert chart version in values.yaml and Chart.yaml
  3. Update vmauth chart version in values.yaml and Chart.yaml
  4. Update cluster chart versions in values.yaml, bump version for vmselect, vminsert and vmstorage and Chart.yaml
  5. Update k8s-stack chart versions in values.yaml, bump version for vmselect, vminsert, vmstorage, vmsingle, vmalert, vmagent and Chart.yaml
  6. Update single-node chart version in values.yaml and Chart.yaml
  7. Run make gen-doc
  8. Run make package that creates or updates zip file with the packed chart
  9. Run make merge. It creates or updates metadata for charts in index.yaml
  10. Push changes to master. master is a source of truth
  11. Push the changes to gh-pages branch

Ansible Roles

Bump the version of images

Repository https://github.com/VictoriaMetrics/ansible-playbooks

  1. Update vmagent version in main.yml
  2. Update vmalert version in main.yml
  3. Update cluster version in main.yml
  4. Update single version in main.yml
  5. Commit changes
  6. Create a new tag
  7. Create a new release. This automatically publishes the new versions to galaxy.ansible.com

Github pages

All changes in README.md, docs folder and .md extension automatically push to Wiki