Rebase Mullvad Browser Alpha onto Firefox 128.3.0esr
NOTE: All examples in this template reference the rebase from 102.7.0esr to 102.8.0esr
Explanation of Variables
- 
$(ESR_VERSION): the Mozilla defined ESR version, used in various places for building mullvad-browser tags, labels, etc- 
Example: 
102.8.0 
 - 
Example: 
 - 
$(ESR_TAG): the Mozilla defined hg (Mercurial) tag associated with$(ESR_VERSION)- 
Example: 
FIREFOX_102_8_0esr_RELEASE 
 - 
Example: 
 - 
$(BROWSER_MAJOR): the browser major version- 
Example: 
12 
 - 
Example: 
 - 
$(BROWSER_MINOR): the browser minor version- 
Example: either 
0or5; Alpha's is always(Stable + 5) % 10 
 - 
Example: either 
 - 
$(BASE_BROWSER_BRANCH): the full name of the currentbase-browserbranch- 
Example: 
base-browser-102.8.0esr-12.5-1 
 - 
Example: 
 - 
$(BASE_BROWSER_BRANCH_PREV): the full name of the previousbase-browserbranch- 
Example: 
base-browser-102.7.0esr-12.5-1 
 - 
Example: 
 - 
$(BASE_BROWSER_BRANCH_TAG): thebase-browserbuild tag used as base commit formullvad-browser- 
Example: 
base-browser-102.8.0esr-12.5-1-build1 
 - 
Example: 
 - 
$(BASE_BROWSER_BRANCH_PREV_TAG): thebase-browserbuild tag used as base commit for the previousmullvad-browser- 
Example: 
base-browser-102.7.0esr-12.5-1-build1 
 - 
Example: 
 - 
$(MULLVAD_BROWSER_BRANCH): the full name of the currentmullvad-browserbranch- 
Example: 
mullvad-browser-102.8.0esr-12.5-1 
 - 
Example: 
 - 
$(MULLVAD_BROWSER_BRANCH_PREV): the full name of the previousmullvad-browserbranch- 
Example: 
mullvad-browser-102.7.0esr-12.5-1 
 - 
Example: 
 
NOTE: It is assumed that we've already rebased and tagged base-browser alpha and that we've already rebased mullvad-browser stable
Bookkeeping
- 
Link this issue to the appropriate Release Prep issue.  
Update Branch Protection Rules
- 
In Repository Settings: - 
Remove previous alpha mullvad-browserbranch protection rules (this will prevent pushing new changes to the branches being rebased) - 
Create new mullvad-browserbranch protection rule:- 
Branch: 
mullvad-browser-$(ESR_VERSION)esr-$(BROWSER_MAJOR).$(BROWSER_MINOR)-1*- 
Example: 
mullvad-browser-102.8.0esr-12.5-1* 
 - 
Example: 
 - 
Allowed to merge: 
Maintainers - 
Allowed to push and merge: 
Maintainers - 
Allowed to force push: 
false 
 - 
Branch: 
 
 - 
 
Create and Push New Branch
- 
Create new alpha mullvad-browserbranch from this ESR's alphabase-browsertag- Branch name in the form: 
mullvad-browser-$(ESR_VERSION)esr-$(BROWSER_MAJOR).$(BROWSER_MINOR)-1 - 
Example: 
git branch mullvad-browser-102.8.0esr-12.5-1 base-browser-102.8.0esr-12.5-1-build1 
 - Branch name in the form: 
 - 
Push new mullvad-browserbranch toupstream - 
Push base-browsertag toupstream 
Rebase tor-browser
- 
Checkout a new local branch for the mullvad-browserrebase- 
Example: 
git branch mullvad-browser-rebase upstream/mullvad-browser-102.8.0esr-12.5-1 
 - 
Example: 
 - 
mullvad-browserrebase- 
Cherry-pick the previous mullvad-browserbranch's commit range up to the lastmullvad-browserbuild1tag- 
Example: 
git cherry-pick base-browser-102.7.0esr-12.5-1-build1..mullvad-browser-102.7.0esr-12.5-1-build1 
 - 
Example: 
 - 
Rebase and autosquash these newly cherry-picked commits - 
Example: 
git rebase --autosquash --interactive upstream/mullvad-browser-102.8.0esr-12.5-1 
 - 
Example: 
 - 
Cherry-pick remainder of patches after the last mullvad-browserbuildNtag- 
Example: 
git cherry-pick mullvad-browser-102.7.0esr-12.5-1-build1..upstream/mulvad-browser-102.7.0esr-12.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-102.8.0esr-12.5-1 
 - 
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-102.7.0esr-12.5-1-build1..upstream/mullvad-browser-102.7.0esr-12.5-1 base-browser-102.8.0esr-12.5-1-build1..HEAD 
 - 
Example: 
 
 - 
 - 
Open MR for the mullvad-browserrebase - 
Merge  
Sign and Tag
- 
Sign/Tag HEADof the mergedmullvad-browserbranch:- 
Tag: 
mullvad-browser-$(ESR_VERSION)esr-$(BROWSER_MAJOR).$(BROWSER_MINOR)-1-build1 - 
Message: 
Tagging build1 for $(ESR_VERSION)esr-based stable - 
Push tag to upstream 
 - 
Tag: