Skip to content
This repository has been archived by the owner on Mar 6, 2024. It is now read-only.

Creating Releases

Donal Meehan edited this page Dec 19, 2023 · 7 revisions

This page is meant as guidance for all future releases to ensure we do not forget any crucial steps. It is assumed that by this point you have already exported strings for l10n to localize, and tested thoroughly.

Release Process

New Major Release

The steps below describe how to create a new major release:

1. Make sure that the main branch reflects the product that we want to ship.

Try to prevent uplifting patches as much as possible.

2. Create a new release branch

Create a release branch with the name releases_vXX where XX is the major version number we want to ship. This can be done through git CLI or IDE or simply on the GitHub website.

See also Branches & Tags

3. Set the version number

Set the version number to XX in the following files by modifying the CFBundleShortVersionString key.

  • Blockzilla/Info.plist
  • ContentBlocker/Info.plist
  • FocusIntentExtension/Info.plist
  • OpenInFocus/Info.plist
  • Widgets/Info.plist

This can also be done with the focus-ios/focus-ios-tests/tools/set-version.sh command:

$ focus-ios/focus-ios-tests/tools/set-version.sh 99.0
Changing CFBundleShortVersionString in Blockzilla/Info.plist from 9000 to 99.0
Changing CFBundleShortVersionString in ContentBlocker/Info.plist from 9000 to 99.0
Changing CFBundleShortVersionString in FocusIntentExtension/Info.plist from 9000 to 99.0
Changing CFBundleShortVersionString in OpenInFocus/Info.plist from 9000 to 99.0
Changing CFBundleShortVersionString in Widgets/Info.plist from 9000 to 99.0

Commit this as Version bump to XX.0. Example commit for the v35 release.

4. Pin the Application Services version in the release branch:

5. Create a GitHub Release

As a final step, create a release through the GitHub website:

  • Tag: v110.0
  • Branch: releases_v110
  • Name: Focus / Klar v110.0
  • Description: "v110"
  • Prerelease: Yes

See previous releases for examples of descriptions.

Once a release is created, the tag will trigger CI and a release build of both Focus and Klar will be built and pushed to AppStoreConnect. From there the build can be picked for an App Store or TestFlight release.