Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rewrite of Release Tutorial #435

Merged
merged 2 commits into from
Sep 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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.
1 change: 0 additions & 1 deletion packages/falter-common/files/etc/freifunk_release
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
FREIFUNK_DISTRIB_ID="Freifunk Falter"
FREIFUNK_RELEASE='snapshot'
FREIFUNK_OPENWRT_BASE='snapshot'
FREIFUNK_REVISION='%R'
FREIFUNK_VARIANT='standard'
Loading