Skip to content

Commit 2e643a7

Browse files
authored
Merge pull request #656 from doitintl/docs/releases
docs(release): Document the release process and what is expected
2 parents 2f8b617 + 6351eeb commit 2e643a7

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

.github/CONTRIBUTING.md

+53
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
- [Code Review](#mark-code-review)
1515
- [Coding Style](#coding-style)
1616
- [Changelog](#changelog)
17+
- [Release](#releases)
1718
- [Credits](#credits)
1819

1920
> **This guide serves to set clear expectations for everyone involved with the project. We are indebted to @stepanstipl for creating this project.**
@@ -178,6 +179,58 @@ Additionally we will reference any new contributors between the release versions
178179
@dark0dave made their first contribution in #1
179180
```
180181

182+
## Releases
183+
184+
We use [semantic versioning](https://semver.org/) in kubent.
185+
186+
> Given a version number MAJOR.MINOR.PATCH, increment the:
187+
>
188+
> - MAJOR version when you make incompatible API changes
189+
> - MINOR version when you add functionality in a backward compatible manner
190+
> - PATCH version when you make backward compatible bug fixes
191+
>
192+
> Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.
193+
194+
### Triggering a release
195+
196+
Releases are triggered by pushing a new tag, it is **imperative** you keep to the style of tag defined in the cliff.toml file otherwise git-cliff will not generate valid release notes.
197+
198+
### Expected tag structure
199+
200+
From the cliff toml file:
201+
```toml
202+
tag_pattern = "^[0-9]+.[0-9]+.[0-9]+$"
203+
```
204+
Example:
205+
- 0.7.1
206+
- 0.7.2
207+
- 0.7.3
208+
209+
#### Nightly
210+
211+
Nightly release happen on weekly schedule, this important for good health of the repo. This insures all our ci is always running properly. The intent here, is to release versions so that developers can test recent functionality in the wild. We can not foresee all out comes so we must rely on others.
212+
213+
#### When to release
214+
215+
We create [milestones](https://github.com/doitintl/kube-no-trouble/milestones) in the github repo which guide us towards minor releases, such as 0.7.0 or 0.6.0. @stepanstipl the creator of this repo has always avoided releasing 1.0.0 because that would lock our existing functionality in. Currently there are large outstanding issue which prevent us from having a stable API, ie version 1.0.0. This is in line with the semver doc see [here](https://semver.org/#how-do-i-know-when-to-release-100).
216+
217+
All that to say, our patches tend to be a mixture of small features and bugfixes. Example:
218+
219+
```md
220+
#### Features:
221+
feat: Add rego for v1.32 deprecations b4da33a by @dark0dave
222+
feat: Fix github actions for creating release notes edd2dc3 by @dark0dave
223+
#### Fixes:
224+
fix: Script install.sh in dumb TERM 35927e8 by @FabioAntunes
225+
fix: warn and fix invalid namespace 83308e1 by @justdan96
226+
fix: Add docker image back 6de101d by @dark0dave
227+
fix: Add fix for git cliff 9d487c9 by @dark0dave
228+
#### Internal/Other:
229+
dep: Bump lots of deps 7cdf86a by @dark0dave
230+
```
231+
232+
Please make an effort to stay with in these guidelines. A **smaller number** releases is preferred to a large number of releases. Additionally, We DO NOT SUPPORT `hotfixing` releases, see [hotfix explained](https://en.wikipedia.org/wiki/Hotfix). Releases stay static and immutable once released. In our view hotfixes cause more problems than they solve and introduce a burden on maintainers attempting to catch bugs and resolve issues.
233+
181234
## Credits
182235

183236
Very heavenly influenced by https://github.com/jessesquires/.github, thank you so much for providing a baseline for this.

0 commit comments

Comments
 (0)