Skip to content

Commit 8bca754

Browse files
authored
Add release process (#783)
1 parent dccd7cc commit 8bca754

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

release-process.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
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

Comments
 (0)