mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-01-27 02:18:47 +00:00
There isn't a good reason why we're using a Makefile instead of regular Bash script for bumping versions, so this PR fixes that for better maintainability. It also reduces then chances for merge conflicts when bumping version because the versions are longer on adjacent lines. Fixes: #7904
3.3 KiB
3.3 KiB
Maintainer's Guide
This document contains instructions for maintaining the code in this repo including the product, website, and documentation.
Table of Contents:
Releasing
Note: The version for all published components is set from scripts/bump-versions.sh.
App Store clients (Apple/Android)
- Go to Actions tab in GH and run the
KotlinorSwiftworkflow appropriately - This will push new release builds to Firebase or App Store Connect and pushed out Firebase App Distribution or TestFlight respectively.
- Test this build manually a bit since we have no automated client tests yet
- To submit for review:
- For Apple, do this through AppStore connect. Details are below.
- Android, download the AAB from Firebase App Distribution, create a new release in Google Play Console, and upload the AAB.
GitHub-released components (Linux, Windows, and Gateway)
Given that main is tested:
- Go to the draft release of the component you want to publish
- Double-check that the assets attached are from a recent CI and include the correct changes.
- Publish the release. Tags and release name should be auto generated. This will trigger pushing Docker images to
ghcr.io. - Open a PR and make the following changes:
- Update scripts/bump-versions.sh with the new version number(s). Run
scripts/bump-versions.shto propagate the versions all components. - Update the Changelog (e.g.
../website/src/components/Changelog/GUI.tsx) with:- New version numbers
- Release notes
- Release date
- Empty draft entry
- Update the known issues in
website/src/app/kb/client-apps/* - When the PR merges, the website will now redirect to the new version(s).
This results in a gap where GitHub knows about the release but nobody else does. This is okay because we can undo the GitHub release, and it prevents any queued PRs from landing in the release while you execute this process.
Apple Client
- Log in to the following URL: https://appstoreconnect.apple.com/
- Go to Apps
- Go to Firezone
- Click on TestFlight
- Note: You can't delete a
Versionin TestFlight
- Note: You can't delete a
- There is "internal testing" and "external testing"
- "internal testing" is only the Firezone team
- "external testing" is the beta customers
- Click on the testing group you want to release to and on the testing group
page:
- Click the
+on theBuildssections - Select the build you want to push out
- Check the
Automatically notify testers - Type a description of what you want users to see in the notification sent to users (e.g. a small change log of what's in this release)
- Click
Submit for Review- Then you have to wait for it to be reviewed (has been a matter of minutes as of late)
- Click the
(Alternative way to push out a release)
- After login go to
Builds(select either ios/macos) - Find the
Versionsection you want to release and drop down to show list of builds - Find the build you want to push out, hover over the
Groupscolumn and select the+icon - From here it's the same as the instructions above to type a description, etc...
Breaking API changes
We should notify customers 2 weeks in advance for any API-breaking changes.