tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

uplift_guide.md (7521B)


Uplift Request Process Guide

An uplift can be requested of a patch landed on main in order to expedite that change into an earlier release outside of the standard train model.

The developer provides some information as part of the request to help inform the decision as to whether or not to accept the uplift. These requests are regularly monitored by Release Management. The release manager will then assess the potential risk/reward and make a decision on whether or not to accept the requested uplift. If the uplift is accepted, the release manager approves the request and grafts the patch to the Beta branch. If the request does not meet the criteria, the release manager may look for some additional information or reject the request and provide a reason.

There are some exceptions to the uplift approval process, here it is acceptable to create and merge the backport without uplift approval:

Beta/Release Uplift Steps

For Beta and Release, the following steps outline the process:

  1. A PR that fixes/improves a test and has no impact on functionality.
  2. A PR that fixes/improves a test and has no impact on functionality.
  3. A PR that fixes/improves a test and has no impact on functionality.

- Use Bugzilla’s “needinfo” to request engineering or product manager in the Bugzilla bug, so we have a record of the approvals. - Some features and technical changes may need decisions and guidance from the leadership team that can affect what is released to our users in the Beta and/or Production channels. - Uplifting small bug fixes doesn’t require approval from an engineering or product manager.

  1. Release Management may identify if a PR is a good candidate to backport and reach out to the developer via a comment in the bug.
  1. NOTE: Backports generally do not require an additional code review. However, if the patch requires any significant rebasing and/or re-architecting then it’s up to the developer to request a code review from the relevant code owner prior to requesting approval.
  2. NOTE: Backports generally do not require an additional code review. However, if the patch requires any significant rebasing and/or re-architecting then it’s up to the developer to request a code review from the relevant code owner prior to requesting approval.
  1. NOTE: There can be a window of time around RC week where approval-mozilla-beta is requested, but no further beta builds are planned. In this scenario, the release manager will take care of changing the pending beta approval request to a release request instead.
  1. Video Example of adding a uplift request 📺
  2. Video Example of adding a uplift request 📺
  3. Video Example of adding a uplift request 📺

The release manager may also reject the request. In that case, the release manager will change the approval status flag from ‘?’ to ‘-’ and provide a reason for the rejection. Please see the below section on uplift request rejection for additional information.

  1. Video Example of adding a uplift request 📺

Beta/Release Differences

The uplift request process for Beta and Release are essentially the same, with some notable differences not outlined above:

- Uplift requests are only tracked in Bugzilla. - Beta uplift requests are approved/rejected daily during the Beta cycle. - PR’s landed during beta are available in the next Beta build. The release manager will add a comment at the time of approval indicating what build that will be.

- Uplift requests are tracked in Bugzilla and also in a release checklist maintained by the release manager. - Release uplift request approvals depend on where we are in the cycle. If the request is not a driver for an RC respin or a dot release, the request will pend as a potential ride-along until an appropriate RC respin or dot release is identified. - Where relevant, the release manager will include a release note for the uplift to be included in the release notes published in the Google Play Store for that dot release.

Uplift Request Approval Form

The uplift request approval form in Bugzilla is the same as for Desktop uplift requests, guidelines are available here.

Uplift Request Rejection

There are several scenarios when a release manager may reject an uplift request. Here are some common examples:

When a release manager rejects an uplift request they will always provide a comment explaining the rejection. The release manager is always open to discussion if the developer does not accept the rejection. The discussion can be done via comments in the bug, a slack thread, an email exchange, or in a meeting.

If further alignment is needed between the developer and the release manager, the final call is with the Product team. The Product team can provide perspective on risk vs. reward.

Backouts

If a PR landed in main, main was branched to release, and later it was discovered the PR introduced a regression without a simple fix then we may decide to back out the PR from the release branch. This would follow the same process as an uplift request.