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 tor-browser tags, labels, etc
Example: 102.8.0
$(ESR_TAG): the Mozilla defined hg (Mercurial) tag associated with $(ESR_VERSION)
Example: FIREFOX_102_8_0esr_RELEASE
$(ESR_TAG_PREV): the Mozilla defined hg (Mercurial) tag associated with the previous ESR version when rebasing (ie, the ESR version we are rebasing from)
Example: FIREFOX_102_7_0esr_BUILD1
$(BROWSER_MAJOR): the browser major version
Example: 12
$(BROWSER_MINOR): the browser minor version
Example: either 0 or 5; Alpha's is always (Stable + 5) % 10
$(BASE_BROWSER_BRANCH): the full name of the current base-browser branch
Example: base-browser-102.8.0esr-12.0-1
$(BASE_BROWSER_BRANCH_PREV): the full name of the previous base-browser branch
Example: base-browser-102.7.0esr-12.0-1
$(TOR_BROWSER_BRANCH): the full name of the current tor-browser branch
Example: tor-browser-102.8.0esr-12.0-1
$(TOR_BROWSER_BRANCH_PREV): the full name of the previous tor-browser branch
Example: tor-browser-102.7.0esr-12.0-1
Bookkeeping
Link this issue to the appropriate Release Prep issue.
Tip: Search for unique string (like the Differential Revision ID) found in the mercurial commit in the gecko-dev/esr102 branch to find the equivalent commit
Example: 3a3a96c9eedd02296d6652dd50314fccbc5c4845
Sign and Tag gecko-dev commit
Sign/Tag gecko-dev commit :
Tag: $(ESR_TAG)
Message: Hg tag $(ESR_TAG)
Create new stable base-browser branch from tag
Branch name in the form: base-browser-$(ESR_VERSION)esr-$(BROWSER_MAJOR).$(BROWSER_MINOR)-1
Example: base-browser-102.8.0esr-12.0-1
Create new stable tor-browser branch from
Branch name in the form: tor-browser-$(ESR_VERSION)esr-$(BROWSER_MAJOR).$(BROWSER_MINOR)-1
Example: tor-browser-102.8.0esr-12.0-1
Push new base-browser branch to upstream
Push new tor-browser branch to upstream
Push new $(ESR_TAG) to upstream
Rebase tor-browser
Checkout a new local branch for the tor-browser rebase
Rebase and autosquash again, this time replacing all fixup and squash commands with pick. The goal here is to have all of the fixup and squash commits beside the commit which they modify, but kept un-squashed for easy debugging/bisecting.
Example: git rebase --autosquash --interactive FIREFOX_102_8_0esr_RELEASE
Compare patch sets to ensure nothing weird happened during conflict resolution:
diff of diffs:
Do the diff between current_patchset.diff and rebased_patchset.diff with your preferred difftool and look at differences on lines that starts with + or -
diff current_patchset.diff and rebased_patchset.diff
If everything went correctly, the only lines which should differ should be the lines starting with index abc123...def456 (unless the previous base-browser branch includes changes not included in the previous tor-browser branch)