|
1 | 1 | # Release |
2 | 2 |
|
3 | | -To create a release, create a tag. |
4 | | -It must follow the x.y.z pattern without any prefix. |
| 3 | +## Version Scheme |
| 4 | + |
| 5 | +- `master` always contains a tag with the current development version: `X.Y-develop` |
| 6 | +- Stable branches are named `X.Y-stable` |
| 7 | +- Release candidate tags on stable branches follow `X.Y.Z-rc` (e.g. `3.18.0-rc1`) |
| 8 | +- Release tags on stable branches follow `X.Y.Z` (e.g., `3.18.0`, `3.18.1`) |
| 9 | + |
| 10 | +## Branching for a Release |
| 11 | + |
| 12 | +When ready to stabilize a version (e.g., 3.18): |
| 13 | + |
| 14 | +1. Create the stable branch from master: |
| 15 | + |
| 16 | + ``` |
| 17 | + git fetch origin |
| 18 | + git checkout -b 3.18-stable origin/master |
| 19 | + git push --set-upstream origin HEAD |
| 20 | + ``` |
| 21 | + |
| 22 | +2. Update `src/vars/images.yml` on the stable branch to reference the release images (e.g., `foreman-3.18`). |
| 23 | + |
| 24 | +3. Bump master to the next development version: |
| 25 | + |
| 26 | + ``` |
| 27 | + git checkout master |
| 28 | + git tag -s "3.19-develop" -m "Start 3.19 development" |
| 29 | + git push --follow-tags |
| 30 | + ``` |
| 31 | + |
| 32 | +## Cutting a Release |
| 33 | + |
| 34 | +To release from a stable branch (e.g., 3.18.0): |
5 | 35 |
|
6 | 36 | ``` |
7 | | -VERSION=x.y.z |
8 | | -git tag -s "$VERSION" -m "Release $VERSION" |
| 37 | +git checkout 3.18-stable |
| 38 | +git tag -s "3.18.0" -m "Release 3.18.0" |
9 | 39 | git push --follow-tags |
10 | 40 | ``` |
11 | 41 |
|
12 | 42 | This will create a GitHub release and attach the created tarball to it. |
13 | 43 |
|
14 | | -Once that is done, the packaging is handled in the `foreman-packaging` repository where the spec file is maintained: |
| 44 | +## Packaging |
| 45 | + |
| 46 | +Once that is done, the packaging is handled in the [foreman-packaging](https://github.com/theforeman/foreman-packaging) repository where the spec file is maintained: |
15 | 47 |
|
16 | 48 | obal update foremanctl --version $VERSION |
17 | 49 | gh pr create --base rpm/develop |
0 commit comments