3 title: Release checklist
4 permalink: /contributing/release-checklist
7 These are instructions for preparing a release branch for Firefox Android and starting the next Nightly development cycle.
9 ## [Release Management] Creating a new Beta release branch
11 **This part is 100% covered by the Release Management team. The dev team should not perform these steps.**
13 1. Create a branch name with the format `releases_v[beta_version]` off of the `main` branch (for example, `releases_v109`) through the GitHub UI.
14 `[beta_version]` should follow the Firefox Beta release number. See [Firefox Release Calendar](https://whattrainisitnow.com/calendar/). The following below should be performed in this new beta release branch:
15 - In [version.txt](https://github.com/mozilla-mobile/firefox-android/blob/main/version.txt), update the version from `[beta_version].0a1` to `[beta_version].0b1`. Create a commit named `Set version to [beta_version].0b1` for this change. This change can either be directly committed to the `releases_v[beta_version]` branch or a pull request can be created against it and then merged.
17 diff --git a/version.txt b/version.txt
24 - In [ApplicationServices.kt](https://github.com/mozilla-mobile/firefox-android/blob/main/android-components/plugins/dependencies/src/main/java/ApplicationServices.kt):
25 - Set `CHANNEL` to `ApplicationServicesChannel.RELEASE`
26 - Set `VERSION` to `[major-version].0`
29 diff --git a/android-components/plugins/dependencies/src/main/java/ApplicationServices.kt b/android-components/plugins/dependencies/src/main/java/ApplicationServices.kt
30 index f64b26d7a1..72574ab057 100644
31 --- a/android-components/plugins/dependencies/src/main/java/ApplicationServices.kt
32 +++ b/android-components/plugins/dependencies/src/main/java/ApplicationServices.kt
34 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
36 -// These lines are generated by android-components/automation/application-services-nightly-bump.py
37 -val VERSION = "114.20230420185101"
38 -val CHANNEL = ApplicationServicesChannel.NIGHTLY
39 +val VERSION = "114.0"
40 +val CHANNEL = ApplicationServicesChannel.RELEASE
42 - Create a commit named `Switch to Application Services Release`. (Note: application-services releases directly after the nightly cycle, there's no beta cycle).
43 - In [Gecko.kt](https://github.com/mozilla-mobile/firefox-android/blob/main/android-components/plugins/dependencies/src/main/java/Gecko.kt), set the `channel` to `GeckoChannel.BETA`. Create a commit named `Switch to GeckoView Beta` for this change. This change can either be directly committed to the `releases_v[beta_version]` branch or a pull request can be created against it and then merged. Once landed, it is expected that this change will temporarily break builds on the branch. Step #4 will fix them.
45 diff --git a/android-components/plugins/dependencies/src/main/java/Gecko.kt b/android-components/plugins/dependencies/src/main/java/Gecko.kt
46 --- a/android-components/plugins/dependencies/src/main/java/Gecko.kt
47 +++ b/android-components/plugins/dependencies/src/main/java/Gecko.kt
48 @@ -14,7 +14,7 @@ object Gecko {
52 - val channel = GeckoChannel.NIGHTLY
53 + val channel = GeckoChannel.BETA
58 2. In `main` [version.txt](https://github.com/mozilla-mobile/firefox-android/blob/main/version.txt), update the version from `[previous_nightly_version].0a1` to `[nightly_version].0a1`. Create a commit named `Set version to [nightly_version].0a1` for this change. This change can either be directly committed to the `main` branch or a pull request can be created against it and then merged.
60 diff --git a/version.txt b/version.txt
67 3. Notify the dev team that they can start the new Nightly development cycle per the steps given in the next section ⬇️
68 4. The Github Action will automatically bump the GeckoView version once the new Beta build is created and uploaded to Maven, as shown in [#324](https://github.com/mozilla-mobile/firefox-android/pull/324) for example.
69 5. Once all of the above commits have landed, create a new `Firefox Android (Android-Components, Fenix, Focus)` release in [Ship-It](https://shipit.mozilla-releng.net/) and continue with the release checklist per normal practice.
71 ## [Dev team] Starting the next Nightly development cycle
73 **Please handle this part once Release Management gives you the go.**
75 Now that we made the Beta cut, we can remove all the unused strings marked moz:removedIn <= `[release_version subtract 1]`. `[release_version]` should follow the Firefox Release version. See [Firefox Release Calendar](https://wiki.mozilla.org/Release_Management/Calendar) for the current Release version. We will also want to bump the Android Component's [changelog.md](https://github.com/mozilla-mobile/firefox-android/blob/main/docs/changelog.md) with the new Nightly development section.
77 0. Wait for greenlight coming from Release Management.
78 1. File a Bugzilla issue named "Start the Nightly `[nightly_version]` development cycle".
79 2. Search and remove all strings marked `moz:removedIn="[release_version subtract 1]"` across Fenix, Focus and Android Components. Please avoid removing strings in the localized `strings.xml` and limit changes only to `values/strings.xml`.
80 3. Add the next Nightly in development section in the [changelog.md](https://github.com/mozilla-mobile/firefox-android/blob/main/docs/changelog.md).:
81 - Add a new `[nightly_version].0 (In Development)` section for the next Nightly version with the next commit and milestone numbers.
82 - Update the `[beta_version].0` section, update the links to `release_v[beta_version]` and specifying the correct commit ranges. This should equate to changing `/blob/main/` to `/blob/releases_v[beta_version]/`.
85 diff --git a/docs/changelog.md b/docs/changelog.md
86 index 9e95d0e2adc..d901ed38cdd 100644
87 --- a/docs/changelog.md
88 +++ b/docs/changelog.md
89 @@ -4,12 +4,18 @@ title: Changelog
90 permalink: /changelog/
93 -# 114.0 (In Development)
94 -* [Commits](https://github.com/mozilla-mobile/firefox-android/compare/releases_v113..main)
95 +# 115.0 (In Development)
96 +* [Commits](https://github.com/mozilla-mobile/firefox-android/compare/releases_v114..main)
97 * [Dependencies](https://github.com/mozilla-mobile/firefox-android/blob/main/android-components/plugins/dependencies/src/main/java/DependenciesPlugin.kt)
98 * [Gecko](https://github.com/mozilla-mobile/firefox-android/blob/main/android-components/plugins/dependencies/src/main/java/Gecko.kt)
99 * [Configuration](https://github.com/mozilla-mobile/firefox-android/blob/main/android-components/.config.yml)
102 +* [Commits](https://github.com/mozilla-mobile/firefox-android/compare/releases_v113..releases_v114)
103 +* [Dependencies](https://github.com/mozilla-mobile/firefox-android/blob/releases_v114/android-components/plugins/dependencies/src/main/java/DependenciesPlugin.kt)
104 +* [Gecko](https://github.com/mozilla-mobile/firefox-android/blob/releases_v114/android-components/plugins/dependencies/src/main/java/Gecko.kt)
105 +* [Configuration](https://github.com/mozilla-mobile/firefox-android/blob/releases_v114/android-components/.config.yml)
107 * * **browser-state**
108 * 🌟 Added `DownloadState`.`openInApp` to indicate whether or not the file associated with the download should be opened in a third party app after downloaded successfully, for more information see [bug 1829371](https://bugzilla.mozilla.org/show_bug.cgi?id=1829371) and [bug 1829372](https://bugzilla.mozilla.org/show_bug.cgi?id=1829372).
111 3. Create a pull request with this commit and land.
113 ### [Dev Team] Renew telemetry
115 After the Beta cut, another task is to remove all soon to expire telemetry probes. What we're looking for is to create a list of telemetry that will expire in `[nightly_version add 1]`. See [Firefox Release Calendar](https://whattrainisitnow.com/calendar/) for the current Release version. There is a script that will help with finding these soon to expire telemetry.
117 1. Use the helper in tools folder `python3 data_renewal_generate.py [nightly_version add 1]` to detected and generate files that will help create the following files:
118 - `[nightly_version add 1]`_expiry_list.csv
119 2. File an issue for removing expired telemetry to address the expired metrics. See [Bug 1881336](https://bugzilla.mozilla.org/show_bug.cgi?id=1881336) for an example.
120 3. Remove the expired metrics. See [example](https://github.com/mozilla-mobile/firefox-android/pull/5700).
122 ### [Dev Team] Add SERP Telemetry json dump
124 After the beta cut, another task is to add SERP telemetry json to the [search-telemetry-v2.json](https://github.com/mozilla-mobile/firefox-android/blob/main/android-components/components/feature/search/src/main/assets/search/search_telemetry_v2.json)
125 The dump is to be fetched from the desktop telemetry dump located at [desktop-search-telemetry-v2.json](https://searchfox.org/mozilla-central/source/services/settings/dumps/main/search-telemetry-v2.json)
129 - Issues related to releases `#releaseduty` on Element
130 - Topics about CI (and the way we use Taskcluster) `#Firefox CI` on Element
131 - Breakage in PRs due to Gradle issues or GV upgrade problems `#mobile-android-team` on Slack