Skip to content

Commit 64bcda1

Browse files
committed
add document describing the release process
1 parent ec00ad7 commit 64bcda1

File tree

1 file changed

+63
-0
lines changed

1 file changed

+63
-0
lines changed

RELEASE-PROCESS.md

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# OpenRC Release Process
2+
3+
OpenRC will follow [semantic versioning](https://semver.org/) once we
4+
move to 1.0.0.
5+
6+
Major and Minor releases will be created on the master branch, and patch
7+
releases will be created on the branch for the appropriate major or minor release.
8+
9+
OpenRC releases will be created by the primary OpenRC developers, which
10+
are currently (navi)[https://github.com/navi-desu) and
11+
[williamh](https://github.com/williamh).
12+
13+
Here are the steps we use to create a release.
14+
15+
## Major or Minor release
16+
17+
A major or minor release is directly on the master branch, so make sure
18+
changes you do not want in the release are not merged into it.
19+
20+
Once all changes you want in the release are committed and pushed on the
21+
master branch, follow these steps:
22+
23+
- Update the news file then commit and push.
24+
- Update the version in the top level meson.build then commit and push.
25+
- Tag the release with a signed tag as follows:
26+
27+
```
28+
$ git tag -s -m 'release major.minor' major.minor
29+
```
30+
31+
- push the tag:
32+
33+
## patch release
34+
35+
Patch releases are created on branches based on the major or minor
36+
release they are related to. Other than the version update in the top
37+
level meson.build, patch releases should only contain commits
38+
cherry-picked from master after the major/minor release they are related
39+
to. Patch releases are for bug fixes only; new features should not be
40+
added without going to a new major or minor release.
41+
42+
Here are the steps for creating a patch release.
43+
44+
- make sure you have the patch release branch created and checked out.
45+
Patch release branches are created with names like 1.1.x. If the
46+
patch release branch you need does not exist, create it as follows:
47+
48+
```
49+
git checkout -b 1.1.x 1.1
50+
git push -u origin 1.1.x
51+
```
52+
53+
- Check out the patch release branch:
54+
55+
```
56+
git checkout 1.1.x
57+
```
58+
59+
- use git-cherry(1) or some other method to determine which commits to
60+
cherry-pick from master for the patch release.
61+
- use git cherry-pick(1) to copy commits from master to the patch
62+
release branch. If the cherry-pick fails, the commit should not be used in the patch release.
63+

0 commit comments

Comments
 (0)