|
| 1 | +# Release Process |
| 2 | + |
| 3 | +This document outlines the steps involved in the release process for the NGINX Prometheus Exporter. |
| 4 | + |
| 5 | +<!-- START doctoc generated TOC please keep comment here to allow auto update --> |
| 6 | +<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --> |
| 7 | +## Table of Contents |
| 8 | + |
| 9 | +- [Versioning](#versioning) |
| 10 | +- [Release Planning and Development](#release-planning-and-development) |
| 11 | +- [Releasing a New Version](#releasing-a-new-version) |
| 12 | + |
| 13 | +<!-- END doctoc generated TOC please keep comment here to allow auto update --> |
| 14 | + |
| 15 | +## Versioning |
| 16 | + |
| 17 | +The project follows [Semantic Versioning](https://semver.org/). |
| 18 | + |
| 19 | +## Release Planning and Development |
| 20 | + |
| 21 | +The features that will go into the next release are reflected in the |
| 22 | +corresponding [milestone](https://github.com/nginxinc/nginx-prometheus-exporter/milestones). Refer to |
| 23 | +the [Issue Lifecycle](/ISSUE_LIFECYCLE.md) document for information on issue creation and assignment to releases. |
| 24 | + |
| 25 | +## Releasing a New Version |
| 26 | + |
| 27 | +1. Create an issue to define and track release-related activities. Choose a title that follows the |
| 28 | + format `Release X.Y.Z`. |
| 29 | +2. Stop merging any new work into the main branch. |
| 30 | +3. Check the release draft under the [GitHub releases](https://github.com/nginxinc/nginx-prometheus-exporter/releases) page |
| 31 | +to ensure that everything is in order. |
| 32 | +4. Create a PR to update the version in the `Makefile` and [README](README.md) to the new version, and any other necessary |
| 33 | + changes. |
| 34 | +5. Once the PR is merged, create a new release tag in the format `vX.Y.Z`: |
| 35 | + |
| 36 | + ```bash |
| 37 | + git tag -a vX.Y.Z -m "Release vX.Y.Z" |
| 38 | + git push origin vX.Y.Z |
| 39 | + ``` |
| 40 | + |
| 41 | + As a result, the CI/CD pipeline will: |
| 42 | + - Build the Docker image and push it to the registries. |
| 43 | + - Publish the release to Snapcraft, Homebrew, Scoop, and Nix. |
| 44 | + - Create a GitHub release with the autogenerated changelog and artifacts attached. |
| 45 | + - Announce the release in the community Slack. |
0 commit comments