Release checklist
These are instructions for preparing a release branch for Firefox Android and starting the next Nightly development cycle.
[Release Management] Creating a new Beta release branch
This part is 100% covered by the Release Management team. The dev team should not perform these steps.
- Create a branch name with the format
releases_v[beta_version]
off of themain
branch (for example,releases_v109
) through the GitHub UI.[beta_version]
should follow the Firefox Beta release number. See Firefox Release Calendar. The following below should be performed in this new beta release branch:- In version.txt, update the version from
[beta_version].0a1
to[beta_version].0b1
. Create a commit namedSet version to [beta_version].0b1
for this change. This change can either be directly committed to thereleases_v[beta_version]
branch or a pull request can be created against it and then merged.diff --git a/version.txt b/version.txt --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -109.0a1 +109.0b1
- In ApplicationServices.kt:
- Set
CHANNEL
toApplicationServicesChannel.RELEASE
- Set
VERSION
to[major-version].0
diff --git a/android-components/plugins/dependencies/src/main/java/ApplicationServices.kt b/android-components/plugins/dependencies/src/main/java/ApplicationServices.kt index f64b26d7a1..72574ab057 100644 --- a/android-components/plugins/dependencies/src/main/java/ApplicationServices.kt +++ b/android-components/plugins/dependencies/src/main/java/ApplicationServices.kt @@ -3,8 +3,8 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -// These lines are generated by android-components/automation/application-services-nightly-bump.py -val VERSION = "114.20230420185101" -val CHANNEL = ApplicationServicesChannel.NIGHTLY +val VERSION = "114.0" +val CHANNEL = ApplicationServicesChannel.RELEASE
- Create a commit named
Switch to Application Services Release
. (Note: application-services releases directly after the nightly cycle, there’s no beta cycle).
- Set
- In Gecko.kt, set the
channel
toGeckoChannel.BETA
. Create a commit namedSwitch to GeckoView Beta
for this change. This change can either be directly committed to thereleases_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. ```diff diff –git a/android-components/plugins/dependencies/src/main/java/Gecko.kt b/android-components/plugins/dependencies/src/main/java/Gecko.kt — a/android-components/plugins/dependencies/src/main/java/Gecko.kt +++ b/android-components/plugins/dependencies/src/main/java/Gecko.kt @@ -14,7 +14,7 @@ object Gecko { /** * GeckoView channel */- val channel = GeckoChannel.NIGHTLY
- val channel = GeckoChannel.BETA }
/** ```
- In version.txt, update the version from
- In
main
version.txt, update the version from[previous_nightly_version].0a1
to[nightly_version].0a1
. Create a commit namedSet version to [nightly_version].0a1
for this change. This change can either be directly committed to themain
branch or a pull request can be created against it and then merged.diff --git a/version.txt b/version.txt --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -110.0a1 +111.0a1
- Notify the dev team that they can start the new Nightly development cycle per the steps given in the next section ⬇️
- The Github Action will automatically bump the GeckoView version once the new Beta build is created and uploaded to Maven, as shown in #324 for example.
- Once all of the above commits have landed, create a new
Firefox Android (Android-Components, Fenix, Focus)
release in Ship-It and continue with the release checklist per normal practice.
[Dev team] Starting the next Nightly development cycle
Please handle this part once Release Management gives you the go.
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 for the current Release version. We will also want to bump the Android Component’s changelog.md with the new Nightly development section.
- Wait for greenlight coming from Release Management.
- File a Bugzilla issue named “Start the Nightly
[nightly_version]
development cycle”. - Search and remove all strings marked
moz:removedIn="[release_version subtract 1]"
across Fenix, Focus and Android Components. Please avoid removing strings in the localizedstrings.xml
and limit changes only tovalues/strings.xml
. - Add the next Nightly in development section in the changelog.md.:
- Add a new
[nightly_version].0 (In Development)
section for the next Nightly version with the next commit and milestone numbers. - Update the
[beta_version].0
section, update the links torelease_v[beta_version]
and specifying the correct commit ranges. This should equate to changing/blob/main/
to/blob/releases_v[beta_version]/
.
diff --git a/docs/changelog.md b/docs/changelog.md index 9e95d0e2adc..d901ed38cdd 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -4,12 +4,18 @@ title: Changelog permalink: /changelog/ --- -# 114.0 (In Development) -* [Commits](https://github.com/mozilla-mobile/firefox-android/compare/releases_v113..main) +# 115.0 (In Development) +* [Commits](https://github.com/mozilla-mobile/firefox-android/compare/releases_v114..main) * [Dependencies](https://github.com/mozilla-mobile/firefox-android/blob/main/android-components/plugins/dependencies/src/main/java/DependenciesPlugin.kt) * [Gecko](https://github.com/mozilla-mobile/firefox-android/blob/main/android-components/plugins/dependencies/src/main/java/Gecko.kt) * [Configuration](https://github.com/mozilla-mobile/firefox-android/blob/main/android-components/.config.yml) +# 114.0 +* [Commits](https://github.com/mozilla-mobile/firefox-android/compare/releases_v113..releases_v114) +* [Dependencies](https://github.com/mozilla-mobile/firefox-android/blob/releases_v114/android-components/plugins/dependencies/src/main/java/DependenciesPlugin.kt) +* [Gecko](https://github.com/mozilla-mobile/firefox-android/blob/releases_v114/android-components/plugins/dependencies/src/main/java/Gecko.kt) +* [Configuration](https://github.com/mozilla-mobile/firefox-android/blob/releases_v114/android-components/.config.yml) + * * **browser-state** * 🌟 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).
- Add a new
- Create a pull request with this commit and land.
[Dev Team] Renew telemetry
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 for the current Release version. There is a script that will help with finding these soon to expire telemetry.
- 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:[nightly_version add 1]
_expiry_list.csv
- File an issue for removing expired telemetry to address the expired metrics. See Bug 1881336 for an example.
- Remove the expired metrics. See example.
[Dev Team] Add SERP Telemetry json dump
After the beta cut, another task is to add SERP telemetry json to the search-telemetry-v2.json The dump is to be fetched from the desktop telemetry dump located at desktop-search-telemetry-v2.json
Ask for Help
- Issues related to releases
#releaseduty
on Element - Topics about CI (and the way we use Taskcluster)
#Firefox CI
on Element - Breakage in PRs due to Gradle issues or GV upgrade problems
#mobile-android-team
on Slack