Rebase Mullvad Browser onto 133
⤵️ Rebase Rapid
NOTE: All examples in this template reference the rebase from Firefox 129.0a1 to 130.0a1, see the tor-browser Rebase Browser - Rapid.md template for further info
Explanation of Variables
-
$(NIGHTLY_VERSION): the Mozilla defined nightly version, used in various places for building tor-browser tags, labels, etc-
Example:
130.0a1
-
Example:
-
$(NIGHTLY_TAG): the Mozilla defined hg (Mercurial) tag associated with$(NIGHTLY_VERSION)-
Example:
FIREFOX_NIGHTLY_133_END
-
Example:
-
$(NIGHTLY_TAG_PREV): the Mozilla defined hg (Mercurial) tag associated with the previous nightly version when rebasing (ie, the nightly version we are rebasing from)-
Example:
FIREFOX_NIGHTLY_132_END
-
Example:
-
$(BROWSER_VERSION): the browser version which will first be based on the next major ESR version this Firefox Nightly series is leading up to-
Example:
15
-
Example:
-
$(BASE_BROWSER_BRANCH): the full name of the currentbase-browserbranch based off of the Firefox Nightly channel-
Example:
base-browser-133.0a1-15.0-2
-
Example:
-
$(BASE_BROWSER_BRANCH_TAG): thebase-browserbuild tag used as base commit formullvad-browser-
Example:
base-browser-133.0a1-15.0-2-build1
-
Example:
-
$(BASE_BROWSER_BRANCH_PREV): the full name of the previousbase-browserbranch based off of the Firefox Nightly channel-
Example:
base-browser-132.0a1-15.0-2
-
Example:
-
$(BASE_BROWSER_BRANCH_PREV_TAG): thebase-browserbuild tag used as base commit for the previousmullvad-browser-
Example:
base-browser-132.0a1-15.0-2-build1
-
Example:
-
$(MULLVAD_BROWSER_BRANCH): the full name of the currentmullvad-browserbranch-
Example:
mullvad-browser-133.0a1-15.0-2
-
Example:
-
$(MULLVAD_BROWSER_BRANCH_PREV): the full name of the previousmullvad-browserbranch-
Example:
mullvad-browser-132.0a1-15.0-2
-
Example:
NOTE: It is presuemd the equivalent Tor Browser rapid-release rebase has been completed, as this rebase depends on a rebased base-browser branch
Update Branch Protection Rules
-
In Repository Settings: -
Remove previous nightly mullvad-browserbranch protection rules (this will prevent pushing new changes to the branches being rebased) -
Create new mullvad-browserbranch protection rule:-
Branch:
mullvad-browser-$(NIGHTLY_VERSION)-$(BROWSER_VERSION)-*-
Example:
mullvad-browser-133.0a1-15.0-*
-
Example:
-
Allowed to merge:
Maintainers -
Allowed to push and merge:
Maintainers -
Allowed to force push:
false -
⚠️ IMPORTANT: If you copied and pasted from old rules, double check you didn't add spaces at the end, as GitLab will not trim them!
-
Branch:
-
Create and Push New Branch
-
Create new alpha mullvad-browserbranch from this ESR's rapidbase-browsertag- Branch name in the form:
mullvad-browser-$(ESR_VERSION)esr-$(BROWSER_MAJOR).$(BROWSER_MINOR)-1 -
Example:
git branch mullvad-browser-133.0a1-15.0-2 base-browser-133.0a1-15.0-2-build1
- Branch name in the form:
-
Push new mullvad-browserbranch toupstream -
Push the base-browsertag toupstream
Rebase mullvad-browser
-
Checkout a new local branch for the mullvad-browserrebase-
Example:
git branch mullvad-browser-rebase upstream/mullvad-browser-133.0a1-15.0-2
-
Example:
-
mullvad-browserrebase-
Cherry-pick the previous mullvad-browserrapid branch's commit range-
Example:
git cherry-pick base-browser-132.0a1-15.0-2-build1..mullvad-browser-132.0a1-15.0-2
-
Example:
-
Rebase and autosquash these newly cherry-picked commits -
Example:
git rebase --autosquash --interactive upstream/mullvad-browser-133.0a1-15.0-2
-
Example:
-
Cherry-pick the new mullvad-browseralpha commits (i.e. the new dangling commits which did not appear in the previous Mullvad Browser rapid channel):-
Example
git cherry-pick mullvad-browser-128.1.0esr-14.5-1-build1..upstream/mullvad-browser-128.1.0esr-14.5-1
-
Example
-
Rebase and autosquash again, this time replacing all fixupandsquashcommands withpick. The goal here is to have all of thefixupandsquashcommits beside the commit which they modify, but kept un-squashed for easy debugging/bisecting.-
Example:
git rebase --autosquash --interactive upstream/mullvad-browser-133.0a1-15.0-2
-
Example:
-
-
Compare patch sets to ensure nothing weird happened during conflict resolution: -
diff of diffs: - Do the diff between
current_patchset.diffandrebased_patchset.diffwith your preferred difftool and look at differences on lines that starts with + or - git diff $(BASE_BROWSER_BRANCH_PREV_TAG)..$(MULLVAD_BROWSER_BRANCH_PREV) > current_patchset.diffgit diff $(BASE_BROWSER_BRANCH_TAG)..HEAD > rebased_patchset.diff- diff
current_patchset.diffandrebased_patchset.diff- If everything went correctly, the only lines which should differ should be the lines starting with
index abc123...def456(unless the previousbase-browserbranch includes changes not included in the previousmullvad-browserbranch)
- If everything went correctly, the only lines which should differ should be the lines starting with
- Do the diff between
-
rangediff: git range-diff $(BASE_BROWSER_BRANCH_PREV_TAG)..$(MULLVAD_BROWSER_BRANCH_PREV) $(BASE_BROWSER_BRANCH_TAG)..HEAD-
Example:
git range-diff base-browser-132.0a1-15.0-2-build1..upstream/mullvad-browser-132.0a1-15.0-2 base-browser-133.0a1-15.0-2-build1..HEAD
-
Example:
-
-
Open MR for the mullvad-browserrebase -
Merge
Sign and Tag
-
Sign/Tag HEADof the mergedmullvad-browserbranch:- In mullvad-browser.git, checkout the new rapid
mullvad-browserbranch - In tor-browser-build.git, run signing script:
./tools/browser/sign-tag.mullvadbrowser rapid build1 -
Push tag to upstream
- In mullvad-browser.git, checkout the new rapid
Edited by ma1