You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: RELEASE.md
+12-15
Original file line number
Diff line number
Diff line change
@@ -1,23 +1,23 @@
1
1
# Release
2
2
3
-
The Prometheus Go client library follows a release process similar to the [Prometheus server](https://github.com/prometheus/prometheus/blob/main/RELEASE.md).
3
+
The Prometheus Go client library does not follow a strict release schedule. Releases are made based on necessity and the current state of the project.
4
4
5
5
## Branch Management
6
6
7
7
We use [Semantic Versioning](https://semver.org/).
8
8
9
9
- Maintain separate `release-<major>.<minor>` branches
10
10
- Branch protection enabled automatically for `release-*` branches
11
-
- Bug fixes go to latest release branch, then merge to main
11
+
- Bug fixes go to the latest release branch, then merge to main
12
12
- Features and changes go to main branch
13
-
-Older release branches maintained on best-effort basis
13
+
-Non-latest minor release branches are maintained (e.g. bug and security fixes) on the best-effort basis
14
14
15
15
## Pre-Release Preparations
16
16
17
17
1. Review main branch state:
18
18
- Expedite critical bug fixes
19
-
-Hold back risky changes
20
-
- Update dependencies via Dependabot PRs
19
+
-Don't rush on risky changes, consider them for the next release if not ready
20
+
- Update dependencies via Dependabot PRs or manually if needed
21
21
- Check for security alerts
22
22
23
23
## Cutting a Minor Release
@@ -29,7 +29,7 @@ We use [Semantic Versioning](https://semver.org/).
29
29
git push origin release-<major>.<minor>
30
30
```
31
31
32
-
2. Create feature branch:
32
+
2. Create a new branch on top of `release-<major>.<minor>`:
@@ -61,7 +61,6 @@ We use [Semantic Versioning](https://semver.org/).
61
61
62
62
7. For Final Release:
63
63
- Wait for CI completion
64
-
- Verify artifacts published
65
64
- Click "Publish release"
66
65
- For RCs, ensure "pre-release" box is checked
67
66
@@ -86,8 +85,8 @@ We use [Semantic Versioning](https://semver.org/).
86
85
```
87
86
88
87
2. Apply fixes:
89
-
-Cherry-pick from main: `git cherry-pick <commit>`
90
-
-Or add new fix commits
88
+
-Commit the required fixes; avoid refactoring or otherwise risky changes (preferred)
89
+
-Cherry-pick from main if fix was already merged there: `git cherry-pick <commit>`
91
90
92
91
3. Follow steps 3-9 from minor release process
93
92
@@ -102,19 +101,17 @@ If conflicts occur merging to main:
102
101
103
102
## Note on Versioning
104
103
105
-
Go modules require strict semver. Because we don't commit to avoid breaking changes between minor releases, we use major version zero releases for libraries.
106
-
107
104
## Compatibility Guarantees
108
105
109
106
### Supported Go Versions
110
107
111
108
- Support provided only for the three most recent major Go releases
112
-
- While the library may work with older versions, no fixes or support provided
109
+
- While the library may work with older Go versions, support and fixes are best-effort for those.
113
110
- Each release documents the minimum required Go version
114
111
115
112
### API Stability
116
113
117
-
The Prometheus Go client library aims to maintain backward compatibility within minor versions, similar to [Go 1 compatibility promises](https://golang.org/doc/go1compat). However, as indicated by the major version zero (v0):
114
+
The Prometheus Go client library aims to maintain backward compatibility within minor versions, similar to [Go 1 compatibility promises](https://golang.org/doc/go1compat):
118
115
119
116
- API signatures may change between minor versions
120
117
- Types may be modified or relocated
@@ -131,8 +128,8 @@ Before each release:
131
128
- Benchmark comparisons with previous version
132
129
133
130
2.**External Validation**:
134
-
- Testing with prometheus/prometheus master branch
135
-
- Testing with kubernetes/kubernetes master branch
131
+
- Testing with prometheus/prometheus `main` branch
132
+
- Testing with kubernetes/kubernetes `main` branch
136
133
- Breaking changes must be documented in CHANGELOG.md
0 commit comments