Skip to content

Commit

Permalink
docs: rewrite of release-tutorial
Browse files Browse the repository at this point in the history
  • Loading branch information
FFHener committed Sep 23, 2024
1 parent 6208791 commit 64cc8c4
Showing 1 changed file with 7 additions and 29 deletions.
36 changes: 7 additions & 29 deletions doc/making_a_release.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,11 @@
# How to have a release

The properties of a falter-release get defined by the `freifunk_release` file in the `falter-common` package *(packages/falter-common/files-common/etc/freifunk_release)*. This file controls parameters like the releases version number and the underlying OpenWrt version. All scripts and tools for building falter-releases get the information they need from that file.
Releases are build with our [instance of buildbot](https://buildbot.berlin.freifunk.net/).

For Falter-releases, we follow this workflow:
1. Log in using your GitHub account.
2. Select [Builds/Builders](https://buildbot.berlin.freifunk.net/#/builders)
3. Select `builds/packages` or `builds/targets` depending on what you want to do.
4. On the top right corner you can find buttons to start the corresponding actions.

## Have a pre-release

At first, we trigger the buildbot to build a pre-release. For this, you need to adjust the `freifunk_release` file in the falter-common package. Adjust the string in `FREIFUNK_RELEASE` to something like `1.2.5-rc1` or similar. In addition, you might need to adjust `FREIFUNK_OPENWRT_BASE` to a proper OpenWrt-release like `21.02.1`. Once you've pushed the commit, the buildbot should start building the release automatically (-> webhook).

As testing every configuration can be quite time-consuming, we usally involve the community into that process. Just write a short mail to the mailing list asking for some testing. :)

## Do the actual release

When everything is ready, do the following:

1. Create a commit with the new version number (like in pre-release) and push it to the repo. We use only stable OpenWrt-releases versions as release base.
2. Then follow the instructions on the [github manual](https://docs.github.com/en/github/administering-a-repository/releasing-projects-on-github/managing-releases-in-a-repository#creating-a-release). If everything went right, the release should be based on the commit you've just pushed.

## After a release

This step is very important: You need to do another commit **after** the buildbot has start building and before merging other commits. Please wait at least 10 minutes before doing so, as buildbot waits that amount of time for new commits, before starting the build process. If you do it too early, buildbot won't build the release commit but only the commit reverting to snapshots.

For the reversion to snapshot builds you need to adjust these variables in `freifunk_release` to values matching your situation. For example:

```sh
FREIFUNK_RELEASE='1.2.0-snapshot'
FREIFUNK_OPENWRT_BASE='21.02-SNAPSHOT'
```

If you don't do this, buildbot will just overwrite your precious release images once you've merged the next commit. That's because buildbot derives the destination-directory from the version.

So please don't miss this step.
## Beta Testing
We always do a public pre-release for beta-testing within the community. When selecting the `Build Release`-Button simply name the falter release version accordingly e.g. `1.2.3-rc1` where `rc` stands for release candidate.

0 comments on commit 64cc8c4

Please sign in to comment.