-[ ] Link this issue to the appropriate [Release Prep](https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/issues/?sort=updated_desc&state=opened&label_name%5B%5D=Apps%3A%3AType%3A%3AReleasePreparation) issue.
- [ ] Create "Firefox Release Review" issue for this version
-**NOTE**: We have issues open through Firefox 153 so this can be skipped until we get to Firefox 154
## **Rebase**
The step-by-step rebase process is detailed on the [Rebase Process](https://gitlab.torproject.org/tpo/applications/wiki/-/wikis/Development-Information/Rebase/Rebase-Process) wiki page. Refer to it for detailed instructions on how to perform each step.
- Rebase application-services
- uniffi-rs
- Prepare the rebase
- [ ] Verify if application-services has updated it's uniffi-rs version else skip this step
-[ ] Get the [upstream](https://github.com/mozilla/uniffi-rs) tag
- [ ] Freeze the current default branch (on both tor-browser and mullvad-browser)
- [ ] Create the target branch (`X.XX.X`)
- [ ] Rebase
- Merge
- [ ] Perform a self-review
- [ ] Build
- [ ] File a merge request
- Tag and update the repository
- [ ] Tag `vX.XX.X`
- [ ] Make `X.XX.X` the default branch
- application-services
- Prepare the rebase
-[ ] Get the [upstream](github.com/mozilla/application-services) tag
- [ ] Freeze the current default branch
- [ ] Create the target branch (`XXX.X-TORBROWSER`)
- Do the rebase
- [ ] Cherry-pick commits
- [ ] Squash _all_ `fixup!` commits
- Merge
- [ ] Perform a self-review
- [ ] Build
- [ ] File a merge request
- [ ] Tag and update the repository
- [ ] Tag `vXXX.X-TORBROWSER-build1`
- [ ] Make `XXX.X-TORBROWSER` the default branch
- Rebase Tor Browser
- Prepare the rebase
-[ ] Get the [Firefox](https://github.com/mozilla-firefox/firefox) tag
- Do the rebase [Part 1]
- [ ] Create the target branch (`tor-browser-XXX.0a1-YY.0-1`)
- [ ] Cherry-pick commits until `tor-browser-(XXX - 1).0a1-YY.0-2-build1`
- Optional: If your first rebase, complex, or difficult, can do an MR here for feedback.
-[ ] Link this issue to the appropriate [Release Prep](https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/issues/?sort=updated_desc&state=opened&label_name%5B%5D=Apps%3A%3AType%3A%3AReleasePreparation) issue.
## **Rebase**
The step-by-step rebase process is detailed on the [Rebase Process](https://gitlab.torproject.org/tpo/applications/wiki/-/wikis/Development-Information/Rebase/Rebase-Process) wiki page. Refer to it for detailed instructions on how to perform each step.
- Rebase Tor Browser
- Prepare the rebase
- [ ] Get the Firefox tag
- [ ] Freeze the current default branch
- [ ] Create the target branch
- Do the rebase
- [ ] Cherry-pick commits until `tor-browser-...-build1`
- [ ] Squash (`git rebase --autosquash FIREFOX_...-build1`)
- [ ] Cherry-pick the remaining commits
- [ ] Reorder commits
- Merge
- [ ] Perform a self-review (`git range-diff` + diff of diffs)
-`$(ESR_VERSION)`: the Mozilla defined ESR version, used in various places for building tor-browser tags, labels, etc
-**Example**: `102.8.0`
-`$(RR_VERSION)`: the Mozilla defined Rapid-Release version; Tor Browser for Android is based off of the `$(ESR_VERSION)`, but Mozilla's Firefox for Android is based off of the `$(RR_VERSION)` so we need to keep track of security vulnerabilities to backport from the monthly Rapid-Release train and our frozen ESR train.
-**Example**: `110`
-`$(PROJECT_NAME)`: the name of the browser project, either `base-browser` or `tor-browser`
-`$(TOR_BROWSER_MAJOR)`: the Tor Browser major version
-**Example**: `12`
-`$(TOR_BROWSER_MINOR)`: the Tor Browser minor version
-**Example**: either `0` or `5`; Alpha's is always `(Stable + 5) % 10`
-`$(BUILD_N)`: a project's build revision within a its branch; many of the Firefox-related projects have a `$(BUILD_N)` suffix and may differ between projects even when they contribute to the same build.
-**Example**: `build1`
</details>
**NOTE:** It is assumed the `tor-browser` rebases (stable and alpha) have already happened and there exists a `build1` build tags for both `base-browser` and `tor-browser` (stable and alpha)
## **Bookkeeping**
-[ ] Link this issue to the appropriate [Release Prep](https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/issues/?sort=updated_desc&state=opened&label_name%5B%5D=Apps%3A%3AType%3A%3AReleasePreparation) issues (alpha, stable, and legacy).
- [ ] Go through the `Security Vulnerabilities fixed in Firefox $(RR_VERSION)` report and create a candidate list of CVEs which potentially need to be backported in this issue:
- CVEs which are explicitly labeled as 'Android' only
- CVEs which are fixed in Rapid Release but not in ESR
- 'Memory safety bugs' fixed in Rapid Release but not in ESR
- [ ] Foreach issue:
- Create link to the CVE on [mozilla.org](https://www.mozilla.org/en-US/security/advisories/)
- Create link to the associated Bugzilla issues (found in the CVE description)
- Create links to the relevant `gecko-dev`/other commit hashes which need to be backported OR a brief justification for why the fix does not need to be backported
- To find the `gecko-dev` version of a `mozilla-central`, search for a unique string in the relevant `mozilla-central` commit message in the `gecko-dev/release` branch log.
-**NOTE:** This process is unfortunately somewhat poorly defined/ad-hoc given the general variation in how Bugzilla issues are labeled and resolved. In general this is going to involve a bit of hunting to identify needed commits or determining whether or not the fix is relevant.
## CVEs
<!-- CVE Resolution Template, foreach CVE to investigate add an entry in the form:
Manual QA test check-list for major desktop releases. Please copy/paste form into your own comment, fill out relevant info and run through the checklist!
- [ ] Bad Proxy Address Reports Error; e.g. any bad bad proxy address/port/etc
- [ ] On initial failure gives error modal
- [ ] On browser restart, will also give an error if provided a bad setting
- [ ] Good Proxy Works
- [ ] SOCKS5
- [ ] Bridge
- [ ] Bad Bridge Fails with error modal; eg: `0:0`
- [ ] Modifying Bridges *during* bootstrap should cancel bootstrap
- [ ] Firewall
- [ ] UI shouldn't accept bad ports (e.g. invalid port numbers, non-numbers, etc)
- [ ] Each individual setting type has it's own validation (i.e. not all or nothing anymore)
## Upgrades
- [ ] Build-to-Build upgrade from:
- [ ] Previous minor version
- [ ] Previous major version
- [ ] Previous watershed release
- **NOTE**: a watershed release is a release which all previous versions will first update to before updating to latest; the most recent watershed is Tor Browser 14.0