|
| 1 | +## Maintainance notes |
| 2 | + |
| 3 | +- Please see the [versioning policy](https://github.com/flatpak/flatpak-builder/tree/main?tab=readme-ov-file#supported-versions). |
| 4 | +- Stable branches will only get bugfixes and non-breaking enhancements. |
| 5 | +- Everything is merged to `main` and from time to time suitable changes |
| 6 | + are backported to the stable `flatpak-builder-1.EVEN_MINOR.x` |
| 7 | + branches. GitHub milestone can be used for tracking which PRs should |
| 8 | + be backported. |
| 9 | +- Stable tags are created from `flatpak-builder-1.EVEN_MINOR.x` branch. |
| 10 | +- Unstable tags are created from the `main` branch. |
| 11 | +- The first release of a new stable release line eg. `1.6.0` |
| 12 | + is tagged from `main`. After that the `flatpak-builder-1.6.x` branch |
| 13 | + is to be created and the `1.6.1` is made from that branch. During this |
| 14 | + time `main` should not receive breaking changes until the new |
| 15 | + stable branch is created. |
| 16 | + |
| 17 | +## Releasing |
| 18 | + |
| 19 | +- Update the `NEWS` |
| 20 | +- Update version number in `meson.build` and `configure.ac`. |
| 21 | +- Open a PR titled "Release $VERSION" with the above to see if CI passes. |
| 22 | +- Merge the PR to the target branch. |
| 23 | +- Check out the target branch, pull the above change locally and make |
| 24 | + sure the submodules are correct and checked out. |
| 25 | +- Build with `meson` and `make`, with all options enabled. |
| 26 | +- Create a tarball with `make dist`. The tarball is created from a |
| 27 | + clean checkout. It is produced as `flatpak-builder-$VERSION.tar.xz`. |
| 28 | +- Verify the project is buildable using the tarball. The tarball MUST |
| 29 | + contain the submodule files. |
| 30 | + |
| 31 | +## Tagging |
| 32 | + |
| 33 | +- The tags are created in the `MAJOR.MINOR.PATCH` format eg. `1.4.6` |
| 34 | + (WITHOUT the `v*` prefix). |
| 35 | +- Ideally the tags should be signed and annotated tags. Optionally |
| 36 | + git-evtag can be used. |
| 37 | +- The tag message should have the changelog and the checksum of the |
| 38 | + tarball that will be attached to GitHub releases. |
| 39 | +- Once the tag is pushed, a GitHub release from that tag is to be |
| 40 | + created. |
| 41 | + |
| 42 | + The release tag is the new tag, the title is `VERSION` and the release |
| 43 | + body is the message from the tag. Additional notifications and details |
| 44 | + can be documented to the release body. |
| 45 | + |
| 46 | + Then the `flatpak-builder-$VERSION.tar.xz` tarball is to be attahced. |
| 47 | + This is the primary way downstreams consume Flatpak builder. |
| 48 | + |
| 49 | + |
| 50 | +NOTE: GitHub releases are set as _immutable_, so please be careful. |
0 commit comments