Hi everyone,
Here's a plan for experimenting with moving Tor Browser from ESRs to
mozilla-central. Why try this? There are several reasons I can think
of:
* There is no mobile Firefox ESR. In order to keep mobile Tor Browser
secure, we would either need to constantly monitor for security fixes
and apply backports. It will be simpler to follow the Mozilla release
cycle.
* Tor Browser will receive all security patches and security features
from Mozilla, not simply those deemed important enough to backport to
the last ESR.
* Closer collaboration between Mozilla and the Tor Browser team will
be possible, because everyone will be focused on the same codebase.
For example, non-urgent patches can land directly on mozilla-central,
bypassing tor-browser.git altogether, and those patches will be
deployed to Tor Browser faster than they would have been on an
ESR-only schedule. Mozilla will provide expert review of patches.
Also, some non-urgent patches by Tor Browser may be written by Mozilla
engineers.
* The Tor Browser development process will be smoother and more
gradual. Instead of rebasing and patch-fixing sprints ahead of each
ESR, we can automatically rebase patches every night, and fix any
patch whenever its rebase fails. (The total rebase effort should be
approximately the same as before.)
* Patches that frequently break because they live on "hot code" can be
identified and uplifted.
* We'll need to continuously monitor the mozilla codebase for new
features that could harm privacy. That's potentially difficult, but by
focusing on Mozilla's current work, we can hopefully stop patches that
affect privacy before they land.
Here's how I envision the new rebase process:
* An automated script rebases all tor browser patches every night
against mozilla-central, mozilla-beta, mozilla-stable and mozilla-esr.
An email alert will be sent if the rebase of any patch fails. (I have
a prototype script that does the basic rebasing -- it found that
~40/140 patches from our ESR-52 branch could be auto-rebased onto
mozilla-central without any intervention.)
* Any failed patches will need to be manually fixed up promptly so
that the automated rebase can resume.
* Diagnostic Tor Browser bundles will be built against the latest
rebase branches. We can also run regression tests.
So how do we ramp up this experiment?
1. 2018-1-1 to 2017-2-22: Rebase tor-browser.git patches manually on
top of Firefox 59-beta. (We have to do this anyway.)
2. 2017-2-22 to 2018-3-13: Activate a script that rebases Tor Browser
patches nightly onto mozilla-(central, beta, stable, esr).
3. 2018-03-13 to 2018-05-07: Create nightly Tor Browser bundle builds
based on nightly rebases.
At this point, we can evaluate whether we would like to transition to
releasing Tor Browser alphas based on the mozilla-beta branch.
Switching Tor Browser stable to mozilla-stable can happen sometime
after that.
How does this sound? Interested to hear what you think.
Thanks,
Arthur